Download ella12.eso

Back to the list

   1 : C ELLA12    SOURCE    CHAT      05/01/12    23:34:04     5004           
   2 :        SUBROUTINE ELLA12(CORRES ,XCL  ,FLAG   ,NUMERO, CARACT ,COOR,
   3 :      &                   MASS   ,NMAS ,IRAILO ,VALRAI, NRAIDE ,
   4 :      &                   NP,NP28,NNT,ZA1,ZSM,ZS,XPI,IMP)
   5 : C
   6 : C   OPERATEUR ELFE LAPLACE ACOU
   7 : C
   8 : C   PROGRAMME APPELE PAR ELLA11 : CALCUL LA DEUXIEME PARTIE DE LA
   9 : C   MATRICE ZA1 ET DE SECOND MEMBRE ZSM
  10 : C
  11 : C   PARAMETRES :
  12 : C
  13 : C   ENTREE :
  14 : C
  15 : C   CORRES : TABLEAU D'ENTIER DES NUMEROS DES NOEUDS REELS
  16 : C                                             POUR CHAQUE NOEUD FICTIF
  17 : C   XCL    : TABLEAU DES VALEURS DES CONDITIONS AUX LIMITES
  18 : C   FLAG   : TABLEAU DE POINTEURS SUR XCL
  19 : C   NUMERO : TABLEAU DE TRANSFORMATION NUMERO GLOBAL <--> NUMERO LOCAL
  20 : C   CARACT : TABLEAU DES CARACTERISTIQUES DES POUTRES
  21 : C   COOR   : TABLEAU DES COORDONNEES DES NOEUDS FICTIFS
  22 : C
  23 : C   NP     : NOMBRE DE POUTRES
  24 : C   NNT    : NOMBRE DE NOEUDS REELS
  25 : C   ZS     : VALEUR DE S = S0 + I W
  26 : C   XPI    : VALEUR PRECISE DE PI
  27 : C
  28 : C
  29 : C   SORTIES :
  30 : C
  31 : C   ZA1    : TABLEAU COMPLEXE REPRESENTANT LA MATRICE DE "RIGIDITE"
  32 : C   ZSM    : VECTEUR COMPLEXE SECOND MEMBRE
  33 : C
  34 : C
  35 : C   AUTEURS      : SAINT-DIZIER ET GORCY
  36 : 
  37 : C   DATE         : 29 JANVIER 1991
  38 : C   MODIFICATION : 26 JUIN 1991
  39 : C
  40 : C
  41 :       IMPLICIT INTEGER(I-N)
  42 :       COMPLEX*16 ZA1,ZSM,ZB,ZI,ZS
  43 :       REAL*8           XCL,CARACT,COOR,VALRAI,XPI,X1,Y1,Z1,X2,Y2,Z2,
  44 :      &                 XI1,XI2,XI3,XL,CSEF,CROF
  45 :       INTEGER    FLAG,CORRES,NUMERO,MASS,IRAILO,J0,JCOLO
  46 : C
  47 :       DIMENSION ZA1(NP28,*),ZSM(*)
  48 :       DIMENSION XCL(17,*),CARACT(10,*),COOR(3,*),VALRAI(6,*),
  49 :      &          FLAG(*),CORRES(*),NUMERO(*),MASS(4,*),IRAILO(4,*)
  50 : C
  51 : C         REMPLISSAGE DE LA 2EME PARTIE DE ZA1 (INDEPENDANT DE W)
  52 : C         + 2EME PARTIE DU SECOND MEMBRE
  53 : C
  54 :       J0=0
  55 :       JCOLO=0
  56 :       ZI = CMPLX(1.D0,0.D0)
  57 : C
  58 :       IZA1 = 14 * NP + 1
  59 :       NP2  = 2 * NP
  60 : C
  61 : C ---------------------  CONDITION DE NOEUDS IDENTIQUES
  62 : C                        (CONTINUITE DU DEPLACEMENT ET DE LA PRESSION)
  63 : C
  64 :       DO 10 I = 1 , NNT
  65 : C
  66 :            ITEST = 0
  67 :            J = 0
  68 : C
  69 : 11         J = J + 1
  70 : C
  71 :            IF ((CORRES(J).EQ.NUMERO(I)).AND.(ITEST.EQ.0)) THEN
  72 :               J0 = J
  73 :               ITEST = 1
  74 :            ELSE IF ((CORRES(J).EQ.NUMERO(I)).AND.(ITEST.EQ.1)) THEN
  75 : C
  76 :               ZA1 (IZA1   , 14*(J0-1)+1 ) = -ZI
  77 :               ZA1 (IZA1+1 , 14*(J0-1)+2 ) = -ZI
  78 :               ZA1 (IZA1+2 , 14*(J0-1)+3 ) = -ZI
  79 :               ZA1 (IZA1+3 , 14*(J0-1)+4 ) = -ZI
  80 :               ZA1 (IZA1+4 , 14*(J0-1)+5 ) = -ZI
  81 :               ZA1 (IZA1+5 , 14*(J0-1)+6 ) = -ZI
  82 :               ZA1 (IZA1+6 , 14*(J0-1)+13) = -ZI
  83 : C
  84 :               ZA1 (IZA1   , 14*(J-1)+1 ) = ZI
  85 :               ZA1 (IZA1+1 , 14*(J-1)+2 ) = ZI
  86 :               ZA1 (IZA1+2 , 14*(J-1)+3 ) = ZI
  87 :               ZA1 (IZA1+3 , 14*(J-1)+4 ) = ZI
  88 :               ZA1 (IZA1+4 , 14*(J-1)+5 ) = ZI
  89 :               ZA1 (IZA1+5 , 14*(J-1)+6 ) = ZI
  90 :               ZA1 (IZA1+6 , 14*(J-1)+13) = ZI
  91 : C
  92 : C     INTRODUCTION DES SOUPLESSES DANS LA MATRICE ZA1
  93 : C
  94 :       IF (NRAIDE.GT.0) THEN
  95 : C
  96 :       DO 15 IM1 = 1 , NRAIDE
  97 : C
  98 :       IF (IRAILO(4,IM1).EQ.2) THEN
  99 : C
 100 : C     COUDE
 101 : C
 102 :       JCOLO=(14*(IRAILO(2,IM1)-1) ) + 7
 103 :       ELSE IF (IRAILO(4,IM1).EQ.3) THEN
 104 : C
 105 : C     TE
 106 : C
 107 :       JCOLO=(14*(IRAILO(1,IM1)-1) ) + 7
 108 :       ELSE
 109 :         IF (IMP.NE.0) THEN
 110 :           WRITE(IMP,*)
 111 :         ENDIF
 112 :   600 FORMAT(1X,'IL Y A UNE ERREUR')
 113 :       END IF
 114 : C
 115 :       IF ( (IRAILO(2,IM1).EQ.J0).OR.(IRAILO(1,IM1).EQ.J) ) THEN
 116 : C
 117 :       ZA1 (IZA1  , JCOLO     ) = CMPLX( (-1.D0)**IRAILO(4,IM1)/
 118 :      &                                   VALRAI(1,IM1) )
 119 :       ZA1 (IZA1+1, JCOLO + 1 ) = CMPLX( (-1.D0)**IRAILO(4,IM1)/
 120 :      &                                   VALRAI(2,IM1) )
 121 :       ZA1 (IZA1+2, JCOLO + 2 ) = CMPLX( (-1.D0)**IRAILO(4,IM1)/
 122 :      &                                   VALRAI(3,IM1) )
 123 :       ZA1 (IZA1+3, JCOLO + 3 ) = CMPLX( (-1.D0)**IRAILO(4,IM1)/
 124 :      &                                   VALRAI(4,IM1) )
 125 :       ZA1 (IZA1+4, JCOLO + 4 ) = CMPLX( (-1.D0)**IRAILO(4,IM1)/
 126 :      &                                   VALRAI(5,IM1) )
 127 :       ZA1 (IZA1+5, JCOLO + 5 ) = CMPLX( (-1.D0)**IRAILO(4,IM1)/
 128 :      &                                   VALRAI(6,IM1) )
 129 : 
 130 :       END IF
 131 : C
 132 : 15      CONTINUE
 133 :       END IF
 134 : C
 135 :               ZSM ( IZA1+6 ) = CMPLX(XCL ( 13,I))
 136 : C
 137 :               IZA1 = IZA1 + 7
 138 : C
 139 :            END IF
 140 : C
 141 :            IF (J.NE.NP2) GOTO 11
 142 : C
 143 : 10      CONTINUE
 144 : C
 145 :         DO 100 I = 1 , NNT
 146 : C
 147 : C ---------------------  CONDITION AUX LIMITES SUR LE DEPLACEMENT
 148 : C
 149 :             IF (FLAG((I-1)*17+1).EQ.I) THEN
 150 : C
 151 :             J = 0
 152 :             ISTOP = 0
 153 : 20          J = J + 1
 154 :             IF ((CORRES(J).EQ.NUMERO(I)).AND.(ISTOP.EQ.0)) THEN
 155 : C
 156 :                 ZA1 (IZA1   , 14*(J-1)+1 ) = ZI
 157 :                 ZSM ( IZA1  ) = CMPLX(XCL ( 1,I))
 158 : C
 159 :                 IZA1 = IZA1 + 1
 160 :                 ISTOP = 1
 161 : C
 162 :               END IF
 163 : C
 164 :               IF (J.NE.NP2) GO TO 20
 165 : C
 166 :             END IF
 167 : C
 168 :             IF (FLAG((I-1)*17+2).EQ.I) THEN
 169 : C
 170 :             J = 0
 171 :             ISTOP = 0
 172 : 21          J = J + 1
 173 :             IF ((CORRES(J).EQ.NUMERO(I)).AND.(ISTOP.EQ.0)) THEN
 174 : C
 175 :                 ZA1 (IZA1   , 14*(J-1)+2 ) = ZI
 176 :                 ZSM ( IZA1  ) = CMPLX(XCL ( 2,I))
 177 : C
 178 :                 IZA1 = IZA1 + 1
 179 :                 ISTOP = 1
 180 : C
 181 :               END IF
 182 : C
 183 :               IF (J.NE.NP2) GO TO 21
 184 : C
 185 :             END IF
 186 : C
 187 : C
 188 :             IF (FLAG((I-1)*17+3).EQ.I) THEN
 189 : C
 190 :             J = 0
 191 :             ISTOP = 0
 192 : 22          J = J + 1
 193 :             IF ((CORRES(J).EQ.NUMERO(I)).AND.(ISTOP.EQ.0)) THEN
 194 : C
 195 :                 ZA1 (IZA1   , 14*(J-1)+3 ) = ZI
 196 :                 ZSM ( IZA1  ) = CMPLX(XCL ( 3,I))
 197 : C
 198 :                 IZA1 = IZA1 + 1
 199 :                 ISTOP = 1
 200 : C
 201 :               END IF
 202 : C
 203 :               IF (J.NE.NP2) GO TO 22
 204 : C
 205 :             END IF
 206 : C
 207 : C ---------------------  CONDITION AUX LIMITES SUR LA ROTATION
 208 : C
 209 :             IF (FLAG((I-1)*17+4).EQ.I) THEN
 210 : C
 211 :               J = 0
 212 :               ISTOP = 0
 213 : 30            J = J + 1
 214 :               IF ((CORRES(J).EQ.NUMERO(I)).AND.(ISTOP.EQ.0)) THEN
 215 : C
 216 :                 ZA1 (IZA1   , 14*(J-1)+4 ) = ZI
 217 :                 ZSM ( IZA1  ) = CMPLX(XCL ( 4,I))
 218 : C
 219 :                 IZA1 = IZA1 + 1
 220 :                 ISTOP = 1
 221 : C
 222 :               END IF
 223 : C
 224 :               IF (J.NE.NP2) GO TO 30
 225 : C
 226 :             END IF
 227 : C
 228 :             IF (FLAG((I-1)*17+5).EQ.I) THEN
 229 : C
 230 :               J = 0
 231 :               ISTOP = 0
 232 : 31            J = J + 1
 233 :               IF ((CORRES(J).EQ.NUMERO(I)).AND.(ISTOP.EQ.0)) THEN
 234 : C
 235 :                 ZA1 (IZA1   , 14*(J-1)+5 ) = ZI
 236 :                 ZSM ( IZA1  ) = CMPLX(XCL ( 5,I))
 237 : C
 238 :                 IZA1 = IZA1 + 1
 239 :                 ISTOP = 1
 240 : C
 241 :               END IF
 242 : C
 243 :               IF (J.NE.NP2) GO TO 31
 244 : C
 245 :             END IF
 246 : C
 247 :             IF (FLAG((I-1)*17+6).EQ.I) THEN
 248 : C
 249 :               J = 0
 250 :               ISTOP = 0
 251 : 32            J = J + 1
 252 :               IF ((CORRES(J).EQ.NUMERO(I)).AND.(ISTOP.EQ.0)) THEN
 253 : C
 254 :                 ZA1 (IZA1   , 14*(J-1)+6 ) = ZI
 255 :                 ZSM ( IZA1  ) = CMPLX(XCL ( 6,I))
 256 : C
 257 :                 IZA1 = IZA1 + 1
 258 :                 ISTOP = 1
 259 : C
 260 :               END IF
 261 : C
 262 :               IF (J.NE.NP2) GO TO 32
 263 : C
 264 :             END IF
 265 : C
 266 : C ---------------------  CONDITION AUX LIMITES SUR LA FORCE
 267 : C
 268 :             IF (FLAG((I-1)*17+1).EQ.0) THEN
 269 : C
 270 :               DO 40 J = 1 , 2*NP
 271 :                   IF (CORRES(J).EQ.NUMERO(I)) THEN
 272 : C
 273 :                     INP = INT((J+1)/2)
 274 :                     CSEF = XPI * CARACT(4,INP) * CARACT(4,INP)
 275 :                     N1 = 2*INP-1
 276 :                     N2 = 2*INP
 277 :                     X1 = COOR (1,N1)
 278 :                     Y1 = COOR (2,N1)
 279 :                     Z1 = COOR (3,N1)
 280 :                     X2 = COOR (1,N2)
 281 :                     Y2 = COOR (2,N2)
 282 :                     Z2 = COOR (3,N2)
 283 :                     XL = SQRT((X2-X1)**2 + (Y2-Y1)**2 + (Z2-Z1)**2)
 284 : C
 285 :                     XI1 = (X2-X1)/XL
 286 :                     IF (J.EQ.N2) THEN
 287 :                        XI1 = -XI1
 288 :                     END IF
 289 : C
 290 :                     ZA1 (IZA1   , 14*(J-1)+7 ) = ZI
 291 :                     ZA1 (IZA1   , 14*(J-1)+13) = -CMPLX( CSEF*XI1 )
 292 : C
 293 :                   END IF
 294 : 40            CONTINUE
 295 : C
 296 :               ZSM ( IZA1  ) = -CMPLX(XCL(7,I))
 297 : C
 298 :               IF (NMAS.GT.0) THEN
 299 :                 DO 41 I1 = 1 , NMAS
 300 :                   IF (CORRES(MASS(1,I1)).EQ.NUMERO(I)) THEN
 301 :                     MASS(4,I1) = IZA1
 302 :                   END IF
 303 : 41              CONTINUE
 304 :               END IF
 305 : C
 306 :               IZA1 = IZA1 + 1
 307 : C
 308 :             END IF
 309 : C
 310 : C
 311 :             IF (FLAG((I-1)*17+2).EQ.0) THEN
 312 : C
 313 :               DO 42 J = 1 , 2*NP
 314 :                   IF (CORRES(J).EQ.NUMERO(I)) THEN
 315 : C
 316 :                     INP = INT((J+1)/2)
 317 :                     CSEF = XPI * CARACT(4,INP) * CARACT(4,INP)
 318 :                     N1 = 2*INP-1
 319 :                     N2 = 2*INP
 320 :                     X1 = COOR (1,N1)
 321 :                     Y1 = COOR (2,N1)
 322 :                     Z1 = COOR (3,N1)
 323 :                     X2 = COOR (1,N2)
 324 :                     Y2 = COOR (2,N2)
 325 :                     Z2 = COOR (3,N2)
 326 :                     XL = SQRT((X2-X1)**2 + (Y2-Y1)**2 + (Z2-Z1)**2)
 327 : C
 328 :                     XI2 = (Y2-Y1)/XL
 329 :                     IF (J.EQ.N2) THEN
 330 :                        XI2 = -XI2
 331 :                     END IF
 332 : C
 333 :                     ZA1 (IZA1   , 14*(J-1)+8 ) = ZI
 334 :                     ZA1 (IZA1   , 14*(J-1)+13) = -CMPLX( CSEF*XI2 )
 335 : C
 336 :                   END IF
 337 : 42            CONTINUE
 338 : C
 339 :               ZSM ( IZA1  ) = -CMPLX(XCL(8,I))
 340 : C
 341 :               IF (NMAS.GT.0) THEN
 342 :                 DO 43 I1 = 1 , NMAS
 343 :                   IF (CORRES(MASS(1,I1)).EQ.NUMERO(I)) THEN
 344 :                     MASS(4,I1) = IZA1-1
 345 :                   END IF
 346 : 43              CONTINUE
 347 :               END IF
 348 : C
 349 :               IZA1 = IZA1 + 1
 350 : C
 351 :             END IF
 352 : C
 353 : C
 354 :             IF (FLAG((I-1)*17+3).EQ.0) THEN
 355 : C
 356 :               DO 44 J = 1 , 2*NP
 357 :                   IF (CORRES(J).EQ.NUMERO(I)) THEN
 358 : C
 359 :                     INP = INT((J+1)/2)
 360 :                     CSEF = XPI * CARACT(4,INP) * CARACT(4,INP)
 361 :                     N1 = 2*INP-1
 362 :                     N2 = 2*INP
 363 :                     X1 = COOR (1,N1)
 364 :                     Y1 = COOR (2,N1)
 365 :                     Z1 = COOR (3,N1)
 366 :                     X2 = COOR (1,N2)
 367 :                     Y2 = COOR (2,N2)
 368 :                     Z2 = COOR (3,N2)
 369 :                     XL = SQRT((X2-X1)**2 + (Y2-Y1)**2 + (Z2-Z1)**2)
 370 : C
 371 :                     XI3 = (Z2-Z1)/XL
 372 :                     IF (J.EQ.N2) THEN
 373 :                        XI3 = -XI3
 374 :                     END IF
 375 : C
 376 :                     ZA1 (IZA1   , 14*(J-1)+9 ) = ZI
 377 :                     ZA1 (IZA1   , 14*(J-1)+13) = -CMPLX( CSEF*XI3 )
 378 : C
 379 :                   END IF
 380 : 44            CONTINUE
 381 : C
 382 :               ZSM ( IZA1  ) = -CMPLX(XCL(9,I))
 383 : C
 384 :               IF (NMAS.GT.0) THEN
 385 :                 DO 45 I1 = 1 , NMAS
 386 :                   IF (CORRES(MASS(1,I1)).EQ.NUMERO(I)) THEN
 387 :                     MASS(4,I1) = IZA1-2
 388 :                   END IF
 389 : 45              CONTINUE
 390 :               END IF
 391 : C
 392 :               IZA1 = IZA1 + 1
 393 : C
 394 :             END IF
 395 : C
 396 : C ---------------------  CONDITION AUX LIMITES SUR LE MOMENT
 397 : C
 398 :             IF (FLAG((I-1)*17+4).EQ.0) THEN
 399 : C
 400 :               DO 50 J = 1 , 2*NP
 401 :                   IF (CORRES(J).EQ.NUMERO(I)) THEN
 402 :                     ZA1 (IZA1   , 14*(J-1)+10) = ZI
 403 :                   END IF
 404 : 50            CONTINUE
 405 : C
 406 :               ZSM ( IZA1  ) = -CMPLX(XCL(10,I))
 407 : C
 408 :               IF (NMAS.GT.0) THEN
 409 :                 DO 51 I1 = 1 , NMAS
 410 :                   IF (CORRES(MASS(1,I1)).EQ.NUMERO(I)) THEN
 411 :                     MASS(4,I1) = IZA1-3
 412 :                   END IF
 413 : 51              CONTINUE
 414 :               END IF
 415 : C
 416 :               IZA1 = IZA1 + 1
 417 : C
 418 :             END IF
 419 : C
 420 : C
 421 :             IF (FLAG((I-1)*17+5).EQ.0) THEN
 422 : C
 423 :               DO 52 J = 1 , 2*NP
 424 :                   IF (CORRES(J).EQ.NUMERO(I)) THEN
 425 :                     ZA1 (IZA1   , 14*(J-1)+11) = ZI
 426 :                   END IF
 427 : 52            CONTINUE
 428 : C
 429 :               ZSM ( IZA1  ) = -CMPLX(XCL(11,I))
 430 : C
 431 :               IF (NMAS.GT.0) THEN
 432 :                 DO 53 I1 = 1 , NMAS
 433 :                   IF (CORRES(MASS(1,I1)).EQ.NUMERO(I)) THEN
 434 :                     MASS(4,I1) = IZA1-4
 435 :                   END IF
 436 : 53              CONTINUE
 437 :               END IF
 438 : C
 439 :               IZA1 = IZA1 + 1
 440 : C
 441 :             END IF
 442 : C
 443 : C
 444 :             IF (FLAG((I-1)*17+6).EQ.0) THEN
 445 : C
 446 :               DO 54 J = 1 , 2*NP
 447 :                   IF (CORRES(J).EQ.NUMERO(I)) THEN
 448 :                     ZA1 (IZA1   , 14*(J-1)+12) = ZI
 449 :                   END IF
 450 : 54            CONTINUE
 451 : C
 452 :               ZSM ( IZA1  ) = -CMPLX(XCL(12,I))
 453 : C
 454 :               IF (NMAS.GT.0) THEN
 455 :                 DO 55 I1 = 1 , NMAS
 456 :                   IF (CORRES(MASS(1,I1)).EQ.NUMERO(I)) THEN
 457 :                     MASS(4,I1) = IZA1-5
 458 :                   END IF
 459 : 55              CONTINUE
 460 :               END IF
 461 : C
 462 :               IZA1 = IZA1 + 1
 463 : C
 464 :             END IF
 465 : C
 466 : C---------------------  CONDITION AUX LIMITES SUR LE DEBIT
 467 : C
 468 :             IF (FLAG((I-1)*17+15).EQ.0) THEN
 469 : C
 470 :               DO 60 J = 1 , 2*NP
 471 :                   IF (CORRES(J).EQ.NUMERO(I)) THEN
 472 : C
 473 :                     INP = INT((J+1)/2)
 474 :                     CSEF = XPI * CARACT(4,INP) * CARACT(4,INP)
 475 :                     CROF = CARACT(9,INP)
 476 :                     N1 = 2*INP-1
 477 :                     N2 = 2*INP
 478 :                     X1 = COOR (1,N1)
 479 :                     Y1 = COOR (2,N1)
 480 :                     Z1 = COOR (3,N1)
 481 :                     X2 = COOR (1,N2)
 482 :                     Y2 = COOR (2,N2)
 483 :                     Z2 = COOR (3,N2)
 484 :                     XL = SQRT((X2-X1)**2 + (Y2-Y1)**2 + (Z2-Z1)**2)
 485 : C
 486 :                     XI1 = (X2-X1)/XL
 487 :                     XI2 = (Y2-Y1)/XL
 488 :                     XI3 = (Z2-Z1)/XL
 489 :                     IF (J.EQ.N2) THEN
 490 :                        XI1 = -XI1
 491 :                        XI2 = -XI2
 492 :                        XI3 = -XI3
 493 :                     END IF
 494 : C
 495 :                     ZA1 (IZA1 , 14*(J-1)+14) = ZI
 496 :                     IF (J.EQ.N2) ZA1 (IZA1 , 14*(J-1)+14) = -ZI
 497 :                        ZA1 (IZA1 , 14*(J-1)+1) = -ZS * ( CROF*CSEF*XI1 )
 498 :                        ZA1 (IZA1 , 14*(J-1)+2) = -ZS * ( CROF*CSEF*XI2 )
 499 :                        ZA1 (IZA1 , 14*(J-1)+3) = -ZS * ( CROF*CSEF*XI3 )
 500 : C
 501 :                   END IF
 502 : C
 503 : 60            CONTINUE
 504 : C
 505 :                     ZSM (IZA1  ) = CMPLX(XCL(14,I))
 506 : C
 507 :                     IZA1 =IZA1 + 1
 508 :             END IF
 509 : C
 510 : C---------------------  CONDITION AUX LIMITES D'IMPEDANCE ACOUSTIQUE
 511 : C
 512 :            IF (FLAG((I-1)*17+15).EQ.I) THEN
 513 : C
 514 :               ISTOP = 0
 515 :               J = 0
 516 : C
 517 :    70         J = J + 1
 518 :                IF ((CORRES(J).EQ.NUMERO(I)).AND.(ISTOP.EQ.0)) THEN
 519 : 
 520 : C
 521 :                   INP = INT((J+1)/2)
 522 :                   CSEF = XPI * CARACT(4,INP) * CARACT(4,INP)
 523 :                   CROF = CARACT(9,INP)
 524 :                   N1 = 2*INP-1
 525 :                   N2 = 2*INP
 526 :                   X1 = COOR (1,N1)
 527 :                   Y1 = COOR (2,N1)
 528 :                   Z1 = COOR (3,N1)
 529 :                   X2 = COOR (1,N2)
 530 :                   Y2 = COOR (2,N2)
 531 :                   Z2 = COOR (3,N2)
 532 :                   XL = SQRT((X2-X1)**2 + (Y2-Y1)**2 + (Z2-Z1)**2)
 533 : C
 534 :                   XI1 = (X2-X1)/XL
 535 :                   XI2 = (Y2-Y1)/XL
 536 :                   XI3 = (Z2-Z1)/XL
 537 : C
 538 :                   ZA1 (IZA1 , 14*(J-1)+13 ) = CMPLX(XCL (15,I))
 539 : C
 540 :                   ZB = CMPLX(XCL (16,I))
 541 :                   ZA1 (IZA1 , 14*(J-1)+14) = ZB
 542 :                   ZA1 (IZA1 , 14*(J-1)+1) = -ZS * ( CROF*CSEF*XI1 )* ZB
 543 :                   ZA1 (IZA1 , 14*(J-1)+2) = -ZS * ( CROF*CSEF*XI2 )* ZB
 544 :                   ZA1 (IZA1 , 14*(J-1)+3) = -ZS * ( CROF*CSEF*XI3 )* ZB
 545 : C
 546 :                   ZSM ( IZA1 ) = CMPLX(XCL (17,I))
 547 : C
 548 :                   IZA1 = IZA1+1
 549 :                   ISTOP = 1
 550 :                 END IF
 551 : C
 552 :            IF (J.NE.NP2) GO TO 70
 553 : C
 554 :            END IF
 555 : C
 556 :   100 CONTINUE
 557 : C
 558 :       RETURN
 559 : 
 560 :       END
 561 :  
 562 :  

© Cast3M 2003 - All rights reserved.
Disclaimer