Télécharger ella23.eso

Retour à la liste

Numérotation des lignes :

  1. C ELLA23 SOURCE KK2000 14/04/09 21:15:18 8027
  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*(CMPLX(1.D0)+CETA*ZI)
  108. ZCP = SQRT(ZCE/CRO)
  109. ZCMU = ZCE/(CMPLX(2.D0)*(CMPLX(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*(CMPLX(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) = (0.D0,0.D0)
  223. 21 CONTINUE
  224. 20 CONTINUE
  225. C
  226. ZA56 = (1.D0,0.D0)
  227. ZB56 = CMPLX(1.D0) / (ZCMU*CKC*CSE)
  228. C
  229. ZA89 = (CRO*CSE*ZS*ZS+CAM*ZS)/(ZCMU*ZCMU*CKC*CKC*CSE*CSE)
  230. * - CMPLX(1.D0)/(ZCE*CI)
  231. ZB89 = CRO*ZS*ZS*(CMPLX(1.D0)/(ZCMU*CKC)+CMPLX(1.D0)/ZCE)
  232. * + CAM*ZS/(ZCMU*CKC*CSE)
  233. C
  234. ZA1112 = CMPLX(1.D0)/(ZCE*CI)
  235. ZB1112 = (CRO*CSE*ZS*ZS+CAM*ZS)/(ZCMU*CKC*CSE)
  236. C
  237. ZE( 1, 1) = CMPLX(1.D0)
  238. ZE( 2, 2) = CMPLX(1.D0)
  239. ZE( 3, 3) = CMPLX(1.D0)
  240. ZE( 4, 4) = CMPLX(1.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) = CMPLX(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) = CMPLX(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)
  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) = (0.D0,0.D0)
  262. ZU2(I) = (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
  320. CALL ELLA07(XXA,XYA,XZA,XXB,XYB,XZB,XX1,XY1,XZ1,XX2,XY2,XZ2,
  321. * IOUI)
  322. C
  323. IF (IOUI.EQ.1) THEN
  324. C
  325. XXD1 = SQRT((XXA-XX1)**2+(XYA-XY1)**2+(XZA-XZ1)**2)
  326. XXD2 = SQRT((XXA-XX2)**2+(XYA-XY2)**2+(XZA-XZ2)**2)
  327. XXL1= XL -XXD1
  328. XXL2= XL -XXD2
  329. C
  330. C XXDI : DISTANCE DE A AU PT M DE CALCUL DU DEPLACEMENT
  331. C
  332. CALL ELLA31(XXD1,ZALFAX,ZALFAR,ZALFAF,ZALFAA,Z10X,
  333. * Z11X,Z1,Z2,Z30X,Z31X,Z32X,Z33X,Z34X,ZZ3,Z40X,Z41X)
  334. C
  335. CALL ELLA31(XXL1,ZALFAX,ZALFAR,ZALFAF,ZALFAA,Z10XL,
  336. * Z11XL,Z1,Z2,Z30XL,Z31XL,Z32XL,Z33XL,Z34XL,ZZ3,Z40XL,Z41XL)
  337. C
  338. ZUX1 = ZU2(21)*Z10XL-ZU2(15)*Z11XL-ZU2(7)*Z10X-ZU2(1)*Z11X
  339. C
  340. ZUY1 =-(ZZ3*Z31X -Z33X )*ZU2(2) - (ZZ3*Z30X -Z32X )*ZU2(6)
  341. * + Z31X *ZU2(12) + Z30X *ZU2(8)
  342. * -(ZZ3*Z31XL-Z33XL)*ZU2(16)+(ZZ3*Z30XL-Z32XL)*ZU2(20)
  343. * + Z31XL*ZU2(26) - Z30XL*ZU2(22)
  344. C
  345. ZUZ1 =-(ZZ3*Z31X -Z33X )*ZU2(3) - (ZZ3*Z30X -Z32X )*ZU2(5)
  346. * + Z31X *ZU2(11) + Z30X *ZU2(9)
  347. * -(ZZ3*Z31XL-Z33XL)*ZU2(17)+(ZZ3*Z30XL-Z32XL)*ZU2(19)
  348. * + Z31XL*ZU2(25) - Z30XL*ZU2(23)
  349. C
  350. ZUP1 = ZU2(28)*Z40XL-ZU2(27)*Z41XL-ZU2(14)*Z40X-ZU2(13)*Z41X
  351. C
  352. ZUX1 = ZUX1 * ZD(1)
  353. ZUY1 = ZUY1 * ZD(2)
  354. ZUZ1 = ZUZ1 * ZD(3)
  355. ZUP1 = ZUP1 * ZD(13)
  356. C
  357. ZX1 = R1(1,1)*ZUX1 + R1(1,2)*ZUY1 + R1(1,3)*ZUZ1
  358. ZY1 = R1(2,1)*ZUX1 + R1(2,2)*ZUY1 + R1(2,3)*ZUZ1
  359. ZZ1 = R1(3,1)*ZUX1 + R1(3,2)*ZUY1 + R1(3,3)*ZUZ1
  360. ZP1 = ZUP1
  361. C
  362. CALL ELLA31(XXD2,ZALFAX,ZALFAR,ZALFAF,ZALFAA,Z10X,
  363. * Z11X,Z1,Z2,Z30X,Z31X,Z32X,Z33X,Z34X,ZZ3,Z40X,Z41X)
  364. C
  365. CALL ELLA31(XXL2,ZALFAX,ZALFAR,ZALFAF,ZALFAA,Z10XL,
  366. * Z11XL,Z1,Z2,Z30XL,Z31XL,Z32XL,Z33XL,Z34XL,ZZ3,Z40XL,Z41XL)
  367. C
  368. C
  369. ZUX2 = ZU2(21)*Z10XL-ZU2(15)*Z11XL-ZU2(7)*Z10X-ZU2(1)*Z11X
  370. C
  371. ZUY2 =-(ZZ3*Z31X -Z33X )*ZU2(2) - (ZZ3*Z30X -Z32X )*ZU2(6)
  372. * + Z31X *ZU2(12) + Z30X *ZU2(8)
  373. * -(ZZ3*Z31XL-Z33XL)*ZU2(16)+(ZZ3*Z30XL-Z32XL)*ZU2(20)
  374. * + Z31XL*ZU2(26) - Z30XL*ZU2(22)
  375. C
  376. ZUZ2 =-(ZZ3*Z31X -Z33X )*ZU2(3) - (ZZ3*Z30X -Z32X )*ZU2(5)
  377. * + Z31X *ZU2(11) + Z30X *ZU2(9)
  378. * -(ZZ3*Z31XL-Z33XL)*ZU2(17)+(ZZ3*Z30XL-Z32XL)*ZU2(19)
  379. * + Z31XL*ZU2(25) - Z30XL*ZU2(23)
  380. C
  381. ZUP2 = ZU2(28)*Z40XL-ZU2(27)*Z41XL-ZU2(14)*Z40X-ZU2(13)*Z41X
  382. C
  383. ZUX2 = ZUX2 * ZD(1)
  384. ZUY2 = ZUY2 * ZD(2)
  385. ZUZ2 = ZUZ2 * ZD(3)
  386. ZUP2 = ZUP2 * ZD(13)
  387. C
  388. ZX2 = R1(1,1)*ZUX2 + R1(1,2)*ZUY2 + R1(1,3)*ZUZ2
  389. ZY2 = R1(2,1)*ZUX2 + R1(2,2)*ZUY2 + R1(2,3)*ZUZ2
  390. ZZ2 = R1(3,1)*ZUX2 + R1(3,2)*ZUY2 + R1(3,3)*ZUZ2
  391. ZP2 = ZUP2
  392. C
  393. PRZX1 = ZX1
  394. PIZX1 = ZX1*ZIMOIN
  395. PRZY1 = ZY1
  396. PIZY1 = ZY1*ZIMOIN
  397. PRZZ1 = ZZ1
  398. PIZZ1 = ZZ1*ZIMOIN
  399. PRZP1 = ZP1
  400. PIZP1 = ZP1*ZIMOIN
  401. PRZX2 = ZX2
  402. PIZX2 = ZX2*ZIMOIN
  403. PRZY2 = ZY2
  404. PIZY2 = ZY2*ZIMOIN
  405. PRZZ2 = ZZ2
  406. PIZZ2 = ZZ2*ZIMOIN
  407. PRZP2 = ZP2
  408. PIZP2 = ZP2*ZIMOIN
  409. C
  410. IF (ABS(PRZX1).LT.EPSILO.AND.ABS(PIZX1).LT.EPSILO) THEN
  411. PPX1 = 0.D0
  412. ELSE
  413. PPX1 = ATAN2(PIZX1,PRZX1)*180.D0/XXPI
  414. END IF
  415. C
  416. IF (ABS(PRZY1).LT.EPSILO.AND.ABS(PIZY1).LT.EPSILO) THEN
  417. PPY1 = 0.D0
  418. ELSE
  419. PPY1 = ATAN2(PIZY1,PRZY1)*180.D0/XXPI
  420. END IF
  421. C
  422. IF (ABS(PRZZ1).LT.EPSILO.AND.ABS(PIZZ1).LT.EPSILO) THEN
  423. PPZ1 = 0.D0
  424. ELSE
  425. PPZ1 = ATAN2(PIZZ1,PRZZ1)*180.D0/XXPI
  426. END IF
  427. C
  428. IF (ABS(PRZX2).LT.EPSILO.AND.ABS(PIZX2).LT.EPSILO) THEN
  429. PPX2 = 0.D0
  430. ELSE
  431. PPX2 = ATAN2(PIZX2,PRZX2)*180.D0/XXPI
  432. END IF
  433. C
  434. IF (ABS(PRZY2).LT.EPSILO.AND.ABS(PIZY2).LT.EPSILO) THEN
  435. PPY2 = 0.D0
  436. ELSE
  437. PPY2 = ATAN2(PIZY2,PRZY2)*180.D0/XXPI
  438. END IF
  439. C
  440. IF (ABS(PRZZ2).LT.EPSILO.AND.ABS(PIZZ2).LT.EPSILO) THEN
  441. PPZ2 = 0.D0
  442. ELSE
  443. PPZ2 = ATAN2(PIZZ2,PRZZ2)*180.D0/XXPI
  444. END IF
  445. C
  446. IF (ABS(PRZP1).LT.EPSILO.AND.ABS(PIZP1).LT.EPSILO) THEN
  447. PPP1 = 0.D0
  448. ELSE
  449. PPP1 = ATAN2(PIZP1,PRZP1)*180.D0/XXPI
  450. END IF
  451. C
  452. IF (ABS(PRZP2).LT.EPSILO.AND.ABS(PIZP2).LT.EPSILO) THEN
  453. PPP2 = 0.D0
  454. ELSE
  455. PPP2 = ATAN2(PIZP2,PRZP2)*180.D0/XXPI
  456. END IF
  457. C
  458. VALDE1(1,IN,1) = ABS(ZX1)
  459. VALDE1(1,IN,2) = ABS(ZY1)
  460. VALDE1(1,IN,3) = ABS(ZZ1)
  461. VALDE1(2,IN,1) = ABS(ZX2)
  462. VALDE1(2,IN,2) = ABS(ZY2)
  463. VALDE1(2,IN,3) = ABS(ZZ2)
  464. C
  465. VALDE2(1,IN,1) = PPX1
  466. VALDE2(1,IN,2) = PPY1
  467. VALDE2(1,IN,3) = PPZ1
  468. VALDE2(2,IN,1) = PPX2
  469. VALDE2(2,IN,2) = PPY2
  470. VALDE2(2,IN,3) = PPZ2
  471. C
  472. VALDE3(1,IN,1) = ABS(ZP1)
  473. VALDE3(2,IN,1) = ABS(ZP2)
  474. C
  475. VALDE4(1,IN,1) = PPP1
  476. VALDE4(2,IN,1) = PPP2
  477. C
  478. END IF
  479. C
  480. 110 CONTINUE
  481. C
  482. 100 CONTINUE
  483. C
  484. END
  485.  
  486.  
  487.  
  488.  
  489.  
  490.  
  491.  

© Cast3M 2003 - Tous droits réservés.
Mentions légales