Télécharger chame4.eso

Retour à la liste

Numérotation des lignes :

  1. C CHAME4 SOURCE FANDEUR 10/08/31 21:15:52 6734
  2. SUBROUTINE CHAME4(IPCHAM,IPMINT,MELEME)
  3. *____________________________________________________________________*
  4. * *
  5. * Transformation d'un MCHAML en T TINF TSUP en un MCHAML *
  6. * uniquement en T mais dont la répartition est parabolique dans *
  7. * l'épaisseur . Ce sous-programme n'est utilisé que pour les *
  8. * éléments coques avec intégration dans l'épaisseur *
  9. * *
  10. * Entr{es: *
  11. * ________ *
  12. * *
  13. * IPCHAM Pointeur sur le MCHAML *
  14. * *
  15. * Sorties: *
  16. * ________ *
  17. * *
  18. * IPCHAM Pointeur sur le MCHAML r{sultat *
  19. * *
  20. *____________________________________________________________________*
  21. *
  22. IMPLICIT INTEGER(I-N)
  23. IMPLICIT REAL*8(A-H,O-Z)
  24. *
  25. -INC CCOPTIO
  26. *
  27. -INC SMCHAML
  28. -INC SMELEME
  29. -INC SMINTE
  30. *
  31. CHARACTER*8 NOMC
  32. CHARACTER*16 TYPC
  33. *
  34. *----- mise en ordre des composantes : TINF et TSUP en dernier -----
  35. *
  36. * write(6,*) '2 ipcham,ipmint,meleme',ipcham,ipmint,meleme
  37. MCHAML = IPCHAM
  38. * segdes mchaml
  39. segact mchaml*mod
  40. NCOMP = NOMCHE(/2)
  41. ITINF=0
  42. ITSUP=0
  43. IT=0
  44. DO 10 I1=1,NCOMP
  45. IF(NOMCHE(I1).EQ.'TINF ') ITINF = I1
  46. IF(NOMCHE(I1).EQ.'TSUP ') ITSUP = I1
  47. IF(NOMCHE(I1).EQ.'T ') IT = I1
  48. 10 CONTINUE
  49. IF(ITINF*ITSUP*IT.EQ.0) THEN
  50. moterr(1:8)='CHAME4-2'
  51. call erreur(359)
  52. return
  53. endif
  54. NLIMIT = NCOMP - 2
  55. *
  56. *------------------ On s'occupe de la composante TINF --------------
  57. *
  58. IF(ITINF.LE.NLIMIT) THEN
  59. IF(NOMCHE(NLIMIT + 1).NE.'TSUP ') THEN
  60. INTER = IELVAL(ITINF)
  61. NOMC = NOMCHE(ITINF)
  62. TYPC = TYPCHE(ITINF)
  63. IELVAL(ITINF) = IELVAL(NLIMIT + 1)
  64. NOMCHE(ITINF) = NOMCHE(NLIMIT + 1)
  65. TYPCHE(ITINF) = TYPCHE(NLIMIT + 1)
  66. ITINF = NLIMIT + 1
  67. IELVAL(ITINF) = INTER
  68. NOMCHE(ITINF) = NOMC
  69. TYPCHE(ITINF) = TYPC
  70. ELSEIF (NOMCHE(NLIMIT + 2).NE.'TSUP ') THEN
  71. INTER = IELVAL(ITINF)
  72. NOMC = NOMCHE(ITINF)
  73. TYPC = TYPCHE(ITINF)
  74. IELVAL(ITINF) = IELVAL(NLIMIT + 2)
  75. NOMCHE(ITINF) = NOMCHE(NLIMIT + 2)
  76. TYPCHE(ITINF) = TYPCHE(NLIMIT + 2)
  77. ITINF = NLIMIT + 2
  78. IELVAL(ITINF) = INTER
  79. NOMCHE(ITINF) = NOMC
  80. TYPCHE(ITINF) = TYPC
  81. ENDIF
  82. ENDIF
  83. *
  84. *------------------ On s'occupe de la composante TSUP --------------
  85. *
  86. IF(ITSUP.LE.NLIMIT) THEN
  87. IF(NOMCHE(NLIMIT + 1).NE.'TINF ') THEN
  88. INTER = IELVAL(ITSUP)
  89. NOMC = NOMCHE(ITSUP)
  90. TYPC = TYPCHE(ITSUP)
  91. IELVAL(ITSUP) = IELVAL(NLIMIT + 1)
  92. NOMCHE(ITSUP) = NOMCHE(NLIMIT + 1)
  93. TYPCHE(ITSUP) = TYPCHE(NLIMIT + 1)
  94. ITSUP = NLIMIT + 1
  95. IELVAL(ITSUP) = INTER
  96. NOMCHE(ITSUP) = NOMC
  97. TYPCHE(ITSUP) = TYPC
  98. ELSEIF (NOMCHE(NLIMIT + 2).NE.'TSUP ') THEN
  99. INTER = IELVAL(ITSUP)
  100. NOMC = NOMCHE(ITSUP)
  101. TYPC = TYPCHE(ITSUP)
  102. IELVAL(ITSUP) = IELVAL(NLIMIT + 2)
  103. NOMCHE(ITSUP) = NOMCHE(NLIMIT + 2)
  104. TYPCHE(ITSUP) = TYPCHE(NLIMIT + 2)
  105. ITSUP = NLIMIT + 2
  106. IELVAL(ITSUP) = INTER
  107. NOMCHE(ITSUP) = NOMC
  108. TYPCHE(ITSUP) = TYPC
  109. ENDIF
  110. ENDIF
  111. DO 11 I1=1,NCOMP
  112. IF(NOMCHE(I1).EQ.'TINF ') ITINF = I1
  113. IF(NOMCHE(I1).EQ.'TSUP ') ITSUP = I1
  114. IF(NOMCHE(I1).EQ.'T ') IT = I1
  115. 11 CONTINUE
  116. IF( ITINF+ITSUP.NE.NCOMP*2-1) then
  117. moterr(1:8)='CHAME4-1'
  118. call erreur (349)
  119. return
  120. endif
  121. *
  122. SEGACT MELEME
  123. NBELEM = NUM(/2)
  124. SEGDES MELEME
  125. MINTE = IPMINT
  126. C* SEGACT MINTE <- Actif en (E/S)
  127. NBGAUS = POIGAU(/1)
  128. N1EL = NBELEM
  129. N1PTEL = NBGAUS
  130. N2EL = 0
  131. N2PTEL = 0
  132. SEGINI MELVA3
  133. *
  134. *-------------- Calcul de T a partir de T TINF et TSUP -------------
  135. *
  136. * write(6,*) ' it , itinf, itsup',it , itinf, itsup
  137. MELVAL = IELVAL(IT)
  138. MELVA1 = IELVAL(ITINF)
  139. MELVA2 = IELVAL(ITSUP)
  140. * write(6,*) '1 melval,melva1,melva2',melval,melva1,melva2
  141. SEGACT MELVAL
  142. SEGACT MELVA1
  143. SEGACT MELVA2
  144. NPT = VELCHE(/1)
  145. NEL = VELCHE(/2)
  146. N1PT = MELVA1.VELCHE(/1)
  147. N1EL = MELVA1.VELCHE(/2)
  148. N2PT = MELVA2.VELCHE(/1)
  149. N2EL = MELVA2.VELCHE(/2)
  150. C write(6,*) 'NPT ',NPT
  151. C write(6,*) 'N1PT ',N1PT
  152. C write(6,*) 'N2PT ',N2PT
  153. C write(6,*) 'NEL ',NEL
  154. C write(6,*) 'N1EL ',N1EL
  155. C write(6,*) 'N2EL ',N2EL
  156. *
  157. *------------------------ boucle sur les elements -----------------
  158. *-------------------- boucle sur les points de gauss --------------
  159. *
  160. DO 20 I2=1,NBELEM
  161. C write(6,*) ' '
  162. C write(6,*) '------------------------------'
  163. C write(6,*) 'Element numero :',I2
  164. DO 30 I3=1,NBGAUS
  165. C write(6,*) 'Point numero :',I3
  166. IF(NPT.EQ.1.AND.NEL.EQ.1) THEN
  167. T = VELCHE(1,1)
  168. ELSEIF(NPT.EQ.1) THEN
  169. T = VELCHE(1,I2)
  170. ELSE
  171. T = VELCHE(I3,I2)
  172. ENDIF
  173. IF(N1PT.EQ.1.AND.N1EL.EQ.1) THEN
  174. TINF = MELVA1.VELCHE(1,1)
  175. ELSEIF(N1PT.EQ.1) THEN
  176. TINF = MELVA1.VELCHE(1,I2)
  177. ELSE
  178. TINF = MELVA1.VELCHE(I3,I2)
  179. ENDIF
  180. IF(N2PT.EQ.1.AND.N2EL.EQ.1) THEN
  181. TSUP = MELVA2.VELCHE(1,1)
  182. ELSEIF(N2PT.EQ.1) THEN
  183. TSUP = MELVA2.VELCHE(1,I2)
  184. ELSE
  185. TSUP = MELVA2.VELCHE(I3,I2)
  186. ENDIF
  187. ZZ = DZEGAU(I3)
  188. C write(6,*) 'ZZ ',ZZ
  189. C write(6,*) 'T : ',T
  190. C write(6,*) 'TINF : ',TINF
  191. C write(6,*) 'TSUP : ',TSUP
  192. TT = (0.5D0 * (TINF + TSUP - (2.D0 * T)) * (ZZ*ZZ))
  193. 1 + (0.5D0*(TSUP - TINF) * ZZ) + T
  194. C write(6,*) 'Temperature calculee : ',TT
  195. MELVA3.VELCHE(I3,I2) = TT
  196. 30 CONTINUE
  197. 20 CONTINUE
  198.  
  199. *
  200. *--------- desactivation et suppression des segments ---------------
  201. *
  202. N2 = NLIMIT
  203. SEGADJ MCHAML
  204. * write(6,*) ' melval,melva1,melva2',melval,melva1,melva2
  205. SEGSUP MELVAL
  206. IELVAL(IT) = MELVA3
  207. SEGSUP MELVA1,MELVA2
  208. C* SEGDES MINTE <- Actif en (E/S)
  209. SEGDES MELVA3
  210. RETURN
  211. END
  212.  
  213.  
  214.  

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