Télécharger capa7.eso

Retour à la liste

Numérotation des lignes :

capa7
  1. C CAPA7 SOURCE CB215821 20/11/25 13:19:06 10792
  2.  
  3. C=======================================================================
  4. C= C A P A 7 =
  5. C= --------- =
  6. C= =
  7. C= Fonction : =
  8. C= ---------- =
  9. C= Creation d'un champ par element (MCHAML) contenant les valeurs de =
  10. C= la capacite calorifique equivalente en cas de changement de phase =
  11. C= =
  12. C= Parametres : (E)=Entree (S)=Sortie =
  13. C= ------------ =
  14. C= ITAPHA (E) Table =
  15. C= IPOGEO (E) Maillage ELEMENTAIRE (MELEME) (ACTIF) =
  16. C= ICOQ (E) Non nul si element COQUE, =0 sinon =
  17. C= IPINTE (E) Segment SMINTE de l'element fini (ACTIF) =
  18. C= ICHPHA (S) MCHAML de capacite due au changement de phase =
  19. C=======================================================================
  20.  
  21. SUBROUTINE CAPA7 (ITAPHA,IPOGEO,ICOQ,IPINTE, ICHPHA)
  22.  
  23. IMPLICIT INTEGER(I-N)
  24. IMPLICIT REAL*8 (A-H,O-Z)
  25.  
  26.  
  27. -INC PPARAM
  28. -INC CCOPTIO
  29.  
  30. -INC SMCHAML
  31. -INC SMCHPOI
  32. -INC SMCOORD
  33. -INC SMELEME
  34. -INC SMINTE
  35.  
  36. SEGMENT MTRI
  37. INTEGER NPAKET(NX)
  38. REAL*8 TEMPER(NX,2)
  39. INTEGER IPCHPT(2)
  40. ENDSEGMENT
  41.  
  42. LOGICAL L0
  43.  
  44. PARAMETER ( Epsi = 1.D-5,
  45. & XZero = 0.D0, XUn = 1.D0, X1s2 = 0.5D0 ,
  46. & X1s3 = 0.333333333333333333333333333333333333D0 )
  47.  
  48. CHARACTER*(LOCOMP) LNOCO(3)
  49. DATA LNOCO / 'TSUP','TINF','T ' /
  50.  
  51. ICHPHA = 0
  52.  
  53. C ===
  54. C 1 - Recuperation/Verification sur les donnees du changement de phase
  55. C ===
  56. C CLAT Chaleur latente du changement de phase (FLOTTANT)
  57. C TPHA1 Temperature 1 du changement de phase (FLOTTANT)
  58. C TPHA2 Temperature 2 du changement de phase (FLOTTANT)
  59. C IPCHP1 Champ de temperatures au pas (CHPOINT)
  60. C IPCHP2 Champ de temperatures au pas N + 1 (CHPOINT)
  61. I0 = 0
  62. X0 = XZero
  63. IP0 = 0
  64. L0 = .FALSE.
  65. CALL ACCTAB(ITAPHA,'MOT ',I0,X0 ,'CHALEUR LATENTE',L0,IP0,
  66. & 'FLOTTANT',I0,CLAT,' ' ,L0,IP0)
  67. CALL ACCTAB(ITAPHA,'MOT ',I0,X0 ,'TPHASE 1',L0,IP0,
  68. & 'FLOTTANT',I0,TPHA1,' ' ,L0,IP0)
  69. CALL ACCTAB(ITAPHA,'MOT ',I0,X0 ,'TPHASE 2',L0,IP0,
  70. & 'FLOTTANT',I0,TPHA2,' ' ,L0,IP0)
  71. CALL ACCTAB(ITAPHA,'MOT ',I0,X0,'CHAMP THERMIQUE 1',L0,IP0,
  72. & 'CHPOINT ',I0,X0,' ' ,L0,IPCHP1)
  73. CALL ACCTAB(ITAPHA,'MOT ',I0,X0,'CHAMP THERMIQUE 2',L0,IP0,
  74. & 'CHPOINT ',I0,X0,' ' ,L0,IPCHP2)
  75. IF (IERR.NE.0) RETURN
  76. TF1 = MIN(TPHA1,TPHA2)
  77. TF2 = MAX(TPHA1,TPHA2)
  78. DTF21 = TF2 - TF1
  79. IF (DTF21.LT.Epsi) THEN
  80. CALL ERREUR(511)
  81. RETURN
  82. ENDIF
  83. DHDTF = SIGN(XUn,(TPHA2-TPHA1)) * CLAT / DTF21
  84. C ===
  85. C 2 - Informations sur le maillage considere (IPOGEO)
  86. C ===
  87. IPT1 = IPOGEO
  88. c* SEGACT,IPT1
  89. NBNN1 = IPT1.NUM(/1)
  90. NBELE1 = IPT1.NUM(/2)
  91. C ===
  92. C 3 - Informations sur le support d'integration (MINTE)
  93. C ===
  94. MINTE = IPINTE
  95. c* SEGACT,MINTE
  96. NBPGAU = POIGAU(/1)
  97. C ===
  98. C 4 - Initialisation et remplissage du segment de travail MTRI
  99. C ===
  100. NX = nbpts
  101. SEGINI,MTRI
  102. C- NPAKET(Noeud) = 1 si Noeud est dans le maillage IPOGEO
  103. DO iElt = 1, NBELE1
  104. DO iNoe = 1, NBNN1
  105. MTRI.NPAKET(IPT1.NUM(iNoe,iElt)) = 1
  106. ENDDO
  107. ENDDO
  108. MTRI.IPCHPT(1) = IPCHP1
  109. MTRI.IPCHPT(2) = IPCHP2
  110. C- Recherche de la temperature nodale en debut et fin de pas
  111. C- pour chaque noeud du maillage IPOGEO.
  112. C- Dans le cas des elements COQUEs, la temperature nodale est la
  113. C- moyenne des temperatures T, TSUP et TINF.
  114. C- Si le noeud du maillage IPOGEO n'est pas dans le support des
  115. C- champs de temperatures, sa temperature est arbitrairement nulle.
  116. DO icht = 1, 2
  117. MCHPOI = MTRI.IPCHPT(icht)
  118. SEGACT,MCHPOI
  119. NSOUPO = IPCHP(/1)
  120. DO iSoupo = 1, NSOUPO
  121. MSOUPO = IPCHP(iSoupo)
  122. SEGACT,MSOUPO
  123. CALL PLACE(NOCOMP,NOCOMP(/2),indT,LNOCO(3))
  124. IF (indT.EQ.0) GOTO 10
  125. C- Verification sur les composantes du CHPOINT pour les coques
  126. IF (ICOQ.NE.0) THEN
  127. CALL PLACE(NOCOMP,NOCOMP(/2),indTI,LNOCO(2))
  128. CALL PLACE(NOCOMP,NOCOMP(/2),indTS,LNOCO(1))
  129. IF (indTI.EQ.0 .OR. indTS.EQ.0) THEN
  130. MOTERR= LNOCO(1)
  131. IF (indTI.EQ.0) MOTERR= LNOCO(2)
  132. CALL ERREUR(181)
  133. GOTO 999
  134. ENDIF
  135. ENDIF
  136. MELEME = IGEOC
  137. SEGACT,MELEME
  138. MPOVAL = IPOVAL
  139. SEGACT,MPOVAL
  140. DO iElt = 1, NUM(/2)
  141. j = NUM(1,iElt)
  142. IF (MTRI.NPAKET(j).NE.0) THEN
  143. MTRI.TEMPER(j,icht) = VPOCHA(iElt,indT)
  144. IF (ICOQ.NE.0) THEN
  145. MTRI.TEMPER(j,icht) = X1s3 *
  146. & ( MTRI.TEMPER(j,icht) + VPOCHA(iELT,indTI)
  147. & + VPOCHA(iELT,indTS) )
  148. ENDIF
  149. ENDIF
  150. ENDDO
  151. 10 CONTINUE
  152. ENDDO
  153. ENDDO
  154.  
  155. C ===
  156. C 5 - Determination du MCHAML de capacite calorifique du changement
  157. C de phase (terme de chaleur latente)
  158. C ===
  159. N2 = 1
  160. SEGINI,MCHAML
  161. NOMCHE(1) = 'C '
  162. TYPCHE(1) = 'REAL*8'
  163. N1PTEL = NBPGAU
  164. N1EL = NBELE1
  165. N2PTEL = 0
  166. N2EL = 0
  167. SEGINI,MELVAL
  168. IELVAL(1) = MELVAL
  169. C- Remplissage du segment MELVAL pour chaque point de Gauss (iGau) de
  170. C- chacun des elements (iElt) du maillage
  171. DO iElt = 1, NBELE1
  172. DO iGau = 1, NBPGAU
  173. C- Calcul des temperatures T1 et T2 au point de Gauss (iGau)
  174. T1 = XZero
  175. T2 = XZero
  176. DO iNoe = 1, NBNN1
  177. j = IPT1.NUM(iNoe,iElt)
  178. T1 = T1 + MTRI.TEMPER(j,1)*SHPTOT(1,iNoe,iGau)
  179. T2 = T2 + MTRI.TEMPER(j,2)*SHPTOT(1,iNoe,iGau)
  180. ENDDO
  181. C- Calcul du terme de capactite calorifique du au changement de phase
  182. C- (s'il y a lieu)
  183. IF (.NOT.(((T1.LE.TF1).AND.(T2.LE.TF1)).OR.
  184. & ((T1.GE.TF2).AND.(T2.GE.TF2)))) THEN
  185. IF (T1.NE.T2) THEN
  186. DT21 = T2 - T1
  187. DTEFF = X1s2 * (DTF21+DT21-ABS(TF2-T2)-ABS(T1-TF1))
  188. VELCHE(iGau,iElt) = DHDTF * DTEFF / ABS(DT21)
  189. ELSE
  190. VELCHE(iGau,iElt) = DHDTF
  191. ENDIF
  192. c* ELSE
  193. c* VELCHE(iGau,iElt) = XZero
  194. ENDIF
  195. ENDDO
  196. ENDDO
  197. ICHPHA = MCHAML
  198.  
  199. C ===
  200. C 6 - MENAGE : Desactivation des segments utilises et crees
  201. C ===
  202. 999 CONTINUE
  203. SEGSUP,MTRI
  204.  
  205. END
  206.  
  207.  

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