Télécharger cqtgr2.eso

Retour à la liste

Numérotation des lignes :

cqtgr2
  1. C CQTGR2 SOURCE CHAT 05/01/12 22:27:38 5004
  2. SUBROUTINE CQTGR2(XE,NBNN,NBPGAU,LRE,EPAIST,DZEGAU,SHPCOQ,
  3. 1 SHPELE,XDDL,XDDL1,GRADI)
  4. IMPLICIT INTEGER(I-N)
  5. IMPLICIT REAL*8(A-H,O-Z)
  6. C |=====================================================================
  7. C | SOUS-PROGRAMME DE L'OPERATEUR GRADIENT (APPELE PAR GRAD1)
  8. C | CALCUL DU GRADIENT DE TEMPERATURE POUR LES ELEMENT COQ4,COQ6,COQ8
  9. C |== ENTREES
  10. C | XX(3,NBNN): TABLEAU DES COORDONNEES DES NOEUDS
  11. C | NBNN : NOMBRE DE NOUDS
  12. C | NBPGAU : NOMBRE DE POINTS DE GAUSS
  13. C | LRE : NOMBRE DE DDL
  14. C | EPAIST : EPAISSEUR DE LA COQUE
  15. C | DZEGAU(NBPGAU): COORDONNEES REDUITES DES POIN
  16. C | DE GAUSS DANS L EPAISSEUR
  17. C | SHPCOQ(6,NBNN,NBPGAU) :FONCTIONS DE FORME ET DERIVEES
  18. C | AUX POINTS DE GAUSS
  19. C | SHPELE(6,NBNN,NBNN) :FONCTIONS DE FORME ET DERIVEES AUX NOEUDS
  20. C | XDDL(LRE): TEMPERATURES AU NOEUDS
  21. C | XDDL1(LRE): TABLEAU DE TRAVAIL
  22. C |== SORTIES
  23. C | GRADI(2*NBPGAU):2 TERMS DE GRADIANT AUX NBPGAU POINTS DE GAUSS
  24. C | AUTEUR : P. DOWLATYARI 30/5/91
  25. C |=====================================================================
  26.  
  27. -INC PPARAM
  28. -INC CCOPTIO
  29. DIMENSION DZEGAU(*),SHPCOQ(6,NBNN,*),SHPELE(6,NBNN,*)
  30. DIMENSION XE(3,*),GRADI(*),XDDL(*),XDDL1(*)
  31. DIMENSION TXR(3,3,8),BGR(2,24),TH(8),TT(9),EXC(8)
  32. DIMENSION XJ(3,3),XJI(3,3)
  33. PARAMETER (XZERO=0.D0,UN=1.D0,DEUX=2.D0)
  34. C
  35. C CALCUL DES AXES LOCAUX A TOUS LES NOEUDS
  36. C
  37. CALL CQ8LOC(XE,NBNN,SHPELE,TXR,IRR)
  38. IF(IRR.EQ.0)THEN
  39. CALL ERREUR(515)
  40. RETURN
  41. ENDIF
  42. C
  43. DO 10 I=1,NBNN
  44. TH(I)=EPAIST
  45. EXC(I)=0.D0
  46. 10 CONTINUE
  47. C
  48. C ON REORDONNE LES COMPOSANTES DE TEMPERATURES ET ON
  49. C LES MET DANS XDDL1
  50. C
  51. DO 11 I=1,LRE
  52. JJ=(I-1)/NBNN
  53. KK=I-JJ*NBNN
  54. II=(KK-1)*3+JJ+1
  55. XDDL1(I)=XDDL(II)
  56. 11 CONTINUE
  57. C
  58. C BOUCLE SUR LES POINTS DE GAUSS
  59. C
  60. C
  61. DO 100 IGAU=1,NBPGAU
  62. CALL ZERO(BGR,2,LRE)
  63. C
  64. C CALCUL DU JACOBIEN ET DE SON DETERMINENT EN CE POINT DE GAUSS
  65. C
  66. E3=DZEGAU(IGAU)
  67. CALL CQ8JCE(IGAU,NBNN,E3,XE,TH,EXC,TXR,SHPCOQ,XJ,DJAC,IRR)
  68. IF (IRR.LT.0)THEN
  69. * JACOBIEN NUL DANS L'ELEMENT IEL
  70. INTERR(1)=0
  71. CALL ERREUR (405)
  72. RETURN
  73. ENDIF
  74. *
  75. * INVERSION DU JACOBIEN
  76. *
  77. DUM =UN/DJAC
  78. XJI(1,1) = DUM*( XJ(2,2)*XJ(3,3) - XJ(2,3)*XJ(3,2))
  79. XJI(2,1) = DUM*(-XJ(2,1)*XJ(3,3) + XJ(2,3)*XJ(3,1))
  80. XJI(3,1) = DUM*( XJ(2,1)*XJ(3,2) - XJ(2,2)*XJ(3,1))
  81. XJI(1,2) = DUM*(-XJ(1,2)*XJ(3,3) + XJ(1,3)*XJ(3,2))
  82. XJI(2,2) = DUM*( XJ(1,1)*XJ(3,3) - XJ(1,3)*XJ(3,1))
  83. XJI(3,2) = DUM*(-XJ(1,1)*XJ(3,2) + XJ(1,2)*XJ(3,1))
  84. XJI(1,3) = DUM*( XJ(1,2)*XJ(2,3) - XJ(1,3)*XJ(2,2))
  85. XJI(2,3) = DUM*(-XJ(1,1)*XJ(2,3) + XJ(1,3)*XJ(2,1))
  86. XJI(3,3) = DUM*( XJ(1,1)*XJ(2,2) - XJ(1,2)*XJ(2,1))
  87. *
  88. * DETERMINATION DES COSINUS DIRECTEURS DES AXES LOCAUX EN CE POINT
  89. *
  90. * COQ8 COQ6
  91. IF(NBNN.EQ.8.OR.NBNN.EQ.6)THEN
  92. *
  93. DO 20 I=1,3
  94. DO 20 J=1,2
  95. K=3*(J-1)+I
  96. TT(K) = XJ(J,I)
  97. 20 CONTINUE
  98. *
  99. * PRODUITS VECTORIELS ET NORMALISATIONS
  100. *
  101. CALL CROSS2(TT(1),TT(4),TT(7),IRR)
  102. CALL CROSS2(TT(7),TT(1),TT(4),IRR)
  103. CALL CROSS2(TT(4),TT(7),TT(1),IRR)
  104. *
  105. ELSE
  106. IF(IGAU.EQ.1)THEN
  107. *
  108. * CALCUL DES AXES LOCAUX DE L 'ELEMENT COQ4
  109. *
  110. * DIAGONALE 1
  111. *
  112. TT(1)=XE(1,3)-XE(1,1)
  113. TT(2)=XE(2,3)-XE(2,1)
  114. TT(3)=XE(3,3)-XE(3,1)
  115. *
  116. * DIAGONALE 2
  117. *
  118. TT(4)=XE(1,4)-XE(1,2)
  119. TT(5)=XE(2,4)-XE(2,2)
  120. TT(6)=XE(3,4)-XE(3,2)
  121. *
  122. * NORMALE AUX 2 DIAGONALES
  123. *
  124. CALL CROSS2(TT(1),TT(4),TT(7),IRR)
  125. *
  126. TT(1)=XE(1,2)-XE(1,1)
  127. TT(2)=XE(2,2)-XE(2,1)
  128. TT(3)=XE(3,2)-XE(3,1)
  129. *
  130. CALL CROSS2(TT(7),TT(1),TT(4),IRR)
  131. CALL CROSS2(TT(4),TT(7),TT(1),IRR)
  132. *
  133. ENDIF
  134. ENDIF
  135. IF(IRR.EQ.0) THEN
  136. * ECHEC DANS LE CALCUL DES AXES LOCAUX
  137. CALL ERREUR(515)
  138. RETURN
  139. ENDIF
  140. *
  141. *
  142. * PRODUIT MATRICIEL TT TRANSPOSE * XJI
  143. *
  144. DO 30 I=1,3
  145. DO 30 J=1,3
  146. XJ(I,J)=XZERO
  147. DO 30 K=1,3
  148. K1=3*(I-1)+K
  149. XJ(I,J) = XJ(I,J)+TT(K1)*XJI(K,J)
  150. 30 CONTINUE
  151. *
  152. * CALCUL DE LA MATRICE DE GRADIENT DES FONCTIONS DE FORME
  153. * DANS LE REPERE LOCAL
  154. *
  155. NBNN2=2*NBNN
  156. DO 40 K = 1,LRE
  157. DO 40 I = 1,2
  158. DO 40 J = 1,3
  159. JJ=J+1
  160. IF(JJ.EQ.4)JJ=1
  161. IF(K.LE.NBNN)THEN
  162. KK=K
  163. IF(J.LE.2)THEN
  164. COEF=(E3/DEUX)*(E3-UN)
  165. ELSE
  166. COEF=E3-UN/DEUX
  167. ENDIF
  168. ELSEIF(K.GT.NBNN.AND.K.LE.NBNN2)THEN
  169. KK=K-NBNN
  170. IF(J.LE.2)THEN
  171. COEF=UN-E3*E3
  172. ELSE
  173. COEF=-DEUX*E3
  174. ENDIF
  175. ELSE
  176. KK=K-NBNN2
  177. IF(J.LE.2)THEN
  178. COEF=(E3/DEUX)*(E3+UN)
  179. ELSE
  180. COEF=E3+UN/DEUX
  181. ENDIF
  182. ENDIF
  183. BGR(I,K)=BGR(I,K)+COEF*SHPCOQ(JJ,KK,IGAU)*XJ(I,J)
  184. 40 CONTINUE
  185. C
  186. C CALCUL DE BGR*XDDL
  187. C
  188. IG=(IGAU-1)*2+1
  189. CALL BGRDEP(BGR,2,XDDL1,LRE,GRADI(IG))
  190. C
  191. 100 CONTINUE
  192. C
  193. RETURN
  194. END
  195.  
  196.  

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