Télécharger towa1.eso

Retour à la liste

Numérotation des lignes :

towa1
  1. C TOWA1 SOURCE CB215821 22/07/20 15:39:46 11411
  2. SUBROUTINE TOWA1 (REDIR,NOCOPO,NOMDU1,IPINW,NOMPR1,
  3. & MPOVD1,MPOVC1,MPOVR1,MPOVL1,MPOVT1,
  4. & XDT1,DESCR,xMATRI,MCHPOI)
  5. C
  6. C***********************************************************************
  7. C
  8. C
  9. C Subroutine appelée par TOWA.
  10. C Création de la matrice élémentaire et du second membre associés
  11. C à l'opération de thermique 1D dans un mur.
  12. C
  13. C
  14. C ENTREES :
  15. C --------
  16. C
  17. C REDIR : Segment des tableaux de correspondances
  18. C NOCOPO : Segment des tableaux de positions des noms de composantes
  19. C NOMDU1 : Nom de l'inconnue duale définie sur les points de
  20. C tous les murs.
  21. C IPINW : Support géométrique associé au mur
  22. C NOMPR1 : Nom de l'inconnue ou de la donnée flux de chaleur.
  23. C MPOVD1 : Pointeur sur le segment MPOVAL des valeurs de l'inconnue
  24. C duale à l'itération précédente.
  25. C MPOVC1 : Pointeur sur le segment MPOVAL des valeurs des chaleurs
  26. C spécifiques.
  27. C MPOVR1 : Pointeur sur le segment MPOVAL des valeurs des masses
  28. C volumiques.
  29. C MPOVL1 : Pointeur sur le segment MPOVAL des valeurs des
  30. C conductivités spécifiques.
  31. C MPOVT1 : Pointeur sur le segment MPOVAL des valeurs des
  32. C épaisseurs.
  33. C XDT1 : Valeur du pas de temps
  34. C
  35. C SORTIE :
  36. C -------
  37. C
  38. C DESCR : Pointeur sur le segment descriptif de la matrice
  39. C élémentaire.
  40. C IMATRI : Pointeur sur le segment contenant le pointeur de
  41. C la matrice élémentaire.
  42. C MCHPOI : Pointeur sur le champ second membre.
  43. C
  44. C
  45. C AUTEUR, DATE DE CREATION:
  46. C -------------------------
  47. C
  48. C Laurent DADA décembre 1996
  49. C
  50. C
  51. C LANGAGE:
  52. C --------
  53. C
  54. C ESOPE + FORTRAN77
  55. C
  56. C***********************************************************************
  57. C
  58. IMPLICIT INTEGER(I-N)
  59. IMPLICIT REAL*8 (A-H,O-Z)
  60. C
  61.  
  62. -INC PPARAM
  63. -INC CCOPTIO
  64. -INC SMCHPOI
  65. POINTEUR MPOVC1.MPOVAL,MPOVR1.MPOVAL,MPOVD1.MPOVAL
  66. POINTEUR MPOVL1.MPOVAL,MPOVT1.MPOVAL
  67. -INC SMELEME
  68. POINTEUR IPINW.MELEME
  69. -INC SMRIGID
  70. -INC TMTRAV
  71. C
  72. SEGMENT REDIR
  73. INTEGER IPOSC1(NNGOT)
  74. INTEGER IPOSR1(NNGOT)
  75. INTEGER IPOSL1(NNGOT)
  76. INTEGER IPOST1(NNGOT)
  77. INTEGER IPOSQ1(NNGOT)
  78. INTEGER IPOSD1(NNGOT)
  79. ENDSEGMENT
  80. C
  81. SEGMENT NOCOPO
  82. INTEGER NOCOC1(2)
  83. INTEGER NOCOR1(2)
  84. INTEGER NOCOL1(2)
  85. INTEGER NOCOT1(2)
  86. ENDSEGMENT
  87. C
  88. CHARACTER*8 NOMDU1,NOMPR1
  89. REAL*8 LGAU,LDRO
  90. C
  91. SEGACT IPINW
  92. NBELW1 = IPINW.NUM(/2)
  93. C
  94. C Remplissage du descripteur de l'objet RIGIDITE
  95. C
  96. NLIGRP = NBELW1
  97. NLIGRD = NBELW1
  98. SEGINI DESCR
  99. C
  100. DO 20 I20=1,NBELW1
  101. NOELEP(I20) = I20
  102. LISINC(I20) = NOMDU1
  103. NOELED(I20) = I20
  104. LISDUA(I20) = NOMDU1
  105. 20 CONTINUE
  106. C
  107. SEGDES DESCR
  108. C
  109. NELRIG = 1
  110. * SEGINI IMATRI
  111. SEGINI XMATRI
  112. C
  113. * IMATTT(1) = XMATRI
  114. * SEGDES IMATRI
  115. C
  116. C Initialisation du segment de travail
  117. C
  118. NNIN = 1
  119. NNNOE = NBELW1
  120. SEGINI MTRAV
  121. INCO(1) = NOMDU1
  122. NHAR(1) = NIFOUR
  123. C Boucle sur les points internes du mur
  124. SEGACT REDIR
  125. SEGACT NOCOPO
  126. SEGACT MPOVC1
  127. SEGACT MPOVR1
  128. SEGACT MPOVL1
  129. SEGACT MPOVT1
  130. SEGACT MPOVD1
  131. C
  132. DO 40 I40=2,(NBELW1-1)
  133. NUMW1 = IPINW.NUM(1,I40)
  134. IGEO(I40) = NUMW1
  135. IBIN(1,I40) = 1
  136. JPOSC1 = IPOSC1(NUMW1)
  137. JPOSR1 = IPOSR1(NUMW1)
  138. JPOSL1 = IPOSL1(NUMW1)
  139. JPOST1 = IPOST1(NUMW1)
  140. JPOSD1 = IPOSD1(NUMW1)
  141. CGAU = MPOVC1.VPOCHA(JPOSC1,NOCOC1(1))
  142. RGAU = MPOVR1.VPOCHA(JPOSR1,NOCOR1(1))
  143. LGAU = MPOVL1.VPOCHA(JPOSL1,NOCOL1(1))
  144. TGAU = MPOVT1.VPOCHA(JPOST1,NOCOT1(1))
  145. CDRO = MPOVC1.VPOCHA(JPOSC1,NOCOC1(2))
  146. RDRO = MPOVR1.VPOCHA(JPOSR1,NOCOR1(2))
  147. LDRO = MPOVL1.VPOCHA(JPOSL1,NOCOL1(2))
  148. TDRO = MPOVT1.VPOCHA(JPOST1,NOCOT1(2))
  149. AI = - LGAU / TGAU
  150. BI = (0.5D0*TGAU*RGAU*CGAU+0.5D0*TDRO*RDRO*CDRO) / XDT1
  151. & + LGAU / TGAU + LDRO / TDRO
  152. CI = - LDRO / TDRO
  153. DI = ((0.5D0*TGAU*RGAU*CGAU+0.5D0*TDRO*RDRO*CDRO) / XDT1)
  154. & * (MPOVD1.VPOCHA(JPOSD1,1))
  155. RE(I40,I40-1,1) = AI
  156. RE(I40,I40,1) = BI
  157. RE(I40,I40+1,1) = CI
  158. BB(1,I40) = DI
  159. 40 CONTINUE
  160. C Le premier point du mur
  161. NUMW1 = IPINW.NUM(1,1)
  162. IGEO(1) = NUMW1
  163. IBIN(1,1) = 1
  164. JPOSC1 = IPOSC1(NUMW1)
  165. JPOSR1 = IPOSR1(NUMW1)
  166. JPOSL1 = IPOSL1(NUMW1)
  167. JPOST1 = IPOST1(NUMW1)
  168. JPOSD1 = IPOSD1(NUMW1)
  169. CDRO = MPOVC1.VPOCHA(JPOSC1,NOCOC1(2))
  170. RDRO = MPOVR1.VPOCHA(JPOSR1,NOCOR1(2))
  171. LDRO = MPOVL1.VPOCHA(JPOSL1,NOCOL1(2))
  172. TDRO = MPOVT1.VPOCHA(JPOST1,NOCOT1(2))
  173. BI = 0.5D0*TDRO*RDRO*CDRO / XDT1 + LDRO / TDRO
  174. CI = - LDRO / TDRO
  175. DI = (0.5D0*TDRO*RDRO*CDRO / XDT1) * (MPOVD1.VPOCHA(JPOSD1,1))
  176. RE(1,1,1) = BI
  177. RE(1,2,1) = CI
  178. BB(1,1) = DI
  179. C Le dernier point du mur
  180. NUMW1 = IPINW.NUM(1,NBELW1)
  181. IGEO(NBELW1) = NUMW1
  182. IBIN(1,NBELW1) = 1
  183. JPOSC1 = IPOSC1(NUMW1)
  184. JPOSR1 = IPOSR1(NUMW1)
  185. JPOSL1 = IPOSL1(NUMW1)
  186. JPOST1 = IPOST1(NUMW1)
  187. JPOSD1 = IPOSD1(NUMW1)
  188. CGAU = MPOVC1.VPOCHA(JPOSC1,NOCOC1(1))
  189. RGAU = MPOVR1.VPOCHA(JPOSR1,NOCOR1(1))
  190. LGAU = MPOVL1.VPOCHA(JPOSL1,NOCOL1(1))
  191. TGAU = MPOVT1.VPOCHA(JPOST1,NOCOT1(1))
  192. AI = - LGAU / TGAU
  193. BI = 0.5D0*TGAU*RGAU*CGAU / XDT1 + LGAU / TGAU
  194. DI = (0.5D0*TGAU*RGAU*CGAU / XDT1) * (MPOVD1.VPOCHA(JPOSD1,1))
  195. RE(NBELW1,NBELW1-1,1) = AI
  196. RE(NBELW1,NBELW1,1) = BI
  197. BB(1,NBELW1) = DI
  198. C
  199. C Création du second membre
  200. C
  201. CALL CRECHP (MTRAV,MCHPOI)
  202. C
  203. SEGDES MPOVD1
  204. SEGDES IPINW
  205. SEGDES XMATRI
  206. SEGDES MPOVC1
  207. SEGDES MPOVR1
  208. SEGDES MPOVL1
  209. SEGDES MPOVT1
  210. C
  211. SEGDES REDIR
  212. SEGDES NOCOPO
  213. SEGSUP MTRAV
  214. C
  215. C
  216. END
  217.  
  218.  
  219.  
  220.  
  221.  

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