Download ella23.eso

Back to the list

   1 : C ELLA23    SOURCE    CHAT      05/01/12    23:34:20     5004           
   2 :       SUBROUTINE ELLA23(CARACT,COOR,GAMA,ZXX,XCOR,VALDE1,VALDE2,
   3 :      &                  VALDE3,VALDE4,ZS,NP,NBELEM,XXPI)
   4 : C
   5 :       IMPLICIT INTEGER(I-N)
   6 :       COMPLEX*16 ZXX,ZD,ZE,ZI,ZIMOIN,ZS,ZU,ZU1,ZU2,ZCE,ZCP,ZCMU,ZCR,
   7 :      &           ZALFA2,ZALFAX,ZALFAR,ZALFA4,ZALFAF,ZZ3,ZALFAA,
   8 :      &           ZA56,ZB56,ZA89,ZB89,ZA1112,ZB1112,
   9 :      &           ZUX1,ZUY1,ZUZ1,ZUP1,ZX1,ZY1,ZZ1,ZP1,
  10 :      &           ZUX2,ZUY2,ZUZ2,ZUP2,ZX2,ZY2,ZZ2,ZP2,
  11 :      &           Z1,Z2,
  12 :      &         Z10X, Z11X, Z30X, Z31X, Z32X, Z33X, Z34X, Z40X, Z41X,
  13 :      &         Z10XL,Z11XL,Z30XL,Z31XL,Z32XL,Z33XL,Z34XL,Z40XL,Z41XL
  14 : C
  15 :       REAL*8           CARACT,COOR,GAMA,XCOR,VALDE1,VALDE2,VALDE3,
  16 :      &                 VALDE4,XXPI,R1,R2,XXA,XYA,XZA,XXB,XYB,XZB,XL,
  17 :      &                 XI1,XI2,XI3,GX,GY,GZ,GG,DELTA,DET,XJ1,XJ2,XJ3,
  18 :      &                 XK1,XK2,XK3,XX1,XY1,XZ1,XX2,XY2,XZ2,
  19 :      &                 XXD1,XXD2,XXL1,XXL2,EPSILO
  20 :       REAL*8           CE,CNU,CRO,CRIN,CREX,CKC,CAM,CETA,CROF,CSON,
  21 :      &                 CSE,CSEF,CC,CI,CIP,COEF,
  22 :      &                PRZX1,PIZX1,PRZY1,PIZY1,PRZZ1,PIZZ1,PRZP1,PIZP1,
  23 :      &                PRZX2,PIZX2,PRZY2,PIZY2,PRZZ2,PIZZ2,PRZP2,PIZP2,
  24 :      &                 PPX1,PPY1,PPZ1,PPX2,PPY2,PPZ2,PPP1,PPP2
  25 : C
  26 : -INC CCREEL
  27 :       INTEGER NP,NBELEM,N1,N2,I,IN,IOUI,J,L
  28 : C
  29 : C   OPERATEUR ELFE LAPLACE ACOU
  30 : C
  31 : C   CALCUL POUR LA POUTRE Num INP LES VALEURS DE Ua ET DE Ub EN LOCAL
  32 : C
  33 : C   PARAMETRES :
  34 : C
  35 : C   CARACT : TABLEAU DES CARACTERISTIQUE DES POUTRES (10,NP)
  36 : C   COOR   : TABLEAU DES COORDONNEES DES NOEUDS (3,2*NP)
  37 : C   GAMA   : TABLEAU DES VECTEUR DEFINISSANT LE PLAN LOCALE OXY (3,2*NP)
  38 : C   ZXX    : VECTEUR (28*NP) DONNANT LE VECTEUR SOLUTION DU TREILLIS
  39 : C            DANS LE REPERE GLOBAL
  40 : C   XCOR   : TABLEAU DONNANT LES COORD. DES NOEUDS DE L'OBJET MAILLAGE
  41 : C            DANS LE REPERE GLOBAL
  42 : C   ZS     : VALEUR DE S = S0 + I W
  43 : C   NP     : NOMBRE DE POUTRES DU TREILLIS
  44 : C   NBELEM : NOMBRE D'ELEMENTS DU SOUS-MAILLAGE
  45 : C   XXPI    : VALEUR PRECISE DE PI
  46 : C
  47 : C
  48 : C   SORTIES :
  49 : C
  50 : C   VALDE1 : MODULE DE UX, UY, UZ POUR LES 2 POINTS DE CHAQUE ELEMENT
  51 : C            DU SOUS-MAILLAGE
  52 : C   VALDE2 : PHASE DE UX, UY, UZ POUR LES 2 POINTS DE CHAQUE ELEMENT
  53 : C            DU SOUS-MAILLAGE
  54 : C   VALDE3 : MODULE DE P POUR LES 2 POINTS DE CHAQUE ELEMENT
  55 : C            DU SOUS-MAILLAGE
  56 : C   VALDE4 : PHASE DE P POUR LES 2 POINTS DE CHAQUE ELEMENT
  57 : C            DU SOUS-MAILLAGE
  58 : C
  59 : C
  60 : C   AUTEURS : SAINT-DIZIER ET GORCY
  61 : C   DATE    : 24 JANVIER 1991
  62 : C
  63 : C
  64 :       DIMENSION CARACT(10,*),COOR(3,*),GAMA(3,*)
  65 :       DIMENSION ZXX(*),XCOR(2,3,NBELEM)
  66 :       DIMENSION VALDE1(2,NBELEM,3),VALDE2(2,NBELEM,3)
  67 :       DIMENSION VALDE3(2,NBELEM,1),VALDE4(2,NBELEM,1)
  68 : C
  69 :       DIMENSION ZU(28),ZU1(28),ZU2(28)
  70 :       DIMENSION R1(3,3),R2(3,3),ZD(14),ZE(14,14)
  71 : C
  72 :       ZIMOIN=CMPLX(0.D0,-1.D0)
  73 : *      EPSILO=1.0D-38
  74 :       EPSILO=xpetit
  75 : C
  76 :       DO 100 INP = 1 , NP
  77 : C
  78 :       DO 101 II = 1 , 28
  79 :             ZU(II) = ZXX(28*(INP-1)+II)
  80 :   101 CONTINUE
  81 : C
  82 : C -------------- ACQUISITION DES CARACTERISTIQUES DE LA POUTRE
  83 : C                ---------------------------------------------
  84 : C
  85 :       CE    = CARACT( 1,INP)
  86 :       CNU   = CARACT( 2,INP)
  87 :       CRO   = CARACT( 3,INP)
  88 :       CRIN  = CARACT( 4,INP)
  89 :       CREX  = CARACT( 5,INP)
  90 :       CKC   = CARACT( 6,INP)
  91 :       CAM   = CARACT( 7,INP)
  92 :       CETA  = CARACT( 8,INP)
  93 :       CROF  = CARACT( 9,INP)
  94 :       CSON  = CARACT(10,INP)
  95 : C
  96 :       ZI = CMPLX(0.D0 , 1.D0)
  97 : C
  98 :       CSE = XXPI * ((CREX*CREX)-(CRIN*CRIN))
  99 :       CSEF = XXPI * (CRIN*CRIN)
 100 :       CC = XXPI * ((CREX*CREX*CREX*CREX)-(CRIN*CRIN*CRIN*CRIN)) / 2.D0
 101 :       CI = XXPI * ((CREX*CREX*CREX*CREX)-(CRIN*CRIN*CRIN*CRIN)) / 4.D0
 102 :       CIP = 2.D0 * CI
 103 : C
 104 :       COEF = 1.D0 +((2.*CROF*CSON*CSON*CRIN) / (CE*(CREX-CRIN)))
 105 :       CSON = CSON / SQRT(COEF)
 106 : C
 107 :       ZCE = CE*(1.D0+CETA*ZI)
 108 :       ZCP   = SQRT(ZCE/CRO)
 109 :       ZCMU  = ZCE/(2.D0*(1.D0+CNU))
 110 :       ZCR   = SQRT(ZCMU/CRO)
 111 : C
 112 :       ZALFA2= ZS*ZS*CRO*CSE + CAM*ZS
 113 :       ZALFA2= ZALFA2 / (ZCE*CSE)
 114 :       ZALFAX= SQRT(ZALFA2)
 115 : C
 116 :       ZALFA2= ZS*ZS*CRO*CIP + CAM*ZS
 117 :       ZALFA2= ZALFA2 / (ZCMU*CC)
 118 :       ZALFAR= SQRT(ZALFA2)
 119 : C
 120 :       ZALFA4= CRO*CRO*CI*ZS*ZS*ZS*ZS/ZCMU/CKC
 121 :      *        + CAM*CRO*CI*ZS*ZS*ZS/ZCMU/CKC/CSE
 122 :      *        + ((CRO*CSE)+(CROF*CSEF))*ZS*ZS
 123 :      *        + CAM*ZS
 124 :       ZALFA4= ZALFA4/(ZCE*CI)
 125 :       ZALFA2= SQRT(ZALFA4)
 126 :       ZALFAF= SQRT(ZALFA2)
 127 : C
 128 :       ZZ3   = CRO*CI*(1.D0+ZCE/(ZCMU*CKC))*ZS*ZS
 129 :      *        + CAM*ZCE*CI*ZS/(ZCMU*CKC*CSE)
 130 :       ZZ3   = ZZ3 / (ZCE*CI*ZALFA2)
 131 : C
 132 :       ZALFAA = ZS / CSON
 133 : C
 134 :       N1  = 2*INP-1
 135 :       N2  = 2*INP
 136 :       XXA  = COOR (1,N1)
 137 :       XYA  = COOR (2,N1)
 138 :       XZA  = COOR (3,N1)
 139 :       XXB  = COOR (1,N2)
 140 :       XYB  = COOR (2,N2)
 141 :       XZB  = COOR (3,N2)
 142 : C
 143 :       XL = SQRT((XXB-XXA)**2 + (XYB-XYA)**2 + (XZB-XZA)**2)
 144 : C
 145 : C ------------------------------ VECTEUR UNITAIRE OX REPERE LOCALE
 146 : C                                ---------------------------------
 147 :       XI1 = (XXB-XXA)/XL
 148 :       XI2 = (XYB-XYA)/XL
 149 :       XI3 = (XZB-XZA)/XL
 150 : C
 151 : C ------------------------- VECTEUR UNITAIRE OY REPERE LOCALE
 152 : C                           ---------------------------------
 153 :       GX = GAMA(1,INP)
 154 :       GY = GAMA(2,INP)
 155 :       GZ = GAMA(3,INP)
 156 :       GG = SQRT(GX*GX + GY*GY + GZ*GZ)
 157 :       GX = GX/GG
 158 :       GY = GY/GG
 159 :       GZ = GZ/GG
 160 : C
 161 :       DELTA = SQRT (1.D0 - (XI1*GX + XI2*GY + XI3*GZ)**2)
 162 : C
 163 :       DET=-(GX*XI3-GZ*XI1)**2-(GY*XI1-GX*XI2)**2-(GY*XI3-GZ*XI2)**2
 164 : C
 165 :       IF (ABS(DET).LT.1D-12) THEN
 166 :            XJ1 = -XI2
 167 :            XJ2 = 0.D0
 168 :            XJ3 = 0.D0
 169 :       ELSE
 170 :            XJ1 = (XI2*(GY*XI1-GX*XI2)-XI3*(GX*XI3-GZ*XI1))*DELTA/DET
 171 :            XJ2 = (XI3*(GZ*XI2-GY*XI3)-XI1*(GY*XI1-GX*XI2))*DELTA/DET
 172 :            XJ3 = (XI1*(GX*XI3-GZ*XI1)-XI2*(GZ*XI2-GY*XI3))*DELTA/DET
 173 :       END IF
 174 : C
 175 : C ---------------------------- VECTEUR UNITAIRE OZ REPERE LOCALE
 176 : C                              ---------------------------------
 177 :       XK1 = XI2*XJ3 - XI3*XJ2
 178 :       XK2 = XI3*XJ1 - XI1*XJ3
 179 :       XK3 = XI1*XJ2 - XI2*XJ1
 180 : C
 181 :       R1(1,1) = XI1
 182 :       R1(1,2) = XJ1
 183 :       R1(1,3) = XK1
 184 :       R1(2,1) = XI2
 185 :       R1(2,2) = XJ2
 186 :       R1(2,3) = XK2
 187 :       R1(3,1) = XI3
 188 :       R1(3,2) = XJ3
 189 :       R1(3,3) = XK3
 190 : C
 191 :       R2(1,1) = XJ2*XK3 - XJ3*XK2
 192 :       R2(1,2) = XJ3*XK1 - XJ1*XK3
 193 :       R2(1,3) = XJ1*XK2 - XJ2*XK1
 194 :       R2(2,1) = XI3*XK2 - XI2*XK3
 195 :       R2(2,2) = XI1*XK3 - XI3*XK1
 196 :       R2(2,3) = XI2*XK1 - XI1*XK2
 197 :       R2(3,1) = XI2*XJ3 - XI3*XJ2
 198 :       R2(3,2) = XI3*XJ1 - XI1*XJ3
 199 :       R2(3,3) = XI1*XJ2 - XI2*XJ1
 200 : C
 201 : C -----------------------------  MATRICE DIMENSIONNEMENT ZD
 202 : C                                --------------------------
 203 :       ZD( 1) = XL**2/ZCP
 204 :       ZD( 2) = XL**2/ZCP
 205 :       ZD( 3) = XL**2/ZCP
 206 :       ZD( 4) = XL/ZCR
 207 :       ZD( 5) = XL**2/ZCP*ZALFAF
 208 :       ZD( 6) = XL**2/ZCP*ZALFAF
 209 :       ZD( 7) = XL**2/ZCP*ZALFAX
 210 :       ZD( 8) = XL**2/ZCP*(ZALFAF**3)
 211 :       ZD( 9) = XL**2/ZCP*(ZALFAF**3)
 212 :       ZD(10) = XL/ZCR*ZALFAR
 213 :       ZD(11) = XL**2/ZCP*(ZALFAF**2)
 214 :       ZD(12) = XL**2/ZCP*(ZALFAF**2)
 215 :       ZD(13) = CMPLX(XL*CROF*CSON,0.D0)
 216 :       ZD(14) = XL*CROF*CSON*ZALFAA
 217 : C
 218 : C ------------------------------- MATRICE DES EFFORTS ZE
 219 : C                                 ----------------------
 220 :       DO 20 I = 1 , 14
 221 :           DO 21 J = 1 , 14
 222 :                 ZE(I,J) = CMPLX(0.D0,0.D0)
 223 :    21     CONTINUE
 224 :    20 CONTINUE
 225 : C
 226 :       ZA56 = CMPLX(1.D0,0.D0)
 227 :       ZB56 = 1.D0 / (ZCMU*CKC*CSE)
 228 : C
 229 :       ZA89 = (CRO*CSE*ZS*ZS+CAM*ZS)/(ZCMU*ZCMU*CKC*CKC*CSE*CSE)
 230 :      *      -  1.D0/(ZCE*CI)
 231 :       ZB89 = CRO*ZS*ZS*(1.D0/(ZCMU*CKC)+1.D0/ZCE)
 232 :      *      + CAM*ZS/(ZCMU*CKC*CSE)
 233 : C
 234 :       ZA1112 = 1.D0/(ZCE*CI)
 235 :       ZB1112 = (CRO*CSE*ZS*ZS+CAM*ZS)/(ZCMU*CKC*CSE)
 236 : C
 237 :       ZE( 1, 1) = CMPLX(1.D0,0.D0)
 238 :       ZE( 2, 2) = CMPLX(1.D0,0.D0)
 239 :       ZE( 3, 3) = CMPLX(1.D0,0.D0)
 240 :       ZE( 4, 4) = CMPLX(1.D0,0.D0)
 241 :       ZE( 5, 5) = -ZA56
 242 :       ZE( 5, 9) = ZB56
 243 :       ZE( 6, 6) = ZA56
 244 :       ZE( 6, 8) = ZB56
 245 :       ZE( 7, 7) = 1.D0/(ZCE*CSE)
 246 :       ZE( 8, 6) = ZB89
 247 :       ZE( 8, 8) = ZA89
 248 :       ZE( 9, 5) = -ZB89
 249 :       ZE( 9, 9) = ZA89
 250 :       ZE(10,10) = 1.D0/(ZCMU*CC)
 251 :       ZE(11, 3) = ZB1112
 252 :       ZE(11,11) = -ZA1112
 253 :       ZE(12, 2) = ZB1112
 254 :       ZE(12,12) = ZA1112
 255 :       ZE(13,13) = CMPLX(1.D0,0.D0)
 256 :       ZE(14,14) = -ZS/CSEF
 257 : C
 258 : C -- CALCUL DE ZU1 = ZR * ZU
 259 : C
 260 :       DO 27 I = 1 , 28
 261 :           ZU1(I) = CMPLX(0.D0,0.D0)
 262 :           ZU2(I) = CMPLX(0.D0,0.D0)
 263 :    27 CONTINUE
 264 : C
 265 :       DO 26 I = 1 , 4
 266 :            DO 25 J = 1 , 3
 267 :                DO 24 K = 1 , 3
 268 :                   L = (I-1)*3
 269 :                   ZU1(L+J)=ZU1(L+J)+R2(J,K)*ZU(L+K)
 270 :                   ZU1(L+14+J)=ZU1(L+14+J)+R2(J,K)*ZU(L+14+K)
 271 :    24          CONTINUE
 272 :    25      CONTINUE
 273 :    26 CONTINUE
 274 : C
 275 :       ZU1(13) = ZU(13)
 276 :       ZU1(14) = ZU(14)
 277 :       ZU1(27) = ZU(27)
 278 :       ZU1(28) = ZU(28)
 279 : C
 280 : C -- CALCUL DE ZU2 = ZE * ZU1
 281 : C
 282 :       DO 30 I = 1,12
 283 :          DO 31 J = 1,12
 284 :             ZU2(I) = ZU2(I) + ZE(I,J)*ZU1(J)
 285 :    31    CONTINUE
 286 :    30 CONTINUE
 287 : C
 288 :       ZU2(13) = ZE(13,13)*ZU1(13)
 289 :       ZU2(14) = -ZE(14,14)*ZU1(14)
 290 : C
 291 :       DO 32 I = 1,12
 292 :          DO 33 J = 1,6
 293 :            ZU2(I+14) = ZU2(I+14) + ZE(I,J  )*ZU1(J+14)
 294 :            ZU2(I+14) = ZU2(I+14) - ZE(I,J+6)*ZU1(J+20)
 295 :    33    CONTINUE
 296 :    32 CONTINUE
 297 : C
 298 :       ZU2(27) = ZE(13,13)*ZU1(27)
 299 :       ZU2(28) = ZE(14,14)*ZU1(28)
 300 : C
 301 : C -- CALCUL DE ZU2 = ZD * ZU2
 302 : C
 303 :       DO 34 I = 1,14
 304 :           ZU2(I   ) = ZU2(I   )/ZD(I)
 305 :           ZU2(I+14) = ZU2(I+14)/ZD(I)
 306 :    34 CONTINUE
 307 : C
 308 : C ---------------  NBELEM : NOMBRE D'ELEMENTS DANS LE SOUS MAILLAGE
 309 : C
 310 :       DO 110 IN = 1 , NBELEM
 311 : C
 312 :       XX1 = XCOR ( 1,1,IN)
 313 :       XY1 = XCOR ( 1,2,IN)
 314 :       XZ1 = XCOR ( 1,3,IN)
 315 : C
 316 :       XX2 = XCOR ( 2,1,IN)
 317 :       XY2 = XCOR ( 2,2,IN)
 318 :       XZ2 = XCOR ( 2,3,IN)
 319 : C
 319 :       CALL ELLA07(XXA,XYA,XZA,XXB,XYB,XZB,XX1,XY1,XZ1,XX2,XY2,XZ2,
 320 :      *            IOUI)
 321 : C
 322 :          IF (IOUI.EQ.1) THEN
 323 : C
 324 :           XXD1 = SQRT((XXA-XX1)**2+(XYA-XY1)**2+(XZA-XZ1)**2)
 325 :           XXD2 = SQRT((XXA-XX2)**2+(XYA-XY2)**2+(XZA-XZ2)**2)
 326 :           XXL1= XL -XXD1
 327 :           XXL2= XL -XXD2
 328 : C
 329 : C           XXDI  :  DISTANCE DE A AU PT M DE CALCUL DU DEPLACEMENT
 330 : C
 330 :           CALL ELLA31(XXD1,ZALFAX,ZALFAR,ZALFAF,ZALFAA,Z10X,
 331 :      *    Z11X,Z1,Z2,Z30X,Z31X,Z32X,Z33X,Z34X,ZZ3,Z40X,Z41X)
 332 : C
 332 :           CALL ELLA31(XXL1,ZALFAX,ZALFAR,ZALFAF,ZALFAA,Z10XL,
 333 :      *    Z11XL,Z1,Z2,Z30XL,Z31XL,Z32XL,Z33XL,Z34XL,ZZ3,Z40XL,Z41XL)
 334 : C
 335 :           ZUX1 = ZU2(21)*Z10XL-ZU2(15)*Z11XL-ZU2(7)*Z10X-ZU2(1)*Z11X
 336 : C
 337 :           ZUY1 =-(ZZ3*Z31X -Z33X )*ZU2(2) - (ZZ3*Z30X -Z32X )*ZU2(6)
 338 :      *          + Z31X *ZU2(12) + Z30X *ZU2(8)
 339 :      *          -(ZZ3*Z31XL-Z33XL)*ZU2(16)+(ZZ3*Z30XL-Z32XL)*ZU2(20)
 340 :      *          + Z31XL*ZU2(26) - Z30XL*ZU2(22)
 341 : C
 342 :           ZUZ1 =-(ZZ3*Z31X -Z33X )*ZU2(3) - (ZZ3*Z30X -Z32X )*ZU2(5)
 343 :      *          + Z31X *ZU2(11) + Z30X *ZU2(9)
 344 :      *          -(ZZ3*Z31XL-Z33XL)*ZU2(17)+(ZZ3*Z30XL-Z32XL)*ZU2(19)
 345 :      *          + Z31XL*ZU2(25) - Z30XL*ZU2(23)
 346 : C
 347 :           ZUP1 = ZU2(28)*Z40XL-ZU2(27)*Z41XL-ZU2(14)*Z40X-ZU2(13)*Z41X
 348 : C
 349 :           ZUX1 = ZUX1 * ZD(1)
 350 :           ZUY1 = ZUY1 * ZD(2)
 351 :           ZUZ1 = ZUZ1 * ZD(3)
 352 :           ZUP1 = ZUP1 * ZD(13)
 353 : C
 354 :           ZX1 = R1(1,1)*ZUX1 + R1(1,2)*ZUY1 + R1(1,3)*ZUZ1
 355 :           ZY1 = R1(2,1)*ZUX1 + R1(2,2)*ZUY1 + R1(2,3)*ZUZ1
 356 :           ZZ1 = R1(3,1)*ZUX1 + R1(3,2)*ZUY1 + R1(3,3)*ZUZ1
 357 :           ZP1 = ZUP1
 358 : C
 358 :           CALL ELLA31(XXD2,ZALFAX,ZALFAR,ZALFAF,ZALFAA,Z10X,
 359 :      *    Z11X,Z1,Z2,Z30X,Z31X,Z32X,Z33X,Z34X,ZZ3,Z40X,Z41X)
 360 : C
 360 :           CALL ELLA31(XXL2,ZALFAX,ZALFAR,ZALFAF,ZALFAA,Z10XL,
 361 :      *    Z11XL,Z1,Z2,Z30XL,Z31XL,Z32XL,Z33XL,Z34XL,ZZ3,Z40XL,Z41XL)
 362 : C
 363 : C
 364 :           ZUX2 = ZU2(21)*Z10XL-ZU2(15)*Z11XL-ZU2(7)*Z10X-ZU2(1)*Z11X
 365 : C
 366 :           ZUY2 =-(ZZ3*Z31X -Z33X )*ZU2(2) - (ZZ3*Z30X -Z32X )*ZU2(6)
 367 :      *         + Z31X *ZU2(12) + Z30X *ZU2(8)
 368 :      *         -(ZZ3*Z31XL-Z33XL)*ZU2(16)+(ZZ3*Z30XL-Z32XL)*ZU2(20)
 369 :      *         + Z31XL*ZU2(26) - Z30XL*ZU2(22)
 370 : C
 371 :           ZUZ2 =-(ZZ3*Z31X -Z33X )*ZU2(3) - (ZZ3*Z30X -Z32X )*ZU2(5)
 372 :      *         + Z31X *ZU2(11) + Z30X *ZU2(9)
 373 :      *         -(ZZ3*Z31XL-Z33XL)*ZU2(17)+(ZZ3*Z30XL-Z32XL)*ZU2(19)
 374 :      *         + Z31XL*ZU2(25) - Z30XL*ZU2(23)
 375 : C
 376 :           ZUP2 = ZU2(28)*Z40XL-ZU2(27)*Z41XL-ZU2(14)*Z40X-ZU2(13)*Z41X
 377 : C
 378 :           ZUX2 = ZUX2 * ZD(1)
 379 :           ZUY2 = ZUY2 * ZD(2)
 380 :           ZUZ2 = ZUZ2 * ZD(3)
 381 :           ZUP2 = ZUP2 * ZD(13)
 382 : C
 383 :           ZX2 = R1(1,1)*ZUX2 + R1(1,2)*ZUY2 + R1(1,3)*ZUZ2
 384 :           ZY2 = R1(2,1)*ZUX2 + R1(2,2)*ZUY2 + R1(2,3)*ZUZ2
 385 :           ZZ2 = R1(3,1)*ZUX2 + R1(3,2)*ZUY2 + R1(3,3)*ZUZ2
 386 :           ZP2 = ZUP2
 387 : C
 388 :           PRZX1 = ZX1
 389 :           PIZX1 = ZX1*ZIMOIN
 390 :           PRZY1 = ZY1
 391 :           PIZY1 = ZY1*ZIMOIN
 392 :           PRZZ1 = ZZ1
 393 :           PIZZ1 = ZZ1*ZIMOIN
 394 :           PRZP1 = ZP1
 395 :           PIZP1 = ZP1*ZIMOIN
 396 :           PRZX2 = ZX2
 397 :           PIZX2 = ZX2*ZIMOIN
 398 :           PRZY2 = ZY2
 399 :           PIZY2 = ZY2*ZIMOIN
 400 :           PRZZ2 = ZZ2
 401 :           PIZZ2 = ZZ2*ZIMOIN
 402 :           PRZP2 = ZP2
 403 :           PIZP2 = ZP2*ZIMOIN
 404 : C
 405 :           IF (ABS(PRZX1).LT.EPSILO.AND.ABS(PIZX1).LT.EPSILO) THEN
 406 :             PPX1 = 0.D0
 407 :           ELSE
 408 :             PPX1 = ATAN2(PIZX1,PRZX1)*180.D0/XXPI
 409 :           END IF
 410 : C
 411 :           IF (ABS(PRZY1).LT.EPSILO.AND.ABS(PIZY1).LT.EPSILO) THEN
 412 :             PPY1 = 0.D0
 413 :           ELSE
 414 :             PPY1 = ATAN2(PIZY1,PRZY1)*180.D0/XXPI
 415 :           END IF
 416 : C
 417 :           IF (ABS(PRZZ1).LT.EPSILO.AND.ABS(PIZZ1).LT.EPSILO) THEN
 418 :             PPZ1 = 0.D0
 419 :           ELSE
 420 :             PPZ1 = ATAN2(PIZZ1,PRZZ1)*180.D0/XXPI
 421 :           END IF
 422 : C
 423 :           IF (ABS(PRZX2).LT.EPSILO.AND.ABS(PIZX2).LT.EPSILO) THEN
 424 :             PPX2 = 0.D0
 425 :           ELSE
 426 :             PPX2 = ATAN2(PIZX2,PRZX2)*180.D0/XXPI
 427 :           END IF
 428 : C
 429 :           IF (ABS(PRZY2).LT.EPSILO.AND.ABS(PIZY2).LT.EPSILO) THEN
 430 :             PPY2 = 0.D0
 431 :           ELSE
 432 :             PPY2 = ATAN2(PIZY2,PRZY2)*180.D0/XXPI
 433 :           END IF
 434 : C
 435 :           IF (ABS(PRZZ2).LT.EPSILO.AND.ABS(PIZZ2).LT.EPSILO) THEN
 436 :             PPZ2 = 0.D0
 437 :           ELSE
 438 :             PPZ2 = ATAN2(PIZZ2,PRZZ2)*180.D0/XXPI
 439 :           END IF
 440 : C
 441 :           IF (ABS(PRZP1).LT.EPSILO.AND.ABS(PIZP1).LT.EPSILO) THEN
 442 :             PPP1 = 0.D0
 443 :           ELSE
 444 :             PPP1 = ATAN2(PIZP1,PRZP1)*180.D0/XXPI
 445 :           END IF
 446 : C
 447 :           IF (ABS(PRZP2).LT.EPSILO.AND.ABS(PIZP2).LT.EPSILO) THEN
 448 :             PPP2 = 0.D0
 449 :           ELSE
 450 :             PPP2 = ATAN2(PIZP2,PRZP2)*180.D0/XXPI
 451 :           END IF
 452 : C
 453 :           VALDE1(1,IN,1) = ABS(ZX1)
 454 :           VALDE1(1,IN,2) = ABS(ZY1)
 455 :           VALDE1(1,IN,3) = ABS(ZZ1)
 456 :           VALDE1(2,IN,1) = ABS(ZX2)
 457 :           VALDE1(2,IN,2) = ABS(ZY2)
 458 :           VALDE1(2,IN,3) = ABS(ZZ2)
 459 : C
 460 :           VALDE2(1,IN,1) = PPX1
 461 :           VALDE2(1,IN,2) = PPY1
 462 :           VALDE2(1,IN,3) = PPZ1
 463 :           VALDE2(2,IN,1) = PPX2
 464 :           VALDE2(2,IN,2) = PPY2
 465 :           VALDE2(2,IN,3) = PPZ2
 466 : C
 467 :           VALDE3(1,IN,1) = ABS(ZP1)
 468 :           VALDE3(2,IN,1) = ABS(ZP2)
 469 : C
 470 :           VALDE4(1,IN,1) = PPP1
 471 :           VALDE4(2,IN,1) = PPP2
 472 : C
 473 :       END IF
 474 : C
 475 :   110 CONTINUE
 476 : C
 477 :   100 CONTINUE
 478 : C
 479 :       END
 480 : 
 481 :  
 482 :  
 483 :  
 484 :  

© Cast3M 2003 - All rights reserved.
Disclaimer