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 156 : CALL ECROBJ('LISTMOTS',MLMOTS) 156 : CALL EXCOMP 157 : IF (IERR.NE.0) RETURN 157 : CALL LIROBJ('CHPOINT',ICHP1,1,IRETOU) 158 : IF (IERR.NE.0) RETURN 159 : C 160 : C- Test du CHAMPOIN : 161 : C- 1) le CHPO n'est pas partitionné (i.e. on a toutes les composantes 162 : C- en tous les points), sinon erreur 163 : C- 110 2 Le %m1:8 de pointeur %i1 n'est pas élémentaire (n<>1) 164 : C- 2) les composantes sont dans l'ordre du LISTMOTS, sinon erreur 165 : C- 735 2 La composante %m1:4 est inexistante ou mal positionnee 166 : C- dans une connectivite 167 : C 168 : MCHPOI = ICHP1 169 : SEGACT MCHPOI 170 : SEGACT MLMOTS 171 : N1 = IPCHP(/1) 172 : IF (N1.NE.1) THEN 173 : MOTERR(1:8) = 'CHAMPOIN' 174 : INTERR(1) = ICHP1 174 : CALL ERREUR(110) 175 : RETURN 176 : ENDIF 177 : MSOUPO = IPCHP(1) 178 : SEGACT MSOUPO 179 : DO 10 I=1,NOCOMP(/2) 180 : IF (MOTS(I).NE.NOCOMP(I)) THEN 181 : MOTERR(1:4) = MOTS(I) 181 : CALL ERREUR(735) 182 : RETURN 183 : ENDIF 184 : 10 CONTINUE 185 : SEGSUP MCHPOI 186 : SEGSUP MLMOTS 187 : C 188 : C- Passage à la phase de calcul 189 : C 189 : CALL DETO1(MSOUPO,MCHPO1,MCHPO2,MCHPO3, 190 : 1 AN,AH2,AH2O,AN2,AO2,TINT,IINT,NBC,NBT) 191 : SEGSUP MSOUPO 192 : IF (IERR.NE.0) RETURN 193 : C 194 : C- Ecriture des résultats dans la pile 195 : C 195 : CALL ECROBJ('CHPOINT',MCHPO3) 195 : CALL ECROBJ('CHPOINT',MCHPO2) 195 : CALL ECROBJ('CHPOINT',MCHPO1) 196 : C 197 : RETURN 198 : END 199 : 200 : 201 :
© Cast3M 2003 - All rights reserved.
Disclaimer