1 : C FLAMA SOURCE CHAT 06/03/29 21:21:19 5360
2 : SUBROUTINE FLAMA()
3 : C************************************************************************
4 : C
5 : C PROJET : CASTEM 2000
6 : C
7 : C NOM : FLAMA
8 : C
9 : C DESCRIPTION : voir aussi FLAM
10 : C
11 : C Calcul des masses specifiques de H2, O2, H2O et de
12 : C l'energie libere dans le cas de combustion
13 : C governe' par une loi de type Heavyside (T > Ts
14 : C tout brule).
15 : C
16 : C N.B. L'energie thermique de chaque epsece est
17 : C definie par
18 : C
19 : C e = \int_{0}^T cv(y) dy
20 : C
21 : C Toutes les grandeurs sont exprimees en unites S.I.
22 : C
23 : C LANGAGE : FORTRAN 77 + ESOPE 2000 (avec extensions CISI)
24 : C
25 : C AUTEUR : A. BECCANTINI, DRN/DMT/SEMT/LTMF
26 : C
27 : C************************************************************************
28 : C
29 : C
30 : C APPELES (E/S) :
31 : C
32 : C APPELES (Calcul) :
33 : C
34 : C
35 : C************************************************************************
36 : C
37 : C
38 : C PHRASE D'APPEL (GIBIANE) :
39 : C
40 : C RCHPO1 RCHPO2 RCHPO3 RCHPO4 = 'FLAM' MCLE1 CHPO1 FLOT1 FLOT2 FLOT3
41 : C CHPO2 CHPO3 CHPO4 CHPO5 ;
42 : C
43 : C ENTREES :
44 : C
45 : C MCLE1 : 'HEAVYSID' : mot clé
46 : C
47 : C CHPO1 : CHPOINT contenant la temperature de seuil (en K;
48 : C une composante, 'SCAL').
49 : C
50 : C FLOT1 : FLOTTANT contenant l'enthalpie de H2
51 : C a 0K (en J/kg)
52 : C
53 : C FLOT2 : FLOTTANT contenant l'enthalpie de O2
54 : C a 0K (en J/kg)
55 : C
56 : C FLOT3 : FLOTTANT contenant l'enthalpie de H2O
57 : C a 0K (en J/kg)
58 : C
59 : C CHPO2 : CHPOINT contenant la masse volumique de
60 : C l'hydrogene (en Kg/m^3; une composante, 'H2 ').
61 : C
62 : C CHPO3 : CHPOINT contenant la masse volumique de
63 : C l'oxygene (en Kg/m^3; une composante, 'O2 ').
64 : C
65 : C CHPO4 : CHPOINT contenant la masse volumique de
66 : C l'eau (en Kg/m^3; une composante, 'H2O ').
67 : C
68 : C CHPO5 : CHPOINT contenant la temperature (en K; une
69 : C composante, 'SCAL').
70 : C
71 : C SORTIES :
72 : C
73 : C
74 : C RCHPO1 : CHPOINT contenant la masse volumique de
75 : C l'hydrogene apres la reaction (en Kg/m^3;
76 : C une composante, 'H2 ').
77 : C
78 : C RCHPO2 : CHPOINT contenant la masse volumique de
79 : C l'oxygene apres la reaction (en Kg/m^3;
80 : C une composante, 'O2 ').
81 : C
82 : C RCHPO3 : CHPOINT contenant la masse volumique de
83 : C l'eau apres la reaction (en Kg/m^3; une
84 : C composante, 'H2O ').
85 : C
86 : C RCHPO4 : CHPOINT contenant la chaleur libere' (en J/m^3;
87 : C une composante, 'SCAL').
88 : C
89 : C N.B.:-tous les CHPOINTs sont non-partitonees et
90 : C ils ont le meme support geometrique;
91 : C en sortie tous les CHPOINTs ont le support
92 : C geometrique du CHPO1
93 : C
94 : C************************************************************************
95 : C
96 : C HISTORIQUE (Anomalies et modifications éventuelles)
97 : C
98 : C HISTORIQUE : Créée le 3.3.99
99 : C
100 : C************************************************************************
101 : C
102 : C
103 : C**** Variables de COOPTIO
104 : C
105 : C INTEGER IPLLB, IERPER, IERMAX, IERR, INTERR
106 : C & ,IOTER, IOLEC, IOIMP, IOCAR, IOACQ
107 : C & ,IOPER, IOSGB, IOGRA, IOSAU, IORES
108 : C & ,IECHO, IIMPI, IOSPI
109 : C & ,IDIM
110 : C & ,MCOORD
111 : C & ,IFOMOD, NIFOUR, IFOUR, NSDPGE, IONIVE
112 : C & ,NGMAXY, IZROSF, ISOTYP, IOSCR,LTEXLU
113 : C & ,NORINC,NORVAL,NORIND,NORVAD
114 : C & ,NUCROU, IPSAUV
115 : C
116 : C**** Les variables
117 : C
118 : IMPLICIT INTEGER(I-N)
119 : INTEGER ICOND, IRETOU, IERR0, ICEN, NCEN, NBCOMP, INDIC
120 : & , ITSEUI, IRYH2, IRYO2 , IRYH2O, ITEMP
121 : & , IDE, INH2, INO2, INH2O, N, NC
122 : REAL*8 H0H2, H0O2, H0H2O, VALER
123 : CHARACTER*(8) MESERR
124 : CHARACTER*(8) MTYPR
125 : CHARACTER*(4) NOMTOT(1)
126 : LOGICAL LOGNEG
127 :
128 : C
129 : C**** Les Includes
130 : C
131 : -INC CCOPTIO
132 : -INC SMCHPOI
133 : POINTEUR TSEUIL.MPOVAL, TEMP.MPOVAL, RYH2.MPOVAL, RYO2.MPOVAL
134 : & , RYH2O.MPOVAL, NRYH2.MPOVAL, NRYO2.MPOVAL, NRYH2O.MPOVAL
135 : & , DE.MPOVAL
136 : -INC SMELEME
137 : C
138 : C**** Initialisation des parametres d'erreur
139 : C
140 : LOGNEG = .FALSE.
141 : MESERR = ' '
142 : VALER = 0.0D0
143 : C
144 : C**** Initialisation des NOMTOT(1) (noms des composantes)
145 : C
146 : NOMTOT(1) = ' '
147 : C
148 : C**** Lecture du CHPOINT CHPO1 (temperature de seuil)
149 : C
150 : ICOND = 1
151 : MTYPR = 'CHPOINT '
151 : CALL LIROBJ(MTYPR,ITSEUI,ICOND,IRETOU)
152 : IF(IERR .NE. 0)GOTO 9999
153 : C
154 : C**** On cherche le pointeur de son maillage et on l'impose sur les
155 : C autres CHPOINTs
156 : C En plus on controlle: NBCOMP = 1
157 : C MSOUPO.NOCOMP(1) = 'SCAL'
158 : C
159 : MCHPOI = ITSEUI
160 : SEGACT MCHPOI
161 : MSOUPO = MCHPOI.IPCHP(1)
162 : SEGACT MSOUPO
163 : NBCOMP = MSOUPO.NOCOMP(/2)
164 : IF(NBCOMP .NE. 1)THEN
165 : C
166 : C******** Message d'erreur standard
167 : C -301 0 %m1:40
168 : C
169 : MOTERR = 'CHPO1 = ??? '
169 : CALL ERREUR(-301)
170 : C
171 : C******** Message d'erreur standard
172 : C 699 2
173 : C routine %m1:8 : On voulait un %m9:16 à %i1 composantes au lieu
174 : C de %i2
175 : C
176 : MOTERR(1:8) = ' QUEPOI '
177 : MOTERR(9:16) = 'CHPOINT '
178 : INTERR(1) = 1
179 : INTERR(2) = NBCOMP
179 : CALL ERREUR(699)
180 : GOTO 9999
181 : ENDIF
182 : NOMTOT(1) = MSOUPO.NOCOMP(1)
183 : IF(NOMTOT(1) .NE. 'SCAL')THEN
184 : C
185 : C******** Message d'erreur standard
186 : C -301 0 %m1:40
187 : C
188 : MOTERR = 'CHPO1 = ??? '
188 : CALL ERREUR(-301)
189 : C
190 : C******** Message d'erreur standard
191 : C 197 2
192 : C Le mot %m1:4 n'est pas un nom de composante reconnu
193 : C
194 : MOTERR(1:4) = NOMTOT(1)
194 : CALL ERREUR(197)
195 : GOTO 9999
196 : ENDIF
197 : ICEN = MSOUPO.IGEOC
198 : MELEME = ICEN
199 : SEGACT MELEME
200 : NCEN = MELEME.NUM(/2)
201 : SEGDES MELEME
202 : TSEUIL = MSOUPO.IPOVAL
203 : SEGDES MSOUPO
204 : SEGDES MCHPOI
205 : C
206 : C**** Lecture du FLOT1
207 : C
208 : ICOND = 1
208 : CALL LIRREE(H0H2, ICOND, IRETOU)
209 : IF(IERR .NE. 0)GOTO 9999
210 : C
211 : C**** Lecture du FLOT2
212 : C
213 : ICOND = 1
213 : CALL LIRREE(H0O2, ICOND, IRETOU)
214 : IF(IERR .NE. 0)GOTO 9999
215 : C
216 : C**** Lecture du FLOT3
217 : C
218 : ICOND = 1
218 : CALL LIRREE(H0H2O, ICOND, IRETOU)
219 : IF(IERR .NE. 0)GOTO 9999
220 : C
221 : C**** Lecture du CHPOINT CHPO2
222 : C
223 : MTYPR = 'CHPOINT'
223 : CALL LIROBJ(MTYPR,IRYH2,ICOND,IRETOU)
224 : IF(IERR .NE. 0)GOTO 9999
225 : C
226 : C**** Control du CHPOINT
227 : C
228 : INDIC = 1
229 : NBCOMP = 1
230 : NOMTOT(1) = 'H2 '
230 : CALL QUEPOI(IRYH2, ICEN, INDIC, NBCOMP, NOMTOT)
231 : IF(IERR .NE. 0)THEN
232 : IERR0 = IERR
233 :
234 : C
235 : C******** Message d'erreur standard
236 : C -301 0 %m1:40
237 : C
238 : MOTERR = 'CHPO2 = ??? '
238 : CALL ERREUR(-301)
239 :
240 : GOTO 9999
241 : ENDIF
242 : C
243 : C**** Lecture du CHPOINT CHPO3
244 : C
245 : MTYPR = 'CHPOINT'
245 : CALL LIROBJ(MTYPR,IRYO2,ICOND,IRETOU)
246 : IF(IERR .NE. 0)GOTO 9999
247 : C
248 : C**** Control du CHPOINT
249 : C
250 : INDIC = 1
251 : NBCOMP = 1
252 : NOMTOT(1) = 'O2 '
252 : CALL QUEPOI(IRYO2, ICEN, INDIC, NBCOMP, NOMTOT)
253 : IF(IERR .NE. 0)THEN
254 : IERR0 = IERR
255 :
256 : C
257 : C******** Message d'erreur standard
258 : C -301 0 %m1:40
259 : C
260 : MOTERR = 'CHPO3 = ??? '
260 : CALL ERREUR(-301)
261 :
262 : GOTO 9999
263 : ENDIF
264 : C
265 : C**** Lecture du CHPOINT CHPO4
266 : C
267 : MTYPR = 'CHPOINT'
267 : CALL LIROBJ(MTYPR,IRYH2O,ICOND,IRETOU)
268 : IF(IERR .NE. 0)GOTO 9999
269 : C
270 : C**** Control du CHPOINT
271 : C
272 : INDIC = 1
273 : NBCOMP = 1
274 : NOMTOT(1) = 'H2O '
274 : CALL QUEPOI(IRYH2O, ICEN, INDIC, NBCOMP, NOMTOT)
275 : IF(IERR .NE. 0)THEN
276 : IERR0 = IERR
277 :
278 : C
279 : C******** Message d'erreur standard
280 : C -301 0 %m1:40
281 : C
282 : MOTERR = 'CHPO4 = ??? '
282 : CALL ERREUR(-301)
283 : GOTO 9999
284 : ENDIF
285 : C
286 : C**** Lecture du CHPOINT CHPO5
287 : C
288 : MTYPR = 'CHPOINT'
288 : CALL LIROBJ(MTYPR,ITEMP,ICOND,IRETOU)
289 : IF(IERR .NE. 0)GOTO 9999
290 : C
291 : C**** Control du CHPOINT
292 : C
293 : INDIC = 1
294 : NBCOMP = 1
295 : NOMTOT(1) = 'SCAL'
295 : CALL QUEPOI(ITEMP, ICEN, INDIC, NBCOMP, NOMTOT)
296 : IF(IERR .NE. 0)THEN
297 : IERR0 = IERR
298 :
299 : C
300 : C******** Message d'erreur standard
301 : C -301 0 %m1:40
302 : C
303 : MOTERR = 'CHPO5 = ??? '
303 : CALL ERREUR(-301)
304 :
305 : GOTO 9999
306 : ENDIF
307 : C
308 : C**** On defini les CHPOINTs de sortie et on active les MPOVALs
309 : C des CHPOINTs en entre
310 : C
311 : C DE
312 : C
313 : NC = 1
314 : N = NCEN
315 : SEGINI, DE
316 : C
317 : C DE initialise a 0.0D0
318 : C N.B.: MSOUPO, MCHPOI sont relatif a ITSEUI
319 : C
320 : SEGINI, MSOUP1 = MSOUPO
321 : MSOUP1.IPOVAL = DE
322 : SEGDES MSOUP1
323 : SEGINI, MCHPO1 = MCHPOI
324 : MCHPO1.IPCHP(1) = MSOUP1
325 : MCHPO1.MOCHDE(1:40) = ' '
326 : MCHPO1.MOCHDE(41:72) = ' '
327 : SEGDES MCHPO1
328 : IDE = MCHPO1
329 : C
330 : C NRYH2
331 : C
332 : MCHPOI = IRYH2
333 : SEGACT MCHPOI
334 : MSOUPO = MCHPOI.IPCHP(1)
335 : SEGACT MSOUPO
336 : RYH2 = MSOUPO.IPOVAL
337 : SEGINI, NRYH2 = RYH2
338 : SEGINI, MSOUP1 = MSOUPO
339 : MSOUP1.IPOVAL = NRYH2
340 : SEGDES MSOUP1
341 : SEGINI, MCHPO1 = MCHPOI
342 : MCHPO1.IPCHP(1) = MSOUP1
343 : MCHPO1.MOCHDE(1:40) = ' '
344 : MCHPO1.MOCHDE(41:72) = ' '
345 : SEGDES MCHPO1
346 : INH2 = MCHPO1
347 : C
348 : C NRYO2
349 : C
350 : MCHPOI = IRYO2
351 : SEGACT MCHPOI
352 : MSOUPO = MCHPOI.IPCHP(1)
353 : SEGACT MSOUPO
354 : RYO2 = MSOUPO.IPOVAL
355 : SEGINI, NRYO2 = RYO2
356 : SEGINI, MSOUP1 = MSOUPO
357 : MSOUP1.IPOVAL = NRYO2
358 : SEGDES MSOUP1
359 : SEGINI, MCHPO1 = MCHPOI
360 : MCHPO1.IPCHP(1) = MSOUP1
361 : MCHPO1.MOCHDE(1:40) = ' '
362 : MCHPO1.MOCHDE(41:72) = ' '
363 : SEGDES MCHPO1
364 : INO2 = MCHPO1
365 : C
366 : C NRYH2O
367 : C
368 : MCHPOI = IRYH2O
369 : SEGACT MCHPOI
370 : MSOUPO = MCHPOI.IPCHP(1)
371 : SEGACT MSOUPO
372 : RYH2O = MSOUPO.IPOVAL
373 : SEGINI, NRYH2O = RYH2O
374 : SEGINI, MSOUP1 = MSOUPO
375 : MSOUP1.IPOVAL = NRYH2O
376 : SEGDES MSOUP1
377 : SEGINI, MCHPO1 = MCHPOI
378 : MCHPO1.IPCHP(1) = MSOUP1
379 : MCHPO1.MOCHDE(1:40) = ' '
380 : MCHPO1.MOCHDE(41:72) = ' '
381 : SEGDES MCHPO1
382 : INH2O = MCHPO1
383 : C
384 : C TEMP
385 : C
386 : MCHPOI = ITEMP
387 : SEGACT MCHPOI
388 : MSOUPO = MCHPOI.IPCHP(1)
389 : SEGDES MCHPOI
390 : SEGACT MSOUPO
391 : TEMP = MSOUPO.IPOVAL
392 : SEGDES MSOUPO
393 : SEGACT TEMP
394 : C
395 : SEGACT RYH2, RYO2, RYH2O, TSEUIL
396 : C
396 : CALL FLAMA1(NCEN,TSEUIL.VPOCHA,H0H2,H0O2,H0H2O,
397 : & TEMP.VPOCHA, RYH2.VPOCHA, RYO2.VPOCHA, RYH2O.VPOCHA,
398 : & DE.VPOCHA, NRYH2.VPOCHA, NRYO2.VPOCHA, NRYH2O.VPOCHA,
399 : & LOGNEG, MESERR, VALER)
400 : C
401 : IF(LOGNEG)THEN
402 : C
403 : C******* Temperature ou densite' negative
404 : C
405 : C
406 : C******* Message d'erreur standard
407 : C 41 2
408 : C %m1:8 = %r1 inférieur à %r2
409 : C
410 : MOTERR(1:8) = MESERR(1:8)
411 : REAERR(1) = REAL(VALER)
412 : REAERR(2) = 0.0
412 : CALL ERREUR(41)
413 : GOTO 9999
414 : ENDIF
415 : C
416 : SEGDES, TSEUIL, TEMP, RYH2, RYO2, RYH2O, DE, NRYH2, NRYO2, NRYH2O
417 : C
418 : C**** Ecriture du CHPOINT contenant IDE (dernier), INH2O, INO2, INH2
419 : C
419 : CALL ECROBJ('CHPOINT',IDE)
419 : CALL ECROBJ('CHPOINT',INH2O)
419 : CALL ECROBJ('CHPOINT',INO2)
419 : CALL ECROBJ('CHPOINT',INH2)
420 : C
421 : 9999 CONTINUE
422 : C
423 : RETURN
424 : END
425 :
426 :
427 :
428 :
429 :
430 :
431 :
432 :
433 :
434 :
© Cast3M 2003 - All rights reserved.
Disclaimer