Télécharger flamcr.eso

Retour à la liste

Numérotation des lignes :

flamcr
  1. C FLAMCR SOURCE CB215821 20/11/25 13:29:05 10792
  2. SUBROUTINE FLAMCR()
  3. C************************************************************************
  4. C
  5. C PROJET : CASTEM 2000
  6. C
  7. C NOM : FLAMCR
  8. C
  9. C DESCRIPTION : CREBCOM: critere de combustion
  10. C
  11. C LANGAGE : FORTRAN 77 + ESOPE 2000 (avec extensions CISI)
  12. C
  13. C AUTEUR : A. BECCANTINI, DM2S/SFME/LTMF
  14. C
  15. C************************************************************************
  16. C
  17. C
  18. C************************************************************************
  19. C
  20. C HISTORIQUE (Anomalies et modifications éventuelles)
  21. C
  22. C HISTORIQUE :
  23. C
  24. C
  25. C************************************************************************
  26. C
  27. IMPLICIT INTEGER(I-N)
  28.  
  29. -INC PPARAM
  30. -INC CCOPTIO
  31. -INC SMELEME
  32. POINTEUR MELEFE.MELEME
  33. -INC SMCHPOI
  34. POINTEUR MPOCSI.MPOVAL
  35. -INC SMLMOTS
  36. -INC SMLENTI
  37. INTEGER JGN, JGM
  38. POINTEUR MLECEN.MLENTI
  39. C
  40. C**** Variables de COOPTIO
  41. C
  42. C INTEGER IPLLB, IERPER, IERMAX, IERR, INTERR
  43. C & ,IOTER, IOLEC, IOIMP, IOCAR, IOACQ
  44. C & ,IOPER, IOSGB, IOGRA, IOSAU, IORES
  45. C & ,IECHO, IIMPI, IOSPI
  46. C & ,IDIM
  47. C & ,MCOORD
  48. C & ,IFOMOD, NIFOUR, IFOUR, NSDPGE, IONIVE
  49. C & ,NGMAXY, IZROSF, ISOTYP, IOSCR,LTEXLU
  50. C & ,NORINC,NORVAL,NORIND,NORVAD
  51. C & ,NUCROU, IPSAUV
  52. C
  53. C**** Les variables
  54. C
  55. INTEGER IDOMA,IRET,MELEMC,ICSI,IGEOM,NCEN,NFAC,NLCF,ICEN
  56. & ,ICHPO1,NGCED,NGCEG,NLCED,NLCEG,N,NC, ICOND, INEFMD
  57.  
  58. REAL*8 EPS1, CSIMAX, VCSIG, VCSID, VCSI2G, VCSI2D, EPS12
  59. & , CSIG
  60. CHARACTER*8 TYPE
  61. C
  62. C**** Lecture de l'objet MODELE
  63. C
  64. ICOND = 1
  65. CALL QUETYP(TYPE,ICOND,IRET)
  66.  
  67. IF(IRET.EQ.0.AND.TYPE.NE.'MMODEL')THEN
  68. WRITE(6,*)' On attend un objet MMODEL'
  69. RETURN
  70. ENDIF
  71. CALL LIROBJ('MMODEL',MMODEL,ICOND,IRET)
  72. IF(IERR.NE.0)GOTO 9999
  73. CALL LEKMOD(MMODEL,IDOMA,INEFMD)
  74. IF(IERR.NE.0)GOTO 9999
  75. C
  76. C**** CENTRE, et FACEL
  77. C
  78. CALL LEKTAB(IDOMA,'CENTRE',MELEMC)
  79. IF(IERR .NE. 0) GOTO 9999
  80. C
  81. CALL LEKTAB(IDOMA,'FACEL',MELEFE)
  82. IF(IERR .NE. 0) GOTO 9999
  83. C
  84. C**** EPS1
  85. C Critere original du model CREBCOM
  86. C
  87. CALL LIRREE(EPS1,1,IRET)
  88. IF(IERR.NE.0) GOTO 9999
  89. C
  90. C**** CSIMAX
  91. C
  92. CALL LIRREE(CSIMAX,1,IRET)
  93. IF(IERR.NE.0) GOTO 9999
  94. C
  95. C**** ICSI = Progress Variable
  96. C
  97. TYPE='CHPOINT '
  98. CALL LIROBJ(TYPE,ICSI,1,IRET)
  99. IF(IERR.NE.0) GOTO 9999
  100. C
  101. MLMOT1=0
  102. CALL QUEPO1(ICSI,MELEMC,MLMOT1)
  103. IF(IERR.NE.0) GOTO 9999
  104. SEGSUP MLMOT1
  105. C
  106. CALL LICHT(ICSI,MPOCSI,TYPE,IGEOM)
  107. C SEGACT MPOCSI
  108. IF(IERR.NE.0) GOTO 9999
  109. C
  110. C**** CHPOINT qui vaut 1 si on a combustion
  111. C zero o contraire
  112. JGN=4
  113. JGM=1
  114. SEGINI MLMOT1
  115. MLMOT1.MOTS(1)='SCAL'
  116. TYPE = ' '
  117. CALL KRCHP1(TYPE, MELEMC, ICHPO1, MLMOT1)
  118. C SEGDES MLMOT1
  119. IF(IERR.NE.0) GOTO 9999
  120. CALL LICHT(ICHPO1,MPOVA1,TYPE,IGEOM)
  121. C SEGACT MPOVA1
  122. IF(IERR.NE.0) GOTO 9999
  123. C
  124. C**** KRIPAD pour la correspondance global/local de centre
  125. C
  126. CALL KRIPAD(MELEMC,MLECEN)
  127. IF(IERR .NE. 0)GOTO 9999
  128. C
  129. C SEGACT MLECEN
  130. IPT1 = MELEMC
  131. SEGACT IPT1
  132. NCEN = IPT1.NUM(/2)
  133. SEGDES IPT1
  134. C
  135. SEGACT MELEFE
  136. NFAC=MELEFE.NUM(/2)
  137. C
  138. DO NLCF = 1, NFAC
  139. C
  140. C******* NLCF = numero local du centre de facel
  141. C NGCEG = numero global du centre ELT "gauche"
  142. C NLCEG = numero local du centre ELT "gauche"
  143. C NGCED = numero global du centre ELT "droite"
  144. C NLCED = numero local du centre ELT "droite"
  145. C
  146. NGCEG = MELEFE.NUM(1,NLCF)
  147. NGCED = MELEFE.NUM(3,NLCF)
  148. NLCEG = MLECEN.LECT(NGCEG)
  149. NLCED = MLECEN.LECT(NGCED)
  150. C
  151. VCSIG=MPOCSI.VPOCHA(NLCEG,1)
  152. VCSID=MPOCSI.VPOCHA(NLCED,1)
  153. VCSI2G=VCSIG*VCSIG
  154. VCSI2D=VCSID*VCSID
  155. C
  156. IF(NLCEG .EQ. NLCED)THEN
  157. C
  158. C********** Murs
  159. C
  160. MPOVA1.VPOCHA(NLCEG,1)=MPOVA1.VPOCHA(NLCEG,1) + (0.5D0 *
  161. & VCSI2D)
  162. C
  163. ELSE
  164. C
  165. MPOVA1.VPOCHA(NLCEG,1)=MPOVA1.VPOCHA(NLCEG,1) +
  166. & (VCSI2D - (0.5D0 * VCSI2G))
  167. MPOVA1.VPOCHA(NLCED,1)=MPOVA1.VPOCHA(NLCED,1) +
  168. & (VCSI2G - (0.5D0 * VCSI2D))
  169. C
  170. ENDIF
  171. ENDDO
  172. C
  173. EPS12 = EPS1 * EPS1
  174. DO ICEN = 1, NCEN, 1
  175. VCSIG = MPOVA1.VPOCHA(ICEN,1)
  176. CSIG = MPOCSI.VPOCHA(ICEN,1)
  177. C
  178. C******* In 2D, contribution of the ideal upper and lower cells
  179. C
  180. IF(IDIM .EQ. 2) VCSIG = VCSIG + (CSIG * CSIG)
  181. IF((VCSIG .GT. EPS12) .AND. (CSIG .LT. CSIMAX))THEN
  182. C
  183. C********** Il y a combustion
  184. C
  185. MPOVA1.VPOCHA(ICEN,1) = 1.0D0
  186. ELSE
  187. MPOVA1.VPOCHA(ICEN,1) = 0.0D0
  188. ENDIF
  189. ENDDO
  190. C
  191. SEGDES MPOVA1
  192. SEGDES MPOCSI
  193. SEGDES MELEFE
  194. SEGSUP MLECEN
  195. C
  196. C**** Ecriture du resultat
  197. C
  198. CALL ECROBJ('CHPOINT ',ICHPO1)
  199. IF(IERR.NE.0)GOTO 9999
  200. C
  201. 9999 RETURN
  202. END
  203.  
  204.  
  205.  
  206.  
  207.  
  208.  
  209.  
  210.  
  211.  
  212.  
  213.  
  214.  
  215.  
  216.  
  217.  

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