Télécharger deto.eso

Retour à la liste

Numérotation des lignes :

  1. C DETO SOURCE CHAT 05/01/12 22:44:19 5004
  2. SUBROUTINE DETO
  3. C-----------------------------------------------------------------------
  4. C Calcul les conditions Chapman-Jouguet (CJ), Adiabatic Isochore
  5. C Complete Combustion (AICC) et Zeldovitch-Neuman-Doringts (ZND)
  6. C d'un mélange O2/N2/H2/H2O.
  7. C-----------------------------------------------------------------------
  8. C
  9. C---------------------------
  10. C Phrase d'appel (GIBIANE) :
  11. C---------------------------
  12. C
  13. C CHP2 CHP3 CHP4 = DETO CHP1
  14. C
  15. C------------------------
  16. C Opérandes et résultat :
  17. C------------------------
  18. C
  19. C CHP1 : CHAMPOINT, composition du mélange, pression et température
  20. C composantes : 'O2 ', 'N2 ', 'H2 ', 'H2O ', 'P ', 'T '
  21. C CHP2 : CHAMPOINT, conditions Chapman-Jouguet (CJ)
  22. C composantes : 'RCJ ', 'TCJ ', 'PCJ ', 'TAUX', 'VCJ '
  23. C CHP3 : CHAMPOINT, idem Zeldovitch-Neuman-Doringts (ZND)
  24. C composantes : 'RZND', 'TZND', 'PZND'
  25. C CHP4 : CHAMPOINT, idem Adiabatic Isochore Complete Combustion (AICC)
  26. C composantes : 'RAIC', 'TAIC', 'PAIC'
  27. C
  28. C-----------------------------------------------------------------------
  29. C
  30. C Langage : ESOPE + FORTRAN77
  31. C
  32. C Auteurs : F.DABBENE et E.STUDER 02/99
  33. C
  34. C-----------------------------------------------------------------------
  35. IMPLICIT INTEGER(I-N)
  36. IMPLICIT REAL*8 (A-H,O-Z)
  37. CHARACTER*4 LCOMP(6)
  38. PARAMETER (NBC=4,NBT=14)
  39. DIMENSION AN(NBC),AH2(NBT),AH2O(NBT),AN2(NBT),AO2(NBT)
  40. C
  41. -INC CCOPTIO
  42. -INC SMCHPOI
  43. -INC SMLMOTS
  44. C
  45. C- Création du LISTMOTS contenant le nom des composantes du CHAMPOINT :
  46. C- 'O2 ', 'N2 ', 'H2 ', 'H2O ', 'P ' et 'T ' décrivant
  47. C- respectivement le nombre de moles des différentes especes
  48. C- ainsi que la pression et la température du mélange.
  49. C
  50. IRET = 0
  51. JGN = 4
  52. JGM = 6
  53. SEGINI MLMOTS
  54. MOTS(1) = 'H2 '
  55. MOTS(2) = 'O2 '
  56. MOTS(3) = 'H2O '
  57. MOTS(4) = 'N2 '
  58. MOTS(5) = 'P '
  59. MOTS(6) = 'T '
  60. C
  61. C-----------------------------------------------------------------
  62. C- Evolution des propriétés thermodynamiques des constituants en
  63. C- fonction de la température. On retient les modèles de CHEMKIN :
  64. C-----------------------------------------------------------------
  65. C- cp/R = a1 + a2 T + a3 T**2 + a4 T**3 + a5 T**4
  66. C- H0/RT = a1 + a2 T/2 + a3 T**2 /3 + a4 T**3 /4 + a5 T**4 /5 + a6/T
  67. C- S0/R = a1 lnT + a2 T + a3 T**2 /2 + a4 T**3 /3 + a5 T**4 /4 + a7
  68. C
  69. C- On a donc besoin de 7 coefficients pour caractériser la dépendance
  70. C- à la température. De part et d'autre de la température seuil 1000K
  71. C- deux approximations différentes sont proposées -> 14 coefs/espece
  72. C
  73. C TINT --> Température seuil
  74. C IINT --> Nombre de coefficients nécessaire pour T donnée (7)
  75. C AH2 --> Coeffs a1 à a14 pour H2
  76. C AH2O --> Coeffs a1 à a14 pour H2O
  77. C AN2 --> Coeffs a1 à a14 pour N2
  78. C AO2 --> Coeffs a1 à a14 pour O2
  79. C
  80. C Référence : The CHEMKIN Thermodynamic Data Base, R.J.Kee, F.M.Rupley,
  81. C J.A.Miller, SANDIA Report, SAND87-8215B.
  82. C
  83. TINT = 1000.D0
  84. IINT = 7
  85. C
  86. AH2(1) = 0.02991423D+02
  87. AH2(2) = 0.07000644D-02
  88. AH2(3) = -0.05633829D-06
  89. AH2(4) = -0.09231578D-10
  90. AH2(5) = 0.01582752D-13
  91. AH2(6) = -0.08350340D+04
  92. AH2(7) = -0.01355110D+02
  93. AH2(8) = 0.03298124D+02
  94. AH2(9) = 0.08249442D-02
  95. AH2(10) = -0.08143015D-05
  96. AH2(11) = -0.09475434D-09
  97. AH2(12) = 0.04134872D-11
  98. AH2(13) = -0.01012521D+05
  99. AH2(14) = -0.03294094D+02
  100. C
  101. AH2O(1) = 0.02672146D+02
  102. AH2O(2) = 0.03056293D-01
  103. AH2O(3) = -0.08730260D-05
  104. AH2O(4) = 0.01200996D-08
  105. AH2O(5) = -0.06391618D-13
  106. AH2O(6) = -0.02989921D+06
  107. AH2O(7) = 0.06862817D+02
  108. AH2O(8) = 0.03386842D+02
  109. AH2O(9) = 0.03474982D-01
  110. AH2O(10) = -0.06354696D-04
  111. AH2O(11) = 0.06968581D-07
  112. AH2O(12) = -0.02506588D-10
  113. AH2O(13) = -0.03020811D+06
  114. AH2O(14) = 0.02590233D+02
  115. C
  116. AN2(1) = 0.02926640D+02
  117. AN2(2) = 0.01487977D-01
  118. AN2(3) = -0.05684761D-05
  119. AN2(4) = 0.01009704D-08
  120. AN2(5) = -0.06753351D-13
  121. AN2(6) = -0.09227977D+04
  122. AN2(7) = 0.05980528D+02
  123. AN2(8) = 0.03298677D+02
  124. AN2(9) = 0.01408240D-01
  125. AN2(10) = -0.03963222D-04
  126. AN2(11) = 0.05641515D-07
  127. AN2(12) = -0.02444855D-10
  128. AN2(13) = -0.01020900D+05
  129. AN2(14) = 0.03950372D+02
  130. C
  131. AO2(1) = 0.03697578D+02
  132. AO2(2) = 0.06135197D-02
  133. AO2(3) = -0.01258842D-05
  134. AO2(4) = 0.01775281D-09
  135. AO2(5) = -0.01136435D-13
  136. AO2(6) = -0.01233930D+05
  137. AO2(7) = 0.03189166D+02
  138. AO2(8) = 0.03212936D+02
  139. AO2(9) = 0.01127486D-01
  140. AO2(10) = -0.05756150D-05
  141. AO2(11) = 0.01313877D-07
  142. AO2(12) = -0.08768554D-11
  143. AO2(13) = -0.01005249D+05
  144. AO2(14) = 0.06034738D+02
  145. C
  146. C- Masse molaire en gramme des différents constituants
  147. C
  148. AN(1) = 2.01594D0
  149. AN(2) = 31.9988D0
  150. AN(3) = 18.01534D0
  151. AN(4) = 28.01340D0
  152. C
  153. C- Création du CHPOINT contenant l'ensemble des composantes cherchées,
  154. C- le CHAMPOINT étant laissé dans la pile afin que l'opérateur EXTR
  155. C- fasse son travail.
  156. C
  157. CALL ECROBJ('LISTMOTS',MLMOTS)
  158. CALL EXCOMP
  159. IF (IERR.NE.0) RETURN
  160. CALL LIROBJ('CHPOINT',ICHP1,1,IRETOU)
  161. IF (IERR.NE.0) RETURN
  162. C
  163. C- Test du CHAMPOIN :
  164. C- 1) le CHPO n'est pas partitionné (i.e. on a toutes les composantes
  165. C- en tous les points), sinon erreur
  166. C- 110 2 Le %m1:8 de pointeur %i1 n'est pas élémentaire (n<>1)
  167. C- 2) les composantes sont dans l'ordre du LISTMOTS, sinon erreur
  168. C- 735 2 La composante %m1:4 est inexistante ou mal positionnee
  169. C- dans une connectivite
  170. C
  171. MCHPOI = ICHP1
  172. SEGACT MCHPOI
  173. SEGACT MLMOTS
  174. N1 = IPCHP(/1)
  175. IF (N1.NE.1) THEN
  176. MOTERR(1:8) = 'CHAMPOIN'
  177. INTERR(1) = ICHP1
  178. CALL ERREUR(110)
  179. RETURN
  180. ENDIF
  181. MSOUPO = IPCHP(1)
  182. SEGACT MSOUPO
  183. DO 10 I=1,NOCOMP(/2)
  184. IF (MOTS(I).NE.NOCOMP(I)) THEN
  185. MOTERR(1:4) = MOTS(I)
  186. CALL ERREUR(735)
  187. RETURN
  188. ENDIF
  189. 10 CONTINUE
  190. SEGSUP MCHPOI
  191. SEGSUP MLMOTS
  192. C
  193. C- Passage à la phase de calcul
  194. C
  195. CALL DETO1(MSOUPO,MCHPO1,MCHPO2,MCHPO3,
  196. 1 AN,AH2,AH2O,AN2,AO2,TINT,IINT,NBC,NBT)
  197. SEGSUP MSOUPO
  198. IF (IERR.NE.0) RETURN
  199. C
  200. C- Ecriture des résultats dans la pile
  201. C
  202. CALL ECROBJ('CHPOINT',MCHPO3)
  203. CALL ECROBJ('CHPOINT',MCHPO2)
  204. CALL ECROBJ('CHPOINT',MCHPO1)
  205. C
  206. RETURN
  207. END
  208.  
  209.  
  210.  
  211.  

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