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