Télécharger flama.eso

Retour à la liste

Numérotation des lignes :

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

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