Download dyne01.eso

Back to the list

   1 : C DYNE01    SOURCE    CHAT      09/10/09    21:17:29     6519           
   2 :       SUBROUTINE DYNE01(ICHOLX,IRSCPR,IPRIGM,IVEC)                              
   3 :       IMPLICIT INTEGER(I-N)
   4 :       IMPLICIT REAL*8(A-H,O-Z)                                                  
   5 : ************************************************************************        
   6 : *                                                                               
   7 : *                             D Y N E 0 1                                       
   8 : *                             -----------                                       
   9 : *                                                                               
  10 : * FONCTION:                                                                     
  11 : * ---------                                                                     
  12 : *     UTILITAIRE DE L'OPERATEUR "DYNE"                                          
  13 : *     LUMPAGE ET INVERSION DE LA MATRICE MASSE                                  
  14 : *                                                                               
  15 : * PARAMETRES:   (E)=ENTREE   (S)=SORTIE   (+ = CONTENU DANS UN COMMUN)          
  16 : * -----------                                                                   
  17 : *                                                                               
  18 : *     ICHOLX  (E)  POINTEUR SUR LE SEGMENT MMATRI ( ACTIF )                     
  19 : *     IRSCPR  (E)  POINTEUR SUR LE SEGMENT ICPR ( ACTIF )                       
  20 : *     IPRIGM  (E)  POINTEUR SUR L'OBJET RIGIDITE M                              
  21 : *     IVEC    (S)  VECTEUR CONTENANT LA MATRICE LUMPEE INVERSEE                 
  22 : *                  ( LAISSE ACTIF )                                             
  23 : *                                                                               
  24 : * REMARQUES:                                                                    
  25 : * ----------                                                                    
  26 : *     ATTENTION : ON NE LUMPE QUE LES TERMES RELATIFS AUX DDL                   
  27 : *     DE TRANSLATION ; EN CE QUI CONCERNE LES DDL DE ROTATION,                  
  28 : *     SEULS LES TERMES DIAGONAUX SONT PRIS EN COMPTE.                           
  29 : *                                                                               
  30 : * AUTEUR, DATE DE CREATION:                                                     
  31 : * -------------------------                                                     
  32 : *     DENIS ROBERT, LE 15 NOVEMBRE 1988.                                        
  33 : *                                                                               
  34 : *     MODIF 03/89 :  SUPPRESSION DU TEST SUR LA VALEUR DU TERME LUMPE           
  35 : *     ( E DE LANGRE)                                                            
  36 : *                                                                               
  37 : * LANGAGE:                                                                      
  38 : * --------                                                                      
  39 : *     ESOPE + FORTRAN77                                                         
  40 : *                                                                               
  41 : ************************************************************************        
  42 : *                                                                               
  43 : * MODULES UTILISES:                                                             
  44 : *                                                                               
  45 : -INC CCOPTIO                                                                    
  46 : -INC SMELEME                                                                    
  47 : -INC SMRIGID                                                                    
  48 : -INC SMMATRI                                                                    
  49 : -INC SMVECTD                                                                    
  50 : -INC SMCOORD                                                                    
  51 : *                                                                               
  52 :       PARAMETER ( UN = 1.D0 )                                                   
  53 :       PARAMETER ( EPS = 1.D-10 )                                                
  54 :       PARAMETER ( ZERO = 0.D0 )                                                 
  55 : *                                                                               
  56 :       CHARACTER*4 NI                                                            
  57 : *                                                                               
  58 : *---  SEGMENTS DE TRAVAIL                                                       
  59 : *                                                                               
  60 :       SEGMENT MUITRA(NLIGRE)                                                    
  61 :       SEGMENT ICPR(XCOOR(/1)/(IDIM+1))                                          
  62 : *                                                                               
  63 :       MVECTD=IVEC                                                               
  64 :       MMATRI=ICHOLX                                                             
  65 :       MINCPO=IINCPO                                                             
  66 :       SEGACT,MINCPO                                                             
  67 :       MIMIK=IIMIK                                                               
  68 :       SEGACT,MIMIK                                                              
  69 :       MIDUA=IIDUA                                                               
  70 :       SEGACT,MIDUA                                                              
  71 :       MHARK=IHARK                                                               
  72 :       SEGACT,MHARK                                                              
  73 :       ICPR=IRSCPR                                                               
  74 :       ININC=IMIK(/2)                                                            
  75 : *                                                                               
  76 : *---  BOUCLE SUR LES ZONES ELEMENTAIRES DE LA RIGIDITE                          
  77 : *                                                                               
  78 :       MRIGID=IPRIGM                                                             
  79 :       NRIGEL=IRIGEL(/2)                                                         
  80 :       DO 20 IRI=1,NRIGEL                                                        
  81 :          MELEME=IRIGEL(1,IRI)                                                   
  82 :          SEGACT,MELEME                                                          
  83 :          DESCR=IRIGEL(3,IRI)                                                    
  84 :          SEGACT,DESCR                                                           
  85 : *                                                                               
  86 : *---     ON REMPLIT MUITRA(IN)=IJ QUI DIT QUE LA IEME INCONNUE                  
  87 : *---     DE LA MATRICE ELEMENTAIRE EST LA JEME DE ININC                         
  88 : *                                                                               
  89 :          NLIGRE=LISINC(/2)                                                      
  90 :          SEGINI MUITRA                                                          
  91 :          DO 21 IN=1,NLIGRE                                                      
  92 :             NI=LISINC(IN)                                                       
  93 :             DO 22 IJ=1,ININC                                                    
  94 :                IF(NI.EQ.IMIK(IJ))  GO TO 23                                     
  95 :  22            CONTINUE                                                         
  96 : *           END DO                                                              
  97 :  23         CONTINUE                                                            
  98 :             IF (NI(1:1).EQ.'R') THEN                                            
  99 :                MUITRA(IN)=-IJ                                                   
 100 :             ELSE                                                                
 101 :                MUITRA(IN)=IJ                                                    
 102 :             ENDIF                                                               
 103 :  21         CONTINUE                                                            
 104 : *        END DO                                                                 
 105 : *                                                                               
 106 : *---     BOUCLE SUR LES MATRICES TRES ELEMENTAIRES                              
 107 : *                                                                               
 108 :          N1=NUM(/1)                                                             
 109 :          N2=NUM(/2)                                                             
 110 :          xMATRI=IRIGEL(4,IRI)                                                   
 111 :          COER=COERIG(IRI)                                                       
 112 :          SEGACT,xMATRI                                                          
 113 :          DO 30 I2=1,N2                                                          
 114 : *                                                                               
 115 : *---        ON REMPLIT LE VECTEUR CONTENANT LA MATRICE LUMPEE                   
 116 : *                                                                               
 117 : *            XMATRI=IMATTT(I2)                                                   
 118 : *            SEGACT,XMATRI                                                       
 119 :             DO 33 IN=1,NLIGRE                                                   
 120 :                J2=ICPR(NUM(NOELEP(IN),I2))                                      
 121 :                J1=MUITRA(IN)                                                    
 122 :                RR=ZERO                                                          
 123 :                IF (J1.LT.0) THEN                                                
 124 : *                  IKO=(IN+1)*IN/2                                               
 125 :                   RR=RE(IN,IN,i2)*COER                                               
 126 :                   J1=-J1                                                        
 127 :                ELSE                                                             
 128 :                   DO 34 JN=1,NLIGRE                                             
 129 : *                     IF (JN.GT.IN) THEN                                         
 130 : *                        IKO=(JN-1)*JN/2+IN                                      
 131 : *                        RR=RR+RE(iko)*COER                                      
 132 : *                     ELSE                                                       
 133 : *                        IKO=(IN-1)*IN/2+JN                                      
 134 :                         RR=RR+RE(JN,IN,i2)*COER                                      
 135 : *                     ENDIF                                                      
 136 :  34                  CONTINUE                                                   
 137 : *                 END DO                                                        
 138 :                ENDIF                                                            
 139 :                IKI=INCPO(J1,J2)                                                 
 140 : * ---- ON NE FAIT PLUS DE TEST SUR RR                                           
 141 :                VECTBB(IKI)=VECTBB(IKI)+RR                                       
 142 :  33            CONTINUE                                                         
 143 : *           END DO                                                              
 144 : *            SEGDES,XMATRI                                                       
 145 :  30         CONTINUE                                                            
 146 : *        END DO                                                                 
 147 :          SEGDES,xMATRI,DESCR,MELEME                                             
 148 :          SEGSUP,MUITRA                                                          
 149 :  20      CONTINUE                                                               
 150 : *     END DO                                                                    
 151 : *                                                                               
 152 : *---  INVERSION DE LA MATRICE LUMPEE                                            
 153 : *                                                                               
 154 :       LIV=VECTBB(/1)                                                            
 155 :       DO 100 IV=1,LIV                                                           
 156 :          VECTBB(IV)=UN/VECTBB(IV)                                               
 157 :  100     CONTINUE                                                               
 158 : *     END DO                                                                    
 159 :       SEGDES,MRIGID                                                       
 160 : *                                                                               
 161 :       END                                                                       
 162 :  
 163 :  
 164 :  
 165 :  
 166 :  
 167 :  
 168 :  
 169 :  
 170 :  

© Cast3M 2003 - All rights reserved.
Disclaimer