Download ellp12.eso

Back to the list

   1 : C ELLP12    SOURCE    CHAT      05/01/12    23:35:16     5004           
   2 :         SUBROUTINE ELLP12(CORRES,XCL,FLAG,NUMERO,MASS,NMAS,                     
   3 :      *                    NP,NP24,NNT,ZA1,ZSM)                                  
   4 : C                                                                               
   5 :       IMPLICIT INTEGER(I-N)
   6 :         IMPLICIT REAL*8     (A-H,O-Y)                                           
   7 :         IMPLICIT COMPLEX*16 (Z)                                                 
   8 : C                                                                               
   9 : C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC        
  10 : C                                                                               
  11 : C   OPERATEUR ELFE LAPLACE POUTRE                                               
  12 : C                                                                               
  13 : C   PROGRAMME APPELE PAR ELLP11 : CALCUL LA DEUXIEME PARTIE DE LA               
  14 : C   MATRICE ZA1 ET DE SECOND MEMBRE ZSM                                         
  15 : C                                                                               
  16 : C                                                                               
  17 : C                                                                               
  18 : C   PARAMETRES :                                                                
  19 : C                                                                               
  20 : C   ENTREE :                                                                    
  21 : C                                                                               
  22 : C   CORRES : TABLEAU D'ENTIER DES NUMEROS DES NOEUDS REELS                      
  23 : C            POUR CHAQUE NOEUD FICTIF                                           
  24 : C   XCL    : TABLEAU DES VALEURS DES CONDITIONS AUX LIMITES                     
  25 : C   FLAG   : TABLEAU DE POINTEURS SUR XCL                                       
  26 : C   NUMERO : TABLEAU DE TRANSFORMATION NUMERO GLOBAL <--> NUMERO LOCAL          
  27 : C                                                                               
  28 : C   NP     : NOMBRE DE POUTRES                                                  
  29 : C   NNT    : NOMBRE DE NOEUDS REELS                                             
  30 : C                                                                               
  31 : C                                                                               
  32 : C   SORTIES :                                                                   
  33 : C                                                                               
  34 : C   ZA1    : TABLEAU COMPLEXE REPRESENTANT LA MATRICE DE "RIGIDITE"             
  35 : C   ZSM    : VECTEUR COMPLEXE SECOND MEMBRE                                     
  36 : C                                                                               
  37 : C                                                                               
  38 : C   AUTEUR : SAINT-DIZIER                                                       
  39 : C   DATE   : 22 DECEMBRE 1989 (VERSION DU 03 AVRIL 1990)                        
  40 : C                                                                               
  41 : C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC            
  42 : C                                                                               
  43 :         COMPLEX*16 ZA1(NP24,*),ZSM(*)                                           
  44 :         REAL*8     XCL(12,*)                                                    
  45 :         INTEGER    FLAG(*),CORRES(*),NUMERO(*),MASS(NNT,4)                      
  46 : C                                                                               
  47 : C **********************************************************************        
  48 : C         REMPLISSAGE DE LA 2EME PARTIE DE ZA1 (INDEPENDANT DE W)               
  49 : C         + 2EME PARTIE DU SECOND MEMBRE                                        
  50 : C **********************************************************************        
  51 : C                                                                               
  52 :         ZI = 1.D0                                                               
  53 : C                                                                               
  54 :         IZA1 = 12 * NP + 1                                                      
  55 :         NP2  = 2 * NP                                                           
  56 : C                                                                               
  57 : C                                                                               
  58 : C ---------------------  CONDITION DE NOEUDS IDENTIQUES                         
  59 : C                                                                               
  60 :         DO 10 I = 1 , NNT                                                       
  61 : C                                                                               
  62 :            ITEST = 0                                                            
  63 :            J = 0                                                                
  64 : C                                                                               
  65 : 11         J = J + 1                                                            
  66 : C                                                                               
  67 :            IF ((CORRES(J).EQ.NUMERO(I)).AND.(ITEST.EQ.0)) THEN                  
  68 :               J0 = J                                                            
  69 :               ITEST = 1                                                         
  70 :            ELSE IF ((CORRES(J).EQ.NUMERO(I)).AND.(ITEST.EQ.1)) THEN             
  71 :               ZA1 (IZA1   , 12*(J0-1)+1 ) = ZI                                  
  72 :               ZA1 (IZA1+1 , 12*(J0-1)+2 ) = ZI                                  
  73 :               ZA1 (IZA1+2 , 12*(J0-1)+3 ) = ZI                                  
  74 :               ZA1 (IZA1+3 , 12*(J0-1)+4 ) = ZI                                  
  75 :               ZA1 (IZA1+4 , 12*(J0-1)+5 ) = ZI                                  
  76 :               ZA1 (IZA1+5 , 12*(J0-1)+6 ) = ZI                                  
  77 : C                                                                               
  78 :               ZA1 (IZA1   , 12*(J-1)+1 ) = -ZI                                  
  79 :               ZA1 (IZA1+1 , 12*(J-1)+2 ) = -ZI                                  
  80 :               ZA1 (IZA1+2 , 12*(J-1)+3 ) = -ZI                                  
  81 :               ZA1 (IZA1+3 , 12*(J-1)+4 ) = -ZI                                  
  82 :               ZA1 (IZA1+4 , 12*(J-1)+5 ) = -ZI                                  
  83 :               ZA1 (IZA1+5 , 12*(J-1)+6 ) = -ZI                                  
  84 :               IZA1 = IZA1 + 6                                                   
  85 : C                                                                               
  86 :               ENDIF                                                             
  87 : C                                                                               
  88 :               IF (J.NE.NP2) GOTO 11                                             
  89 : C                                                                               
  90 : 10      CONTINUE                                                                
  91 : C                                                                               
  92 : C                                                                               
  93 :         DO 100 I = 1 , NNT                                                      
  94 : C                                                                               
  95 : C ---------------------  CONDITION AUX LIMITES SUR LE DEPLACEMENT               
  96 : C                                                                               
  97 :             IF (FLAG((I-1)*12+1).EQ.I) THEN                                     
  98 : C                                                                               
  99 :             J = 0                                                               
 100 :             ISTOP = 0                                                           
 101 : 20          J = J + 1                                                           
 102 :             IF ((CORRES(J).EQ.NUMERO(I)).AND.(ISTOP.EQ.0)) THEN                 
 103 : C                                                                               
 104 :                 ZA1 (IZA1   , 12*(J-1)+1 ) = ZI                                 
 105 :                 ZSM ( IZA1  ) = CMPLX(XCL ( 1,I))                               
 106 : C                                                                               
 107 :                 IZA1 = IZA1 + 1                                                 
 108 :                 ISTOP = 1                                                       
 109 : C                                                                               
 110 :               ENDIF                                                             
 111 : C                                                                               
 112 :               IF (J.NE.NP2) GO TO 20                                            
 113 : C                                                                               
 114 :             END IF                                                              
 115 : C                                                                               
 116 : C                                                                               
 117 :             IF (FLAG((I-1)*12+2).EQ.I) THEN                                     
 118 : C                                                                               
 119 :             J = 0                                                               
 120 :             ISTOP = 0                                                           
 121 : 21          J = J + 1                                                           
 122 :             IF ((CORRES(J).EQ.NUMERO(I)).AND.(ISTOP.EQ.0)) THEN                 
 123 : C                                                                               
 124 :                 ZA1 (IZA1   , 12*(J-1)+2 ) = ZI                                 
 125 :                 ZSM ( IZA1  ) = CMPLX(XCL ( 2,I))                               
 126 : C                                                                               
 127 :                 IZA1 = IZA1 + 1                                                 
 128 :                 ISTOP = 1                                                       
 129 : C                                                                               
 130 :               ENDIF                                                             
 131 : C                                                                               
 132 :               IF (J.NE.NP2) GO TO 21                                            
 133 : C                                                                               
 134 :             END IF                                                              
 135 : C                                                                               
 136 : C                                                                               
 137 :             IF (FLAG((I-1)*12+3).EQ.I) THEN                                     
 138 : C                                                                               
 139 :             J = 0                                                               
 140 :             ISTOP = 0                                                           
 141 : 22          J = J + 1                                                           
 142 :             IF ((CORRES(J).EQ.NUMERO(I)).AND.(ISTOP.EQ.0)) THEN                 
 143 : C                                                                               
 144 :                 ZA1 (IZA1   , 12*(J-1)+3 ) = ZI                                 
 145 :                 ZSM ( IZA1  ) = CMPLX(XCL ( 3,I))                               
 146 : C                                                                               
 147 :                 IZA1 = IZA1 + 1                                                 
 148 :                 ISTOP = 1                                                       
 149 : C                                                                               
 150 :               ENDIF                                                             
 151 : C                                                                               
 152 :               IF (J.NE.NP2) GO TO 22                                            
 153 : C                                                                               
 154 :             END IF                                                              
 155 : C                                                                               
 156 : C ---------------------  CONDITION AUX LIMITES SUR LA ROTATION                  
 157 : C                                                                               
 158 :             IF (FLAG((I-1)*12+4).EQ.I) THEN                                     
 159 : C                                                                               
 160 :               J = 0                                                             
 161 :               ISTOP = 0                                                         
 162 : 30            J = J + 1                                                         
 163 :               IF ((CORRES(J).EQ.NUMERO(I)).AND.(ISTOP.EQ.0)) THEN               
 164 : C                                                                               
 165 :                 ZA1 (IZA1   , 12*(J-1)+4 ) = ZI                                 
 166 :                 ZSM ( IZA1  ) = CMPLX(XCL ( 4,I))                               
 167 : C                                                                               
 168 :                 IZA1 = IZA1 + 1                                                 
 169 :                 ISTOP = 1                                                       
 170 : C                                                                               
 171 :               ENDIF                                                             
 172 : C                                                                               
 173 :               IF (J.NE.NP2) GO TO 30                                            
 174 : C                                                                               
 175 :             END IF                                                              
 176 : C                                                                               
 177 : C                                                                               
 178 :             IF (FLAG((I-1)*12+5).EQ.I) THEN                                     
 179 : C                                                                               
 180 :               J = 0                                                             
 181 :               ISTOP = 0                                                         
 182 : 31            J = J + 1                                                         
 183 :               IF ((CORRES(J).EQ.NUMERO(I)).AND.(ISTOP.EQ.0)) THEN               
 184 : C                                                                               
 185 :                 ZA1 (IZA1   , 12*(J-1)+5 ) = ZI                                 
 186 :                 ZSM ( IZA1  ) = CMPLX(XCL ( 5,I))                               
 187 : C                                                                               
 188 :                 IZA1 = IZA1 + 1                                                 
 189 :                 ISTOP = 1                                                       
 190 : C                                                                               
 191 :               ENDIF                                                             
 192 : C                                                                               
 193 :               IF (J.NE.NP2) GO TO 31                                            
 194 : C                                                                               
 195 :             END IF                                                              
 196 : C                                                                               
 197 : C                                                                               
 198 :             IF (FLAG((I-1)*12+6).EQ.I) THEN                                     
 199 : C                                                                               
 200 :               J = 0                                                             
 201 :               ISTOP = 0                                                         
 202 : 32            J = J + 1                                                         
 203 :               IF ((CORRES(J).EQ.NUMERO(I)).AND.(ISTOP.EQ.0)) THEN               
 204 : C                                                                               
 205 :                 ZA1 (IZA1   , 12*(J-1)+6 ) = ZI                                 
 206 :                 ZSM ( IZA1  ) = CMPLX(XCL ( 6,I))                               
 207 : C                                                                               
 208 :                 IZA1 = IZA1 + 1                                                 
 209 :                 ISTOP = 1                                                       
 210 : C                                                                               
 211 :               ENDIF                                                             
 212 : C                                                                               
 213 :               IF (J.NE.NP2) GO TO 32                                            
 214 : C                                                                               
 215 :             END IF                                                              
 216 : C                                                                               
 217 : C ---------------------  CONDITION AUX LIMITES SUR LA FORCE                     
 218 : C                                                                               
 219 :             IF (FLAG((I-1)*12+1).EQ.0) THEN                                     
 220 : C                                                                               
 221 :               DO 40 J = 1 , 2*NP                                                
 222 :                   IF (CORRES(J).EQ.NUMERO(I)) THEN                              
 223 : C                                                                               
 224 :                     ZA1 (IZA1   , 12*(J-1)+7 ) = ZI                             
 225 : C                                                                               
 226 :                   END IF                                                        
 227 : 40            CONTINUE                                                          
 228 : C                                                                               
 229 :               ZSM ( IZA1  ) =  CMPLX(XCL(7,I))                                  
 230 : C                                                                               
 231 :               IF (NMAS.GT.0) THEN                                               
 232 :                 DO 41 I1 = 1 , NMAS                                             
 233 :                   IF (CORRES(MASS(I1,1)).EQ.NUMERO(I)) THEN                     
 234 :                     MASS(I1,4) = IZA1                                           
 235 :                   END IF                                                        
 236 : 41              CONTINUE                                                        
 237 :               END IF                                                            
 238 : C                                                                               
 239 :               IZA1 = IZA1 + 1                                                   
 240 : C                                                                               
 241 :             END IF                                                              
 242 : C                                                                               
 243 : C                                                                               
 244 :             IF (FLAG((I-1)*12+2).EQ.0) THEN                                     
 245 : C                                                                               
 246 :               DO 42 J = 1 , 2*NP                                                
 247 :                   IF (CORRES(J).EQ.NUMERO(I)) THEN                              
 248 :                     ZA1 (IZA1   , 12*(J-1)+8 ) = ZI                             
 249 : C                                                                               
 250 :                   END IF                                                        
 251 : 42            CONTINUE                                                          
 252 : C                                                                               
 253 :               ZSM ( IZA1  ) =  CMPLX(XCL(8,I))                                  
 254 : C                                                                               
 255 :               IF (NMAS.GT.0) THEN                                               
 256 :                 DO 43 I1 = 1 , NMAS                                             
 257 :                   IF (CORRES(MASS(I1,1)).EQ.NUMERO(I)) THEN                     
 258 :                     MASS(I1,4) = IZA1-1                                         
 259 :                   END IF                                                        
 260 : 43              CONTINUE                                                        
 261 :               END IF                                                            
 262 : C                                                                               
 263 :               IZA1 = IZA1 + 1                                                   
 264 : C                                                                               
 265 :             END IF                                                              
 266 : C                                                                               
 267 : C                                                                               
 268 :             IF (FLAG((I-1)*12+3).EQ.0) THEN                                     
 269 : C                                                                               
 270 :               DO 44 J = 1 , 2*NP                                                
 271 :                   IF (CORRES(J).EQ.NUMERO(I)) THEN                              
 272 :                     ZA1 (IZA1   , 12*(J-1)+9 ) = ZI                             
 273 : C                                                                               
 274 :                   END IF                                                        
 275 : 44            CONTINUE                                                          
 276 : C                                                                               
 277 :               ZSM ( IZA1  ) =  CMPLX(XCL(9,I))                                  
 278 : C                                                                               
 279 :               IF (NMAS.GT.0) THEN                                               
 280 :                 DO 45 I1 = 1 , NMAS                                             
 281 :                   IF (CORRES(MASS(I1,1)).EQ.NUMERO(I)) THEN                     
 282 :                     MASS(I1,4) = IZA1-2                                         
 283 :                   END IF                                                        
 284 : 45              CONTINUE                                                        
 285 :               END IF                                                            
 286 : C                                                                               
 287 :               IZA1 = IZA1 + 1                                                   
 288 : C                                                                               
 289 :             END IF                                                              
 290 : C                                                                               
 291 : C ---------------------  CONDITION AUX LIMITES SUR LE MOMENT                    
 292 : C                                                                               
 293 :             IF (FLAG((I-1)*12+4).EQ.0) THEN                                     
 294 : C                                                                               
 295 :               DO 50 J = 1 , 2*NP                                                
 296 :                   IF (CORRES(J).EQ.NUMERO(I)) THEN                              
 297 :                     ZA1 (IZA1   , 12*(J-1)+10) = ZI                             
 298 :                   END IF                                                        
 299 : 50            CONTINUE                                                          
 300 : C                                                                               
 301 :               ZSM ( IZA1  ) =  CMPLX(XCL(10,I))                                 
 302 : C                                                                               
 303 :               IF (NMAS.GT.0) THEN                                               
 304 :                 DO 51 I1 = 1 , NMAS                                             
 305 :                   IF (CORRES(MASS(I1,1)).EQ.NUMERO(I)) THEN                     
 306 :                     MASS(I1,4) = IZA1-3                                         
 307 :                   END IF                                                        
 308 : 51              CONTINUE                                                        
 309 :               END IF                                                            
 310 : C                                                                               
 311 :               IZA1 = IZA1 + 1                                                   
 312 : C                                                                               
 313 :             END IF                                                              
 314 : C                                                                               
 315 : C                                                                               
 316 :             IF (FLAG((I-1)*12+5).EQ.0) THEN                                     
 317 : C                                                                               
 318 :               DO 52 J = 1 , 2*NP                                                
 319 :                   IF (CORRES(J).EQ.NUMERO(I)) THEN                              
 320 :                     ZA1 (IZA1   , 12*(J-1)+11) = ZI                             
 321 :                   END IF                                                        
 322 : 52            CONTINUE                                                          
 323 : C                                                                               
 324 :               ZSM ( IZA1  ) =  CMPLX(XCL(11,I))                                 
 325 : C                                                                               
 326 :               IF (NMAS.GT.0) THEN                                               
 327 :                 DO 53 I1 = 1 , NMAS                                             
 328 :                   IF (CORRES(MASS(I1,1)).EQ.NUMERO(I)) THEN                     
 329 :                     MASS(I1,4) = IZA1-4                                         
 330 :                   END IF                                                        
 331 : 53              CONTINUE                                                        
 332 :               END IF                                                            
 333 : C                                                                               
 334 :               IZA1 = IZA1 + 1                                                   
 335 : C                                                                               
 336 :             END IF                                                              
 337 : C                                                                               
 338 : C                                                                               
 339 :             IF (FLAG((I-1)*12+6).EQ.0) THEN                                     
 340 : C                                                                               
 341 :               DO 54 J = 1 , 2*NP                                                
 342 :                   IF (CORRES(J).EQ.NUMERO(I)) THEN                              
 343 :                     ZA1 (IZA1   , 12*(J-1)+12) = ZI                             
 344 :                   END IF                                                        
 345 : 54            CONTINUE                                                          
 346 : C                                                                               
 347 :               ZSM ( IZA1  ) =  CMPLX(XCL(12,I))                                 
 348 : C                                                                               
 349 :               IF (NMAS.GT.0) THEN                                               
 350 :                 DO 55 I1 = 1 , NMAS                                             
 351 :                   IF (CORRES(MASS(I1,1)).EQ.NUMERO(I)) THEN                     
 352 :                     MASS(I1,4) = IZA1-5                                         
 353 :                   END IF                                                        
 354 : 55              CONTINUE                                                        
 355 :               END IF                                                            
 356 : C                                                                               
 357 :               IZA1 = IZA1 + 1                                                   
 358 : C                                                                               
 359 :             END IF                                                              
 360 : C                                                                               
 361 : C                                                                               
 362 : 100     CONTINUE                                                                
 363 : C                                                                               
 364 :         END                                                                     
 365 :  

© Cast3M 2003 - All rights reserved.
Disclaimer