Télécharger flama.eso

Retour à la liste

Numérotation des lignes :

flama
  1. C FLAMA SOURCE OF166741 24/12/13 21:15:53 12097
  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**** Les variables
  120. C
  121. INTEGER ICOND, IRETOU, IERR0, ICEN, NCEN, NBCOMP, INDIC
  122. & , ITSEUI, IRYH2, IRYO2 , IRYH2O, ITEMP
  123. & , IDE, INH2, INO2, INH2O, N, NC
  124. REAL*8 H0H2, H0O2, H0H2O, VALER
  125. CHARACTER*(8) MESERR
  126. CHARACTER*(8) MTYPR
  127. CHARACTER*(LOCOMP) NOMTOT(1)
  128. LOGICAL LOGNEG
  129.  
  130. C
  131. C**** Initialisation des parametres d'erreur
  132. C
  133. LOGNEG = .FALSE.
  134. MESERR = ' '
  135. VALER = 0.0D0
  136. C
  137. C**** Initialisation des NOMTOT(1) (noms des composantes)
  138. C
  139. NOMTOT(1) = ' '
  140. C
  141. C**** Lecture du CHPOINT CHPO1 (temperature de seuil)
  142. C
  143. ICOND = 1
  144. MTYPR = 'CHPOINT '
  145. CALL LIROBJ(MTYPR,ITSEUI,ICOND,IRETOU)
  146. IF(IERR .NE. 0)GOTO 9999
  147. C
  148. C**** On cherche le pointeur de son maillage et on l'impose sur les
  149. C autres CHPOINTs
  150. C En plus on controlle: NBCOMP = 1
  151. C MSOUPO.NOCOMP(1) = 'SCAL'
  152. C
  153. MCHPOI = ITSEUI
  154. SEGACT MCHPOI
  155. MSOUPO = MCHPOI.IPCHP(1)
  156. SEGACT MSOUPO
  157. NBCOMP = MSOUPO.NOCOMP(/2)
  158. IF(NBCOMP .NE. 1)THEN
  159. C
  160. C******** Message d'erreur standard
  161. C -301 0 %m1:40
  162. C
  163. MOTERR = 'CHPO1 = ??? '
  164. CALL ERREUR(-301)
  165. C
  166. C******** Message d'erreur standard
  167. C 699 2
  168. C routine %m1:8 : On voulait un %m9:16 à %i1 composantes au lieu
  169. C de %i2
  170. C
  171. MOTERR(1:8) = ' QUEPOI '
  172. MOTERR(9:16) = 'CHPOINT '
  173. INTERR(1) = 1
  174. INTERR(2) = NBCOMP
  175. CALL ERREUR(699)
  176. GOTO 9999
  177. ENDIF
  178. NOMTOT(1) = MSOUPO.NOCOMP(1)
  179. IF(NOMTOT(1) .NE. 'SCAL')THEN
  180. C
  181. C******** Message d'erreur standard
  182. C -301 0 %m1:40
  183. C
  184. MOTERR = 'CHPO1 = ??? '
  185. CALL ERREUR(-301)
  186. MOTERR= NOMTOT(1)
  187. CALL ERREUR(197)
  188. GOTO 9999
  189. ENDIF
  190. ICEN = MSOUPO.IGEOC
  191. MELEME = ICEN
  192. SEGACT MELEME
  193. NCEN = MELEME.NUM(/2)
  194. SEGDES MELEME
  195. TSEUIL = MSOUPO.IPOVAL
  196. SEGDES MSOUPO
  197. SEGDES MCHPOI
  198. C
  199. C**** Lecture du FLOT1
  200. C
  201. ICOND = 1
  202. CALL LIRREE(H0H2, ICOND, IRETOU)
  203. IF(IERR .NE. 0)GOTO 9999
  204. C
  205. C**** Lecture du FLOT2
  206. C
  207. ICOND = 1
  208. CALL LIRREE(H0O2, ICOND, IRETOU)
  209. IF(IERR .NE. 0)GOTO 9999
  210. C
  211. C**** Lecture du FLOT3
  212. C
  213. ICOND = 1
  214. CALL LIRREE(H0H2O, ICOND, IRETOU)
  215. IF(IERR .NE. 0)GOTO 9999
  216. C
  217. C**** Lecture du CHPOINT CHPO2
  218. C
  219. MTYPR = 'CHPOINT'
  220. CALL LIROBJ(MTYPR,IRYH2,ICOND,IRETOU)
  221. IF(IERR .NE. 0)GOTO 9999
  222. C
  223. C**** Control du CHPOINT
  224. C
  225. INDIC = 1
  226. NBCOMP = 1
  227. NOMTOT(1) = 'H2 '
  228. CALL QUEPOI(IRYH2, ICEN, INDIC, NBCOMP, NOMTOT)
  229. IF(IERR .NE. 0)THEN
  230. IERR0 = IERR
  231.  
  232. C
  233. C******** Message d'erreur standard
  234. C -301 0 %m1:40
  235. C
  236. MOTERR = 'CHPO2 = ??? '
  237. CALL ERREUR(-301)
  238.  
  239. GOTO 9999
  240. ENDIF
  241. C
  242. C**** Lecture du CHPOINT CHPO3
  243. C
  244. 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 '
  253. CALL QUEPOI(IRYO2, ICEN, INDIC, NBCOMP, NOMTOT)
  254. IF(IERR .NE. 0)THEN
  255. IERR0 = IERR
  256.  
  257. C
  258. C******** Message d'erreur standard
  259. C -301 0 %m1:40
  260. C
  261. MOTERR = 'CHPO3 = ??? '
  262. CALL ERREUR(-301)
  263.  
  264. GOTO 9999
  265. ENDIF
  266. C
  267. C**** Lecture du CHPOINT CHPO4
  268. C
  269. MTYPR = 'CHPOINT'
  270. CALL LIROBJ(MTYPR,IRYH2O,ICOND,IRETOU)
  271. IF(IERR .NE. 0)GOTO 9999
  272. C
  273. C**** Control du CHPOINT
  274. C
  275. INDIC = 1
  276. NBCOMP = 1
  277. NOMTOT(1) = 'H2O '
  278. CALL QUEPOI(IRYH2O, ICEN, INDIC, NBCOMP, NOMTOT)
  279. IF(IERR .NE. 0)THEN
  280. IERR0 = IERR
  281.  
  282. C
  283. C******** Message d'erreur standard
  284. C -301 0 %m1:40
  285. C
  286. MOTERR = 'CHPO4 = ??? '
  287. CALL ERREUR(-301)
  288. GOTO 9999
  289. ENDIF
  290. C
  291. C**** Lecture du CHPOINT CHPO5
  292. C
  293. MTYPR = 'CHPOINT'
  294. CALL LIROBJ(MTYPR,ITEMP,ICOND,IRETOU)
  295. IF(IERR .NE. 0)GOTO 9999
  296. C
  297. C**** Control du CHPOINT
  298. C
  299. INDIC = 1
  300. NBCOMP = 1
  301. NOMTOT(1) = 'SCAL'
  302. CALL QUEPOI(ITEMP, ICEN, INDIC, NBCOMP, NOMTOT)
  303. IF(IERR .NE. 0)THEN
  304. IERR0 = IERR
  305.  
  306. C
  307. C******** Message d'erreur standard
  308. C -301 0 %m1:40
  309. C
  310. MOTERR = 'CHPO5 = ??? '
  311. CALL ERREUR(-301)
  312.  
  313. GOTO 9999
  314. ENDIF
  315. C
  316. C**** On defini les CHPOINTs de sortie et on active les MPOVALs
  317. C des CHPOINTs en entre
  318. C
  319. C DE
  320. C
  321. NC = 1
  322. N = NCEN
  323. SEGINI, DE
  324. C
  325. C DE initialise a 0.0D0
  326. C N.B.: MSOUPO, MCHPOI sont relatif a ITSEUI
  327. C
  328. SEGINI, MSOUP1 = MSOUPO
  329. MSOUP1.IPOVAL = DE
  330. SEGDES MSOUP1
  331. SEGINI, MCHPO1 = MCHPOI
  332. MCHPO1.IPCHP(1) = MSOUP1
  333. MCHPO1.MOCHDE(1:40) = ' '
  334. MCHPO1.MOCHDE(41:72) = ' '
  335. SEGDES MCHPO1
  336. IDE = MCHPO1
  337. C
  338. C NRYH2
  339. C
  340. MCHPOI = IRYH2
  341. SEGACT MCHPOI
  342. MSOUPO = MCHPOI.IPCHP(1)
  343. SEGACT MSOUPO
  344. RYH2 = MSOUPO.IPOVAL
  345. SEGINI, NRYH2 = RYH2
  346. SEGINI, MSOUP1 = MSOUPO
  347. MSOUP1.IPOVAL = NRYH2
  348. SEGDES MSOUP1
  349. SEGINI, MCHPO1 = MCHPOI
  350. MCHPO1.IPCHP(1) = MSOUP1
  351. MCHPO1.MOCHDE(1:40) = ' '
  352. MCHPO1.MOCHDE(41:72) = ' '
  353. SEGDES MCHPO1
  354. INH2 = MCHPO1
  355. C
  356. C NRYO2
  357. C
  358. MCHPOI = IRYO2
  359. SEGACT MCHPOI
  360. MSOUPO = MCHPOI.IPCHP(1)
  361. SEGACT MSOUPO
  362. RYO2 = MSOUPO.IPOVAL
  363. SEGINI, NRYO2 = RYO2
  364. SEGINI, MSOUP1 = MSOUPO
  365. MSOUP1.IPOVAL = NRYO2
  366. SEGDES MSOUP1
  367. SEGINI, MCHPO1 = MCHPOI
  368. MCHPO1.IPCHP(1) = MSOUP1
  369. MCHPO1.MOCHDE(1:40) = ' '
  370. MCHPO1.MOCHDE(41:72) = ' '
  371. SEGDES MCHPO1
  372. INO2 = MCHPO1
  373. C
  374. C NRYH2O
  375. C
  376. MCHPOI = IRYH2O
  377. SEGACT MCHPOI
  378. MSOUPO = MCHPOI.IPCHP(1)
  379. SEGACT MSOUPO
  380. RYH2O = MSOUPO.IPOVAL
  381. SEGINI, NRYH2O = RYH2O
  382. SEGINI, MSOUP1 = MSOUPO
  383. MSOUP1.IPOVAL = NRYH2O
  384. SEGDES MSOUP1
  385. SEGINI, MCHPO1 = MCHPOI
  386. MCHPO1.IPCHP(1) = MSOUP1
  387. MCHPO1.MOCHDE(1:40) = ' '
  388. MCHPO1.MOCHDE(41:72) = ' '
  389. SEGDES MCHPO1
  390. INH2O = MCHPO1
  391. C
  392. C TEMP
  393. C
  394. MCHPOI = ITEMP
  395. SEGACT MCHPOI
  396. MSOUPO = MCHPOI.IPCHP(1)
  397. SEGDES MCHPOI
  398. SEGACT MSOUPO
  399. TEMP = MSOUPO.IPOVAL
  400. SEGDES MSOUPO
  401. SEGACT TEMP
  402. C
  403. SEGACT RYH2, RYO2, RYH2O, TSEUIL
  404. C
  405. CALL FLAMA1(NCEN,TSEUIL.VPOCHA,H0H2,H0O2,H0H2O,
  406. & TEMP.VPOCHA, RYH2.VPOCHA, RYO2.VPOCHA, RYH2O.VPOCHA,
  407. & DE.VPOCHA, NRYH2.VPOCHA, NRYO2.VPOCHA, NRYH2O.VPOCHA,
  408. & LOGNEG, MESERR, VALER)
  409. C
  410. IF(LOGNEG)THEN
  411. C
  412. C******* Temperature ou densite' negative
  413. C
  414. C
  415. C******* Message d'erreur standard
  416. C 41 2
  417. C %m1:8 = %r1 inférieur à %r2
  418. C
  419. MOTERR(1:8) = MESERR(1:8)
  420. REAERR(1) = REAL(VALER)
  421. REAERR(2) = 0.0
  422. CALL ERREUR(41)
  423. GOTO 9999
  424. ENDIF
  425. C
  426. SEGDES, TSEUIL, TEMP, RYH2, RYO2, RYH2O, DE, NRYH2, NRYO2, NRYH2O
  427. C
  428. C**** Ecriture du CHPOINT contenant IDE (dernier), INH2O, INO2, INH2
  429. C
  430. CALL ECROBJ('CHPOINT',IDE)
  431. CALL ECROBJ('CHPOINT',INH2O)
  432. CALL ECROBJ('CHPOINT',INO2)
  433. CALL ECROBJ('CHPOINT',INH2)
  434. C
  435. 9999 CONTINUE
  436. C
  437. RETURN
  438. END
  439.  
  440.  
  441.  
  442.  
  443.  
  444.  
  445.  
  446.  
  447.  
  448.  
  449.  
  450.  
  451.  

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