Download posneg.eso

Back to the list

   1 : C POSNEG    SOURCE    BR232186  12/08/01    22:29:18     7456           
   2 : C JACOBA    SOURCE    BR      06/01/10    21:15:29     5284           
   3 :       SUBROUTINE POSNEG(A,PPOS,PNEG)
   4 : C====================================================================== 
   5 : C Routine permettant de calculer les parties positives et négatives
   6 : C au sens de Ladevèze d'une matrice symétrique 3x3
   7 : C     OBJET                                                                     
   8 : C     -----                                                                     
   9 : C     CALCUL DES PARTIES POS ET NEG D UNE MATRICE 3*3 SYMETRIQUE                              
  10 : C                                                                               
  11 : C     ENTREES                                                                   
  12 : C     -------                                                                   
  13 : C     A(3,3) = MATRICE SYMETRIQUE                                               
  14 : C
  15 : C     SORTIES                                                                   
  16 : C     -------                                                                   
  17 : C     PPOS(3,3)   = PARTIE POSITIVE DAS LE REPERE INITIAL
  18 : C
  19 : C     PNEG(3,3)   = PARTIE NEGATIVE DAS LE REPERE INITIAL
  20 : C                                                                               
  21 : C===============================================================                
  22 :       IMPLICIT INTEGER(I-N)
  23 :       IMPLICIT REAL*8 (A-H,O-Z)
  24 : 
  25 :       REAL*8 MATE1(3,3),MATE1VP(3),MATE1PP(3,3),TRAV(3,3)
  26 :       REAL*8 MATE1VPOS(3,3),MATE1VNEG(3,3),MATE1PPT(3,3)
  27 :       REAL*8 PPOS(3,3),PNEG(3,3),A(3,3)
  28 : 
  29 : C     Calcul
  30 :       DO I=1,3
  31 :          DO J=1,3
  32 :             MATE1(I,J) = A(I,J)
  33 :          ENDDO
  34 :       ENDDO
  35 : 
  36 : C     Diagonalisation
  36 :       CALL JACOBA(MATE1,3,MATE1VP,MATE1PP)
  37 : 
  38 : C     Séparation des parties positives et négatives
  39 :       DO I=1,3
  40 :           DO J=1,3
  41 :               MATE1VPOS(I,J) = 0.0D0
  42 :               MATE1VNEG(I,J) = 0.0D0
  43 :           ENDDO
  44 :       ENDDO
  45 : 
  46 :       DO I=1,3
  47 :             IF (MATE1VP(I).GE.0.0D0) THEN
  48 :                MATE1VPOS(I,I) = MATE1VP(I)
  49 :             ELSE
  50 :                MATE1VNEG(I,I) = MATE1VP(I)
  51 :             ENDIF       
  52 :       ENDDO
  53 : 
  54 : C     Retour dans le repère initial
  54 :       CALL TRSPOD (MATE1PP,3,3,MATE1PPT)
  55 : 
  55 :       CALL MATMAT (MATE1PP,MATE1VPOS,3,3,3,TRAV)
  55 :       CALL MATMAT (TRAV,MATE1PPT,3,3,3,PPOS)
  56 : 
  56 :       CALL MATMAT (MATE1PP,MATE1VNEG,3,3,3,TRAV)
  56 :       CALL MATMAT (TRAV,MATE1PPT,3,3,3,PNEG)
  57 : 
  58 :       RETURN
  59 :       END
  60 : 
  61 :  
  62 :  
  63 :  
  64 :  
  65 :  

© Cast3M 2003 - All rights reserved.
Disclaimer