Télécharger caljcc.eso

Retour à la liste

Numérotation des lignes :

caljcc
  1. C CALJCC SOURCE CB215821 26/08/24 21:15:23 12622
  2. SUBROUTINE CALJCC(FN,GR,PG,XYZ,HR,PGSQ,RPG,IES,ND,NP,NPG,IAXI,
  3. &AIRE,AJ,HHR)
  4. C************************************************************************
  5. C
  6. C CE SP DIFFERRE DE CALICC PAR LE RANGEMENT DE HR
  7. C
  8. C HR(IES,NP,1)
  9. C HHR(ND,NP,1)
  10. C
  11. C DANS LE CAS DES ELEMENTS COQUES LE CHANGEMENT DE REPERE SE FAIT EN
  12. C TEMPS 1/ DANS LE PLAN DE L'ELEMENT : HHR
  13. C 2/ ROTATION 3D : HR
  14. C
  15. C CALCUL DE L'INVERSE DU JACOBIEN AJ=1/J
  16. C CALCUL DE L'AIRE OU VOLUME AIRE
  17. C CALCUL DE PGSQ(L)
  18. C CALCUL DE RPG(L)
  19. C CALCUL DE DES GRADIENTS HR(ND,NP)
  20. C CALCUL INTERMEDIAIRE DE L'ELEMENT D'AIRE SQ=DET(J)
  21. C DANS LES CAS 2D ET 3D
  22. C
  23. C IES DIMENSION ESPACE
  24. C ND DIMENSION ESPACE DE L'ELEMENT
  25. C NP NOMBRE DE NOEUDS DE L'ELEMENT
  26. C NPG NOMBRE DE POINTS D'INTEGRATION
  27. C
  28. C XYZ COORDONNEES
  29. C GR GRADIENT
  30. C B & KAUX TABLEAUX DE TRAVAIL
  31. C************************************************************************
  32. IMPLICIT INTEGER(I-N)
  33. IMPLICIT REAL*8 (A-H,O-Z)
  34. C
  35. -INC CCREEL
  36. C
  37. REAL*8 FN(NP,NPG),GR(ND,NP,1),HR(IES,NP,1),HHR(ND,NP,1)
  38. REAL*8 PG(NPG),XYZ(IES,NP),PGSQ(NPG),RPG(NPG),XY(2,9)
  39. REAL*8 SQ(9),B(3),AJ(IES,IES,NPG),AJJ(3,3,9)
  40. C
  41. DIMENSION KAUX(3)
  42. C
  43. C***
  44. C WRITE(6,*) ' *** SUB CALJCC *** IES=',IES
  45.  
  46. IF(IES.NE.2)GO TO 30
  47.  
  48. C ---------- 2D ----------
  49. C CAS DES ELEMENTS POUTRE 2D
  50.  
  51. TX=XYZ(1,NP)-XYZ(1,1)
  52. TY=XYZ(2,NP)-XYZ(2,1)
  53.  
  54. AIRE=TX*TX+TY*TY
  55. AIRE=SQRT(AIRE)
  56.  
  57. TX=TX/AIRE
  58. TY=TY/AIRE
  59.  
  60. PX=-TY
  61. PY=TX
  62.  
  63. C WRITE(6,*)' TX,TY=',TX,TY
  64. C WRITE(6,*)' PX,PY=',PX,PY
  65. C WRITE(6,*)' AIRE =',AIRE,' NPG=',NPG
  66. C WRITE(6,*)' PG =',PG
  67. C WRITE(6,*)' GR =',GR
  68. C CALL ARRET(0)
  69.  
  70.  
  71.  
  72. DO 1003 L=1,NPG
  73.  
  74. AJ(1,1,L)=TX
  75. AJ(1,2,L)=TY
  76. AJ(2,1,L)=PX
  77. AJ(2,2,L)=PY
  78. PGSQ(L)=PG(L)*AIRE
  79.  
  80. DO 20 I=1,NP
  81. HR(1,I,L)=AJ(1,1,L)*GR(1,I,L)/PGSQ(L)
  82. HR(2,I,L)=AJ(1,2,L)*GR(1,I,L)/PGSQ(L)
  83. 20 CONTINUE
  84. 1003 CONTINUE
  85.  
  86. IF(IAXI.EQ.0)RETURN
  87. C
  88. ID=3-IAXI
  89. IF(IAXI.EQ.3)CALL ARRET(0)
  90. DO 25 L=1,NPG
  91. RPG(L)=XZERO
  92. DO 26 I=1,NP
  93. RPG(L)=RPG(L)+XYZ(ID,I)*FN(I,L)
  94. 26 CONTINUE
  95. 25 CONTINUE
  96. C
  97. AIRE=XZERO
  98. DO 27 L=1,NPG
  99. PGSQ(L)=PGSQ(L)*2.0D0*XPI*RPG(L)
  100. AIRE=AIRE+PGSQ(L)
  101. 27 CONTINUE
  102. RETURN
  103.  
  104. 30 CONTINUE
  105. C ---------- 3D ----------
  106. IF(ND.NE.1)GO TO 40
  107. C CAS DES ELEMENTS POUTRE 3D
  108.  
  109. TX=XYZ(1,NP)-XYZ(1,1)
  110. TY=XYZ(2,NP)-XYZ(2,1)
  111. TZ=XYZ(3,NP)-XYZ(3,1)
  112.  
  113. AIRE=TX*TX+TY*TY+TZ*TZ
  114. AIRE=SQRT(AIRE)
  115.  
  116. TX=TX/AIRE
  117. TY=TY/AIRE
  118. TZ=TZ/AIRE
  119.  
  120. QX=3*TY-2*TZ
  121. QY=TZ-3*TX
  122. QZ=2*TX-TY
  123.  
  124. QQ=QX*QX+QY*QY+QZ*QZ
  125. QQ=SQRT(QQ)
  126.  
  127. QX=QX/QQ
  128. QY=QY/QQ
  129. QZ=QZ/QQ
  130.  
  131. PX=QY*TZ-QZ*TY
  132. PY=QZ*TX-QX*TZ
  133. PZ=QX*TY-QY*TX
  134.  
  135.  
  136. DO 1004 L=1,NPG
  137.  
  138. AJ(1,1,L)=TX
  139. AJ(1,2,L)=TY
  140. AJ(1,3,L)=TZ
  141. AJ(2,1,L)=PX
  142. AJ(2,2,L)=PY
  143. AJ(2,3,L)=PZ
  144. AJ(3,1,L)=QX
  145. AJ(3,2,L)=QY
  146. AJ(3,3,L)=QZ
  147. PGSQ(L)=PG(L)*AIRE
  148.  
  149. DO 31 I=1,NP
  150. C HR(1,I,L)=AJ(1,1,L)*GR(1,I,L)
  151. HR(1,I,L)=GR(1,I,L)/AIRE
  152. C HR(2,I,L)=AJ(1,2,L)*GR(1,I,L)
  153. HR(2,I,L)=XZERO
  154. C HR(3,I,L)=AJ(1,3,L)*GR(1,I,L)
  155. HR(3,I,L)=XZERO
  156. 31 CONTINUE
  157. 1004 CONTINUE
  158. RETURN
  159.  
  160. 40 CONTINUE
  161. C WRITE(6,*)' *** CAS DES ELEMENTS COQUES 3D ***'
  162.  
  163.  
  164. CALL CALJQB(XYZ,AJJ,3,NP)
  165. CALL CALJXY(XYZ,AJJ,IES,XY,ND,NP)
  166.  
  167.  
  168.  
  169. C WRITE(6,*)' SUB CALJCC : APPEL A CALJ22 '
  170. C WRITE(6,*)' ND,NP,NPG,IAXI=',ND,NP,NPG,IAXI
  171.  
  172. C DO 441 L=1,NPG
  173. C WRITE(6,*)' L=',L
  174. C WRITE(6,1002) (GR(1,I,L),I=1,NP)
  175. C WRITE(6,1002) (GR(2,I,L),I=1,NP)
  176. C441 CONTINUE
  177.  
  178. CALL CALJ22(FN,GR,PG,XY,HHR,PGSQ,RPG,ND,NP,NPG,IAXI,AIRE,AJ)
  179.  
  180. DO 1007 L=1,NPG
  181. PGSQ(L)=PG(L)*AIRE
  182. DO 1006 I=1,NP
  183. DO 1005 N=1,IES
  184. HR(N,I,L)=XZERO
  185. DO 41 M=1,ND
  186. HR(N,I,L)=HR(N,I,L)+AJJ(M,N,1)*HHR(M,I,L)
  187. 41 CONTINUE
  188. 1005 CONTINUE
  189. 1006 CONTINUE
  190. 1007 CONTINUE
  191.  
  192. RETURN
  193. 1002 FORMAT(10(1X,1PE11.4))
  194. 1001 FORMAT(20(1X,I5))
  195. END
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  

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