Télécharger test_junc_1.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : test1_junc_1.dgibi
  2.  
  3. * repertoire des fichiers "divers"
  4. DIVERS = VENV 'CASTEM_DIVERS';
  5. *
  6. *$$$$ TO_DATA1
  7. 'DEBPROC' TO_DATA1 ;
  8. 'ARGU' FILENAME*'MOT' NAMEIN/'MOT' ;
  9. 'MESS' ' ' ;
  10. 'MESS' 'Data acquisition : ' FILENAME ' file.' ;
  11. *
  12. FICH1 = FILENAME ;
  13. 'OPTI' 'ACQU' FICH1 ;
  14. I_GAS = 0 ;
  15. I_INTE = 0 ;
  16. I_NUMBER = 0 ;
  17. NAMEOUT = 'XXXX' ;
  18. 'REPE' blo10 ;
  19. 'ACQU' NAME1 NAME2 ;
  20. 'SI' ('EGA' NAME1 '#') ;
  21. 'FINS' ;
  22. *
  23. 'SI' ('EGA' NAME1 'GAS') ;
  24. I_GAS = 1 ;
  25. 'SI' ('EGA' ('TYPE' NAME2) 'MOT') ;
  26. NAMEOUT = name2 ;
  27. 'SINON' ;
  28. cha1 = 'CHAI' 'File ' FICH1 ': bad GAS type ('
  29. ('TYPE' NAME2) 'instead of MOT)' ;
  30. 'ERRE' cha1 ;
  31. 'QUIT' TO_DATA1 ;
  32. 'FINSI' ;
  33. 'SI' ('EXIS' NAMEIN) ;
  34. NAMEOUT = name2 ;
  35. 'SI' ('NEG' NAME2 NAMEIN) ;
  36. cha1 = 'CHAI' 'File ' FICH1
  37. ': bad gas name (' NAMEOUT 'instead of ' NAMEIN ')' ;
  38. 'ERRE' cha1 ;
  39. 'QUIT' TO_DATA1 ;
  40. 'FINS' ;
  41. 'FINS' ;
  42. 'FINS' ;
  43. *
  44. 'SI' ('EGA' NAME1 'INTERPOLATION') ;
  45. I_INTE = 1 ;
  46. 'SI' (('NEG' NAME2 'STEP') 'ET' ('NEG' NAME2 'LIN')) ;
  47. cha1 = 'CHAI' 'File ' FICH1
  48. ': bad interpolation type (neither STEP nor LIN)' ;
  49. 'ERRE' cha1 ;
  50. 'QUIT' TO_DATA1 ;
  51. 'FINS' ;
  52. IPOL = NAME2 ;
  53. 'FINS' ;
  54. *
  55. 'SI' ('EGA' NAME1 'NUMBER') ;
  56. I_NUMBER = 1 ;
  57. 'SI' ('EGA' ('TYPE' NAME2) 'ENTIER') ;
  58. N1 = NAME2 ;
  59. 'SI' ('<EG' NAME2 1) ;
  60. cha1 = 'CHAI' 'File ' FICH1
  61. ': we want an INTEGER>1 after NUMBER keyword ' ;
  62. 'ERRE' cha1 ;
  63. 'QUIT' TO_DATA1 ;
  64. 'FINS' ;
  65. 'FINS' ;
  66. 'SI' ('EGA' NAME2 'FREE') ;
  67. N1 = 0 ;
  68. 'FINS' ;
  69. 'QUIT' blo10 ;
  70. 'FINS' ;
  71. *
  72. 'FIN' blo10 ;
  73. *
  74. * On teste qu'on a bien tous les mot-clefs
  75. 'SI' ( 'EXIS' NAMEIN) ;
  76. FLAG = I_GAS * I_INTE * I_NUMBER ;
  77. 'SINO' ;
  78. FLAG = I_INTE * I_NUMBER ;
  79. 'FINSI' ;
  80. 'SI' ('EGA' flag 0) ;
  81. 'SI' ('EGA' I_INTE 0) ;
  82. cha1 = 'CHAI' 'File ' FICH1 ': INTERPOLATION keyword is missing' ;
  83. 'ERRE' cha1 ;
  84. 'FINS' ;
  85. 'SI' ('EGA' I_NUMBER 0) ;
  86. cha1 = 'CHAI' 'File ' FICH1 ': NUMBER keyword is missing' ;
  87. 'ERRE' cha1 ;
  88. 'FINS' ;
  89. 'SI' ( 'EXIS' NAMEIN) ;
  90. 'SI' ('EGA' I_GAS 0) ;
  91. cha1 = 'CHAI' 'File ' FICH1 ': GAS keyword is missing' ;
  92. 'ERRE' cha1 ;
  93. 'FINS' ;
  94. 'FINS' ;
  95. 'QUIT' TO_DATA1 ;
  96. 'FINS' ;
  97. *
  98. * Lecture de la source
  99. 'REPE' blo20 ;
  100. 'ACQU' FLOT1 FLOT2 ;
  101. 'SI' (('EGA' ('TYPE' FLOT1) 'FLOTTANT ') 'ET'
  102. ('EGA' ('TYPE' FLOT2) 'FLOTTANT ')) ;
  103. 'QUIT' blo20 ;
  104. 'FINSI' ;
  105. 'SI' ('EGA' ('TYPE' FLOT1) 'MOT') ;
  106. 'SI' ('EGA' FLOT1 'END') ;
  107. cha1 = 'CHAI' 'File ' FICH1
  108. ': END keyword is detected but no data are given' ;
  109. 'ERRE' cha1 ;
  110. 'FINSI' ;
  111. 'FINSI' ;
  112. 'FIN' blo20 ;
  113. PROG1 = 'PROG' FLOT1 ;
  114. PROG2 = 'PROG' 0. ;
  115. PROG4 = 'PROG' FLOT2 ;
  116. *
  117. 'SI' ('EGA' IPOL 'STEP') ;
  118. 'REPE' BOU1 (N1 - 1) ;
  119. 'REPE' blo30 ;
  120. 'ACQU' FLOT4 FLOT5 ;
  121. 'SI' ('EGA' ('TYPE' FLOT4) 'FLOTTANT ') ;
  122. 'QUIT' blo30 ;
  123. 'FINSI' ;
  124. 'SI' ('EGA' ('TYPE' FLOT4) 'MOT') ;
  125. 'QUIT' blo30 ;
  126. 'FINSI' ;
  127. 'FIN' blo30 ;
  128. 'SI' ('EGA' ('TYPE' FLOT4) 'MOT') ;
  129. 'SI' ('EGA' FLOT4 'END') ;
  130. 'QUIT' BOU1 ;
  131. 'SINO' ;
  132. cha1 = 'CHAI' 'File ' FICH1 ': word ' flot4
  133. ': a word is detected instead of a time' ;
  134. 'ERRE' cha1 ;
  135. 'FINSI' ;
  136. 'SINO' ;
  137. DELTAT = FLOT4 - FLOT1 ;
  138. PRECED = &BOU1 ;
  139. 'SI' ('EGA' PRECED 1) ;
  140. VAL2 = FLOT2*DELTAT ;
  141. 'SINO' ;
  142. VAL2 = FLOT2*DELTAT + ('EXTR' PROG2 PRECED) ;
  143. 'FINSI' ;
  144. PROG1 = PROG1 'ET' ('PROG' FLOT4) ;
  145. PROG2 = PROG2 'ET' ('PROG' VAL2 ) ;
  146. PROG4 = PROG4 'ET' ('PROG' FLOT5) ;
  147. FLOT1 = FLOT4 ;
  148. FLOT2 = FLOT5 ;
  149. 'FINSI' ;
  150. 'FIN' BOU1 ;
  151. 'SINON' ;
  152. 'REPE' BOU2 (N1 - 1) ;
  153. 'REPE' blo40 ;
  154. 'ACQU' FLOT4 FLOT5 ;
  155. 'SI' ('EGA' ('TYPE' FLOT4) 'FLOTTANT ') ;
  156. 'QUIT' blo40 ;
  157. 'FINSI' ;
  158. 'SI' ('EGA' ('TYPE' FLOT4) 'MOT') ;
  159. 'QUIT' blo40 ;
  160. 'FINSI' ;
  161. 'FIN' blo40 ;
  162. 'SI' ('EGA' ('TYPE' FLOT4) 'MOT') ;
  163. 'SI' ('EGA' FLOT4 'END') ;
  164. 'QUIT' BOU2 ;
  165. 'SINO' ;
  166. cha1 = 'CHAI' 'File ' FICH1 ': word ' flot4
  167. ': a word is detected instead of a time' ;
  168. 'ERRE' cha1 ;
  169. 'FINSI' ;
  170. 'SINO' ;
  171. DTS2 = FLOT4 - FLOT1 / 2.D0 ;
  172. PRECED = &BOU2 ;
  173. 'SI' ('EGA' PRECED 1) ;
  174. VAL2 = (FLOT2+FLOT5)*DTS2 ;
  175. 'SINO' ;
  176. VAL2 = (FLOT2+FLOT5)*DTS2 + ('EXTR' PROG2 PRECED) ;
  177. 'FINSI' ;
  178. PROG1 = PROG1 'ET' ('PROG' FLOT4) ;
  179. PROG2 = PROG2 'ET' ('PROG' VAL2 ) ;
  180. PROG4 = PROG4 'ET' ('PROG' FLOT5) ;
  181. FLOT1 = FLOT4 ;
  182. FLOT2 = FLOT5 ;
  183. 'FINSI' ;
  184. 'FIN' BOU2 ;
  185. 'FINS' ;
  186. *
  187. EV1 = 'EVOL' 'MANU' PROG1 PROG2 ;
  188. EV3 = 'EVOL' 'MANU' PROG1 PROG4 ;
  189. *
  190. 'RESPROC' EV1 NAMEOUT ;
  191. 'FINPROC' ;
  192.  
  193. *$$$$ OKTPS
  194. 'DEBPROC' OKTPS EV1*'EVOLUTION' LIST1*'LISTREEL' ;
  195. IER = 0 ;
  196. *
  197. TIME = 'EXTR' EV1 'ABSC' ;
  198. TI = 'EXTR' TIME 1 ;
  199. TF = 'EXTR' TIME ('DIME' TIME) ;
  200. TC_IN = 'EXTR' LIST1 1 ;
  201. TC_FIN = 'EXTR' LIST1 ('DIME' LIST1) ;
  202. 'SI' (('<' TF TC_FIN) 'OU' ('>' TI TC_IN)) ;
  203. IER = 1 ;
  204. 'SAUT' 3 'LIGN' ;
  205. 'MESS' 'Le support des temps associe aux data ne contient' ;
  206. 'MESS' 'pas strictement le support des temps de référence.' ;
  207. 'MESS' 'Min/max data :' TI TF ;
  208. 'MESS' 'Min/max ref. :' TC_IN TC_FIN ;
  209. 'FINSI' ;
  210. *
  211. 'FINP' IER ;
  212. *$$$$ BCIMPL
  213. 'DEBPROC' BCIMPL SET*'TABLE' ;
  214. TSB = SET . 'BOUNDARY' ;
  215. TSD = SET . 'DATA' ;
  216. TSG = SET . 'GEOINF' ;
  217. TSI = SET . 'INCO' ;
  218. TSP = SET . 'PHYSICAL' ;
  219. *
  220. DT1 = TSI . 'DT' ;
  221. TIME00 = TSI . 'TIME1' ;
  222. TIME0 = TSI . 'TIME2' ;
  223. *
  224. TAB1 = 'TABLE' ;
  225. 'SI' ('EXIS' TSB 'ISBP') ;
  226. NBCEL1 = 'DIME' TSB . 'ISBP' ;
  227. 'REPE' bloisbp NBCEL1 ;
  228. PTCEL1 = TSB . 'ISBP' . &bloisbp . 'CELL' ;
  229. nbisbp = ('DIME' (TSB . 'ISBP' . &bloisbp)) - 1 ;
  230. MLIQ1 = 'EXTR' (TSI . 'MLIQ') 'MLIQ' PTCEL1 ;
  231. HLIQ1 = 'EXTR' (TSI . 'HLIQ') 'HLIQ' PTCEL1 ;
  232. 'REPE' sisbp nbisbp ;
  233. EV1 = TSB . 'ISBP' . &bloisbp . &sisbp .'EVOLM' ;
  234. XQ00 = 'IPOL' TIME00 EV1 ;
  235. XQ0 = 'IPOL' TIME0 EV1 ;
  236. XQ1 = (XQ0 - XQ00) / DT1 * -1. ;
  237. MLIQ2 = MLIQ1 + (DT1 * XQ1) ;
  238. 'SI' (MLIQ2 '<' 1.) ;
  239. MLIQ2 = 1. ;
  240. XQ10 = XQ1 ;
  241. XQ1 = MLIQ1 - MLIQ2 / DT1 * -1. ;
  242. 'SI' (XQ1 > 0.) ;
  243. XQ1 = 0. ;
  244. 'FINSI' ;
  245. 'MESS' 'Mass flow rate limitation in bcimpl (ISBP): '
  246. xq1 ' instead of ' xq10 ;
  247. 'FINSI' ;
  248. MLIQ1 = MLIQ2 ;
  249. XE1 = HLIQ1 * XQ1 ;
  250. 'SI' ( 'EGA' set . 'IMPR' 1) ;
  251. 'MESS' 'Debit massique extrait (ISBP) :' xq1 ;
  252. 'MESS' 'Debit energ. extrait :' xe1 ;
  253. 'FINSI' ;
  254. 'SI' ('EGA' &sisbp 1) ;
  255. CHCEL1 = 'MANU' 'CHPO' PTCEL1 2
  256. 'MLIQ' XQ1 'ULIQ' XE1 'NATURE' 'DISCRET' ;
  257. 'SINON' ;
  258. CHCEL1 = CHCEL1 'ET' ('MANU' 'CHPO' PTCEL1 2
  259. 'MLIQ' XQ1 'ULIQ' XE1 'NATURE' 'DISCRET') ;
  260. 'FINSI' ;
  261. STR1 = TSB . 'ISBP' . &bloisbp . &sisbp . 'CUMULM' ;
  262. DIM1 = 'DIME' str1 ;
  263. EVE0 = 'EXTR' str1 dim1 ;
  264. EVE1 = EVE0 + (DT1 * XQ1) ;
  265. TSB . 'ISBP' . &bloisbp . &sisbp . 'CUMULM' = STR1 'ET' ('PROG' EVE1) ;
  266. STR1 = TSB . 'ISBP' . &bloisbp . &sisbp . 'CUMULE' ;
  267. EVE0 = 'EXTR' str1 dim1 ;
  268. EVE1 = EVE0 + (DT1 * XE1) ;
  269. TSB . 'ISBP' . &bloisbp . &sisbp . 'CUMULE' = STR1 'ET' ('PROG' EVE1) ;
  270. 'FIN' sisbp ;
  271. 'SI' ('EXIS' TAB1 'RHS') ;
  272. TAB1 . 'RHS' = (TAB1 . 'RHS') + CHCEL1 ;
  273. 'SINON' ;
  274. TAB1 . 'RHS' = CHCEL1 ;
  275. 'FINSI' ;
  276. 'FIN' bloisbp ;
  277. 'FINSI' ;
  278. 'SI' ('EXIS' TSB 'OUT') ;
  279. NBCOMP1 = 'DIME' (SET . 'COMPONENT') ;
  280. NBCEL1 = 'DIME' (TSB . 'OUT') ;
  281. 'REPE' bloout NBCEL1 ;
  282. PTCEL1 = TSB . 'OUT' . &bloout . 'CELL' ;
  283. nbout = ('DIME' (TSB . 'OUT' . &bloout)) - 1 ;
  284. HGAS1 = 'EXTR' (TSI . 'HGAS') 'HGAS' PTCEL1 ;
  285. RGAS1 = 'EXTR' (TSI . 'RGAS') 'RGAS' PTCEL1 ;
  286. VOL1 = 'EXTR' (TSD . 'VOL') 'SCAL' PTCEL1 ;
  287. MGAS1 = RGAS1 * VOL1 ;
  288. 'REPE' sout nbout ;
  289. EV1 = TSB . 'OUT' . &bloout . &sout .'EVOLM' ;
  290. XQ00 = 'IPOL' TIME00 EV1 ;
  291. XQ0 = 'IPOL' TIME0 EV1 ;
  292. XQ1 = (XQ0 - XQ00) / DT1 * -1. ;
  293. MGAS2 = MGAS1 + (DT1 * XQ1) ;
  294. 'SI' (MGAS2 '<' (MGAS1 / 2.)) ;
  295. MGAS2 = MGAS1 / 2. ;
  296. XQ10 = XQ1 ;
  297. XQ1 = MGAS1 - MGAS2 / DT1 * -1. ;
  298. 'SI' (XQ1 > 0.) ;
  299. XQ1 = 0. ;
  300. 'FINSI' ;
  301. 'MESS' 'Mass flow rate limitation in bcimpl (OUT): '
  302. xq1 ' instead of ' xq10 ;
  303. 'FINSI' ;
  304. MGAS1 = MGAS2 ;
  305. XE1 = HGAS1 * XQ1 ;
  306. 'SI' ( 'EGA' set . 'IMPR' 1) ;
  307. 'MESS' 'Debit massique extrait (OUT) :' xq1 ;
  308. 'MESS' 'Debit energ. extrait :' xe1 ;
  309. 'FINSI' ;
  310. STR1 = TSB . 'OUT' . &bloout . &sout . 'CUMULM' ;
  311. DIM1 = 'DIME' str1 ;
  312. EVE0 = 'EXTR' str1 dim1 ;
  313. EVE1 = EVE0 + (DT1 * XQ1) ;
  314. TSB . 'OUT' . &bloout . &sout . 'CUMULM' = STR1 'ET' ('PROG' EVE1) ;
  315. STR1 = TSB . 'OUT' . &bloout . &sout . 'CUMULE' ;
  316. EVE0 = 'EXTR' str1 dim1 ;
  317. EVE1 = EVE0 + (DT1 * XE1) ;
  318. TSB . 'OUT' . &bloout . &sout . 'CUMULE' = STR1 'ET' ('PROG' EVE1) ;
  319. 'REPE' blocomp NBCOMP1 ;
  320. NAMC1 = SET . 'COMPONENT' . &blocomp ;
  321. NAMR1 = 'CHAINE' 'R' NAMC1 ;
  322. ROI1 = 'EXTR' (TSI . NAMR1) NAMR1 PTCEL1 ;
  323. XQI1 = (ROI1 / RGAS1) * XQ1 ;
  324. 'SI' ('EGA' &blocomp 1) ;
  325. CHCEL1 = 'MANU' 'CHPO' PTCEL1 2
  326. NAMR1 XQI1 'UGAS' XE1 'NATURE' 'DISCRET' ;
  327. 'SINON' ;
  328. CHCEL1 = CHCEL1 'ET' ('MANU' 'CHPO' PTCEL1 1
  329. NAMR1 XQI1 'NATURE' 'DISCRET') ;
  330. 'FINSI' ;
  331. NAM1 = 'CHAI' 'CUMULM_' NAMC1 ;
  332. STR1 = TSB . 'OUT' . &bloout . &sout . NAM1 ;
  333. EVM0 = 'EXTR' str1 dim1 ;
  334. EVM1 = EVM0 + (DT1 * XQI1) ;
  335. TSB . 'OUT' . &bloout . &sout . NAM1 = STR1 'ET' ('PROG' EVM1) ;
  336. 'FIN' blocomp ;
  337. 'SI' ('EXIS' TAB1 'RHS') ;
  338. TAB1 . 'RHS' = (TAB1 . 'RHS') + CHCEL1 ;
  339. 'SINON' ;
  340. TAB1 . 'RHS' = CHCEL1 ;
  341. 'FINSI' ;
  342. 'FIN' sout ;
  343. 'FIN' bloout ;
  344. 'FINSI' ;
  345. *
  346. 'FINP' TAB1 ;
  347.  
  348.  
  349. *$$$$ TO_BOCO
  350. 'DEBPROC' TO_BOCO SET*'TABLE' ;
  351. TSB = SET . 'BOUNDARY' ;
  352. TSD = SET . 'DATA' ;
  353. TSG = SET . 'GEOINF' ;
  354. TSI = SET . 'INCO' ;
  355. TSP = SET . 'PHYSICAL' ;
  356. *
  357. TAB1 = 'TABLE' ;
  358. 'SI' ('EXIS' TSG 'WALL') ;
  359. COUPW1 = 'EGA' (SET . 'COUPLAGE_WALL') 'ON' ;
  360. 'SI' COUPW1 ;
  361. 'SI' ('EXIS' TSG 'LAYERO') ;
  362. ECHAW1 = -1.0 * TSD . 'ECHAW' ;
  363. NBOUT = 'NBEL' TSG . 'LAYEXT' ;
  364. TPS0 = TSI . 'TIME2' ;
  365. LLOG1 = 0 ;
  366. 'REPETER' BLO1 NBOUT ;
  367. PTOU1 = 'ELEM' (TSG . 'LAYEXT') 'SEG2' &BLO1 ;
  368. PTOUT = 'CHAN' 'POI1' PTOU1 ;
  369. PLAY1 = PTOUT 'POIN' 1 ;
  370. PEXT1 = PTOUT 'POIN' 2 ;
  371. HEXT = 'EXTR' ECHAW1 'SCAL' PLAY1;
  372. 'SI' (('NOEUD' PEXT1) 'EGA' ('NOEUD' (TSG.'EXT')));
  373. T0 = TSD . 'TOUT' ;
  374. HT0 = HEXT '*' T0 ;
  375. 'SI' (LLOG1 'EGA' 0);
  376. CHPO3 = 'MANU' 'CHPO' PLAY1 1 'QO' HT0 'NATURE' 'DISCRET' ;
  377. LLOG1 = 1 ;
  378. 'SINON' ;
  379. CHPO3 = CHPO3 'ET'
  380. ('MANU' 'CHPO' PLAY1 1 'QO' HT0 'NATURE' 'DISCRET');
  381. 'FINSI' ;
  382. 'SINON' ;
  383. 'SI' ('EXIS' TSP 'OUTD') ;
  384. TSPO = TSP . 'OUTD' ;
  385. INDXT = 'INDEX' (TSPO . 'TEMP') ;
  386. NBEXTE = TSPO . 'NBOUT' ;
  387. ILOG1 = 0 ;
  388. MEXT1 = ' ' ;
  389. 'REPETER' BL01 NBEXTE ;
  390. INXT1 = INDXT . &BL01 ;
  391. PTEXT2 = TSPO . 'LOCATION' . INXT1 ;
  392. 'SI' (('NOEUD' PEXT1) 'EGA' ('NOEUD' PTEXT2)) ;
  393. ILOG1 = &BL01 ;
  394. MEXT1 = INXT1 ;
  395. 'QUITTER' BL01 ;
  396. 'FINSI' ;
  397. 'FIN' BL01 ;
  398. 'SI' (ILOG1 'EGA' 0 );
  399. 'MESS' 'Probleme with external temperature definition';
  400. 'FINSI' ;
  401. TIME2= TSI . 'TIME2';
  402. T0 = 'IPOL' TIME2 (TSPO.'TPS'.MEXT1) (TSPO.'TEMP'.MEXT1);
  403. HT0 = HEXT '*' T0 ;
  404. 'SI' (LLOG1 'EGA' 0);
  405. CHPO3 = 'MANU' 'CHPO' PLAY1 1 'QO' HT0 'NATURE' 'DISCRET' ;
  406. LLOG1 = 1 ;
  407. 'SINON' ;
  408. CHPO3 = CHPO3 'ET'
  409. ('MANU' 'CHPO' PLAY1 1 'QO' HT0 'NATURE' 'DISCRET');
  410. 'FINSI' ;
  411. 'SINON' ;
  412. 'MESS' 'Probleme with external temperature definition';
  413. 'FINSI' ;
  414. 'FINSI' ;
  415. 'FIN' BLO1 ;
  416. TAB1 . 'RHS' = CHPO3 ;
  417. 'FINSI' ;
  418. 'FINSI' ;
  419. 'FINSI' ;
  420. DT1 = TSI . 'DT' ;
  421. TIME00 = TSI . 'TIME1' ;
  422. TIME0 = TSI . 'TIME2' ;
  423. TSB . 'TIME' = TSB . 'TIME' 'ET' ('PROG' TIME0);
  424. NBCOMP1 = 'DIME' (SET . 'COMPONENT') ;
  425. 'REPE' BLO100 NBCOMP1 ;
  426. NAMC1 = SET . 'COMPONENT' . &BLO100 ;
  427. NAMQ1 = 'CHAI' 'Q' NAMC1 ;
  428. NAMR1 = 'CHAI' 'R' NAMC1 ;
  429. 'SI' ('EXIS' TSB NAMQ1) ;
  430. NBCEL1 = 'DIME' TSB . NAMQ1 ;
  431. TIND1 = 'INDE' (TSB . NAMQ1) ;
  432. 'REPE' BLO110 NBCEL1 ;
  433. IND1 = TIND1 . &BLO110 ;
  434. PTCEL1 = TSB . NAMQ1 . IND1 . 'CELL' ;
  435. *
  436. XQ00 = 'IPOL' TIME00 (TSB . NAMQ1 . IND1 .'EVOLM') ;
  437. XE00 = 'IPOL' TIME00 (TSB . NAMQ1 . IND1 .'EVOLE') ;
  438. XQ0 = 'IPOL' TIME0 (TSB . NAMQ1 . IND1 .'EVOLM') ;
  439. XE0 = 'IPOL' TIME0 (TSB . NAMQ1 . IND1 .'EVOLE') ;
  440. XQ1 = (XQ0 - XQ00) / DT1 ;
  441. XE1 = (XE0 - XE00) / DT1 ;
  442. *
  443. * Injection à température ébullition
  444. 'SI' ('EGA' NAMC1 'H2O') ;
  445. PTOT1 = 'EXTR' (TSI . 'PT') 'PT' PTCEL1 ;
  446. TGAS1 = 'EXTR' (TSI . 'TGAS') 'TGAS' PTCEL1 ;
  447. 'SI' (XQ1 > 0.D0) ;
  448. TEBU1 = 'VARI' 'TSATP' PTOT1 ;
  449. HVAP1 = 'VARI' 'HVS' PTOT1 TEBU1 ;
  450. HLIQ1 = 'VARI' 'HLS' PTOT1 TEBU1 ;
  451. RVAP1 = 'VARI' 'ROVAP' PTOT1 TEBU1 ;
  452. RLIQ1 = 'VARI' 'ROLIQ' PTOT1 HLIQ1 ;
  453. 'SI' ('EXIS' SET 'INJECTION') ;
  454. XE1 = XE1 - (PTOT1 / RVAP1 * XQ1) ;
  455. EVAP1 = HVAP1 - (PTOT1 / RVAP1) * XQ1 ;
  456. ELIQ1 = HLIQ1 - (PTOT1 / RLIQ1) * XQ1 ;
  457. 'SINON' ;
  458. EVAP1 = HVAP1 * XQ1 ;
  459. ELIQ1 = HLIQ1 * XQ1 ;
  460. 'FINSI' ;
  461. 'SI' (XE1 '>EG' EVAP1) ;
  462. FRAC1 = 1.D0 ;
  463. EVAP1 = XE1 ;
  464. ELIQ1 = 0.D0 ;
  465. 'SINON' ;
  466. 'SI' (XE1 '>EG' ELIQ1) ;
  467. FRAC1 = (XE1 - ELIQ1) / (EVAP1 - ELIQ1) ;
  468. 'SINON' ;
  469. FRAC1 = 0.D0 ;
  470. ELIQ1 = XE1 ;
  471. EVAP1 = 0.D0 ;
  472. 'FINSI' ;
  473. 'FINSI' ;
  474. 'SINO' ;
  475. FRAC1 = 1.D0 ;
  476. EVAP1 = XE1 ;
  477. ELIQ1 = 0.D0 ;
  478. 'FINSI' ;
  479. 'SI' ( 'EGA' set . 'IMPR' 1) ;
  480. 'MESS' 'P et T in compart.' PTOT1 TGAS1 ;
  481. 'MESS' 'fraction forme vapeur injecté :' FRAC1 ;
  482. 'FINSI' ;
  483. 'SI' (&BLO110 'EGA' 1) ;
  484. CHCEL1 = 'MANU' 'CHPO' PTCEL1 4
  485. NAMR1 (FRAC1 * XQ1) 'MLIQ' ((1.D0 - FRAC1) * XQ1)
  486. 'UGAS' (FRAC1 * EVAP1) 'ULIQ' ((1.D0 - FRAC1) * ELIQ1)
  487. 'NATURE' 'DISCRET' ;
  488. 'SINON' ;
  489. CHCEL1 = CHCEL1 'ET' ('MANU' 'CHPO' PTCEL1 4
  490. NAMR1 (FRAC1 * XQ1) 'MLIQ' ((1.D0 - FRAC1) * XQ1)
  491. 'UGAS' (FRAC1 * EVAP1) 'ULIQ' ((1.D0 - FRAC1) * ELIQ1)
  492. 'NATURE' 'DISCRET') ;
  493. 'FINSI' ;
  494. *
  495. * Sauvegarde Répartition Source H2O pour bilan de masse et d'énergie
  496. STR1 = TSB . NAMQ1 . IND1 .'MINL' ;
  497. DIM1 = 'DIME' str1 ;
  498. EVM0 = 'EXTR' str1 dim1 ;
  499. EVM1 = EVM0 + ((1.D0-FRAC1)*XQ1*DT1) ;
  500. TSB . NAMQ1 . IND1 .'MINL' = STR1 'ET' ('PROG' EVM1) ;
  501. *
  502. STR1 = TSB . NAMQ1 . IND1 .'MINV' ;
  503. EVM0 = 'EXTR' str1 dim1 ;
  504. EVM1 = EVM0 + (FRAC1*XQ1*DT1) ;
  505. TSB . NAMQ1 . IND1 .'MINV' = STR1 'ET' ('PROG' EVM1) ;
  506. *
  507. STR1 = TSB . NAMQ1 . IND1 .'UINL' ;
  508. EVM0 = 'EXTR' str1 dim1 ;
  509. EVM1 = EVM0 + ((1.D0-FRAC1)*ELIQ1*DT1) ;
  510. TSB . NAMQ1 . IND1 .'UINL' = STR1 'ET' ('PROG' EVM1) ;
  511. *
  512. STR1 = TSB . NAMQ1 . IND1 .'UINV' ;
  513. EVM0 = 'EXTR' str1 dim1 ;
  514. EVM1 = EVM0 + (FRAC1*EVAP1*DT1) ;
  515. TSB . NAMQ1 . IND1 .'UINV' = STR1 'ET' ('PROG' EVM1) ;
  516. 'SINON' ;
  517. 'SI' (&BLO110 'EGA' 1) ;
  518. CHCEL1 = 'MANU' 'CHPO' PTCEL1 2
  519. NAMR1 XQ1 'UGAS' XE1 'NATURE' 'DISCRET' ;
  520. 'SINON' ;
  521. CHCEL1 = CHCEL1 'ET' ('MANU' 'CHPO' PTCEL1 2
  522. NAMR1 XQ1 'UGAS' XE1 'NATURE' 'DISCRET') ;
  523. 'FINSI' ;
  524. 'FINSI' ;
  525. 'SI' ( 'EGA' set . 'IMPR' 1) ;
  526. 'MESS' 'Debit massique ' NAMC1 ' injecté :' XQ1 ' - Cumul masse ' XQ0 ;
  527. 'MESS' 'Debit energ. ' NAMC1 ' injecté :' XE1 ' - Cumul energ ' XE0 ;
  528. 'FINSI' ;
  529. 'FIN' BLO110 ;
  530. 'SI' ('EXIS' TAB1 'RHS') ;
  531. TAB1 . 'RHS' = (TAB1 . 'RHS') + CHCEL1 ;
  532. 'SINON' ;
  533. TAB1 . 'RHS' = CHCEL1 ;
  534. 'FINSI' ;
  535. 'FINSI' ;
  536. 'FIN' BLO100 ;
  537. *
  538. 'MESS' ' ' ;
  539. *
  540. 'FINP' TAB1 ;
  541.  
  542.  
  543. *$$$$ TO_DEFAU
  544. 'DEBP' TO_DEFAU INPUT*'TABLE' ;
  545. VOLU1 = 1000. ;
  546. PRESS1 = 1.E+5 ;
  547. TEMP1 = 300. ;
  548. HUMDT1 = 0.5 ;
  549. XV1 = 1.0 ;
  550. ASUMP1 = 10.0 ;
  551. VMAX1 = 1.D+2 ;
  552. APER1 = 1.D+01 ;
  553. MLIQ1 = 1.0 ;
  554. TOUT1 = 293.15 ;
  555. *
  556. *- valeurs par défaut pour la thermique dans les murs
  557. *
  558. KEYWAL = 'TABLE' ;
  559. KEYWAL . 'AREA' = 1.0 ;
  560. KEYWAL . 'TWAL1' = TEMP1 ;
  561. KEYWAL . 'TWAL2' = TEMP1 ;
  562. KEYWAL . 'ECHAN1' = 10.0 ;
  563. KEYWAL . 'ECHAN2' = 10.0 ;
  564. *
  565. *- valeurs par défaut pour les conditions de calcul
  566. *
  567. MESS0 = 'WARNING : default value for ' ;
  568. TXT0 = '****** DATASET INPUT FILE : ' ;
  569. INPUT . 'H2_DIS' = 'OFF' ;
  570. INPUT . 'H2_POT' = 'OFF' ;
  571. INPUT . 'H2_RAD' = 'OFF' ;
  572. INPUT . 'QSONIC' = 'ON' ;
  573. INPUT . 'QLIMIT' = 1.D-3 ;
  574. *
  575. 'SI' ('NON' ('EXISTE' INPUT 'T_COUPLING')) ;
  576. INPUT . 'T_COUPLING' = 'OFF' ;
  577. MESS1 = 'CHAI' MESS0 'T_COUPLING (OFF)' ; 'MESS' MESS1 ;
  578. 'FINSI' ;
  579. 'SI' ('NON' ('EXISTE' INPUT 'RELAX')) ;
  580. INPUT . 'RELAX' = 1. ;
  581. MESS1 = 'CHAI' MESS0 'RELAX (1.)' ; 'MESS' MESS1 ;
  582. 'FINSI' ;
  583. 'SI' ('NON' ('EXISTE' INPUT 'RELINT')) ;
  584. INPUT . 'RELINT' = INPUT . 'RELAX' ;
  585. MESS1 = 'CHAI' MESS0 'RELINT ' (INPUT . 'RELAX') ; 'MESS' MESS1 ;
  586. 'FINSI' ;
  587. 'SI' ('NON' ('EXISTE' INPUT 'IMPR')) ;
  588. INPUT . 'IMPR' = 0 ;
  589. MESS1 = 'CHAI' MESS0 'IMPR (0)' ; 'MESS' MESS1 ;
  590. 'FINSI' ;
  591. *
  592. *=====================================================================
  593. *- Propriétés physiques des constituants du mélange
  594. *=====================================================================
  595. *
  596. R_GAS = 8.3144621D0 ;
  597. INPUT . 'PHYSICAL' . 'R_GAS' = R_GAS ;
  598. *---------------------------------------------- Masse molaire (kg/mol)
  599. INPUT . 'PHYSICAL' . 'WH2' = 2.D0 * 0.00100794D0 ;
  600. INPUT . 'PHYSICAL' . 'WHE' = 0.004002602D0 ;
  601. INPUT . 'PHYSICAL' . 'WN2' = 2.D0 * 0.0140067D0 ;
  602. INPUT . 'PHYSICAL' . 'WO2' = 2.D0 * 0.0159994D0 ;
  603. INPUT . 'PHYSICAL' . 'WCO2' = 0.0120107D0 + INPUT . 'PHYSICAL' . 'WO2' ;
  604. INPUT . 'PHYSICAL' . 'WCO' = 0.0120107D0 + 0.0159994D0 ;
  605. *
  606. * La constante des Gaz de la vapeur est modifié par compatibilité avec
  607. * les propriétés de la vapeur des tables de l'eau
  608. INPUT . 'PHYSICAL' . 'WH2O' = R_GAS / 461.513D0 ;
  609. INPUT . 'PHYSICAL' . 'WH2O' = 0.0159994D0 + INPUT . 'PHYSICAL' . 'WH2';
  610. *
  611. *------------------ Température de référence en K et C pour pptés phy
  612. TGAS1 = 315. ;
  613. TMOIN1 = TGAS1 - 273.15 ;
  614. *
  615. *--------------------------------------------------- Cp RALOC (J/kg/K)
  616. CP_H2 = 1000. * (14.246 + (8.160E-4 * TMOIN1) +
  617. (4.350E-7 * (TMOIN1 * TMOIN1))) ;
  618. CP_HE = 5193. ;
  619. CP_O2 = 1000. * (0.917 + (1.404E-4 * TMOIN1) +
  620. (3.000E-8 * (TMOIN1 * TMOIN1))) ;
  621. CP_N2 = 1000. * (1.0309 + (2.044E-4 * TMOIN1) +
  622. (-3.300E-8 * (TMOIN1 * TMOIN1))) ;
  623. CP_CO2 = 1000. * (0.836 + (7.432E-4 * TMOIN1) +
  624. (-2.511E-7 * (TMOIN1 * TMOIN1))) ;
  625. CP_CO = 1000. * (1.0302 + (2.396E-4 * TMOIN1) +
  626. (-4.950E-8 * (TMOIN1 * TMOIN1))) ;
  627. CP_H2O = 1000. * (1.748383 + (0.277768E-3 * TMOIN1) +
  628. (0.275E-6 * (TMOIN1 * TMOIN1))) ;
  629. *
  630. *----------------------------------------- constante des "gp" (J/kg/K)
  631. R_H2 = R_GAS / INPUT . 'PHYSICAL' . 'WH2' ;
  632. R_HE = R_GAS / INPUT . 'PHYSICAL' . 'WHE' ;
  633. R_O2 = R_GAS / INPUT . 'PHYSICAL' . 'WO2' ;
  634. R_N2 = R_GAS / INPUT . 'PHYSICAL' . 'WN2' ;
  635. R_CO2 = R_GAS / INPUT . 'PHYSICAL' . 'WCO2' ;
  636. R_CO = R_GAS / INPUT . 'PHYSICAL' . 'WCO' ;
  637. R_H2O = R_GAS / INPUT . 'PHYSICAL' . 'WH2O' ;
  638. *
  639. INPUT . 'PHYSICAL' . 'R_H2' = R_H2 ;
  640. INPUT . 'PHYSICAL' . 'R_HE' = R_HE ;
  641. INPUT . 'PHYSICAL' . 'R_O2' = R_O2 ;
  642. INPUT . 'PHYSICAL' . 'R_N2' = R_N2 ;
  643. INPUT . 'PHYSICAL' . 'R_CO2' = R_CO2 ;
  644. INPUT . 'PHYSICAL' . 'R_CO' = R_CO ;
  645. INPUT . 'PHYSICAL' . 'R_H2O' = R_H2O ;
  646. INPUT . 'PHYSICAL' . 'CVH2' = CP_H2 - R_H2 ;
  647. INPUT . 'PHYSICAL' . 'CVHE' = CP_HE - R_HE ;
  648. INPUT . 'PHYSICAL' . 'CVO2' = CP_O2 - R_O2 ;
  649. INPUT . 'PHYSICAL' . 'CVN2' = CP_N2 - R_N2 ;
  650. INPUT . 'PHYSICAL' . 'CVCO2' = CP_CO2 - R_CO2 ;
  651. INPUT . 'PHYSICAL' . 'CVCO' = CP_CO - R_CO ;
  652. INPUT . 'PHYSICAL' . 'CVH2O' = CP_H2O - R_H2O ;
  653. INPUT . 'PHYSICAL' . 'CPH2' = CP_H2 ;
  654. INPUT . 'PHYSICAL' . 'CPHE' = CP_HE ;
  655. INPUT . 'PHYSICAL' . 'CPO2' = CP_O2 ;
  656. INPUT . 'PHYSICAL' . 'CPN2' = CP_N2 ;
  657. INPUT . 'PHYSICAL' . 'CPCO2' = CP_CO2 ;
  658. INPUT . 'PHYSICAL' . 'CPCO' = CP_CO ;
  659. INPUT . 'PHYSICAL' . 'CPH2O' = CP_H2O ;
  660. *
  661. *------------------------------ conductivités des constituants (W/m/K)
  662. LBD_H2 = (1.65E-3 * (TGAS1 ** 1.8)) / (TGAS1 - 40.13) ;
  663. LBD_HE = (5.464E-3 * (TGAS1 ** 1.616)) / (TGAS1 + 76.6) ;
  664. LBD_O2 = (0.429E-3 * (TGAS1 ** 1.746)) / (TGAS1 + 41.27) ;
  665. LBD_N2 = (0.0417E-3 * (TGAS1 ** 2.042)) / (TGAS1 - 133.) ;
  666. LBD_CO2 = (25.438E-3 * (TGAS1 ** 1.319)) / (TGAS1 + 2432.95) ;
  667. LBD_CO = (1.931E-3 * (TGAS1 ** 1.541)) / (TGAS1 + 218.17) ;
  668. LBD_H2O = (-84.442E-3 * (TGAS1 ** 1.251)) / (TGAS1 - 5827.6) ;
  669. *
  670. INPUT . 'PHYSICAL' . 'LBDH2' = LBD_H2 ;
  671. INPUT . 'PHYSICAL' . 'LBDHE' = LBD_HE ;
  672. INPUT . 'PHYSICAL' . 'LBDO2' = LBD_O2 ;
  673. INPUT . 'PHYSICAL' . 'LBDN2' = LBD_N2 ;
  674. INPUT . 'PHYSICAL' . 'LBDCO2' = LBD_CO2 ;
  675. INPUT . 'PHYSICAL' . 'LBDCO' = LBD_CO ;
  676. INPUT . 'PHYSICAL' . 'LBDH2O' = LBD_H2O ;
  677. *
  678. *--------------------- viscosités dynamiques des constituants (kg/m/s)
  679. MU_H2 = (0.1541E-6 * (TGAS1 ** 1.703)) / (TGAS1 - 17.856) ;
  680. MU_HE = (0.5865E-6 * (TGAS1 ** 1.630)) / (TGAS1 + 27.183) ;
  681. MU_O2 = (0.7406E-6 * (TGAS1 ** 1.610)) / (TGAS1 + 48.16) ;
  682. MU_N2 = (1.791E-6 * (TGAS1 ** 1.469)) / (TGAS1 + 140.812) ;
  683. MU_CO2 = (0.136E-6 * (TGAS1 ** 1.810)) / (TGAS1 - 59.30) ;
  684. MU_CO = (0.573E-6 * (TGAS1 ** 1.620)) / (TGAS1 + 46.45) ;
  685. MU_H2O = (2.142E-6 * (TGAS1 ** 1.5)) / (TGAS1 + 890.) ;
  686. *
  687. INPUT . 'PHYSICAL' . 'MUH2' = MU_H2 ;
  688. INPUT . 'PHYSICAL' . 'MUHE' = MU_HE ;
  689. INPUT . 'PHYSICAL' . 'MUO2' = MU_O2 ;
  690. INPUT . 'PHYSICAL' . 'MUN2' = MU_N2 ;
  691. INPUT . 'PHYSICAL' . 'MUCO2' = MU_CO2 ;
  692. INPUT . 'PHYSICAL' . 'MUCO' = MU_CO ;
  693. INPUT . 'PHYSICAL' . 'MUH2O' = MU_H2O;
  694. *
  695. *=====================================================================
  696. *- Etat de référence
  697. *=====================================================================
  698. *
  699. INPUT . 'PHYSICAL' . 'PREF' = 1.013D5 ;
  700. INPUT . 'PHYSICAL' . 'TREF' = 273.15 ;
  701. INPUT . 'PHYSICAL' . 'RHO_H2' =
  702. INPUT . 'PHYSICAL' . 'PREF' * INPUT . 'PHYSICAL' . 'WH2'
  703. / (R_GAS * INPUT . 'PHYSICAL' . 'TREF') ;
  704. *
  705. *------------------------------------------------------ gravité (m/s2)
  706. 'SI' ('NON' ('EXISTE' (INPUT . 'PHYSICAL') 'GRAVITY')) ;
  707. INPUT . 'PHYSICAL' . 'GRAVITY' = 9.81 ;
  708. MESS1 = 'CHAI' MESS0 'GRAVITY (9.81)' ; 'MESS' MESS1 ;
  709. 'FINSI' ;
  710. *
  711. *--------------------------- diffusion de la vapeur dans un gaz (m2/s)
  712. * Di = A * (T/273.15) ** n / (p * 1.d-5) avec p en Pa et T en Kelvin
  713. *
  714. INPUT . 'PHYSICAL' . 'ADH2O' = 0.277D-3 ;
  715. INPUT . 'PHYSICAL' . 'ADCO2' = 0.155D-4 ;
  716. INPUT . 'PHYSICAL' . 'ADO2' = 0.240D-4 ;
  717. INPUT . 'PHYSICAL' . 'ADH2' = 0.780D-4 ;
  718. INPUT . 'PHYSICAL' . 'ADCO' = 0.220D-4 ;
  719. INPUT . 'PHYSICAL' . 'ADN2' = 0.227D-4 ;
  720. INPUT . 'PHYSICAL' . 'ADHE' = 0.730D-4 ;
  721. INPUT . 'PHYSICAL' . 'NDH2O' = 0. ;
  722. INPUT . 'PHYSICAL' . 'NDCO2' = 1.75 ;
  723. INPUT . 'PHYSICAL' . 'NDO2' = 1.71 ;
  724. INPUT . 'PHYSICAL' . 'NDH2' = 1.75 ;
  725. INPUT . 'PHYSICAL' . 'NDCO' = 1.75 ;
  726. INPUT . 'PHYSICAL' . 'NDN2' = 1.75 ;
  727. INPUT . 'PHYSICAL' . 'NDHE' = 1.75 ;
  728. *
  729. *=====================================================================
  730. * Propriétés thermodynamiques du mélange et de l'eau des puisards
  731. *=====================================================================
  732. *
  733. *- Valeurs par défaut des compartiments : VOL, PT, TGAS
  734. *
  735. NBCEL1 = 'DIME' (INPUT . 'CELL' . 'LOCATION') ;
  736. IND1 = INDEX (INPUT . 'CELL' . 'LOCATION') ;
  737. 'REPETER' BLO10 NBCEL1 ;
  738. ICELL = IND1 . &BLO10 ;
  739. 'SI' ('NON' ('EXISTE' (INPUT . 'CELL' . 'VOL') ICELL)) ;
  740. INPUT . 'CELL' . 'VOL' . ICELL = VOLU1 ;
  741. MESS1 = 'CHAI' MESS0 'VOLUME in cell ' ICELL ; 'MESS' MESS1 ;
  742. 'FINSI' ;
  743. 'SI' ('NON' ('EXISTE' (INPUT . 'CELL' . 'PT') ICELL)) ;
  744. INPUT . 'CELL' . 'PT' . ICELL = PRESS1 ;
  745. MESS1 = 'CHAI' MESS0 'PRESSURE in cell ' ICELL ; 'MESS' MESS1 ;
  746. 'FINSI' ;
  747. 'SI' ('NON' ('EXISTE' (INPUT . 'CELL' . 'TGAS') ICELL)) ;
  748. INPUT . 'CELL' . 'TGAS' . ICELL = TEMP1 ;
  749. MESS1 = 'CHAI' MESS0 'T_GAS in cell ' ICELL ; 'MESS' MESS1 ;
  750. 'FINSI' ;
  751. 'FIN' BLO10 ;
  752. *
  753. NCOMP1 = 'DIME' (INPUT . 'COMPONENT') ;
  754. IND1 = 'INDEX' (INPUT . 'COMPONENT') ;
  755. TESH2O = 0 ;
  756. LCOMP1 = 'MOTS' ;
  757. 'REPETER' BLO02 NCOMP1 ;
  758. IND02 = IND1 . &BLO02 ;
  759. NAMEC1 = INPUT . 'COMPONENT' . IND02 ;
  760. 'SI' ('EGA' NAMEC1 'H2O') ;
  761. TESH2O = 1 ;
  762. 'SINON' ;
  763. LCOMP1 = LCOMP1 'ET' ('MOTS' NAMEC1) ;
  764. 'FINSI' ;
  765. 'FIN' BLO02 ;
  766. *
  767. *-------------------------------------------------- DATAS Condensation
  768. 'SI' (TESH2O 'EGA' 1) ;
  769. 'SI' ('NON' ('EXIS' (INPUT . 'PHYSICAL') 'CONDENSE')) ;
  770. INPUT . 'PHYSICAL' . 'CONDENSE' = 'CHILTON' ;
  771. MESS1 = 'CHAI' MESS0 'model condensation by default : CHILTON' ;
  772. 'MESS' MESS1 ;
  773. 'FINSI' ;
  774. *------------------------------------------ Modèle par face ----------
  775. *
  776. * On cherche si TAGAMI est présent afin d'initialiser les constantes
  777. * du modèle si besoin (flag TEST1). On en profite pour mettre le
  778. * modèle de condensation par défaut aux faces qui en sont dépourvues
  779. * et pour tester la validité des modèles indiqués.
  780. COND0 = INPUT . 'PHYSICAL' . 'CONDENSE' ;
  781. TEST1 = 0 ;
  782. 'SI' ('EGA' COND0 'TAGAMI') ;
  783. TEST1 = 1 ;
  784. 'FINSI' ;
  785. IND1 = 'INDE' (INPUT . 'WALL' . 'LOCATION') ;
  786. N1 = 'DIME' IND1 ;
  787. 'REPETER' BLO1 N1 ;
  788. IN1 = IND1.&BLO1 ;
  789. 'SI' ('EXIS' (INPUT . 'WALL' . 'COND1') IN1);
  790. C1 = INPUT . 'WALL' . 'COND1' . IN1 ;
  791. TEST2 = ('EGA' C1 'UCHIDA')
  792. 'OU' ('EGA' C1 'TAGAMI')
  793. 'OU' ('EGA' C1 'CHILTON') ;
  794. 'SI' ('EGA' TEST2 FAUX) ;
  795. TXT1 = 'CHAI' TXT0 'bad value for the COND1 index '
  796. '(UCHIDA, TAGAMI or CHILTON instead of ' C1 ')' ;
  797. INPUT . 'ERROR' = 1 ; 'MESS' TXT1 ; 'QUIT' TO_DEFAU ;
  798. 'FINSI' ;
  799. 'SI' ('EGA' C1 'TAGAMI') ;
  800. TEST1 = 1 ;
  801. 'FINSI' ;
  802. 'SINON' ;
  803. INPUT . 'WALL' . 'COND1' . IN1 = COND0 ;
  804. MESS1 = 'CHAI' MESS0 'model condensation : upside wall ' IN1 ;
  805. 'MESS' MESS1 ;
  806. 'FINSI' ;
  807. 'SI' ('EXIST' (INPUT . 'WALL' . 'COND2') IN1);
  808. C2 = INPUT . 'WALL' . 'COND2' . IN1 ;
  809. TEST2 = ('EGA' C2 'UCHIDA')
  810. 'OU' ('EGA' C2 'TAGAMI')
  811. 'OU' ('EGA' C2 'CHILTON') ;
  812. 'SI' ('EGA' TEST2 FAUX) ;
  813. TXT1 = 'CHAI' TXT0 'bad value for the COND2 index '
  814. '(UCHIDA, TAGAMI or CHILTON instead of ' C2 ')' ;
  815. INPUT . 'ERROR' = 1 ; 'MESS' TXT1 ; 'QUIT' TO_DEFAU ;
  816. 'FINSI' ;
  817. 'SI' ('EGA' C2 'TAGAMI') ;
  818. TEST1 = 1 ;
  819. 'FINSI' ;
  820. 'SINON' ;
  821. INPUT . 'WALL' . 'COND2' . (IND1.&BLO1) = COND0 ;
  822. MESS1 = 'CHAI' MESS0 'model condensation : downside wall ' IN1 ;
  823. 'MESS' MESS1 ;
  824. 'FINSI' ;
  825. 'FIN' BLO1 ;
  826. *------------------------------------------ TAGAMI (Ttag en s) -------
  827. 'SI' ('EGA' TEST1 1) ;
  828. 'SI' ('NON' ('EXISTE' (INPUT . 'PHYSICAL') 'CTAG')) ;
  829. INPUT . 'PHYSICAL' . 'CTAG' = 0.76893 ;
  830. MESS1 = 'CHAI' MESS0 'CTAG (0.76893)' ; 'MESS' MESS1 ;
  831. 'FINSI' ;
  832. 'SI' ('NON' ('EXISTE' (INPUT . 'PHYSICAL') 'TTAG')) ;
  833. INPUT . 'PHYSICAL' . 'TTAG' = 25. ;
  834. MESS1 = 'CHAI' MESS0 'TTAG (25.)' ; 'MESS' MESS1 ;
  835. 'FINSI' ;
  836. 'FINSI' ;
  837. 'FINSI' ;
  838. *
  839. 'SI' (TESH2O 'EGA' 1) ;
  840. INPUT . 'CELL' . 'XV' = TABLE ;
  841. IND1 = 'INDEX' (INPUT . 'CELL' . 'LOCATION') ;
  842. 'REPETER' BLO03 NBCEL1 ;
  843. ICELL = IND1 . &BLO03 ;
  844. INPUT . 'CELL' . 'XV' . ICELL = XV1 ;
  845. TEMP2 = INPUT . 'CELL' . 'TGAS' . ICELL ;
  846. VOLU1 = INPUT . 'CELL' . 'VOL' . ICELL ;
  847. 'SI' ('NON' ('EXISTE' (INPUT . 'CELL' . 'MH2O') ICELL)) ;
  848. 'SI' ('NON' ('EXISTE' (INPUT . 'CELL' . 'HUMIDITY') ICELL)) ;
  849. INPUT . 'CELL' . 'HUMIDITY' . ICELL = HUMDT1 ;
  850. MESS1 = 'CHAI' MESS0 'HUMIDITY in cell ' ICELL ;
  851. 'MESS' MESS1 ;
  852. 'FINSI' ;
  853. HUMDT2 = INPUT . 'CELL' . 'HUMIDITY' . ICELL ;
  854. PSAT1 = 'VARI' 'PSATT' TEMP2 ;
  855. PVAP1 = HUMDT2 * PSAT1 ;
  856. INPUT . 'CELL' . 'MH2O' . ICELL =
  857. ('VARI' 'ROVAP' PVAP1 TEMP2) * VOLU1 ;
  858. 'SINON' ;
  859. 'SI' ('EXISTE' (INPUT . 'CELL' . 'HUMIDITY') ICELL) ;
  860. 'MESS' 'ERROR : HUMIDITY and MH2O cannot be both defined!!!';
  861. INPUT . 'ERROR' = 1 ; 'QUIT' TO_DEFAU ;
  862. 'FINSI';
  863. PSAT1 = 'VARI' 'PSATT' TEMP2 ;
  864. ROVA13 = INPUT . 'CELL' . 'MH2O' . ICELL '/' VOLU1 ;
  865. PVAP1 = 'VARI' 'PVAP' ROVA13 TEMP2 ;
  866. INPUT . 'CELL' . 'HUMIDITY' . ICELL = PVAP1 '/' PSAT1 ;
  867. HUMDT2 = INPUT . 'CELL' . 'HUMIDITY' . ICELL;
  868. MESS1 = 'CHAI' MESS0 'HUMIDITY in cell ' ICELL ;
  869. 'SI' (INPUT . 'CELL' . 'HUMIDITY' . ICELL '>' 1.);
  870. 'MESS' 'ERROR : H2O mass is too high considering (P,T,V)';
  871. 'MESS' '-> Humidity =' HUMDT2 ' > 1';
  872. 'MESS' 'Steam should be transfered to liquid' ;
  873. INPUT . 'ERROR' = 1 ; 'QUIT' TO_DEFAU ;
  874. 'FINSI';
  875. 'FINSI' ;
  876. 'FIN' BLO03 ;
  877. 'FINSI' ;
  878. *
  879. WAIR = (0.79 * INPUT . 'PHYSICAL' . 'WN2')
  880. + (0.21 * INPUT . 'PHYSICAL' . 'WO2') ;
  881. RAIR = R_GAS / WAIR ;
  882. YN2 = 0.79 * INPUT . 'PHYSICAL' . 'WN2' / WAIR ;
  883. YO2 = 0.21 * INPUT . 'PHYSICAL' . 'WO2' / WAIR ;
  884. *
  885. IND1 = 'INDEX' (INPUT . 'CELL' . 'LOCATION') ;
  886. 'REPETER' BLO01 NBCEL1 ;
  887. ICELL = IND1 . &BLO01 ;
  888. VOLU1 = INPUT . 'CELL' . 'VOL' . ICELL ;
  889. PT1 = INPUT . 'CELL' . 'PT' . ICELL ;
  890. TGAS1 = INPUT . 'CELL' . 'TGAS' . ICELL ;
  891. 'SI' (TESH2O 'EGA' 1) ;
  892. ROVAP1 = (INPUT . 'CELL' . 'MH2O' . ICELL) / VOLU1 ;
  893. PVAP1 = 'VARI' 'PVAP' ROVAP1 TGAS1 ;
  894. 'SINON' ;
  895. PVAP1 = 0. ;
  896. 'FINSI' ;
  897. PAUTR1 = 0. ;
  898. 'REPE' BLO13 ('DIME' LCOMP1);
  899. COMPC13 = 'CHAIN' 'M' ('EXTR' LCOMP1 &BLO13) ;
  900. 'SI' ('EXISTE' (INPUT . 'CELL') COMPC13) ;
  901. 'SI' ('NON' ('EXISTE' (INPUT . 'CELL' . COMPC13) ICELL)) ;
  902. INPUT . 'CELL' . COMPC13 . ICELL = 0. ;
  903. 'FINSI' ;
  904. MCO13 = INPUT . 'CELL' . COMPC13 . ICELL ;
  905. MOR13 = 'CHAIN' 'R_' (EXTR LCOMP1 &BLO13) ;
  906. RCO13 = INPUT . 'PHYSICAL' . MOR13 ;
  907. PAUTR1 = PAUTR1 + (RCO13 '*' MCO13 '*' TGAS1 '/' VOLU1);
  908. 'FINSI' ;
  909. 'FIN' BLO13 ;
  910. OKN2 = 'EXIS' (INPUT . 'CELL') 'MN2' ;
  911. OKO2 = 'EXIS' (INPUT . 'CELL') 'MO2' ;
  912. OKAIR = 'ET' OKN2 OKO2 ;
  913. 'SI' ((PT1+1.) '>EG' (PVAP1 '+' PAUTR1));
  914. 'SI' OKAIR ;
  915. BN2 = 'EXIS' (INPUT . 'CELL' . 'MN2') ICELL ;
  916. BO2 = 'EXIS' (INPUT . 'CELL' . 'MO2') ICELL ;
  917. 'SI' BN2 ;
  918. MN2U = INPUT . 'CELL' . 'MN2' . ICELL ;
  919. 'SINO' ;
  920. MN2U = 0. ;
  921. 'FINSI' ;
  922. 'SI' BO2 ;
  923. MO2U = INPUT . 'CELL' . 'MO2' . ICELL ;
  924. 'SINO' ;
  925. MO2U = 0. ;
  926. 'FINSI' ;
  927. MAIR = (VOLU1 / RAIR) * (PT1 - PVAP1 - PAUTR1) / TGAS1 ;
  928. MN2P = YN2 * MAIR ;
  929. MO2P = YO2 * MAIR ;
  930. INPUT . 'CELL' . 'MN2' . ICELL = MN2P + MN2U ;
  931. INPUT . 'CELL' . 'MO2' . ICELL = MO2P + MO2U ;
  932. 'MESS' 'WARNING : to_defau : O2 mass is added:' mo2p ;
  933. 'MESS' 'WARNING : to_defau : N2 mass is added:' mn2p ;
  934. 'SINO';
  935. vtest = (pt1+1.) - (PVAP1 '+' PAUTR1) ;
  936. 'SI' (('ABS' vtest) '>' 1.) ;
  937. 'MESS' 'ERROR : Total pressure too high';
  938. 'MESS' 'ERROR : ' pt1 ' > ' pvap1 ' + ' pautr1 '=' (pvap1+pautr1) ;
  939. INPUT . 'ERROR' = 1 ; 'QUIT' TO_DEFAU ;
  940. 'FINSI' ;
  941. 'FINSI';
  942. 'SINON';
  943. 'MESS' 'ERROR : Total pressure too low';
  944. 'MESS' 'ERROR : ' pt1 ' < ' pvap1 ' + ' pautr1 '=' (pvap1+pautr1) ;
  945. INPUT . 'ERROR' = 1 ; 'QUIT' TO_DEFAU ;
  946. 'FINSI';
  947. 'FIN' BLO01 ;
  948. 'SI' ('EXISTE' (INPUT . 'CELL') 'MH2O');
  949. 'SI' ('NON' ('EXISTE' (INPUT . 'CELL') 'MLIQ')) ;
  950. INPUT . 'CELL' . 'MLIQ' = TABLE ;
  951. 'FINSI' ;
  952. 'SI' ('NON' ('EXISTE' (INPUT . 'CELL') 'TLIQ')) ;
  953. INPUT . 'CELL' . 'TLIQ' = TABLE ;
  954. 'FINSI' ;
  955. INPUT . 'CELL' . 'HLIQ' = TABLE ;
  956. INPUT . 'CELL' . 'VLIQ' = TABLE ;
  957. INPUT . 'CELL' . 'ULIQ' = TABLE ;
  958. INPUT . 'CELL' . 'QEVA' = TABLE ;
  959. IND1 = 'INDEX' (INPUT . 'CELL' . 'LOCATION') ;
  960. 'REPETER' BLO04 NBCEL1 ;
  961. ICELL = IND1 . &BLO04 ;
  962. 'SI' ('NON' ('EXISTE' (INPUT . 'CELL' . 'ASUMP') ICELL)) ;
  963. INPUT . 'CELL' . 'ASUMP' . ICELL = ASUMP1 ;
  964. MESS1 = 'CHAI' MESS0 'ASUMP in cell ' ICELL ; 'MESS' MESS1 ;
  965. 'FINSI' ;
  966. 'SI' ('NON' ('EXISTE' (INPUT . 'CELL' . 'VMAX') ICELL)) ;
  967. INPUT . 'CELL' . 'VMAX' . ICELL = VMAX1 ;
  968. MESS1 = 'CHAI' MESS0 'VMAX in cell ' ICELL ; 'MESS' MESS1 ;
  969. 'FINSI' ;
  970. 'SI' ('NON' ('EXISTE' (INPUT . 'CELL' . 'APERTURE') ICELL)) ;
  971. INPUT . 'CELL' . 'APERTURE' . ICELL = APER1 ;
  972. MESS1 = 'CHAI' MESS0 'APERTURE in cell ' ICELL ; 'MESS' MESS1 ;
  973. 'FINSI' ;
  974. 'SI' ('NON' ('EXISTE' (INPUT . 'CELL' . 'MLIQ') ICELL)) ;
  975. INPUT . 'CELL' . 'MLIQ' . ICELL = MLIQ1 ;
  976. MESS1 = 'CHAI' MESS0 'MLIQ in cell ' ICELL ; 'MESS' MESS1 ;
  977. 'FINSI' ;
  978. 'SI' ('NON' ('EXISTE' (INPUT . 'CELL' . 'TLIQ') ICELL)) ;
  979. INPUT . 'CELL' . 'TLIQ' . ICELL = TEMP1 ;
  980. MESS1 = 'CHAI' MESS0 'TLIQ in cell ' ICELL ; 'MESS' MESS1 ;
  981. 'FINSI' ;
  982. PRESS1 = INPUT . 'CELL' . 'PT' . ICELL ;
  983. MLIQ2 = INPUT . 'CELL' . 'MLIQ' . ICELL ;
  984. HLIQ2 = 'VARI' 'HLS' PRESS1 (INPUT . 'CELL' . 'TLIQ' . ICELL) ;
  985. RHOL2 = 'VARI' 'ROLIQ' PRESS1 HLIQ2 ;
  986. VLIQ2 = MLIQ2 / RHOL2 ;
  987. ULIQ2 = HLIQ2 * MLIQ2 - (PRESS1 * VLIQ2) ;
  988. INPUT . 'CELL' . 'HLIQ' . ICELL = HLIQ2 ;
  989. INPUT . 'CELL' . 'VLIQ' . ICELL = VLIQ2 ;
  990. INPUT . 'CELL' . 'ULIQ' . ICELL = ULIQ2 ;
  991. INPUT . 'CELL' . 'QEVA' . ICELL = 0. ;
  992. 'FIN' BLO04 ;
  993. 'FINSI' ;
  994. 'SI' ('EXISTE' INPUT 'WALL' ) ;
  995. 'SI' ('NON' ('EXISTE' INPUT 'TOUT')) ;
  996. INPUT . 'TOUT' = TOUT1 ;
  997. 'FINSI' ;
  998. NBIND3 = 'DIME' KEYWAL ;
  999. NBWAL3 = 'DIME' (INPUT . 'WALL' . 'LOCATION') ;
  1000. IND1 = 'INDEX' (INPUT . 'WALL' . 'LOCATION') ;
  1001. INDK = 'INDEX' KEYWAL ;
  1002. 'REPETER' BLO30 NBWAL3 ;
  1003. IWALL = IND1 . &BLO30 ;
  1004. 'REPETER' BLO31 NBIND3 ;
  1005. IND3 = INDK . &BLO31 ;
  1006. 'SI' ('NON' ('EXISTE' (INPUT . 'WALL' . IND3) IWALL)) ;
  1007. VAL3 = KEYWAL . IND3 ;
  1008. INPUT . 'WALL' . IND3 . IWALL = VAL3 ;
  1009. MESS3 = 'CHAI' MESS0 ' ' IND3 ' in ' IWALL ; 'MESS' MESS3 ;
  1010. 'FINSI' ;
  1011. 'FIN' BLO31 ;
  1012. NBLAY1 = INPUT . 'WALL' . 'NLAYER' . IWALL ;
  1013. IND2 = 'INDEX' (INPUT . 'WALL' . 'MATERIAL' . IWALL) ;
  1014. 'REPETER' BLO32 NBLAY1 ;
  1015. ILAYER = IND2 . &BLO32 ;
  1016. TYPEM1 = INPUT . 'WALL' . 'MATERIAL' . IWALL . ILAYER ;
  1017. IMT1 = INPUT . 'MATERIAL' . TYPEM1 ;
  1018. INPUT . 'WALL' . 'RHO' . IWALL . ILAYER = IMT1 . 'RHOW' ;
  1019. INPUT . 'WALL' . 'CP' . IWALL . ILAYER = IMT1 . 'CPW' ;
  1020. INPUT . 'WALL' . 'LAMBDA' . IWALL . ILAYER = IMT1 . 'LBDW' ;
  1021. TYUCH1 = IMT1 . 'TYPEW' ;
  1022. 'SI' (EGA TYUCH1 'WCONCRET') ;
  1023. INPUT . 'WALL' . 'UCHIDA' . IWALL . ILAYER = 0.4 ;
  1024. 'SINON' ;
  1025. INPUT . 'WALL' . 'UCHIDA' . IWALL . ILAYER = 1.0 ;
  1026. 'FINSI' ;
  1027. 'FIN' BLO32 ;
  1028. 'FIN' BLO30 ;
  1029. 'FINSI' ;
  1030. NCOMP1 = 'DIME' (INPUT . 'COMPONENT') ;
  1031. IND1 = 'INDEX' (INPUT . 'CELL' . 'LOCATION') ;
  1032. IND2 = 'INDEX' (INPUT . 'COMPONENT') ;
  1033. 'REPETER' BLO12 NBCEL1 ;
  1034. ICELL = IND1 . &BLO12 ;
  1035. 'SI' ('NON' ('EXISTE' (INPUT . 'CELL' . 'UGAS') ICELL)) ;
  1036. TGAS1 = INPUT . 'CELL' . 'TGAS' . ICELL ;
  1037. VOLU1 = INPUT . 'CELL' . 'VOL' . ICELL ;
  1038. UVAP1 = 0. * VOLU1 ;
  1039. MCV1 = 0.D0 ;
  1040. 'REPETER' BLO121 NCOMP1 ;
  1041. NOM1 = IND2 . &BLO121 ;
  1042. NAMC1 = INPUT . 'COMPONENT' . NOM1 ;
  1043. NAMM1 = 'CHAINE' 'M' NAMC1 ;
  1044. XM1 = INPUT . 'CELL' . NAMM1 . ICELL ;
  1045. 'SI' ('EGA' NAMC1 'H2O' ) ;
  1046. PSAT1 = 'VARI' 'PSATT' TGAS1 ;
  1047. PVAP1 = (INPUT . 'CELL' . 'HUMIDITY' . ICELL) * PSAT1 ;
  1048. UVAP1 = ('VARI' 'HVS' PVAP1 TGAS1) * XM1 - (VOLU1 * PVAP1) ;
  1049. 'SINO' ;
  1050. NAMCV1 = 'CHAINE' 'CV' NAMC1 ;
  1051. XCV1 = INPUT . 'PHYSICAL' . NAMCV1 ;
  1052. MCV1 = MCV1 + (XM1 * XCV1) ;
  1053. 'FINS' ;
  1054. 'FIN' BLO121 ;
  1055. INPUT . 'CELL' . 'UGAS' . ICELL = TGAS1 * MCV1 + UVAP1 ;
  1056. 'FINSI' ;
  1057. PRES1 = INPUT . 'CELL' . 'PT' . ICELL ;
  1058. VOLU1 = INPUT . 'CELL' . 'VOL' . ICELL ;
  1059. UGAS1 = INPUT . 'CELL' . 'UGAS' . ICELL ;
  1060. MASS1 = 0. ;
  1061. 'REPETER' BLO122 NCOMP1 ;
  1062. NOM1 = IND2 . &BLO122 ;
  1063. NAMC1 = INPUT . 'COMPONENT' . NOM1 ;
  1064. NAMM1 = 'CHAINE' 'M' NAMC1 ;
  1065. XM1 = INPUT . 'CELL' . NAMM1 . ICELL ;
  1066. MASS1 = MASS1 + XM1 ;
  1067. 'FIN' BLO122 ;
  1068. HGAS2 = (UGAS1 + (PRES1 * VOLU1)) / MASS1 ;
  1069. INPUT . 'CELL' . 'HGAS' . ICELL = HGAS2 ;
  1070. 'FIN' BLO12 ;
  1071. 'SI' ('NON' ('EXIS' (INPUT . 'TIMECALC') 'FREQSAVE')) ;
  1072. 'SI' ('NON' ('EXIS' (INPUT . 'TIMECALC') 'LISTSAVE')) ;
  1073. INPUT . 'TIMECALC' . 'FREQSAVE' = 1 ;
  1074. 'MESS' MESS0 'the step frequency for saving FREQSAVE (1)';
  1075. 'FINSI' ;
  1076. 'FINSI' ;
  1077. *
  1078. 'SI' ('NON' ('EXIS' (INPUT . 'TIMECALC') 'FREQPLOT')) ;
  1079. INPUT . 'TIMECALC' . 'FREQPLOT' = 1 ;
  1080. 'MESS' MESS0 'the step frequency for plotting FREQPLOT (1)';
  1081. 'FINSI' ;
  1082. *
  1083. 'SI' ('NON' ('EXIS' (INPUT . 'TIMECALC') 'ERRTOL')) ;
  1084. INPUT . 'TIMECALC' . 'ERRTOL' = 0.001 ;
  1085. 'MESS' MESS0 'the relative error tolerance ERRTOL (0.001)';
  1086. 'FINSI' ;
  1087. 'SI' ('NON' ('EXISTE' INPUT 'NAMECASE')) ;
  1088. INPUT . 'NAMECASE' = 'NAUTILUS Evaluation' ;
  1089. 'MESS' 'WARNING : title of the case is missing';
  1090. 'FINSI' ;
  1091. *
  1092. * --- Verfication du temps maxi lorsqu'on definit un exterieur
  1093. * --- a temperature variable
  1094. * --- si Tps max utilisateur < Tps final calcul
  1095. * --- --> Tps max exte = Tps final calcul
  1096. 'SI' ('EXISTE' INPUT 'OUTD' ) ;
  1097. NBEXTE = INPUT . 'OUTD' . 'NBOUT' ;
  1098. IND1 = 'INDEX' (INPUT . 'OUTD' . 'TPS');
  1099. 'REPETER' BLO1 NBEXTE ;
  1100. IND2 = IND1 . &BLO1 ;
  1101. NTPS1= 'DIME' (INPUT . 'OUTD' . 'TPS' . IND2) ;
  1102. TPSF1= 'EXTR' (INPUT . 'OUTD' . 'TPS' . IND2) NTPS1 ;
  1103. NTPS2= 'DIME' (INPUT . 'TIMECALC' .'LISTCALC') ;
  1104. TPSF2= 'EXTR' (INPUT . 'TIMECALC' .'LISTCALC') NTPS2 ;
  1105. 'SI' (TPSF1 '<' TPSF2) ;
  1106. INPUT.'OUTD'.'TPS'.IND2 = INPUT.'OUTD'.'TPS'.IND2
  1107. 'ET' ('PROG' TPSF2);
  1108. TEMP2 = 'EXTR' (INPUT . 'OUTD' . 'TEMP' . IND2) NTPS1 ;
  1109. INPUT.'OUTD'.'TEMP'.IND2 = INPUT.'OUTD'.'TEMP'.IND2
  1110. 'ET' ('PROG' TEMP2);
  1111. 'MESS' 'Warning : Bad exterior temperature definition in ' IND2;
  1112. 'MESS' 'Final Time exterior = Final Time calculation = ' TPSF2;
  1113. 'FINSI' ;
  1114. 'FIN' BLO1 ;
  1115. 'FINSI' ;
  1116.  
  1117. 'FINPROC' INPUT ;
  1118. *$$$$ TO_DFDT
  1119. 'DEBP' TO_DFDT ;
  1120. *
  1121. 'ARGU' TABOPER*'TABLE' ;
  1122. *
  1123. *
  1124. LISTOP1 = 'TABLE' 'OPER_0D' ;
  1125. *
  1126. TYP1 = 'TYPE' TABOPER . 'DT' ;
  1127. 'SI' ('EGA' TYP1 'MOT ') ;
  1128. DT1 = TABOPER . 'INCO' . (TABOPER . 'DT') ;
  1129. 'SINON';
  1130. 'SI' ('EGA' TYP1 'FLOTTANT') ;
  1131. DT1 = TABOPER . 'DT' ;
  1132. 'SINON' ;
  1133. 'ERRE'
  1134. 'TO_DFDT procedure, OPER_0D table : DT must be FLOTTANT or MOT';
  1135. 'FIN' ;
  1136. 'FINSI' ;
  1137. 'FINSI' ;
  1138. TYP1 = 'TYPE' TABOPER . 'MULT' ;
  1139. 'SI' ('EGA' TYP1 'MOT ') ;
  1140. MULT1 = TABOPER . 'INCO' . (TABOPER . 'MULT') ;
  1141. 'SINON';
  1142. 'SI' (('EGA' TYP1 'FLOTTANT') 'OU' ('EGA' TYP1 'CHPOINT')) ;
  1143. MULT1 = TABOPER . 'MULT' ;
  1144. 'SINON' ;
  1145. 'ERRE'
  1146. 'TO_DFDT procedure, OPER_0D table : DT must be FLOTTANT or MOT';
  1147. 'FIN' ;
  1148. 'FINSI' ;
  1149. 'FINSI' ;
  1150. *
  1151. LISTOP1 . 'NAME' = MOT 'MDIA' ;
  1152. LISTOP1 . 'MAILLAGE' = TABOPER . 'MAILLAGE' ;
  1153. LISTOP1 . 'INCO' = TABOPER . 'INCO' ;
  1154. LISTOP1 . 'COEF' = mult1 / DT1 ;
  1155. LISTOP1 . 'DUAL' = TABOPER . 'DUAL' ;
  1156. LISTOP1 . 'PRIMAL' = TABOPER . 'DUAL' ;
  1157. LISTOP1 . 'TYPEL' = 'P=D' ;
  1158. MDIA LISTOP1 ;
  1159. *
  1160. NOMD1 = TABOPER . 'DUAL' ;
  1161. 'SI' ('EXIS' taboper 'DUA2') ;
  1162. NOMD2 = TABOPER . 'DUA2' ;
  1163. 'SINO' ;
  1164. NOMD2 = NOMD1 ;
  1165. 'FINSI' ;
  1166. CHPD1 = 'EXCO' NOMD1 (TABOPER . 'INCO' . NOMD2) 'SCAL' ;
  1167. CHRES1 = CHPD1 * (MULT1 / DT1) ;
  1168. TABOPER . 'RHS' = 'EXCO' 'SCAL' CHRES1 NOMD1 'NATURE' 'DISCRET';
  1169. TABOPER . 'LHS' = LISTOP1 . 'LHS' ;
  1170. *
  1171. 'FINP' ;
  1172. *$$$$ TO_DISK
  1173. 'DEBP' TO_DISK SET*'TABLE' ;
  1174. *
  1175. DATA = SET . 'DATA' ;
  1176. INCO = SET . 'INCO' ;
  1177. GEOINF = SET . 'GEOINF' ;
  1178. *
  1179. L1 = DATA . 'LENGTH' ;
  1180. K1 = DATA . 'DISC' ;
  1181. S1 = INCO . 'AREA' ;
  1182. flagmp = faux ;
  1183. *
  1184. NBJUNC = GEOINF . 'NBJUNC' ;
  1185. RHO12 = 0. * S1 ;
  1186. 'REPE' BLO20 NBJUNC ;
  1187. *
  1188. LESEG3 = 'ELEM' (GEOINF . 'JUNCEL') 'SEG3' &BLO20 ;
  1189. LSEG3 = 'CHAN' LESEG3 POI1 ;
  1190. PT1 = LSEG3 'POIN' 1 ;
  1191. PTF1 = LSEG3 'POIN' 2 ;
  1192. PT2 = LSEG3 'POIN' 3 ;
  1193. RHO1 = 'EXTR' (INCO . 'RGAS') 'RGAS' PT1 ;
  1194. RHO2 = 'EXTR' (INCO . 'RGAS') 'RGAS' PT2 ;
  1195. RHOM = (RHO1 + RHO2) / 2.D0 ;
  1196. RHO12 = RHO12 + ('MANU' 'CHPO' PTF1 1 'SCAL' RHOM) ;
  1197. *
  1198. 'SI' (set . 'QSONIC') ;
  1199. *
  1200. P1 = 'EXTR' (INCO . 'PTM') 'PT' PT1 ;
  1201. P2 = 'EXTR' (INCO . 'PTM') 'PT' PT2 ;
  1202. 'SI' (P1 '>' P2) ;
  1203. P0P = P1 ;
  1204. P0M = P2 ;
  1205. T0 = 'EXTR' (INCO . 'TGM') 'TGAS' PT1 ;
  1206. 'SINO' ;
  1207. P0P = P2 ;
  1208. P0M = P1 ;
  1209. T0 = 'EXTR' (INCO . 'TGM') 'TGAS' PT2 ;
  1210. 'FINSI' ;
  1211. A0 = 'EXTR' (INCO . 'AREA') 'SCAL' PTF1 ;
  1212. fg0 = 1.2810 ;
  1213. cp0 = 1004. ;
  1214. mp0 = p0p * A0 * fg0 / (cp0 * t0 ** 0.5) ;
  1215. Q0 = 'ABS' ('EXTR' (INCO . 'QCEL') 'QCEL' PTF1) ;
  1216. 'SI' (Q0 '>' set . 'QLIMIT') ;
  1217. 'SI' (Q0 '>' mp0) ;
  1218. rp0 = P0P / P0M ;
  1219. 'SI' (rp0 '>' 0.528) ;
  1220. 'SI' flagmp ;
  1221. mp1 = mp1 'ET'
  1222. ('MANU' 'CHPO' PTF1 1 'QCEL' mp0 'NATURE' 'DISCRET') ;
  1223. 'SINO' ;
  1224. flagmp = vrai ;
  1225. mp1 = 'MANU' 'CHPO' PTF1 1 'QCEL' mp0 'NATURE' 'DISCRET' ;
  1226. 'FINSI' ;
  1227. 'FINSI' ;
  1228. 'FINSI' ;
  1229. 'FINSI' ;
  1230. 'FINSI' ;
  1231. *
  1232. 'FIN' BLO20 ;
  1233. *
  1234. 'SI' flagmp ;
  1235. mson1 = 'EXTR' mp1 'MAIL' ;
  1236. s2 = s1 - ('REDU' s1 mson1) ;
  1237. qnul1 = s2 'MASQ' 'EGINFE' 1.D-30 ;
  1238. sigp0 = (inco . 'QCEL') 'MASQ' 'SUPERIEUR' 0.D0 ;
  1239. sigm0 = sigp0 - 1. ;
  1240. sign0 = 'REDU' (sigp0 + sigm0) mson1 ;
  1241. sign0 = 'NOMC' 'SCAL' sign0 ;
  1242. qmmp1 = (1.D0 - qnul1) * inco . 'QCEL' ;
  1243. inco . 'QCEL' = qmmp1 + (mp1 * sign0) ;
  1244. Q1 = 'ABS' ('NOMC' 'SCAL' qmmp1) ;
  1245. 'SINO' ;
  1246. s2 = s1 ;
  1247. qnul1 = s1 'MASQ' 'EGINFE' 1.D-30 ;
  1248. inco . 'QCEL' = (1.D0 - qnul1) * inco . 'QCEL' ;
  1249. q1 = 'ABS' ('NOMC' 'SCAL' (INCO . 'QCEL')) ;
  1250. 'FINSI' ;
  1251. *
  1252. inco . 'QDFDT' = rho12 * s2 * l1 ;
  1253. inco . 'QKMBT' = rho12 * s2 * s2 ;
  1254. inco . 'QMDIA' = k1 * q1 + qnul1 ;
  1255. inco . 'QMDIA2' = k1 * q1 / 2.D0 + qnul1 ;
  1256. *
  1257. 'FINP' ;
  1258.  
  1259. *$$$$ TO_EXEC
  1260. 'DEBPROC' TO_EXEC SET*'TABLE' LISTOPER*'TABLE'
  1261. CHOI1*'TABLE' CHOI2*'TABLE' CHOI3*'TABLE' CHOI4*'TABLE' ;
  1262. *
  1263. TSD = SET . 'DATA' ;
  1264. TSF = SET . 'FIELDS' ;
  1265. TSG = SET . 'GEOINF' ;
  1266. TST = SET . 'TIMECALC' ;
  1267. *
  1268. RELAX1 = SET . 'RELAX' ;
  1269. RELAX4 = SET . 'RELINT' ;
  1270. IMP1 = SET . 'IMPR' ;
  1271. ERRTOL = TST . 'ERRTOL' ;
  1272. LJUNC = 'EXIS' TSG 'JUNCTION' ;
  1273. LJOUT = 'EXIS' TSG 'JUNCTOUT' ;
  1274. LWALL = 'EXIS' TSG 'LAYERC' ;
  1275. LSUMP = 'EXIS' TSG 'LAYERS' ;
  1276. NBSAU1 = 'DIME' (SET . 'HISTO') ;
  1277. GLOLHS = 'TABLE' ;
  1278. GLORHS = 'TABLE' ;
  1279. LOCLHS = 'TABLE' ;
  1280. LOCRHS = 'TABLE' ;
  1281. *
  1282. NOPE1 = 'DIME' CHOI1 ;
  1283. 'SI' ('NEG' NOPE1 0) ;
  1284. IND1 = 'INDEX' CHOI1 ;
  1285. 'FINSI' ;
  1286. NOPE2 = 'DIME' CHOI2 ;
  1287. 'SI' ('NEG' NOPE2 0) ;
  1288. IND2 = 'INDEX' CHOI2 ;
  1289. 'FINSI' ;
  1290. NOPE3 = 'DIME' CHOI3 ;
  1291. 'SI' ('NEG' NOPE3 0) ;
  1292. IND3 = 'INDEX' CHOI3 ;
  1293. 'FINSI' ;
  1294. NOPE4 = 'DIME' CHOI4 ;
  1295. 'SI' ('NEG' NOPE4 0) ;
  1296. IND4 = 'INDEX' CHOI4 ;
  1297. 'FINSI' ;
  1298. *
  1299. *- Création du premier ensemble de matrices et seconds membres
  1300. *
  1301. 'REPETER' BLO70 NOPE1 ;
  1302. IK1 = CHOI1 . (IND1 . &BLO70) ;
  1303. * ('TEXTE' LISTOPER . IK1 . 'NAME') (LISTOPER . IK1) ;
  1304. LISTOPER . IK1 . 'NAME' (LISTOPER . IK1) ;
  1305. GLOLHS . IK1 = LISTOPER . IK1 . 'LHS' ;
  1306. 'SI' ('EXISTE' (LISTOPER . IK1) 'RHS') ;
  1307. GLORHS . IK1 = LISTOPER . IK1 . 'RHS' ;
  1308. 'FINSI' ;
  1309. 'FIN' BLO70 ;
  1310. *
  1311. ISTEPT = 1 ;
  1312. IBEGI1 = ('INDE' (TSF . 'TIME')) . ('DIME' (TSF . 'TIME')) ;
  1313. IISAUV = 1 ;
  1314. TIME1 = 'EXTR' (TST . 'LISTCALC') ISTEPT ;
  1315. TOK1 = 'PROG' TIME1 ;
  1316. NSAVE1 = 'DIME' (TST . 'TIMESAVE') ;
  1317. TSAVE1 = 'EXTR' (TST . 'TIMESAVE') (IISAUV + 1) ;
  1318. *
  1319. 'REPETER' BLO50 ((TST . 'STEPNUMB') - 1) ;
  1320. ISTEPT = ISTEPT + 1 ;
  1321. TIME2 = 'EXTR' (TST . 'LISTCALC') ISTEPT ;
  1322. DT1 = TIME2 - TIME1 ;
  1323. SET . 'INCO' . 'DT' = DT1 ;
  1324. SET . 'INCO' . 'TIME1' = TIME1 ;
  1325. TIME1 = TIME2 ;
  1326. SET . 'INCO' . 'TIME2' = TIME2 ;
  1327. 'MESS' ' ' ;
  1328. 'MESS' 'Time step =' (ISTEPT - 1) '/ time =' TIME2 ;
  1329. *
  1330. 'SI' (LJUNC 'OU' LJOUT) ;
  1331. set . 'INCO' . 'PTM' = 'COPI' set . 'INCO' . 'PT' ;
  1332. set . 'INCO' . 'TGM' = 'COPI' set . 'INCO' . 'TGAS' ;
  1333. 'SI' LJUNC ;
  1334. set . 'INCO' . 'QM' = 'COPI' set . 'INCO' . 'QCEL' ;
  1335. 'FINSI' ;
  1336. 'SI' LJOUT ;
  1337. set . 'INCO' . 'QMO' = 'COPI' set . 'INCO' . 'QOUT' ;
  1338. 'FINSI' ;
  1339. 'SI' ('EXIS' (TSD . 'AREA') 0) ;
  1340. S1 = TSD . 'AREA' . 0 ;
  1341. 'SINO' ;
  1342. S1 = 0. * (TSD . 'LENGTH') ;
  1343. 'FINSI' ;
  1344. 'SI' ('EXIS' (TSD . 'AREA') 'NBEV') ;
  1345. da = TSD . 'AREA' ;
  1346. 'REPE' blo30 (da . 'NBEV') ;
  1347. PTJ = da . &blo30 . 'LOCATION' ;
  1348. S0 = 'IPOL' TIME2 (da . &blo30 . 'EVOL') ;
  1349. S1 = S1 'ET'
  1350. ('MANU' 'CHPO' PTJ 1 'SCAL' S0 'NATURE' 'DISCRET') ;
  1351. 'FIN' blo30 ;
  1352. 'FINSI' ;
  1353. set . 'INCO' . 'AREA' = S1 ;
  1354. 'FINSI' ;
  1355. 'SI' ('EXIS' set . 'INCO' 'MLIQ') ;
  1356. set . 'INCO' . 'OMLIQ' = 'COPI' set . 'INCO' . 'MLIQ' ;
  1357. 'FINSI' ;
  1358. 'SI' ('EGA' ISTEPT 2) ;
  1359. DTOLD = DT1 ;
  1360. 'FINSI' ;
  1361. 'SI' ('EXISTE' TST 'PREDT' ) ;
  1362. OLD_INCO = PRED0 SET ;
  1363. 'SI' ('EGA' ISTEPT 2) ;
  1364. DINCO = PRED2 0.D0 SET OLD_INCO ;
  1365. 'FINSI' ;
  1366. 'FINSI' ;
  1367. *
  1368. 'REPETER' BLO52 NOPE2 ;
  1369. IK2 = CHOI2 . (IND2 . &BLO52) ;
  1370. * ('TEXTE' LISTOPER . IK2 . 'NAME') (LISTOPER . IK2) ;
  1371. LISTOPER . IK2 . 'NAME' (LISTOPER . IK2) ;
  1372. GLOLHS . IK2 = LISTOPER . IK2 . 'LHS' ;
  1373. 'SI' ('EXISTE' (LISTOPER . IK2) 'RHS') ;
  1374. GLORHS . IK2 = LISTOPER . IK2 . 'RHS' ;
  1375. 'FINSI' ;
  1376. 'FIN' BLO52 ;
  1377. *
  1378. *- Conditions aux limites pour le pas de temps DT1
  1379. *
  1380. BOUND2 = TO_BOCO SET ;
  1381. *
  1382. 'SI' ('EXISTE' TSD 'BURN' ) ;
  1383. TYPCOMB = 'CHAI' TSD . 'BURN' . TYPE ;
  1384. 'SI' ('EGA' TYPCOMB 'PROPAGATION' ) ;
  1385. BOUND3 = TO_COMBP SET ;
  1386. 'FINSI' ;
  1387. 'SI' ('EGA' TYPCOMB 'REAL' ) ;
  1388. BOUND3 = TO_COMBC SET ;
  1389. 'FINSI' ;
  1390. 'FINSI' ;
  1391. *
  1392. 'SI' ('EXISTE' TSD 'RECOMB' ) ;
  1393. BOUND4 = TO_RECOM SET ISTEPT IBEGI1;
  1394. 'FINSI' ;
  1395. *
  1396. 'SI' ('EXISTE' TSD 'PRESI' ) ;
  1397. BOUND5 = TO_PRESI SET ;
  1398. 'FINSI' ;
  1399. *
  1400. BOUND6 = BCIMPL SET ;
  1401. *
  1402. 'SI' ('EXISTE' TST 'PREDT' ) ;
  1403. PRED1 SET DINCO (DT1 / DTOLD) ;
  1404. 'FINSI' ;
  1405. ***********************************************************************
  1406. * --- Boucle interne ---
  1407. ***********************************************************************
  1408. ISTEPI = 0 ;
  1409. 'REPETER' BLO60 INSTEP ;
  1410. ISTEPI = ISTEPI + 1 ;
  1411. *
  1412. *- Actualisation des termes linéarisés
  1413. *
  1414. TO_UPLIN SET ;
  1415. *
  1416. *- Création du troisième ensemble de matrices et seconds membres
  1417. *
  1418. 'REPETER' BLO61 NOPE3 ;
  1419. IK3 = CHOI3 . (IND3 . &BLO61) ;
  1420. * ('TEXTE' LISTOPER . IK3 . 'NAME') (LISTOPER . IK3) ;
  1421. LISTOPER . IK3 . 'NAME' (LISTOPER . IK3) ;
  1422. GLOLHS . IK3 = LISTOPER . IK3 . 'LHS' ;
  1423. 'SI' ('EXISTE' (LISTOPER . IK3) 'RHS') ;
  1424. GLORHS . IK3 = LISTOPER . IK3 . 'RHS' ;
  1425. 'FINSI' ;
  1426. 'FIN' BLO61 ;
  1427. *
  1428. *- Concaténation des matrices élémentaires
  1429. *
  1430. NLHS1 = 'DIME' GLOLHS ;
  1431. DLHS1 = 'INDEX' GLOLHS ;
  1432. AXX0 = GLOLHS . (DLHS1 . 1) ;
  1433. 'SI' (NLHS1 > 1) ;
  1434. 'REPETER' BLO63 (NLHS1 - 1) ;
  1435. AXX0 = AXX0 'ET' (GLOLHS . (DLHS1 .(&BLO63 + 1))) ;
  1436. 'FIN' BLO63 ;
  1437. 'FINSI' ;
  1438. *
  1439. *- Somme des seconds membres
  1440. *
  1441. NRHS1 = 'DIME' GLORHS ;
  1442. DRHS1 = 'INDEX' GLORHS ;
  1443. BXX0 = GLORHS . (DRHS1 . 1) ;
  1444. 'SI' (NRHS1 > 1) ;
  1445. 'REPETER' BLO64 (NRHS1 - 1) ;
  1446. BXX0 = BXX0 + (GLORHS . (DRHS1 . (&BLO64 + 1))) ;
  1447. 'FIN' BLO64 ;
  1448. 'FINSI' ;
  1449. *
  1450. *- Ajout des conditions aux limites
  1451. *- Cas standard et combustion, recombineurs et/ou puissance residuelle
  1452. *
  1453. 'SI' ('EXISTE' BOUND2 'MATRIX') ;
  1454. AXX0 = AXX0 'ET' (BOUND2 . 'MATRIX');
  1455. 'FINSI' ;
  1456. 'SI' ('EXISTE' BOUND2 'RHS') ;
  1457. BXX0 = BXX0 + (BOUND2 . 'RHS') ;
  1458. 'FINSI' ;
  1459. 'SI' ('EXISTE' TSD 'BURN' ) ;
  1460. 'SI' ('EXISTE' BOUND3 'RHS') ;
  1461. BXX0 = BXX0 + (BOUND3 . 'RHS') ;
  1462. 'FINSI' ;
  1463. 'FINSI' ;
  1464. 'SI' ('EXISTE' TSD 'RECOMB' ) ;
  1465. 'SI' ('EXISTE' BOUND4 'RHS') ;
  1466. BXX0 = BXX0 + (BOUND4 . 'RHS') ;
  1467. 'FINSI' ;
  1468. 'FINSI' ;
  1469. 'SI' ('EXISTE' TSD 'PRESI' ) ;
  1470. 'SI' ('EXISTE' BOUND5 'RHS') ;
  1471. BXX0 = BXX0 + (BOUND5 . 'RHS') ;
  1472. 'FINSI' ;
  1473. 'FINSI' ;
  1474. 'SI' ('EXISTE' BOUND6 'RHS') ;
  1475. BXX0 = BXX0 + (BOUND6 . 'RHS') ;
  1476. 'FINSI' ;
  1477. *
  1478. *- Ajout des seconds membres dûs à la linéarisation
  1479. *
  1480. BXX0 = BXX0 + (SET . 'UPLIN' . 'RHS') ;
  1481. *
  1482. XX1 = 'RESO' AXX0 BXX0 ;
  1483. CCC1 = (AXX0 * XX1) - BXX0 ;
  1484. val1 = 'MAXI' CCC1 'ABS' ;
  1485. val2 = 'MAXI' BXX0 'ABS' ;
  1486. mess 'val1 val2' val1 val2;
  1487. 'SI' ((val1/val2) > 1.D-13 ) ;
  1488. 'ERRE' 'Probleme dans RESO pour une matrice non-symétrique ' ;
  1489. 'FINSI' ;
  1490. 'FIN' ;
  1491. 'FIN' BLO60 ;
  1492.  
  1493. *
  1494. 'FIN' BLO50 ;
  1495. 'FINPROC' ;
  1496. *$$$$ TO_FIELD
  1497. 'DEBPROC' TO_FIELD INPUT*'TABLE' ;
  1498. SET = 'TABLE' 'SET' ;
  1499. SET . 'ERROR' = 0 ;
  1500. *
  1501. SET . 'COMPONENT' = INPUT . 'COMPONENT' ;
  1502. NCOMP1 = 'DIME' (INPUT . 'COMPONENT') ;
  1503. *
  1504. LJUNC = 'EXIS' INPUT 'JUNCTION' ;
  1505. 'SI' LJUNC ;
  1506. NBJUNC = 'DIME' (INPUT . 'JUNCTION' . 'LOCATION') ;
  1507. INDJ1 = 'INDE' (INPUT . 'JUNCTION' . 'LOCATION') ;
  1508. 'FINSI' ;
  1509. *
  1510. NBCELL = 'DIME' (INPUT . 'CELL' . 'LOCATION') ;
  1511. INDC1 = 'INDE' (INPUT . 'CELL' . 'LOCATION') ;
  1512. *
  1513. GEOINF = 'TABLE' 'GEOINF' ;
  1514. GEOINF . 'NBCELL' = NBCELL ;
  1515. 'SI' LJUNC ;
  1516. *
  1517. *---------- spg des jonctions et connectivités jonction/compartiments
  1518. *---------- ou connectivités jonction/outdoor
  1519. NBJ = 0 ;
  1520. NBJO = 0 ;
  1521. 'REPE' BLO11 NBJUNC ;
  1522. II11 = INDJ1 . &BLO11 ;
  1523. FROM1 = INPUT . 'JUNCTION' . 'FROM' . II11 ;
  1524. TO1 = INPUT . 'JUNCTION' . 'TO' . II11 ;
  1525. 'SI' ('EGA' (INPUT . 'JUNCTION' . 'TYPETO' . II11) 'CELL') ;
  1526. NBJ = NBJ + 1 ;
  1527. 'SI' ('EGA' NBJ 1) ;
  1528. THEJUN = 'MANU' 'POI1' (INPUT . 'JUNCTION' . 'LOCATION' . II11);
  1529. JUCE1 = 'MANU' 'SEG3' (INPUT . 'CELL' . 'LOCATION' . FROM1)
  1530. (INPUT . 'JUNCTION' . 'LOCATION' . II11)
  1531. (INPUT . 'CELL' . 'LOCATION' . TO1) ;
  1532. 'SINO' ;
  1533. THEJUN = THEJUN 'ET' (INPUT . 'JUNCTION' . 'LOCATION' . II11) ;
  1534. JUCE1 = JUCE1 'ET' ('MANU' 'SEG3'
  1535. (INPUT . 'CELL' . 'LOCATION' . FROM1)
  1536. (INPUT . 'JUNCTION' . 'LOCATION' . II11)
  1537. (INPUT . 'CELL' . 'LOCATION' . TO1) ) ;
  1538. 'FINSI' ;
  1539. 'SINO' ;
  1540. NBJO = NBJO + 1 ;
  1541. 'SI' ('EGA' NBJO 1) ;
  1542. THEOUT = 'MANU' 'POI1' (INPUT . 'JUNCTION' . 'LOCATION' . II11);
  1543. JUCE2 = 'MANU' 'SEG3' (INPUT . 'CELL' . 'LOCATION' . FROM1)
  1544. (INPUT . 'JUNCTION' . 'LOCATION' . II11)
  1545. (INPUT . 'OUTD' . 'LOCATION' . TO1) ;
  1546. 'SINO' ;
  1547. THEOUT = THEOUT 'ET' (INPUT . 'JUNCTION' . 'LOCATION' . II11) ;
  1548. JUCE2 = JUCE2 'ET' ('MANU' 'SEG3'
  1549. (INPUT . 'CELL' . 'LOCATION' . FROM1)
  1550. (INPUT . 'JUNCTION' . 'LOCATION' . II11)
  1551. (INPUT . 'OUTD' . 'LOCATION' . TO1) ) ;
  1552. 'FINSI' ;
  1553. 'FINSI' ;
  1554. 'FIN' BLO11 ;
  1555. 'SI' ('NEG' NBJ 0) ;
  1556. GEOINF . 'NBJUNC' = NBJ ;
  1557. GEOINF . 'JUNCTION' = THEJUN ;
  1558. GEOINF . 'JUNCEL' = JUCE1 ;
  1559. 'FINSI' ;
  1560. 'SI' ('NEG' NBJO 0) ;
  1561. GEOINF . 'NBJOUT' = NBJO ;
  1562. GEOINF . 'JUNCTOUT' = THEOUT ;
  1563. GEOINF . 'JUNOUT' = JUCE2 ;
  1564. 'FINSI' ;
  1565. 'FINSI' ;
  1566. *
  1567. *------------------------------- support géométrique des compartiments
  1568. II10 = INDC1 . 1 ;
  1569. THECEL = 'MANU' 'POI1' (INPUT . 'CELL' . 'LOCATION' . II10) ;
  1570. 'SI' (NBCELL '>' 1) ;
  1571. 'REPE' BLO10 (NBCELL - 1) ;
  1572. I10 = &BLO10 + 1 ;
  1573. II10 = INDC1 . I10 ;
  1574. PT10 = INPUT . 'CELL' . 'LOCATION' . II10 ;
  1575. THECEL = THECEL 'ET' PT10 ;
  1576. 'FIN' BLO10 ;
  1577. 'FINSI' ;
  1578. GEOINF . 'CELL' = THECEL ;
  1579. *
  1580. *---------- informations géométriques associées aux jonctions liquides ---
  1581. 'SI' ('EXIS' INPUT 'JULIQ') ;
  1582. NBJUL1 = 'DIME' (INPUT . 'JULIQ' . 'LOCATION') ;
  1583. 'SINON' ;
  1584. NBJUL1 = 0 ;
  1585. 'FINSI' ;
  1586. 'SI' (NBJUL1 'NEG' 0) ;
  1587. INDJL1 = 'INDE' (INPUT . 'JULIQ' . 'LOCATION') ;
  1588. GEOINF . 'NBJUL' = NBJUL1 ;
  1589. II10 = INDJL1 . 1 ;
  1590. FROM10 = INPUT . 'JULIQ' . 'FROM' . II10 ;
  1591. TO10 = INPUT . 'JULIQ' . 'TO' . II10 ;
  1592. PTF1 = INPUT . 'CELL' . 'LOCATION' . FROM10 ;
  1593. PTJL1 = INPUT . 'JULIQ' . 'LOCATION' . II10 ;
  1594. PTT1 = INPUT . 'CELL' . 'LOCATION' . TO10 ;
  1595. THELIQ = 'MANU' 'POI1' PTJL1 ;
  1596. JULCE1 = 'MANU' 'SEG3' PTF1 PTJL1 PTT1 ;
  1597. 'SI' (NBJUL1 '>' 1) ;
  1598. 'REPE' BL10 (NBJUL1 - 1) ;
  1599. I10 = &BL10 + 1 ;
  1600. II10 = INDJL1 . I10 ;
  1601. FROM10 = INPUT . 'JULIQ' . 'FROM' . II10 ;
  1602. TO10 = INPUT . 'JULIQ' . 'TO' . II10 ;
  1603. PTF1 = INPUT . 'CELL' . 'LOCATION' . FROM10 ;
  1604. PTJL1 = INPUT . 'JULIQ' . 'LOCATION' . II10 ;
  1605. PTT1 = INPUT . 'CELL' . 'LOCATION' . TO10 ;
  1606. THELIQ = THELIQ 'ET' PTJL1 ;
  1607. JULCE1 = JULCE1 'ET' ('MANU' 'SEG3' PTF1 PTJL1 PTT1) ;
  1608. 'FIN' BL10 ;
  1609. 'FINSI' ;
  1610. GEOINF . 'JULIQ' = THELIQ ;
  1611. GEOINF . 'JULCEL' = JULCE1 ;
  1612. 'FINSI' ;
  1613. *
  1614. *---- informations géométriques liées aux éventuels puisards externes
  1615. NBSUMP = 'DIME' (INPUT . 'SUMP' . 'LOCATION') ;
  1616. GEOINF . 'NBSUMP' = NBSUMP ;
  1617. 'SI' (NBSUMP 'NEG' 0) ;
  1618. INDS1 = 'INDE' (INPUT . 'SUMP' . 'LOCATION') ;
  1619. II300 = INDS1 . 1 ;
  1620. PTS1 = INPUT . 'SUMP' . 'LOCATION' . II300 ;
  1621. THESUM = 'MANU' 'POI1' PTS1 ;
  1622. 'SI' (NBSUMP '>' 1) ;
  1623. 'REPE' BLO300 (NBSUMP - 1) ;
  1624. I300 = &BLO300 + 1 ;
  1625. II300 = INDS1 . I300 ;
  1626. PTS1 = INPUT . 'SUMP' . 'LOCATION' . II300 ;
  1627. THESUM = THESUM 'ET' PTS1 ;
  1628. 'FIN' BLO300 ;
  1629. 'FINSI' ;
  1630. GEOINF . 'SUMP' = THESUM ;
  1631. 'FINSI' ;
  1632. *
  1633. *---- informations géométriques associées aux murs pour thermique murs
  1634. 'SI' ('EXIS' INPUT 'WALL') ;
  1635. *
  1636. * Remplissage des indices : 'EXT','NBWALL','CENTRW' et 'WALCEL'
  1637. *
  1638. * PT1000 : point extérieur à l'enceinte
  1639. * NBWALL : nombre de murs
  1640. *
  1641. LEXTE = FAUX ;
  1642. 'SI' ('EXIS' INPUT 'OUTD') ;
  1643. LEXTE = VRAI ;
  1644. INDXT = 'INDE' (INPUT . 'OUTD' . 'TEMP') ;
  1645. NBEXTE = INPUT . 'OUTD' . 'NBOUT' ;
  1646. 'FINSI' ;
  1647. *
  1648. PT1000 = 10000. 10000. ;
  1649. GEOINF . 'EXT' = PT1000 ;
  1650. NBWALL = 'DIME' (INPUT . 'WALL' . 'LOCATION') ;
  1651. INDW1 = 'INDE' (INPUT . 'WALL' . 'LOCATION') ;
  1652. GEOINF . 'NBWALL' = NBWALL ;
  1653. *
  1654. II100 = INDW1 . 1 ;
  1655. PTC1 = INPUT . 'WALL' . 'LOCATION' . II100 ;
  1656. FROM1 = INPUT . 'WALL' . 'FROM' . II100 ;
  1657. TFRO1 = INPUT . 'WALL' . 'TYPEFROM' . II100 ;
  1658. TO1 = INPUT . 'WALL' . 'TO' . II100 ;
  1659. TTO1 = INPUT . 'WALL' . 'TYPETO' . II100 ;
  1660. *
  1661. 'SI' ('EGA' FROM1 0) ;
  1662. PTF1 = PT1000 ;
  1663. 'SINON' ;
  1664. 'SI' ('EGA' TFRO1 'OUTDOOR') ;
  1665. PTF1 = INPUT . 'OUTD' . 'LOCATION' . FROM1 ;
  1666. 'SINON' ;
  1667. PTF1 = INPUT . 'CELL' . 'LOCATION' . FROM1 ;
  1668. 'FINSI' ;
  1669. 'FINSI' ;
  1670. *
  1671. 'SI' ('EGA' TO1 0) ;
  1672. PTT1 = PT1000 ;
  1673. 'SINON' ;
  1674. 'SI' ('EGA' TTO1 'OUTDOOR') ;
  1675. PTT1 = INPUT . 'OUTD' . 'LOCATION' . TO1 ;
  1676. 'SINON' ;
  1677. PTT1 = INPUT . 'CELL' . 'LOCATION' . TO1 ;
  1678. 'FINSI' ;
  1679. 'FINSI' ;
  1680. *
  1681. THEWAL = 'MANU' 'POI1' PTC1 ;
  1682. WALCE1 = 'MANU' 'SEG3' PTF1 PTC1 PTT1 ;
  1683. 'SI' (NBWALL > 1) ;
  1684. 'REPE' BLO100 (NBWALL - 1) ;
  1685. I100 = &BLO100 + 1 ;
  1686. II100 = INDW1 . I100 ;
  1687. PTC1 = INPUT . 'WALL' . 'LOCATION' . II100 ;
  1688. FROM1 = INPUT . 'WALL' . 'FROM' . II100 ;
  1689. TFRO1 = INPUT . 'WALL' . 'TYPEFROM' . II100 ;
  1690. TO1 = INPUT . 'WALL' . 'TO' . II100 ;
  1691. TTO1 = INPUT . 'WALL' . 'TYPETO' . II100 ;
  1692. *
  1693. 'SI' ('EGA' FROM1 0) ;
  1694. PTF1 = PT1000 ;
  1695. 'SINON' ;
  1696. 'SI' ('EGA' TFRO1 'OUTDOOR') ;
  1697. PTF1 = INPUT . 'OUTD' . 'LOCATION' . FROM1 ;
  1698. 'SINON' ;
  1699. PTF1 = INPUT . 'CELL' . 'LOCATION' . FROM1 ;
  1700. 'FINSI' ;
  1701. 'FINSI' ;
  1702. *
  1703. 'SI' ('EGA' TO1 0) ;
  1704. PTT1 = PT1000 ;
  1705. 'SINON' ;
  1706. 'SI' ('EGA' TTO1 'OUTDOOR') ;
  1707. PTT1 = INPUT . 'OUTD' . 'LOCATION' . TO1 ;
  1708. 'SINON' ;
  1709. PTT1 = INPUT . 'CELL' . 'LOCATION' . TO1 ;
  1710. 'FINSI' ;
  1711. 'FINSI' ;
  1712. *
  1713. THEWAL = THEWAL 'ET' PTC1 ;
  1714. WALCE1 = WALCE1 'ET' ('MANU' 'SEG3' PTF1 PTC1 PTT1) ;
  1715. 'FIN' BLO100 ;
  1716. 'FINSI' ;
  1717. GEOINF . 'CENTRW' = THEWAL ;
  1718. GEOINF . 'WALCEL' = WALCE1 ;
  1719. *
  1720. * remplissage des indices 'WALL','INWALL', 'LAYERW' et 'WALLAY'
  1721. *
  1722. WALLIN = TABLE ;
  1723. FLAGC = 0 ;
  1724. FLAGC1= 0 ;
  1725. FLAGC2= 0 ;
  1726. FLAGC3= 0 ;
  1727. FLAGS = 0 ;
  1728. FLAGO = 0 ;
  1729. FLAGE = 0 ;
  1730. 'REPE' BLO110 NBWALL ;
  1731. II110 = INDW1 . &BLO110 ;
  1732. * récupération point centre du mur
  1733. PTC1 = INPUT . 'WALL' . 'LOCATION' . II110 ;
  1734. * point du compartiment amont à identifier parmi 0, OUTDOOR ou CELL
  1735. FROM1 = INPUT . 'WALL' . 'FROM' . II110 ;
  1736. TFRO1 = INPUT . 'WALL' . 'TYPEFROM' . II110 ;
  1737. 'SI' ('EGA' FROM1 0) ;
  1738. PTF1 = GEOINF . 'EXT' ;
  1739. 'SINON' ;
  1740. 'SI' ('EGA' TFRO1 'OUTDOOR') ;
  1741. PTF1 = INPUT . 'OUTD' . 'LOCATION' . FROM1 ;
  1742. 'SINON' ;
  1743. PTF1 = INPUT . 'CELL' . 'LOCATION' . FROM1 ;
  1744. 'FINSI' ;
  1745. 'FINSI' ;
  1746. * calcul de la pente
  1747. XC1 YC1 = 'COOR' PTC1 ;
  1748. XF1 YF1 = 'COOR' PTF1 ;
  1749. LW1 = ( ((XC1-XF1)*(XC1-XF1)) + ((YC1-YF1)*(YC1-YF1)) ) ** 0.5 ;
  1750. 'SI' ('EGA' LW1 0.D0) ;
  1751. COS1 = 1.D0 ;
  1752. SIN1 = 0.D0 ;
  1753. 'SINO' ;
  1754. COS1 = (XC1 - XF1) / LW1 ;
  1755. SIN1 = (YC1 - YF1) / LW1 ;
  1756. 'FINSI' ;
  1757. * récupération de l'épaisseur totale du mur
  1758. XEW1 = 0. ;
  1759. NLAY1 = INPUT . 'WALL' . 'NLAYER' . II110 ;
  1760. INDWM1 = 'INDE' (INPUT . 'WALL' . 'MATERIAL' . II110) ;
  1761. 'REPE' BLO111 NLAY1 ;
  1762. II111 = INDWM1 . &BLO111 ;
  1763. XEW1 = XEW1 + (INPUT . 'WALL' . 'THICK' . II110 . II111) ;
  1764. 'FIN' BLO111 ;
  1765. * création du premier point du mur
  1766. XW1 = XC1 - ((XEW1 / 2.) * COS1) ;
  1767. YW1 = YC1 - ((XEW1 / 2.) * SIN1) ;
  1768. PTW1 = XW1 YW1 ;
  1769. LINE1 = PTW1 ;
  1770. * création des autres points du mur
  1771. 'REPE' BLO112 NLAY1 ;
  1772. II112 = INDWM1 . &BLO112 ;
  1773. * nombre de noeuds et épaisseur de la couche
  1774. NBNO1 = INPUT . 'WALL' . 'NODES' . II110 . II112 ;
  1775. EPAI1 = INPUT . 'WALL' . 'THICK' . II110 . II112 ;
  1776. EPAI2 = EPAI1 / (NBNO1 + 1) ;
  1777. 'REPE' BLO113 (NBNO1 + 1) ;
  1778. XW2 = XW1 + (EPAI2 * COS1) ;
  1779. YW2 = YW1 + (EPAI2 * SIN1) ;
  1780. PTW2 = XW2 YW2 ;
  1781. LINE1 = LINE1 'ET' PTW2 ;
  1782. XW1 = XW2 ;
  1783. YW1 = YW2 ;
  1784. 'FIN' BLO113 ;
  1785. 'FIN' BLO112 ;
  1786. WALLIN . PTC1 = LINE1 ;
  1787. 'SI' (&BLO110 'EGA' 1) ;
  1788. LINE2 = LINE1 ;
  1789. WALLA1 = 'MANU' 'SEG3' PTW1 PTC1 PTW2 ;
  1790. 'SINON' ;
  1791. LINE2 = LINE2 'ET' LINE1 ;
  1792. WALLA1 = WALLA1 'ET' ('MANU' 'SEG3' PTW1 PTC1 PTW2) ;
  1793. 'FINSI' ;
  1794. *** Differenciation des faces en contact avec un compartiment
  1795. *** ou avec un puisard
  1796. LFROMO = 'EGA' (INPUT . 'WALL' . 'TYPEFROM' . II110) 'OUTDOOR' ;
  1797. LTOOUT = 'EGA' (INPUT . 'WALL' . 'TYPETO' . II110) 'OUTDOOR' ;
  1798. LFROMS = 'EGA' (INPUT . 'WALL' . 'TYPEFROM' . II110) 'SUMP' ;
  1799. LTOS = 'EGA' (INPUT . 'WALL' . 'TYPETO' . II110) 'SUMP' ;
  1800. FROM1 = INPUT . 'WALL' . 'FROM' . II110 ;
  1801. TO1 = INPUT . 'WALL' . 'TO' . II110 ;
  1802. * A) AMONT = SUMP
  1803. 'SI' LFROMS ;
  1804. 'SI' ('EGA' FLAGS 0) ;
  1805. LAYS1 = 'MANU' 'POI1' PTW1 ;
  1806. FLAGS = 1 ;
  1807. 'SINON' ;
  1808. LAYS1 = LAYS1 'ET' ('MANU' 'POI1' PTW1) ;
  1809. 'FINSI' ;
  1810. * A1) AMONT = SUMP et AVAL = SUMP
  1811. 'SI' LTOS ;
  1812. LAYS1 = LAYS1 'ET' ('MANU' 'POI1' PTW2) ;
  1813. 'SINON' ;
  1814. 'SI' LTOOUT ;
  1815. 'SI' ('EGA' TO1 0);
  1816. * A2) AMONT = SUMP et AVAL = 0
  1817. 'SI' ('EGA' FLAGE 0) ;
  1818. LAYE1 = 'MANU' 'SEG2' PTW2 (GEOINF.'EXT') ;
  1819. FLAGE = 1 ;
  1820. 'SINON' ;
  1821. LAYE1 = LAYE1 'ET' ('MANU' 'SEG2' PTW2 (GEOINF.'EXT'));
  1822. 'FINSI' ;
  1823. 'SINON' ;
  1824. * A3) AMONT = SUMP et AVAL = OUTDOOR
  1825. 'SI' ('EGA' FLAGE 0) ;
  1826. LAYE1 = 'MANU' 'SEG2' PTW2 (INPUT.'OUTD'.'LOCATION'. TO1);
  1827. FLAGE = 1 ;
  1828. 'SINON' ;
  1829. LAYE1 = LAYE1 'ET' ('MANU' 'SEG2' PTW2 (INPUT.'OUTD'.'LOCATION'.TO1));
  1830. 'FINSI' ;
  1831. 'FINSI' ;
  1832. 'SI' ('EGA' FLAGO 0) ;
  1833. LAYO1 = 'MANU' 'POI1' PTW2 ;
  1834. FLAGO = 1 ;
  1835. 'SINON' ;
  1836. LAYO1 = LAYO1 'ET' ('MANU' 'POI1' PTW2) ;
  1837. 'FINSI' ;
  1838. 'SINON' ;
  1839. * A4) AMONT = SUMP et AVAL = CELL
  1840. 'SI' ('EXIS' INPUT.'PHYSICAL' 'CONDENSE') ;
  1841. * Identification du modele de condensation pour la face CELL
  1842. KOND1 = INPUT . 'WALL' . 'COND2' . II110 ;
  1843. 'SI' ('EGA' KOND1 'CHILTON');
  1844. 'SI' ('EGA' FLAGC1 0) ;
  1845. LAYC11 = 'MANU' 'POI1' PTW2 ;
  1846. FLAGC1 = 1 ;
  1847. 'SINON' ;
  1848. LAYC11 = LAYC11 'ET' ('MANU' 'POI1' PTW2) ;
  1849. 'FINSI' ;
  1850. 'FINSI' ;
  1851. 'SI' ('EGA' KOND1 'TAGAMI');
  1852. 'SI' ('EGA' FLAGC2 0) ;
  1853. LAYC12 = 'MANU' 'POI1' PTW2 ;
  1854. FLAGC2 = 1 ;
  1855. 'SINON' ;
  1856. LAYC12 = LAYC12 'ET' ('MANU' 'POI1' PTW2) ;
  1857. 'FINSI' ;
  1858. 'FINSI' ;
  1859. 'SI' ('EGA' KOND1 'UCHIDA');
  1860. 'SI' ('EGA' FLAGC3 0) ;
  1861. LAYC13 = 'MANU' 'POI1' PTW2 ;
  1862. FLAGC3 = 1 ;
  1863. 'SINON' ;
  1864. LAYC13 = LAYC13 'ET' ('MANU' 'POI1' PTW2) ;
  1865. 'FINSI' ;
  1866. 'FINSI' ;
  1867. 'SINON' ;
  1868. 'SI' ('EGA' FLAGC 0) ;
  1869. LAYC1 = 'MANU' 'POI1' PTW2 ;
  1870. FLAGC = 1 ;
  1871. 'SINON' ;
  1872. LAYC1 = LAYC1 'ET' ('MANU' 'POI1' PTW2) ;
  1873. 'FINSI' ;
  1874. 'FINSI' ;
  1875. 'FINSI' ;
  1876. 'FINSI' ;
  1877. 'SINON' ;
  1878. * B) AMONT = 0 ou OUTDOOR
  1879. 'SI' LFROMO ;
  1880. 'SI' ('EGA' (INPUT . 'WALL' . 'FROM'. II110) 0);
  1881. 'SI' ('EGA' FLAGE 0) ;
  1882. LAYE1 = 'MANU' 'SEG2' PTW1 (GEOINF.'EXT') ;
  1883. FLAGE = 1 ;
  1884. 'SINON' ;
  1885. LAYE1 = LAYE1 'ET' ('MANU' 'SEG2' PTW1 (GEOINF.'EXT'));
  1886. 'FINSI' ;
  1887. 'SINON' ;
  1888. 'SI' ('EGA' FLAGE 0) ;
  1889. LAYE1 = 'MANU' 'SEG2' PTW1 (INPUT.'OUTD'.'LOCATION'.FROM1);
  1890. FLAGE = 1 ;
  1891. 'SINON' ;
  1892. LAYE1 = LAYE1 'ET' ('MANU' 'SEG2' PTW1 (INPUT.'OUTD'.'LOCATION'.FROM1));
  1893. 'FINSI' ;
  1894. 'FINSI' ;
  1895. 'SI' ('EGA' FLAGO 0) ;
  1896. LAYO1 = 'MANU' 'POI1' PTW1 ;
  1897. FLAGO = 1 ;
  1898. 'SINON' ;
  1899. LAYO1 = LAYO1 'ET' ('MANU' 'POI1' PTW1) ;
  1900. 'FINSI' ;
  1901. * B1) AMONT = 0 ou OUTDOOR et AVAL = SUMP
  1902. 'SI' LTOS ;
  1903. 'SI' ('EGA' FLAGS 0) ;
  1904. LAYS1 = 'MANU' 'POI1' PTW2 ;
  1905. FLAGS = 1 ;
  1906. 'SINON' ;
  1907. LAYS1 = LAYS1 'ET' ('MANU' 'POI1' PTW2) ;
  1908. 'FINSI' ;
  1909. 'SINON' ;
  1910. * B2) AMONT = 0 ou OUTDOOR et AVAL = 0 ou OUTDOOR
  1911. 'SI' LTOOUT ;
  1912. 'MESS' 'Un mur ne peut etre defini entre 2 exterieurs !';
  1913. 'ERRE' 5;
  1914. 'SINON' ;
  1915. * B3) AMONT = 0 ou OUTDOOR et AVAL = CELL
  1916. 'SI' ('EXIS' INPUT.'PHYSICAL' 'CONDENSE') ;
  1917. * Identification du modele de condensation pour la face CELL
  1918. 'SI' ('EGA' KOND1 'CHILTON');
  1919. 'SI' ('EGA' FLAGC1 0) ;
  1920. LAYC11 = 'MANU' 'POI1' PTW2 ;
  1921. FLAGC1 = 1 ;
  1922. 'SINON' ;
  1923. LAYC11 = LAYC11 'ET' ('MANU' 'POI1' PTW2) ;
  1924. 'FINSI' ;
  1925. 'FINSI' ;
  1926. 'SI' ('EGA' KOND1 'TAGAMI');
  1927. 'SI' ('EGA' FLAGC2 0) ;
  1928. LAYC12 = 'MANU' 'POI1' PTW2 ;
  1929. FLAGC2 = 1 ;
  1930. 'SINON' ;
  1931. LAYC12 = LAYC12 'ET' ('MANU' 'POI1' PTW2) ;
  1932. 'FINSI' ;
  1933. 'FINSI' ;
  1934. 'SI' ('EGA' KOND1 'UCHIDA');
  1935. 'SI' ('EGA' FLAGC3 0) ;
  1936. LAYC13 = 'MANU' 'POI1' PTW2 ;
  1937. FLAGC3 = 1 ;
  1938. 'SINON' ;
  1939. LAYC13 = LAYC13 'ET' ('MANU' 'POI1' PTW2) ;
  1940. 'FINSI' ;
  1941. 'FINSI' ;
  1942. 'SINON' ;
  1943. 'SI' ('EGA' FLAGC 0) ;
  1944. LAYC1 = 'MANU' 'POI1' PTW2 ;
  1945. FLAGC = 1 ;
  1946. 'SINON' ;
  1947. LAYC1 = LAYC1 'ET' ('MANU' 'POI1' PTW2) ;
  1948. 'FINSI' ;
  1949. 'FINSI' ;
  1950. 'FINSI' ;
  1951. 'FINSI' ;
  1952. 'SINON' ;
  1953. * C) AMONT = CELL
  1954. 'SI' ('EXIS' INPUT.'PHYSICAL' 'CONDENSE') ;
  1955. * Identification du modele de condensation pour la face CELL
  1956. KOND1 = INPUT . 'WALL' . 'COND1' . II110 ;
  1957. 'SI' ('EGA' KOND1 'CHILTON');
  1958. 'SI' ('EGA' FLAGC1 0) ;
  1959. LAYC11 = 'MANU' 'POI1' PTW1 ;
  1960. FLAGC1 = 1 ;
  1961. 'SINON' ;
  1962. LAYC11 = LAYC11 'ET' ('MANU' 'POI1' PTW1) ;
  1963. 'FINSI' ;
  1964. 'FINSI' ;
  1965. 'SI' ('EGA' KOND1 'TAGAMI');
  1966. 'SI' ('EGA' FLAGC2 0) ;
  1967. LAYC12 = 'MANU' 'POI1' PTW1 ;
  1968. FLAGC2 = 1 ;
  1969. 'SINON' ;
  1970. LAYC12 = LAYC12 'ET' ('MANU' 'POI1' PTW1) ;
  1971. 'FINSI' ;
  1972. 'FINSI' ;
  1973. 'SI' ('EGA' KOND1 'UCHIDA');
  1974. 'SI' ('EGA' FLAGC3 0) ;
  1975. LAYC13 = 'MANU' 'POI1' PTW1 ;
  1976. FLAGC3 = 1 ;
  1977. 'SINON' ;
  1978. LAYC13 = LAYC13 'ET' ('MANU' 'POI1' PTW1) ;
  1979. 'FINSI' ;
  1980. 'FINSI' ;
  1981. 'SINON' ;
  1982. 'SI' ('EGA' FLAGC 0) ;
  1983. LAYC1 = 'MANU' 'POI1' PTW1 ;
  1984. FLAGC = 1 ;
  1985. 'SINON' ;
  1986. LAYC1 = LAYC1 'ET' ('MANU' 'POI1' PTW1) ;
  1987. 'FINSI' ;
  1988. 'FINSI' ;
  1989. **
  1990. * C1) AMONT = CELL et AVAL = SUMP
  1991. 'SI' LTOS ;
  1992. 'SI' ('EGA' FLAGS 0) ;
  1993. LAYS1 = 'MANU' 'POI1' PTW2 ;
  1994. FLAGS = 1 ;
  1995. 'SINON' ;
  1996. LAYS1 = LAYS1 'ET' ('MANU' 'POI1' PTW2) ;
  1997. 'FINSI' ;
  1998. 'SINON' ;
  1999. * C2) AMONT = CELL et AVAL = 0 ou OUTDOOR
  2000. 'SI' LTOOUT ;
  2001. 'SI' ('EGA' (INPUT . 'WALL' . 'TO' . II110) 0);
  2002. 'SI' ('EGA' FLAGE 0) ;
  2003. LAYE1 = 'MANU' 'SEG2' PTW2 (GEOINF.'EXT') ;
  2004. FLAGE = 1 ;
  2005. 'SINON' ;
  2006. LAYE1 = LAYE1 'ET' ('MANU' 'SEG2' PTW2 (GEOINF.'EXT'));
  2007. 'FINSI' ;
  2008. 'SINON' ;
  2009. 'SI' ('EGA' FLAGE 0) ;
  2010. LAYE1 = 'MANU' 'SEG2' PTW2 (INPUT.'OUTD'.'LOCATION'.TO1);
  2011. FLAGE = 1 ;
  2012. 'SINON' ;
  2013. LAYE1 = LAYE1 'ET' ('MANU' 'SEG2' PTW2 (INPUT.'OUTD'.'LOCATION'.TO1));
  2014. 'FINSI' ;
  2015. 'FINSI' ;
  2016. 'SI' ('EGA' FLAGO 0) ;
  2017. LAYO1 = 'MANU' 'POI1' PTW2 ;
  2018. FLAGO = 1 ;
  2019. 'SINON' ;
  2020. LAYO1 = LAYO1 'ET' ('MANU' 'POI1' PTW2) ;
  2021. 'FINSI' ;
  2022. 'SINON' ;
  2023. * C2) AMONT = CELL et AVAL = CELL
  2024. 'SI' ('EXIS' INPUT.'PHYSICAL' 'CONDENSE') ;
  2025. * Identification du modele de condensation pour la face CELL
  2026. KOND1 = INPUT . 'WALL' . 'COND2' . II110 ;
  2027. 'SI' ('EGA' KOND1 'CHILTON');
  2028. 'SI' ('EGA' FLAGC1 0) ;
  2029. LAYC11 = 'MANU' 'POI1' PTW2 ;
  2030. FLAGC1 = 1 ;
  2031. 'SINON' ;
  2032. LAYC11 = LAYC11 'ET' ('MANU' 'POI1' PTW2) ;
  2033. 'FINSI' ;
  2034. 'FINSI' ;
  2035. 'SI' ('EGA' KOND1 'TAGAMI');
  2036. 'SI' ('EGA' FLAGC2 0) ;
  2037. LAYC12 = 'MANU' 'POI1' PTW2 ;
  2038. FLAGC2 = 1 ;
  2039. 'SINON' ;
  2040. LAYC12 = LAYC12 'ET' ('MANU' 'POI1' PTW2) ;
  2041. 'FINSI' ;
  2042. 'FINSI' ;
  2043. 'SI' ('EGA' KOND1 'UCHIDA');
  2044. 'SI' ('EGA' FLAGC3 0) ;
  2045. LAYC13 = 'MANU' 'POI1' PTW2 ;
  2046. FLAGC3 = 1 ;
  2047. 'SINON' ;
  2048. LAYC13 = LAYC13 'ET' ('MANU' 'POI1' PTW2) ;
  2049. 'FINSI' ;
  2050. 'FINSI' ;
  2051. 'SINON' ;
  2052. LAYC1 = LAYC1 'ET' ('MANU' 'POI1' PTW2) ;
  2053. 'FINSI' ;
  2054. 'FINSI' ;
  2055. 'FINSI' ;
  2056. 'FINSI' ;
  2057. 'FINSI' ;
  2058. 'FIN' BLO110 ;
  2059. *
  2060. * On a traité tous les murs et toutes les faces
  2061. * remplissage des indices LOCOUT, LAYERC1, LAYERC2, LAYERC3, LAYERC et LAYEXT
  2062. *
  2063. GEOINF . 'WALL' = LINE2 ;
  2064. GEOINF . 'INWALL' = WALLIN ;
  2065. GEOINF . 'WALLAY' = WALLA1 ;
  2066. 'SI' LEXTE ;
  2067. GEOINF . 'LOCOUT' = INPUT . 'OUTD' . 'LOCATION' ;
  2068. 'FINSI' ;
  2069. 'SI' ('EGA' FLAGC1 1) ;
  2070. GEOINF . 'LAYERC1' = LAYC11 ;
  2071. 'SI' ('EXISTE' GEOINF 'LAYERC') ;
  2072. GEOINF . 'LAYERC' = (GEOINF . 'LAYERC') 'ET' LAYC11 ;
  2073. 'SINON' ;
  2074. GEOINF . 'LAYERC' = LAYC11 ;
  2075. 'FINSI' ;
  2076. 'FINSI' ;
  2077. 'SI' ('EGA' FLAGC2 1) ;
  2078. GEOINF . 'LAYERC2' = LAYC12 ;
  2079. 'SI' ('EXISTE' GEOINF 'LAYERC') ;
  2080. GEOINF . 'LAYERC' = (GEOINF . 'LAYERC') 'ET' LAYC12 ;
  2081. 'SINON' ;
  2082. GEOINF . 'LAYERC' = LAYC12 ;
  2083. 'FINSI' ;
  2084. 'FINSI' ;
  2085. 'SI' ('EGA' FLAGC3 1) ;
  2086. GEOINF . 'LAYERC3' = LAYC13 ;
  2087. 'SI' ('EXISTE' GEOINF 'LAYERC') ;
  2088. GEOINF . 'LAYERC' = (GEOINF . 'LAYERC') 'ET' LAYC13 ;
  2089. 'SINON' ;
  2090. GEOINF . 'LAYERC' = LAYC13 ;
  2091. 'FINSI' ;
  2092. 'FINSI' ;
  2093. 'SI' ('EGA' FLAGC 1) ;
  2094. GEOINF . 'LAYERC' = LAYC1 ;
  2095. 'FINSI' ;
  2096. 'SI' ('EXISTE' GEOINF 'LAYERC') ;
  2097. FLAGC = 1 ;
  2098. 'SI' ('EXISTE' GEOINF 'LAYERT') ;
  2099. GEOINF.'LAYERT' = (GEOINF.'LAYERT') 'ET' (GEOINF.'LAYERC');
  2100. 'SINON' ;
  2101. GEOINF.'LAYERT' = GEOINF.'LAYERC' ;
  2102. 'FINSI' ;
  2103. 'FINSI' ;
  2104. 'SI' ('EGA' FLAGO 1) ;
  2105. GEOINF . 'LAYERO' = LAYO1 ;
  2106. 'SI' ('EXISTE' GEOINF 'LAYERT') ;
  2107. GEOINF . 'LAYERT' = (GEOINF . 'LAYERT') 'ET' LAYO1 ;
  2108. 'SINON' ;
  2109. GEOINF . 'LAYERT' = LAYO1 ;
  2110. 'FINSI' ;
  2111. 'FINSI' ;
  2112. 'SI' ('EGA' FLAGS 1) ;
  2113. GEOINF . 'LAYERS' = LAYS1 ;
  2114. 'SI' ('EXISTE' GEOINF 'LAYERT') ;
  2115. GEOINF . 'LAYERT' = (GEOINF . 'LAYERT') 'ET' LAYS1 ;
  2116. 'SINON' ;
  2117. GEOINF . 'LAYERT' = LAYS1 ;
  2118. 'FINSI' ;
  2119. 'FINSI' ;
  2120. 'SI' ('EGA' FLAGE 1) ;
  2121. GEOINF . 'LAYEXT' = LAYE1 ;
  2122. 'FINSI' ;
  2123. *
  2124. * remplissage de l'indice 'CELLAYW' et 'CELLAYS'
  2125. *
  2126. FLAG1 = 0 ;
  2127. FLAG4 = 0 ;
  2128. 'REPE' BLO300 NBCELL ;
  2129. NPTC1 = (GEOINF . 'CELL') 'POIN' &BLO300 ;
  2130. 'REPE' BLO310 NBWALL ;
  2131. LESEG1 = 'ELEM' (GEOINF . 'WALCEL') 'SEG3' &BLO310 ;
  2132. LSEG1 = 'CHAN' 'POI1' LESEG1 ;
  2133. NPT1 = LSEG1 'POIN' 1 ;
  2134. NPTCW1 = 'NOEU' (LSEG1 'POIN' 2) ;
  2135. FLAG2 = 0 ;
  2136. 'SI' ('EGA' ('NBEL' LSEG1) 2) ;
  2137. FLAG2 = 1 ;
  2138. NPT2 = NPT1 ;
  2139. 'SINO' ;
  2140. NPT2 = LSEG1 'POIN' 3 ;
  2141. 'FINSI' ;
  2142. 'SI' (('EGA' (NOEU NPTC1) (NOEU NPT1)) 'OU'
  2143. ('EGA' (NOEU NPTC1) (NOEU NPT2))) ;
  2144. FLAG3 = 0 ;
  2145. 'REPE' BLO320 NBWALL ;
  2146. *** Differenciation des faces en contact avec un compartiment
  2147. *** ou avec un puisard ou avec l'exterieur
  2148. II320 = INDW1 . &BLO320 ;
  2149. FROM1 = INPUT.'WALL'.'FROM'.II320 ;
  2150. TO1 = INPUT.'WALL'.'TO' .II320 ;
  2151. LFROMO = 'EGA' (INPUT . 'WALL' . 'TYPEFROM' . II320) 'OUTDOOR' ;
  2152. LFROMS = 'EGA' (INPUT . 'WALL' . 'TYPEFROM' . II320) 'SUMP' ;
  2153. LFROMC = 'EGA' (INPUT . 'WALL' . 'TYPEFROM' . II320) 'CELL' ;
  2154. LTOOUT = 'EGA' (INPUT . 'WALL' . 'TYPETO' . II320) 'OUTDOOR' ;
  2155. LTOS = 'EGA' (INPUT . 'WALL' . 'TYPETO' . II320) 'SUMP' ;
  2156. LTOC = 'EGA' (INPUT . 'WALL' . 'TYPETO' . II320) 'CELL' ;
  2157. LESEG2 = 'ELEM' (GEOINF . 'WALLAY') 'SEG3' &BLO320 ;
  2158. LSEG2 = 'CHAN' 'POI1' LESEG2 ;
  2159. NPTCW2 = 'NOEU' (LSEG2 'POIN' 2) ;
  2160. 'SI' ('EGA' NPTCW1 NPTCW2) ;
  2161. FLAG3 = 1 ;
  2162. 'SI' ('EGA' (NOEU NPTC1) (NOEU NPT1)) ;
  2163. CLW1 = 'MANU' 'SEG2' NPTC1 (LSEG2 'POIN' 1) ;
  2164. 'SI' (LFROMC 'ET' ('NON' LFROMO)) ;
  2165. 'SI' ('EGA' FLAG1 0) ;
  2166. CELLAYW = CLW1 ;
  2167. FLAG1 = 1 ;
  2168. 'SINO' ;
  2169. CELLAYW = CELLAYW 'ET' CLW1 ;
  2170. 'FINSI' ;
  2171. 'SI' ('EGA' FLAG2 1) ;
  2172. CLW2 = 'MANU' 'SEG2' NPTC1 (LSEG2 'POIN' 3) ;
  2173. 'SI' (LTOC 'ET' ('NON' LTOOUT)) ;
  2174. CELLAYW = CELLAYW 'ET' CLW2 ;
  2175. 'SINO' ;
  2176. 'SI' LTOS ;
  2177. 'SI' ('EGA' FLAG4 0) ;
  2178. CELLAYS = CLW2 ;
  2179. FLAG4 = 1 ;
  2180. 'SINO' ;
  2181. CELLAYS = CELLAYS 'ET' CLW2 ;
  2182. 'FINSI' ;
  2183. 'FINSI' ;
  2184. 'FINSI' ;
  2185. 'FINSI' ;
  2186. 'SINO' ;
  2187. 'SI' LFROMS ;
  2188. 'SI' ('EGA' FLAG4 0) ;
  2189. CELLAYS = CLW1 ;
  2190. FLAG4 = 1 ;
  2191. 'SINO' ;
  2192. CELLAYS = CELLAYS 'ET' CLW1 ;
  2193. 'FINSI' ;
  2194. 'SI' ('EGA' FLAG2 1) ;
  2195. CLW2 = 'MANU' 'SEG2' NPTC1 (LSEG2 'POIN' 3) ;
  2196. 'SI' LTOS ;
  2197. CELLAYS = CELLAYS 'ET' CLW2 ;
  2198. 'SINO' ;
  2199. 'SI' (LTOC 'ET' ('NON' LTOOUT)) ;
  2200. 'SI' ('EGA' FLAG1 0) ;
  2201. CELLAYW = CLW2 ;
  2202. FLAG1 = 1 ;
  2203. 'SINO' ;
  2204. CELLAYW = CELLAYW 'ET' CLW2 ;
  2205. 'FINSI' ;
  2206. 'FINSI' ;
  2207. 'FINSI' ;
  2208. 'FINSI' ;
  2209. 'FINSI' ;
  2210. 'FINSI' ;
  2211. 'SINO' ;
  2212. CLW1 = 'MANU' 'SEG2' NPTC1 (LSEG2 'POIN' 3) ;
  2213. 'SI' (LTOC 'ET' ('NON' LTOOUT)) ;
  2214. 'SI' ('EGA' FLAG1 0) ;
  2215. CELLAYW = CLW1 ;
  2216. FLAG1 = 1 ;
  2217. 'SINO' ;
  2218. CELLAYW = CELLAYW 'ET' CLW1 ;
  2219. 'FINSI' ;
  2220. 'SINO' ;
  2221. 'SI' LTOS ;
  2222. 'SI' ('EGA' FLAG4 0) ;
  2223. CELLAYS = CLW1 ;
  2224. FLAG4 = 1 ;
  2225. 'SINO' ;
  2226. CELLAYS = CELLAYS 'ET' CLW1 ;
  2227. 'FINSI' ;
  2228. 'FINSI' ;
  2229. 'FINSI' ;
  2230. 'FINSI' ;
  2231. 'QUITTER' BLO320 ;
  2232. 'FINSI' ;
  2233. 'FIN' BLO320 ;
  2234. 'SI' ('EGA' FLAG3 0) ;
  2235. 'MESS' 'TO_FIELD procedure : bad connectivity WALLS/LAYER';
  2236. SET . 'ERROR' = 1 ;
  2237. 'QUITTER' TO_FIELD ;
  2238. 'FINSI' ;
  2239. 'FINSI' ;
  2240. 'FIN' BLO310 ;
  2241. 'FIN' BLO300 ;
  2242. 'SI' ('EGA' FLAG1 1) ;
  2243. GEOINF . 'CELLAYW' = CELLAYW ;
  2244. 'FINSI' ;
  2245. 'SI' ('EGA' FLAG4 1) ;
  2246. GEOINF . 'CELLAYS' = CELLAYS ;
  2247. 'FINSI' ;
  2248. 'FINSI' ;
  2249. *
  2250. * cas de la combustion (remplissage de l'indice CELLCELL)
  2251. *
  2252. * CELLCELL : table donnant pour chaque compartiment la liste
  2253. * des compartiments connectés par une jonction cell-cell
  2254. *
  2255. 'SI' ('EXIS' INPUT 'BURN' ) ;
  2256. TCELLCEL = 'TABLE' ;
  2257. NJCT1 = 'DIME' (INPUT . 'JUNCTION' . 'LOCATION') ;
  2258. 'REPE' BLOJCT NJCT1 ;
  2259. NAM0 = INDJ1 . &BLOJCT ;
  2260. NAM1 = INPUT . 'JUNCTION' . 'FROM' . NAM0 ;
  2261. NAM2 = INPUT . 'JUNCTION' . 'TO' . NAM0 ;
  2262. 'SI' ('EGA' (INPUT . 'JUNCTION' . 'TYPETO' . NAM0) 'CELL') ;
  2263. 'SI' ('NON' ('EXIS' TCELLCEL NAM1 )) ;
  2264. TCELLCEL . NAM1 = 'TABLE' ;
  2265. TCELLCEL . NAM1 . 1 = NAM2 ;
  2266. 'SINON' ;
  2267. NCC = 'DIME' (TCELLCEL . NAM1) ;
  2268. NCC1 = NCC + 1 ;
  2269. TCELLCEL . NAM1 . NCC1 = NAM2 ;
  2270. 'FINSI' ;
  2271. 'SI' ('NON' ('EXIS' TCELLCEL NAM2 )) ;
  2272. TCELLCEL . NAM2 = 'TABLE' ;
  2273. TCELLCEL . NAM2 . 1 = NAM1 ;
  2274. 'SINON' ;
  2275. NCC = 'DIME' (TCELLCEL . NAM2) ;
  2276. NCC1 = NCC + 1 ;
  2277. TCELLCEL . NAM2 . NCC1 = NAM1 ;
  2278. 'FINSI' ;
  2279. 'FINSI' ;
  2280. 'FIN' BLOJCT ;
  2281. GEOINF . 'CELLCELL' = TCELLCEL ;
  2282. 'FINSI' ;
  2283. *
  2284. *
  2285. * cas de l'aspersion
  2286. *
  2287. 'SI' ('EXIS' INPUT 'SPRAY' ) ;
  2288. GEOINF . 'NAMECELL' = INPUT . 'CELL' . 'LOCATION' ;
  2289. 'FINSI' ;
  2290. *
  2291. * cas de la Combustion
  2292. *
  2293. 'SI' ('EXIS' INPUT 'BURN' ) ;
  2294. GEOINF . 'NAMECELL' = INPUT . 'CELL' . 'LOCATION' ;
  2295. 'FINSI' ;
  2296. *
  2297. * cas des recombineurs
  2298. *
  2299. 'SI' ('EXIS' INPUT 'RECOMB' ) ;
  2300. GEOINF . 'NAMECELL' = INPUT . 'CELL' . 'LOCATION' ;
  2301. 'FINSI' ;
  2302. *
  2303. * cas de la Puissance residuelle
  2304. *
  2305. 'SI' ('EXIS' INPUT 'PRESI' ) ;
  2306. GEOINF . 'NAMECELL' = INPUT . 'CELL' . 'LOCATION' ;
  2307. 'FINSI' ;
  2308. *
  2309. SET . 'GEOINF' = GEOINF ;
  2310. *
  2311. *======================================================================
  2312. *
  2313. * Création de la table FIELDS
  2314. *
  2315. *======================================================================
  2316. *
  2317. FIELDS = 'TABLE' 'FIELDS' ;
  2318. FIELDS . 'TIME' = 'TABLE' ;
  2319. FIELDS . 'PT' = 'TABLE' ;
  2320. FIELDS . 'TGAS' = 'TABLE' ;
  2321. FIELDS . 'UGAS' = 'TABLE' ;
  2322. FIELDS . 'HGAS' = 'TABLE' ;
  2323. FIELDS . 'RGAS' = 'TABLE' ;
  2324. 'SI' LJUNC ;
  2325. FIELDS . 'Q' = 'TABLE' ;
  2326. 'SI' ('NEG' NBJ 0) ;
  2327. FIELDS . 'QCEL' = 'TABLE' ;
  2328. 'FINSI' ;
  2329. 'SI' ('NEG' NBJO 0) ;
  2330. FIELDS . 'QOUT' = 'TABLE' ;
  2331. 'FINSI' ;
  2332. 'FINSI' ;
  2333. 'SI' ('EXIS' (INPUT . 'CELL') 'XV') ;
  2334. FIELDS . 'XV' = 'TABLE' ;
  2335. 'FINSI' ;
  2336. 'SI' ('EXIS' (INPUT . 'CELL') 'MLIQ') ;
  2337. FIELDS . 'MLIQ' = 'TABLE' ;
  2338. FIELDS . 'ULIQ' = 'TABLE' ;
  2339. FIELDS . 'HLIQ' = 'TABLE' ;
  2340. FIELDS . 'VLIQ' = 'TABLE' ;
  2341. FIELDS . 'TLIQ' = 'TABLE' ;
  2342. FIELDS . 'QEVA' = 'TABLE' ;
  2343. FIELDS . 'MEVA' = 'TABLE' ;
  2344. FIELDS . 'UEVA' = 'TABLE' ;
  2345. FIELDS . 'QLS' = 'TABLE' ;
  2346. FIELDS . 'MLS' = 'TABLE' ;
  2347. FIELDS . 'ULS' = 'TABLE' ;
  2348. 'FINSI' ;
  2349. *
  2350. * cas de l'aspersion
  2351. *
  2352. 'SI' ('EXIS' INPUT 'SPRAY' ) ;
  2353. FIELDS . 'MCND' = 'TABLE' ;
  2354. FIELDS . 'MEBU' = 'TABLE' ;
  2355. FIELDS . 'MSPR' = 'TABLE' ;
  2356. FIELDS . 'UCND' = 'TABLE' ;
  2357. FIELDS . 'UCNV' = 'TABLE' ;
  2358. FIELDS . 'UEBU' = 'TABLE' ;
  2359. FIELDS . 'USPR' = 'TABLE' ;
  2360. 'FINSI' ;
  2361. *
  2362. * cas de la Combustion
  2363. *
  2364. 'SI' ('EXIS' INPUT 'BURN' ) ;
  2365. FIELDS . 'ECOM' = 'TABLE' ;
  2366. 'FINSI' ;
  2367. *
  2368. * cas des recombineurs
  2369. *
  2370. 'SI' ('EXIS' INPUT 'RECOMB' ) ;
  2371. FIELDS . 'TREC' = 'TABLE' ;
  2372. FIELDS . 'QREC' = 'TABLE' ;
  2373. FIELDS . 'TSRE' = 'TABLE' ;
  2374. FIELDS . 'EREC' = 'TABLE' ;
  2375. 'FINSI' ;
  2376. *
  2377. * cas de la Puissance residuelle
  2378. *
  2379. 'SI' ('EXIS' INPUT 'PRESI' ) ;
  2380. FIELDS . 'Y1' = 'TABLE' ;
  2381. FIELDS . 'Y2' = 'TABLE' ;
  2382. FIELDS . 'Y3' = 'TABLE' ;
  2383. 'FINSI' ;
  2384. *
  2385. *
  2386. FIELDS . 'TIME' . 0 = 'EXTR' (INPUT . 'TIMECALC' . 'LISTCALC') 1 ;
  2387. *
  2388. ***********************************************************************
  2389. * Les champs définis dans les compartiments
  2390. ***********************************************************************
  2391. *
  2392. 'REPE' BLO20 NBCELL ;
  2393. II20 = INDC1 . &BLO20 ;
  2394. PTI = INPUT . 'CELL' . 'LOCATION' . II20 ;
  2395. PRESS1 = INPUT . 'CELL' . 'PT' . II20 ;
  2396. TGAS1 = INPUT . 'CELL' . 'TGAS' . II20 ;
  2397. UGAS1 = INPUT . 'CELL' . 'UGAS' . II20 ;
  2398. HGAS1 = INPUT . 'CELL' . 'HGAS' . II20 ;
  2399. *
  2400. *---------- masse volumique des constituants et masse volumique totale
  2401. RGAS1 = 0. ;
  2402. VOLU1 = INPUT . 'CELL' . 'VOL' . II20 ;
  2403. 'REPE' BLO21 NCOMP1 ;
  2404. IND1 = INPUT . 'COMPONENT' . &BLO21 ;
  2405. NAMM1 = 'CHAINE' 'M' IND1 ;
  2406. MASS1 = INPUT . 'CELL' . NAMM1 . II20 ;
  2407. NAMRC1 = 'CHAINE' 'R_' IND1 ;
  2408. NAMCV1 = 'CHAINE' 'CV' IND1 ;
  2409. NAMR1 = 'CHAINE' 'R' IND1 ;
  2410. RCST1 = INPUT . 'PHYSICAL' . NAMRC1 ;
  2411. RHO1 = MASS1 / VOLU1 ;
  2412. RGAS1 = RGAS1 + RHO1 ;
  2413. 'SI' ('EGA' IND1 'H2O') ;
  2414. PVAP1 = VARI PVAP RHO1 TGAS1 ;
  2415. ZVAP1 = VARI ZVAP RHO1 TGAS1 ;
  2416. ROR1 = RHO1 * RCST1 * ZVAP1 ;
  2417. ROCV1 = 0. ;
  2418. 'SINON' ;
  2419. ROR1 = RHO1 * RCST1 ;
  2420. CV1 = INPUT . 'PHYSICAL' . NAMCV1 ;
  2421. ROCV1 = RHO1 * CV1 ;
  2422. 'FINSI' ;
  2423. 'SI' (&BLO20 'EGA' 1) ;
  2424. FIELDS . NAMR1 = 'TABLE' ;
  2425. FIELDS . NAMR1 . 0 =
  2426. 'MANU' 'CHPO' PTI 1 NAMR1 RHO1 'NATURE' 'DISCRET' ;
  2427. 'SINON' ;
  2428. FIELDS . NAMR1 . 0 = (FIELDS . NAMR1 . 0) 'ET'
  2429. ('MANU' 'CHPO' PTI 1 NAMR1 RHO1 'NATURE' 'DISCRET') ;
  2430. 'FINSI' ;
  2431. 'FIN' BLO21 ;
  2432. *
  2433. *---------------------------------------------------- le titre vapeur
  2434. 'SI' ('EXIS' (INPUT . 'CELL') 'XV') ;
  2435. XV1 = INPUT . 'CELL' . 'XV' . II20 ;
  2436. 'SI' (&BLO20 'EGA' 1) ;
  2437. FIELDS . 'XV' . 0 =
  2438. 'MANU' 'CHPO' PTI 1 'XV' XV1 'NATURE' 'DISCRET' ;
  2439. 'SINON' ;
  2440. FIELDS . 'XV' . 0 = (FIELDS . 'XV' . 0) 'ET'
  2441. ('MANU' 'CHPO' PTI 1 'XV' XV1 'NATURE' 'DISCRET') ;
  2442. 'FINSI' ;
  2443. 'FINSI' ;
  2444. *
  2445. *----------------------------------- quantités associées aux puisards
  2446. 'SI' ('EXIS' (INPUT . 'CELL') 'MLIQ') ;
  2447. MLIQ1 = INPUT . 'CELL' . 'MLIQ' . II20 ;
  2448. ULIQ1 = INPUT . 'CELL' . 'ULIQ' . II20 ;
  2449. HLIQ1 = INPUT . 'CELL' . 'HLIQ' . II20 ;
  2450. VLIQ1 = INPUT . 'CELL' . 'VLIQ' . II20 ;
  2451. TLIQ1 = INPUT . 'CELL' . 'TLIQ' . II20 ;
  2452. 'SI' (&BLO20 'EGA' 1) ;
  2453. FIELDS . 'MLIQ' . 0 = 'MANU' 'CHPO' PTI 1 'MLIQ' MLIQ1
  2454. 'NATURE' 'DISCRET' ;
  2455. FIELDS . 'ULIQ' . 0 = 'MANU' 'CHPO' PTI 1 'ULIQ' ULIQ1
  2456. 'NATURE' 'DISCRET' ;
  2457. FIELDS . 'HLIQ' . 0 = 'MANU' 'CHPO' PTI 1 'HLIQ' HLIQ1
  2458. 'NATURE' 'DISCRET' ;
  2459. FIELDS . 'VLIQ' . 0 = 'MANU' 'CHPO' PTI 1 'VLIQ' VLIQ1
  2460. 'NATURE' 'DISCRET' ;
  2461. FIELDS . 'TLIQ' . 0 = 'MANU' 'CHPO' PTI 1 'TLIQ' TLIQ1
  2462. 'NATURE' 'DISCRET' ;
  2463. FIELDS . 'QEVA' . 0 = 'MANU' 'CHPO' PTI 1 'QEVA' 0.D0
  2464. 'NATURE' 'DISCRET' ;
  2465. FIELDS . 'MEVA' . 0 = 'MANU' 'CHPO' PTI 1 'MEVA' 0.D0
  2466. 'NATURE' 'DISCRET' ;
  2467. FIELDS . 'UEVA' . 0 = 'MANU' 'CHPO' PTI 1 'UEVA' 0.D0
  2468. 'NATURE' 'DISCRET' ;
  2469. FIELDS . 'QLS' . 0 = 'MANU' 'CHPO' PTI 1 'QLS' 0.D0
  2470. 'NATURE' 'DISCRET' ;
  2471. FIELDS . 'MLS' . 0 = 'MANU' 'CHPO' PTI 1 'MLS' 0.D0
  2472. 'NATURE' 'DISCRET' ;
  2473. FIELDS . 'ULS' . 0 = 'MANU' 'CHPO' PTI 1 'ULS' 0.D0
  2474. 'NATURE' 'DISCRET' ;
  2475. *
  2476. * cas de l'aspersion
  2477. 'SI' ('EXIS' INPUT 'SPRAY' ) ;
  2478. FIELDS . 'MCND' . 0 = 'MANU' 'CHPO' PTI 1 'MCND' 0.D0
  2479. 'NATURE' 'DISCRET' ;
  2480. FIELDS . 'MEBU' . 0 = 'MANU' 'CHPO' PTI 1 'MEBU' 0.D0
  2481. 'NATURE' 'DISCRET' ;
  2482. FIELDS . 'MSPR' . 0 = 'MANU' 'CHPO' PTI 1 'MSPR' 0.D0
  2483. 'NATURE' 'DISCRET' ;
  2484. FIELDS . 'UCND' . 0 = 'MANU' 'CHPO' PTI 1 'UCND' 0.D0
  2485. 'NATURE' 'DISCRET' ;
  2486. FIELDS . 'UCNV' . 0 = 'MANU' 'CHPO' PTI 1 'UCNV' 0.D0
  2487. 'NATURE' 'DISCRET' ;
  2488. FIELDS . 'UEBU' . 0 = 'MANU' 'CHPO' PTI 1 'UEBU' 0.D0
  2489. 'NATURE' 'DISCRET' ;
  2490. FIELDS . 'USPR' . 0 = 'MANU' 'CHPO' PTI 1 'USPR' 0.D0
  2491. 'NATURE' 'DISCRET' ;
  2492. 'FINSI' ;
  2493. *
  2494. * cas de la Combustion
  2495. 'SI' ('EXIS' INPUT 'BURN' ) ;
  2496. FIELDS . 'ECOM' . 0 = 'MANU' 'CHPO' PTI 1 'ECOM' 0.D0
  2497. 'NATURE' 'DISCRET' ;
  2498. 'FINSI' ;
  2499. *
  2500. * cas des Recombineurs
  2501. 'SI' ('EXIS' INPUT 'RECOMB' ) ;
  2502. FIELDS . 'TREC' . 0 = 'MANU' 'CHPO' PTI 1 'TREC' TGAS1
  2503. 'NATURE' 'DISCRET' ;
  2504. FIELDS . 'QREC' . 0 = 'MANU' 'CHPO' PTI 1 'QREC' 0.
  2505. 'NATURE' 'DISCRET' ;
  2506. FIELDS . 'TSRE' . 0 = 'MANU' 'CHPO' PTI 1 'TSRE' TGAS1
  2507. 'NATURE' 'DISCRET' ;
  2508. FIELDS . 'EREC' . 0 = 'MANU' 'CHPO' PTI 1 'EREC' 0.
  2509. 'NATURE' 'DISCRET' ;
  2510. 'FINSI' ;
  2511. *
  2512. * cas de la puissance residuelle
  2513. 'SI' ('EXIS' INPUT 'PRESI' ) ;
  2514. FIELDS . 'Y1' . 0 = 'MANU' 'CHPO' PTI 1 'Y1' 0.D0
  2515. 'NATURE' 'DISCRET' ;
  2516. FIELDS . 'Y2' . 0 = 'MANU' 'CHPO' PTI 1 'Y2' 0.D0
  2517. 'NATURE' 'DISCRET' ;
  2518. FIELDS . 'Y3' . 0 = 'MANU' 'CHPO' PTI 1 'Y3' 0.D0
  2519. 'NATURE' 'DISCRET' ;
  2520. 'FINSI' ;
  2521. *
  2522. 'SINON' ;
  2523. FIELDS . 'MLIQ' . 0 = (FIELDS . 'MLIQ' . 0) 'ET'
  2524. ('MANU' 'CHPO' PTI 1 'MLIQ' MLIQ1 'NATURE' 'DISCRET') ;
  2525. FIELDS . 'ULIQ' . 0 = (FIELDS . 'ULIQ' . 0) 'ET'
  2526. ('MANU' 'CHPO' PTI 1 'ULIQ' ULIQ1 'NATURE' 'DISCRET') ;
  2527. FIELDS . 'HLIQ' . 0 = (FIELDS . 'HLIQ' . 0) 'ET'
  2528. ('MANU' 'CHPO' PTI 1 'HLIQ' HLIQ1 'NATURE' 'DISCRET') ;
  2529. FIELDS . 'VLIQ' . 0 = (FIELDS . 'VLIQ' . 0) 'ET'
  2530. ('MANU' 'CHPO' PTI 1 'VLIQ' VLIQ1 'NATURE' 'DISCRET') ;
  2531. FIELDS . 'TLIQ' . 0 = (FIELDS . 'TLIQ' . 0) 'ET'
  2532. ('MANU' 'CHPO' PTI 1 'TLIQ' TLIQ1 'NATURE' 'DISCRET') ;
  2533. FIELDS . 'QEVA' . 0 = (FIELDS . 'QEVA' . 0) 'ET'
  2534. ('MANU' 'CHPO' PTI 1 'QEVA' 0.D0 'NATURE' 'DISCRET') ;
  2535. FIELDS . 'MEVA' . 0 = (FIELDS . 'MEVA' . 0) 'ET'
  2536. ('MANU' 'CHPO' PTI 1 'MEVA' 0.D0 'NATURE' 'DISCRET') ;
  2537. FIELDS . 'UEVA' . 0 = (FIELDS . 'UEVA' . 0) 'ET'
  2538. ('MANU' 'CHPO' PTI 1 'UEVA' 0.D0 'NATURE' 'DISCRET') ;
  2539. FIELDS . 'QLS' . 0 = (FIELDS . 'QLS' . 0) 'ET'
  2540. ('MANU' 'CHPO' PTI 1 'QLS' 0.D0 'NATURE' 'DISCRET') ;
  2541. FIELDS . 'MLS' . 0 = (FIELDS . 'MLS' . 0) 'ET'
  2542. ('MANU' 'CHPO' PTI 1 'MLS' 0.D0 'NATURE' 'DISCRET') ;
  2543. FIELDS . 'ULS' . 0 = (FIELDS . 'ULS' . 0) 'ET'
  2544. ('MANU' 'CHPO' PTI 1 'ULS' 0.D0 'NATURE' 'DISCRET') ;
  2545. *
  2546. * cas de l'aspersion
  2547. 'SI' ('EXIS' INPUT 'SPRAY' ) ;
  2548. FIELDS . 'MCND' . 0 = (FIELDS . 'MCND' . 0) 'ET'
  2549. ('MANU' 'CHPO' PTI 1 'MCND' 0.D0 'NATURE' 'DISCRET') ;
  2550. FIELDS . 'MEBU' . 0 = (FIELDS . 'MEBU' . 0) 'ET'
  2551. ('MANU' 'CHPO' PTI 1 'MEBU' 0.D0 'NATURE' 'DISCRET') ;
  2552. FIELDS . 'MSPR' . 0 = (FIELDS . 'MSPR' . 0) 'ET'
  2553. ('MANU' 'CHPO' PTI 1 'MSPR' 0.D0 'NATURE' 'DISCRET') ;
  2554. FIELDS . 'UCND' . 0 = (FIELDS . 'UCND' . 0) 'ET'
  2555. ('MANU' 'CHPO' PTI 1 'UCND' 0.D0 'NATURE' 'DISCRET') ;
  2556. FIELDS . 'UCNV' . 0 = (FIELDS . 'UCNV' . 0) 'ET'
  2557. ('MANU' 'CHPO' PTI 1 'UCNV' 0.D0 'NATURE' 'DISCRET') ;
  2558. FIELDS . 'UEBU' . 0 = (FIELDS . 'UEBU' . 0) 'ET'
  2559. ('MANU' 'CHPO' PTI 1 'UEBU' 0.D0 'NATURE' 'DISCRET') ;
  2560. FIELDS . 'USPR' . 0 = (FIELDS . 'USPR' . 0) 'ET'
  2561. ('MANU' 'CHPO' PTI 1 'USPR' 0.D0 'NATURE' 'DISCRET') ;
  2562. 'FINSI' ;
  2563. *
  2564. * cas de la Combustion
  2565. 'SI' ('EXIS' INPUT 'BURN' ) ;
  2566. FIELDS . 'ECOM' . 0 = (FIELDS . 'ECOM' . 0) 'ET'
  2567. ('MANU' 'CHPO' PTI 1 'ECOM' 0.D0 'NATURE' 'DISCRET') ;
  2568. 'FINSI' ;
  2569. *
  2570. * cas des Recombineurs
  2571. *
  2572. 'SI' ('EXIS' INPUT 'RECOMB' ) ;
  2573. FIELDS . 'TREC' . 0 = (FIELDS . 'TREC' . 0) 'ET'
  2574. ('MANU' 'CHPO' PTI 1 'TREC' TGAS1 'NATURE' 'DISCRET') ;
  2575. FIELDS . 'QREC' . 0 = (FIELDS . 'QREC' . 0) 'ET'
  2576. ('MANU' 'CHPO' PTI 1 'QREC' 0. 'NATURE' 'DISCRET') ;
  2577. FIELDS . 'TSRE' . 0 = (FIELDS . 'TSRE' . 0) 'ET'
  2578. ('MANU' 'CHPO' PTI 1 'TSRE' TGAS1 'NATURE' 'DISCRET') ;
  2579. FIELDS . 'EREC' . 0 = (FIELDS . 'EREC' . 0) 'ET'
  2580. ('MANU' 'CHPO' PTI 1 'EREC' 0. 'NATURE' 'DISCRET') ;
  2581. 'FINSI' ;
  2582. *
  2583. * cas de la Puissance résiduelle
  2584. *
  2585. 'SI' ('EXIS' INPUT 'PRESI' ) ;
  2586. FIELDS . 'Y1' . 0 = (FIELDS . 'Y1' . 0) 'ET'
  2587. ('MANU' 'CHPO' PTI 1 'Y1' 0.D0 'NATURE' 'DISCRET') ;
  2588. FIELDS . 'Y2' . 0 = (FIELDS . 'Y2' . 0) 'ET'
  2589. ('MANU' 'CHPO' PTI 1 'Y2' 0.D0 'NATURE' 'DISCRET') ;
  2590. FIELDS . 'Y3' . 0 = (FIELDS . 'Y3' . 0) 'ET'
  2591. ('MANU' 'CHPO' PTI 1 'Y3' 0.D0 'NATURE' 'DISCRET') ;
  2592. 'FINSI' ;
  2593. *
  2594. 'FINSI' ;
  2595. 'FINSI' ;
  2596. 'SI' (&BLO20 'EGA' 1) ;
  2597. FIELDS . 'PT' . 0 = 'MANU' 'CHPO' PTI 1 'PT' PRESS1
  2598. 'NATURE' 'DISCRET' ;
  2599. FIELDS . 'TGAS' . 0 = 'MANU' 'CHPO' PTI 1 'TGAS' TGAS1
  2600. 'NATURE' 'DISCRET' ;
  2601. FIELDS . 'UGAS' . 0 = 'MANU' 'CHPO' PTI 1 'UGAS' UGAS1
  2602. 'NATURE' 'DISCRET' ;
  2603. FIELDS . 'HGAS' . 0 = 'MANU' 'CHPO' PTI 1 'HGAS' HGAS1
  2604. 'NATURE' 'DISCRET' ;
  2605. FIELDS . 'RGAS' . 0 = 'MANU' 'CHPO' PTI 1 'RGAS' RGAS1
  2606. 'NATURE' 'DISCRET' ;
  2607. 'SINON' ;
  2608. FIELDS . 'PT' . 0 = (FIELDS . 'PT' . 0) 'ET'
  2609. ('MANU' 'CHPO' PTI 1 'PT' PRESS1 'NATURE' 'DISCRET') ;
  2610. FIELDS . 'TGAS' . 0 = (FIELDS . 'TGAS' . 0) 'ET'
  2611. ('MANU' 'CHPO' PTI 1 'TGAS' TGAS1 'NATURE' 'DISCRET') ;
  2612. FIELDS . 'UGAS' . 0 = (FIELDS . 'UGAS' . 0) 'ET'
  2613. ('MANU' 'CHPO' PTI 1 'UGAS' UGAS1 'NATURE' 'DISCRET') ;
  2614. FIELDS . 'HGAS' . 0 = (FIELDS . 'HGAS' . 0) 'ET'
  2615. ('MANU' 'CHPO' PTI 1 'HGAS' HGAS1 'NATURE' 'DISCRET') ;
  2616. FIELDS . 'RGAS' . 0 = (FIELDS . 'RGAS' . 0) 'ET'
  2617. ('MANU' 'CHPO' PTI 1 'RGAS' RGAS1 'NATURE' 'DISCRET') ;
  2618. 'FINSI' ;
  2619. 'FIN' BLO20 ;
  2620. *
  2621. *- 'Q' défini aux jonctions
  2622. *
  2623. 'SI' LJUNC ;
  2624. 'REPE' BLO30 NBJUNC ;
  2625. II30 = INDJ1 . &BLO30 ;
  2626. PTJ = INPUT .'JUNCTION' .'LOCATION' . II30 ;
  2627. FLU1 = INPUT .'JUNCTION' . 'Q' . II30 ;
  2628. 'SI' (&BLO30 'EGA' 1) ;
  2629. FIELDS . 'Q' . 0 = 'MANU' 'CHPO' PTJ 1 'Q' FLU1 'NATURE' 'DISCRET';
  2630. 'SINON' ;
  2631. FIELDS . 'Q' . 0 = (FIELDS . 'Q' . 0) 'ET'
  2632. ('MANU' 'CHPO' PTJ 1 'Q' FLU1 'NATURE' 'DISCRET');
  2633. 'FINSI' ;
  2634. 'FIN' BLO30 ;
  2635. 'FINSI' ;
  2636. *
  2637. *- 'QLIQ' défini aux jonctions liquides
  2638. *
  2639. 'SI' ('EXIS' INPUT 'JULIQ') ;
  2640. FIELDS . 'QLIQ' = 'TABLE' ;
  2641. 'REPE' BLO31 NBJUL1 ;
  2642. II31 = INDJL1 . &BLO31 ;
  2643. PTJL = INPUT .'JULIQ' .'LOCATION' . II31 ;
  2644. 'SI' (&BLO31 'EGA' 1) ;
  2645. FIELDS . 'QLIQ' . 0 = 'MANU' 'CHPO' PTJL 1 'QLIQ' 0.0
  2646. 'NATURE' 'DISCRET' ;
  2647. 'SINON' ;
  2648. FIELDS . 'QLIQ' . 0 = (FIELDS . 'QLIQ' . 0) 'ET'
  2649. ('MANU' 'CHPO' PTJL 1 'QLIQ' 0.0 'NATURE' 'DISCRET') ;
  2650. 'FINSI' ;
  2651. 'FIN' BLO31 ;
  2652. 'FINSI' ;
  2653. *
  2654. ***********************************************************************
  2655. * Les champs définis dans les murs
  2656. ***********************************************************************
  2657. *
  2658. 'SI' ('EXIS' INPUT 'WALL') ;
  2659. *
  2660. FIELDS . 'TWAL' = 'TABLE' ;
  2661. *
  2662. * les flux de chaleur spécifiques rentrant des deux
  2663. * cotés de chaque mur
  2664. *
  2665. FIELDS . 'QWAL' = 'TABLE' ;
  2666. *
  2667. * boucle sur les murs
  2668. 'REPE' BLO120 NBWALL ;
  2669. II120 = INDW1 . &BLO120 ;
  2670. PTC1 = INPUT . 'WALL' . 'LOCATION' . II120 ;
  2671. * températures des parois gauches et droites du mur
  2672. XTWAL1 = INPUT . 'WALL' . 'TWAL1' . II120 ;
  2673. XTWAL2 = INPUT . 'WALL' . 'TWAL2' . II120 ;
  2674. * boucle sur les points du mur pour initialisation des températures
  2675. NBNO1 = 'NBEL' (SET . 'GEOINF' . 'INWALL' . PTC1) ;
  2676. * épaisseur du mur
  2677. PTW1 = (SET . 'GEOINF' . 'INWALL' . PTC1) 'POIN' 1 ;
  2678. PTW2 = (SET . 'GEOINF' . 'INWALL' . PTC1) 'POIN' NBNO1 ;
  2679. X1 Y1 = 'COOR' PTW1 ;
  2680. X2 Y2 = 'COOR' PTW2 ;
  2681. EPAI1 = (((X2 - X1)*(X2 - X1)) + ((Y2 - Y1)*(Y2 - Y1))) ** 0.5 ;
  2682. * différence entre les deux températures
  2683. DIFF3 = XTWAL2 - XTWAL1 ;
  2684. 'REPE' BLO121 NBNO1 ;
  2685. PTW3 = (SET . 'GEOINF' . 'INWALL' . PTC1) 'POIN' &BLO121 ;
  2686. X3 Y3 = 'COOR' PTW3 ;
  2687. EPAI3 = (((X3 - X1)*(X3 - X1)) + ((Y3 - Y1)*(Y3 - Y1))) ** 0.5 ;
  2688. XTWAL3 = XTWAL1 + (EPAI3 * DIFF3 / EPAI1) ;
  2689. 'SI' ((&BLO120 'EGA' 1) 'ET' (&BLO121 'EGA' 1)) ;
  2690. FIELDS . 'TWAL' . 0 =
  2691. 'MANU' 'CHPO' PTW3 1 'TWAL' XTWAL3 'NATURE' 'DISCRET' ;
  2692. 'SINON' ;
  2693. FIELDS . 'TWAL' . 0 = (FIELDS . 'TWAL' . 0) +
  2694. ('MANU' 'CHPO' PTW3 1 'TWAL' XTWAL3 'NATURE' 'DISCRET');
  2695. 'FINSI' ;
  2696. 'FIN' BLO121 ;
  2697. * initialisation des flux de chaleur spécifiques
  2698. 'SI' (&BLO120 'EGA' 1) ;
  2699. FIELDS . 'QWAL' . 0 =
  2700. 'MANU' 'CHPO' (PTW1 'ET' PTW2) 1 'QWAL' 0. 'NATURE' 'DISCRET' ;
  2701. 'SINON' ;
  2702. FIELDS . 'QWAL' . 0 = (FIELDS . 'QWAL' . 0) +
  2703. ('MANU' 'CHPO' (PTW1 'ET' PTW2) 1 'QWAL' 0. 'NATURE' 'DISCRET');
  2704. 'FINSI' ;
  2705. 'FIN' BLO120 ;
  2706. *
  2707. 'FINSI' ;
  2708. *
  2709. *
  2710. SET . 'FIELDS' = FIELDS ;
  2711. *
  2712. ***********************************************************************
  2713. * Création de la table DATA
  2714. ***********************************************************************
  2715. *
  2716. DATA = 'TABLE' 'DATA' ;
  2717. *
  2718. *
  2719. * cas de l'aspersion
  2720. *
  2721. 'SI' ('EXIS' INPUT 'SPRAY' ) ;
  2722. DATA . 'SPRAY' = INPUT . 'SPRAY' ;
  2723. * creation de la variable permettant de savoir si l'aspersion
  2724. * a demarre
  2725. DATA . 'SPRAY' . 'IDEB' = 0 ;
  2726. DATA . 'SPRAY' . 'VOLC' = 0. ;
  2727. 'FINSI' ;
  2728. *
  2729. * cas de la Combustion
  2730. *
  2731. 'SI' ('EXIS' INPUT 'BURN' ) ;
  2732. DATA . 'BURN' = INPUT . 'BURN' ;
  2733. 'FINSI' ;
  2734. *
  2735. * cas des Recombineurs
  2736. *
  2737. 'SI' ('EXIS' INPUT 'RECOMB' ) ;
  2738. DATA . 'RECOMB' = INPUT . 'RECOMB' ;
  2739. 'FINSI' ;
  2740. *
  2741. * cas de la Puissance residuelle
  2742. *
  2743. 'SI' ('EXIS' INPUT 'PRESI' ) ;
  2744. DATA . 'PRESI' = INPUT . 'PRESI' ;
  2745. 'FINSI' ;
  2746. ***********************************************************************
  2747. * les champs 'AREA', 'DISC', 'LENGTH' définis aux jonctions
  2748. ***********************************************************************
  2749. *
  2750. 'SI' LJUNC ;
  2751. IEV1 = 0 ;
  2752. data . 'AREA' = TABLE ;
  2753. 'REPE' BLO40 NBJUNC ;
  2754. II40 = INDJ1 . &BLO40 ;
  2755. PTJ = INPUT .'JUNCTION' . 'LOCATION' . II40 ;
  2756. AREA1 = INPUT .'JUNCTION' . 'AREA' . II40 ;
  2757. DISC1 = INPUT .'JUNCTION' . 'DISC' . II40 ;
  2758. LENG1 = INPUT .'JUNCTION' . 'LENGTH' . II40 ;
  2759. *
  2760. 'SI' ( 'EXIS' data 'DISC') ;
  2761. DATA . 'DISC' = (DATA . 'DISC') 'ET'
  2762. ('MANU' 'CHPO' PTJ 1 'SCAL' DISC1 'NATURE' 'DISCRET') ;
  2763. 'SINO' ;
  2764. DATA . 'DISC' = 'MANU' 'CHPO' PTJ 1 'SCAL' DISC1
  2765. 'NATURE' 'DISCRET';
  2766. 'FINSI' ;
  2767. *
  2768. 'SI' ( 'EXIS' data 'LENGTH') ;
  2769. DATA . 'LENGTH' = (DATA . 'LENGTH') 'ET'
  2770. ('MANU' 'CHPO' PTJ 1 'SCAL' LENG1 'NATURE' 'DISCRET') ;
  2771. 'SINO' ;
  2772. DATA . 'LENGTH' = 'MANU' 'CHPO' PTJ 1 'SCAL' LENG1
  2773. 'NATURE' 'DISCRET';
  2774. 'FINSI' ;
  2775. *
  2776. 'SI' ('EGA' ('TYPE' area1) 'FLOTTANT') ;
  2777. 'SI' ( 'EXIS' (data . 'AREA') 0) ;
  2778. DATA . 'AREA' . 0 = (DATA . 'AREA' . 0) 'ET'
  2779. ('MANU' 'CHPO' PTJ 1 'SCAL' AREA1 'NATURE' 'DISCRET') ;
  2780. 'SINO' ;
  2781. DATA . 'AREA' . 0 = 'MANU' 'CHPO' PTJ 1 'SCAL' AREA1
  2782. 'NATURE' 'DISCRET';
  2783. 'FINSI' ;
  2784. 'SINO' ;
  2785. IEV1 = IEV1 + 1 ;
  2786. DATA . 'AREA' . IEV1 = 'TABLE' ;
  2787. DATA . 'AREA' . IEV1 . 'LOCATION' = PTJ ;
  2788. DATA . 'AREA' . IEV1 . 'EVOL' = AREA1 ;
  2789. DATA . 'AREA' . 'NBEV' = IEV1 ;
  2790. 'FINSI' ;
  2791. *
  2792. 'FIN' BLO40 ;
  2793. 'FINSI' ;
  2794. *
  2795. ***********************************************************************
  2796. * le champ 'VOL' défini sur les compartiments
  2797. ***********************************************************************
  2798. *
  2799. I50 = 0 ;
  2800. 'REPE' BLO50 NBCELL ;
  2801. I50 = I50 + 1 ;
  2802. II50 = INDC1 . I50 ;
  2803. PTI = INPUT . 'CELL' . 'LOCATION' . II50 ;
  2804. VOLU1 = INPUT . 'CELL' . 'VOL' . II50 ;
  2805. 'SI' (I50 'EGA' 1) ;
  2806. DATA . 'VOL' = MANU 'CHPO' PTI 1 'SCAL' VOLU1 'NATURE' 'DISCRET' ;
  2807. 'SINON' ;
  2808. DATA . 'VOL' = (DATA . 'VOL') ET
  2809. (MANU 'CHPO' PTI 1 'SCAL' VOLU1 'NATURE' 'DISCRET') ;
  2810. 'FINSI' ;
  2811. FIN BLO50 ;
  2812. *
  2813. ***********************************************************************
  2814. * les champs 'ASUMP','VMAX','APERTURE' définis dans les puisards
  2815. ***********************************************************************
  2816. *
  2817. 'SI' ('EXIS' (INPUT . 'CELL') 'MLIQ') ;
  2818. *
  2819. I51 = 0 ;
  2820. 'REPE' BLO51 NBCELL ;
  2821. I51 = I51 + 1 ;
  2822. II51 = INDC1 . I51 ;
  2823. PTI = INPUT . 'CELL' . 'LOCATION' . II51 ;
  2824. 'SI' ('EXIS' (INPUT . 'CELL' . 'ASUMP') II51) ;
  2825. ASUMP1 = INPUT . 'CELL' . 'ASUMP' . II51 ;
  2826. 'FINSI' ;
  2827. 'SI' (I51 'EGA' 1) ;
  2828. DATA . 'ASUMP' = MANU 'CHPO' PTI 1 'SCAL' ASUMP1
  2829. 'NATURE' 'DISCRET' ;
  2830. 'SI' ('EXIS' (INPUT . 'CELL' . 'VMAX') II51) ;
  2831. VMAX1 = INPUT . 'CELL' . 'VMAX' . II51 ;
  2832. DATA . 'VMAX' = MANU 'CHPO' PTI 1 'SCAL' VMAX1
  2833. 'NATURE' 'DISCRET' ;
  2834. 'FINSI' ;
  2835. 'SI' ('EXIS' (INPUT . 'CELL' . 'APERTURE') II51) ;
  2836. APER1 = INPUT . 'CELL' . 'APERTURE' . II51 ;
  2837. DATA . 'APERTURE' = MANU 'CHPO' PTI 1 'SCAL' APER1
  2838. 'NATURE' 'DISCRET' ;
  2839. 'FINSI' ;
  2840. 'SINON' ;
  2841. DATA . 'ASUMP' = (DATA . 'ASUMP') ET
  2842. (MANU 'CHPO' PTI 1 'SCAL' ASUMP1
  2843. 'NATURE' 'DISCRET') ;
  2844. 'SI' ('EXIS' (INPUT . 'CELL' . 'VMAX') II51) ;
  2845. VMAX1 = INPUT . 'CELL' . 'VMAX' . II51 ;
  2846. DATA . 'VMAX' = (DATA . 'VMAX') ET
  2847. (MANU 'CHPO' PTI 1 'SCAL' VMAX1
  2848. 'NATURE' 'DISCRET') ;
  2849. 'FINSI' ;
  2850. 'SI' ('EXIS' (INPUT . 'CELL' . 'APERTURE') II51) ;
  2851. APER1 = INPUT . 'CELL' . 'APERTURE' . II51 ;
  2852. DATA . 'APERTURE' = (DATA . 'APERTURE') ET
  2853. (MANU 'CHPO' PTI 1 'SCAL' APER1
  2854. 'NATURE' 'DISCRET') ;
  2855. 'FINSI' ;
  2856. 'FINSI' ;
  2857. FIN BLO51 ;
  2858. *
  2859. 'FINSI' ;
  2860. *
  2861. ***********************************************************************
  2862. * les champs ECHAW,AREAW définis aux parois des murs
  2863. ***********************************************************************
  2864. *
  2865. 'SI' ('EXIS' INPUT 'WALL') ;
  2866. * la température extérieure
  2867. DATA . 'TOUT' = INPUT . 'TOUT';
  2868. * boucle sur les murs
  2869. I130 = 0 ;
  2870. 'REPE' BLO130 NBWALL ;
  2871. I130 = I130 + 1 ;
  2872. II130 = INDW1 . I130 ;
  2873. PTC1 = INPUT . 'WALL' . 'LOCATION' . II130 ;
  2874. ECHA1 = INPUT . 'WALL' . 'ECHAN1' . II130 ;
  2875. ECHA2 = INPUT . 'WALL' . 'ECHAN2' . II130 ;
  2876. SURF1 = INPUT . 'WALL' . 'AREA' . II130 ;
  2877. NBNO1 = NBEL (SET . 'GEOINF' . 'INWALL' . PTC1) ;
  2878. PTW1 = (SET . 'GEOINF' . 'INWALL' . PTC1) POIN 1 ;
  2879. PTW2 = (SET . 'GEOINF' . 'INWALL' . PTC1) POIN NBNO1 ;
  2880. 'SI' (I130 'EGA' 1) ;
  2881. DATA . 'ECHAW' = MANU 'CHPO' (PTW1 ET PTW2) 1 'SCAL'
  2882. (PROG ECHA1 ECHA2) 'NATURE' 'DISCRET' ;
  2883. DATA . 'AREAW' = MANU 'CHPO' (PTW1 ET PTW2) 1 'SCAL' SURF1
  2884. 'NATURE' 'DISCRET' ;
  2885. 'SINON' ;
  2886. DATA . 'ECHAW' = (DATA . 'ECHAW') +
  2887. (MANU 'CHPO' (PTW1 ET PTW2) 1 'SCAL'
  2888. (PROG ECHA1 ECHA2) 'NATURE' 'DISCRET') ;
  2889. DATA . 'AREAW' = (DATA . 'AREAW') +
  2890. (MANU 'CHPO' (PTW1 ET PTW2) 1 'SCAL' SURF1
  2891. 'NATURE' 'DISCRET') ;
  2892. 'FINSI' ;
  2893. FIN BLO130 ;
  2894. *
  2895. 'SI' ((EXISTE GEOINF 'LAYERC') 'ET' ('EXIS' (INPUT.'CELL') 'MLIQ'));
  2896. 'SI' (EXISTE GEOINF 'LAYERC') ;
  2897. DATA . 'ECHAC' = 'REDU' (DATA . 'ECHAW') (GEOINF . 'LAYERC') ;
  2898. DATA . 'AREAC' = 'REDU' (DATA . 'AREAW') (GEOINF . 'LAYERC') ;
  2899. 'FINSI' ;
  2900.  
  2901. SET . 'FIELDS' . 'ECHA' = TABLE ;
  2902. SET . 'FIELDS' . 'ECHA' . 0 = 'EXCO' 'SCAL'
  2903. (DATA . 'ECHAW') 'ECHA' ;
  2904. SET . 'FIELDS' . 'ALAT' = TABLE ;
  2905. SET . 'FIELDS' . 'ALAT' . 0 = MANU 'CHPO'
  2906. (GEOINF . 'LAYERT') 1 'ALAT' 0.D0 'NATURE' 'DISCRET' ;
  2907. 'FINSI' ;
  2908. *
  2909. 'FINSI' ;
  2910. *
  2911. *
  2912. SET . 'DATA' = DATA ;
  2913. *
  2914. *
  2915. ***********************************************************************
  2916. * Création de la table BOUNDARY
  2917. ***********************************************************************
  2918. *
  2919. BOUNDARY = 'TABLE' 'BOUNDARY' ;
  2920. BOUNDARY . 'TIME' = 'PROG' ('EXTR' (INPUT . 'TIMECALC' . 'LISTCALC') 1);
  2921. *
  2922. * --- Condition à la limite pour la pression totale ---
  2923. *
  2924. 'SI' ('EXIS' (INPUT . 'BOUNDARY') 'PT') ;
  2925. NBCP1 = DIME (INPUT . 'BOUNDARY' . 'PT') ;
  2926. 'SI' (NBCP1 NEG 0) ;
  2927. I200 = 0 ;
  2928. INDBP1 = 'INDE' (INPUT . 'BOUNDARY' . 'PT') ;
  2929. 'REPE' BLO200 NBCP1 ;
  2930. I200 = I200 + 1 ;
  2931. ICEL1 = INDBP1 . I200 ;
  2932. PTI1 = INPUT . 'CELL' . 'LOCATION' . ICEL1 ;
  2933. PRES1 = INPUT . 'BOUNDARY' . 'PT' . ICEL1 ;
  2934. 'SI' (I200 'EGA' 1) ;
  2935. BOUNDARY . 'PT' = MANU 'CHPO' PTI1 1 'PT' PRES1
  2936. 'NATURE' 'DISCRET' ;
  2937. 'SINON' ;
  2938. BOUNDARY . 'PT' = (BOUNDARY . 'PT') ET
  2939. (MANU 'CHPO' PTI1 1 'PT' PRES1
  2940. 'NATURE' 'DISCRET') ;
  2941. 'FINSI' ;
  2942. FIN BLO200 ;
  2943. 'FINSI' ;
  2944. 'FINSI' ;
  2945. *
  2946. * --- Conditions aux limites pour les différents constituants (sources) ---
  2947. * --- Lecture des tables sources ---
  2948. *
  2949. LH2_DIS = 'LECT' ;
  2950. 'REPE' BLO210 NCOMP1 ;
  2951. NAMG1 = INPUT . 'COMPONENT' . &BLO210 ;
  2952. NAMQ1 = CHAINE 'Q' NAMG1 ;
  2953. 'SI' ('EXIS' (INPUT . 'BOUNDARY') NAMQ1) ;
  2954. NBPTK1 = 'DIME' (INPUT . 'BOUNDARY' . NAMQ1) ;
  2955. INDB1 = 'INDE' (INPUT . 'BOUNDARY' . NAMQ1) ;
  2956. 'SI' ('EXIS' BOUNDARY NAMQ1) ;
  2957. IJ0 = 'DIME' BOUNDARY . NAMQ1 ;
  2958. 'SINO' ;
  2959. BOUNDARY . NAMQ1 = 'TABLE' ;
  2960. IJ0 = 0 ;
  2961. 'FINSI' ;
  2962. 'REPE' BLO211 NBPTK1 ;
  2963. II211 = INDB1 . &blo211 ;
  2964. INDB2 = 'INDE' (INPUT . 'BOUNDARY' . NAMQ1 . II211) ;
  2965. NBPTK2 = 'DIME' INDB2 ;
  2966. 'REPE' BLO212 NBPTK2 ;
  2967. IJ0 = IJ0 + 1 ;
  2968. II212 = INDB2 . &blo212 ;
  2969. FICH1 = INPUT . 'BOUNDARY' . NAMQ1 . II211 . II212 ;
  2970. PTCEL1 = INPUT . 'CELL' . 'LOCATION' . II211 ;
  2971. EV1 EV2 EV3 EV4 H2O_PR = TO_LIXOU FICH1 NAMG1 ;
  2972. * EV1 EV2 NAMEOUT H2O_PR = TO_DATA2 FICH1 NAMG1 ;
  2973. BOUNDARY . NAMQ1 . IJ0 = 'TABLE' ;
  2974. BOUNDARY . NAMQ1 . IJ0 . 'CELL' = PTCEL1 ;
  2975. BOUNDARY . NAMQ1 . IJ0 . 'EVOLM' = EV1 ;
  2976. BOUNDARY . NAMQ1 . IJ0 . 'EVOLE' = EV2 ;
  2977. *
  2978. IER = OKTPS EV1 (INPUT . 'TIMECALC' . 'LISTCALC') ;
  2979. 'SI' ('EGA' IER 1) ;
  2980. SET . 'ERROR' = 1 ;
  2981. 'QUIT' TO_FIELD ;
  2982. 'FINSI' ;
  2983. *
  2984. 'SI' ('EGA' namg1 'H2O') ;
  2985. BOUNDARY . NAMQ1 . IJ0 . 'MINL' = 'PROG' 0. ;
  2986. BOUNDARY . NAMQ1 . IJ0 . 'MINV' = 'PROG' 0. ;
  2987. BOUNDARY . NAMQ1 . IJ0 . 'UINL' = 'PROG' 0. ;
  2988. BOUNDARY . NAMQ1 . IJ0 . 'UINV' = 'PROG' 0. ;
  2989. 'FINSI' ;
  2990. 'FIN' BLO212 ;
  2991. 'FIN' BLO211 ;
  2992. 'FINSI' ;
  2993. 'FIN' BLO210 ;
  2994. *
  2995. * Limitation des sources de h2 issues de l'h2 dissous dans le primaire
  2996. * par la masse de h2 présente dans le primaire à t=0
  2997. NBH2_DIS = 'DIME' LH2_DIS ;
  2998. 'SI' ('NEG' NBH2_DIS 0) ;
  2999. * concaténation de toutes les sources d'h2 dissous
  3000. RANG0 = 'EXTR' LH2_DIS 1 ;
  3001. EVMH2 = 0. * (BOUNDARY . 'QH2' . RANG0 . 'EVOLM') ;
  3002. EVEH2 = 0. * (BOUNDARY . 'QH2' . RANG0 . 'EVOLE') ;
  3003. 'REPE' BLOLIM NBH2_DIS ;
  3004. RANG0 = 'EXTR' LH2_DIS &BLOLIM ;
  3005. EVM_D = BOUNDARY . 'QH2' . RANG0 . 'EVOLM' ;
  3006. EVE_D = BOUNDARY . 'QH2' . RANG0 . 'EVOLE' ;
  3007. EVMH2 ierr = ADEVOL EVM_D EVMH2 ;
  3008. EVEH2 ierr = ADEVOL EVE_D EVEH2 ;
  3009. 'FIN' BLOLIM ;
  3010. * Si au temps final la masse max est dépassée, identification du temps
  3011. * auquel la masse max est atteinte et troncature/prolongement des
  3012. * sources de h2_dis au-delà de ce temps
  3013. TIM = 'EXTR' EVMH2 'ABSC' ;
  3014. MA_D = 'EXTR' EVMH2 'ORDO' ;
  3015. CST = INPUT . 'PHYSICAL' . 'RHO_H2' * INPUT . 'CONC_H2' ;
  3016. MA0_H2 = CST * INPUT . 'MA0_PR' ;
  3017. MA0_TEST = 'EXTR' MA_D ('DIME' MA_D) ;
  3018. 'SI' (MA0_H2 '&lt;EG' MA0_TEST) ;
  3019. T_MA0 = 'IPOL' MA0_H2 MA_D TIM ;
  3020. 'REPE' BLOLIM2 NBH2_DIS ;
  3021. RANG0 = 'EXTR' LH2_DIS &BLOLIM2 ;
  3022. EVM_D = BOUNDARY . 'QH2' . RANG0 . 'EVOLM' ;
  3023. EVE_D = BOUNDARY . 'QH2' . RANG0 . 'EVOLE' ;
  3024. TIM = 'EXTR' EVM_D 'ABSC' ;
  3025. MA_D = 'EXTR' EVM_D 'ORDO' ;
  3026. EN_D = 'EXTR' EVE_D 'ORDO' ;
  3027. M_MA0 = 'IPOL' T_MA0 TIM MA_D ;
  3028. E_MA0 = 'IPOL' T_MA0 TIM EN_D ;
  3029. T_END = 'EXTR' TIM ('DIME' TIM) ;
  3030. EVM_D = 'EXTR' EVM_D 'AVAN' T_MA0 ;
  3031. EVE_D = 'EXTR' EVE_D 'AVAN' T_MA0 ;
  3032. TI_D = 'EXTR' EVM_D 'ABSC' ;
  3033. MA_D = 'EXTR' EVM_D 'ORDO' ;
  3034. EN_D = 'EXTR' EVE_D 'ORDO' ;
  3035. TI_D = TI_D 'ET' ('PROG' T_MA0 T_END) ;
  3036. MA_D = MA_D 'ET' ('PROG' M_MA0 M_MA0) ;
  3037. EN_D = EN_D 'ET' ('PROG' E_MA0 E_MA0) ;
  3038. EVM_D = 'EVOL' 'MANU' TI_D MA_D ;
  3039. EVE_D = 'EVOL' 'MANU' TI_D EN_D ;
  3040. BOUNDARY . 'QH2' . RANG0 . 'EVOLM' = EVM_D ;
  3041. BOUNDARY . 'QH2' . RANG0 . 'EVOLE' = EVE_D ;
  3042. 'FIN' BLOLIM2 ;
  3043. 'FINSI' ;
  3044. 'FINSI' ;
  3045. *
  3046. *fd Sources implicites
  3047. *
  3048. *
  3049. * --- Conditions aux limites pour les différents constituants (puits) ---
  3050. * --- Lecture des puits ---
  3051. *
  3052. 'SI' ('EXIS' (INPUT . 'BOUNDARY') 'OUT') ;
  3053. BOUNDARY . 'OUT' = 'TABLE' ;
  3054. NBPTK1 = 'DIME' (INPUT . 'BOUNDARY' . 'OUT') ;
  3055. 'SI' ('EGA' NBPTK1 0) ;
  3056. 'MESS' 'TO_FIELD : INPUT . BOUNDARY . OUT empty' ;
  3057. SET . 'ERROR' = 1 ;
  3058. 'QUIT' TO_FIELD ;
  3059. 'FINSI' ;
  3060. INDB1 = 'INDE' (INPUT . 'BOUNDARY' . 'OUT') ;
  3061. 'REPE' BLO400 NBPTK1 ;
  3062. II400 = INDB1 . &BLO400 ;
  3063. 'SI' ('NON' ('EXIS' (INPUT . 'CELL' . 'LOCATION') II400)) ;
  3064. 'MESS' 'TO_FIELD : bad OUT cell number' II400 ;
  3065. SET . 'ERROR' = 1 ;
  3066. 'QUIT' TO_FIELD ;
  3067. 'FINSI' ;
  3068. PTCEL1 = INPUT . 'CELL' . 'LOCATION' . II400 ;
  3069. BOUNDARY . 'OUT' . &BLO400 = 'TABLE' ;
  3070. BOUNDARY . 'OUT' . &BLO400 . 'CELL' = PTCEL1 ;
  3071. INDB2 = 'INDE' (INPUT . 'BOUNDARY' . 'OUT' . II400) ;
  3072. NBPTK2 = 'DIME' INDB2 ;
  3073. 'REPE' BLO410 NBPTK2 ;
  3074. II410 = INDB2 . &BLO410 ;
  3075. FICH1 = INPUT . 'BOUNDARY' . 'OUT' . II400 . II410 ;
  3076. EVM mot1 = TO_DATA1 FICH1 ;
  3077. IER = OKTPS EVM (INPUT . 'TIMECALC' . 'LISTCALC') ;
  3078. 'SI' ('EGA' IER 1) ;
  3079. SET . 'ERROR' = 1 ;
  3080. 'QUIT' TO_FIELD ;
  3081. 'FINSI' ;
  3082. BOUNDARY . 'OUT' . &BLO400 . &BLO410 = TABLE ;
  3083. BOUNDARY . 'OUT' . &BLO400 . &BLO410 . 'EVOLM' = EVM ;
  3084. BOUNDARY . 'OUT' . &BLO400 . &BLO410 . 'CUMULM' = 'PROG' 0. ;
  3085. BOUNDARY . 'OUT' . &BLO400 . &BLO410 . 'CUMULE' = 'PROG' 0. ;
  3086. 'REPE' BLO420 NCOMP1 ;
  3087. IND1 = INPUT . 'COMPONENT' . &BLO420 ;
  3088. NAMM1 = 'CHAINE' 'CUMULM_' IND1 ;
  3089. BOUNDARY . 'OUT' . &BLO400 . &BLO410 . NAMM1 = 'PROG' 0. ;
  3090. 'FIN' BLO420 ;
  3091. 'FIN' BLO410 ;
  3092. 'FIN' BLO400 ;
  3093. 'FINSI' ;
  3094. *
  3095. * --- Recirculation ISBP dans les puisards (puits) ---
  3096. * --- Lecture des puits ---
  3097. *
  3098. 'SI' ('EXIS' (INPUT . 'BOUNDARY') 'ISBP') ;
  3099. BOUNDARY . 'ISBP' = 'TABLE' ;
  3100. NBPTK1 = 'DIME' (INPUT . 'BOUNDARY' . 'ISBP') ;
  3101. 'SI' ('EGA' NBPTK1 0) ;
  3102. 'MESS' 'TO_FIELD : INPUT . BOUNDARY . ISBP empty' ;
  3103. SET . 'ERROR' = 1 ;
  3104. 'QUIT' TO_FIELD ;
  3105. 'FINSI' ;
  3106. INDB1 = 'INDE' (INPUT . 'BOUNDARY' . 'ISBP') ;
  3107. 'REPE' BLO420 NBPTK1 ;
  3108. II420 = INDB1 . &BLO420 ;
  3109. 'SI' ('NON' ('EXIS' (INPUT . 'CELL' . 'LOCATION') II420)) ;
  3110. 'MESS' 'TO_FIELD : bad ISBP cell number' II420 ;
  3111. SET . 'ERROR' = 1 ;
  3112. 'QUIT' TO_FIELD ;
  3113. 'FINSI' ;
  3114. PTCEL1 = INPUT . 'CELL' . 'LOCATION' . II420 ;
  3115. BOUNDARY . 'ISBP' . &BLO420 = 'TABLE' ;
  3116. BOUNDARY . 'ISBP' . &BLO420 . 'CELL' = PTCEL1 ;
  3117. INDB2 = 'INDE' (INPUT . 'BOUNDARY' . 'ISBP' . II420) ;
  3118. NBPTK2 = 'DIME' INDB2 ;
  3119. 'REPE' BLO430 NBPTK2 ;
  3120. II430 = INDB2 . &BLO430 ;
  3121. FICH1 = INPUT . 'BOUNDARY' . 'ISBP' . II420 . II430 ;
  3122. EVM mot1 = TO_DATA1 FICH1 ;
  3123. IER = OKTPS EVM (INPUT . 'TIMECALC' . 'LISTCALC') ;
  3124. 'SI' ('EGA' IER 1) ;
  3125. SET . 'ERROR' = 1 ;
  3126. 'QUIT' TO_FIELD ;
  3127. 'FINSI' ;
  3128. BOUNDARY . 'ISBP' . &BLO420 . &BLO430 = 'TABLE' ;
  3129. BOUNDARY . 'ISBP' . &BLO420 . &BLO430 . 'EVOLM' = EVM ;
  3130. BOUNDARY . 'ISBP' . &BLO420 . &BLO430 . 'CUMULM' = 'PROG' 0. ;
  3131. BOUNDARY . 'ISBP' . &BLO420 . &BLO430 . 'CUMULE' = 'PROG' 0. ;
  3132. 'FIN' BLO430 ;
  3133. 'FIN' BLO420 ;
  3134. 'FINSI' ;
  3135. *
  3136. *
  3137. * --- prise en compte eventuelle de l'ASPERSION
  3138. * -----------------------------------------
  3139. *
  3140. * SOURCE D'ASPERSION
  3141. *
  3142. 'SI' ('EXIS' INPUT 'SPRAY' ) ;
  3143. *
  3144. NBSPR = INPUT . 'SPRAY' . 'NBR' ;
  3145. FICSPR = INPUT . 'SPRAY' . 'FLOWRATE' ;
  3146. FICP = INPUT . 'SPRAY' . 'THRESHOLP' ;
  3147. NAMG1 = 'H2O' ;
  3148. BOUNDARY . 'QSPRAY' = 'TABLE' ;
  3149. BOUNDARY . 'PSPRAYL' = 'TABLE' ;
  3150. *
  3151. * Existance des compartiments aspergés et calcul du volume aspergé
  3152. VTOT = 0. ;
  3153. 'REPE' BLOSPR1 NBSPR ;
  3154. ISPR1 = INPUT . 'SPRAY' . 'LOCATION' . &BLOSPR1 ;
  3155. 'SI' ('NON' ('EXIS' (INPUT . 'CELL' . 'LOCATION') ISPR1)) ;
  3156. 'MESS' 'TO_FIELD : INPUT.SPRAY.LOCATION : bad cell ' ISPR1 ;
  3157. SET . 'ERROR' = 1 ;
  3158. 'QUIT' TO_FIELD ;
  3159. 'FINSI' ;
  3160. PTCELS = INPUT . 'CELL' . 'LOCATION' . ISPR1 ;
  3161. VOLS = INPUT . 'CELL' . 'VOL' . ISPR1 ;
  3162. VTOT = VTOT + VOLS ;
  3163. CHARGS EVOLS = TO_LISOU FICSPR NAMG1 '1' ;
  3164. BOUNDARY . 'QSPRAY' . &BLOSPR1 = 'TABLE' ;
  3165. BOUNDARY . 'QSPRAY' . &BLOSPR1 . 'CELL' = PTCELS ;
  3166. BOUNDARY . 'QSPRAY' . &BLOSPR1 . 'CHARG' = CHARGS ;
  3167. BOUNDARY . 'QSPRAY' . &BLOSPR1 . 'EVOLU' = EVOLS ;
  3168. *
  3169. 'FIN' BLOSPR1 ;
  3170. DATA . 'SPRAY' . 'VTOT' = VTOT ;
  3171. *
  3172. * Existence du puisard associé à la recirculation
  3173. ISPR1 = INPUT . 'SPRAY' . 'RECIR' ;
  3174. 'SI' ('NON' ('EXIS' (INPUT . 'CELL' . 'LOCATION') ISPR1)) ;
  3175. 'MESS' 'TO_FIELD : INPUT.SPRAY.RECIR : bad cell ' ISPR1 ;
  3176. SET . 'ERROR' = 1 ;
  3177. 'QUIT' TO_FIELD ;
  3178. 'FINSI' ;
  3179. DATA . 'SPRAY' . 'PTRECIR' = INPUT . 'CELL' . 'LOCATION' . ISPR1 ;
  3180. *
  3181. * Courbe de pression limite d'aspersion
  3182. CHARGP EVOLP = TO_LIFON FICP 'PRES' '1' ;
  3183. BOUNDARY . 'PSPRAYL' . 1 = 'TABLE' ;
  3184. BOUNDARY . 'PSPRAYL' . 1 . 'CHARG' = CHARGP ;
  3185. BOUNDARY . 'PSPRAYL' . 1 . 'EVOLU' = EVOLP ;
  3186. *
  3187. 'FINSI' ;
  3188. *
  3189. *
  3190. *
  3191. * SOURCES pour la COMBUSTION CONTINUE
  3192. * -----------------------------------
  3193. 'SI' ('EXIS' INPUT 'BURN' ) ;
  3194. *
  3195. TYPEC = 'CHAI' INPUT . 'BURN' . TYPE ;
  3196. *
  3197. 'SI' ('EGA' TYPEC 'REAL' ) ;
  3198. *
  3199. NBCOMB = INPUT . 'BURN' . NBR ;
  3200. BOUNDARY . QCOMB = 'TABLE' ;
  3201. *
  3202. ICOMB = 0 ;
  3203. 'REPE' BLCOMB1 NBCOMB ;
  3204. *
  3205. ICOMB = ICOMB + 1 ;
  3206. *
  3207. * test de l'existance des compartiments
  3208. *
  3209.  
  3210. ICOMB1 = ((INPUT . 'BURN' . LOCATION)) . ICOMB ;
  3211. 'SI' (NON ('EXIS' (INPUT . 'CELL' . 'LOCATION') ICOMB1)) ;
  3212. MESS 'TO_FIELD : INPUT.BURN.LOCATION : bad cell number ' ICOMB1 ;
  3213. SET . 'ERROR' = 1 ;
  3214. QUITTER TO_FIELD ;
  3215. 'FINSI' ;
  3216. *
  3217. PTCELC = INPUT . 'CELL' . 'LOCATION' . ICOMB1 ;
  3218. *
  3219. *
  3220. BOUNDARY . QCOMB . ICOMB = 'TABLE' ;
  3221. BOUNDARY . QCOMB . ICOMB . 'CELL' = PTCELC ;
  3222. *
  3223. * --------------------- SOURCE H2
  3224. *
  3225. 'SI' ('EXIS' (INPUT . 'BURN' . 'SH2') ICOMB) ;
  3226. FICH2 = INPUT . 'BURN' . 'SH2' . ICOMB ;
  3227. NAMG1 = 'H2' ;
  3228. CHARGH2 EVOLH2 = TO_LISOU FICH2 NAMG1 '1';
  3229. BOUNDARY . QCOMB . ICOMB . 'CHARGH2' = CHARGH2 ;
  3230. BOUNDARY . QCOMB . ICOMB . 'EVOLH2' = EVOLH2 ;
  3231. 'FINSI' ;
  3232. * --------------------- SOURCE CO
  3233. 'SI' ('EXIS' (INPUT . 'BURN' . 'SCO') ICOMB) ;
  3234. FICCO = INPUT . 'BURN' . 'SCO' . ICOMB ;
  3235. NAMG2 = 'CO' ;
  3236. CHARGCO EVOLCO = TO_LISOU FICCO NAMG2 '1';
  3237. BOUNDARY . QCOMB . ICOMB . 'CHARGCO' = CHARGCO ;
  3238. BOUNDARY . QCOMB . ICOMB . 'EVOLCO' = EVOLCO ;
  3239. 'FINSI' ;
  3240. *
  3241. FIN BLCOMB1 ;
  3242. *
  3243. 'FINSI' ;
  3244. *
  3245. 'FINSI' ;
  3246. *
  3247. *
  3248. * SOURCES pour la Puissance Residuelle
  3249. * -----------------------------------
  3250. 'SI' ('EXIS' INPUT 'PRESI' ) ;
  3251. *
  3252. * Lecture du fichier Puissance residuelle Principal
  3253. *
  3254. FICH1 = INPUT . 'PRESI' . 'SOURCEP' ;
  3255. *
  3256. CHARG1 EVOL1 = TO_LIPR FICH1 '1' 2 ;
  3257. BOUNDARY . PRESID = 'TABLE' ;
  3258. BOUNDARY . PRESID . 'CHARG' = CHARG1 ;
  3259. BOUNDARY . PRESID . 'EVOLU' = EVOL1 ;
  3260. *
  3261. * si lambda (rabattement) est une fonction du temps
  3262. *
  3263. *
  3264. MOTLAMB = INPUT . 'PRESI' . 'LAMBDA' . 1 ;
  3265. 'SI' ('EGA' ('TYPE' MOTLAMB) 'MOT ') ;
  3266. CHARGP EVOLP = TO_LIFON MOTLAMB 'LAMB' '1' ;
  3267. BOUNDARY . PRESID . 'LAMBDA' = 'TABLE' ;
  3268. BOUNDARY . PRESID . 'LAMBDA' . 'CHARG' = CHARGP ;
  3269. BOUNDARY . PRESID . 'LAMBDA' . 'EVOLU' = EVOLP ;
  3270. 'FINSI';
  3271. *
  3272. * si lambdaP (rabattement dans le cas de l'aspersion)
  3273. * est une fonction du temps
  3274. *
  3275. *
  3276. MOTLAMBP = INPUT . 'PRESI' . 'LAMBDAP' . 1 ;
  3277. 'SI' ('EGA' ('TYPE' MOTLAMBP) 'MOT ') ;
  3278. CHARGP EVOLP = TO_LIFON MOTLAMBP 'LAMB' '1' ;
  3279. BOUNDARY . PRESID . 'LAMBDAP' = 'TABLE' ;
  3280. BOUNDARY . PRESID . 'LAMBDAP' . 'CHARG' = CHARGP ;
  3281. BOUNDARY . PRESID . 'LAMBDAP' . 'EVOLU' = EVOLP ;
  3282. 'FINSI';
  3283. *
  3284. NBPRESI = INPUT . 'PRESI' . NBR ;
  3285. *
  3286. IPRESI = 0 ;
  3287. *
  3288. 'REPE' BLPRESI NBPRESI ;
  3289. *
  3290. IPRESI = IPRESI + 1 ;
  3291. *
  3292. * test de l'existance des compartiments
  3293. *
  3294.  
  3295. IPRESI1 = ((INPUT . 'PRESI' . LOCATION)) . IPRESI ;
  3296. 'SI' (NON ('EXIS' (INPUT . 'CELL' . 'LOCATION') IPRESI1)) ;
  3297. MESS 'TO_FIELD : INPUT.PRESI.LOCATION : bad cell number ' IPRESI1 ;
  3298. SET . 'ERROR' = 1 ;
  3299. QUITTER TO_FIELD ;
  3300. 'FINSI' ;
  3301. *
  3302. PTCELC = INPUT . 'CELL' . 'LOCATION' . IPRESI1 ;
  3303. BOUNDARY . PRESID . IPRESI = 'TABLE' ;
  3304. BOUNDARY . PRESID . IPRESI . 'CELL' = PTCELC ;
  3305. *
  3306. *
  3307. *
  3308. FICH2 = INPUT . 'PRESI' . 'SOURCE' . IPRESI ;
  3309. *
  3310. CHARG2 EVOL2 = TO_LIPR FICH2 '1' 1;
  3311. BOUNDARY . PRESID . IPRESI . 'CHARG' = CHARG2 ;
  3312. BOUNDARY . PRESID . IPRESI . 'EVOLU' = EVOL2 ;
  3313. *
  3314. 'FIN' BLPRESI ;
  3315. *
  3316. 'FINSI' ;
  3317. *
  3318. SET . 'BOUNDARY' = BOUNDARY ;
  3319. *
  3320. ***********************************************************************
  3321. * Création des champs inconnus au temps courant (table INCO)
  3322. ***********************************************************************
  3323. *
  3324. INCO = 'TABLE' 'INCO' ;
  3325. INCO . 'SUPPORT' = 'TABLE' ;
  3326. *
  3327. INCO . 'PT' = 'COPI' (FIELDS . 'PT' . 0) ;
  3328. INCO . 'TGAS' = 'COPI' (FIELDS . 'TGAS' . 0) ;
  3329. INCO . 'UGAS' = 'COPI' (FIELDS . 'UGAS' . 0) ;
  3330. INCO . 'HGAS' = 'COPI' (FIELDS . 'HGAS' . 0) ;
  3331. INCO . 'RGAS' = 'COPI' (FIELDS . 'RGAS' . 0) ;
  3332. *INCO . 'ROR' = 'COPI' (FIELDS . 'ROR' . 0) ;
  3333. *INCO . 'ROCV' = 'COPI' (FIELDS . 'ROCV' . 0) ;
  3334. *
  3335. INCO . 'SUPPORT' . 'PT' = 'CELL' ;
  3336. INCO . 'SUPPORT' . 'TGAS' = 'CELL' ;
  3337. INCO . 'SUPPORT' . 'UGAS' = 'CELL' ;
  3338. INCO . 'SUPPORT' . 'HGAS' = 'CELL' ;
  3339. INCO . 'SUPPORT' . 'RGAS' = 'CELL' ;
  3340. *INCO . 'SUPPORT' . 'ROR' = 'CELL' ;
  3341. *INCO . 'SUPPORT' . 'ROCV' = 'CELL' ;
  3342. *
  3343. 'SI' LJUNC ;
  3344. INCO . 'SUPPORT' . 'Q' = 'JUNCTION' ;
  3345. 'SI' ('NEG' NBJ 0) ;
  3346. IQCEL = 'REDU' FIELDS . 'Q' . 0 (GEOINF . 'JUNCTION') ;
  3347. INCO . 'QCEL' = 'NOMC' 'QCEL' IQCEL ;
  3348. INCO . 'SUPPORT' . 'QCEL' = 'JUNCTION' ;
  3349. FIELDS . 'QCEL' . 0 = 'COPI' (INCO . 'QCEL') ;
  3350. 'FINSI' ;
  3351. 'SI' ('NEG' NBJO 0) ;
  3352. IQOUT = 'REDU' FIELDS . 'Q' . 0 (GEOINF . 'JUNCTOUT') ;
  3353. INCO . 'QOUT' = 'NOMC' 'QOUT' IQOUT ;
  3354. INCO . 'SUPPORT' . 'QOUT' = 'JUNCTOUT' ;
  3355. FIELDS . 'QOUT' . 0 = 'COPI' (INCO . 'QOUT') ;
  3356. 'FINSI' ;
  3357. 'FINSI' ;
  3358. *
  3359. I60 = 0 ;
  3360. 'REPE' BLO60 NCOMP1 ;
  3361. I60 = I60 + 1 ;
  3362. NAME1 = SET . 'COMPONENT' . I60 ;
  3363. RNAM1 = CHAINE 'R' NAME1 ;
  3364. INCO . RNAM1 = 'COPI' (FIELDS . RNAM1 . 0) ;
  3365. INCO . 'SUPPORT' . RNAM1 = 'CELL' ;
  3366. FIN BLO60 ;
  3367.  
  3368. *
  3369. 'SI' ('EXIS' INPUT 'WALL') ;
  3370. INCO . 'TWAL' = 'COPI' (FIELDS . 'TWAL' . 0) ;
  3371. INCO . 'SUPPORT' . 'TWAL' = 'WALL' ;
  3372. INCO . 'QWAL' = 'COPI' (FIELDS . 'QWAL' . 0) ;
  3373. INCO . 'SUPPORT' . 'QWAL' = 'LAYERT' ;
  3374. *
  3375. 'SI' ('EGA' FLAGC 1) ;
  3376. INCO . 'QW' = 'NOMC' 'QW'
  3377. ('REDU' ('COPI' (FIELDS . 'QWAL' . 0)) (GEOINF.'LAYERC')) ;
  3378. * INCO . 'SUPPORT' . 'QW' = 'LAYERC' ;
  3379.  
  3380. 'SI' ('EXISTE' INCO 'RH2O') ;
  3381. INCO . 'ECHA' = 'COPI' (SET . 'FIELDS' . 'ECHA' . 0) ;
  3382. INCO . 'SUPPORT' . 'ECHA' = 'LAYERT' ;
  3383. INCO . 'ALAT' = 'COPI' (SET . 'FIELDS' . 'ALAT' . 0) ;
  3384. INCO . 'SUPPORT' . 'ALAT' = 'LAYERT' ;
  3385. 'FINSI' ;
  3386. 'FINSI' ;
  3387. *
  3388. 'SI' ('EGA' FLAGO 1) ;
  3389. INCO . 'QO' = 'NOMC' 'QO'
  3390. ('REDU' ('COPI' (FIELDS . 'QWAL' . 0)) (GEOINF.'LAYERO')) ;
  3391. * INCO . 'SUPPORT' . 'QO' = 'LAYERO' ;
  3392. 'FINSI' ;
  3393. *
  3394. 'SI' ('EGA' FLAGS 1) ;
  3395. INCO . 'QS' = 'NOMC' 'QS'
  3396. ('REDU' ('COPI' (FIELDS . 'QWAL' . 0)) (GEOINF.'LAYERS')) ;
  3397. * INCO . 'SUPPORT' . 'QS' = 'LAYERS' ;
  3398. 'FINSI' ;
  3399. *
  3400. 'SI' ('EGA' 'OFF' (INPUT . 'T_COUPLING')) ;
  3401. 'SI' ('EGA' FLAGC 1) ;
  3402. INCO . 'QP' = EXCO 'QW' (INCO . 'QW') 'QP' ;
  3403. * INCO . 'SUPPORT' . 'QP' = 'LAYERW' ;
  3404. 'FINSI' ;
  3405. *
  3406. 'SI' ('EGA' FLAGS 1) ;
  3407. INCO . 'QR' = EXCO 'QS' (INCO . 'QS') 'QR' ;
  3408. * INCO . 'SUPPORT' . 'QR' = 'LAYERS' ;
  3409. 'FINSI' ;
  3410. 'FINSI' ;
  3411. 'FINSI' ;
  3412. *
  3413. 'SI' ('EXIS' (INPUT . 'CELL') 'XV') ;
  3414. INCO . 'XV' = 'COPI' (FIELDS . 'XV' . 0) ;
  3415. INCO . 'SUPPORT' . 'XV' = 'CELL' ;
  3416. 'FINSI' ;
  3417. *
  3418. *
  3419. 'SI' ('EXIS' (INPUT . 'CELL') 'MLIQ') ;
  3420. INCO . 'MLIQ' = 'COPI' (FIELDS . 'MLIQ' . 0) ;
  3421. INCO . 'SUPPORT' . 'MLIQ' = 'CELL' ;
  3422. INCO . 'ULIQ' = 'COPI' (FIELDS . 'ULIQ' . 0) ;
  3423. INCO . 'SUPPORT' . 'ULIQ' = 'CELL' ;
  3424. INCO . 'HLIQ' = 'COPI' (FIELDS . 'HLIQ' . 0) ;
  3425. INCO . 'SUPPORT' . 'HLIQ' = 'CELL' ;
  3426. INCO . 'VLIQ' = 'COPI' (FIELDS . 'VLIQ' . 0) ;
  3427. INCO . 'SUPPORT' . 'VLIQ' = 'CELL' ;
  3428. INCO . 'TLIQ' = 'COPI' (FIELDS . 'TLIQ' . 0) ;
  3429. INCO . 'SUPPORT' . 'TLIQ' = 'CELL' ;
  3430. INCO . 'QEVA' = 'COPI' (FIELDS . 'QEVA' . 0) ;
  3431. INCO . 'SUPPORT' . 'QEVA' = 'CELL' ;
  3432. INCO . 'MEVA' = 'COPI' (FIELDS . 'MEVA' . 0) ;
  3433. INCO . 'SUPPORT' . 'MEVA' = 'CELL' ;
  3434. INCO . 'UEVA' = 'COPI' (FIELDS . 'UEVA' . 0) ;
  3435. INCO . 'SUPPORT' . 'UEVA' = 'CELL' ;
  3436. INCO . 'QLS' = 'COPI' (FIELDS . 'QLS' . 0) ;
  3437. INCO . 'SUPPORT' . 'QLS' = 'CELL' ;
  3438. INCO . 'MLS' = 'COPI' (FIELDS . 'MLS' . 0) ;
  3439. INCO . 'SUPPORT' . 'MLS' = 'CELL' ;
  3440. INCO . 'ULS' = 'COPI' (FIELDS . 'ULS' . 0) ;
  3441. INCO . 'SUPPORT' . 'ULS' = 'CELL' ;
  3442. INCO . 'MEVALOC' = 'COPI' (FIELDS . 'MEVA' . 0) ;
  3443. INCO . 'UEVALOC' = 'COPI' (FIELDS . 'UEVA' . 0) ;
  3444. *
  3445. * Cas de l'Aspersion
  3446. * ------------------
  3447. 'SI' ('EXIS' INPUT 'SPRAY' ) ;
  3448. INCO . 'MCND' = 'COPI' (FIELDS . 'MCND' . 0) ;
  3449. INCO . 'SUPPORT' . 'MCND' = 'CELL' ;
  3450. INCO . 'UCND' = 'COPI' (FIELDS . 'UCND' . 0) ;
  3451. INCO . 'SUPPORT' . 'UCND' = 'CELL' ;
  3452. INCO . 'UCNV' = 'COPI' (FIELDS . 'UCNV' . 0) ;
  3453. INCO . 'SUPPORT' . 'UCNV' = 'CELL' ;
  3454. INCO . 'MEBU' = 'COPI' (FIELDS . 'MEBU' . 0) ;
  3455. INCO . 'SUPPORT' . 'MEBU' = 'CELL' ;
  3456. INCO . 'UEBU' = 'COPI' (FIELDS . 'UEBU' . 0) ;
  3457. INCO . 'SUPPORT' . 'UEBU' = 'CELL' ;
  3458. INCO . 'MSPR' = 'COPI' (FIELDS . 'MSPR' . 0) ;
  3459. INCO . 'SUPPORT' . 'MSPR' = 'CELL' ;
  3460. INCO . 'USPR' = 'COPI' (FIELDS . 'USPR' . 0) ;
  3461. INCO . 'SUPPORT' . 'USPR' = 'CELL' ;
  3462. 'FINSI' ;
  3463. *
  3464. * Cas de la Combustion
  3465. * --------------------
  3466. 'SI' ('EXIS' INPUT 'BURN' ) ;
  3467. INCO . 'ECOM' = 'COPI' (FIELDS . 'ECOM' . 0) ;
  3468. INCO . 'SUPPORT' . 'ECOM' = 'CELL' ;
  3469. 'FINSI' ;
  3470. *
  3471. * Cas des Recombineurs
  3472. * --------------------
  3473. 'SI' ('EXIS' INPUT 'RECOMB' ) ;
  3474. INCO . 'TREC' = 'COPI' (FIELDS . 'TREC' . 0) ;
  3475. INCO . 'SUPPORT' . 'TREC' = 'CELL' ;
  3476. INCO . 'QREC' = 'COPI' (FIELDS . 'QREC' . 0) ;
  3477. INCO . 'SUPPORT' . 'QREC' = 'CELL' ;
  3478. INCO . 'TSRE' = 'COPI' (FIELDS . 'TSRE' . 0) ;
  3479. INCO . 'SUPPORT' . 'TSRE' = 'CELL' ;
  3480. INCO . 'EREC' = 'COPI' (FIELDS . 'EREC' . 0) ;
  3481. INCO . 'SUPPORT' . 'EREC' = 'CELL' ;
  3482. 'FINSI' ;
  3483. *
  3484. * Cas de La puissance residuelle
  3485. * ------------------------------
  3486. 'SI' ('EXIS' INPUT 'PRESI' ) ;
  3487. INCO . 'Y1' = 'COPI' (FIELDS . 'Y1' . 0) ;
  3488. INCO . 'SUPPORT' . 'Y1' = 'CELL' ;
  3489. INCO . 'Y2' = 'COPI' (FIELDS . 'Y2' . 0) ;
  3490. INCO . 'SUPPORT' . 'Y2' = 'CELL' ;
  3491. INCO . 'Y3' = 'COPI' (FIELDS . 'Y3' . 0) ;
  3492. INCO . 'SUPPORT' . 'Y3' = 'CELL' ;
  3493. 'FINSI' ;
  3494. *
  3495. 'FINSI' ;
  3496. *
  3497. *
  3498. 'SI' ('EXIS' INPUT 'JULIQ') ;
  3499. INCO . 'QLIQ' = 'COPI' (FIELDS . 'QLIQ' . 0) ;
  3500. INCO . 'SUPPORT' . 'QLIQ' = 'JULIQ' ;
  3501. 'FINSI' ;
  3502. *
  3503. ***********************************************************************
  3504. *
  3505. SET . 'INCO' = INCO ;
  3506. *
  3507. ***********************************************************************
  3508. * Données générales
  3509. ***********************************************************************
  3510. *
  3511. SET . 'COUPLAGE_WALL' = INPUT . 'T_COUPLING' ;
  3512. SET . 'RELAX' = INPUT . 'RELAX' ;
  3513. SET . 'RELINT' = INPUT . 'RELINT' ;
  3514. SET . 'IMPR' = INPUT . 'IMPR' ;
  3515. SET . 'NAMECASE' = INPUT . 'NAMECASE' ;
  3516. 'SI' ('EGA' (input . 'QSONIC') 'ON') ;
  3517. SET . 'QSONIC' = vrai ;
  3518. SET . 'QLIMIT' = input . 'QLIMIT' ;
  3519. 'SINO' ;
  3520. SET . 'QSONIC' = faux ;
  3521. 'FINSI' ;
  3522.  
  3523. *
  3524. ***********************************************************************
  3525. * Création des indices PHYSICAL et TIMECALC
  3526. ***********************************************************************
  3527. *
  3528. SET . 'PHYSICAL' = INPUT . 'PHYSICAL' ;
  3529. *
  3530. *
  3531. * --- intégration des propriétés matérielles de murs ---
  3532. *
  3533. 'SI' ('EXIS' INPUT 'WALL') ;
  3534. * boucle sur les murs
  3535. I140 = 0 ;
  3536. 'REPE' BLO140 NBWALL ;
  3537. I140 = I140 + 1 ;
  3538. II140 = INDW1 . I140 ;
  3539. PTC1 = INPUT . 'WALL' . 'LOCATION' . II140 ;
  3540. * nombre de points dans le mur
  3541. NBNO1 = NBEL (SET . 'GEOINF' . 'INWALL' . PTC1) ;
  3542. * traitement particulier pour le premier et le dernier pt du mur
  3543. PTW1 = (SET . 'GEOINF' . 'INWALL' . PTC1) POIN 1 ;
  3544. PTW2 = (SET . 'GEOINF' . 'INWALL' . PTC1) POIN NBNO1 ;
  3545. * nombre de couche dans le mur
  3546. NBLAY1 = INPUT . 'WALL' . 'NLAYER' . II140 ;
  3547. * coefficients pour la formulation d'Uchida
  3548. XUCH1 = INPUT . 'WALL' . 'UCHIDA' . II140 . 1 ;
  3549. XUCH2 = INPUT . 'WALL' . 'UCHIDA' . II140 . NBLAY1 ;
  3550. 'SI' (I140 'EGA' 1) ;
  3551. SET .'PHYSICAL' . 'RW' = (MANU 'CHPO' PTW1 1 '1RW' 0.
  3552. 'NATURE' 'DISCRET') ET
  3553. (MANU 'CHPO' PTW2 1 '2RW' 0.
  3554. 'NATURE' 'DISCRET');
  3555. SET .'PHYSICAL' . 'CW' = (MANU 'CHPO' PTW1 1 '1CW' 0.
  3556. 'NATURE' 'DISCRET') ET
  3557. (MANU 'CHPO' PTW2 1 '2CW' 0.
  3558. 'NATURE' 'DISCRET');
  3559. SET .'PHYSICAL' . 'LW' = (MANU 'CHPO' PTW1 1 '1LW' 0.
  3560. 'NATURE' 'DISCRET') ET
  3561. (MANU 'CHPO' PTW2 1 '2LW' 0.
  3562. 'NATURE' 'DISCRET');
  3563. SET .'PHYSICAL' . 'TW' = (MANU 'CHPO' PTW1 1 '1TW' 0.
  3564. 'NATURE' 'DISCRET') ET
  3565. (MANU 'CHPO' PTW2 1 '2TW' 0.
  3566. 'NATURE' 'DISCRET');
  3567. SET .'PHYSICAL' . 'UCHI' = (MANU 'CHPO' PTW1 1 'SCAL' XUCH1
  3568. 'NATURE' 'DISCRET') ET
  3569. (MANU 'CHPO' PTW2 1 'SCAL' XUCH2
  3570. 'NATURE' 'DISCRET');
  3571. 'SINON' ;
  3572. SET .'PHYSICAL' . 'RW' =
  3573. (SET .'PHYSICAL' . 'RW') ET
  3574. ((MANU 'CHPO' PTW1 1 '1RW' 0. 'NATURE' 'DISCRET')
  3575. ET (MANU 'CHPO' PTW2 1 '2RW' 0. 'NATURE' 'DISCRET')) ;
  3576. SET .'PHYSICAL' . 'CW' =
  3577. (SET .'PHYSICAL' . 'CW') ET
  3578. ((MANU 'CHPO' PTW1 1 '1CW' 0. 'NATURE' 'DISCRET')
  3579. ET (MANU 'CHPO' PTW2 1 '2CW' 0. 'NATURE' 'DISCRET')) ;
  3580. SET .'PHYSICAL' . 'LW' =
  3581. (SET .'PHYSICAL' . 'LW') ET
  3582. ((MANU 'CHPO' PTW1 1 '1LW' 0. 'NATURE' 'DISCRET')
  3583. ET (MANU 'CHPO' PTW2 1 '2LW' 0. 'NATURE' 'DISCRET')) ;
  3584. SET .'PHYSICAL' . 'TW' =
  3585. (SET .'PHYSICAL' . 'TW') ET
  3586. ((MANU 'CHPO' PTW1 1 '1TW' 0. 'NATURE' 'DISCRET')
  3587. ET (MANU 'CHPO' PTW2 1 '2TW' 0. 'NATURE' 'DISCRET')) ;
  3588. SET .'PHYSICAL' . 'UCHI' =
  3589. (SET .'PHYSICAL' . 'UCHI') ET
  3590. ((MANU 'CHPO' PTW1 1 'SCAL' XUCH1 'NATURE' 'DISCRET')
  3591. ET (MANU 'CHPO' PTW2 1 'SCAL' XUCH2 'NATURE' 'DISCRET')) ;
  3592. 'FINSI' ;
  3593. * boucle sur les couches
  3594. IPT1 = 0 ;
  3595. I142 = 0 ;
  3596. NLAY1 = INPUT . 'WALL' . 'NLAYER' . II140 ;
  3597. INDWM1 = 'INDE' (INPUT . 'WALL' . 'MATERIAL' . II140) ;
  3598. 'REPE' BLO142 NLAY1 ;
  3599. I142 = I142 + 1 ;
  3600. II142 = INDWM1 . I142 ;
  3601. * nombre de points internes dans la couche
  3602. NBNO1 = INPUT . 'WALL' . 'NODES' . II140 . II142 ;
  3603. * pour la couche : RHO, CP, LAMBDA , épaisseurs trafiquées
  3604. RHO1 = INPUT . 'WALL' . 'RHO' . II140 . II142 ;
  3605. CP1 = INPUT . 'WALL' . 'CP' . II140 . II142 ;
  3606. LBD1 = INPUT . 'WALL' . 'LAMBDA' . II140 . II142 ;
  3607. EPAI1 = INPUT . 'WALL' . 'THICK' . II140 . II142 ;
  3608. EPAI1 = EPAI1 / (NBNO1 + 1) ;
  3609. * récupération du premier et du dernier point de la couche
  3610. PTL1 = (SET . 'GEOINF' . 'INWALL' . PTC1)
  3611. POIN (IPT1 + 1) ;
  3612. PTL2 = (SET . 'GEOINF' . 'INWALL' . PTC1)
  3613. POIN (IPT1 + NBNO1 + 2) ;
  3614. IPT1 = IPT1 + 1 ;
  3615. * traitement pour le premier et le dernier point de la couche
  3616. SET .'PHYSICAL' . 'RW' = (SET .'PHYSICAL' . 'RW') 'ET'
  3617. (('MANU' 'CHPO' PTL1 1 '2RW' RHO1 'NATURE' 'DISCRET') 'ET'
  3618. ('MANU' 'CHPO' PTL2 1 '1RW' RHO1 'NATURE' 'DISCRET')) ;
  3619. SET .'PHYSICAL' . 'CW' = (SET .'PHYSICAL' . 'CW') 'ET'
  3620. (('MANU' 'CHPO' PTL1 1 '2CW' CP1 'NATURE' 'DISCRET') 'ET'
  3621. ('MANU' 'CHPO' PTL2 1 '1CW' CP1 'NATURE' 'DISCRET')) ;
  3622. SET .'PHYSICAL' . 'LW' = (SET .'PHYSICAL' . 'LW') 'ET'
  3623. (('MANU' 'CHPO' PTL1 1 '2LW' LBD1 'NATURE' 'DISCRET') 'ET'
  3624. ('MANU' 'CHPO' PTL2 1 '1LW' LBD1 'NATURE' 'DISCRET')) ;
  3625. SET .'PHYSICAL' . 'TW' = (SET .'PHYSICAL' . 'TW') 'ET'
  3626. (('MANU' 'CHPO' PTL1 1 '2TW' EPAI1 'NATURE' 'DISCRET') 'ET'
  3627. ('MANU' 'CHPO' PTL2 1 '1TW' EPAI1 'NATURE' 'DISCRET')) ;
  3628. * traitement pour les points internes de la couche 'SI' besoin
  3629. 'SI' (NBNO1 'NEG' 0) ;
  3630. 'REPE' BLO143 NBNO1 ;
  3631. PTL3 = (SET . 'GEOINF' . 'INWALL' . PTC1) 'POIN' (IPT1 + &BLO143);
  3632. SET .'PHYSICAL' . 'RW' = (SET .'PHYSICAL' . 'RW') 'ET'
  3633. ('MANU' 'CHPO' PTL3 2 '1RW' RHO1 '2RW' RHO1 'NATURE' 'DISCRET');
  3634. SET .'PHYSICAL' . 'CW' = (SET .'PHYSICAL' . 'CW') 'ET'
  3635. ('MANU' 'CHPO' PTL3 2 '1CW' CP1 '2CW' CP1 'NATURE' 'DISCRET');
  3636. SET .'PHYSICAL' . 'LW' = (SET .'PHYSICAL' . 'LW') 'ET'
  3637. ('MANU' 'CHPO' PTL3 2 '1LW' LBD1 '2LW' LBD1 'NATURE' 'DISCRET');
  3638. SET .'PHYSICAL' . 'TW' = (SET .'PHYSICAL' . 'TW') 'ET'
  3639. ('MANU' 'CHPO' PTL3 2 '1TW' EPAI1 '2TW' EPAI1 'NATURE' 'DISCRET');
  3640. 'FIN' BLO143 ;
  3641. IPT1 = IPT1 + NBNO1 ;
  3642. 'FINSI' ;
  3643. 'FIN' BLO142 ;
  3644. *
  3645. FIN BLO140 ;
  3646. *
  3647. 'SI' (EXISTE GEOINF 'LAYERC') ;
  3648. SET.'PHYSICAL'.'UCHI' = 'REDU' (SET.'PHYSICAL'.'UCHI')
  3649. (GEOINF.'LAYERC') ;
  3650. 'FINSI' ;
  3651. 'SI' LEXTE ;
  3652. SET . 'PHYSICAL' . 'OUTD' = INPUT . 'OUTD' ;
  3653. 'FINSI' ;
  3654. 'FINSI' ;
  3655. SET . 'TIMECALC' = INPUT . 'TIMECALC' ;
  3656. *
  3657. *- Création de la partie constante du modele de TAGAMI si besoin
  3658. *
  3659. 'SI' ('EXISTE' (INPUT . 'PHYSICAL') 'CONDENSE') ;
  3660. COND1 = INPUT . 'PHYSICAL' . 'CONDENSE' ;
  3661. 'SI' (('EGA' COND1 'TAGAMI') 'OU' ('EXIST' (INPUT.'PHYSICAL') 'CTAG')
  3662. 'OU' ('EXIST' (INPUT.'PHYSICAL') 'TTAG')) ;
  3663. TTAG = SET . 'PHYSICAL' . 'TTAG' ;
  3664. CTAG = SET . 'PHYSICAL' . 'CTAG' ;
  3665. GEO1 = SET . 'GEOINF' . 'CELL' ;
  3666. ENE0 = 'PROG' ;
  3667. ETAG = 'MANU' 'CHPO' GEO1 1 'SCAL' 0. 'NATURE' 'DISCRET' ;
  3668. 'SI' ('EXIS' (SET . 'BOUNDARY' . 'QH2O')) ;
  3669. TAB1 = SET . 'BOUNDARY' . 'QH2O' ;
  3670. IND1 = 'INDE' TAB1 ;
  3671. DIM1 = 'DIME' IND1 ;
  3672. 'REPE' BLO200 DIM1 ;
  3673. IND2 = IND1 . &BLO200 ;
  3674. PT2 = TAB1 . IND2 . 'CELL' ;
  3675. * ENE2 = 'MINI' ('TIRE' (TAB1 . IND2 . 'CHARG') TTAG 'ENER') ;
  3676. ENE2 = 'IPOL' TTAG (TAB1 . IND2 . 'EVOLE') ;
  3677. ETA2 = 'MANU' 'CHPO' PT2 1 'SCAL' ENE2 'NATURE' 'DISCRET' ;
  3678. ETAG = ETAG + ETA2 ;
  3679. 'FIN' BLO200 ;
  3680. 'FINSI' ;
  3681. VOL1 = SET . 'DATA' . 'VOL' ;
  3682. SET . 'PHYSICAL' . 'TAGA' = 'MAXI'
  3683. (ETAG / VOL1 / TTAG ** 0.6 * CTAG) ;
  3684. SET . 'PHYSICAL' . 'TTAGA' = (ETAG / VOL1 / TTAG ** 0.6 * CTAG) ;
  3685. 'FINSI' ;
  3686. 'FINSI' ;
  3687. *
  3688. *- Modification eventuelle de l'énergie injectée pour injection H2O
  3689. *
  3690. 'SI' ('EXIS' INPUT 'INJECTION') ;
  3691. SET . 'INJECTION' = INPUT . 'INJECTION' ;
  3692. 'FINSI' ;
  3693. *
  3694. *- Regroupement des correspondance nom des structures / support associé
  3695. *
  3696. set . 'LOCATION' = table ;
  3697. set . 'LOCATION' . 'CELL' = input . 'CELL' . 'LOCATION' ;
  3698. 'SI' ('EXIS' input 'JUNCTION') ;
  3699. set . 'LOCATION' . 'JUNCTION' = input . 'JUNCTION' . 'LOCATION' ;
  3700. 'FINSI' ;
  3701. 'SI' ('EXIS' input 'WALL') ;
  3702. set . 'LOCATION' . 'WALL' = input . 'WALL' . 'LOCATION' ;
  3703. 'FINSI' ;
  3704. *
  3705. 'FINP' SET ;
  3706. *$$$$ TO_INPUT
  3707. 'DEBP' TO_INPUT FILENAME*'MOT' ;
  3708. *
  3709. *
  3710. 'OPTI' 'ACQU' FILENAME ;
  3711. *
  3712. NCOMP1 = 0 ;
  3713. *
  3714. * --- Déclaration des tables ---
  3715. *
  3716. INPUT = 'TABLE' 'INPUT' ;
  3717. INPUT . 'ERROR' = 1 ;
  3718. *
  3719. TCELL = 'TABLE' ;
  3720. TCELL . 'LOCATION' = 'TABLE' ;
  3721. TCELL . 'VOL' = 'TABLE' ;
  3722. TCELL . 'ASUMP' = 'TABLE' ;
  3723. TCELL . 'VMAX' = 'TABLE' ;
  3724. TCELL . 'APERTURE' = 'TABLE' ;
  3725. TCELL . 'TGAS' = 'TABLE' ;
  3726. TCELL . 'PT' = 'TABLE' ;
  3727. TCELL . 'UGAS' = 'TABLE' ;
  3728. TCELL . 'HGAS' = 'TABLE' ;
  3729. TCELL . 'LCOMB' = 'TABLE' ;
  3730. *
  3731. TSUMP = 'TABLE' ;
  3732. TSUMP . 'LOCATION' = 'TABLE' ;
  3733. *
  3734. TEXT1 = 'TABLE' ;
  3735. TEXT1 . 'TPS' = 'TABLE' ;
  3736. TEXT1 . 'TEMP' = 'TABLE' ;
  3737. TEXT1 . 'LOCATION' = 'TABLE' ;
  3738. *
  3739. JUNCT = 'TABLE' ;
  3740. JUNCT . 'LOCATION' = 'TABLE' ;
  3741. JUNCT . 'FROM' = 'TABLE' ;
  3742. JUNCT . 'TO' = 'TABLE' ;
  3743. JUNCT . 'AREA' = 'TABLE' ;
  3744. JUNCT . 'DISC' = 'TABLE' ;
  3745. JUNCT . 'LENGTH' = 'TABLE' ;
  3746. JUNCT . 'Q' = 'TABLE' ;
  3747. *
  3748. JULCT = 'TABLE' ;
  3749. JULCT . 'LOCATION' = 'TABLE' ;
  3750. JULCT . 'FROM' = 'TABLE' ;
  3751. JULCT . 'TO' = 'TABLE' ;
  3752. *
  3753. THEWAL = 'TABLE' ;
  3754. THEWAL . 'LOCATION' = 'TABLE' ;
  3755. THEWAL . 'FROM' = 'TABLE' ;
  3756. THEWAL . 'TYPEFROM' = 'TABLE' ;
  3757. THEWAL . 'TYPETO' = 'TABLE' ;
  3758. THEWAL . 'TO' = 'TABLE' ;
  3759. THEWAL . 'AREA' = 'TABLE' ;
  3760. THEWAL . 'TWAL1' = 'TABLE' ;
  3761. THEWAL . 'TWAL2' = 'TABLE' ;
  3762. THEWAL . 'ECHAN1' = 'TABLE' ;
  3763. THEWAL . 'ECHAN2' = 'TABLE' ;
  3764. THEWAL . 'NLAYER' = 'TABLE' ;
  3765. THEWAL . 'MATERIAL' = 'TABLE' ;
  3766. THEWAL . 'NODES' = 'TABLE' ;
  3767. THEWAL . 'RHO' = 'TABLE' ;
  3768. THEWAL . 'CP' = 'TABLE' ;
  3769. THEWAL . 'LAMBDA' = 'TABLE' ;
  3770. THEWAL . 'THICK' = 'TABLE' ;
  3771. THEWAL . 'UCHIDA' = 'TABLE' ;
  3772. THEWAL . 'COND1' = 'TABLE' ;
  3773. THEWAL . 'COND2' = 'TABLE' ;
  3774. *
  3775. SPRAY = 'TABLE' ;
  3776. SPRAY . 'LOCATION' = 'TABLE' ;
  3777. *
  3778. BURN = 'TABLE' ;
  3779. BURN . 'LOCATION' = 'TABLE' ;
  3780. BURN . 'TIME' = 'TABLE' ;
  3781. BURN . 'IDEB' = 'TABLE' ;
  3782. BURN . 'RAYON' = 'TABLE' ;
  3783. BURN . 'SPEED' = 'TABLE' ;
  3784. BURN . 'MH2' = 'TABLE' ;
  3785. BURN . 'MCO' = 'TABLE' ;
  3786. BURN . 'QLIB' = 'TABLE' ;
  3787. BURN . 'SH2' = 'TABLE' ;
  3788. BURN . 'SCO' = 'TABLE' ;
  3789. BURN . 'ALPHA' = 'TABLE' ;
  3790. BURN . 'RON2' = 'TABLE' ;
  3791. BURN . 'SIGMA' = 'TABLE' ;
  3792. BURN . 'TDEB' = 'TABLE' ;
  3793. *
  3794. RECOMB = 'TABLE' ;
  3795. RECOMB . 'LOCATION' = 'TABLE' ;
  3796. RECOMB . 'TARGET' = 'TABLE' ;
  3797. RECOMB . 'TYPE' = 'TABLE' ;
  3798. RECOMB . 'NSECTION' = 'TABLE' ;
  3799. RECOMB . 'PARAM1' = 'TABLE' ;
  3800. RECOMB . 'PARAM2' = 'TABLE' ;
  3801. RECOMB . 'PARAM3' = 'TABLE' ;
  3802. RECOMB . 'PARAM4' = 'TABLE' ;
  3803. RECOMB . 'PARAM5' = 'TABLE' ;
  3804. RECOMB . 'PUISSANCE' = 'TABLE' ;
  3805. RECOMB . 'QHOUSING' = 'TABLE' ;
  3806. RECOMB . 'HRAPP' = 'TABLE' ;
  3807. RECOMB . 'CRAPP' = 'TABLE' ;
  3808. *
  3809. PRESI = 'TABLE' ;
  3810. PRESI . 'LOCATION' = 'TABLE' ;
  3811. PRESI . 'GAMRG' = 'TABLE' ;
  3812. PRESI . 'GAMRA' = 'TABLE' ;
  3813. PRESI . 'GAMAP' = 'TABLE' ;
  3814. PRESI . 'BETAP' = 'TABLE' ;
  3815. PRESI . 'LAMBDA' = 'TABLE' ;
  3816. PRESI . 'LAMBDAP' = 'TABLE' ;
  3817. PRESI . 'TRAB' = 'TABLE' ;
  3818. PRESI . 'SOURCE' = 'TABLE' ;
  3819. *
  3820. BOUNDARY = 'TABLE' ;
  3821. PHYSICAL = 'TABLE' ;
  3822. TMATER = 'TABLE' ;
  3823. TIMECALC = 'TABLE' ;
  3824. TCOMPO = 'TABLE' ;
  3825. *
  3826. * --- indicateur de puisard externe et numéro de jonction
  3827. ISUMP = 0 ;
  3828. IJULC = 0 ;
  3829. *
  3830. * --- indicateur de materiau de type WAL, WZN, WPERMALI ou WCONCRET
  3831. IAL = 0 ;
  3832. IZN = 0 ;
  3833. IPERMALI = 0 ;
  3834. ICONCRET = 0 ;
  3835. *
  3836. * --- Flags pour la définition de la position des compartiments et
  3837. * --- des jonctions entre compartiments
  3838. XCOK = 0 ;
  3839. YCOK = 0 ;
  3840. XJOK = 0 ;
  3841. YJOK = 0 ;
  3842. *
  3843. * --- Initialisation pour l'aspersion, la combustion, les recombineurs
  3844. * --- et la puissance résiduelle.
  3845. NBASP = 0 ;
  3846. NBCOMB = 0 ;
  3847. NBRECOMB = 0 ;
  3848. NBRPRESI = 0 ;
  3849. *
  3850. * --- nombre de murs et nombre de couches
  3851. NBWALL = 0 ;
  3852. NBEXTE = 0 ;
  3853. NBLAYE = 0 ;
  3854. *
  3855. * --- ICELL (resp. IJUNC) doivent contenir le nom d'une cellule (resp.
  3856. * --- jonction entre deux compartiments). Ces noms servent à indicer
  3857. * --- un certain nombre de TABLEs. On commence à les initialiser à 0.
  3858. * --- A posteriori, on verifiera qu'il n'existe pas d'indice 0 dans
  3859. * --- les tables. Si il en existe un, c'est qu'un mot clef associé à
  3860. * --- une cellule (resp. une jonction) a été lu alors qu'aucune cellule
  3861. * --- (resp. jonction) n'était déclaré. Ibid avec IWALL pour les murs.
  3862. ICELL = 0 ;
  3863. IJUNC = 0 ;
  3864. IWALL = 0 ;
  3865. IEXTE = 0 ;
  3866. *
  3867. * --- ILAYER doit etre un entier. On initialise un MOT pour tester.
  3868. ILAYER = 'NOTDONE' ;
  3869. *
  3870. * --- lecture des mots clés ---
  3871. *
  3872. * ILECT : Vaut 0 si on doit lire et décodé une nouvelle ligne ; Egal
  3873. * à 1 si la derniere ligne lue doit etre décodé. Ce dernier cas se
  3874. * produit en quittant le bloc de données associées à l'aspersion.
  3875. *
  3876. * IKEY : Vaut 0 tant que le mot clef n'est pas trouvé, 1 si OK
  3877. *
  3878. ifin = 0 ;
  3879. ILECT = 0 ;
  3880. MESS0 = 'WARNING : default value for ' ;
  3881. TXT0 = '****** DATASET INPUT FILE : ' ;
  3882. 'REPE' BLO10 ;
  3883. IKEY = 0 ;
  3884. 'SI' (ILECT 'EGA' 0) ;
  3885. 'ACQU' NAME1 NAME2 ;
  3886. 'SINO' ;
  3887. ILECT = 0 ;
  3888. 'FINSI' ;
  3889. * - 1 --- on saute les lignes de commentaires ---
  3890. 'SI' ('EGA' NAME1 '#') ;
  3891. IKEY = 1 ;
  3892. 'SINO' ;
  3893. 'MESS' NAME1 ' ' NAME2 ;
  3894. 'FINSI' ;
  3895. * - 2 --- fin du fichier ---
  3896. 'SI' ('EGA' NAME1 'END') ;
  3897. IKEY = 1 ;
  3898. INPUT . 'ERROR' = 0 ;
  3899. IFIN = 1 ;
  3900. 'FINSI' ;
  3901. * - 3 --- titre du cas ---
  3902. 'SI' ('EGA' NAME1 'TITLE') ;
  3903. IKEY = 1 ;
  3904. 'SI' ('EGA' ('TYPE' NAME2) 'MOT ') ;
  3905. INPUT . 'NAMECASE' = 'MOT' NAME2 ;
  3906. 'SINO' ;
  3907. TXT1 = 'CHAI' TXT0 'NAMECASE bad type' ;
  3908. 'QUIT' BLO10 ;
  3909. 'FINSI' ;
  3910. 'FINSI' ;
  3911. * - 4 --- nom du compartiment courant ---
  3912. 'SI' ('EGA' NAME1 'CELL') ;
  3913. IKEY = 1 ;
  3914. 'SI' ('EGA' ('TYPE' NAME2) 'MOT ') ;
  3915. ICELL = 'MOT' NAME2 ;
  3916. ISUMP = 0 ;
  3917. IINH2O = 0 ;
  3918. IINH2 = 0 ;
  3919. IINN2 = 0 ;
  3920. IINO2 = 0 ;
  3921. IINCO2 = 0 ;
  3922. IINCO = 0 ;
  3923. IINHE = 0 ;
  3924. IOUT = 0 ;
  3925. IISBP = 0 ;
  3926. 'SINO' ;
  3927. TXT1 = 'CHAI' TXT0 'CELL bad type' ;
  3928. 'QUIT' BLO10 ;
  3929. 'FINSI' ;
  3930. 'FINSI' ;
  3931. * - 5 --- abscisse du compartiment ou du puisard externe courant ---
  3932. 'SI' ('EGA' NAME1 'XC') ;
  3933. IKEY = 1 ;
  3934. 'SI' ('EGA' ('TYPE' NAME2) 'FLOTTANT') ;
  3935. XC1 = NAME2 ;
  3936. 'SI' (YCOK 'EGA' 1) ;
  3937. PT1 = XC1 YC1 ;
  3938. TCELL . 'LOCATION' . ICELL = PT1 ;
  3939. YCOK = 0 ;
  3940. 'SI' (ISUMP 'EGA' 1) ;
  3941. TSUMP . 'LOCATION' . ICELL = PT1 ;
  3942. 'FINSI' ;
  3943. 'SINO' ;
  3944. XCOK = 1 ;
  3945. 'FINSI' ;
  3946. 'SINO' ;
  3947. TXT1 = 'CHAI' TXT0 'CELL ' ICELL ' XC bad type' ;
  3948. 'QUIT' BLO10 ;
  3949. 'FINSI' ;
  3950. 'FINSI' ;
  3951. * - 6 --- ordonnée du compartiment courant ---
  3952. 'SI' ('EGA' NAME1 'YC') ;
  3953. IKEY = 1 ;
  3954. 'SI' ('EGA' ('TYPE' NAME2) 'FLOTTANT') ;
  3955. YC1 = NAME2 ;
  3956. 'SI' (XCOK 'EGA' 1) ;
  3957. PT1 = XC1 YC1 ;
  3958. TCELL . 'LOCATION' . ICELL = PT1 ;
  3959. XCOK = 0 ;
  3960. 'SI' (ISUMP 'EGA' 1) ;
  3961. TSUMP . 'LOCATION' . ICELL = PT1 ;
  3962. 'FINSI' ;
  3963. 'SINO' ;
  3964. YCOK = 1 ;
  3965. 'FINSI' ;
  3966. 'SINO' ;
  3967. TXT1 = 'CHAI' TXT0 'CELL ' ICELL ' YC bad type' ;
  3968. 'QUIT' BLO10 ;
  3969. 'FINSI' ;
  3970. 'FINSI' ;
  3971. * - 7 --- volume du compartiment courant ---
  3972. 'SI' ('EGA' NAME1 'VOLUME') ;
  3973. IKEY = 1 ;
  3974. 'SI' ('EGA' ('TYPE' NAME2) 'FLOTTANT') ;
  3975. TCELL . 'VOL' . ICELL = NAME2 ;
  3976. 'SINON' ;
  3977. TXT1 = 'CHAI' TXT0 'CELL ' ICELL ' VOLUME bad type' ;
  3978. 'QUIT' BLO10 ;
  3979. 'FINSI' ;
  3980. 'FINSI' ;
  3981. * - 8 --- Condition initiale pour la pression totale ---
  3982. * --- dans le compartiment courant ---
  3983. 'SI' ('EGA' NAME1 'PRESSURE') ;
  3984. IKEY = 1 ;
  3985. 'SI' ('EGA' ('TYPE' NAME2) 'FLOTTANT') ;
  3986. TCELL . 'PT' . ICELL = NAME2 ;
  3987. 'SINON' ;
  3988. TXT1 = 'CHAI' TXT0 'CELL ' ICELL ' PRESSURE bad type' ;
  3989. 'QUIT' BLO10 ;
  3990. 'FINSI' ;
  3991. 'FINSI' ;
  3992. * - 9 --- Condition initiale pour la température du mélange gazeux ---
  3993. * --- dans le compartiment courant ---
  3994. 'SI' ('EGA' NAME1 'T_GAS') ;
  3995. IKEY = 1 ;
  3996. 'SI' ('EGA' ('TYPE' NAME2) 'FLOTTANT') ;
  3997. TCELL . 'TGAS' . ICELL = NAME2 ;
  3998. 'SINON' ;
  3999. TXT1 = 'CHAI' TXT0 'CELL ' ICELL ' T_GAS bad type' ;
  4000. 'QUIT' BLO10 ;
  4001. 'FINSI' ;
  4002. 'FINSI' ;
  4003. * - 10 --- Condition initiale pour la masse de vapeur d'eau ---
  4004. * --- dans le compartiment courant ---
  4005. 'SI' ('EGA' NAME1 'M_H2O') ;
  4006. IKEY = 1 ;
  4007. 'SI' ('EGA' ('TYPE' NAME2) 'FLOTTANT') ;
  4008. TCELL . 'MH2O' . ICELL = NAME2 ;
  4009. 'SINON' ;
  4010. TXT1 = 'CHAI' TXT0 'CELL ' ICELL ' M_H2O bad type' ;
  4011. 'QUIT' BLO10 ;
  4012. 'FINSI' ;
  4013. 'FINSI' ;
  4014. * - 11 --- Condition initiale pour la masse de H2 ---
  4015. * --- dans le compartiment courant ---
  4016. 'SI' ('EGA' NAME1 'M_H2') ;
  4017. IKEY = 1 ;
  4018. 'SI' ('EGA' ('TYPE' NAME2) 'FLOTTANT') ;
  4019. TCELL . 'MH2' . ICELL = NAME2 ;
  4020. 'SINON' ;
  4021. TXT1 = 'CHAI' TXT0 'CELL ' ICELL ' M_H2 bad type' ;
  4022. 'QUIT' BLO10 ;
  4023. 'FINSI' ;
  4024. 'FINSI' ;
  4025. * - 12 --- Condition initiale pour la masse de N2 ---
  4026. * --- dans le compartiment courant ---
  4027. 'SI' ('EGA' NAME1 'M_N2') ;
  4028. IKEY = 1 ;
  4029. 'SI' ('EGA' ('TYPE' NAME2) 'FLOTTANT') ;
  4030. TCELL . 'MN2' . ICELL = NAME2 ;
  4031. 'SINON' ;
  4032. TXT1 = 'CHAI' TXT0 'CELL ' ICELL ' M_N2 bad type' ;
  4033. 'QUIT' BLO10 ;
  4034. 'FINSI' ;
  4035. 'FINSI' ;
  4036. * - 13 --- Condition initiale pour la masse de O2 ---
  4037. * --- dans le compartiment courant ---
  4038. 'SI' ('EGA' NAME1 'M_O2') ;
  4039. IKEY = 1 ;
  4040. 'SI' ('EGA' ('TYPE' NAME2) 'FLOTTANT') ;
  4041. TCELL . 'MO2' . ICELL = NAME2 ;
  4042. 'SINON' ;
  4043. TXT1 = 'CHAI' TXT0 'CELL ' ICELL ' M_O2 bad type' ;
  4044. 'QUIT' BLO10 ;
  4045. 'FINSI' ;
  4046. 'FINSI' ;
  4047. * - 14 --- Condition initiale pour la masse de CO2 ---
  4048. * --- dans le compartiment courant ---
  4049. 'SI' ('EGA' NAME1 'M_CO2') ;
  4050. IKEY = 1 ;
  4051. 'SI' ('EGA' ('TYPE' NAME2) 'FLOTTANT') ;
  4052. TCELL . 'MCO2' . ICELL = NAME2 ;
  4053. 'SINON' ;
  4054. TXT1 = 'CHAI' TXT0 'CELL ' ICELL ' M_CO2 bad type' ;
  4055. 'QUIT' BLO10 ;
  4056. 'FINSI' ;
  4057. 'FINSI' ;
  4058. * - 15 --- Condition initiale pour la masse de CO ---
  4059. * --- dans le compartiment courant ---
  4060. 'SI' ('EGA' NAME1 'M_CO') ;
  4061. IKEY = 1 ;
  4062. 'SI' ('EGA' ('TYPE' NAME2) 'FLOTTANT') ;
  4063. TCELL . 'MCO' . ICELL = NAME2 ;
  4064. 'SINON' ;
  4065. TXT1 = 'CHAI' TXT0 'CELL ' ICELL ' M_CO bad type' ;
  4066. 'QUIT' BLO10 ;
  4067. 'FINSI' ;
  4068. 'FINSI' ;
  4069. * - 16 --- Condition initiale pour la masse de HE ---
  4070. * --- dans le compartiment courant ---
  4071. 'SI' ('EGA' NAME1 'M_HE') ;
  4072. IKEY = 1 ;
  4073. 'SI' ('EGA' ('TYPE' NAME2) 'FLOTTANT') ;
  4074. TCELL . 'MHE' . ICELL = NAME2 ;
  4075. 'SINON' ;
  4076. TXT1 = 'CHAI' TXT0 'CELL ' ICELL ' M_HE bad type' ;
  4077. 'QUIT' BLO10 ;
  4078. 'FINSI' ;
  4079. 'FINSI' ;
  4080. * - 17 --- Condition initiale pour l'énergie interne du mélange gazeux ---
  4081. * --- dans le compartiment courant ---
  4082. 'SI' ('EGA' NAME1 'U_GAS') ;
  4083. IKEY = 1 ;
  4084. 'SI' ('EGA' ('TYPE' NAME2) 'FLOTTANT') ;
  4085. TCELL . 'UGAS' . ICELL = NAME2 ;
  4086. 'SINON' ;
  4087. TXT1 = 'CHAI' TXT0 'CELL ' ICELL ' U_GAS bad type' ;
  4088. 'QUIT' BLO10 ;
  4089. 'FINSI' ;
  4090. 'FINSI' ;
  4091. * - 18 --- Pression totale imposée ---
  4092. * --- dans le compartiment courant ---
  4093. 'SI' ('EGA' NAME1 'BOUN_P') ;
  4094. IKEY = 1 ;
  4095. 'SI' ('EGA' ('TYPE' NAME2) 'FLOTTANT') ;
  4096. 'SI' ('NON' ('EXIS' BOUNDARY 'PT')) ;
  4097. BOUNDARY . 'PT' = 'TABLE' ;
  4098. 'FINSI' ;
  4099. BOUNDARY . 'PT' . ICELL = NAME2 ;
  4100. 'SINON' ;
  4101. TXT1 = 'CHAI' TXT0 'CELL ' ICELL ' BOUN_P bad type' ;
  4102. 'QUIT' BLO10 ;
  4103. 'FINSI' ;
  4104. 'FINSI' ;
  4105. * - 19 --- Nom du fichier source de vapeur d'eau ---
  4106. * --- dans le compartiment courant ---
  4107. 'SI' ('EGA' NAME1 'IN_H2O') ;
  4108. IKEY = 1 ;
  4109. 'SI' ('EGA' ('TYPE' NAME2) 'MOT ') ;
  4110. 'SI' ('NON' ('EXIS' BOUNDARY 'QH2O')) ;
  4111. BOUNDARY . 'QH2O' = 'TABLE' ;
  4112. 'FINSI' ;
  4113. 'SI' ('NON' ('EXIS' BOUNDARY . 'QH2O' ICELL)) ;
  4114. BOUNDARY . 'QH2O' . ICELL = 'TABLE' ;
  4115. 'FINSI' ;
  4116. IINH2O = IINH2O + 1 ;
  4117. BOUNDARY . 'QH2O' . ICELL . IINH2O = 'MOT' NAME2 ;
  4118. 'SINON' ;
  4119. TXT1 = 'CHAI' TXT0 'CELL ' ICELL ' IN_H2O bad type' ;
  4120. 'QUIT' BLO10 ;
  4121. 'FINSI' ;
  4122. TEST1 = FAUX ;
  4123. 'REPE' BLO11A ('DIME' TCOMPO) ;
  4124. 'SI' ('EGA' (TCOMPO . &BLO11A) 'H2O') ;
  4125. TEST1 = VRAI ;
  4126. 'FINSI' ;
  4127. 'FIN' BLO11A ;
  4128. 'SI' ('EGA' TEST1 FAUX) ;
  4129. TXT1 = 'CHAI' TXT0 'H2O missing in component list' ;
  4130. 'QUIT' BLO10 ;
  4131. 'FINSI' ;
  4132. 'FINSI' ;
  4133. * - 20 --- Nom du fichier source de H2 ---
  4134. * --- dans le compartiment courant ---
  4135. 'SI' ('EGA' NAME1 'IN_H2') ;
  4136. IKEY = 1 ;
  4137. 'SI' ('EGA' ('TYPE' NAME2) 'MOT ') ;
  4138. 'SI' ('NON' ('EXIS' BOUNDARY 'QH2')) ;
  4139. BOUNDARY . 'QH2' = 'TABLE' ;
  4140. 'FINSI' ;
  4141. 'SI' ('NON' ('EXIS' BOUNDARY . 'QH2' ICELL)) ;
  4142. BOUNDARY . 'QH2' . ICELL = 'TABLE' ;
  4143. 'FINSI' ;
  4144. IINH2 = IINH2 + 1 ;
  4145. BOUNDARY . 'QH2' . ICELL . IINH2 = 'MOT' NAME2 ;
  4146. 'SINON' ;
  4147. TXT1 = 'CHAI' TXT0 'CELL ' ICELL ' IN_H2 bad type' ;
  4148. 'QUIT' BLO10 ;
  4149. 'FINSI' ;
  4150. TEST1 = FAUX ;
  4151. 'REPE' BLO11B ('DIME' TCOMPO) ;
  4152. 'SI' ('EGA' (TCOMPO . &BLO11B) 'H2') ;
  4153. TEST1 = VRAI ;
  4154. 'FINSI' ;
  4155. 'FIN' BLO11B ;
  4156. 'SI' ('EGA' TEST1 FAUX) ;
  4157. TXT1 = 'CHAI' TXT0 'H2 missing in component list' ;
  4158. 'QUIT' BLO10 ;
  4159. 'FINSI' ;
  4160. 'FINSI' ;
  4161. * - 21 --- Nom du fichier source de N2 ---
  4162. * --- dans le compartiment courant ---
  4163. 'SI' ('EGA' NAME1 'IN_N2') ;
  4164. IKEY = 1 ;
  4165. 'SI' ('EGA' ('TYPE' NAME2) 'MOT ') ;
  4166. 'SI' ('NON' ('EXIS' BOUNDARY 'QN2')) ;
  4167. BOUNDARY . 'QN2' = 'TABLE' ;
  4168. 'FINSI' ;
  4169. 'SI' ('NON' ('EXIS' BOUNDARY . 'QN2' ICELL)) ;
  4170. BOUNDARY . 'QN2' . ICELL = 'TABLE' ;
  4171. 'FINSI' ;
  4172. IINN2 = IINN2 + 1 ;
  4173. BOUNDARY . 'QN2' . ICELL . IINN2 = 'MOT' NAME2 ;
  4174. 'SINON' ;
  4175. TXT1 = 'CHAI' TXT0 'CELL ' ICELL ' IN_N2 bad type' ;
  4176. 'QUIT' BLO10 ;
  4177. 'FINSI' ;
  4178. TEST1 = FAUX ;
  4179. 'REPE' BLO11C ('DIME' TCOMPO) ;
  4180. 'SI' ('EGA' (TCOMPO . &BLO11C) 'N2') ;
  4181. TEST1 = VRAI ;
  4182. 'FINSI' ;
  4183. 'FIN' BLO11C ;
  4184. 'SI' ('EGA' TEST1 FAUX) ;
  4185. TXT1 = 'CHAI' TXT0 'N2 missing in component list' ;
  4186. 'QUIT' BLO10 ;
  4187. 'FINSI' ;
  4188. 'FINSI' ;
  4189. * - 22 --- Nom du fichier source de O2 ---
  4190. * --- dans le compartiment courant ---
  4191. 'SI' ('EGA' NAME1 'IN_O2') ;
  4192. IKEY = 1 ;
  4193. 'SI' ('EGA' ('TYPE' NAME2) 'MOT ') ;
  4194. 'SI' ('NON' ('EXIS' BOUNDARY 'QO2')) ;
  4195. BOUNDARY . 'QO2' = 'TABLE' ;
  4196. 'FINSI' ;
  4197. 'SI' ('NON' ('EXIS' BOUNDARY . 'QO2' ICELL)) ;
  4198. BOUNDARY . 'QO2' . ICELL = 'TABLE' ;
  4199. 'FINSI' ;
  4200. IINO2 = IINO2 + 1 ;
  4201. BOUNDARY . 'QO2' . ICELL . IINO2 = 'MOT' NAME2 ;
  4202. 'SINON' ;
  4203. TXT1 = 'CHAI' TXT0 'CELL ' ICELL ' IN_O2 bad type' ;
  4204. 'QUIT' BLO10 ;
  4205. 'FINSI' ;
  4206. TEST1 = FAUX ;
  4207. 'REPE' BLO11D ('DIME' TCOMPO) ;
  4208. 'SI' ('EGA' (TCOMPO . &BLO11D) 'O2') ;
  4209. TEST1 = VRAI ;
  4210. 'FINSI' ;
  4211. 'FIN' BLO11D ;
  4212. 'SI' ('EGA' TEST1 FAUX) ;
  4213. TXT1 = 'CHAI' TXT0 'O2 missing in component list' ;
  4214. 'QUIT' BLO10 ;
  4215. 'FINSI' ;
  4216. 'FINSI' ;
  4217. * - 23 --- Nom du fichier source de CO2 ---
  4218. * --- dans le compartiment courant ---
  4219. 'SI' ('EGA' NAME1 'IN_CO2') ;
  4220. IKEY = 1 ;
  4221. 'SI' ('EGA' ('TYPE' NAME2) 'MOT ') ;
  4222. 'SI' ('NON' ('EXIS' BOUNDARY 'QCO2')) ;
  4223. BOUNDARY . 'QCO2' = 'TABLE' ;
  4224. 'FINSI' ;
  4225. 'SI' ('NON' ('EXIS' BOUNDARY . 'QCO2' ICELL)) ;
  4226. BOUNDARY . 'QCO2' . ICELL = 'TABLE' ;
  4227. 'FINSI' ;
  4228. IINCO2 = IINCO2 + 1 ;
  4229. BOUNDARY . 'QCO2' . ICELL . IINCO2 = 'MOT' NAME2 ;
  4230. 'SINON' ;
  4231. TXT1 = 'CHAI' TXT0 'CELL ' ICELL ' IN_CO2 bad type' ;
  4232. 'QUIT' BLO10 ;
  4233. 'FINSI' ;
  4234. TEST1 = FAUX ;
  4235. 'REPE' BLO11E ('DIME' TCOMPO) ;
  4236. 'SI' ('EGA' (TCOMPO . &BLO11E) 'CO2') ;
  4237. TEST1 = VRAI ;
  4238. 'FINSI' ;
  4239. 'FIN' BLO11E ;
  4240. 'SI' ('EGA' TEST1 FAUX) ;
  4241. TXT1 = 'CHAI' TXT0 'CO2 missing in component list' ;
  4242. 'QUIT' BLO10 ;
  4243. 'FINSI' ;
  4244. 'FINSI' ;
  4245. * - 24 --- Nom du fichier source de CO ---
  4246. * --- dans le compartiment courant ---
  4247. 'SI' ('EGA' NAME1 'IN_CO') ;
  4248. IKEY = 1 ;
  4249. 'SI' ('EGA' ('TYPE' NAME2) 'MOT ') ;
  4250. 'SI' ('NON' ('EXIS' BOUNDARY 'QCO')) ;
  4251. BOUNDARY . 'QCO' = 'TABLE' ;
  4252. 'FINSI' ;
  4253. 'SI' ('NON' ('EXIS' BOUNDARY . 'QCO' ICELL)) ;
  4254. BOUNDARY . 'QCO' . ICELL = 'TABLE' ;
  4255. 'FINSI' ;
  4256. IINCO = IINCO + 1 ;
  4257. BOUNDARY . 'QCO' . ICELL . IINCO = 'MOT' NAME2 ;
  4258. 'SINON' ;
  4259. TXT1 = 'CHAI' TXT0 'CELL ' ICELL ' IN_CO bad type' ;
  4260. 'QUIT' BLO10 ;
  4261. 'FINSI' ;
  4262. TEST1 = FAUX ;
  4263. 'REPE' BLO11F ('DIME' TCOMPO) ;
  4264. 'SI' ('EGA' (TCOMPO . &BLO11F) 'CO') ;
  4265. TEST1 = VRAI ;
  4266. 'FINSI' ;
  4267. 'FIN' BLO11F ;
  4268. 'SI' ('EGA' TEST1 FAUX) ;
  4269. TXT1 = 'CHAI' TXT0 'CO missing in component list' ;
  4270. 'QUIT' BLO10 ;
  4271. 'FINSI' ;
  4272. 'FINSI' ;
  4273. * - 25 --- Nom du fichier source de HE ---
  4274. * --- dans le compartiment courant ---
  4275. 'SI' ('EGA' NAME1 'IN_HE') ;
  4276. IKEY = 1 ;
  4277. 'SI' ('EGA' ('TYPE' NAME2) 'MOT ') ;
  4278. 'SI' ('NON' ('EXIS' BOUNDARY 'QHE')) ;
  4279. BOUNDARY . 'QHE' = 'TABLE' ;
  4280. 'FINSI' ;
  4281. 'SI' ('NON' ('EXIS' BOUNDARY . 'QHE' ICELL)) ;
  4282. BOUNDARY . 'QHE' . ICELL = 'TABLE' ;
  4283. 'FINSI' ;
  4284. IINHE = IINHE + 1 ;
  4285. BOUNDARY . 'QHE' . ICELL . IINHE = 'MOT' NAME2 ;
  4286. 'SINON' ;
  4287. TXT1 = 'CHAI' TXT0 'CELL ' ICELL ' IN_HE bad type' ;
  4288. 'QUIT' BLO10 ;
  4289. 'FINSI' ;
  4290. TEST1 = FAUX ;
  4291. 'REPE' BLO11G ('DIME' TCOMPO) ;
  4292. 'SI' ('EGA' (TCOMPO . &BLO11G) 'HE') ;
  4293. TEST1 = VRAI ;
  4294. 'FINSI';
  4295. 'FIN' BLO11G ;
  4296. 'SI' ('EGA' TEST1 FAUX) ;
  4297. TXT1 = 'CHAI' TXT0 'HE missing in component list';
  4298. 'QUIT' BLO10 ;
  4299. 'FINSI';
  4300. 'FINSI' ;
  4301. * - 26 --- Numéro de la jonction courante ---
  4302. 'SI' ('EGA' NAME1 'JUNCTION') ;
  4303. IKEY = 1 ;
  4304. 'SI' ('EGA' ('TYPE' NAME2) 'MOT ') ;
  4305. IJUNC = 'MOT' NAME2 ;
  4306. 'SINON' ;
  4307. TXT1 = 'CHAI' TXT0 'JUNCTION bad type' ;
  4308. 'QUIT' BLO10 ;
  4309. 'FINSI' ;
  4310. 'FINSI' ;
  4311. * - 27 --- abscisse du centre de la jonction courante ---
  4312. 'SI' ('EGA' NAME1 'XJ') ;
  4313. IKEY = 1 ;
  4314. 'SI' ('EGA' ('TYPE' NAME2) 'FLOTTANT') ;
  4315. XJ1 = NAME2 ;
  4316. 'SI' (YJOK 'EGA' 1) ;
  4317. PT1 = XJ1 YJ1 ;
  4318. JUNCT . 'LOCATION' . IJUNC = PT1 ;
  4319. YJOK = 0 ;
  4320. 'SINON' ;
  4321. XJOK = 1 ;
  4322. 'FINSI' ;
  4323. 'SINON' ;
  4324. TXT1 = 'CHAI' TXT0 'JUNCTION ' IJUNC ' XJ bad type' ;
  4325. 'QUIT' BLO10 ;
  4326. 'FINSI' ;
  4327. 'FINSI' ;
  4328. * - 28 --- ordonnée du centre de la jonction courante ---
  4329. 'SI' ('EGA' NAME1 'YJ') ;
  4330. IKEY = 1 ;
  4331. 'SI' ('EGA' ('TYPE' NAME2) 'FLOTTANT') ;
  4332. YJ1 = NAME2 ;
  4333. 'SI' (XJOK 'EGA' 1) ;
  4334. PT1 = XJ1 YJ1 ;
  4335. JUNCT . 'LOCATION' . IJUNC = PT1 ;
  4336. XJOK = 0 ;
  4337. 'SINON' ;
  4338. YJOK = 1 ;
  4339. 'FINSI' ;
  4340. 'SINON' ;
  4341. TXT1 = 'CHAI' TXT0 'JUNCTION ' IJUNC ' YJ bad type' ;
  4342. 'QUIT' BLO10 ;
  4343. 'FINSI' ;
  4344. 'FINSI' ;
  4345. * - 29 --- Compartiment de départ de la jonction courante ---
  4346. 'SI' ('EGA' NAME1 'FROM') ;
  4347. IKEY = 1 ;
  4348. 'SI' ('EGA' ('TYPE' NAME2) 'MOT ') ;
  4349. JUNCT . 'FROM' . IJUNC = 'MOT' NAME2 ;
  4350. 'SINON' ;
  4351. TXT1 = 'CHAI' TXT0 'JUNCTION ' IJUNC ' FROM bad type' ;
  4352. 'QUIT' BLO10 ;
  4353. 'FINSI' ;
  4354. 'FINSI' ;
  4355. * - 30 --- Compartiment d'arrivée de la jonction courante ---
  4356. 'SI' ('EGA' NAME1 'TO') ;
  4357. IKEY = 1 ;
  4358. 'SI' ('EGA' ('TYPE' NAME2) 'MOT ') ;
  4359. JUNCT . 'TO' . IJUNC = 'MOT' NAME2 ;
  4360. 'SINON' ;
  4361. TXT1 = 'CHAI' TXT0 'JUNCTION ' IJUNC ' TO bad type' ;
  4362. 'QUIT' BLO10 ;
  4363. 'FINSI' ;
  4364. 'FINSI' ;
  4365. * - 31 --- Section de la jonction courante ---
  4366. 'SI' ('EGA' NAME1 'AREA') ;
  4367. IKEY = 1 ;
  4368. IAREA = 0 ;
  4369. 'SI' ('EGA' ('TYPE' NAME2) 'FLOTTANT') ;
  4370. IAREA = 1 ;
  4371. JUNCT . 'AREA' . IJUNC = NAME2 ;
  4372. 'FINSI' ;
  4373. 'SI' ('EGA' ('TYPE' NAME2) 'ENTIER ') ;
  4374. IAREA = 2 ;
  4375. 'SI' (name2 '&lt;EG' 0) ;
  4376. TXT1 = 'CHAI' TXT0 'Nb AREA may be greatest or egal to 1' ;
  4377. 'QUIT' BLO10 ;
  4378. 'FINSI' ;
  4379. tps1 = 'PROG' ;
  4380. val1 = 'PROG' ;
  4381. n31a = name2 ;
  4382. 'REPE' BLO31A n31a ;
  4383. 'ACQU' NAME1 NAME2 ;
  4384. 'MESS' NAME1 ' ' NAME2 ;
  4385. 'SI' (('EGA' ('TYPE' NAME1) 'FLOTTANT') ET
  4386. ('EGA' ('TYPE' NAME2) 'FLOTTANT')) ;
  4387. tps1 = tps1 'ET' ('PROG' NAME1) ;
  4388. val1 = val1 'ET' ('PROG' NAME2) ;
  4389. 'SINON' ;
  4390. TXT1 = 'CHAI' TXT0 'AREA(t) list bad type' ;
  4391. 'QUIT' BLO10 ;
  4392. 'FINSI' ;
  4393. 'FIN' BLO31A ;
  4394. JUNCT . 'AREA' . IJUNC = 'EVOL' 'MANU' tps1 val1 ;
  4395. 'FINSI' ;
  4396. 'SI' ('EGA' ('TYPE' NAME2) 'MOT ') ;
  4397. 'SI' ('EGA' NAME2 'FREE') ;
  4398. IAREA = 2 ;
  4399. tps1 = 'PROG' ;
  4400. val1 = 'PROG' ;
  4401. 'REPE' BLO31B ;
  4402. 'ACQU' NAME1 NAME2 ;
  4403. 'MESS' NAME1 ' ' NAME2 ;
  4404. 'SI' (('EGA' ('TYPE' NAME1) 'FLOTTANT') ET
  4405. ('EGA' ('TYPE' NAME2) 'FLOTTANT')) ;
  4406. tps1 = tps1 'ET' ('PROG' NAME1) ;
  4407. val1 = val1 'ET' ('PROG' NAME2) ;
  4408. 'SINON' ;
  4409. 'SI' ('EGA' ('TYPE' NAME1) 'MOT ') ;
  4410. 'SI' ('EGA' NAME1 'END') ;
  4411. 'QUIT' BLO31B ;
  4412. 'SINO' ;
  4413. TXT1 = 'CHAI' TXT0 'AREA(t) list not well closed';
  4414. 'QUIT' BLO10 ;
  4415. 'FINSI' ;
  4416. 'SINO' ;
  4417. TXT1 = 'CHAI' TXT0 'AREA bad type' ;
  4418. 'QUIT' BLO10 ;
  4419. 'FINSI' ;
  4420. 'FINSI' ;
  4421. 'FIN' BLO31B ;
  4422. JUNCT . 'AREA' . IJUNC = 'EVOL' 'MANU' tps1 val1 ;
  4423. 'SINO' ;
  4424. IAREA = 3 ;
  4425. JUNCT . 'AREA' . IJUNC = NAME2 ;
  4426. 'FINSI' ;
  4427. 'FINSI' ;
  4428. 'SI' ('EGA' IAREA 0) ;
  4429. TXT1 = 'CHAI' TXT0 'JUNCTION ' IJUNC ' AREA bad type' ;
  4430. 'QUIT' BLO10 ;
  4431. 'FINSI' ;
  4432. 'FINSI' ;
  4433. * - 32 --- Coefficient de perte de charge de la jonction courante ---
  4434. 'SI' ('EGA' NAME1 'K') ;
  4435. IKEY = 1 ;
  4436. 'SI' ('EGA' ('TYPE' NAME2) 'FLOTTANT') ;
  4437. JUNCT . 'DISC' . IJUNC = NAME2 ;
  4438. 'SINON' ;
  4439. TXT1 = 'CHAI' TXT0 'JUNCTION ' IJUNC ' K bad type' ;
  4440. 'QUIT' BLO10 ;
  4441. 'FINSI' ;
  4442. 'FINSI' ;
  4443. * - 33 --- Longueur effective de la jonction courante ---
  4444. 'SI' ('EGA' NAME1 'LENGTH') ;
  4445. IKEY = 1 ;
  4446. 'SI' ('EGA' ('TYPE' NAME2) 'FLOTTANT') ;
  4447. JUNCT . 'LENGTH' . IJUNC = NAME2 ;
  4448. 'SINON' ;
  4449. TXT1 = 'CHAI' TXT0 'JUNCTION ' IJUNC ' LENGTH bad type' ;
  4450. 'QUIT' BLO10 ;
  4451. 'FINSI' ;
  4452. 'FINSI' ;
  4453. * - 34 --- Condition initiale pour le débit de masse ---
  4454. * --- dans la jonction courante ---
  4455. 'SI' ('EGA' NAME1 'Q') ;
  4456. IKEY = 1 ;
  4457. 'SI' ('EGA' ('TYPE' NAME2) 'FLOTTANT') ;
  4458. JUNCT . 'Q' . IJUNC = NAME2 ;
  4459. 'SINON' ;
  4460. TXT1 = 'CHAI' TXT0 'JUNCTION ' IJUNC ' Q bad type' ;
  4461. 'QUIT' BLO10 ;
  4462. 'FINSI' ;
  4463. 'FINSI' ;
  4464. * - 35 --- Accélération de la pesanteur ---
  4465. 'SI' ('EGA' NAME1 'GRAVITY') ;
  4466. IKEY = 1 ;
  4467. 'SI' ('EGA' ('TYPE' NAME2) 'FLOTTANT') ;
  4468. PHYSICAL . 'GRAVITY' = NAME2 ;
  4469. 'SINON' ;
  4470. TXT1 = 'CHAI' TXT0 'GRAVITY bad type' ;
  4471. 'QUIT' BLO10 ;
  4472. 'FINSI' ;
  4473. 'FINSI' ;
  4474. * - 36 --- Temps sauvés ---
  4475. * (sous forme de liste t1 t2 deltat, format FREE accepté)
  4476. 'SI' ('EGA' NAME1 'TIMESAVE') ;
  4477. IKEY = 1 ;
  4478. 'SI' ('EGA' ('TYPE' NAME2) 'ENTIER ') ;
  4479. TIMECALC . 'STEPSAVE' = NAME2 ;
  4480. 'SINON' ;
  4481. 'SI' ('EGA' ('TYPE' NAME2) 'MOT ' ) ;
  4482. 'SI' ('EGA' NAME2 'FREE') ;
  4483. TIMECALC . 'STEPSAVE' = 0 ;
  4484. 'SINO' ;
  4485. TXT1 = 'CHAI' TXT0 'TIMESAVE bad type' ;
  4486. 'QUIT' BLO10 ;
  4487. 'FINSI' ;
  4488. 'SINO' ;
  4489. TXT1 = 'CHAI' TXT0 'TIMESAVE bad type' ;
  4490. 'QUIT' BLO10 ;
  4491. 'FINSI' ;
  4492. 'FINSI' ;
  4493. 'SI' ((TIMECALC . 'STEPSAVE') '<' 0) ;
  4494. TXT1 = 'CHAI' TXT0 'TIMESAVE has to be greater than 0' ;
  4495. 'QUIT' BLO10 ;
  4496. 'FINSI' ;
  4497. TIMECALC . 'LISTSAVE' = 'PROG' ;
  4498. 'REPE' BLO36 (TIMECALC . 'STEPSAVE') ;
  4499. 'ACQU' NAME1 NAME2 NAME3 ;
  4500. 'MESS' NAME1 ' ' NAME2 ' ' NAME3 ;
  4501. 'SI' (('EGA' ('TYPE' NAME1) 'FLOTTANT') 'ET'
  4502. ('EGA' ('TYPE' NAME2) 'FLOTTANT') 'ET'
  4503. ('EGA' ('TYPE' NAME3) 'FLOTTANT') ) ;
  4504. TIMECALC . 'LISTSAVE' = (TIMECALC . 'LISTSAVE') 'ET'
  4505. ('PROG' NAME1 'PAS' NAME3 NAME2) ;
  4506. 'SINON' ;
  4507. 'SI' (('EGA' ('TYPE' NAME1) 'MOT') 'ET'
  4508. ('EGA' ('TYPE' NAME2) 'MOT') 'ET'
  4509. ('EGA' ('TYPE' NAME3) 'MOT') ) ;
  4510. 'SI' (('EGA' NAME1 'END') 'ET'
  4511. ('EGA' NAME2 'OF') 'ET'
  4512. ('EGA' NAME3 'DATA') ) ;
  4513. 'QUIT' BLO36 ;
  4514. 'SINO' ;
  4515. TXT1 = 'CHAI' TXT0 'listing of times LISTSAVE bad type' ;
  4516. 'QUIT' BLO10 ;
  4517. 'FINSI' ;
  4518. 'SINO' ;
  4519. TXT1 = 'CHAI' TXT0 'listing of times LISTSAVE bad type' ;
  4520. 'QUIT' BLO10 ;
  4521. 'FINSI' ;
  4522. 'FINSI' ;
  4523. 'FIN' BLO36 ;
  4524. 'FINSI' ;
  4525. * - 37 --- Temps calculés ---
  4526. * (sous forme de liste t1 t2 deltat, format FREE accepté)
  4527. 'SI' ('EGA' NAME1 'TIMESTEP') ;
  4528. IKEY = 1 ;
  4529. 'SI' ('EGA' ('TYPE' NAME2) 'ENTIER ') ;
  4530. TIMECALC . 'STEPNUMB' = NAME2 ;
  4531. 'SINON' ;
  4532. 'SI' ('EGA' ('TYPE' NAME2) 'MOT ' ) ;
  4533. 'SI' ('EGA' NAME2 'FREE') ;
  4534. TIMECALC . 'STEPNUMB' = 0 ;
  4535. 'SINO' ;
  4536. TXT1 = 'CHAI' TXT0 'TIMESTEP bad type' ;
  4537. 'QUIT' BLO10 ;
  4538. 'FINSI' ;
  4539. 'SINO' ;
  4540. TXT1 = 'CHAI' TXT0 'TIMESTEP bad type' ;
  4541. 'QUIT' BLO10 ;
  4542. 'FINSI' ;
  4543. 'FINSI' ;
  4544. 'SI' ((TIMECALC . 'STEPNUMB') '<' 0) ;
  4545. TXT1 = 'CHAI' TXT0 'TIMESTEP has to be greater than 0' ;
  4546. 'QUIT' BLO10 ;
  4547. 'FINSI' ;
  4548. TIMECALC . 'LISTCALC' = 'PROG' ;
  4549. 'REPE' BLO37 (TIMECALC . 'STEPNUMB') ;
  4550. 'ACQU' NAME1 NAME2 NAME3 ;
  4551. 'MESS' NAME1 ' ' NAME2 ' ' NAME3 ;
  4552. 'SI' (('EGA' ('TYPE' NAME1) 'FLOTTANT') 'ET'
  4553. ('EGA' ('TYPE' NAME2) 'FLOTTANT') 'ET'
  4554. ('EGA' ('TYPE' NAME3) 'FLOTTANT') ) ;
  4555. TIMECALC . 'LISTCALC' = (TIMECALC . 'LISTCALC') 'ET'
  4556. ('PROG' NAME1 'PAS' NAME3 NAME2) ;
  4557. 'SINON' ;
  4558. 'SI' (('EGA' ('TYPE' NAME1) 'MOT') 'ET'
  4559. ('EGA' ('TYPE' NAME2) 'MOT') 'ET'
  4560. ('EGA' ('TYPE' NAME3) 'MOT') ) ;
  4561. 'SI' (('EGA' NAME1 'END') 'ET'
  4562. ('EGA' NAME2 'OF') 'ET'
  4563. ('EGA' NAME3 'DATA') ) ;
  4564. 'QUIT' BLO37 ;
  4565. 'SINO' ;
  4566. TXT1 = 'CHAI' TXT0 'listing of times TIMESTEP bad type' ;
  4567. 'QUIT' BLO10 ;
  4568. 'FINSI' ;
  4569. 'SINO' ;
  4570. TXT1 = 'CHAI' TXT0 'listing of times TIMESTEP bad type' ;
  4571. 'QUIT' BLO10 ;
  4572. 'FINSI' ;
  4573. 'FINSI' ;
  4574. 'FIN' BLO37 ;
  4575. 'FINSI' ;
  4576. * - 38 --- fréquence des pas de temps pour la sauvegarde ---
  4577. 'SI' ('EGA' NAME1 'NSAVE') ;
  4578. IKEY = 1 ;
  4579. 'SI' ('EGA' ('TYPE' NAME2) 'ENTIER ') ;
  4580. TIMECALC . 'FREQSAVE' = NAME2 ;
  4581. 'SINON' ;
  4582. TXT1 = 'CHAI' TXT0 'NSAVE bad type' ;
  4583. 'QUIT' BLO10 ;
  4584. 'FINSI' ;
  4585. 'FINSI' ;
  4586. * - 39 --- fréquence des pas de temps pour les tracés ---
  4587. 'SI' ('EGA' NAME1 'NPLOT') ;
  4588. IKEY = 1 ;
  4589. 'SI' ('EGA' ('TYPE' NAME2) 'ENTIER ') ;
  4590. TIMECALC . 'FREQPLOT' = NAME2 ;
  4591. 'SINON' ;
  4592. TXT1 = 'CHAI' TXT0 'NPLOT bad type' ;
  4593. 'QUIT' BLO10 ;
  4594. 'FINSI' ;
  4595. 'FINSI' ;
  4596. * - 40 --- erreur relative tolérée ---
  4597. 'SI' ('EGA' NAME1 'ERRTOL') ;
  4598. IKEY = 1 ;
  4599. 'SI' ('EGA' ('TYPE' NAME2) 'FLOTTANT') ;
  4600. TIMECALC . 'ERRTOL' = NAME2 ;
  4601. 'SINON' ;
  4602. TXT1 = 'CHAI' TXT0 'ERRTOL bad type' ;
  4603. 'QUIT' BLO10 ;
  4604. 'FINSI' ;
  4605. 'FINSI' ;
  4606. * - 41 --- constituants à prendre en compte ---
  4607. 'SI' ('EGA' NAME1 'COMPONENT') ;
  4608. IKEY = 1 ;
  4609. 'SI' ('EGA' ('TYPE' NAME2) 'MOT ') ;
  4610. 'SI' ('EGA' NAME2 'H2O') ;
  4611. NAMEC1 = 'H2O' ;
  4612. TCELL . 'HUMIDITY' = 'TABLE' ;
  4613. 'SINON' ;
  4614. 'SI' ('EGA' NAME2 'HE') ;
  4615. NAMEC1 = 'MOT' 'HE' ;
  4616. 'SINON' ;
  4617. 'SI' ('EGA' NAME2 'H2') ;
  4618. NAMEC1 = 'H2' ;
  4619. 'SINON' ;
  4620. 'SI' ('EGA' NAME2 'N2') ;
  4621. NAMEC1 = 'N2' ;
  4622. 'SINON' ;
  4623. 'SI' ('EGA' NAME2 'O2') ;
  4624. NAMEC1 = 'O2' ;
  4625. 'SINON' ;
  4626. 'SI' ('EGA' NAME2 'CO2') ;
  4627. NAMEC1 = 'CO2' ;
  4628. 'SINON' ;
  4629. 'SI' ('EGA' NAME2 'CO') ;
  4630. NAMEC1 = 'MOT' 'CO' ;
  4631. 'SINON' ;
  4632. TXT1 = 'CHAI' TXT0 'unknown COMPONENT : ' NAME2 ;
  4633. 'QUIT' BLO10 ;
  4634. 'FINSI' ;
  4635. 'FINSI' ;
  4636. 'FINSI' ;
  4637. 'FINSI' ;
  4638. 'FINSI' ;
  4639. 'FINSI' ;
  4640. 'FINSI' ;
  4641. MASS1 = CHAINE 'M' NAMEC1 ;
  4642. 'SI' ('NON' ('EXIS' TCELL MASS1)) ;
  4643. TCELL . MASS1 = 'TABLE' ;
  4644. NCOMP1 = NCOMP1 + 1 ;
  4645. TCOMPO . NCOMP1 = NAMEC1 ;
  4646. 'FINSI' ;
  4647. 'SINON' ;
  4648. TXT1 = 'CHAI' TXT0 'COMPONENT bad type' ;
  4649. 'QUIT' BLO10 ;
  4650. 'FINSI' ;
  4651. 'FINSI' ;
  4652. * - 42 --- nom du fichier de sauvegarde ---
  4653. 'SI' ('EGA' NAME1 'SAVEFILE') ;
  4654. IKEY = 1 ;
  4655. 'SI' ('EGA' ('TYPE' NAME2) 'MOT ') ;
  4656. TIMECALC . 'SAVEFILE' = 'MOT' NAME2 ;
  4657. 'SINON' ;
  4658. TXT1 = 'CHAI' TXT0 'SAVEFILE bad type' ;
  4659. 'QUIT' BLO10 ;
  4660. 'FINSI' ;
  4661. 'FINSI' ;
  4662. * - 43 --- la température extérieure ---
  4663. 'SI' ('EGA' NAME1 'TOUT') ;
  4664. IKEY = 1 ;
  4665. 'SI' ('EGA' ('TYPE' NAME2) 'FLOTTANT') ;
  4666. INPUT . 'TOUT' = NAME2 ;
  4667. 'SINON' ;
  4668. TXT1 = 'CHAI' TXT0 'TOUT bad type' ;
  4669. 'QUIT' BLO10 ;
  4670. 'FINSI' ;
  4671. 'FINSI' ;
  4672. * - 44 --- Numéro du mur courant ---
  4673. 'SI' ('EGA' NAME1 'WALL') ;
  4674. IKEY = 1 ;
  4675. 'SI' ('EGA' ('TYPE' NAME2) 'MOT ') ;
  4676. IWALL = 'MOT' NAME2 ;
  4677. NBWALL = NBWALL + 1 ;
  4678. NBLAYE = 0 ;
  4679. THEWAL . 'LOCATION' . IWALL = 0 ;
  4680. THEWAL . 'MATERIAL' . IWALL = 'TABLE' ;
  4681. THEWAL . 'NODES' . IWALL = 'TABLE' ;
  4682. THEWAL . 'RHO' . IWALL = 'TABLE' ;
  4683. THEWAL . 'CP' . IWALL = 'TABLE' ;
  4684. THEWAL . 'LAMBDA' . IWALL = 'TABLE' ;
  4685. THEWAL . 'THICK' . IWALL = 'TABLE' ;
  4686. THEWAL . 'UCHIDA' . IWALL = 'TABLE' ;
  4687. 'SINON' ;
  4688. TXT1 = 'CHAI' TXT0 'WALL bad type' ;
  4689. 'QUIT' BLO10 ;
  4690. 'FINSI' ;
  4691. 'FINSI' ;
  4692. * - 45 --- Premier compartiment en contact avec le mur courant ---
  4693. 'SI' ('OU' ('EGA' NAME1 'FROMC') ('EGA' NAME1 'FROMW')) ;
  4694. IKEY = 1 ;
  4695. 'SI' ('EGA' ('TYPE' NAME2) 'MOT ') ;
  4696. THEWAL . 'FROM' . IWALL = 'MOT' NAME2 ;
  4697. THEWAL . 'TYPEFROM'. IWALL = 'CELL' ;
  4698. 'SINON' ;
  4699. TXT1 = 'CHAI' TXT0 'FROMC or FROMW bad type' ;
  4700. 'QUIT' BLO10 ;
  4701. 'FINSI' ;
  4702. 'FINSI' ;
  4703. * - 46 --- Deuxième compartiment en contact avec le mur courant ---
  4704. 'SI' ('OU' ('EGA' NAME1 'TOC') ('EGA' NAME1 'TOW')) ;
  4705. IKEY = 1 ;
  4706. 'SI' ('EGA' ('TYPE' NAME2) 'MOT ') ;
  4707. THEWAL . 'TO' . IWALL = 'MOT' NAME2 ;
  4708. THEWAL . 'TYPETO' . IWALL = 'CELL' ;
  4709. 'SINON' ;
  4710. TXT1 = 'CHAI' TXT0 'TOC or TOW bad type' ;
  4711. 'QUIT' BLO10 ;
  4712. 'FINSI' ;
  4713. 'FINSI' ;
  4714. * - 47 --- Surface du mur courant ---
  4715. 'SI' ('EGA' NAME1 'AREAW') ;
  4716. IKEY = 1 ;
  4717. 'SI' ('EGA' ('TYPE' NAME2) 'FLOTTANT') ;
  4718. THEWAL . 'AREA' . IWALL = NAME2 ;
  4719. 'SINON' ;
  4720. TXT1 = 'CHAI' TXT0 'WALL ' IWALL ' AREA bad type' ;
  4721. 'QUIT' BLO10 ;
  4722. 'FINSI' ;
  4723. 'FINSI' ;
  4724. * - 48 --- Température initiale constante dans le mur courant ---
  4725. 'SI' ('EGA' NAME1 'TWALL') ;
  4726. IKEY = 1 ;
  4727. 'SI' ('EGA' ('TYPE' NAME2) 'FLOTTANT') ;
  4728. THEWAL . 'TWAL1' . IWALL = NAME2 ;
  4729. THEWAL . 'TWAL2' . IWALL = NAME2 ;
  4730. 'SINON' ;
  4731. TXT1 = 'CHAI' TXT0 'WALL ' IWALL ' TWALL bad type' ;
  4732. 'QUIT' BLO10 ;
  4733. 'FINSI' ;
  4734. 'FINSI' ;
  4735. * - 49 --- Température initiale linéaire dans le mur courant ---
  4736. 'SI' ('EGA' NAME1 'TWALL_1') ;
  4737. IKEY = 1 ;
  4738. 'SI' ('EGA' ('TYPE' NAME2) 'FLOTTANT') ;
  4739. THEWAL . 'TWAL1' . IWALL = NAME2 ;
  4740. 'SINON' ;
  4741. TXT1 = 'CHAI' TXT0 'WALL ' IWALL ' TWALL_1 bad type' ;
  4742. 'QUIT' BLO10 ;
  4743. 'FINSI' ;
  4744. 'FINSI' ;
  4745. * - 50 --- Température initiale linéaire dans le mur courant ---
  4746. 'SI' ('EGA' NAME1 'TWALL_2') ;
  4747. IKEY = 1 ;
  4748. 'SI' ('EGA' ('TYPE' NAME2) 'FLOTTANT') ;
  4749. THEWAL . 'TWAL2' . IWALL = NAME2 ;
  4750. 'SINON' ;
  4751. TXT1 = 'CHAI' TXT0 'WALL ' IWALL ' TWALL_2 bad type' ;
  4752. 'QUIT' BLO10 ;
  4753. 'FINSI' ;
  4754. 'FINSI' ;
  4755. * - 51 --- Coeff. d'échange entre premier compart. et mur courant ---
  4756. 'SI' ('EGA' NAME1 'ECHAN1') ;
  4757. IKEY = 1 ;
  4758. 'SI' ('EGA' ('TYPE' NAME2) 'FLOTTANT') ;
  4759. THEWAL . 'ECHAN1' . IWALL = NAME2 ;
  4760. 'SINON' ;
  4761. TXT1 = 'CHAI' TXT0 'WALL ' IWALL ' ECHAN1 bad type' ;
  4762. 'QUIT' BLO10 ;
  4763. 'FINSI' ;
  4764. 'FINSI' ;
  4765. * - 52 --- Coeff. d'échange entre deuxième compart. et mur courant ---
  4766. 'SI' ('EGA' NAME1 'ECHAN2') ;
  4767. IKEY = 1 ;
  4768. 'SI' ('EGA' ('TYPE' NAME2) 'FLOTTANT') ;
  4769. THEWAL . 'ECHAN2' . IWALL = NAME2 ;
  4770. 'SINON' ;
  4771. TXT1 = 'CHAI' TXT0 'WALL ' IWALL ' ECHAN2 bad type' ;
  4772. 'QUIT' BLO10 ;
  4773. 'FINSI' ;
  4774. 'FINSI' ;
  4775. * - 53 --- Numéro de la couche courante du mur courant ---
  4776. 'SI' ('EGA' NAME1 'LAYER') ;
  4777. IKEY = 1 ;
  4778. 'SI' ('EGA' ('TYPE' NAME2) 'ENTIER ') ;
  4779. ILAYER = NAME2 ;
  4780. NBLAYE = NBLAYE + 1 ;
  4781. THEWAL . 'NLAYER' . IWALL = NBLAYE ;
  4782. 'SINON' ;
  4783. TXT1 = 'CHAI' TXT0 'WALL ' IWALL ' LAYER bad type' ;
  4784. 'QUIT' BLO10 ;
  4785. 'FINSI' ;
  4786. 'FINSI' ;
  4787. * - 54 --- Type de matériau de la couche courante ---
  4788. 'SI' ('EGA' NAME1 'DATAW') ;
  4789. IKEY = 1 ;
  4790. 'SI' ('NEG' ('TYPE' IWALL) 'MOT ') ;
  4791. TXT1 = 'CHAI' TXT0 'DATAW is done outside a WALL data block' ;
  4792. 'QUIT' BLO10 ;
  4793. 'FINSI' ;
  4794. 'SI' ('NEG' ('TYPE' ILAYER) 'ENTIER ') ;
  4795. TXT1 = 'CHAI' TXT0 'DATAW is done outside a LAYER data block' ;
  4796. 'QUIT' BLO10 ;
  4797. 'FINSI' ;
  4798. 'SI' ('EGA' ('TYPE' NAME2) 'MOT ') ;
  4799. THEWAL . 'MATERIAL' . IWALL . ILAYER = 'MOT' NAME2 ;
  4800. 'SINON' ;
  4801. TXT1 = 'CHAI' TXT0 'WALL 'IWALL' 'ILAYER' DATAW bad type' ;
  4802. 'QUIT' BLO10 ;
  4803. 'FINSI' ;
  4804. 'FINSI' ;
  4805. * - 55 --- Nombre de noeuds internes dans la couche courante ---
  4806. 'SI' ('EGA' NAME1 'NODES') ;
  4807. IKEY = 1 ;
  4808. 'SI' (NEG ('TYPE' IWALL) 'MOT ') ;
  4809. TXT1 = 'CHAI' TXT0 'NODES is done outside a WALL data block' ;
  4810. 'QUIT' BLO10 ;
  4811. 'FINSI' ;
  4812. 'SI' (NEG ('TYPE' ILAYER) 'ENTIER ') ;
  4813. TXT1 = 'CHAI' TXT0 'NODES is done outside a LAYER data block' ;
  4814. 'QUIT' BLO10 ;
  4815. 'FINSI' ;
  4816. 'SI' ('EGA' ('TYPE' NAME2) 'ENTIER ') ;
  4817. THEWAL . 'NODES' . IWALL . ILAYER = NAME2 ;
  4818. 'SINON' ;
  4819. TXT1 = 'CHAI' TXT0 'WALL 'IWALL' 'ILAYER' NODES bad type' ;
  4820. 'QUIT' BLO10 ;
  4821. 'FINSI' ;
  4822. 'FINSI' ;
  4823. * - 56 --- Epaisseur de la couche courante ---
  4824. 'SI' ('EGA' NAME1 'THICK') ;
  4825. IKEY = 1 ;
  4826. 'SI' (NEG ('TYPE' IWALL) 'MOT ') ;
  4827. TXT1 = 'CHAI' TXT0 'THICK is done outside a WALL data block' ;
  4828. 'QUIT' BLO10 ;
  4829. 'FINSI' ;
  4830. 'SI' (NEG ('TYPE' ILAYER) 'ENTIER ') ;
  4831. TXT1 = 'CHAI' TXT0 'THICK is done outside a LAYER data block' ;
  4832. 'QUIT' BLO10 ;
  4833. 'FINSI' ;
  4834. 'SI' ('EGA' ('TYPE' NAME2) 'FLOTTANT') ;
  4835. THEWAL . 'THICK' . IWALL . ILAYER = NAME2 ;
  4836. 'SINON' ;
  4837. TXT1 = 'CHAI' TXT0 'WALL 'IWALL' LAYER 'ILAYER' THICK bad type' ;
  4838. 'QUIT' BLO10 ;
  4839. 'FINSI' ;
  4840. 'FINSI' ;
  4841. * - 57 --- humidité relative dans le compartiment courant ---
  4842. 'SI' ('EGA' NAME1 'HUMIDITY') ;
  4843. IKEY = 1 ;
  4844. 'SI' ('EGA' ('TYPE' NAME2) 'FLOTTANT') ;
  4845. 'SI' ('EXIS' TCELL NAME1) ;
  4846. TCELL . 'HUMIDITY' . ICELL = NAME2 ;
  4847. 'FINSI' ;
  4848. 'SINON' ;
  4849. TXT1 = 'CHAI' TXT0 'CELL ' ICELL ' HUMIDITY bad type' ;
  4850. 'QUIT' BLO10 ;
  4851. 'FINSI' ;
  4852. 'FINSI' ;
  4853. * - 58 --- coefficient de relaxation ---
  4854. 'SI' ('EGA' NAME1 'RELAX') ;
  4855. IKEY = 1 ;
  4856. 'SI' ('EGA' ('TYPE' NAME2) 'FLOTTANT') ;
  4857. INPUT . 'RELAX' = NAME2 ;
  4858. 'SINON' ;
  4859. TXT1 = 'CHAI' TXT0 ' RELAX bad type' ;
  4860. 'QUIT' BLO10 ;
  4861. 'FINSI' ;
  4862. 'FINSI' ;
  4863. * - 59 --- type de condensation éventuelle ---
  4864. 'SI' ('EGA' NAME1 'CONDENSE') ;
  4865. IKEY = 1 ;
  4866. 'SI' ('EGA' ('TYPE' NAME2) 'MOT ') ;
  4867. PHYSICAL . 'CONDENSE' = 'MOT' NAME2 ;
  4868. 'SINON' ;
  4869. TXT1 = 'CHAI' TXT0 ' CONDENSE bad type' ;
  4870. 'QUIT' BLO10 ;
  4871. 'FINSI' ;
  4872. 'FINSI' ;
  4873. * - 60 --- masse d'eau du puisard du compartiment courant ---
  4874. 'SI' ('EGA' NAME1 'MLIQ') ;
  4875. IKEY = 1 ;
  4876. 'SI' ('EGA' ('TYPE' NAME2) 'FLOTTANT') ;
  4877. 'SI' ('NON' ('EXIS' TCELL 'MLIQ')) ;
  4878. TCELL . 'MLIQ' = 'TABLE' ;
  4879. 'FINSI' ;
  4880. TCELL . 'MLIQ' . ICELL = NAME2 ;
  4881. 'SINON' ;
  4882. TXT1 = 'CHAI' TXT0 'CELL ' ICELL ' MLIQ bad type' ;
  4883. 'QUIT' BLO10 ;
  4884. 'FINSI' ;
  4885. 'FINSI' ;
  4886. * - 61 --- température de l'eau du puisard du compartiment courant ---
  4887. 'SI' ('EGA' NAME1 'TLIQ') ;
  4888. IKEY = 1 ;
  4889. 'SI' ('EGA' ('TYPE' NAME2) 'FLOTTANT') ;
  4890. 'SI' ('NON' ('EXIS' TCELL 'TLIQ')) ;
  4891. TCELL . 'TLIQ' = 'TABLE' ;
  4892. 'FINSI' ;
  4893. TCELL . 'TLIQ' . ICELL = NAME2 ;
  4894. 'SINON' ;
  4895. TXT1 = 'CHAI' TXT0 'CELL ' ICELL ' MLIQ bad type' ;
  4896. 'QUIT' BLO10 ;
  4897. 'FINSI' ;
  4898. 'FINSI' ;
  4899. * - 62 --- surface libre du puisard du compartiment courant ---
  4900. 'SI' ('EGA' NAME1 'ASUMP') ;
  4901. IKEY = 1 ;
  4902. 'SI' ('EGA' ('TYPE' NAME2) 'FLOTTANT') ;
  4903. TCELL . 'ASUMP' . ICELL = NAME2 ;
  4904. 'SINON' ;
  4905. TXT1 = 'CHAI' TXT0 'CELL ' ICELL ' ASUMP bad type' ;
  4906. 'QUIT' BLO10 ;
  4907. 'FINSI' ;
  4908. 'FINSI' ;
  4909. * - 63 --- nom d'un matériau servant pour les structures ---
  4910. 'SI' ('EGA' NAME1 'MATERIAL') ;
  4911. IKEY = 1 ;
  4912. 'SI' ('EGA' ('TYPE' NAME2) 'MOT ') ;
  4913. NOMAT1 = 'MOT' NAME2 ;
  4914. 'SI' ('NON' ('EXIS' TMATER NOMAT1)) ;
  4915. TMATER . NOMAT1 = 'TABLE' ;
  4916. TMATER . NOMAT1 . 'TYPEW' = 'NUL' ;
  4917. TMATER . NOMAT1 . 'CPW' = 0.0 ;
  4918. TMATER . NOMAT1 . 'LBDW' = 0.0 ;
  4919. TMATER . NOMAT1 . 'RHOW' = 0.0 ;
  4920. 'FINSI' ;
  4921. 'SINON' ;
  4922. TXT1 = 'CHAI' TXT0 'MATERIAL bad type' ;
  4923. 'QUIT' BLO10 ;
  4924. 'FINSI' ;
  4925. 'FINSI' ;
  4926. * - 64 --- type du matériau courant ---
  4927. 'SI' ('EGA' NAME1 'WTYPE') ;
  4928. IKEY = 1 ;
  4929. 'SI' ('EGA' ('TYPE' NAME2) 'MOT ') ;
  4930. TMATER . NOMAT1 . 'TYPEW' = 'MOT' NAME2 ;
  4931. 'SI' ('EGA' name2 'WCONCRET') ;
  4932. ICONCRET = 1 ;
  4933. 'FINSI' ;
  4934. 'SI' ('EGA' name2 'WAL') ;
  4935. IAL = 1 ;
  4936. 'FINSI' ;
  4937. 'SI' ('EGA' name2 'WZN') ;
  4938. IZN = 1 ;
  4939. 'FINSI' ;
  4940. 'SI' ('EGA' name2 'WPERMALI') ;
  4941. IPERMALI = 1 ;
  4942. 'FINSI' ;
  4943. 'SINON' ;
  4944. TXT1 = 'CHAI' TXT0 'WTYPE bad type' ;
  4945. 'QUIT' BLO10 ;
  4946. 'FINSI' ;
  4947. 'FINSI' ;
  4948. * - 65 --- chaleur spécifique du matériau courant ---
  4949. 'SI' ('EGA' NAME1 'WCP') ;
  4950. IKEY = 1 ;
  4951. 'SI' ('EGA' ('TYPE' NAME2) 'FLOTTANT') ;
  4952. TMATER . NOMAT1 . 'CPW' = NAME2 ;
  4953. 'SINON' ;
  4954. TXT1 = 'CHAI' TXT0 'WCP bad type' ;
  4955. 'QUIT' BLO10 ;
  4956. 'FINSI' ;
  4957. 'FINSI' ;
  4958. * - 66 --- conductivité thermique du matériau courant ---
  4959. 'SI' ('EGA' NAME1 'WLBD') ;
  4960. IKEY = 1 ;
  4961. 'SI' ('EGA' ('TYPE' NAME2) 'FLOTTANT') ;
  4962. TMATER . NOMAT1 . 'LBDW' = NAME2 ;
  4963. 'SINON' ;
  4964. TXT1 = 'CHAI' TXT0 'WLBD bad type' ;
  4965. 'QUIT' BLO10 ;
  4966. 'FINSI' ;
  4967. 'FINSI' ;
  4968. * - 67 --- masse volumique du matériau courant ---
  4969. 'SI' ('EGA' NAME1 'WRHO') ;
  4970. IKEY = 1 ;
  4971. 'SI' ('EGA' ('TYPE' NAME2) 'FLOTTANT') ;
  4972. TMATER . NOMAT1 . 'RHOW' = NAME2 ;
  4973. 'SINON' ;
  4974. TXT1 = 'CHAI' TXT0 'WRHO bad type' ;
  4975. 'QUIT' BLO10 ;
  4976. 'FINSI' ;
  4977. 'FINSI' ;
  4978. * - 68 --- la jonction liquide ---
  4979. 'SI' ('EGA' NAME1 'TOSUMP') ;
  4980. IKEY = 1 ;
  4981. 'SI' ('EGA' ('TYPE' NAME2) 'MOT ') ;
  4982. IJULC = IJULC + 1 ;
  4983. JULCT . 'FROM' . IJULC = ICELL ;
  4984. JULCT . 'TO' . IJULC = 'MOT' NAME2 ;
  4985. 'SINON' ;
  4986. TXT1 = 'CHAI' TXT0 'CELL ' ICELL ' TOSUMP bad type' ;
  4987. 'QUIT' BLO10 ;
  4988. 'FINSI' ;
  4989. 'FINSI' ;
  4990. * - 69 --- le volume max d'eau dans le puisard du compartiment ---
  4991. 'SI' ('EGA' NAME1 'VMAX') ;
  4992. IKEY = 1 ;
  4993. 'SI' ('EGA' ('TYPE' NAME2) 'FLOTTANT') ;
  4994. TCELL . 'VMAX' . ICELL = NAME2 ;
  4995. 'SINON' ;
  4996. TXT1 = 'CHAI' TXT0 'CELL ' ICELL ' VMAX bad type' ;
  4997. 'QUIT' BLO10 ;
  4998. 'FINSI' ;
  4999. 'FINSI' ;
  5000. * - 70 --- largeur de débordement du puisard ---
  5001. 'SI' ('EGA' NAME1 'APERTURE') ;
  5002. IKEY = 1 ;
  5003. 'SI' ('EGA' ('TYPE' NAME2) 'FLOTTANT') ;
  5004. TCELL . 'APERTURE' . ICELL = NAME2 ;
  5005. 'SINON' ;
  5006. TXT1 = 'CHAI' TXT0 'CELL ' ICELL ' APERTURE bad type' ;
  5007. 'QUIT' BLO10 ;
  5008. 'FINSI' ;
  5009. 'FINSI' ;
  5010. * - 71 --- numéro du puisard externe courant ---
  5011. 'SI' ('EGA' NAME1 'SUMP') ;
  5012. IKEY = 1 ;
  5013. 'SI' ('EGA' ('TYPE' NAME2) 'MOT ') ;
  5014. ICELL = 'MOT' NAME2 ;
  5015. ISUMP = 1 ;
  5016. 'SINON' ;
  5017. TXT1 = 'CHAI' TXT0 'SUMP bad type' ;
  5018. 'QUIT' BLO10 ;
  5019. 'FINSI' ;
  5020. 'FINSI' ;
  5021. * - 72 --- modification de l'injection ---
  5022. 'SI' ('EGA' NAME1 'INJECTION') ;
  5023. IKEY = 1 ;
  5024. 'SI' ('EGA' ('TYPE' NAME2) 'MOT ') ;
  5025. INPUT . 'INJECTION' = 'MOT' NAME2 ;
  5026. 'SINON' ;
  5027. TXT1 = 'CHAI' TXT0 'INJECTION bad type' ;
  5028. 'QUIT' BLO10 ;
  5029. 'FINSI' ;
  5030. 'FINSI' ;
  5031. * - 73 --- prise en compte de l'aspersion ---
  5032. *
  5033. 'SI' ('EGA' NAME1 'SPRAYS') ;
  5034. IKEY = 1 ;
  5035. *- Lecture du nombre de compartiment et de leurs noms
  5036. *- (on saute les lignes de commentaires éventuelles)
  5037. 'SI' ('EGA' ('TYPE' NAME2) 'ENTIER ') ;
  5038. NBASP = NAME2 ;
  5039. SPRAY . 'NBR' = NBASP ;
  5040. 'REPE' BLOASP1 100 ;
  5041. 'ACQU' NAME1 ;
  5042. 'SI' ('EGA' NAME1 '#') ;
  5043. 'SINON' ;
  5044. 'MESS' NAME1 ;
  5045. SPRAY . 'LOCATION' . &BLOASP1 = NAME1 ;
  5046. 'SI' ( 'EGA' NBASP &BLOASP1 ) ;
  5047. 'QUIT' BLOASP1 ;
  5048. 'FINSI';
  5049. 'FINSI' ;
  5050. 'FIN' BLOASP1 ;
  5051. *
  5052. 'REPE' BLOASP2 100 ;
  5053. 'ACQU' NAME1 NAME2 ;
  5054. * - 1 --- on saute les lignes de commentaires ---
  5055. 'SI' (NEG NAME1 '#') ;
  5056. 'MESS' NAME1 ' ' NAME2 ;
  5057. * - 2 --- temps de demarrage de l'aspersion ---
  5058. 'SI' ('EGA' NAME1 'STARTSPRAY') ;
  5059. 'SI' ('EGA' ('TYPE' NAME2) 'FLOTTANT') ;
  5060. SPRAY . 'STARTSPRAY' = NAME2 ;
  5061. 'SINON' ;
  5062. TXT1 = 'CHAI' TXT0 'ASPERSION : STARTSPRAY bad type' ;
  5063. 'QUIT' BLO10 ;
  5064. 'FINSI' ;
  5065. 'SINON' ;
  5066. * - 3 --- debit d'aspersion ---
  5067. 'SI' ('EGA' NAME1 'FLOWRATE') ;
  5068. 'SI' ('EGA' ('TYPE' NAME2) 'MOT ') ;
  5069. SPRAY . 'FLOWRATE' = 'MOT' NAME2 ;
  5070. 'SINON' ;
  5071. TXT1 = 'CHAI' TXT0 'ASPERSION : FLOWRATE bad type' ;
  5072. 'QUIT' BLO10 ;
  5073. 'FINSI' ;
  5074. 'SINON' ;
  5075. * - 4 --- pression de demarrage ---
  5076. 'SI' ('EGA' NAME1 'THRESHOLP') ;
  5077. 'SI' ('EGA' ('TYPE' NAME2) 'MOT ') ;
  5078. SPRAY . 'THRESHOLP' = 'MOT' NAME2 ;
  5079. 'SINON' ;
  5080. TXT1 = 'CHAI' TXT0 'ASPERSION : THRESHOLP bad type' ;
  5081. 'QUIT' BLO10 ;
  5082. 'FINSI' ;
  5083. 'SINON' ;
  5084. * - 5 --- Nom du puisard pour la recirculation ---
  5085. 'SI' ('EGA' NAME1 'RECIR') ;
  5086. 'SI' ('EGA' ('TYPE' NAME2) 'MOT ') ;
  5087. SPRAY . 'RECIR' = 'MOT' NAME2 ;
  5088. 'SINON' ;
  5089. TXT1 = 'CHAI' TXT0 'ASPERSION : RECIR bad type' ;
  5090. 'QUIT' BLO10 ;
  5091. 'FINSI' ;
  5092. 'SINON' ;
  5093. * - 6 --- T maxi ---
  5094. 'SI' ('EGA' NAME1 'TMAX') ;
  5095. 'SI' ('EGA' ('TYPE' NAME2) 'FLOTTANT') ;
  5096. SPRAY . 'TMAX' = NAME2 ;
  5097. 'SINON' ;
  5098. TXT1 = 'CHAI' TXT0 'ASPERSION : TMAX bad type' ;
  5099. 'QUIT' BLO10 ;
  5100. 'FINSI' ;
  5101. 'SINON' ;
  5102. * - 7 --- volume mini d'arret ---
  5103. 'SI' ('EGA' NAME1 'VOLMINI') ;
  5104. 'SI' ('EGA' ('TYPE' NAME2) 'FLOTTANT') ;
  5105. SPRAY . 'VOLMINI' = NAME2 ;
  5106. 'SINON' ;
  5107. TXT1 = 'CHAI' TXT0 'ASPERSION : VOLMINI bad type' ;
  5108. 'QUIT' BLO10 ;
  5109. 'FINSI' ;
  5110. 'SINON' ;
  5111. * - 8 --- Type d'echangeur ---
  5112. 'SI' ('EGA' NAME1 'EXCHANGER') ;
  5113. 'SI' ('EGA' ('TYPE' NAME2) 'MOT ') ;
  5114. SPRAY . 'EXCHANGER' = 'MOT' NAME2 ;
  5115. 'SINON' ;
  5116. TXT1 = 'CHAI' TXT0 'ASPERSION : EXCHANGER bad type' ;
  5117. 'QUIT' BLO10 ;
  5118. 'FINSI' ;
  5119. 'SINON' ;
  5120. * actuellement il n'y a qu'un seul type d'echangeur (CC)
  5121. * - 9 --- T echangeur (froid) ---
  5122. 'SI' ('EGA' NAME1 'TCOLD') ;
  5123. 'SI' ('EGA' ('TYPE' NAME2) 'FLOTTANT') ;
  5124. SPRAY . 'TCOLD' = NAME2 ;
  5125. 'SINON' ;
  5126. TXT1 = 'CHAI' TXT0 'ASPERSION : TCOLD bad type' ;
  5127. 'QUIT' BLO10 ;
  5128. 'FINSI' ;
  5129. 'SINON' ;
  5130. * - 10 --- CP echangeur (froid) ---
  5131. 'SI' ('EGA' NAME1 'CPCOLD') ;
  5132. 'SI' ('EGA' ('TYPE' NAME2) 'FLOTTANT') ;
  5133. SPRAY . 'CPCOLD' = NAME2 ;
  5134. 'SINON' ;
  5135. TXT1 = 'CHAI' TXT0 'ASPERSION : CPCOLD bad type' ;
  5136. 'QUIT' BLO10 ;
  5137. 'FINSI' ;
  5138. 'SINON' ;
  5139. * - 11 --- rendement en pourcent ---
  5140. 'SI' ('EGA' NAME1 'RATEEXCH') ;
  5141. 'SI' ('EGA' ('TYPE' NAME2) 'FLOTTANT') ;
  5142. SPRAY . 'RATEEXCH' = NAME2 ;
  5143. 'SINON' ;
  5144. TXT1 = 'CHAI' TXT0 'ASPERSION : RATEEXCH bad type' ;
  5145. 'QUIT' BLO10 ;
  5146. 'FINSI' ;
  5147. 'SINON' ;
  5148. * - 12 --- CC : coef KS ---
  5149. 'SI' ('EGA' NAME1 'KS') ;
  5150. 'SI' ('EGA' ('TYPE' NAME2) 'FLOTTANT') ;
  5151. SPRAY . 'KS' = NAME2 ;
  5152. 'SINON' ;
  5153. TXT1 = 'CHAI' TXT0 'ASPERSION : KS bad type' ;
  5154. 'QUIT' BLO10 ;
  5155. 'FINSI' ;
  5156. 'SINON' ;
  5157. * - 13 --- CC : coef alpha ---
  5158. 'SI' ('EGA' NAME1 'ALPHA') ;
  5159. 'SI' ('EGA' ('TYPE' NAME2) 'FLOTTANT') ;
  5160. SPRAY . 'ALPHA' = NAME2 ;
  5161. 'SINON' ;
  5162. TXT1 = 'CHAI' TXT0 'ASPERSION : ALPHA bad type' ;
  5163. 'QUIT' BLO10 ;
  5164. 'FINSI' ;
  5165. 'SINON' ;
  5166. * - 14 --- CC : coef beta ---
  5167. 'SI' ('EGA' NAME1 'BETA') ;
  5168. 'SI' ('EGA' ('TYPE' NAME2) 'FLOTTANT') ;
  5169. SPRAY . 'BETA' = NAME2 ;
  5170. 'SINON' ;
  5171. TXT1 = 'CHAI' TXT0 'ASPERSION : BETA bad type' ;
  5172. 'QUIT' BLO10 ;
  5173. 'FINSI' ;
  5174. 'SINON' ;
  5175. * - 15 --- CC : coef gamma ---
  5176. 'SI' ('EGA' NAME1 'GAMMA') ;
  5177. 'SI' ('EGA' ('TYPE' NAME2) 'FLOTTANT') ;
  5178. SPRAY . 'GAMMA' = NAME2 ;
  5179. 'SINON' ;
  5180. TXT1 = 'CHAI' TXT0 'ASPERSION : GAMMA bad type' ;
  5181. 'QUIT' BLO10 ;
  5182. 'FINSI' ;
  5183. 'SINON' ;
  5184. * - 16 --- volume du reservoir ---
  5185. 'SI' ('EGA' NAME1 'VOLUME') ;
  5186. 'SI' ('EGA' ('TYPE' NAME2) 'FLOTTANT') ;
  5187. SPRAY . 'VOLUME' = NAME2 ;
  5188. 'SINON' ;
  5189. TXT1 = 'CHAI' TXT0 'ASPERSION : VOLUME bad type' ;
  5190. 'QUIT' BLO10 ;
  5191. 'FINSI' ;
  5192. 'SINON' ;
  5193. * - 17 --- modele d'aspersion ---
  5194. 'SI' ('EGA' NAME1 'SPRMOD') ;
  5195. 'SI' ('EGA' ('TYPE' NAME2) 'ENTIER ') ;
  5196. SPRAY . 'SPRMOD' = NAME2 ;
  5197. 'SINON' ;
  5198. TXT1 = 'CHAI' TXT0 'ASPERSION : SPRMOD bad type' ;
  5199. 'QUIT' BLO10 ;
  5200. 'FINSI' ;
  5201. 'SINON' ;
  5202. * - 18 --- fraction impactant la paroi ---
  5203. 'SI' ('EGA' NAME1 'SPRW') ;
  5204. 'SI' ('EGA' ('TYPE' NAME2) 'FLOTTANT') ;
  5205. SPRAY . 'SPRW' = NAME2 ;
  5206. 'SINON' ;
  5207. TXT1 = 'CHAI' TXT0 'ASPERSION : SPRMOD bad type' ;
  5208. 'QUIT' BLO10 ;
  5209. 'FINSI' ;
  5210. * - on a lu un mot clé different de ceux de l'aspersion
  5211. 'SINON' ;
  5212. ILECT = 1 ;
  5213. 'QUIT' BLOASP2 ;
  5214. 'FINSI' ;
  5215. 'FINSI' ;
  5216. 'FINSI' ;
  5217. 'FINSI' ;
  5218. 'FINSI' ;
  5219. 'FINSI' ;
  5220. 'FINSI' ;
  5221. 'FINSI' ;
  5222. 'FINSI' ;
  5223. 'FINSI' ;
  5224. * - 10 -
  5225. 'FINSI' ;
  5226. 'FINSI' ;
  5227. 'FINSI' ;
  5228. 'FINSI' ;
  5229. 'FINSI' ;
  5230. 'FINSI' ;
  5231. 'FINSI' ;
  5232. 'FINSI' ;
  5233. 'FIN' BLOASP2 ;
  5234. *
  5235. 'SINON' ;
  5236. TXT1 = 'CHAI' TXT0 'SPRAY bad type' ;
  5237. 'QUIT' BLO10 ;
  5238. 'FINSI' ;
  5239. *
  5240. * ----- FIN de LECTURE pour L'ASPERSION
  5241. * -------------------------------
  5242. *
  5243. 'FINSI' ;
  5244. * - 74 --- longueur caracteristique de Combustion ---
  5245. 'SI' ('EGA' NAME1 'LCOMB') ;
  5246. IKEY = 1 ;
  5247. 'SI' ('EGA' ('TYPE' NAME2) 'FLOTTANT') ;
  5248. TCELL . 'LCOMB' . ICELL = NAME2 ;
  5249. 'SINON' ;
  5250. TXT1 = 'CHAI' TXT0 'CELL ' ICELL ' LCOMB bad type' ;
  5251. 'QUIT' BLO10 ;
  5252. 'FINSI' ;
  5253. 'FINSI' ;
  5254. * - 75 --- Type de Combustion ---
  5255. * (rdcomb : lecture des modèles de combustion)
  5256. 'SI' ('EGA' NAME1 'BURNING') ;
  5257. IKEY = 1 ;
  5258. 'SI' ('EGA' ('TYPE' NAME2) 'MOT ') ;
  5259. TOTO = 'MOT' NAME2 ;
  5260. BURN . 'TYPE' = 'MOT' NAME2 ;
  5261. 'SINON' ;
  5262. TXT1 = 'CHAI' TXT0 'TYPE of COMBUSTION Bad TYPE' ;
  5263. 'QUIT' BLO10 ;
  5264. 'FINSI' ;
  5265. ILECT NAME1 NAME2 = RDCOMB BURN NAME2 ;
  5266. NBCOMB = 1 ;
  5267. 'FINSI' ;
  5268. * - 76 --- Recombineur ---
  5269. * (rdrecomb : lecture pour les recombineurs)
  5270. 'SI' ('EGA' NAME1 'RECOMBINER') ;
  5271. IKEY = 1 ;
  5272. 'SI' ('EGA' ('TYPE' NAME2) 'ENTIER ') ;
  5273. RECOMB . 'NBR' = NAME2 ;
  5274. 'SINON' ;
  5275. TXT1 = 'CHAI' TXT0 'TYPE of Recombineur Bad TYPE' ;
  5276. 'QUIT' BLO10 ;
  5277. 'FINSI' ;
  5278. ILECT NAME1 NAME2 = RDRECOMB RECOMB ;
  5279. NBRECOMB = 1 ;
  5280. 'FINSI' ;
  5281. * - 77 --- Puissance Résiduelle ---
  5282. * (rdpresi : lecture de la Puissance residuelle)
  5283. 'SI' ('EGA' NAME1 'RESIDUAL') ;
  5284. IKEY = 1 ;
  5285. 'SI' ('EGA' ('TYPE' NAME2) 'ENTIER ') ;
  5286. PRESI . 'NBR' = NAME2 ;
  5287. 'SINON' ;
  5288. TXT1 = 'CHAI' TXT0 'RESIDUAL Bad TYPE' ;
  5289. 'QUIT' BLO10 ;
  5290. 'FINSI' ;
  5291. ILECT NAME1 NAME2 = RDPRESI PRESI NAME2 ;
  5292. NBRPRESI = 1 ;
  5293. 'FINSI' ;
  5294. * - 78 --- coeff pour la prediction en temps ---
  5295. 'SI' ('EGA' NAME1 'PREDT') ;
  5296. IKEY = 1 ;
  5297. 'SI' ('EGA' ('TYPE' NAME2) 'FLOTTANT') ;
  5298. TIMECALC . 'PREDT' = NAME2 ;
  5299. 'SINON' ;
  5300. TXT1 = 'CHAI' TXT0 'PREDT bad Type' ;
  5301. 'QUIT' BLO10 ;
  5302. 'FINSI' ;
  5303. 'FINSI' ;
  5304. * - 79 --- type de couplage thermique mur/compartiment ---
  5305. 'SI' ('EGA' NAME1 'T_COUPLING') ;
  5306. IKEY = 1 ;
  5307. 'SI' ('EGA' ('TYPE' NAME2) 'MOT ') ;
  5308. INPUT . 'T_COUPLING' = 'MOT' NAME2 ;
  5309. 'SINON' ;
  5310. TXT1 = 'CHAI' TXT0 'T_COUPLING bad Type' ;
  5311. 'QUIT' BLO10 ;
  5312. 'FINSI' ;
  5313. 'FINSI' ;
  5314. * - 80 --- relaxation por les propriétés physiques ---
  5315. 'SI' ('EGA' NAME1 'RELINT') ;
  5316. IKEY = 1 ;
  5317. 'SI' ('EGA' ('TYPE' NAME2) 'FLOTTANT') ;
  5318. INPUT . 'RELINT' = NAME2 ;
  5319. 'SINON' ;
  5320. TXT1 = 'CHAI' TXT0 'RELINT bad Type' ;
  5321. 'QUIT' BLO10 ;
  5322. 'FINSI' ;
  5323. 'FINSI' ;
  5324. * - 81 --- impression de la convergence des itérations ---
  5325. 'SI' ('EGA' NAME1 'IMPR') ;
  5326. IKEY = 1 ;
  5327. 'SI' ('EGA' ('TYPE' NAME2) 'ENTIER ') ;
  5328. INPUT . 'IMPR' = NAME2 ;
  5329. 'SINON' ;
  5330. TXT1 = 'CHAI' TXT0 'IMPR bad Type' ;
  5331. 'QUIT' BLO10 ;
  5332. 'FINSI' ;
  5333. 'FINSI' ;
  5334. * - 82 --- temps caractéristique associé à TAGAMI ---
  5335. 'SI' ('EGA' NAME1 'T_TAG') ;
  5336. IKEY = 1 ;
  5337. 'SI' ('EGA' ('TYPE' NAME2) 'FLOTTANT') ;
  5338. PHYSICAL . 'TTAG' = NAME2 ;
  5339. 'SINON' ;
  5340. TXT1 = 'CHAI' TXT0 'T_TAG bad Type' ;
  5341. 'QUIT' BLO10 ;
  5342. 'FINSI' ;
  5343. 'FINSI' ;
  5344. * - 83 --- constante associée à TAGAMI ---
  5345. 'SI' ('EGA' NAME1 'C_TAG') ;
  5346. IKEY = 1 ;
  5347. 'SI' ('EGA' ('TYPE' NAME2) 'FLOTTANT') ;
  5348. PHYSICAL . 'CTAG' = NAME2 ;
  5349. 'SINON' ;
  5350. TXT1 = 'CHAI' TXT0 'C_TAG bad Type' ;
  5351. 'QUIT' BLO10 ;
  5352. 'FINSI' ;
  5353. 'FINSI' ;
  5354. * - 84 --- puisard en contact avec la face from d'un mur ---
  5355. 'SI' ('EGA' NAME1 'FROMS') ;
  5356. IKEY = 1 ;
  5357. 'SI' ('EGA' ('TYPE' NAME2) 'MOT ') ;
  5358. THEWAL . 'FROM' . IWALL = 'MOT' NAME2 ;
  5359. THEWAL . 'TYPEFROM'. IWALL = 'SUMP' ;
  5360. 'SINON' ;
  5361. TXT1 = 'CHAI' TXT0 'FROMS bad type' ;
  5362. 'QUIT' BLO10 ;
  5363. 'FINSI' ;
  5364. 'FINSI' ;
  5365. * - 85 --- puisard en contact avec la face to d'un mur ---
  5366. 'SI' ('EGA' NAME1 'TOS') ;
  5367. IKEY = 1 ;
  5368. 'SI' ('EGA' ('TYPE' NAME2) 'MOT ') ;
  5369. THEWAL . 'TO' . IWALL = 'MOT' NAME2 ;
  5370. THEWAL . 'TYPETO' . IWALL = 'SUMP' ;
  5371. 'SINON' ;
  5372. TXT1 = 'CHAI' TXT0 'TOS bad type' ;
  5373. 'QUIT' BLO10 ;
  5374. 'FINSI' ;
  5375. 'FINSI' ;
  5376. * - 86 --- définition d'un exterieur ---
  5377. 'SI' ('EGA' NAME1 'OUTDOOR') ;
  5378. IKEY = 1 ;
  5379. 'SI' ('EGA' ('TYPE' NAME2) 'MOT ') ;
  5380. IEXTE = 'MOT' NAME2 ;
  5381. NBEXTE = NBEXTE + 1 ;
  5382. 'SINON' ;
  5383. TXT1 = 'CHAI' TXT0 'OUTDOOR bad type' ;
  5384. 'QUIT' BLO10 ;
  5385. 'FINSI' ;
  5386. AA1 = 'BRUI' 'BLAN' 'GAUS' 1000. 100. 2 ;
  5387. XO1 = 'EXTR' AA1 1 ;
  5388. YO1 = 'EXTR' AA1 2 ;
  5389. PTF1 = XO1 YO1 ;
  5390. TEXT1 .'LOCATION' . IEXTE = PTF1 ;
  5391. 'FINSI' ;
  5392. * - 87 --- donnée de la temperature imposée sur l'exterieur defini ---
  5393. 'SI' ('EGA' NAME1 'TIMP') ;
  5394. IKEY = 1 ;
  5395. ITIMP = 0 ;
  5396. 'SI' ('EGA' ('TYPE' NAME2) 'FLOTTANT') ;
  5397. ITIMP = 1 ;
  5398. 'SI' ('NON' ('EXIS' TEXT1 'TIMP'));
  5399. TEXT1 . 'TIMP' = 'TABLE' ;
  5400. 'FINSI' ;
  5401. TEXT1 . 'TIMP' . IEXTE = NAME2 ;
  5402. TEXT1 . 'TPS' . IEXTE = 'PROG' ;
  5403. TEXT1 . 'TEMP' . IEXTE = 'PROG' NAME2 NAME2 ;
  5404. 'FINSI' ;
  5405. 'SI' ('EGA' ('TYPE' NAME2) 'ENTIER ') ;
  5406. ITIMP = 2 ;
  5407. 'SI' ('NON' ('EXIS' TEXT1 'TVAR'));
  5408. TEXT1 . 'TVAR' = 'TABLE' ;
  5409. 'FINSI' ;
  5410. TEXT1 . 'TVAR' . IEXTE = NAME2 ;
  5411. 'SI' ((TEXT1 .'TVAR' . IEXTE) '&lt;EG' 0) ;
  5412. TXT1 = 'CHAI' TXT0 'Nb TVAR may be greatest or egal to 1' ;
  5413. 'QUIT' BLO10 ;
  5414. 'FINSI' ;
  5415. TEXT1 .'TPS' . IEXTE = 'PROG' ;
  5416. TEXT1 .'TEMP' . IEXTE = 'PROG' ;
  5417. 'REPE' BLO87A (TEXT1 . 'TVAR' . IEXTE) ;
  5418. 'ACQU' NAME1 NAME2 ;
  5419. 'MESS' NAME1 ' ' NAME2 ;
  5420. 'SI' (('EGA' ('TYPE' NAME1) 'FLOTTANT') ET
  5421. ('EGA' ('TYPE' NAME2) 'FLOTTANT')) ;
  5422. TEXT1 .'TPS' . IEXTE = (TEXT1 .'TPS' . IEXTE) 'ET'
  5423. ('PROG' NAME1) ;
  5424. TEXT1 .'TEMP' . IEXTE = (TEXT1 .'TEMP' . IEXTE) 'ET'
  5425. ('PROG' NAME2) ;
  5426. 'SINON' ;
  5427. TXT1 = 'CHAI' TXT0 'listing of Tout(t) bad type' ;
  5428. 'QUIT' BLO10 ;
  5429. 'FINSI' ;
  5430. 'FIN' BLO87A ;
  5431. 'FINSI' ;
  5432. 'SI' ('EGA' ('TYPE' NAME2) 'MOT ') ;
  5433. 'SI' ('EGA' NAME2 'FREE') ;
  5434. ITIMP = 2 ;
  5435. 'SI' ('NON' ('EXIS' TEXT1 'TVAR'));
  5436. TEXT1 . 'TVAR' = 'TABLE' ;
  5437. 'FINSI' ;
  5438. TEXT1 . 'TVAR' . IEXTE = 'MOT' NAME2 ;
  5439. TEXT1 . 'TPS' . IEXTE = 'PROG' ;
  5440. TEXT1 . 'TEMP' . IEXTE = 'PROG' ;
  5441. 'REPE' BLO87B ;
  5442. 'ACQU' NAME1 NAME2 ;
  5443. 'MESS' NAME1 ' ' NAME2 ;
  5444. 'SI' (('EGA' ('TYPE' NAME1) 'FLOTTANT') ET
  5445. ('EGA' ('TYPE' NAME2) 'FLOTTANT')) ;
  5446. TEXT1 .'TPS' . IEXTE = (TEXT1 .'TPS' . IEXTE) 'ET'
  5447. ('PROG' NAME1) ;
  5448. TEXT1 .'TEMP' . IEXTE = (TEXT1 .'TEMP' . IEXTE) 'ET'
  5449. ('PROG' NAME2) ;
  5450. 'SINON' ;
  5451. 'SI' ('EGA' ('TYPE' NAME1) 'MOT ') ;
  5452. 'SI' ('EGA' NAME1 'END') ;
  5453. 'QUIT' BLO87B ;
  5454. 'SINO' ;
  5455. TXT1 = 'CHAI' TXT0 'TIMP list not well closed' ;
  5456. 'QUIT' BLO10 ;
  5457. 'FINSI' ;
  5458. 'SINO' ;
  5459. TXT1 = 'CHAI' TXT0 'TIMP bad type' ;
  5460. 'QUIT' BLO10 ;
  5461. 'FINSI' ;
  5462. 'FINSI' ;
  5463. 'FIN' BLO87B ;
  5464. 'SINO' ;
  5465. ITIMP = 3 ;
  5466. 'SI' ('NON' ('EXIS' TEXT1 'TFILE'));
  5467. TEXT1 . 'TFILE' = 'TABLE' ;
  5468. 'FINSI' ;
  5469. TEXT1 . 'TFILE' . IEXTE = NAME2 ;
  5470. 'FINSI' ;
  5471. 'FINSI' ;
  5472. 'SI' ('EGA' ITIMP 0) ;
  5473. TXT1 = 'CHAI' TXT0 'OUTDOOR ' IEXTE ' TIMP bad type' ;
  5474. 'QUIT' BLO10 ;
  5475. 'FINSI' ;
  5476. 'FINSI' ;
  5477. * - 89 --- Modele de condensation sur la face 1 du mur courant ---
  5478. 'SI' ('EGA' NAME1 'CONDEN1') ;
  5479. IKEY = 1 ;
  5480. 'SI' ('EGA' ('TYPE' NAME2) 'MOT') ;
  5481. THEWAL . 'COND1' . IWALL = 'MOT' NAME2 ;
  5482. 'SINON' ;
  5483. TXT1 = 'CHAI' TXT0 'WALL ' IWALL ' CONDEN1 bad type' ;
  5484. 'QUIT' BLO10 ;
  5485. 'FINSI' ;
  5486. 'FINSI' ;
  5487. * - 90 --- Modele de condensation sur la face 2 du mur courant ---
  5488. 'SI' ('EGA' NAME1 'CONDEN2') ;
  5489. IKEY = 1 ;
  5490. 'SI' ('EGA' ('TYPE' NAME2) 'MOT') ;
  5491. THEWAL . 'COND2' . IWALL = 'MOT' NAME2 ;
  5492. 'SINON' ;
  5493. TXT1 = 'CHAI' TXT0 'WALL ' IWALL ' CONDEN2 bad type' ;
  5494. 'QUIT' BLO10 ;
  5495. 'FINSI' ;
  5496. 'FINSI' ;
  5497. * - 111 --- OUT (puit de masse dans un compartiment) ---
  5498. 'SI' ('EGA' NAME1 'OUT') ;
  5499. IKEY = 1 ;
  5500. 'SI' ('EGA' ('TYPE' NAME2) 'MOT ') ;
  5501. 'SI' ('NON' ('EXIS' BOUNDARY 'OUT')) ;
  5502. BOUNDARY . 'OUT' = 'TABLE' ;
  5503. 'FINSI' ;
  5504. 'SI' ('NON' ('EXIS' BOUNDARY . 'OUT' ICELL)) ;
  5505. BOUNDARY . 'OUT' . ICELL = 'TABLE' ;
  5506. 'FINSI' ;
  5507. IOUT = IOUT + 1 ;
  5508. BOUNDARY . 'OUT' . ICELL . IOUT = 'MOT' NAME2 ;
  5509. 'SINON' ;
  5510. TXT1 = 'CHAI' TXT0 'CELL ' ICELL ' OUT bad type' ;
  5511. 'QUIT' BLO10 ;
  5512. 'FINSI' ;
  5513. 'FINSI' ;
  5514. * - 112 --- ISBP (puit de masse dans un puisard) ---
  5515. 'SI' ('EGA' NAME1 'ISBP') ;
  5516. IKEY = 1 ;
  5517. 'SI' ('EGA' ('TYPE' NAME2) 'MOT ') ;
  5518. 'SI' ('NON' ('EXIS' BOUNDARY 'ISBP')) ;
  5519. BOUNDARY . 'ISBP' = 'TABLE' ;
  5520. 'FINSI' ;
  5521. 'SI' ('NON' ('EXIS' BOUNDARY . 'ISBP' ICELL)) ;
  5522. BOUNDARY . 'ISBP' . ICELL = 'TABLE' ;
  5523. 'FINSI' ;
  5524. IISBP = IISBP + 1 ;
  5525. BOUNDARY . 'ISBP' . ICELL . IISBP = 'MOT' NAME2 ;
  5526. 'SINON' ;
  5527. TXT1 = 'CHAI' TXT0 'CELL ' ICELL ' ISBP bad type' ;
  5528. 'QUIT' BLO10 ;
  5529. 'FINSI' ;
  5530. 'FINSI' ;
  5531. * - 113 --- QSONIC Limitation du débit par le débit sonique ---
  5532. 'SI' ('EGA' NAME1 'QSONIC') ;
  5533. IKEY = 1 ;
  5534. 'SI' ('EGA' ('TYPE' NAME2) 'MOT') ;
  5535. INPUT . 'QSONIC' = 'MOT' NAME2 ;
  5536. 'SINO' ;
  5537. TXT1 = 'CHAI' TXT0 'QSONIC bad Type' ;
  5538. 'QUIT' BLO10 ;
  5539. 'FINSI' ;
  5540. 'FINSI' ;
  5541. * - 114 --- QLIMIT Débit seuil pour la prise en compte du débit sonique ---
  5542. 'SI' ('EGA' NAME1 'QLIMIT') ;
  5543. IKEY = 1 ;
  5544. 'SI' ('EGA' ('TYPE' NAME2) 'FLOTTANT') ;
  5545. INPUT . 'QLIMIT' = NAME2 ;
  5546. 'SINO' ;
  5547. TXT1 = 'CHAI' TXT0 'QLIMIT bad Type' ;
  5548. 'QUIT' BLO10 ;
  5549. 'FINSI' ;
  5550. 'FINSI' ;
  5551. * - Sortie de boucle sur mot clé inconnu ---
  5552. 'SI' ('EGA' IKEY 0) ;
  5553. TXT1 = 'CHAI' TXT0 'keyword ' NAME1 ' unknown ! .....';
  5554. INPUT . 'ERROR' = 1 ;
  5555. 'QUIT' blo10 ;
  5556. 'FINSI' ;
  5557. * - Sortie de boucle sur detection du mot clef END ---
  5558. 'SI' ('EGA' ifin 1) ;
  5559. 'QUIT' blo10 ;
  5560. 'FINSI' ;
  5561. *
  5562. 'FIN' BLO10 ;
  5563. *
  5564. * - Gestion des erreurs
  5565. *
  5566. 'SI' ('EGA' (INPUT . 'ERROR') 1) ;
  5567. 'MESS' TXT1 ;
  5568. 'QUIT' to_input ;
  5569. 'FINSI' ;
  5570. *
  5571. * --- lecture des fichiers de température imposée
  5572. *
  5573. 'SI' ('EXIS' TEXT1 'TFILE');
  5574. 'MESS' 'Lecture des fichiers TIMP' ;
  5575. NFIL1 = 'DIME' (TEXT1 .'TFILE') ;
  5576. INFIL1 = 'INDE' (TEXT1 .'TFILE') ;
  5577. 'REPE' TI005 NFIL1 ;
  5578. INFILE = INFIL1 . &TI005 ;
  5579. 'MESS' 'Lecture du fichier ' INFILE ;
  5580. 'OPTI' 'ACQU' (TEXT1 . 'TFILE' . INFILE ) ;
  5581. TEXT1 .'TPS' . INFILE = 'PROG' ;
  5582. TEXT1 .'TEMP' . INFILE = 'PROG' ;
  5583. 'REPE' TI002 ;
  5584. 'ACQU' NAME1 NAME2 ;
  5585. 'MESS' NAME1 NAME2 ;
  5586. 'SI' ('EGA' ('TYPE' NAME1) 'MOT') ;
  5587. 'SI' ('EGA' NAME1 'END') ;
  5588. 'QUIT' TI002 ;
  5589. 'FINSI' ;
  5590. 'FINSI' ;
  5591. 'SI' (('EGA' ('TYPE' NAME1) 'FLOTTANT') ET
  5592. ('EGA' ('TYPE' NAME2) 'FLOTTANT')) ;
  5593. TEXT1 .'TPS' . INFILE = (TEXT1 .'TPS' . INFILE) 'ET'
  5594. ('PROG' NAME1) ;
  5595. TEXT1 .'TEMP' . INFILE = (TEXT1 .'TEMP' . INFILE) 'ET'
  5596. ('PROG' NAME2) ;
  5597. 'FINSI' ;
  5598. 'FIN' TI002 ;
  5599. 'FIN' TI005 ;
  5600. 'FINSI' ;
  5601. *
  5602. * --- lecture des fichiers de section variable
  5603. *
  5604. 'SI' ('NEG' ('TYPE' IJUNC) 'ENTIER ') ;
  5605. 'MESS' 'Lecture des fichiers AREA (section de jonction variable)' ;
  5606. NFIL1 = 'DIME' (JUNCT . 'AREA') ;
  5607. INFIL1 = 'INDE' (JUNCT . 'AREA') ;
  5608. 'REPE' BLO31D NFIL1 ;
  5609. INFILE = JUNCT . 'AREA' . (INFIL1 . &blo31d) ;
  5610. 'SI' ('EGA' ('TYPE' infile) 'MOT ') ;
  5611. 'MESS' 'Lecture du fichier ' INFILE ;
  5612. 'OPTI' 'ACQU' INFILE ;
  5613. tps1 = 'PROG' ;
  5614. val1 = 'PROG' ;
  5615. 'REPE' BLO31C ;
  5616. 'ACQU' NAME1 NAME2 ;
  5617. 'MESS' NAME1 NAME2 ;
  5618. 'SI' ('EGA' ('TYPE' NAME1) 'MOT') ;
  5619. 'SI' ('EGA' NAME1 'END') ;
  5620. 'QUIT' BLO31C ;
  5621. 'FINSI' ;
  5622. 'FINSI' ;
  5623. 'SI' (('EGA' ('TYPE' NAME1) 'FLOTTANT') ET
  5624. ('EGA' ('TYPE' NAME2) 'FLOTTANT')) ;
  5625. tps1 = tps1 'ET' ('PROG' NAME1) ;
  5626. val1 = val1 'ET' ('PROG' NAME2) ;
  5627. 'FINSI' ;
  5628. 'FIN' BLO31C ;
  5629. junct . 'AREA' . (INFIL1 . &blo31c) = 'EVOL' 'MANU' tps1 val1 ;
  5630. 'FINSI' ;
  5631. 'FIN' BLO31D ;
  5632. 'FINSI' ;
  5633. *
  5634. * --- verification que la table des composants n'est pas vide et
  5635. * --- composant H2O mis en dernier pour traiter les sources explicites
  5636. *
  5637. NBC1 = 'DIME' TCOMPO ;
  5638. 'SI' ('EGA' NBC1 0) ;
  5639. TXT1 = 'CHAI' TXT0 'no COMPONENT detected' ;
  5640. INPUT . 'ERROR' = 1 ; 'MESS' TXT1 ; 'QUIT' TO_INPUT ;
  5641. 'FINSI' ;
  5642. 'REPE' blo20 nbc1 ;
  5643. 'SI' ('EGA' TCOMPO . &blo20 'H2O') ;
  5644. TCOMPO . &blo20 = TCOMPO . nbc1 ;
  5645. TCOMPO . nbc1 = 'H2O' ;
  5646. 'FINSI' ;
  5647. 'FIN' blo20 ;
  5648. INPUT . 'COMPONENT' = TCOMPO ;
  5649. *
  5650. * --- affectation des tables géométriques, materiels ...
  5651. *
  5652. INPUT . 'CELL' = TCELL ;
  5653. INPUT . 'SUMP' = TSUMP ;
  5654. INPUT . 'BOUNDARY' = BOUNDARY ;
  5655. INPUT . 'PHYSICAL' = PHYSICAL ;
  5656. INPUT . 'TIMECALC' = TIMECALC ;
  5657. *
  5658. *- prise en compte des données suite au décodage
  5659. 'SI' ('EGA' ('TYPE' IJUNC) 'ENTIER ') ;
  5660. LJUNC = FAUX ;
  5661. 'SINO' ;
  5662. LJUNC = VRAI ;
  5663. INPUT . 'JUNCTION' = JUNCT ;
  5664. 'FINSI' ;
  5665. LEXTE = FAUX ;
  5666. 'SI' (NBEXTE '>EG' 1) ;
  5667. LEXTE = VRAI ;
  5668. NIMP1 = 0 ;
  5669. NVAR1 = 0 ;
  5670. NFIL1 = 0 ;
  5671. 'SI' ('EXIS' TEXT1 'TIMP');
  5672. NIMP1 = 'DIME' (TEXT1 .'TIMP') ;
  5673. INIMP1= 'INDE' (TEXT1 .'TIMP') ;
  5674. TPSI0 = 'EXTR' (INPUT.'TIMECALC'.'LISTCALC') 1;
  5675. TPSF0 = 'EXTR' (INPUT.'TIMECALC'.'LISTCALC')
  5676. ('DIME' (INPUT.'TIMECALC'.'LISTCALC'));
  5677. TPSF0 = 1.D10 + TPSF0 * TPSF0 ;
  5678. 'REPETER' BL002 NIMP1 ;
  5679. INIMP2 = INIMP1 . &BL002 ;
  5680. TEXT1 .'TPS' . INIMP2 = (TEXT1 .'TPS' . INIMP2) 'ET'
  5681. ('PROG' TPSI0 TPSF0) ;
  5682. NTEMP0 = 'DIME' (TEXT1 .'TEMP' . INIMP2) ;
  5683. NTPS0 = 'DIME' (TEXT1 .'TPS' . INIMP2) ;
  5684. 'SI' (NTEMP0 'NEG' NTPS0 );
  5685. TXT1 = 'CHAI' TXT0 'Bad definition of the exterior(s)-1';
  5686. INPUT.'ERROR' = 1 ; 'MESS' TXT1 ; 'QUIT' TO_INPUT ;
  5687. 'FINSI' ;
  5688. 'FIN' BL002 ;
  5689. 'FINSI' ;
  5690. 'SI' ('EXIS' TEXT1 'TVAR');
  5691. NVAR1 = 'DIME' (TEXT1 . 'TVAR') ;
  5692. 'FINSI' ;
  5693. 'SI' ('EXIS' TEXT1 'TFILE');
  5694. NFIL1 = 'DIME' (TEXT1 . 'TFILE') ;
  5695. 'FINSI' ;
  5696. 'SI' (NBEXTE 'NEG' (NIMP1 + NVAR1 + NFIL1));
  5697. TXT1 = 'CHAI' TXT0 'Bad definition of the exterior(s)-2';
  5698. INPUT.'ERROR' = 1 ; 'MESS' TXT1 ; 'QUIT' TO_INPUT ;
  5699. 'FINSI' ;
  5700. INPUT . 'OUTD' = TEXT1 ;
  5701. INPUT . 'OUTD' . 'NBOUT' = NBEXTE ;
  5702. 'FINSI' ;
  5703. 'SI' (NBWALL 'NEG' 0) ;
  5704. INPUT . 'WALL' = THEWAL ;
  5705. INPUT . 'MATERIAL' = TMATER ;
  5706. 'FINSI' ;
  5707. 'SI' (IJULC 'NEG' 0) ;
  5708. INPUT . 'JULIQ' = JULCT ;
  5709. 'FINSI' ;
  5710. 'SI' (NBASP 'NEG' 0) ;
  5711. INPUT . 'SPRAY' = SPRAY ;
  5712. 'FINSI' ;
  5713. 'SI' (NBCOMB 'NEG' 0) ;
  5714. INPUT . 'BURN' = BURN ;
  5715. 'FINSI' ;
  5716. 'SI' (NBRECOMB 'NEG' 0) ;
  5717. INPUT . 'RECOMB' = RECOMB ;
  5718. 'FINSI' ;
  5719. 'SI' (NBRPRESI 'NEG' 0) ;
  5720. INPUT . 'PRESI' = PRESI ;
  5721. 'FINSI' ;
  5722. *
  5723. ***********************************************************************
  5724. * les données en temps pour le calcul
  5725. ***********************************************************************
  5726. *
  5727. 'SI' ('NON' ('EXIS' (INPUT . 'TIMECALC') 'LISTCALC')) ;
  5728. TXT1 = 'CHAI' TXT0 'TIMESTEP keyword missing' ;
  5729. INPUT . 'ERROR' = 1 ; 'MESS' TXT1 ; 'QUIT' TO_INPUT ;
  5730. 'SINON' ;
  5731. TPCAL1 = INPUT . 'TIMECALC' . 'LISTCALC' ;
  5732. INPUT . 'TIMECALC' . 'LISTCALC' = 'ORDO' 'CROISSANT' 'UNIQUE' TPCAL1 ;
  5733. INPUT . 'TIMECALC' . 'STEPNUMB' =
  5734. 'DIME' (INPUT . 'TIMECALC' . 'LISTCALC') ;
  5735. 'FINSI' ;
  5736. *
  5737. 'SI' ('NON' ('EXIS' (INPUT . 'TIMECALC') 'SAVEFILE')) ;
  5738. INPUT . 'TIMECALC' . 'SAVEFILE' = CHAINE FILENAME '.sauv' ;
  5739. MESS ' ' ;
  5740. MESS 'WARNING : default value for the file for saving the data' ;
  5741. MESS ' this name is ' INPUT . 'TIMECALC' . 'SAVEFILE' ;
  5742. MESS ' ' ;
  5743. 'FINSI' ;
  5744. *
  5745. MAXCL1 = 0 ;
  5746. NARG1 = DIME (INPUT . 'CELL') ;
  5747. 'SI' (NARG1 NEG 0) ;
  5748. IND1 = INDEX (INPUT . 'CELL') ;
  5749. 'REPE' BLO70 NARG1 ;
  5750. NAME70 = IND1 . &BLO70 ;
  5751. MAXCL2 = DIME (INPUT . 'CELL' . NAME70) ;
  5752. 'SI' (MAXCL2 > MAXCL1) ;
  5753. MAXCL1 = MAXCL2 ;
  5754. MOTCL1 = NAME70 ;
  5755. 'FINSI' ;
  5756. 'FIN' BLO70 ;
  5757. 'FINSI' ;
  5758. 'SI' (MAXCL1 'EGA' 0) ;
  5759. TXT1 = 'CHAI' TXT0 'no description of the cells' ;
  5760. INPUT . 'ERROR' = 1 ; 'MESS' TXT1 ; 'QUIT' TO_INPUT ;
  5761. 'FINSI' ;
  5762. *
  5763. * --- tous les compartiments ont-ils un support ? ---
  5764. * --- tous les compartiments ont-ils un volume ? ---
  5765. *
  5766. IND2 = INDEX (INPUT . 'CELL' . MOTCL1) ;
  5767. 'REPE' BLL10 MAXCL1 ;
  5768. ICELL = IND2 . &BLL10 ;
  5769. 'SI' ('NON' ('EXIS' (INPUT . 'CELL' . 'LOCATION') ICELL)) ;
  5770. TXT1 = 'CHAI' TXT0 'CELL ' ICELL
  5771. ' location is missing (XC or/and YC)' ;
  5772. INPUT . 'ERROR' = 1 ; 'MESS' TXT1 ; 'QUIT' TO_INPUT ;
  5773. 'FINSI';
  5774. 'SI' ('NON' ('EXIS' (INPUT . 'CELL' . 'VOL') ICELL)) ;
  5775. VOLU1 = 1000. ;
  5776. INPUT . 'CELL' . 'VOL' . ICELL = VOLU1 ;
  5777. MESS1 = 'CHAI' MESS0 'VOLUME in cell ' ICELL ; 'MESS' MESS1 ;
  5778. 'FINSI' ;
  5779. 'FIN' BLL10 ;
  5780. *
  5781. * --- les mot clefs décodés associés à une CELL le sont-ils ? ---
  5782. * --- (si non, ICELL valait 0 et 0 est alors un indice de sous table)
  5783. *
  5784. 'REPE' BLO80 NARG1 ;
  5785. NAME80 = IND1 . &BLO80 ;
  5786. 'SI' ('EXIS' (INPUT . 'CELL' . NAME80) 0) ;
  5787. TXT1 = 'CHAI' TXT0 'no CELL associated with a data in ' NAME80 ;
  5788. INPUT . 'ERROR' = 1 ; 'MESS' TXT1 ; 'QUIT' TO_INPUT ;
  5789. 'FINSI' ;
  5790. 'FIN' BLO80 ;
  5791. *
  5792. * --- ibid pour la table BOUNDARY ---
  5793. *
  5794. NARG2 = DIME (INPUT . 'BOUNDARY') ;
  5795. 'SI' (NARG2 NEG 0) ;
  5796. IND2 = INDEX (INPUT . 'BOUNDARY') ;
  5797. 'REPE' BLO90 NARG2 ;
  5798. NAME90 = IND2 . &BLO90 ;
  5799. 'SI' ('EXIS' (INPUT . 'BOUNDARY' . NAME90) 0) ;
  5800. TXT1 = 'CHAI' TXT0 'no cell for a boundary condition in ' NAME90;
  5801. INPUT . 'ERROR' = 1 ; 'MESS' TXT1 ; 'QUIT' TO_INPUT ;
  5802. 'FINSI' ;
  5803. 'FIN' BLO90 ;
  5804. 'FINSI' ;
  5805. *
  5806. ***********************************************************************
  5807. * les recombineurs
  5808. ***********************************************************************
  5809. 'SI' ('NEG' NBRECOMB 0) ;
  5810. *
  5811. * compatibilité entre le nombre de PAR annoncé et le nombre de PAR lu
  5812. irec = 'DIME' recomb . 'LOCATION' ;
  5813. 'SI' ('NEG' irec RECOMB . 'NBR') ;
  5814. TXT1 = 'CHAI' TXT0 IREC ' recombiners are defined whereas '
  5815. nbr ' are wanted' ;
  5816. INPUT . 'ERROR' = 1 ; 'MESS' TXT1 ; 'QUIT' TO_INPUT ;
  5817. 'FINSI' ;
  5818. *
  5819. 'REPE' BCL1 (RECOMB . 'NBR') ;
  5820. * existence des compartiments servant à définir le recombineur
  5821. 'SI' ('EXIST' INPUT . 'RECOMB' . 'LOCATION' &BCL1) ;
  5822. CELLR = INPUT . 'RECOMB' . 'LOCATION' . &BCL1 ;
  5823. 'SI' ('NON' ('EXIS' (INPUT . 'CELL' . 'LOCATION') CELLR)) ;
  5824. TXT1 = 'CHAI' TXT0 'recombiner ' &BCL1 ' CELLR unknown ' CELLR ;
  5825. INPUT . 'ERROR' = 1 ; 'MESS' TXT1 ; 'QUIT' TO_INPUT ;
  5826. 'FINSI' ;
  5827. 'SINON' ;
  5828. TXT1 = 'CHAI' TXT0 'recombiner ' &BCL1 ' CELLR undefined ' ;
  5829. INPUT . 'ERROR' = 1 ; 'MESS' TXT1 ; 'QUIT' TO_INPUT ;
  5830. 'FINSI' ;
  5831. 'SI' ('EXIS' INPUT . 'RECOMB' . 'TARGET' &BCL1) ;
  5832. CELLS = INPUT . 'RECOMB' . 'TARGET' . &BCL1 ;
  5833. 'SI' ('NON' ('EXIS' (INPUT . 'CELL' . 'LOCATION') CELLS)) ;
  5834. TXT1 = 'CHAI' TXT0 'recombiner ' &BCL1 ' CELLS unknown ' CELLS ;
  5835. INPUT . 'ERROR' = 1 ; 'MESS' TXT1 ; 'QUIT' TO_INPUT ;
  5836. 'FINSI' ;
  5837. 'SINON' ;
  5838. TXT1 = 'CHAI' TXT0 'recombiner ' &BCL1 ' CELLS undefined ' ;
  5839. INPUT . 'ERROR' = 1 ; 'MESS' TXT1 ; 'QUIT' TO_INPUT ;
  5840. 'FINSI' ;
  5841. * existence du type de PAR
  5842. 'SI' ('NON' ('EXISTE' (INPUT . 'RECOMB' . 'TYPE') &BCL1)) ;
  5843. TXT1 = 'CHAI' TXT0 'no type defined for the PAR number ' &BCL1 ;
  5844. INPUT . 'ERROR' = 1 ; 'MESS' TXT1 ; 'QUIT' TO_INPUT ;
  5845. 'FINSI' ;
  5846. * existence de la puissance thermique dans le cas d'un HEATER
  5847. TYPR = INPUT . 'RECOMB' . 'TYPE' . &BCL1 ;
  5848. 'SI' ('EGA' TYPR 'HEATER') ;
  5849. 'SI' ('NON' ('EXISTE' (INPUT . 'RECOMB' . 'PUISSANCE') &BCL1)) ;
  5850. TXT1 = 'CHAI' TXT0 ' thermal power have to be defined for HEATER'
  5851. '(PAR number ' &BCL1 ')' ;
  5852. INPUT . 'ERROR' = 1 ; 'MESS' TXT1 ; 'QUIT' TO_INPUT ;
  5853. 'FINSI' ;
  5854. 'FINSI' ;
  5855. *
  5856. 'FIN' BCL1 ;
  5857. 'FINSI' ;
  5858. ***********************************************************************
  5859. * les jonctions
  5860. ***********************************************************************
  5861. 'SI' LJUNC ;
  5862. *
  5863. * --- identification du nombre max de jonctions et du nom de l'indice
  5864. * --- de table associé à ce max
  5865. *
  5866. MAXJU1 = 0 ;
  5867. NARG3 = 'DIME' (INPUT . 'JUNCTION');
  5868. 'SI' (NARG3 'NEG' 0) ;
  5869. IND3 = 'INDE' (INPUT . 'JUNCTION') ;
  5870. 'REPE' BLO100 NARG3 ;
  5871. NAM100 = IND3 . &BLO100 ;
  5872. MAXJU2 = 'DIME' (INPUT . 'JUNCTION' . NAM100) ;
  5873. 'SI' (MAXJU2 '>' MAXJU1) ;
  5874. MAXJU1 = MAXJU2 ;
  5875. MOTJU1 = NAM100 ;
  5876. 'FINS' ;
  5877. 'FIN' BLO100 ;
  5878. 'FINS' ;
  5879. 'SI' (MAXJU1 'EGA' 0) ;
  5880. TXT1 = 'CHAI' TXT0 'junctions are not describe' ;
  5881. INPUT . 'ERROR' = 1 ; 'MESS' TXT1 ; 'QUIT' TO_INPUT ;
  5882. 'FINS' ;
  5883. *
  5884. * --- les mot clefs décodés associés à une JUNCTION le sont-ils ?
  5885. * --- (si non, IJUNC valait 0 et 0 est alors un indice de sous table)
  5886. *
  5887. IND1 = 'INDE' (INPUT . 'JUNCTION') ;
  5888. 'REPE' BLO110 NARG3 ;
  5889. NAM110 = IND1 . &BLO110 ;
  5890. 'SI' ('EXIS' (INPUT . 'JUNCTION' . NAM110) 0) ;
  5891. TXT1 = 'CHAI' TXT0 'no cell number for ' NAM110 ;
  5892. INPUT . 'ERROR' = 1 ; 'MESS' TXT1 ; 'QUIT' TO_INPUT ;
  5893. 'FINS' ;
  5894. 'FIN' BLO110 ;
  5895. *
  5896. * --- Index des noms de jonctions
  5897. *
  5898. IND1 = 'INDE' (INPUT . 'JUNCTION' . MOTJU1) ;
  5899. *
  5900. * --- A-t-on pour chaque JUNCTION LOCATION, AREA, DISC, LENGTH et Q ?
  5901. *
  5902. 'REPE' BL35 MAXJU1 ;
  5903. IJUNC = IND1 . &BL35 ;
  5904. 'SI' ('NON' ('EXIS' (INPUT . 'JUNCTION' . 'LOCATION') IJUNC)) ;
  5905. TXT1 = 'CHAI' TXT0 'JUNCTION ' IJUNC ' XJ or/and YJ index missing' ;
  5906. INPUT . 'ERROR' = 1 ; 'MESS' TXT1 ; 'QUIT' TO_INPUT ;
  5907. 'FINS';
  5908. 'SI' ('NON' ('EXIS' (INPUT . 'JUNCTION' . 'AREA') IJUNC)) ;
  5909. TXT1 = 'CHAI' TXT0 'junction ' IJUNC ' AREA index missing' ;
  5910. INPUT . 'ERROR' = 1 ; 'MESS' TXT1 ; 'QUIT' TO_INPUT ;
  5911. 'FINS' ;
  5912. 'SI' ('NON' ('EXIS' (INPUT . 'JUNCTION' . 'DISC') IJUNC)) ;
  5913. TXT1 = 'CHAI' TXT0 'junction ' IJUNC ' DISC index missing' ;
  5914. INPUT . 'ERROR' = 1 ; 'MESS' TXT1 ; 'QUIT' TO_INPUT ;
  5915. 'FINS' ;
  5916. 'SI' ('NON' ('EXIS' (INPUT . 'JUNCTION' . 'LENGTH') IJUNC)) ;
  5917. TXT1 = 'CHAI' TXT0 'junction ' IJUNC ' LENGTH index missing' ;
  5918. INPUT . 'ERROR' = 1 ; 'MESS' TXT1 ; 'QUIT' TO_INPUT ;
  5919. 'FINS' ;
  5920. 'SI' ('NON' ('EXIS' (INPUT . 'JUNCTION' . 'Q') IJUNC)) ;
  5921. TXT1 = 'CHAI' TXT0 'junction ' IJUNC ' Q index missing' ;
  5922. INPUT . 'ERROR' = 1 ; 'MESS' TXT1 ; 'QUIT' TO_INPUT ;
  5923. 'FINS' ;
  5924. 'FIN' BL35 ;
  5925. *
  5926. * --- Toutes les jonctions sont-elles connectées à des cells ?
  5927. *
  5928. INPUT . 'JUNCTION' . 'TYPEFROM' = 'TABLE' ;
  5929. INPUT . 'JUNCTION' . 'TYPETO' = 'TABLE' ;
  5930. 'REPE' BL40 MAXJU1 ;
  5931. IJUNC = IND1 . &BL40 ;
  5932. *
  5933. 'SI' ('NON' ('EXIS' (INPUT . 'JUNCTION' . 'FROM') IJUNC)) ;
  5934. TXT1 = 'CHAI' TXT0 'junction ' IJUNC ' FROM index missing' ;
  5935. INPUT . 'ERROR' = 1 ; 'MESS' TXT1 ; 'QUIT' TO_INPUT ;
  5936. 'SINO' ;
  5937. TESTCJ = VRAI ;
  5938. FROM1 = INPUT . 'JUNCTION' . 'FROM' . IJUNC ;
  5939. 'SI' ('EXIS' (INPUT . 'CELL' . 'LOCATION') FROM1) ;
  5940. ILOG1 = 0 ;
  5941. TESTCJ = FAUX ;
  5942. INPUT . 'JUNCTION' . 'TYPEFROM' . IJUNC = 'CELL' ;
  5943. 'SINO' ;
  5944. 'SI' ('EXIS' (INPUT . 'OUTD' . 'LOCATION') FROM1) ;
  5945. ILOG1 = 1 ;
  5946. TESTCJ = FAUX ;
  5947. INPUT . 'JUNCTION' . 'TYPEFROM' . IJUNC = 'OUTDOOR' ;
  5948. 'FINS' ;
  5949. 'FINS' ;
  5950. 'SI' TESTCJ ;
  5951. TXT1 = 'CHAI' TXT0
  5952. 'junction ' IJUNC ' bad starting cell ' FROM1 ;
  5953. INPUT . 'ERROR' = 1 ; 'MESS' TXT1 ; 'QUIT' TO_INPUT ;
  5954. 'FINS' ;
  5955. 'FINS' ;
  5956. *
  5957. 'SI' ('NON' ('EXIS' (INPUT . 'JUNCTION' . 'TO') IJUNC)) ;
  5958. TXT1 = 'CHAI' TXT0 'junction ' IJUNC ' TO index missing' ;
  5959. INPUT . 'ERROR' = 1 ; 'MESS' TXT1 ; 'QUIT' TO_INPUT ;
  5960. 'SINO' ;
  5961. TESTFJ = VRAI ;
  5962. TO1 = INPUT . 'JUNCTION' . 'TO' . IJUNC ;
  5963. 'SI' ('EXIS' (INPUT . 'CELL' . 'LOCATION') TO1) ;
  5964. ILOG2 = 0 ;
  5965. TESTFJ = FAUX ;
  5966. INPUT . 'JUNCTION' . 'TYPETO' . IJUNC = 'CELL' ;
  5967. 'SINO' ;
  5968. 'SI' ('EXIS' (INPUT . 'OUTD' . 'LOCATION') TO1) ;
  5969. ILOG2 = 1 ;
  5970. TESTFJ = FAUX ;
  5971. INPUT . 'JUNCTION' . 'TYPETO' . IJUNC = 'OUTDOOR' ;
  5972. 'FINS' ;
  5973. 'FINS' ;
  5974. 'SI' TESTFJ ;
  5975. TXT1 = 'CHAI' TXT0
  5976. 'junction ' IJUNC ' bad ending cell ' TO1 ;
  5977. INPUT . 'ERROR' = 1 ; 'MESS' TXT1 ; 'QUIT' TO_INPUT ;
  5978. 'FINS' ;
  5979. 'FINS' ;
  5980. *
  5981. * On exclue le cas de la jonction entre deux OUTDOORs
  5982. 'SI' ('NEG' (ILOG1*ILOG2) 0) ;
  5983. TXT1 = 'CHAI' TXT0
  5984. 'wall ' IJUNC ' is between two OUTDOORS' ;
  5985. INPUT . 'ERROR' = 1 ; 'MESS' TXT1 ; 'QUIT' TO_INPUT ;
  5986. 'FINS' ;
  5987. *
  5988. * On permutte FROM et TO si l'OUTDOOR est du coté FROM
  5989. 'SI' ('EGA' ILOG1 1) ;
  5990. INPUT . 'JUNCTION' . 'FROM' . IJUNC = TO1 ;
  5991. INPUT . 'JUNCTION' . 'TYPEFROM' . IJUNC = 'CELL' ;
  5992. INPUT . 'JUNCTION' . 'TO' . IJUNC = FROM1 ;
  5993. INPUT . 'JUNCTION' . 'TYPETO' . IJUNC = 'OUTDOOR' ;
  5994. TXT1 = 'CHAI' TXT0 'junction ' IJUNC
  5995. ': direction is changed (OUTDOOR at the TO side)' ;
  5996. 'MESS' TXT1 ;
  5997. 'FINS' ;
  5998. 'FIN' BL40 ;
  5999. *
  6000. 'FINS' ;
  6001. *
  6002. ***********************************************************************
  6003. * les jonctions liquides
  6004. ***********************************************************************
  6005. *
  6006. 'SI' (IJULC NEG 0) ;
  6007. *
  6008. * --- toutes les juliq sont-elles connectées à des cells ? ---
  6009. *
  6010. IND1 = INDEX (INPUT . 'JULIQ' . 'FROM') ;
  6011. REPETER BLO120 IJULC ;
  6012. IJUL1 = IND1 . &BLO120 ;
  6013. FROM1 = INPUT . 'JULIQ' . 'FROM' . IJUL1 ;
  6014. TO1 = INPUT . 'JULIQ' . 'TO' . IJUL1 ;
  6015. 'SI' ('NON' ('EXIS' (INPUT . 'CELL' . 'LOCATION') FROM1)) ;
  6016. TXT1 = 'CHAI' TXT0
  6017. 'liquid junction ' IJUL1 ' bad first cell ' FROM1 ;
  6018. INPUT . 'ERROR' = 1 ; 'MESS' TXT1 ; 'QUIT' TO_INPUT ;
  6019. 'FINSI' ;
  6020. 'SI' ('NON' ('EXIS' (INPUT . 'CELL' . 'LOCATION') TO1)) ;
  6021. TXT1 = 'CHAI' TXT0
  6022. 'liquid junction ' IJUL1 ' bad last cell ' TO1 ;
  6023. INPUT . 'ERROR' = 1 ; 'MESS' TXT1 ; 'QUIT' TO_INPUT ;
  6024. 'FINSI' ;
  6025. *
  6026. * --- création des points centres des jonctions liquides --- ---
  6027. XC1 YC1 = 'COOR' (INPUT . 'CELL' . 'LOCATION' . FROM1) ;
  6028. XC2 YC2 = 'COOR' (INPUT . 'CELL' . 'LOCATION' . TO1) ;
  6029. XJL1 = (XC1 + XC2) / 2. ;
  6030. YJL1 = (YC1 + YC2) / 2. ;
  6031. PTJL1 = XJL1 YJL1 ;
  6032. INPUT . 'JULIQ' . 'LOCATION' . IJUL1 = PTJL1 ;
  6033. FIN BLO120 ;
  6034. 'FINSI' ;
  6035. *
  6036. ***********************************************************************
  6037. * Les murs
  6038. ***********************************************************************
  6039. *
  6040. 'SI' (NBWALL 'NEG' 0) ;
  6041. IND1 = 'INDE' (INPUT . 'WALL' . 'LOCATION') ;
  6042. 'SI' LEXTE ;
  6043. INDXT = 'INDE' (INPUT . 'OUTD' . 'TEMP') ;
  6044. 'FINS' ;
  6045. *
  6046. * --- tous les murs sont-ils connectés à des cells ? ---
  6047. *
  6048. * On identifie les cotés OUTDOOR en mettant TYPEFROM/TYPETO à OUTDOOR
  6049. * (sans rien dire on corrige l'erreur de data FROMS/TOS suivi d'un OUTDOOR)
  6050. *
  6051. 'REPE' BL50 NBWALL ;
  6052. IND50 = IND1 . &BL50 ;
  6053. *
  6054. 'SI' ('NON' ('EXIS' (INPUT . 'WALL' . 'FROM') IND50)) ;
  6055. TXT1 = 'CHAI' TXT0 'wall ' IND50 ' FROM index missing' ;
  6056. INPUT . 'ERROR' = 1 ; 'MESS' TXT1 ; 'QUIT' TO_INPUT ;
  6057. 'SINO' ;
  6058. TESTCF = VRAI ;
  6059. ICELLF = INPUT . 'WALL' . 'FROM' . IND50 ;
  6060. 'SI' ('EXIS' (INPUT . 'CELL' . 'LOCATION') ICELLF) ;
  6061. ILOG1 = 0 ;
  6062. TESTCF = FAUX ;
  6063. 'SINO' ;
  6064. 'SI' ('EXIS' (INPUT . 'OUTD' . 'LOCATION') ICELLF) ;
  6065. ILOG1 = 1 ;
  6066. TESTCF = FAUX ;
  6067. INPUT . 'WALL' . 'TYPEFROM' . IND50 = 'OUTDOOR' ;
  6068. 'FINS' ;
  6069. 'FINS' ;
  6070. 'SI' TESTCF ;
  6071. TXT1 = 'CHAI' TXT0
  6072. 'wall ' IND50 ' bad starting cell ' ICELLF ;
  6073. INPUT . 'ERROR' = 1 ; 'MESS' TXT1 ; 'QUIT' TO_INPUT ;
  6074. 'FINS' ;
  6075. 'FINS' ;
  6076. *
  6077. 'SI' ('NON' ('EXIS' (INPUT . 'WALL' . 'TO') IND50)) ;
  6078. TXT1 = 'CHAI' TXT0 'wall ' IND50 ' TO index missing' ;
  6079. INPUT . 'ERROR' = 1 ; 'MESS' TXT1 ; 'QUIT' TO_INPUT ;
  6080. 'SINO' ;
  6081. TESTCT = VRAI ;
  6082. ICELLT = INPUT . 'WALL' . 'TO' . IND50 ;
  6083. 'SI' ('EXIS' (INPUT . 'CELL' . 'LOCATION') ICELLT) ;
  6084. ILOG2 = 0 ;
  6085. TESTCT = FAUX ;
  6086. 'SINON' ;
  6087. 'SI' ('EXIS' (INPUT . 'OUTD' . 'LOCATION') ICELLT) ;
  6088. ILOG2 = 1 ;
  6089. TESTCT = FAUX ;
  6090. INPUT . 'WALL' . 'TYPETO' . IND50 = 'OUTDOOR' ;
  6091. 'FINS' ;
  6092. 'FINS' ;
  6093. 'SI' TESTCT ;
  6094. TXT1 = 'CHAI' TXT0
  6095. 'wall ' IND50 ' bad ending cell ' ICELLT ;
  6096. INPUT . 'ERROR' = 1 ; 'MESS' TXT1 ; 'QUIT' TO_INPUT ;
  6097. 'FINS' ;
  6098. 'FINS' ;
  6099. *
  6100. * On exclue le cas ou le mur est entre deux OUTDOORs
  6101. 'SI' ('NEG' (ILOG1*ILOG2) 0) ;
  6102. TXT1 = 'CHAI' TXT0
  6103. 'wall ' IND50 ' is between two OUTDOORS' ;
  6104. INPUT . 'ERROR' = 1 ; 'MESS' TXT1 ; 'QUIT' TO_INPUT ;
  6105. 'FINS' ;
  6106. 'FIN' BL50 ;
  6107. *
  6108. * --- Remplissage de la table INPUT . 'WALL' . 'LOCATION' ---
  6109. * --- en fonction de l'existence de jonctions ayant les ---
  6110. * --- mêmes connectivités que les murs. ---
  6111. *
  6112. * --- balayage des murs ---
  6113. IND1 = INDEX (INPUT . 'WALL' . 'LOCATION') ;
  6114. REPETER BL60 NBWALL ;
  6115. IND60 = IND1 . &BL60 ;
  6116. ICELLF = INPUT . 'WALL' . 'FROM' . IND60 ;
  6117. TYPEF = INPUT . 'WALL' . 'TYPEFROM' . IND60 ;
  6118. ICELLT = INPUT . 'WALL' . 'TO' . IND60 ;
  6119. TYPET = INPUT . 'WALL' . 'TYPETO' . IND60 ;
  6120. LOGI1 = ('EGA' TYPEF 'OUTDOOR') 'OU' ('EGA' TYPET 'OUTDOOR') ;
  6121. * --- 'SI' le mur est en contact avec l'extérieur on créé un point ---
  6122. 'SI' LOGI1 ;
  6123. 'SI' ('NEG' TYPET 'OUTDOOR') ;
  6124. VOLU1 = INPUT . 'CELL' . 'VOL' . ICELLT ;
  6125. XC1 YC1 = COOR (INPUT . 'CELL' . 'LOCATION' . ICELLT) ;
  6126. XC1 = XC1 + VOLU1 ;
  6127. YC1 = YC1 + VOLU1 ;
  6128. PTC1 = XC1 YC1 ;
  6129. INPUT . 'WALL' . 'LOCATION' . IND60 = PTC1 ;
  6130. 'FINSI' ;
  6131. 'SI' ('NEG' TYPEF 'OUTDOOR') ;
  6132. VOLU1 = INPUT . 'CELL' . 'VOL' . ICELLF ;
  6133. XC1 YC1 = COOR (INPUT . 'CELL' . 'LOCATION' . ICELLF) ;
  6134. XC1 = XC1 + VOLU1 ;
  6135. YC1 = YC1 + VOLU1 ;
  6136. PTC1 = XC1 YC1 ;
  6137. INPUT . 'WALL' . 'LOCATION' . IND60 = PTC1 ;
  6138. 'FINSI' ;
  6139. * --- 'SI' le mur est entre deux compartiments ---
  6140. 'SINON' ;
  6141. XC1 YC1 = COOR (INPUT . 'CELL' . 'LOCATION' . ICELLF) ;
  6142. XC2 YC2 = COOR (INPUT . 'CELL' . 'LOCATION' . ICELLT) ;
  6143. XW1 = (XC1 + XC2) / 2. ;
  6144. YW1 = (YC1 + YC2) / 2. ;
  6145. PTW1 = XW1 YW1 ;
  6146. INPUT . 'WALL' . 'LOCATION' . IND60 = PTW1 ;
  6147. 'FINSI' ;
  6148. FIN BL60 ;
  6149. *
  6150. * --- les mot clefs décodés associés à un WALL le sont-ils ? ---
  6151. * --- (si non, IWALL valait 0 et 0 est alors un indice de sous table)
  6152. *
  6153. NARG4 = 'DIME' (INPUT . 'WALL') ;
  6154. IND1 = INDEX (INPUT . 'WALL') ;
  6155. REPETER BLO130 NARG4 ;
  6156. NAME130 = 'MOT' ('TEXTE' ('CHAINE' IND1 . &BLO130)) ;
  6157. 'SI' ('EXIS' (INPUT . 'WALL' . NAME130) 0) ;
  6158. TXT1 = 'CHAI' TXT0 'no WALL associated with a data in ' NAME130 ;
  6159. INPUT . 'ERROR' = 1 ; 'MESS' TXT1 ; 'QUIT' TO_INPUT ;
  6160. 'FINSI' ;
  6161. FIN BLO130 ;
  6162. *
  6163. * --- Test de la 'TABLE' des matériaux ---
  6164. *
  6165. NBMAT1 = DIME (INPUT . 'MATERIAL') ;
  6166. 'SI' ('EGA' NBMAT1 0) ;
  6167. TXT1 = 'CHAI' TXT0 'material definitions for walls are missing' ;
  6168. INPUT . 'ERROR' = 1 ; 'MESS' TXT1 ; 'QUIT' TO_INPUT ;
  6169. 'FINSI' ;
  6170. IND1 = INDEX (INPUT . 'MATERIAL') ;
  6171. REPETER BL71 NBMAT1 ;
  6172. IND71 = IND1 . &BL71 ;
  6173. 'SI' ('EGA' (INPUT . 'MATERIAL' . IND71 . 'TYPEW') 'NUL') ;
  6174. TXT1 = 'CHAI' TXT0 'material ' IND71 ' TYPEW missing' ;
  6175. INPUT . 'ERROR' = 1 ; 'MESS' TXT1 ; 'QUIT' TO_INPUT ;
  6176. 'FINSI' ;
  6177. 'SI' ('EGA' (INPUT . 'MATERIAL' . IND71 . 'CPW') 0.0) ;
  6178. TXT1 = 'CHAI' TXT0 'material ' IND71 ' CPW missing' ;
  6179. INPUT . 'ERROR' = 1 ; 'MESS' TXT1 ; 'QUIT' TO_INPUT ;
  6180. 'FINSI' ;
  6181. 'SI' ('EGA' (INPUT . 'MATERIAL' . IND71 . 'LBDW') 0.0) ;
  6182. TXT1 = 'CHAI' TXT0 'material ' IND71 ' LBDW missing' ;
  6183. INPUT . 'ERROR' = 1 ; 'MESS' TXT1 ; 'QUIT' TO_INPUT ;
  6184. 'FINSI' ;
  6185. 'SI' ('EGA' (INPUT . 'MATERIAL' . IND71 . 'RHOW') 0.0) ;
  6186. TXT1 = 'CHAI' TXT0 'material ' IND71 ' RHOW missing' ;
  6187. INPUT . 'ERROR' = 1 ; 'MESS' TXT1 ; 'QUIT' TO_INPUT ;
  6188. 'FINSI' ;
  6189. FIN BL71 ;
  6190. *
  6191. * --- Test des données associées aux couches d'un mur ---
  6192. *
  6193. IND1 = INDEX (INPUT . 'WALL' . 'LOCATION') ;
  6194. REPETER BL70 NBWALL ;
  6195. IND70 = IND1 . &BL70 ;
  6196. NBLAY1 = INPUT . 'WALL' . 'NLAYER' . IND70 ;
  6197. 'SI' (NBLAY1 'EGA' 0) ;
  6198. TXT1 = 'CHAI' TXT0 'WALL ' IND70 ' no layer' ;
  6199. INPUT . 'ERROR' = 1 ; 'MESS' TXT1 ; 'QUIT' TO_INPUT ;
  6200. 'FINSI' ;
  6201. NBLAY2 = DIME (INPUT . 'WALL' . 'MATERIAL' . IND70) ;
  6202. 'SI' (NBLAY2 NEG NBLAY1) ;
  6203. TXT1 = 'CHAI' TXT0 'WALL ' IND70
  6204. ' : material type for a layer is missing' ;
  6205. INPUT . 'ERROR' = 1 ; 'MESS' TXT1 ; 'QUIT' TO_INPUT ;
  6206. 'FINSI' ;
  6207. NBLAY2 = DIME (INPUT . 'WALL' . 'NODES' . IND70) ;
  6208. 'SI' (NBLAY2 NEG NBLAY1) ;
  6209. TXT1 = 'CHAI' TXT0 'WALL ' IND70
  6210. ' : number of nodes for a layer is missing' ;
  6211. INPUT . 'ERROR' = 1 ; 'MESS' TXT1 ; 'QUIT' TO_INPUT ;
  6212. 'FINSI' ;
  6213. NBLAY2 = DIME (INPUT . 'WALL' . 'THICK' . IND70) ;
  6214. 'SI' (NBLAY2 NEG NBLAY1) ;
  6215. TXT1 = 'CHAI' TXT0 'WALL ' IND70
  6216. ' : thickness of a layer is missing' ;
  6217. INPUT . 'ERROR' = 1 ; 'MESS' TXT1 ; 'QUIT' TO_INPUT ;
  6218. 'FINSI' ;
  6219. *
  6220. * --- Test de l'existence du MATERIAL associé à chaque couche ---
  6221. *
  6222. IND2 = INDEX (INPUT . 'WALL' . 'MATERIAL' . IND70) ;
  6223. REPETER BL72 NBLAY1 ;
  6224. IND72 = IND2 . &BL72 ;
  6225. 'SI' (NEG IND72 &BL72) ;
  6226. TXT1 = 'CHAI' TXT0 'WALL ' IND70 ' LAYERS done in a bad order' ;
  6227. INPUT . 'ERROR' = 1 ; 'MESS' TXT1 ; 'QUIT' TO_INPUT ;
  6228. 'FINSI' ;
  6229. NOMAT2 = INPUT . 'WALL' . 'MATERIAL' . IND70 . IND72 ;
  6230. 'SI' ('NON' ('EXIS' (INPUT . 'MATERIAL') NOMAT2)) ;
  6231. TXT1 = 'CHAI' TXT0 'WALL ' IND70 ' LAYER ' IND72
  6232. ' unknown material' ;
  6233. INPUT . 'ERROR' = 1 ; 'MESS' TXT1 ; 'QUIT' TO_INPUT ;
  6234. 'FINSI' ;
  6235. FIN BL72 ;
  6236. *
  6237. FIN BL70 ;
  6238. *
  6239. 'FINSI' ;
  6240. *
  6241. ***********************************************************************
  6242. * Verification des options
  6243. ***********************************************************************
  6244. ****************************************************************
  6245. *
  6246. 'SI' ('EXIS' INPUT 'T_COUPLING') ;
  6247. COUP1 = INPUT . 'T_COUPLING' ;
  6248. TEST1 = ('EGA' COUP1 'OFF')
  6249. 'OU' ('EGA' COUP1 'ON' ) ;
  6250. 'SI' ('EGA' TEST1 FAUX) ;
  6251. TXT1 = 'CHAI' TXT0 'bad value for the T_COUPLING index '
  6252. '(OFF or ON instead of ' COUP1 ')' ;
  6253. INPUT . 'ERROR' = 1 ; 'MESS' TXT1 ; 'QUIT' TO_INPUT ;
  6254. 'SINO' ;
  6255. 'MESS' ' ' ;
  6256. 'MESS' 'Temperature Wall Coupling = ' COUP1 ;
  6257. 'FINSI' ;
  6258. 'FINSI' ;
  6259. *
  6260. 'SI' ('EXIS' PHYSICAL 'CONDENSE') ;
  6261. COND1 = PHYSICAL . 'CONDENSE' ;
  6262. TEST1 = ('EGA' COND1 'UCHIDA')
  6263. 'OU' ('EGA' COND1 'TAGAMI')
  6264. 'OU' ('EGA' COND1 'CHILTON') ;
  6265. 'SI' ('EGA' TEST1 FAUX) ;
  6266. TXT1 = 'CHAI' TXT0 'bad value for the CONDENSE index '
  6267. '(UCHIDA, TAGAMI or CHILTON instead of ' COND1 ')' ;
  6268. INPUT . 'ERROR' = 1 ; 'MESS' TXT1 ; 'QUIT' TO_INPUT ;
  6269. 'SINO' ;
  6270. 'MESS' 'Steam Condensation = ' COND1 ;
  6271. 'FINSI' ;
  6272. 'FINSI' ;
  6273. *
  6274. 'SI' ('EXIS' INPUT 'INJECTION') ;
  6275. NAME2 = INPUT . 'INJECTION' ;
  6276. TEST1 = ('EGA' (INPUT . 'INJECTION') 'CELL')
  6277. 'OU' ('EGA' (INPUT . 'INJECTION') 'EBUL')
  6278. 'OU' ('EGA' (INPUT . 'INJECTION') 'SATU') ;
  6279. 'SI' ('EGA' TEST1 FAUX) ;
  6280. TXT1 = 'CHAI' TXT0 'bad value for the INJECTION index '
  6281. '(CELL or EBUL or SATU instead of ' (INPUT . 'INJECTION') ')' ;
  6282. INPUT . 'ERROR' = 1 ; 'MESS' TXT1 ; 'QUIT' TO_INPUT ;
  6283. 'FINSI' ;
  6284. 'FINSI' ;
  6285. *
  6286. 'SI' ('EXIS' INPUT 'EXCHANGER') ;
  6287. NAME2 = INPUT . 'EXCHANGER' ;
  6288. TEST1 = ('EGA' (INPUT . 'EXCHANGER') 'CC') ;
  6289. 'SI' ('EGA' TEST1 FAUX) ;
  6290. TXT1 = 'CHAI' TXT0 'bad value for the EXCHANGER index '
  6291. '(CC instead of ' NAME2 ')' ;
  6292. INPUT . 'ERROR' = 1 ; 'MESS' TXT1 ; 'QUIT' TO_INPUT ;
  6293. 'FINSI' ;
  6294. 'FINSI' ;
  6295. *
  6296. LST01 = 'MOTS' 'SH2' 'SCO' ;
  6297. LST02 = 'MOTS' 'H2' 'CO' ;
  6298. 'REPE' BLA11 2 ;
  6299. ESPECE1 = 'EXTR' LST02 &BLA11 ;
  6300. INJEC1 = 'EXTR' LST01 &BLA11 ;
  6301. 'SI' ('EXIS' INPUT 'BURN') ;
  6302. 'SI' (('EXIS' INPUT.'BURN' INJEC1) 'ET'
  6303. ('NON' ('EGA' INPUT . 'BURN' . 'TYPE' PROPAGATION))) ;
  6304. TEST1 = FAUX ;
  6305. 'REPE' BLA12 ('DIME' INPUT . 'COMPONENT') ;
  6306. ESPECE2 = INPUT . 'COMPONENT' . &BLA12 ;
  6307. 'SI' ('EGA' ESPECE2 ESPECE1) ;
  6308. TEST1 = VRAI ;
  6309. 'FINSI' ;
  6310. 'FIN' BLA12;
  6311. 'SI' ('EGA' TEST1 FAUX) ;
  6312. TXT1 = 'CHAI' TXT0 'Missing COMPONENT ' ESPECE1 ' missing' ;
  6313. INPUT . 'ERROR' = 1 ; 'MESS' TXT1 ; 'QUIT' TO_INPUT ;
  6314. 'FINSI' ;
  6315. 'FINSI' ;
  6316. 'FINSI' ;
  6317. 'FIN' BLA11 ;
  6318. *
  6319. *- Débit sonique
  6320. *
  6321. 'SI' ('EXIS' INPUT 'QSONIC') ;
  6322. QSONIC = INPUT . 'QSONIC' ;
  6323. TEST1 = ('EGA' QSONIC 'OFF')
  6324. 'OU' ('EGA' QSONIC 'ON') ;
  6325. 'SI' ('EGA' TEST1 FAUX) ;
  6326. TXT1 = 'CHAI' TXT0 'bad value for the QSONIC index ' ;
  6327. INPUT . 'ERROR' = 1 ; 'MESS' TXT1 ; 'QUIT' TO_INPUT ;
  6328. 'SINO' ;
  6329. 'MESS' ' ' ;
  6330. 'MESS' 'QSONIC limitation = ' QSONIC ;
  6331. 'FINSI' ;
  6332. 'FINSI' ;
  6333. *
  6334. ***********************************************************************
  6335. ***********************************************************************
  6336. * Valeurs par défaut
  6337. ***********************************************************************
  6338. ***********************************************************************
  6339. *
  6340. *
  6341. INPUT = TO_DEFAU INPUT ;
  6342. *
  6343. *
  6344. INPUT = TO_VERIF INPUT ;
  6345. *
  6346. ***********************************************************************
  6347. * Structures de données pour les sauvegardes et le post-traitement
  6348. ***********************************************************************
  6349. *
  6350. TIT = INPUT . 'TIMECALC' ;
  6351. *
  6352. *- Suppression des doublons et temps croissants
  6353. *
  6354.  
  6355. *
  6356. *- Gestion des temps de sauvegarde
  6357. *
  6358. 'SI' ('EXIS' tit 'LISTSAVE') ;
  6359. TIT . 'TIMESAVE' TIT . 'RANGSAVE'
  6360. = TO_UTIL2 TIT . 'LISTCALC' TIT . 'LISTSAVE' ;
  6361. 'SINO' ;
  6362. TIT . 'TIMESAVE' TIT . 'RANGSAVE'
  6363. = TO_UTILE (TIT . 'LISTCALC') 1 (TIT . 'FREQSAVE') ;
  6364. 'FINSI' ;
  6365. TIT . 'STEPSAVE' = 'DIME' (TIT . 'TIMESAVE') ;
  6366. *
  6367. ILAST = 'EXTR' TIT . 'RANGSAVE' TIT . 'STEPSAVE' ;
  6368. 'SI' ('NEG' ILAST TIT . 'STEPNUMB') ;
  6369. TLAST = 'EXTR' TIT . 'LISTCALC' TIT . 'STEPNUMB' ;
  6370. TIT . 'TIMESAVE' = TIT . 'TIMESAVE' 'ET' ('PROG' TLAST) ;
  6371. TIT . 'RANGSAVE' = TIT . 'RANGSAVE' 'ET' ('LECT' TIT . 'STEPNUMB');
  6372. 'FINSI' ;
  6373. *
  6374. IPREM = 'EXTR' TIT . 'RANGSAVE' 1 ;
  6375. 'SI' ('NEG' IPREM 1) ;
  6376. TPREM = 'EXTR' TIT . 'LISTCALC' 1 ;
  6377. TIT . 'TIMESAVE' = ('PROG' TPREM) 'ET' TIT . 'TIMESAVE' ;
  6378. TIT . 'RANGSAVE' = ('LECT' 1) 'ET' TIT . 'RANGSAVE' ;
  6379. 'FINSI' ;
  6380. *
  6381. *- Gestion du post-traitement (sous-ensemble des temps de sauvegarde)
  6382. *
  6383. TIT . 'TIMEPLOT' TIT . 'RANGPLOT'
  6384. = TO_UTILE (TIT . 'TIMESAVE') 1 (TIT . 'FREQPLOT') ;
  6385. *
  6386. 'FINP' INPUT ;
  6387.  
  6388. *$$$$ TO_PRINT
  6389. 'DEBP' TO_PRINT ;
  6390. 'ARGU' SET*'TABLE' INPUT*'TABLE' PWHICH*'MOT' PTIME*'ENTIER' ;
  6391. *
  6392. ERROR = 0 ;
  6393. *
  6394. ***********************************************************************
  6395. * 06/00 : prise en compte du cas mono-compartiment (i.e. sans jonction)
  6396. ***********************************************************************
  6397. *
  6398. 'SI' ('EXISTE' SET 'SOUSTYPE') ;
  6399. 'SI' ('NEG' (SET . 'SOUSTYPE') 'SET') ;
  6400. 'MESS' 'TO_PRINT procedure, SET table : bad subtype';
  6401. ERROR = 1 ;
  6402. QUITTER TO_PRINT ;
  6403. 'FINSI' ;
  6404. 'SINON' ;
  6405. 'MESS' 'TO_PRINT procedure, SET table : subtype is missing';
  6406. ERROR = 1 ;
  6407. QUITTER TO_PRINT ;
  6408. 'FINSI' ;
  6409. *
  6410. 'SI' ('EXISTE' INPUT 'SOUSTYPE') ;
  6411. 'SI' (NEG (INPUT . 'SOUSTYPE') 'INPUT') ;
  6412. 'MESS' 'TO_PRINT procedure, INPUT table : bad subtype';
  6413. ERROR = 1 ;
  6414. QUITTER TO_PRINT ;
  6415. 'FINSI' ;
  6416. 'SINON' ;
  6417. 'MESS' 'TO_PRINT procedure, INPUT table : subtype is missing';
  6418. ERROR = 1 ;
  6419. QUITTER TO_PRINT ;
  6420. 'FINSI' ;
  6421. *
  6422. 'SI' ('EXIS' (SET . 'FIELDS' . 'TIME') PTIME) ;
  6423. TIME1 = SET . 'FIELDS' . 'TIME' . PTIME ;
  6424. 'SINO' ;
  6425. 'MESS' 'TO_PRINT procedure, bad PTIME argument';
  6426. ERROR = 1 ;
  6427. QUITTER TO_PRINT ;
  6428. 'FINSI' ;
  6429. *
  6430. IDC1 = 'INDE' (INPUT . 'CELL' . 'LOCATION') ;
  6431. *
  6432. LJUNC = 'EXISTE' INPUT 'JUNCTION' ;
  6433. 'SI' LJUNC ;
  6434. IDJ1 = 'INDE' (INPUT . 'JUNCTION' . 'LOCATION') ;
  6435. NBJUN1 = 'DIME' (INPUT . 'JUNCTION' . 'LOCATION') ;
  6436. 'FINSI' ;
  6437. *
  6438. ***********************************************************************
  6439. *
  6440. 'MESS' ' ' ;
  6441. 'MESS' ' ' ;
  6442. 'MESS' 'Name of the case : ' (SET . 'NAMECASE');
  6443. 'MESS' '-----------------' ;
  6444. 'MESS' ' ' ;
  6445. *
  6446. *
  6447. ***********************************************************************
  6448. ***********************************************************************
  6449. *
  6450. * Printing of the geometry data
  6451. *
  6452. ***********************************************************************
  6453. ***********************************************************************
  6454. *
  6455. *
  6456. 'SI' (('EGA' PWHICH 'ALL') OU ('EGA' PWHICH 'GEOMETRY')) ;
  6457. *
  6458. * --- informations about cell s geometry ---
  6459. *
  6460. 'MESS' ' ' ;
  6461. 'MESS' 'Description of the cells :' ;
  6462. 'MESS' ' ' ;
  6463. 'MESS'
  6464. '--------------------------------------------------------------------';
  6465. 'MESS'
  6466. '| cell | abscissa | ordinate | volume |';
  6467. 'MESS'
  6468. '--------------------------------------------------------------------';
  6469. *
  6470. NBCEL1 = SET . 'GEOINF' . 'NBCELL' ;
  6471. I10 = 0 ;
  6472. 'REPETER' BLO10 NBCEL1 ;
  6473. I10 = I10 + 1 ;
  6474. ICEL1 = IDC1 . I10 ;
  6475. PTCEL1 = INPUT . 'CELL' . 'LOCATION' . ICEL1 ;
  6476. XC1 YC1 = COOR PTCEL1 ;
  6477. VOLU1 = EXTR (SET . 'DATA' . 'VOL') 'SCAL' PTCEL1 ;
  6478. 'MESS' '| ' ICEL1 ' | ' XC1 '| ' YC1 '| ' VOLU1 '|';
  6479. FIN BLO10 ;
  6480. 'MESS'
  6481. '--------------------------------------------------------------------';
  6482. *
  6483. * --- informations about junction s geometry ---
  6484. *
  6485. 'SI' LJUNC ;
  6486. 'MESS' ' ' ;
  6487. 'MESS' ' ' ;
  6488. 'MESS' 'Description of the junctions :' ;
  6489. 'MESS' ' ' ;
  6490. 'MESS'
  6491. '--------------------------------------------------------------------';
  6492. 'MESS'
  6493. '| junction | abscissa | ordinate | from | to |';
  6494. 'MESS'
  6495. '--------------------------------------------------------------------';
  6496. *
  6497. *
  6498. I20 = 0 ;
  6499. 'REPETER' BLO20 NBJUN1 ;
  6500. I20 = I20 + 1 ;
  6501. IJUN1 = IDJ1 . I20 ;
  6502. PTJUN1 = INPUT . 'JUNCTION' . 'LOCATION' . IJUN1 ;
  6503. XJ1 YJ1 = COOR PTJUN1 ;
  6504. FROM1 = INPUT . 'JUNCTION'. 'FROM' . IJUN1 ;
  6505. TO1 = INPUT . 'JUNCTION'. 'TO' . IJUN1 ;
  6506. 'MESS'
  6507. '| ' IJUN1 ' | ' XJ1 '| ' YJ1 '| ' FROM1 '| ' TO1 '|';
  6508. FIN BLO20 ;
  6509. 'MESS'
  6510. '--------------------------------------------------------------------';
  6511. *
  6512. 'MESS' ' ' ;
  6513. 'MESS'
  6514. '--------------------------------------------------------------------';
  6515. 'MESS'
  6516. '| junction | area | discharge | length |';
  6517. 'MESS'
  6518. '--------------------------------------------------------------------';
  6519. *
  6520. 'SI' ('EXIS' (set . 'DATA' . 'AREA') 0) ;
  6521. S1 = set . 'DATA' . 'AREA' . 0 ;
  6522. 'SINO' ;
  6523. S1 = 0. * SET . 'DATA' . 'LENGTH' ;
  6524. 'FINSI' ;
  6525. 'SI' ('EXIS' (set . 'DATA' . 'AREA') 'NBEV') ;
  6526. da = set . 'DATA' . 'AREA' ;
  6527. 'REPE' blo25 (da . 'NBEV') ;
  6528. PTJ = da . &blo25 . 'LOCATION' ;
  6529. S0 = 'IPOL' TIME1 (da . &blo25 . 'EVOL') ;
  6530. S1 = S1 'ET'
  6531. ('MANU' 'CHPO' PTJ 1 'SCAL' S0 'NATURE' 'DISCRET') ;
  6532. 'FIN' blo25 ;
  6533. 'FINSI' ;
  6534. *
  6535. I30 = 0 ;
  6536. 'REPETER' BLO30 NBJUN1 ;
  6537. I30 = I30 + 1 ;
  6538. IJUN1 = IDJ1 . I30 ;
  6539. PTJUN1 = INPUT . 'JUNCTION' . 'LOCATION' . IJUN1 ;
  6540. AREA1 = EXTR S1 'SCAL' PTJUN1 ;
  6541. DISC1 = EXTR (SET . 'DATA' . 'DISC') 'SCAL' PTJUN1 ;
  6542. LENGTH1 = EXTR (SET . 'DATA' . 'LENGTH') 'SCAL' PTJUN1 ;
  6543. 'MESS'
  6544. '| ' IJUN1 ' | ' AREA1 '| ' DISC1 '|' LENGTH1 '|';
  6545. FIN BLO30 ;
  6546. 'MESS'
  6547. '--------------------------------------------------------------------';
  6548. *
  6549. 'FINSI' ;
  6550. *
  6551. 'FINSI' ;
  6552. *
  6553. *
  6554. ***********************************************************************
  6555. ***********************************************************************
  6556. *
  6557. * Printing of the physical properties
  6558. *
  6559. ***********************************************************************
  6560. ***********************************************************************
  6561. *
  6562. *
  6563. 'SI' ((EGA PWHICH 'ALL') OU (EGA PWHICH 'PHYSICAL')) ;
  6564. *
  6565. *
  6566. 'MESS' ' ' ;
  6567. 'MESS' ' ' ;
  6568. 'MESS' 'Physical properties :' ;
  6569. 'MESS' ' ' ;
  6570. 'MESS'
  6571. '--------------------------------------------------------------------';
  6572. 'MESS'
  6573. '| component | molar weight | specific heat at constant V |';
  6574. 'MESS'
  6575. '--------------------------------------------------------------------';
  6576. *
  6577. NBCOM1 = DIME (SET . 'COMPONENT') ;
  6578. I40 = 0 ;
  6579. 'REPETER' BLO40 NBCOM1 ;
  6580. I40 = I40 + 1 ;
  6581. NAMC1 = SET . 'COMPONENT' . I40 ;
  6582. NAMW1 = CHAINE 'W' NAMC1 ;
  6583. MW1 = SET . 'PHYSICAL' . NAMW1 ;
  6584. 'SI' (EGA NAMC1 'VAP') ;
  6585. 'MESS'
  6586. '| ' NAMC1 ' | ' MW1 ' | TABLES |';
  6587. 'SINON' ;
  6588. NAMCV1 = CHAINE 'CV' NAMC1 ;
  6589. 'SI' ('EGA' NAMC1 'H2O') ;
  6590. CV1 = 0. ;
  6591. 'SINO' ;
  6592. CV1 = SET . 'PHYSICAL' . NAMCV1 ;
  6593. 'FINSI' ;
  6594. 'MESS'
  6595. '| ' NAMC1 ' | ' MW1 ' | ' CV1 ' |';
  6596. 'FINSI' ;
  6597. FIN BLO40 ;
  6598. 'MESS'
  6599. '--------------------------------------------------------------------';
  6600. *
  6601. GRAV1 = SET . 'PHYSICAL' . GRAVITY ;
  6602. *
  6603. 'MESS' ' ' ;
  6604. 'MESS'
  6605. '--------------------------------------------------------------------';
  6606. 'MESS' '| acceleration due to gravity | ' GRAV1 ' |';
  6607. 'MESS'
  6608. '--------------------------------------------------------------------';
  6609. *
  6610. 'FINSI' ;
  6611. *
  6612. *
  6613. ***********************************************************************
  6614. ***********************************************************************
  6615. *
  6616. * Printing of the data for time calculation
  6617. *
  6618. ***********************************************************************
  6619. ***********************************************************************
  6620. *
  6621. *
  6622. 'SI' (('EGA' PWHICH 'ALL') 'OU' ('EGA' PWHICH 'CALCUL')) ;
  6623. *
  6624. 'MESS' ' ' ;
  6625. 'MESS' ' ' ;
  6626. 'MESS' 'Data for time calculation :' ;
  6627. 'MESS' ' ' ;
  6628. 'MESS'
  6629. '---------------------------------------------------';
  6630. *
  6631. *TSTEP1 = SET . 'TIMECALC' . 'TIMESTEP' ;
  6632. NSTEP1 = SET . 'TIMECALC' . 'STEPNUMB' ;
  6633. ERRTO1 = SET . 'TIMECALC' . 'ERRTOL' ;
  6634. *
  6635. *'MESS' '| time step | ' TSTEP1 ' |';
  6636. 'MESS' '| number of time steps | ' NSTEP1 ' |';
  6637. 'MESS' '| relative error tolerance | ' ERRTO1 ' |';
  6638. 'MESS'
  6639. '---------------------------------------------------';
  6640. *
  6641. 'FINSI' ;
  6642. *
  6643. *
  6644. ***********************************************************************
  6645. ***********************************************************************
  6646. *
  6647. * Printing of the fields
  6648. *
  6649. ***********************************************************************
  6650. ***********************************************************************
  6651. *
  6652. *
  6653. 'SI' ((EGA PWHICH 'ALL') OU (EGA PWHICH 'FIELD')) ;
  6654. *
  6655. 'MESS' ' ' ;
  6656. 'MESS' ' ' ;
  6657. 'MESS' 'The fields : ';
  6658. 'MESS' ' ' ;
  6659. *
  6660. 'MESS' ' Time of the calculation : ' TIME1 ;
  6661. 'MESS' ' ' ;
  6662. 'MESS'
  6663. '--------------------------------------------------------------------';
  6664. 'MESS'
  6665. '| cell | total pressure | gas temperature | density of gas |';
  6666. 'MESS'
  6667. '--------------------------------------------------------------------';
  6668. *
  6669. NBCEL1 = SET . 'GEOINF' . 'NBCELL' ;
  6670. I50 = 0 ;
  6671. 'REPETER' BLO50 NBCEL1 ;
  6672. I50 = I50 + 1 ;
  6673. ICEL1 = IDC1 . I50 ;
  6674. PTCEL1 = INPUT . 'CELL' . 'LOCATION' . ICEL1 ;
  6675. PG1 = EXTR (SET . 'FIELDS' . 'PT' . PTIME)
  6676. 'PT' PTCEL1 ;
  6677. TGAS1 = EXTR (SET . 'FIELDS' . 'TGAS' . PTIME)
  6678. 'TGAS' PTCEL1 ;
  6679. RGAS1 = EXTR (SET . 'FIELDS' . 'RGAS' . PTIME)
  6680. 'RGAS' PTCEL1 ;
  6681. 'MESS' '|' ICEL1 '| ' PG1 '| ' TGAS1 ' | ' RGAS1 '|';
  6682. FIN BLO50 ;
  6683. 'MESS'
  6684. '--------------------------------------------------------------------';
  6685. *
  6686. *
  6687. 'MESS' ' ' ;
  6688. 'MESS' ' Time of the calculation : ' TIME1 ;
  6689. 'MESS' ' ' ;
  6690. 'MESS'
  6691. '--------------------------------------------------------------------';
  6692. 'MESS'
  6693. '| cell | internal energy | specific enthalpy |';
  6694. 'MESS'
  6695. '--------------------------------------------------------------------';
  6696. *
  6697. I60 = 0 ;
  6698. 'REPETER' BLO60 NBCEL1 ;
  6699. I60 = I60 + 1 ;
  6700. ICEL1 = IDC1 . I60 ;
  6701. PTCEL1 = INPUT . 'CELL' . 'LOCATION' . ICEL1 ;
  6702. UGAS1 = EXTR (SET . 'FIELDS' . 'UGAS' . PTIME)
  6703. 'UGAS' PTCEL1 ;
  6704. HGAS1 = EXTR (SET . 'FIELDS' . 'HGAS' . PTIME)
  6705. 'HGAS' PTCEL1 ;
  6706. 'MESS' '|' ICEL1 '| ' UGAS1 ' | ' HGAS1 ' |';
  6707. FIN BLO60 ;
  6708. 'MESS'
  6709. '--------------------------------------------------------------------';
  6710. *
  6711. * --- the densities and partial pressures of the components ---
  6712. *
  6713. 'MESS' ' ' ;
  6714. 'MESS' ' Time of the calculation : ' TIME1 ;
  6715. 'MESS' ' ' ;
  6716. *
  6717. NBCOM1 = DIME (SET . 'COMPONENT') ;
  6718. I70 = 0 ;
  6719. 'REPETER' BLO70 NBCOM1 ;
  6720. I70 = I70 + 1 ;
  6721. NAMC1 = SET . 'COMPONENT' . I70 ;
  6722. 'MESS'
  6723. '-----------------------------------';
  6724. 'MESS'
  6725. '| cell | density of ' NAMC1 ' |';
  6726. 'MESS'
  6727. '-----------------------------------';
  6728. *
  6729. NAMR1 = CHAINE 'R' NAMC1 ;
  6730. I71 = 0 ;
  6731. 'REPETER' BLO71 NBCEL1 ;
  6732. I71 = I71 + 1 ;
  6733. ICEL1 = IDC1 . I71 ;
  6734. PTCEL1 = INPUT . 'CELL' . 'LOCATION' . ICEL1 ;
  6735. RGAS1 = EXTR (SET . 'FIELDS' . NAMR1 . PTIME)
  6736. NAMR1 PTCEL1 ;
  6737. 'MESS' '|' ICEL1 '| ' RGAS1 '|' ;
  6738. FIN BLO71 ;
  6739. 'MESS'
  6740. '------------------------------------';
  6741. *
  6742. FIN BLO70 ;
  6743. *
  6744. * --- the mass flow rates ---
  6745. *
  6746. *
  6747. 'SI' LJUNC ;
  6748. 'MESS' ' ' ;
  6749. 'MESS' ' Time of the calculation : ' TIME1 ;
  6750. 'MESS' ' ' ;
  6751. 'MESS'
  6752. '-----------------------------------------------';
  6753. 'MESS'
  6754. '| junction | mass flow rate of the mixture |' ;
  6755. 'MESS'
  6756. '-----------------------------------------------';
  6757. *
  6758. *
  6759. I80 = 0 ;
  6760. 'REPETER' BLO80 NBJUN1 ;
  6761. I80 = I80 + 1 ;
  6762. IJUN1 = IDJ1 . I80 ;
  6763. PTJUN1 = INPUT . 'JUNCTION' . 'LOCATION' . IJUN1 ;
  6764. Q1 = 'EXTR' (SET . 'FIELDS' . 'Q' . PTIME)
  6765. 'Q' PTJUN1 ;
  6766. 'MESS'
  6767. '| ' IJUN1 ' | ' Q1 ' |' ;
  6768. FIN BLO80 ;
  6769. 'MESS'
  6770. '-----------------------------------------------';
  6771. 'FINSI' ;
  6772. *
  6773. 'FINSI' ;
  6774. *
  6775. *
  6776. ***********************************************************************
  6777. ***********************************************************************
  6778. *
  6779. * Printing of the boundary conditions
  6780. *
  6781. ***********************************************************************
  6782. ***********************************************************************
  6783. *
  6784. *
  6785. 'SI' ((EGA PWHICH 'ALL') OU (EGA PWHICH 'BOUNDARY')) ;
  6786. 'SI' ('EXISTE' SET 'BOUNDARY') ;
  6787. *
  6788. NBCEL1 = SET . 'GEOINF' . 'NBCELL' ;
  6789. *
  6790. * --- informations about the boundary conditions for pressure ---
  6791. *
  6792. 'SI' ('EXISTE' (SET . 'BOUNDARY') 'PT') ;
  6793. 'MESS' ' ' ;
  6794. 'MESS' ' ' ;
  6795. 'MESS' 'Boundary conditions for the total pressure :' ;
  6796. 'MESS' ' ' ;
  6797. 'MESS'
  6798. '-------------------------------------------';
  6799. 'MESS'
  6800. '| cell | total pressure imposed |' ;
  6801. 'MESS'
  6802. '-------------------------------------------';
  6803. MAIL1 = EXTR (SET . 'BOUNDARY' . 'PT') 'MAIL' ;
  6804. NBPT1 = NBEL MAIL1 ;
  6805. I90 = 0 ;
  6806. 'REPETER' BLO90 NBPT1 ;
  6807. I90 = I90 + 1 ;
  6808. PT1 = MAIL1 POIN I90 ;
  6809. BPT1 = EXTR (SET . 'BOUNDARY' . 'PT') 'PT' PT1 ;
  6810. I91 = 0 ;
  6811. 'REPETER' BLO91 NBCEL1 ;
  6812. I91 = I91 + 1 ;
  6813. ICEL1 = IDC1 . I91 ;
  6814. PTCEL1 = INPUT . 'CELL' . 'LOCATION' . ICEL1 ;
  6815. 'SI' (EGA PT1 PTCEL1) ;
  6816. 'MESS' '|' ICEL1 '| ' BPT1 ' |' ;
  6817. QUITTER BLO91 ;
  6818. 'FINSI' ;
  6819. FIN BLO91 ;
  6820. FIN BLO90 ;
  6821. 'MESS'
  6822. '-------------------------------------------';
  6823. 'FINSI' ;
  6824. *
  6825. * --- informations about the injections of gases ---
  6826. *
  6827. NBCOM1 = DIME (SET . 'COMPONENT') ;
  6828. I100 = 0 ;
  6829. 'REPETER' BLO100 NBCOM1 ;
  6830. I100 = I100 + 1 ;
  6831. NAMC1 = SET . 'COMPONENT' . I100 ;
  6832. NAMQ1 = CHAINE 'Q' NAMC1 ;
  6833. 'SI' ('EXISTE' (SET . 'BOUNDARY') NAMQ1) ;
  6834. NDIM1 = DIME (SET . 'BOUNDARY' . NAMQ1) ;
  6835. I110 = 0 ;
  6836. IDQ1 = 'INDE' (SET . 'BOUNDARY' . NAMQ1) ;
  6837. 'REPETER' BLO110 NDIM1 ;
  6838. I110 = I110 + 1 ;
  6839. IND1 = IDQ1 . I110 ;
  6840. PT1 = SET . 'BOUNDARY' . NAMQ1 . IND1 . 'CELL' ;
  6841. ICEL2 = 0 ;
  6842. I111 = 0 ;
  6843. 'REPETER' BLO111 NBCEL1 ;
  6844. I111 = I111 + 1 ;
  6845. ICEL1 = IDC1 . I111 ;
  6846. PTCEL1 = INPUT . 'CELL' . 'LOCATION' . ICEL1 ;
  6847. 'SI' (EGA PT1 PTCEL1) ;
  6848. ICEL2 = ICEL1 ;
  6849. QUITTER BLO111 ;
  6850. 'FINSI' ;
  6851. FIN BLO111 ;
  6852. * MTYPE1 = SET . 'BOUNDARY' . NAMQ1 . IND1 . 'INTER' ;
  6853. * LTIM2 = (SET . 'BOUNDARY' . NAMQ1 . IND1 . 'TIME') ;
  6854. * NDIM2 = DIME LTIM2 ;
  6855. * LQ2 = (SET . 'BOUNDARY' . NAMQ1 . IND1 . 'Q') ;
  6856. * LH2 = (SET . 'BOUNDARY' . NAMQ1 . IND1 . 'H') ;
  6857. *'MESS' ' ' ;
  6858. *'MESS' 'Injection of ' NAMC1 ' in cell ' ICEL2 ' :' ;
  6859. *'MESS' ' ' ;
  6860. *'MESS'
  6861. *'--------------------------------------------------------------------';
  6862. *'MESS'
  6863. *'| time | total injected mass | total injected energy |';
  6864. *'MESS'
  6865. *'--------------------------------------------------------------------';
  6866. * I112 = 0 ;
  6867. * 'REPETER' BLO112 NDIM2 ;
  6868. * I112 = I112 + 1 ;
  6869. * XTIM2 = EXTR LTIM2 I112 ;
  6870. * XQ2 = EXTR LQ2 I112 ;
  6871. * XH2 = EXTR LH2 I112 ;
  6872. *'MESS' '|' XTIM2 '| ' XQ2 ' | ' XH2 ' |';
  6873. * FIN BLO112 ;
  6874. *
  6875. FIN BLO110 ;
  6876. 'FINSI' ;
  6877. FIN BLO100 ;
  6878. *
  6879. 'FINSI' ;
  6880. 'FINSI' ;
  6881. *
  6882.  
  6883. *
  6884. FINPROC ERROR ;
  6885. *$$$$ TO_UPLIN
  6886. 'DEBP' TO_UPLIN SET*'TABLE' ;
  6887. *
  6888. *
  6889. SET . 'UPLIN' = 'TABLE' ;
  6890. TSC = SET . 'COMPONENT' ;
  6891. TSD = SET . 'DATA' ;
  6892. TSF = SET . 'FIELDS' ;
  6893. TSG = SET . 'GEOINF' ;
  6894. TSI = SET . 'INCO' ;
  6895. TSP = SET . 'PHYSICAL' ;
  6896. *
  6897. RELAX1 = SET . 'RELAX' ;
  6898. RELAX4 = SET . 'RELINT' ;
  6899. LJUNC = 'EXIS' TSG 'JUNCTION' ;
  6900. 'SI' LJUNC ;
  6901. NBJUNC = TSG . 'NBJUNC' ;
  6902. 'FINSI' ;
  6903. VOLU1 = TSD . 'VOL' ;
  6904. DT1 = TSI . 'DT' ;
  6905. RGAS2 = 'EXCO' 'RGAS' (TSI . 'RGAS') 'SCAL' 'NATURE' 'DISCRET' ;
  6906. TGAS2 = 'EXCO' 'TGAS' (TSI . 'TGAS') 'SCAL' 'NATURE' 'DISCRET' ;
  6907. PTOT2 = 'EXCO' 'PT' (TSI . 'PT' ) 'SCAL' 'NATURE' 'DISCRET' ;
  6908. UGAS2 = 'EXCO' 'UGAS' (TSI . 'UGAS') 'SCAL' 'NATURE' 'DISCRET' ;
  6909. *
  6910. *- Mise a jour de ROR, ROCV et HGAS
  6911. *
  6912. ROLS2 = 0. * PTOT2 ;
  6913. ROR2 = 0. * PTOT2 ;
  6914. ROCV2 = 0. * PTOT2 ;
  6915. NBCOMP1 = 'DIME' TSC ;
  6916. 'REPE' BLO10 NBCOMP1 ;
  6917. NAMC1 = TSC . &BLO10 ;
  6918. NAMR1 = 'CHAINE' 'R' NAMC1 ;
  6919. NAMR2 = 'CHAINE' 'R_' NAMC1 ;
  6920. NAMV1 = 'CHAINE' 'CV' NAMC1 ;
  6921. RO1 = 'EXCO' NAMR1 (TSI . NAMR1) 'SCAL' 'NATURE' 'DISCRET' ;
  6922. 'SI' ('EGA' NAMC1 'H2O') ;
  6923. XV1 = 'EXCO' 'XV' (TSI . 'XV') 'SCAL' 'NATURE' 'DISCRET' ;
  6924. ROLS2 = (1. - XV1) * RO1 ;
  6925. RO1 = XV1 * RO1 ;
  6926. ZVAP1 = 'VARI' 'ZVAP' RO1 TGAS2 ;
  6927. ROR1 = RO1 * (TSP . NAMR2) * ZVAP1 ;
  6928. PVAP1 = 'VARI' 'PVAP' RO1 TGAS2 ;
  6929. CV1 = ('VARI' 'HVS' PVAP1 TGAS2) - (PVAP1 / RO1) / TGAS2 ;
  6930. 'SINO' ;
  6931. ROR1 = RO1 * (TSP . NAMR2) ;
  6932. CV1 = TSP . NAMV1 ;
  6933. 'FINS' ;
  6934. ROR2 = ROR2 + ROR1 ;
  6935. ROCV2 = ROCV2 + (CV1 * RO1) ;
  6936. 'FIN' BLO10 ;
  6937. HGAS2 = UGAS2 / VOLU1 + PTOT2 / (RGAS2 - ROLS2) ;
  6938. TSI . 'HGAS' = 'EXCO' 'SCAL' HGAS2 'HGAS' 'NATURE' 'DISCRET' ;
  6939. *
  6940. *- Equation de conservation de la masse pour le constituant NAMR1
  6941. *
  6942. TSI . 'XUNRGAS1' = RGAS2 ** -1.0 ;
  6943. *
  6944. *- Equation sur HGAS
  6945. *
  6946. RHS1 = 'EXCO' 'SCAL' HGAS2 'HGAS' 'NATURE' 'DISCRET';
  6947. TSUR = RHS1 ;
  6948. *
  6949. *- Equation de quantité de mouvement :
  6950. * 1) calcul des coéfficients devant les monomes de l'équation de QDM
  6951. * 2) terme explicite issu de la linéarisation de (|Q|*Q)k+1
  6952. * (|Q|*Q linéarisé par 2*|Qk|*Qk+1 - |Qk|*Qk)
  6953. *
  6954. 'SI' LJUNC ;
  6955. TO_DISK SET ;
  6956. TSUR = (TSI . 'QMDIA2') * (TSI . 'QCEL') + TSUR ;
  6957. 'FINSI' ;
  6958. *
  6959. *- Equation d'état calorifique du mélange gazeux TGAS
  6960. *
  6961. TSI . 'XVROCV1' = 1.D0 * VOLU1 * ROCV2 ;
  6962. *
  6963. *- Equation d'état thermique pour le mélange gazeux
  6964. *
  6965. TSI . 'XROR1' = -1.0D0 * ROR2 ;
  6966. *
  6967. *- Equation de conservation de l'énergie interne du mélange gazeux
  6968. * 1) coefficient multiplicateur du débit
  6969. * 2) linéarisation de Qh
  6970. *
  6971. TSI . 'XHGAS1' = HGAS2 ;
  6972. 'SI' LJUNC ;
  6973. UGASQ1 = 'EXCO' 'SCAL' (0. * PTOT2) 'UGAS' 'NATURE' 'DISCRET' ;
  6974. 'REPETER' BLO92 NBJUNC ;
  6975. LESEG3 = 'ELEM' (TSG . 'JUNCEL') 'SEG3' &BLO92 ;
  6976. LSEG3 = 'CHAN' LESEG3 'POI1' ;
  6977. PT1 = LSEG3 'POIN' 1 ;
  6978. PTF1 = LSEG3 'POIN' 2 ;
  6979. PT2 = LSEG3 'POIN' 3 ;
  6980. VALF1 = 'EXTR' (TSI . 'QCEL') 'QCEL' PTF1 ;
  6981. FACTOR1 = ('EXTR' HGAS2 'SCAL' PT1) +
  6982. ('EXTR' HGAS2 'SCAL' PT2) / 2. * VALF1 * -1. ;
  6983. UGASQ1 = UGASQ1
  6984. + ('MANU' 'CHPO' PT1 1 'UGAS' (-1.D0 * FACTOR1) 'NATURE' 'DISCRET')
  6985. + ('MANU' 'CHPO' PT2 1 'UGAS' FACTOR1 'NATURE' 'DISCRET') ;
  6986. 'FIN' BLO92 ;
  6987. TSUR = TSUR + UGASQ1 ;
  6988. 'FINSI' ;
  6989. *
  6990. *---------------------------------------------------------------
  6991. * Gestion liée à l'eau (liquide, vapeur et changement de phase)
  6992. *---------------------------------------------------------------
  6993. *
  6994. * RH2O1 : masse volumique de l'eau (liquide + vapeur)
  6995. *
  6996. 'SI' ('EXIS' TSF 'RH2O') ;
  6997. RH2O1 = 'EXCO' 'RH2O' (TSI . 'RH2O') 'SCAL' 'NATURE' 'DISCRET' ;
  6998. *
  6999. 'SI' (('EXIS' TSP 'CONDENSE') 'ET' ('EXIS' TSG 'LAYERC')) ;
  7000. INI1 = 0 ;
  7001. 'SI' ('EXIS' TSG 'LAYERC1') ;
  7002. * LAYERC1 ---> CHILTON
  7003. TSAT10 XV30 ALAT00 ALAT30 ECHAN10 = 'VARI' 'TOCOND '
  7004. SET (TSG.'LAYERC1') 'CHILTON ' ;
  7005. 'SI' ('EGA' INI1 0);
  7006. ECHAN1 = ECHAN10 ;
  7007. ALAT3 = ALAT30 ;
  7008. ALAT0 = ALAT00 ;
  7009. XV3 = XV30 ;
  7010. TSAT1 = TSAT10 ;
  7011. INI1 = 1 ;
  7012. 'SINON';
  7013. ECHAN1 = ECHAN1 'ET' ECHAN10 ;
  7014. ALAT3 = ALAT3 'ET' ALAT30 ;
  7015. ALAT0 = ALAT0 'ET' ALAT00 ;
  7016. 'FINSI';
  7017. 'FINSI';
  7018. 'SI' ('EXISTE' TSG 'LAYERC2') ;
  7019. * LAYERC2 ---> TAGAMI
  7020. TSAT10 XV30 ALAT00 ALAT30 ECHAN10 = 'VARI' 'TOCOND '
  7021. SET (TSG.'LAYERC2') 'TAGAMI ' ;
  7022. 'SI' ('EGA' INI1 0);
  7023. ECHAN1 = ECHAN10 ;
  7024. ALAT3 = ALAT30 ;
  7025. ALAT0 = ALAT00 ;
  7026. XV3 = XV30 ;
  7027. TSAT1 = TSAT10 ;
  7028. INI1 = 1 ;
  7029. 'SINON';
  7030. ECHAN1 = ECHAN1 'ET' ECHAN10 ;
  7031. ALAT3 = ALAT3 'ET' ALAT30 ;
  7032. ALAT0 = ALAT0 'ET' ALAT00 ;
  7033. 'FINSI';
  7034. 'FINSI';
  7035. 'SI' ('EXISTE' TSG 'LAYERC3') ;
  7036. * LAYERC3 ---> UCHIDA
  7037. TSAT10 XV30 ALAT00 ALAT30 ECHAN10 = 'VARI' 'TOCOND '
  7038. SET (TSG.'LAYERC3') 'UCHIDA ' ;
  7039. 'SI' ('EGA' INI1 0);
  7040. ECHAN1 = ECHAN10 ;
  7041. ALAT3 = ALAT30 ;
  7042. ALAT0 = ALAT00 ;
  7043. XV3 = XV30 ;
  7044. TSAT1 = TSAT10 ;
  7045. INI1 = 1 ;
  7046. 'SINON';
  7047. ECHAN1 = ECHAN1 'ET' ECHAN10 ;
  7048. ALAT3 = ALAT3 'ET' ALAT30 ;
  7049. ALAT0 = ALAT0 'ET' ALAT00 ;
  7050. 'FINSI';
  7051. 'FINSI';
  7052. *
  7053. * Modif à activer pour test afin de ne pas toucher a ECHA
  7054. * Mettre en commentaire la maj de TSI . 'ECHA'
  7055. * ECHAN1 = 'EXCO' 'ECHA' (TSI . 'ECHA') 'SCAL' 'NATURE' 'DISCRET' ;
  7056. TSI . 'ECHA' = 'EXCO' 'SCAL' ECHAN1 'ECHA' 'NATURE' 'DISCRET' ;
  7057. TSI . 'ALAT' = 'EXCO' 'SCAL' ALAT3 'ALAT' 'NATURE' 'DISCRET'
  7058. + ('MANU' 'CHPO' TSG . 'LAYERT' 1 'ALAT' 0.D0 'NATURE' 'DISCRET') ;
  7059. *
  7060. *- Equation sur le flux de chaleur
  7061. *
  7062. TSI . 'XECHAN1' = -1.D0 * ECHAN1 ;
  7063. TSI . 'XECHAN2' = ECHAN1 ;
  7064. *
  7065. *- Equation de conservation de la masse d'eau (liquide+vapeur)
  7066. *
  7067. TSI . 'XALAT1' = ALAT3 ;
  7068. *
  7069. *- Equation de conservation de l'énergie
  7070. *
  7071. AREAW1 = -1.D0 * (TSD . 'AREAC') ;
  7072. TSI . 'XL0DC1' = AREAW1 + (ALAT0 * ALAT3) ;
  7073. *
  7074. *-------------------------------------- eau liquide dans les puisards
  7075. *
  7076. *- Equation de conservation de la masse d'eau des puisards
  7077. *
  7078. TSI . 'YALAT1' = -1.D0 * ALAT3 ;
  7079. *
  7080. *- Equation de conservation de l'énergie des puisards
  7081. *
  7082. TSI . 'YL0DC1' = -1.D0 * ALAT0 * ALAT3 ;
  7083. 'SINON' ;
  7084. * utilisation de tocond sans la condensation
  7085. TSAT1 XV3 = 'VARI' 'TOCOND ' SET ;
  7086.  
  7087. 'FINSI' ;
  7088.  
  7089. TSI . 'XV' = 'EXCO' 'SCAL' XV3 'XV' 'NATURE' 'DISCRET' ;
  7090. TSI . 'TSAT' = 'EXCO' 'SCAL' TSAT1 'TSAT' 'NATURE' 'DISCRET' ;
  7091. *
  7092. ULIQ1 = 'EXCO' 'ULIQ' (TSI . 'ULIQ') 'SCAL' 'NATURE' 'DISCRET' ;
  7093. MLIQ1 = 'EXCO' 'MLIQ' (TSI . 'MLIQ') 'SCAL' 'NATURE' 'DISCRET' ;
  7094. *
  7095. * Pour P, U et M connus, calcul par une méthode de Newton de h assurant
  7096. * HLS(P,T(P,h)) - U/M - P/Rho(P,h) = 0
  7097. * (et des variables auxiliaires T, Rho et V)
  7098. HLIQ1 = 'EXCO' 'HLIQ' (TSI . 'HLIQ') 'SCAL' 'NATURE' 'DISCRET' ;
  7099. TLIQ1 = 'VARI' 'TLIQUID' PTOT2 HLIQ1 ;
  7100. ROLIQ1 = 'VARI' 'ROLIQ' PTOT2 HLIQ1 ;
  7101. VLIQ1 = MLIQ1 / ROLIQ1 ;
  7102. *
  7103. dh = 10. ; ddh = 2. * dh ;
  7104. dt = 0.001 ; ddt = 2. * dt ;
  7105. dx = 0. ;
  7106. 'REPE' blo 3 ;
  7107. hp = hliq1 + dh ;
  7108. hm = hliq1 - dh ;
  7109. tp = tliq1 + dt ;
  7110. tm = tliq1 - dt ;
  7111. dhdt = ('VARI' 'HLS' ptot2 tp)-('VARI' 'HLS' ptot2 tm)
  7112. / ddt ;
  7113. dtdx = ('VARI' 'TLIQUID' ptot2 hp)-('VARI' 'TLIQUID' ptot2 hm)
  7114. / ddh ;
  7115. drdx = ('VARI' 'ROLIQ' ptot2 hp)-('VARI' 'ROLIQ' ptot2 hm)
  7116. / ddh ;
  7117. dfdx = dhdt * dtdx + (ptot2 * drdx / roliq1 / roliq1) ;
  7118. fx = ('VARI' 'HLS' ptot2 tliq1)
  7119. - (uliq1 / mliq1) - (ptot2 / roliq1) ;
  7120. dx = fx / dfdx * -1 ;
  7121. HLIQ1 = HLIQ1 + dx ;
  7122. TLIQ1 = 'VARI' 'TLIQUID' PTOT2 HLIQ1 ;
  7123. ROLIQ1 = 'VARI' 'ROLIQ' PTOT2 HLIQ1 ;
  7124. VLIQ1 = MLIQ1 / ROLIQ1 ;
  7125. 'FIN' blo ;
  7126. * mess 'maxi dx ' ('MAXI' dx) ;
  7127. *
  7128. *- Masse volumique de l'eau des puisards
  7129. * (coefficient pour équation de l'énergie des puisards)
  7130. TSI . 'XROLIQ1' = ROLIQ1 ;
  7131. *
  7132. *- Volume liquide
  7133. TSI . 'VLIQ' = 'EXCO' 'SCAL' VLIQ1 'VLIQ' 'NATURE' 'DISCRET' ;
  7134. *
  7135. * HLIQ1 = (('ABS' HLIQ1) + HLIQ1) / 2.0 ;
  7136. *'LIST' hliq1 ;
  7137. HLIQ2 = 'EXCO' 'SCAL' HLIQ1 'HLIQ' 'NATURE' 'DISCRET' ;
  7138. TSI . 'HLIQ' = HLIQ2 ;
  7139. TSUR = TSUR + HLIQ2 ;
  7140. *
  7141. *- Température de l'eau des puisards
  7142. TSI . 'TLIQ' = 'EXCO' 'SCAL' TLIQ1 'TLIQ' 'NATURE' 'DISCRET' ;
  7143. *
  7144. FLS1 = 0 ;
  7145. * Changement de spg pour TLIQ (CELL ---> LAYERS)
  7146. 'SI' ('EXIS' TSG 'LAYERS');
  7147. NBCELL = TSG . 'NBCELL' ;
  7148. NBLAYS = 'NBEL' TSG . 'CELLAYS' ;
  7149. 'REPE' BLO300 NBCELL ;
  7150. NPTC1 = (TSG . 'CELL') 'POIN' &BLO300 ;
  7151. 'REPE' BLO310 NBLAYS ;
  7152. LESEG1 = 'ELEM' (TSG . 'CELLAYS') 'SEG2' &BLO310 ;
  7153. LSEG1 = 'CHAN' 'POI1' LESEG1 ;
  7154. NPT1 = LSEG1 'POIN' 1 ;
  7155. NPT2 = LSEG1 'POIN' 2 ;
  7156. 'SI' ('EGA' ('NOEU' NPTC1) ('NOEU' NPT1));
  7157. TLQ1='EXTR' (TSI.'TLIQ') 'TLIQ' NPT1 ;
  7158. CLW2='MANU' 'CHPO' NPT2 1 'QS' TLQ1 'NATURE' 'DISCRET';
  7159. 'SI' ('EGA' FLS1 1) ;
  7160. TSLIQ2 = TSLIQ2 'ET' CLW2 ;
  7161. 'SINON' ;
  7162. FLS1 = 1;
  7163. TSLIQ2 = CLW2 ;
  7164. 'FINSI' ;
  7165. 'FINSI' ;
  7166. 'FIN' BLO310 ;
  7167. 'FIN' BLO300 ;
  7168. ECHA2 = 'REDU' (TSD . 'ECHAW') (TSG . 'LAYERS');
  7169. CHCLS1= 'NOMC' 'QS' (-1.0 '*' ECHA2 '*' TSLIQ2) 'NATURE' 'DISCRET';
  7170. TSUR = TSUR + CHCLS1 ;
  7171. 'FINSI' ;
  7172. *
  7173. *- Débit d'évaporation de l'eau des puisards
  7174. * 1) calcul
  7175. * 2) sauvegarde dans TSI.'MEVALOC' et TSI.'UEVALOC' des transferts
  7176. * de masse et d'énergie calculé sur le pas de temps DT1
  7177. * 3) prise en compte "implicite" à travers le point fixe
  7178. *
  7179. * PVAP2 : pression partielle de vapeur
  7180. * XCOEF1 : champ non nul pour TLIQ1 > TSAT1
  7181. * ASUMP1 : surfaces des puisards
  7182. * PSATL1 : pression de saturation à la température du liquide
  7183. * DE1 : débit d'évaporation
  7184. * TAU1 : constante de temps (potar JERICHO)
  7185. * CPLIQ1 : chaleur spécifique à pression constante de l'eau liquide
  7186. * TEBU2 : température d'ébullition
  7187. * CHAL2 : chaleur latente
  7188. * DE2 : débit d'ébullition
  7189. PVAP2 = VARI PVAP (XV3 * RH2O1) TGAS2 ;
  7190. XCOEF1 = (TLIQ1 - TSAT1) 'MASQUE' 'SUPERIEUR' 0.D0 ;
  7191. ASUMP1 = TSD . 'ASUMP' ;
  7192. PSATL1 = VARI PSATT TLIQ1 ;
  7193. PRES1 = ('ABS' (PSATL1 - PVAP2)) + (PSATL1 - PVAP2) / 2.
  7194. + 1.E-30 ;
  7195. DE1 = ASUMP1 * XCOEF1 * ((PRES1/1.E+5) ** 1.2) * 5.24E-3 ;
  7196. TAU1 = 100. ;
  7197. CPLIQ1 = VARI CPLIQ PTOT2 HLIQ1 ;
  7198. TEBU2 = VARI TSATP PTOT2 ;
  7199. PSATL2 = VARI PSATT TEBU2 ;
  7200. XCOEF2 = (TLIQ1 - TEBU2) 'MASQUE' 'EGSUPE' 0.D0 ;
  7201. CHAL2 = VARI LATENT PVAP2 ;
  7202. DE2 = (MLIQ1 / TAU1) * CPLIQ1 * (TLIQ1 - TEBU2) * XCOEF2
  7203. / CHAL2 ;
  7204. LRHS1 = DE1 + DE2 ;
  7205. *
  7206. * La masse d'eau évaporée est bornée par (Meau - 1 kg) et par Meau/100
  7207. * avec mise à 0 pour les puisards externes
  7208. * MEVA1 : Valeur brute de la masse évaporé
  7209. * MAX0 : Masse correspondant à 1% de la masse d'eau initiale du puisard
  7210. * MAX1 : Masse laissant 1kg d'eau dans le puisard
  7211. MEVA1 = LRHS1 * DT1 ;
  7212. ML0 = 'EXCO' 'MLIQ' (TSI . 'OMLIQ') 'SCAL' 'NATURE' 'DISCRET' ;
  7213. MAX_0 = ML0 * 0.01D0 ;
  7214. MAX_1 = ML0 - 1.D0 ;
  7215. MAX_2 = MAX_0 + MAX_1 - ('ABS' (MAX_0 - MAX_1)) * 0.5 ;
  7216. MEVA2 = MEVA1 + MAX_2 - ('ABS' (MEVA1 - MAX_2)) * 0.5 ;
  7217. 'SI' ((TSG . 'NBSUMP') '>' 0) ;
  7218. LRHS3 = 'REDU' MEVA2 (TSG . 'SUMP') ;
  7219. MEVA2 = MEVA2 - LRHS3 ;
  7220. 'FINSI' ;
  7221. ID1 = ML0 / ML0 ;
  7222. REVA1 = MEVA2 / (MEVA1 + (ID1 * 1.D-30)) ;
  7223. QEVA2 = MEVA2 / DT1 ;
  7224. EQEVA = 'VARI' 'HVS' PSATL1 TLIQ1 ;
  7225. EQEBU = 'VARI' 'HVS' PSATL2 TEBU2 ;
  7226. ETOT1 = DE1 * EQEVA + (DE2 * EQEBU) * REVA1 ;
  7227. TSI . 'MEVALOC' = 'EXCO' 'SCAL' MEVA2 'MEVA''NATURE''DISCRET';
  7228. TSI . 'UEVALOC' = 'EXCO' 'SCAL' (ETOT1*DT1) 'UEVA''NATURE''DISCRET';
  7229. *
  7230. * Prise en compte du débit d'évaporation pour RH2O
  7231. RHS1 = 'EXCO' 'SCAL' QEVA2 'RH2O' 'NATURE' 'DISCRET';
  7232. TSUR = TSUR + RHS1 ;
  7233. *
  7234. * Prise en compte du débit d'évaporation pour UGAS
  7235. XEVAUGAS = ETOT1 ;
  7236. RHS1 = 'EXCO' 'SCAL' XEVAUGAS 'UGAS' 'NATURE' 'DISCRET';
  7237. TSUR = TSUR + RHS1 ;
  7238. *
  7239. * Prise en compte de la perte pour UGAS de la condensation en masse
  7240. XMLS = (1.D0-XV3) * RH2O1 * VOLU1 *
  7241. ('VARI' 'HLS' ('VARI' 'PSATT' TGAS2)) / DT1 ;
  7242. RHS1 = 'EXCO' 'SCAL' XMLS 'UGAS' 'NATURE' 'DISCRET' ;
  7243. TSUR = TSUR - RHS1 ;
  7244. *
  7245. * Prise en compte du débit d'évaporation pour MLIQ
  7246. XEVAMLIQ = -1.D0 * QEVA2 ;
  7247. RHS1 = 'EXCO' 'SCAL' XEVAMLIQ 'MLIQ' 'NATURE' 'DISCRET' ;
  7248. TSUR = TSUR + RHS1 ;
  7249. *
  7250. * Prise en compte du débit d'évaporation pour ULIQ
  7251. XEVAULIQ = -1.D0 * XEVAUGAS ;
  7252. RHS1 = 'EXCO' 'SCAL' XEVAULIQ 'ULIQ' 'NATURE' 'DISCRET' ;
  7253. TSUR = TSUR + RHS1 ;
  7254. *
  7255. *- Débit d'eau dans les jonctions liquides
  7256. * 1) calcul
  7257. * 2) sauvegarde dans TSI.'QLIQ'
  7258. * 3) prise en compte "implicite" à travers le point fixe
  7259. *
  7260. * B1 : largeur de débordement des puisards
  7261. * VMAX1 : volumes maximum d'eau tolérés dans les puisards
  7262. * QV1 : débit volumique de débordement (m3/s)
  7263. * QV0 : débit débordement à itération précédente pour relaxation
  7264. *
  7265. 'SI' (EXISTE TSG 'JULIQ') ;
  7266. G1 = TSP . 'GRAVITY' ;
  7267. B1 = TSD . 'APERTURE' ;
  7268. VMAX1 = TSD . 'VMAX' ;
  7269. * hauteurs d'eau supérieures aux hauteurs max
  7270. MASQ1 = (VLIQ1 - VMAX1) 'MASQUE' 'SUPERIEUR' 0.D0 ;
  7271. MASQ2 = (VLIQ1 - VMAX1) 'MASQUE' 'EGINFE' 0.D0 ;
  7272. HAUT1 = (VLIQ1 - VMAX1) * MASQ1 / ASUMP1 ;
  7273. HAUT2 = HAUT1 + (1.D-30 * MASQ2) ;
  7274. QV1 = B1 * HAUT1 * ((2.0 * G1 * HAUT2) ** 0.5) ;
  7275. * on borne le débit volumique de débordement par
  7276. * le volume d'eau divisée par le pas de temps
  7277. QMAX1 = VLIQ1 / DT1 * 0.5 ;
  7278. MASQ1 = (QV1 - QMAX1) 'MASQUE' 'EGINFE' 0.D0 ;
  7279. MASQ2 = (QV1 - QMAX1) 'MASQUE' 'SUPERIEUR' 0.D0 ;
  7280. QV1 = (MASQ1 * QV1) + (MASQ2 * QMAX1) ;
  7281. *
  7282. *- Equation de conservation de la masse d'eau liquide
  7283. *
  7284. VLIQ2 = VLIQ1 + 1.D-30 ;
  7285. TSI . 'XUNVLIQ1' = VLIQ2 ** -1.0 ;
  7286. *
  7287. *- Energie des puisards (modif du spg de QLIQ ('JULIQ'))
  7288. *
  7289. QV0 = TSI . 'QLIQ' ;
  7290. NBJUL1 = TSG . 'NBJUL' ;
  7291. 'REPE' BLO100 NBJUL1 ;
  7292. LESEG3 = 'ELEM' (TSG . 'JULCEL') 'SEG3' &BLO100 ;
  7293. LSEG3 = 'CHAN' LESEG3 POI1 ;
  7294. PT1 = LSEG3 'POIN' 1 ;
  7295. PTF1 = LSEG3 'POIN' 2 ;
  7296. VAL1 = ('EXTR' QV1 'SCAL' PT1) ;
  7297. VAL0 = ('EXTR' QV0 'QLIQ' PTF1) ;
  7298. VAL1 = (RELAX4 * VAL1) + ((1.0 - RELAX4) * VAL0) ;
  7299. VOL1 = ('EXTR' VLIQ1 'SCAL' PT1) ;
  7300. 'SI' (&BLO100 'EGA' 1) ;
  7301. QV2 = 'MANU' 'CHPO' PTF1 1 'QLIQ' VAL1 'NATURE' 'DISCRET' ;
  7302. 'SINON' ;
  7303. QV2 = QV2 'ET'
  7304. ('MANU' 'CHPO' PTF1 1 'QLIQ' VAL1 'NATURE' 'DISCRET') ;
  7305. 'FINSI' ;
  7306. 'FIN' BLO100 ;
  7307. TSI . 'QLIQ' = QV2 ;
  7308. 'FINSI' ;
  7309. *
  7310. *- Fin de la gestion eau liquide
  7311. *
  7312. 'FINSI' ;
  7313. *
  7314. *- Gestion du flux de chaleur lorsque la thermique mur est découplée
  7315. *- Mise à jour à réaliser après la gestion de l'eau du fait de 'XECHAN2'
  7316. *
  7317. 'SI' ('EGA' (SET . 'COUPLAGE_WALL') 'OFF') ;
  7318. 'SI' ('EXIS' TSG 'LAYERC' ) ;
  7319. TPL1 = 'REDU' (TSI . 'TWAL') (TSG . 'LAYERC') ;
  7320. TPL2 = (TSI . 'XECHAN2') * TPL1 ;
  7321. TPL2 = 'REDU' TPL2 (TSG . 'LAYERC') ;
  7322. RHS1 = 'EXCO' 'TWAL' TPL2 'QW' 'NATURE' 'DISCRET' ;
  7323. TSUR = TSUR + RHS1 ;
  7324. 'FINSI' ;
  7325. 'SI' ('EXIS' TSG 'LAYERS' ) ;
  7326. TPL1 = 'REDU' (TSI . 'TWAL') (TSG . 'LAYERS') ;
  7327. TPL2 = (TSD . 'ECHAW') * TPL1 ;
  7328. TPL2 = 'REDU' TPL2 (TSG . 'LAYERS') ;
  7329. RHS1 = 'EXCO' 'TWAL' TPL2 'QS' 'NATURE' 'DISCRET' ;
  7330. TSUR = TSUR + RHS1 ;
  7331. 'FINSI' ;
  7332. 'FINSI' ;
  7333. *
  7334. * Cas de la puissance Residuelle
  7335. *
  7336. 'SI' ('EXIS' TSD 'PRESI' ) ;
  7337. *
  7338. *- Equation de conservation de la masse pour Y1 Y2 et Y3
  7339. XUNMGAS2 = (RGAS2 * VOLU1) '**' -1.0 ;
  7340. TSI . 'XUNMGAS1' = XUNMGAS2 ;
  7341. XUNMLIQ2 = MLIQ1 '**' -1.0 ;
  7342. TSI . 'XUNMLIQ1' = XUNMLIQ2 ;
  7343. *
  7344. *- Rabattement des aerosols
  7345. TIME00 = TSI . 'TIME1' ;
  7346. TIME0 = TSI . 'TIME2' ;
  7347. DT1 = TSI . 'DT' ;
  7348. MOTLAMB = TSD . 'PRESI' . 'LAMBDA' . 1 ;
  7349. TSBP = SET . 'BOUNDARY' . 'PRESID' ;
  7350. 'SI' ('EGA' ('TYPE' MOTLAMB) 'MOT ') ;
  7351. LAMBDA = 'MINI' ('TIRE' (TSBP . 'LAMBDA' . 'CHARG') time0 'LAMB');
  7352. 'SINON' ;
  7353. LAMBDA = TSD . 'PRESI' . 'LAMBDA' . 1 ;
  7354. 'FINSI' ;
  7355. *
  7356. *- Prise en compte éventuelle de l'aspersion
  7357. *- (ideb= 1 ou 2 si aspersion en cours)
  7358. 'SI' ('EXISTE' TSD 'SPRAY' ) ;
  7359. IDEB = TSD . 'SPRAY' . 'IDEB';
  7360. 'SI' (('EGA' IDEB 1) 'OU' ('EGA' IDEB 2)) ;
  7361. MOTLAMBP = TSD . 'PRESI' . 'LAMBDAP' . 1 ;
  7362. 'SI' ('EGA' ('TYPE' MOTLAMBP) 'MOT ') ;
  7363. LAMBDA = 'MINI'
  7364. ('TIRE' (TSBP . 'LAMBDAP' . 'CHARG') time0 'LAMB');
  7365. 'SINON' ;
  7366. LAMBDA = TSD . 'PRESI' . 'LAMBDAP' . 1 ;
  7367. 'FINSI' ;
  7368. 'FINSI' ;
  7369. 'FINSI' ;
  7370. *
  7371. CHPLU1 = 'MANU' 'CHPO' TSG . 'CELL' 1 'SCAL' 1.D0 'NATURE''DISCRET';
  7372. CHMOI1 = 'MANU' 'CHPO' TSG . 'CELL' 1 'SCAL' -1.D0 'NATURE''DISCRET';
  7373. XLAMBDA2 = CHPLU1 * LAMBDA ;
  7374. XLAMBDA3 = CHMOI1 * LAMBDA ;
  7375. TSI . 'XLAMBDA' = XLAMBDA2 ;
  7376. TSI . 'XMLAMBDA' = XLAMBDA3 ;
  7377. 'FINSI' ;
  7378. *
  7379. SET . 'UPLIN' . 'RHS' = TSUR ;
  7380. 'FINP' ;
  7381. *$$$$ TO_UTILE
  7382. 'DEBP' TO_UTILE LIN1*'LISTREEL' RANG0*'ENTIER' FREQ1*'ENTIER' ;
  7383. *
  7384. *
  7385. SIZE0 = ('DIME' LIN1) ;
  7386. SIZE1 = SIZE0 - RANG0 + 1 ;
  7387. 'SI' (SIZE1 '&lt;EG' 0) ;
  7388. *
  7389. * On traite le cas particulier
  7390. ROUT1 = 'LECT' ;
  7391. LOUT1 = 'PROG' ;
  7392. 'SINO' ;
  7393. *
  7394. * On construit la liste d'entiers inférieurs à SIZE0,
  7395. * démarrant à RANG0, par pas de FREQ1
  7396. PAS1 = SIZE1 / FREQ1 ;
  7397. 'SI' ('EGA' (PAS1*FREQ1) SIZE1) ;
  7398. PAS1 = PAS1 - 1 ;
  7399. 'FINSI' ;
  7400. 'SI' ('NEG' PAS1 0) ;
  7401. ROUT1 = 'LECT' RANG0 'PAS' FREQ1 'NPAS' PAS1 ;
  7402. MAX1 = FREQ1 * PAS1 + RANG0 ;
  7403. 'SINO' ;
  7404. 'SI' ('EGA' SIZE1 1) ;
  7405. ROUT1 = 'LECT' ;
  7406. MAX1 = 0 ;
  7407. 'SINO' ;
  7408. ROUT1 = 'LECT' RANG0 ;
  7409. MAX1 = RANG0 ;
  7410. 'FINSI' ;
  7411. 'FINSI' ;
  7412. *
  7413. * Ajout du dernier élément
  7414. 'SI' (MAX1 'NEG' SIZE0) ;
  7415. ROUT1 = ROUT1 'ET' ('LECT' SIZE0) ;
  7416. 'FINSI' ;
  7417. *
  7418. * Extraction des valeurs du LISTREEL
  7419. LOUT1 = 'EXTR' LIN1 ROUT1 ;
  7420. 'FINSI' ;
  7421. 'FINP' LOUT1 ROUT1 ;
  7422. *$$$$ TO_VERIF
  7423. DEBPROC TO_VERIF ;
  7424. *
  7425. ARGU INPUT * 'TABLE' ;
  7426. *
  7427. NBCELL = 'DIME' (INPUT . 'CELL' . 'LOCATION') ;
  7428. *
  7429. * --- Recuperation du nombre de composents ---
  7430. *
  7431. NBCOMP = 'DIME' (INPUT . 'COMPONENT') ;
  7432. *
  7433. * --------------------------------------------------------------------
  7434. * Verification de la coherence des donnees par rapport a l'equation
  7435. * d'etat des gaz parfaits
  7436. * --------------------------------------------------------------------
  7437. *
  7438. IND1 = 'INDEX' (INPUT . 'CELL' . 'LOCATION') ;
  7439. INC1 = 'INDEX' (INPUT . 'COMPONENT') ;
  7440. 'REPETER' BLO10 NBCELL ;
  7441. RHOR10 = 0. ;
  7442. ICELL = IND1 . &BLO10 ;
  7443. VCELL1 = INPUT . 'CELL' . 'VOL' . ICELL ;
  7444. TGAS1 = INPUT . 'CELL' . 'TGAS' . ICELL ;
  7445. 'REPETER' BLO11 NBCOMP ;
  7446. IND11 = INC1 . &BLO11 ;
  7447. NAMEC1 = INPUT . 'COMPONENT' . IND11 ;
  7448. NAMEM1 = 'CHAINE' 'M' NAMEC1 ;
  7449. RHO1 = (INPUT . 'CELL' . NAMEM1 . ICELL) / VCELL1 ;
  7450. NAMER1 = 'CHAINE' 'R_' NAMEC1 ;
  7451. R1 = INPUT . 'PHYSICAL' . NAMER1 ;
  7452. 'SI' ('EGA' NAMEC1 'H2O') ;
  7453. Z1 = VARI ZVAP RHO1 TGAS1 ;
  7454. PVAP1 = 'VARI' 'PVAP' RHO1 TGAS1 ;
  7455. pvap2 = RHO1 * R1 * Z1 * tgas1 ;
  7456. 'SINO' ;
  7457. Z1 = 1.D0 ;
  7458. 'FINS' ;
  7459. RHOR10 = RHOR10 + (RHO1 * R1 * Z1) ;
  7460. 'FIN' BLO11 ;
  7461. PTHEO1 = RHOR10 * TGAS1 ;
  7462. PT1 = INPUT . 'CELL' . 'PT' . ICELL ;
  7463. ERRTOL1 = INPUT . 'TIMECALC' . 'ERRTOL' ;
  7464. ERRPT1 = ( ABS(PT1-PTHEO1) ) / PT1 ;
  7465. 'SI' ( ERRPT1 > ERRTOL1 ) ;
  7466. 'MESS'
  7467. 'WARNING !!! : The pressure in ' ICELL ' is ' PT1
  7468. ' and might be ' PTHEO1;
  7469. 'FINSI';
  7470. 'FIN' BLO10 ;
  7471. *
  7472. FINPROC INPUT ;
  7473. *$$$$ TO_WALL
  7474. 'DEBP' TO_WALL SET*'TABLE' LISTOPER*'TABLE'
  7475. CHOI1*'TABLE' CHOI2*'TABLE' CHOI3*'TABLE' CHOI4*'TABLE'
  7476. ICHX1*'ENTIER' ICHX2*'ENTIER' ICHX3*'ENTIER' ICHX4*'ENTIER'
  7477. NBOPE1*'ENTIER' ;
  7478. *
  7479. *
  7480. TSD = SET . 'DATA' ;
  7481. TSG = SET . 'GEOINF' ;
  7482. TSI = SET . 'INCO' ;
  7483. TSP = SET . 'PHYSICAL' ;
  7484. *
  7485. AREAW1 = -1.D0 * (TSD . 'AREAW') ;
  7486. ECHAW1 = -1.D0 * (TSD . 'ECHAW') ;
  7487. ECHAW2 = TSD . 'ECHAW' ;
  7488. CPW = TSP . 'CW' ;
  7489. RHOW = TSP . 'RW' ;
  7490. LBDW = TSP . 'LW' ;
  7491. THICKW = TSP . 'TW' ;
  7492. CHPLUW = 'MANU' 'CHPO' (TSG . 'LAYERT') 1 'SCAL' 1.D0 ;
  7493. CHMOIW = -1.0 * CHPLUW ;
  7494. CHPLU1 = 'MANU' 'CHPO' (TSG . 'CELL') 1 'SCAL' 1.D0 ;
  7495. COUPW1 = 'EGA' (SET . 'COUPLAGE_WALL') 'ON' ;
  7496. LCOND1 = 'EXISTE' TSP 'CONDENSE' ;
  7497. LSUMP1 = 'EXISTE' TSG 'LAYERS' ;
  7498. LCELL1 = 'EXISTE' TSG 'LAYERC' ;
  7499. 'SI' LCELL1 ;
  7500. NBOPE1 = NBOPE1 + 1 ;
  7501. ICHX1 = ICHX1 + 1 ;
  7502. CHOI1 . ICHX1 = NBOPE1 ;
  7503. LISTOPER . NBOPE1 = TABLE 'OPER_0D' ;
  7504. LISTOPER . NBOPE1 . 'NAME' = MOT 'MDIA' ;
  7505. LISTOPER . NBOPE1 . 'MAILLAGE'= TSG . 'LAYERC' ;
  7506. LISTOPER . NBOPE1 . 'INCO' = TSI ;
  7507. LISTOPER . NBOPE1 . 'COEF' = CHPLUW ;
  7508. LISTOPER . NBOPE1 . 'PRIMAL' = 'QW ' ;
  7509. LISTOPER . NBOPE1 . 'DUAL' = 'QW ' ;
  7510. LISTOPER . NBOPE1 . 'TYPEL' = 'P=D' ;
  7511. *
  7512. NBOPE1 = NBOPE1 + 1 ;
  7513. LISTOPER . NBOPE1 = TABLE 'OPER_0D' ;
  7514. LISTOPER . NBOPE1 . 'NAME' = MOT 'MDIA' ;
  7515. LISTOPER . NBOPE1 . 'MAILLAGE'= TSG . 'CELLAYW' ;
  7516. LISTOPER . NBOPE1 . 'INCO' = TSI ;
  7517. 'SI' LCOND1 ;
  7518. ICHX3 = ICHX3 + 1 ;
  7519. CHOI3 . ICHX3 = NBOPE1 ;
  7520. 'SINON' ;
  7521. ICHX1 = ICHX1 + 1 ;
  7522. CHOI1 . ICHX1 = NBOPE1 ;
  7523. TSI . 'XECHAN2' = ECHAW2 ;
  7524. 'FINSI' ;
  7525. LISTOPER . NBOPE1 . 'COEF' = 'XECHAN2' ;
  7526. LISTOPER . NBOPE1 . 'PRIMAL' = 'TGAS' ;
  7527. LISTOPER . NBOPE1 . 'DUAL' = 'QW ' ;
  7528. LISTOPER . NBOPE1 . 'TYPEL' = 'PD' ;
  7529. 'FINSI' ;
  7530.  
  7531. 'SI' LSUMP1 ;
  7532. NBOPE1 = NBOPE1 + 1 ;
  7533. ICHX1 = ICHX1 + 1 ;
  7534. CHOI1 . ICHX1 = NBOPE1 ;
  7535. LISTOPER . NBOPE1 = TABLE 'OPER_0D' ;
  7536. LISTOPER . NBOPE1 . 'NAME' = MOT 'MDIA' ;
  7537. LISTOPER . NBOPE1 . 'MAILLAGE'= TSG . 'LAYERS' ;
  7538. LISTOPER . NBOPE1 . 'INCO' = TSI ;
  7539. LISTOPER . NBOPE1 . 'COEF' = CHPLUW ;
  7540. LISTOPER . NBOPE1 . 'PRIMAL' = 'QS ' ;
  7541. LISTOPER . NBOPE1 . 'DUAL' = 'QS ' ;
  7542. LISTOPER . NBOPE1 . 'TYPEL' = 'P=D' ;
  7543. 'FINSI' ;
  7544. 'SI' (COUPW1) ;
  7545. NBOPE1 = NBOPE1 + 1 ;
  7546. ICHX2 = ICHX2 + 1 ;
  7547. CHOI2 . ICHX2 = NBOPE1 ;
  7548. LISTOPER . NBOPE1 = TABLE 'OPER_0D' ;
  7549. LISTOPER . NBOPE1 . 'NAME' = MOT 'LAPN' ;
  7550. LISTOPER . NBOPE1 . 'GEOINF' = TSG ;
  7551. LISTOPER . NBOPE1 . 'INCO' = TSI ;
  7552. LISTOPER . NBOPE1 . 'DUAL' = 'TWAL' ;
  7553. LISTOPER . NBOPE1 . 'PRIMAL' = 'TWAL' ;
  7554. LISTOPER . NBOPE1 . 'DT' = 'DT' ;
  7555. LISTOPER . NBOPE1 . 'CP' = CPW ;
  7556. LISTOPER . NBOPE1 . 'RHO' = RHOW ;
  7557. LISTOPER . NBOPE1 . 'LBD' = LBDW ;
  7558. LISTOPER . NBOPE1 . 'THICK' = THICKW ;
  7559. *
  7560. 'SI' LCELL1 ;
  7561. NBOPE1 = NBOPE1 + 1 ;
  7562. ICHX1 = ICHX1 + 1 ;
  7563. CHOI1 . ICHX1 = NBOPE1 ;
  7564. LISTOPER . NBOPE1 = TABLE 'OPER_0D' ;
  7565. LISTOPER . NBOPE1 . 'NAME' = MOT 'MDIA' ;
  7566. LISTOPER . NBOPE1 . 'MAILLAGE'= TSG . 'LAYERC' ;
  7567. LISTOPER . NBOPE1 . 'COEF' = CHPLUW ;
  7568. LISTOPER . NBOPE1 . 'INCO' = TSI ;
  7569. LISTOPER . NBOPE1 . 'DUAL' = 'TWAL' ;
  7570. LISTOPER . NBOPE1 . 'PRIMAL' = 'QW ' ;
  7571. LISTOPER . NBOPE1 . 'TYPEL' = 'P=D' ;
  7572. *
  7573. NBOPE1 = NBOPE1 + 1 ;
  7574. LISTOPER . NBOPE1 = TABLE 'OPER_0D' ;
  7575. LISTOPER . NBOPE1 . 'NAME' = MOT 'MDIA' ;
  7576. LISTOPER . NBOPE1 . 'MAILLAGE'= TSG . 'LAYERC' ;
  7577. LISTOPER . NBOPE1 . 'INCO' = TSI ;
  7578. 'SI' LCOND1 ;
  7579. ICHX3 = ICHX3 + 1 ;
  7580. CHOI3 . ICHX3 = NBOPE1 ;
  7581. 'SINON' ;
  7582. ICHX1 = ICHX1 + 1 ;
  7583. CHOI1 . ICHX1 = NBOPE1 ;
  7584. TSI . 'XECHAN1' = ECHAW1 ;
  7585. 'FINSI' ;
  7586. LISTOPER . NBOPE1 . 'COEF' = 'XECHAN1' ;
  7587. LISTOPER . NBOPE1 . 'PRIMAL' = 'TWAL' ;
  7588. LISTOPER . NBOPE1 . 'DUAL' = 'QW ' ;
  7589. LISTOPER . NBOPE1 . 'TYPEL' = 'P=D' ;
  7590. 'FINSI' ;
  7591. *
  7592. 'SI' LSUMP1 ;
  7593. NBOPE1 = NBOPE1 + 1 ;
  7594. ICHX1 = ICHX1 + 1 ;
  7595. CHOI1 . ICHX1 = NBOPE1 ;
  7596. LISTOPER . NBOPE1 = TABLE 'OPER_0D' ;
  7597. LISTOPER . NBOPE1 . 'NAME' = MOT 'MDIA' ;
  7598. LISTOPER . NBOPE1 . 'MAILLAGE'= TSG . 'LAYERS' ;
  7599. LISTOPER . NBOPE1 . 'COEF' = CHPLUW ;
  7600. LISTOPER . NBOPE1 . 'INCO' = TSI ;
  7601. LISTOPER . NBOPE1 . 'PRIMAL' = 'QS ' ;
  7602. LISTOPER . NBOPE1 . 'DUAL' = 'TWAL' ;
  7603. LISTOPER . NBOPE1 . 'TYPEL' = 'P=D' ;
  7604. *
  7605. NBOPE1 = NBOPE1 + 1 ;
  7606. ICHX1 = ICHX1 + 1 ;
  7607. CHOI1 . ICHX1 = NBOPE1 ;
  7608. LISTOPER . NBOPE1 = TABLE 'OPER_0D' ;
  7609. LISTOPER . NBOPE1 . 'NAME' = MOT 'MDIA' ;
  7610. LISTOPER . NBOPE1 . 'MAILLAGE'= TSG . 'LAYERS' ;
  7611. LISTOPER . NBOPE1 . 'INCO' = TSI ;
  7612. LISTOPER . NBOPE1 . 'COEF' = ECHAW1 ;
  7613. LISTOPER . NBOPE1 . 'PRIMAL' = 'TWAL' ;
  7614. LISTOPER . NBOPE1 . 'DUAL' = 'QS ' ;
  7615. LISTOPER . NBOPE1 . 'TYPEL' = 'P=D' ;
  7616. 'FINSI' ;
  7617. *
  7618. 'SI' ('EXISTE' TSG 'LAYERO');
  7619. NBOPE1 = NBOPE1 + 1 ;
  7620. ICHX1 = ICHX1 + 1 ;
  7621. CHOI1 . ICHX1 = NBOPE1 ;
  7622. LISTOPER . NBOPE1 = TABLE 'OPER_0D' ;
  7623. LISTOPER . NBOPE1 . 'NAME' = MOT 'MDIA' ;
  7624. LISTOPER . NBOPE1 . 'MAILLAGE'= TSG . 'LAYERO' ;
  7625. LISTOPER . NBOPE1 . 'INCO' = TSI ;
  7626. LISTOPER . NBOPE1 . 'COEF' = CHPLUW ;
  7627. LISTOPER . NBOPE1 . 'PRIMAL' = 'QO' ;
  7628. LISTOPER . NBOPE1 . 'DUAL' = 'QO' ;
  7629. LISTOPER . NBOPE1 . 'TYPEL' = 'P=D' ;
  7630. *
  7631. NBOPE1 = NBOPE1 + 1 ;
  7632. ICHX1 = ICHX1 + 1 ;
  7633. CHOI1 . ICHX1 = NBOPE1 ;
  7634. LISTOPER . NBOPE1 = TABLE 'OPER_0D' ;
  7635. LISTOPER . NBOPE1 . 'NAME' = MOT 'MDIA' ;
  7636. LISTOPER . NBOPE1 . 'MAILLAGE'= TSG . 'LAYERO' ;
  7637. LISTOPER . NBOPE1 . 'INCO' = TSI ;
  7638. LISTOPER . NBOPE1 . 'COEF' = CHPLUW ;
  7639. LISTOPER . NBOPE1 . 'PRIMAL' = 'QO' ;
  7640. LISTOPER . NBOPE1 . 'DUAL' = 'TWAL' ;
  7641. LISTOPER . NBOPE1 . 'TYPEL' = 'P=D' ;
  7642. *
  7643. NBOPE1 = NBOPE1 + 1 ;
  7644. ICHX1 = ICHX1 + 1 ;
  7645. CHOI1 . ICHX1 = NBOPE1 ;
  7646. LISTOPER . NBOPE1 = TABLE 'OPER_0D' ;
  7647. LISTOPER . NBOPE1 . 'NAME' = MOT 'MDIA' ;
  7648. LISTOPER . NBOPE1 . 'MAILLAGE'= TSG . 'LAYERO' ;
  7649. LISTOPER . NBOPE1 . 'INCO' = TSI ;
  7650. LISTOPER . NBOPE1 . 'COEF' = ECHAW1 ;
  7651. LISTOPER . NBOPE1 . 'PRIMAL' = 'TWAL' ;
  7652. LISTOPER . NBOPE1 . 'DUAL' = 'QO' ;
  7653. LISTOPER . NBOPE1 . 'TYPEL' = 'P=D' ;
  7654. 'FINSI' ;
  7655. *
  7656. 'SINO' ;
  7657. NBOPE1 = NBOPE1 + 1 ;
  7658. ICHX4 = ICHX4 + 1 ;
  7659. CHOI4 . ICHX4 = NBOPE1 ;
  7660. LISTOPER . NBOPE1 = TABLE 'OPER_0D' ;
  7661. LISTOPER . NBOPE1 . 'NAME' = MOT 'LAPN' ;
  7662. LISTOPER . NBOPE1 . 'GEOINF' = TSG ;
  7663. LISTOPER . NBOPE1 . 'INCO' = TSI ;
  7664. LISTOPER . NBOPE1 . 'DUAL' = 'TWAL' ;
  7665. LISTOPER . NBOPE1 . 'PRIMAL' = 'TWAL' ;
  7666. LISTOPER . NBOPE1 . 'DT' = 'DT' ;
  7667. LISTOPER . NBOPE1 . 'CP' = CPW ;
  7668. LISTOPER . NBOPE1 . 'RHO' = RHOW ;
  7669. LISTOPER . NBOPE1 . 'LBD' = LBDW ;
  7670. LISTOPER . NBOPE1 . 'THICK' = THICKW ;
  7671. *
  7672. 'SI' LCELL1 ;
  7673. NBOPE1 = NBOPE1 + 1 ;
  7674. ICHX4 = ICHX4 + 1 ;
  7675. CHOI4 . ICHX4 = NBOPE1 ;
  7676. LISTOPER . NBOPE1 = TABLE 'OPER_0D' ;
  7677. LISTOPER . NBOPE1 . 'NAME' = MOT 'MDIA' ;
  7678. LISTOPER . NBOPE1 . 'MAILLAGE'= TSG . 'LAYERC' ;
  7679. LISTOPER . NBOPE1 . 'COEF' = CHPLUW ;
  7680. LISTOPER . NBOPE1 . 'INCO' = TSI ;
  7681. LISTOPER . NBOPE1 . 'DUAL' = 'TWAL' ;
  7682. LISTOPER . NBOPE1 . 'PRIMAL' = 'QP' ;
  7683. LISTOPER . NBOPE1 . 'TYPEL' = 'P=D' ;
  7684. *
  7685. * Flux imposé (avec compartiment)
  7686. NBOPE1 = NBOPE1 + 1 ;
  7687. ICHX4 = ICHX4 + 1 ;
  7688. CHOI4 . ICHX4 = NBOPE1 ;
  7689. LISTOPER . NBOPE1 = TABLE 'OPER_0D' ;
  7690. LISTOPER . NBOPE1 . 'NAME' = MOT 'MDIA' ;
  7691. LISTOPER . NBOPE1 . 'MAILLAGE'= TSG . 'LAYERC' ;
  7692. LISTOPER . NBOPE1 . 'INCO' = TSI ;
  7693. LISTOPER . NBOPE1 . 'COEF' = CHPLUW ;
  7694. LISTOPER . NBOPE1 . 'PRIMAL' = 'QP' ;
  7695. LISTOPER . NBOPE1 . 'DUAL' = 'QP' ;
  7696. LISTOPER . NBOPE1 . 'TYPEL' = 'P=D' ;
  7697. 'FINSI' ;
  7698. *
  7699. * Flux imposé (avec puisard)
  7700. 'SI' ('EXISTE' TSG 'LAYERS');
  7701. NBOPE1 = NBOPE1 + 1 ;
  7702. ICHX4 = ICHX4 + 1 ;
  7703. CHOI4 . ICHX4 = NBOPE1 ;
  7704. LISTOPER . NBOPE1 = TABLE 'OPER_0D' ;
  7705. LISTOPER . NBOPE1 . 'NAME' = MOT 'MDIA' ;
  7706. LISTOPER . NBOPE1 . 'MAILLAGE'= TSG . 'LAYERS' ;
  7707. LISTOPER . NBOPE1 . 'INCO' = TSI ;
  7708. LISTOPER . NBOPE1 . 'COEF' = CHPLUW ;
  7709. LISTOPER . NBOPE1 . 'PRIMAL' = 'QR' ;
  7710. LISTOPER . NBOPE1 . 'DUAL' = 'QR' ;
  7711. LISTOPER . NBOPE1 . 'TYPEL' = 'P=D' ;
  7712. *
  7713. NBOPE1 = NBOPE1 + 1 ;
  7714. ICHX4 = ICHX4 + 1 ;
  7715. CHOI4 . ICHX4 = NBOPE1 ;
  7716. LISTOPER . NBOPE1 = TABLE 'OPER_0D' ;
  7717. LISTOPER . NBOPE1 . 'NAME' = MOT 'MDIA' ;
  7718. LISTOPER . NBOPE1 . 'MAILLAGE'= TSG . 'LAYERS' ;
  7719. LISTOPER . NBOPE1 . 'COEF' = CHPLUW ;
  7720. LISTOPER . NBOPE1 . 'INCO' = TSI ;
  7721. LISTOPER . NBOPE1 . 'DUAL' = 'TWAL' ;
  7722. LISTOPER . NBOPE1 . 'PRIMAL' = 'QR' ;
  7723. LISTOPER . NBOPE1 . 'TYPEL' = 'P=D' ;
  7724. 'FINSI' ;
  7725. *
  7726. * Echange temperature imposée (avec l'exterieur)
  7727. 'SI' ('EXISTE' TSG 'LAYERO');
  7728. *
  7729. NBOPE1 = NBOPE1 + 1 ;
  7730. ICHX4 = ICHX4 + 1 ;
  7731. CHOI4 . ICHX4 = NBOPE1 ;
  7732. LISTOPER . NBOPE1 = TABLE 'OPER_0D' ;
  7733. LISTOPER . NBOPE1 . 'NAME' = MOT 'MDIA' ;
  7734. LISTOPER . NBOPE1 . 'MAILLAGE'= TSG . 'LAYERO' ;
  7735. LISTOPER . NBOPE1 . 'INCO' = TSI ;
  7736. LISTOPER . NBOPE1 . 'COEF' = CHPLUW ;
  7737. LISTOPER . NBOPE1 . 'PRIMAL' = 'QO' ;
  7738. LISTOPER . NBOPE1 . 'DUAL' = 'QO' ;
  7739. LISTOPER . NBOPE1 . 'TYPEL' = 'P=D' ;
  7740. *
  7741. NBOPE1 = NBOPE1 + 1 ;
  7742. ICHX4 = ICHX4 + 1 ;
  7743. CHOI4 . ICHX4 = NBOPE1 ;
  7744. LISTOPER . NBOPE1 = TABLE 'OPER_0D' ;
  7745. LISTOPER . NBOPE1 . 'NAME' = MOT 'MDIA' ;
  7746. LISTOPER . NBOPE1 . 'MAILLAGE'= TSG . 'LAYERO' ;
  7747. LISTOPER . NBOPE1 . 'INCO' = TSI ;
  7748. LISTOPER . NBOPE1 . 'COEF' = ECHAW1 ;
  7749. LISTOPER . NBOPE1 . 'PRIMAL' = 'TWAL' ;
  7750. LISTOPER . NBOPE1 . 'DUAL' = 'QO' ;
  7751. LISTOPER . NBOPE1 . 'TYPEL' = 'P=D' ;
  7752. *
  7753. NBOPE1 = NBOPE1 + 1 ;
  7754. ICHX4 = ICHX4 + 1 ;
  7755. CHOI4 . ICHX4 = NBOPE1 ;
  7756. LISTOPER . NBOPE1 = TABLE 'OPER_0D' ;
  7757. LISTOPER . NBOPE1 . 'NAME' = MOT 'MDIA' ;
  7758. LISTOPER . NBOPE1 . 'MAILLAGE'= TSG . 'LAYERO' ;
  7759. LISTOPER . NBOPE1 . 'INCO' = TSI ;
  7760. LISTOPER . NBOPE1 . 'COEF' = CHPLUW ;
  7761. LISTOPER . NBOPE1 . 'PRIMAL' = 'QO' ;
  7762. LISTOPER . NBOPE1 . 'DUAL' = 'TWAL' ;
  7763. LISTOPER . NBOPE1 . 'TYPEL' = 'P=D' ;
  7764. *
  7765. 'FINSI' ;
  7766. *
  7767. * Voir to_bo2.procedure
  7768. *
  7769. 'FINSI' ;
  7770. *
  7771. 'FINP' ICHX1 ICHX2 ICHX3 ICHX4 NBOPE1 ;
  7772. ***********************************************************************
  7773. ***********************************************************************
  7774. ** **
  7775. ** Version du 19/11/2014 finalisée le 16/12/2014 **
  7776. ** **
  7777. ***********************************************************************
  7778. *
  7779. 'OPTI' 'ECHO' 1 ;
  7780. 'MESS' ' ' ;
  7781. *
  7782. *- Nom du fichier de données
  7783. *
  7784. FILENAME = 'CHAINE' DIVERS '/test_junc_1.data' ;
  7785. 'TEMPS' 'ZERO';
  7786. *
  7787. *======================================================================
  7788. *
  7789. * INITIALISATIONS
  7790. *
  7791. *======================================================================
  7792. *
  7793. IDIM = 2 ;
  7794. 'OPTI' 'DIME' IDIM 'ELEM' 'SEG2' ;
  7795. *
  7796. 'OPTI' 'TRAC' 'PS' ;
  7797. *
  7798. *- Nombre maximum d'itérations dans la boucle interne
  7799. *
  7800. INSTEP = 100 ;
  7801. *
  7802. *- Création de la table INPUT (lecture du fichier de données)
  7803. *
  7804. INPUT = TO_INPUT FILENAME ;
  7805. 'SI' ((INPUT . 'ERROR') 'NEG' 0) ;
  7806. 'MESS' ' ';
  7807. 'MESS' ' ------------------------------------------------';
  7808. 'MESS' ' ERROR ' (INPUT . 'ERROR') ' IN PROCEDURE TO_INPUT !';
  7809. 'MESS' ' ------------------------------------------------';
  7810. 'MESS' ' ';
  7811. 'ERRE' 5 ;
  7812. 'FIN' ;
  7813. 'FINSI' ;
  7814. *
  7815. *- Création de la table SET (ensemble des champs)
  7816. *
  7817. SET = TO_FIELD INPUT ;
  7818. 'SI' ((SET . 'ERROR') 'NEG' 0) ;
  7819. 'MESS' ' ';
  7820. 'MESS' ' ---------------------------------------------------';
  7821. 'MESS' ' ERROR ' (SET . 'ERROR') ' IN PROCEDURE TO_FIELD !';
  7822. 'MESS' ' ---------------------------------------------------';
  7823. 'MESS' ' ';
  7824. 'ERRE' 5 ;
  7825. 'FIN' ;
  7826. 'FINSI' ;
  7827. *
  7828. *- Nom du fichier de sauvegarde
  7829. *
  7830. *'OPTI' 'SAUV' (SET . 'TIMECALC' . 'SAVEFILE') ;
  7831. *
  7832. *- Affichage des données de la table SET
  7833. *
  7834. ERROR1 = TO_PRINT SET INPUT 'ALL' 0 ;
  7835. 'SI' (ERROR1 'NEG' 0 ) ;
  7836. 'ERRE' 5 ;
  7837. 'FIN' ;
  7838. 'FINSI' ;
  7839. LISTOPER = 'TABLE' 'OPERATORS' ;
  7840. NBOPE1 = 0 ;
  7841. NBCELL = SET . 'GEOINF' . 'NBCELL' ;
  7842. NBCOMP1 = 'DIME' (SET . 'COMPONENT') ;
  7843. ICHX1 = 0 ;
  7844. ICHX2 = 0 ;
  7845. ICHX3 = 0 ;
  7846. ICHX4 = 0 ;
  7847. CHOI1 = 'TABLE' ;
  7848. CHOI2 = 'TABLE' ;
  7849. CHOI3 = 'TABLE' ;
  7850. CHOI4 = 'TABLE' ;
  7851. *
  7852. LJUNC1 = 'EXISTE' (SET . 'GEOINF') 'JUNCTION' ;
  7853. LWALL1 = 'EXISTE' (SET . 'GEOINF') 'WALL' ;
  7854. LJULI1 = 'EXISTE' (SET . 'GEOINF') 'JULIQ' ;
  7855. LSUMP1 = 'EXISTE' (SET . 'GEOINF') 'LAYERS' ;
  7856. LCELL1 = 'EXISTE' (SET . 'GEOINF') 'LAYERC' ;
  7857. LCOND1 = 'EXISTE' (SET . 'PHYSICAL') 'CONDENSE' ;
  7858. LMLIQ1 = 'EXISTE' (SET . 'INCO') 'MLIQ' ;
  7859. LPRESI = 'EXISTE' (SET . 'INCO') 'Y1' ;
  7860. *
  7861. *- Initialisation de quelques champs par points
  7862. *
  7863. VOLU1 = SET . 'DATA' . 'VOL' ;
  7864. CHPLU1 = 'MANU' 'CHPO' (SET . 'GEOINF' . 'CELL') 1 'SCAL' 1.D0
  7865. 'NATURE' 'DISCRET' ;
  7866. CHMOI1 = 'MANU' 'CHPO' (SET . 'GEOINF' . 'CELL') 1 'SCAL' -1.D0
  7867. 'NATURE' 'DISCRET' ;
  7868. 'SI' LJUNC1 ;
  7869. CHGZ11 = 'COOR' IDIM (SET . 'GEOINF' . 'CELL') ;
  7870. CHGZ12 = 'COOR' IDIM (SET . 'GEOINF' . 'JUNCTION') ;
  7871. CHPGZ1 = (SET . 'PHYSICAL' . 'GRAVITY') * (CHGZ11 + CHGZ12) ;
  7872. 'FINSI' ;
  7873. 'SI' LWALL1 ;
  7874. AREAW1 = -1.D0 * (SET . 'DATA' . 'AREAW') ;
  7875. 'FINSI' ;
  7876. 'SI' LMLIQ1 ;
  7877. NBOPE1 = NBOPE1 + 1 ;
  7878. ICHX1 = ICHX1 + 1 ;
  7879. CHOI1 . ICHX1 = NBOPE1 ;
  7880. LISTOPER . NBOPE1 = TABLE 'OPER_0D' ;
  7881. LISTOPER . NBOPE1 . 'NAME' = 'MOT' 'MDIA' ;
  7882. LISTOPER . NBOPE1 . 'MAILLAGE'= SET . 'GEOINF' . 'CELL';
  7883. LISTOPER . NBOPE1 . 'INCO' = SET . 'INCO' ;
  7884. LISTOPER . NBOPE1 . 'COEF' = CHPLU1 ;
  7885. LISTOPER . NBOPE1 . 'PRIMAL' = 'HLIQ' ;
  7886. LISTOPER . NBOPE1 . 'DUAL' = 'HLIQ' ;
  7887. LISTOPER . NBOPE1 . 'TYPEL' = 'P=D' ;
  7888. 'FINSI' ;
  7889. ************************************************************************
  7890. * Enthalpie specifique du gaz (inconnue duale : HGAS)
  7891. ************************************************************************
  7892. NBOPE1 = NBOPE1 + 1 ;
  7893. ICHX1 = ICHX1 + 1 ;
  7894. CHOI1 . ICHX1 = NBOPE1 ;
  7895. LISTOPER . NBOPE1 = TABLE 'OPER_0D' ;
  7896. LISTOPER . NBOPE1 . 'NAME' = 'MOT' 'MDIA' ;
  7897. LISTOPER . NBOPE1 . 'MAILLAGE'= SET . 'GEOINF' . 'CELL';
  7898. LISTOPER . NBOPE1 . 'INCO' = SET . 'INCO' ;
  7899. LISTOPER . NBOPE1 . 'COEF' = CHPLU1 ;
  7900. LISTOPER . NBOPE1 . 'PRIMAL' = 'HGAS' ;
  7901. LISTOPER . NBOPE1 . 'DUAL' = 'HGAS' ;
  7902. LISTOPER . NBOPE1 . 'TYPEL' = 'P=D' ;
  7903. ***********************************************************************
  7904. * Equation de conservation de la masse de chaque constituant
  7905. * Pour chaque constituant, la masse volumique NAMR1 est la DUALE
  7906. ***********************************************************************
  7907. 'REPETER' BLO100 NBCOMP1 ;
  7908. NAMC1 = SET . 'COMPONENT' . &BLO100 ;
  7909. NAMR1 = 'CHAINE' 'R' NAMC1 ;
  7910. *
  7911. *---------------------------------------------------- dérivée en temps
  7912. NBOPE1 = NBOPE1 + 1 ;
  7913. ICHX2 = ICHX2 + 1 ;
  7914. CHOI2 . ICHX2 = NBOPE1 ;
  7915. LISTOPER . NBOPE1 = TABLE 'OPER_0D' ;
  7916. LISTOPER . NBOPE1 . 'NAME' = 'MOT' TO_DFDT ;
  7917. LISTOPER . NBOPE1 . 'MAILLAGE'= SET . 'GEOINF' . 'CELL' ;
  7918. LISTOPER . NBOPE1 . 'INCO' = SET . 'INCO' ;
  7919. LISTOPER . NBOPE1 . 'MULT' = VOLU1 ;
  7920. LISTOPER . NBOPE1 . 'DT' = 'DT' ;
  7921. LISTOPER . NBOPE1 . 'DUAL' = NAMR1 ;
  7922. *
  7923. *------------------------------------------ transport par convection
  7924. 'SI' LJUNC1 ;
  7925. NBOPE1 = NBOPE1 + 1 ;
  7926. ICHX3 = ICHX3 + 1 ;
  7927. CHOI3 . ICHX3 = NBOPE1 ;
  7928. LISTOPER . NBOPE1 = TABLE 'OPER_0D' ;
  7929. LISTOPER . NBOPE1 . 'NAME' = 'MOT' 'KONV' ;
  7930. LISTOPER . NBOPE1 . 'GEOINF' = SET . 'GEOINF' ;
  7931. LISTOPER . NBOPE1 . 'INCO' = SET . 'INCO' ;
  7932. LISTOPER . NBOPE1 . 'MULT1' = 'XUNRGAS1' ;
  7933. LISTOPER . NBOPE1 . 'FLUX' = 'QCEL' ;
  7934. LISTOPER . NBOPE1 . 'OPTION' = 'DECENTRE' ;
  7935. LISTOPER . NBOPE1 . 'DUAL' = NAMR1 ;
  7936. 'FINSI' ;
  7937. *
  7938. *------------- Flux de masse lié à la condensation dans le cas de l'eau
  7939. 'SI' ('EGA' NAMR1 'RH2O') ;
  7940. 'SI' (LWALL1 'ET' LCOND1 'ET' LCELL1) ;
  7941. NBOPE1 = NBOPE1 + 1 ;
  7942. ICHX3 = ICHX3 + 1 ;
  7943. CHOI3 . ICHX3 = NBOPE1 ;
  7944. LISTOPER . NBOPE1 = TABLE 'OPER_0D' ;
  7945. LISTOPER . NBOPE1 . 'NAME' = 'MOT' 'MDIA' ;
  7946. LISTOPER . NBOPE1 . 'MAILLAGE'= SET . 'GEOINF' .'CELLAYW';
  7947. LISTOPER . NBOPE1 . 'INCO' = SET . 'INCO' ;
  7948. LISTOPER . NBOPE1 . 'COEF' = 'XALAT1' ;
  7949. LISTOPER . NBOPE1 . 'PRIMAL' = 'QW' ;
  7950. LISTOPER . NBOPE1 . 'DUAL' = 'RH2O' ;
  7951. LISTOPER . NBOPE1 . 'TYPEL' = 'DP' ;
  7952. 'FINSI' ;
  7953. 'FINSI' ;
  7954. 'FIN' BLO100 ;
  7955. NBOPE1 = NBOPE1 + 1 ;
  7956. ICHX1 = ICHX1 + 1 ;
  7957. CHOI1 . ICHX1 = NBOPE1 ;
  7958. LISTOPER . NBOPE1 = TABLE 'OPER_0D' ;
  7959. LISTOPER . NBOPE1 . 'NAME' = 'MOT' 'MDIA' ;
  7960. LISTOPER . NBOPE1 . 'MAILLAGE'= SET . 'GEOINF' . 'CELL';
  7961. LISTOPER . NBOPE1 . 'INCO' = SET . 'INCO' ;
  7962. LISTOPER . NBOPE1 . 'COEF' = CHPLU1 ;
  7963. LISTOPER . NBOPE1 . 'PRIMAL' = 'RGAS' ;
  7964. LISTOPER . NBOPE1 . 'DUAL' = 'RGAS' ;
  7965. LISTOPER . NBOPE1 . 'TYPEL' = 'P=D' ;
  7966. 'REPETER' BLO101 NBCOMP1 ;
  7967. NAMC1 = SET . 'COMPONENT' . &BLO101 ;
  7968. NAMR1 = CHAINE 'R' NAMC1 ;
  7969. NBOPE1 = NBOPE1 + 1 ;
  7970. ICHX1 = ICHX1 + 1 ;
  7971. CHOI1 . ICHX1 = NBOPE1 ;
  7972. LISTOPER . NBOPE1 = TABLE 'OPER_0D' ;
  7973. LISTOPER . NBOPE1 . 'NAME' = 'MOT' 'MDIA' ;
  7974. LISTOPER . NBOPE1 . 'MAILLAGE'= SET . 'GEOINF' . 'CELL';
  7975. LISTOPER . NBOPE1 . 'INCO' = SET . 'INCO' ;
  7976. LISTOPER . NBOPE1 . 'COEF' = CHMOI1 ;
  7977. LISTOPER . NBOPE1 . 'PRIMAL' = NAMR1 ;
  7978. LISTOPER . NBOPE1 . 'DUAL' = 'RGAS' ;
  7979. LISTOPER . NBOPE1 . 'TYPEL' = 'P=D' ;
  7980. 'FIN' BLO101 ;
  7981. 'SI' LJUNC1 ;
  7982. *
  7983. *---------------------------------------------------- dérivée en temps
  7984. NBOPE1 = NBOPE1 + 1 ;
  7985. ICHX3 = ICHX3 + 1 ;
  7986. CHOI3 . ICHX3 = NBOPE1 ;
  7987. LISTOPER . NBOPE1 = TABLE 'OPER_0D' ;
  7988. LISTOPER . NBOPE1 . 'NAME' = 'MOT' TO_DFDT ;
  7989. LISTOPER . NBOPE1 . 'MAILLAGE' = SET . 'GEOINF' . 'JUNCTION' ;
  7990. LISTOPER . NBOPE1 . 'INCO' = SET . 'INCO' ;
  7991. LISTOPER . NBOPE1 . 'DT' = 'DT' ;
  7992. LISTOPER . NBOPE1 . 'MULT' = 'QDFDT' ;
  7993. LISTOPER . NBOPE1 . 'DUAL' = 'QCEL' ;
  7994. LISTOPER . NBOPE1 . 'DUA2' = 'QM' ;
  7995. *------------------------------------------------- gradient de pression
  7996. NBOPE1 = NBOPE1 + 1 ;
  7997. ICHX3 = ICHX3 + 1 ;
  7998. CHOI3 . ICHX3 = NBOPE1 ;
  7999. LISTOPER . NBOPE1 = TABLE 'OPER_0D' ;
  8000. LISTOPER . NBOPE1 . 'NAME' = 'MOT' 'KMBT' ;
  8001. LISTOPER . NBOPE1 . 'GEOINF' = SET . 'GEOINF' ;
  8002. LISTOPER . NBOPE1 . 'INCO' = SET . 'INCO' ;
  8003. LISTOPER . NBOPE1 . 'MULT1' = 'QKMBT' ;
  8004. LISTOPER . NBOPE1 . 'PRIMAL' = 'PT' ;
  8005. LISTOPER . NBOPE1 . 'DUAL' = 'QCEL' ;
  8006. *
  8007. *----------------------------------------------------- perte de charge
  8008. NBOPE1 = NBOPE1 + 1 ;
  8009. ICHX3 = ICHX3 + 1 ;
  8010. CHOI3 . ICHX3 = NBOPE1 ;
  8011. LISTOPER . NBOPE1 = TABLE 'OPER_0D' ;
  8012. LISTOPER . NBOPE1 . 'NAME' = 'MOT' 'MDIA' ;
  8013. LISTOPER . NBOPE1 . 'MAILLAGE'= SET . 'GEOINF' . 'JUNCTION';
  8014. LISTOPER . NBOPE1 . 'INCO' = SET . 'INCO' ;
  8015. LISTOPER . NBOPE1 . 'COEF' = 'QMDIA' ;
  8016. LISTOPER . NBOPE1 . 'PRIMAL' = 'QCEL' ;
  8017. LISTOPER . NBOPE1 . 'DUAL' = 'QCEL' ;
  8018. LISTOPER . NBOPE1 . 'TYPEL' = 'P=D' ;
  8019. *
  8020. *------------------------------ terme d'énergie potentielle (RHO*G*Z)
  8021. NBOPE1 = NBOPE1 + 1 ;
  8022. ICHX3 = ICHX3 + 1 ;
  8023. CHOI3 . ICHX3 = NBOPE1 ;
  8024. LISTOPER . NBOPE1 = TABLE 'OPER_0D' ;
  8025. LISTOPER . NBOPE1 . 'NAME' = 'MOT' 'KMBT' ;
  8026. LISTOPER . NBOPE1 . 'GEOINF' = SET . 'GEOINF' ;
  8027. LISTOPER . NBOPE1 . 'INCO' = SET . 'INCO' ;
  8028. LISTOPER . NBOPE1 . 'POTENTIA' = CHPGZ1 ;
  8029. LISTOPER . NBOPE1 . 'MULT1' = 'QKMBT' ;
  8030. LISTOPER . NBOPE1 . 'PRIMAL' = 'RGAS' ;
  8031. LISTOPER . NBOPE1 . 'DUAL' = 'QCEL' ;
  8032. 'FINSI' ;
  8033. NBOPE1 = NBOPE1 + 1 ;
  8034. ICHX1 = ICHX1 + 1 ;
  8035. CHOI1 . ICHX1 = NBOPE1 ;
  8036. LISTOPER . NBOPE1 = TABLE 'OPER_0D' ;
  8037. LISTOPER . NBOPE1 . 'NAME' = 'MOT' 'MDIA' ;
  8038. LISTOPER . NBOPE1 . 'MAILLAGE'= SET . 'GEOINF' . 'CELL';
  8039. LISTOPER . NBOPE1 . 'INCO' = SET . 'INCO' ;
  8040. LISTOPER . NBOPE1 . 'COEF' = CHPLU1 ;
  8041. LISTOPER . NBOPE1 . 'PRIMAL' = 'PT' ;
  8042. LISTOPER . NBOPE1 . 'DUAL' = 'PT' ;
  8043. LISTOPER . NBOPE1 . 'TYPEL' = 'P=D' ;
  8044. *
  8045. *---------------------- deuxième partie de la linéarisation de ROR*T
  8046. NBOPE1 = NBOPE1 + 1 ;
  8047. ICHX3 = ICHX3 + 1 ;
  8048. CHOI3 . ICHX3 = NBOPE1 ;
  8049. LISTOPER . NBOPE1 = TABLE 'OPER_0D' ;
  8050. LISTOPER . NBOPE1 . 'NAME' = 'MOT' 'MDIA' ;
  8051. LISTOPER . NBOPE1 . 'MAILLAGE'= SET . 'GEOINF' . 'CELL';
  8052. LISTOPER . NBOPE1 . 'INCO' = SET . 'INCO' ;
  8053. LISTOPER . NBOPE1 . 'COEF' = 'XROR1' ;
  8054. LISTOPER . NBOPE1 . 'PRIMAL' = 'TGAS' ;
  8055. LISTOPER . NBOPE1 . 'DUAL' = 'PT' ;
  8056. LISTOPER . NBOPE1 . 'TYPEL' = 'P=D' ;
  8057. ***********************************************************************
  8058. * Equation d'état calorifique du mélange (inconnue duale : TGAS)
  8059. ***********************************************************************
  8060. *
  8061. *------------------------------- énergie interne du mélange gazeux UGAS
  8062. NBOPE1 = NBOPE1 + 1 ;
  8063. ICHX1 = ICHX1 + 1 ;
  8064. CHOI1 . ICHX1 = NBOPE1 ;
  8065. LISTOPER . NBOPE1 = TABLE 'OPER_0D' ;
  8066. LISTOPER . NBOPE1 . 'NAME' = 'MOT' 'MDIA' ;
  8067. LISTOPER . NBOPE1 . 'MAILLAGE'= SET . 'GEOINF' . 'CELL';
  8068. LISTOPER . NBOPE1 . 'INCO' = SET . 'INCO' ;
  8069. LISTOPER . NBOPE1 . 'COEF' = CHMOI1 ;
  8070. LISTOPER . NBOPE1 . 'PRIMAL' = 'UGAS' ;
  8071. LISTOPER . NBOPE1 . 'DUAL' = 'TGAS' ;
  8072. LISTOPER . NBOPE1 . 'TYPEL' = 'P=D' ;
  8073. *
  8074. *---------------- première partie de la linéarisation : -1.*VOLUME*ROCV
  8075. NBOPE1 = NBOPE1 + 1 ;
  8076. ICHX3 = ICHX3 + 1 ;
  8077. CHOI3 . ICHX3 = NBOPE1 ;
  8078. LISTOPER . NBOPE1 = TABLE 'OPER_0D' ;
  8079. LISTOPER . NBOPE1 . 'NAME' = 'MOT' 'MDIA' ;
  8080. LISTOPER . NBOPE1 . 'MAILLAGE'= SET . 'GEOINF' . 'CELL';
  8081. LISTOPER . NBOPE1 . 'INCO' = SET . 'INCO' ;
  8082. LISTOPER . NBOPE1 . 'COEF' = 'XVROCV1' ;
  8083. LISTOPER . NBOPE1 . 'PRIMAL' = 'TGAS' ;
  8084. LISTOPER . NBOPE1 . 'DUAL' = 'TGAS' ;
  8085. LISTOPER . NBOPE1 . 'TYPEL' = 'P=D' ;
  8086. NBOPE1 = NBOPE1 + 1 ;
  8087. ICHX2 = ICHX2 + 1 ;
  8088. CHOI2 . ICHX2 = NBOPE1 ;
  8089. LISTOPER . NBOPE1 = TABLE 'OPER_0D' ;
  8090. LISTOPER . NBOPE1 . 'NAME' = 'MOT' TO_DFDT ;
  8091. LISTOPER . NBOPE1 . 'MAILLAGE'= SET . 'GEOINF' . 'CELL' ;
  8092. LISTOPER . NBOPE1 . 'INCO' = SET . 'INCO' ;
  8093. LISTOPER . NBOPE1 . 'MULT' = CHPLU1 ;
  8094. LISTOPER . NBOPE1 . 'DT' = 'DT' ;
  8095. LISTOPER . NBOPE1 . 'DUAL' = 'UGAS' ;
  8096. *
  8097. * --- première partie de la linéarisation ---
  8098. *
  8099. 'SI' LJUNC1 ;
  8100. NBOPE1 = NBOPE1 + 1 ;
  8101. ICHX3 = ICHX3 + 1 ;
  8102. CHOI3 . ICHX3 = NBOPE1 ;
  8103. LISTOPER . NBOPE1 = TABLE 'OPER_0D' ;
  8104. LISTOPER . NBOPE1 . 'NAME' = 'MOT' 'KONV' ;
  8105. LISTOPER . NBOPE1 . 'GEOINF' = SET . 'GEOINF' ;
  8106. LISTOPER . NBOPE1 . 'INCO' = SET . 'INCO' ;
  8107. LISTOPER . NBOPE1 . 'FLUX' = 'QCEL' ;
  8108. LISTOPER . NBOPE1 . 'MULT1' = CHPLU1 ;
  8109. LISTOPER . NBOPE1 . 'OPTION' = 'DECENTRE' ;
  8110. LISTOPER . NBOPE1 . 'PRIMAL' = 'HGAS' ;
  8111. LISTOPER . NBOPE1 . 'DUAL' = 'UGAS' ;
  8112. *
  8113. * --- deuxième partie de la linéarisation ---
  8114. *
  8115. NBOPE1 = NBOPE1 + 1 ;
  8116. ICHX3 = ICHX3 + 1 ;
  8117. CHOI3 . ICHX3 = NBOPE1 ;
  8118. LISTOPER . NBOPE1 = TABLE 'OPER_0D' ;
  8119. LISTOPER . NBOPE1 . 'NAME' = 'MOT' 'KONV' ;
  8120. LISTOPER . NBOPE1 . 'GEOINF' = SET . 'GEOINF' ;
  8121. LISTOPER . NBOPE1 . 'INCO' = SET . 'INCO' ;
  8122. LISTOPER . NBOPE1 . 'FLUX' = 'QCEL' ;
  8123. LISTOPER . NBOPE1 . 'MULT1' = 'XHGAS1' ;
  8124. LISTOPER . NBOPE1 . 'OPTION' = 'CENTRE' ;
  8125. LISTOPER . NBOPE1 . 'PRIMAL' = 'QCEL' ;
  8126. LISTOPER . NBOPE1 . 'DUAL' = 'UGAS' ;
  8127. 'FINSI' ;
  8128. *
  8129. * ---------------------- flux de chaleur spécifique à travers les murs
  8130. *
  8131. 'SI' (LWALL1 'ET' LCELL1) ;
  8132. NBOPE1 = NBOPE1 + 1 ;
  8133. LISTOPER . NBOPE1 = TABLE 'OPER_0D' ;
  8134. LISTOPER . NBOPE1 . 'NAME' = 'MOT' 'MDIA' ;
  8135. LISTOPER . NBOPE1 . 'INCO' = SET . 'INCO' ;
  8136. 'SI' LCOND1 ;
  8137. ICHX3 = ICHX3 + 1 ;
  8138. CHOI3 . ICHX3 = NBOPE1 ;
  8139. LISTOPER . NBOPE1 . 'COEF' = 'XL0DC1' ;
  8140. 'SINON' ;
  8141. ICHX1 = ICHX1 + 1 ;
  8142. CHOI1 . ICHX1 = NBOPE1 ;
  8143. LISTOPER . NBOPE1 . 'COEF' = AREAW1 ;
  8144. 'FINSI' ;
  8145. LISTOPER . NBOPE1 . 'PRIMAL' = 'QW' ;
  8146. LISTOPER . NBOPE1 . 'DUAL' = 'UGAS' ;
  8147. LISTOPER . NBOPE1 . 'MAILLAGE'= SET . 'GEOINF' . 'CELLAYW';
  8148. LISTOPER . NBOPE1 . 'TYPEL' = 'DP' ;
  8149. 'FINSI' ;
  8150. 'SI' LMLIQ1 ;
  8151. *
  8152. *---------------------------------------------------- dérivée en temps
  8153. NBOPE1 = NBOPE1 + 1 ;
  8154. ICHX2 = ICHX2 + 1 ;
  8155. CHOI2 . ICHX2 = NBOPE1 ;
  8156. LISTOPER . NBOPE1 = TABLE 'OPER_0D' ;
  8157. LISTOPER . NBOPE1 . 'NAME' = 'MOT' TO_DFDT ;
  8158. LISTOPER . NBOPE1 . 'MAILLAGE'= SET . 'GEOINF' . 'CELL' ;
  8159. LISTOPER . NBOPE1 . 'INCO' = SET . 'INCO' ;
  8160. LISTOPER . NBOPE1 . 'MULT' = CHPLU1 ;
  8161. LISTOPER . NBOPE1 . 'DT' = 'DT' ;
  8162. LISTOPER . NBOPE1 . 'DUAL' = 'MLIQ' ;
  8163. *
  8164. *-------------------------------- masse d'eau condensée sur les parois
  8165. 'SI' (LWALL1 'ET' LCOND1 'ET' LCELL1) ;
  8166. NBOPE1 = NBOPE1 + 1 ;
  8167. ICHX3 = ICHX3 + 1 ;
  8168. CHOI3 . ICHX3 = NBOPE1 ;
  8169. LISTOPER . NBOPE1 = TABLE 'OPER_0D' ;
  8170. LISTOPER . NBOPE1 . 'NAME' = 'MOT' 'MDIA' ;
  8171. LISTOPER . NBOPE1 . 'MAILLAGE'= SET . 'GEOINF' . 'CELLAYW' ;
  8172. LISTOPER . NBOPE1 . 'INCO' = SET . 'INCO' ;
  8173. LISTOPER . NBOPE1 . 'COEF' = 'YALAT1' ;
  8174. LISTOPER . NBOPE1 . 'PRIMAL' = 'QW' ;
  8175. LISTOPER . NBOPE1 . 'DUAL' = 'MLIQ' ;
  8176. LISTOPER . NBOPE1 . 'TYPEL' = 'DP' ;
  8177. 'FINSI' ;
  8178. *
  8179. *--------------------------------- masse d'eau des jonctions liquides
  8180. 'SI' LJULI1 ;
  8181. NBOPE1 = NBOPE1 + 1 ;
  8182. ICHX3 = ICHX3 + 1 ;
  8183. CHOI3 . ICHX3 = NBOPE1 ;
  8184. LISTOPER . NBOPE1 = TABLE 'OPER_0D' ;
  8185. LISTOPER . NBOPE1 . 'NAME' = 'MOT' 'KONV' ;
  8186. LISTOPER . NBOPE1 . 'GEOINF' = SET . 'GEOINF' ;
  8187. LISTOPER . NBOPE1 . 'INCO' = SET . 'INCO' ;
  8188. LISTOPER . NBOPE1 . 'MULT1' = 'XUNVLIQ1' ;
  8189. LISTOPER . NBOPE1 . 'FLUX' = 'QLIQ' ;
  8190. LISTOPER . NBOPE1 . 'OPTION' = 'DECENTRE' ;
  8191. LISTOPER . NBOPE1 . 'DUAL' = 'MLIQ' ;
  8192. 'FINSI' ;
  8193. 'FINSI' ;
  8194. 'SI' LMLIQ1 ;
  8195. *
  8196. *---------------------------------------------------- dérivée en temps
  8197. NBOPE1 = NBOPE1 + 1 ;
  8198. ICHX2 = ICHX2 + 1 ;
  8199. CHOI2 . ICHX2 = NBOPE1 ;
  8200. LISTOPER . NBOPE1 = TABLE 'OPER_0D' ;
  8201. LISTOPER . NBOPE1 . 'NAME' = 'MOT' TO_DFDT ;
  8202. LISTOPER . NBOPE1 . 'MAILLAGE'= SET . 'GEOINF' . 'CELL' ;
  8203. LISTOPER . NBOPE1 . 'INCO' = SET . 'INCO' ;
  8204. LISTOPER . NBOPE1 . 'MULT' = CHPLU1 ;
  8205. LISTOPER . NBOPE1 . 'DT' = 'DT' ;
  8206. LISTOPER . NBOPE1 . 'DUAL' = 'ULIQ' ;
  8207. *
  8208. *--------------------------- énergie de l'eau condensée sur les parois
  8209. 'SI' (LWALL1 'ET' LCOND1 'ET' LCELL1) ;
  8210. NBOPE1 = NBOPE1 + 1 ;
  8211. ICHX3 = ICHX3 + 1 ;
  8212. CHOI3 . ICHX3 = NBOPE1 ;
  8213. LISTOPER . NBOPE1 = TABLE 'OPER_0D' ;
  8214. LISTOPER . NBOPE1 . 'NAME' = 'MOT' 'MDIA' ;
  8215. LISTOPER . NBOPE1 . 'MAILLAGE'= SET . 'GEOINF' .'CELLAYW' ;
  8216. LISTOPER . NBOPE1 . 'INCO' = SET . 'INCO' ;
  8217. LISTOPER . NBOPE1 . 'COEF' = 'YL0DC1' ;
  8218. LISTOPER . NBOPE1 . 'PRIMAL' = 'QW' ;
  8219. LISTOPER . NBOPE1 . 'DUAL' = 'ULIQ' ;
  8220. LISTOPER . NBOPE1 . 'TYPEL' = 'DP' ;
  8221. 'FINSI' ;
  8222. *
  8223. *----------------------------- énergie de l'eau des jonctions liquides
  8224. 'SI' LJULI1 ;
  8225. NBOPE1 = NBOPE1 + 1 ;
  8226. ICHX3 = ICHX3 + 1 ;
  8227. CHOI3 . ICHX3 = NBOPE1 ;
  8228. LISTOPER . NBOPE1 = TABLE 'OPER_0D' ;
  8229. LISTOPER . NBOPE1 . 'NAME' = 'MOT' 'KONV' ;
  8230. LISTOPER . NBOPE1 . 'GEOINF' = SET . 'GEOINF' ;
  8231. LISTOPER . NBOPE1 . 'INCO' = SET . 'INCO' ;
  8232. LISTOPER . NBOPE1 . 'MULT1' = 'XROLIQ1' ;
  8233. LISTOPER . NBOPE1 . 'FLUX' = 'QLIQ' ;
  8234. LISTOPER . NBOPE1 . 'OPTION' = 'DECENTRE' ;
  8235. LISTOPER . NBOPE1 . 'PRIMAL' = 'HLIQ' ;
  8236. LISTOPER . NBOPE1 . 'DUAL' = 'ULIQ' ;
  8237. 'FINSI' ;
  8238. * ---------------------- flux de chaleur spécifique à travers les murs
  8239. 'SI' (LWALL1 'ET' LSUMP1) ;
  8240. NBOPE1 = NBOPE1 + 1 ;
  8241. ICHX1 = ICHX1 + 1 ;
  8242. CHOI1 . ICHX1 = NBOPE1 ;
  8243. LISTOPER . NBOPE1 = TABLE 'OPER_0D' ;
  8244. LISTOPER . NBOPE1 . 'NAME' = 'MOT' 'MDIA' ;
  8245. LISTOPER . NBOPE1 . 'INCO' = SET . 'INCO' ;
  8246. LISTOPER . NBOPE1 . 'COEF' =
  8247. ('REDU' AREAW1 (SET.'GEOINF'.'LAYERS')) ;
  8248. LISTOPER . NBOPE1 . 'PRIMAL' = 'QS' ;
  8249. LISTOPER . NBOPE1 . 'DUAL' = 'ULIQ' ;
  8250. LISTOPER . NBOPE1 . 'MAILLAGE'= SET . 'GEOINF' . 'CELLAYS';
  8251. LISTOPER . NBOPE1 . 'TYPEL' = 'DP' ;
  8252. 'FINSI' ;
  8253. 'FINSI' ;
  8254. ***********************************************************************
  8255. * Equation de la chaleur dans les murs (inconnue duale : TWAL)
  8256. * Def. densité de flux de chaleur spécifique (inconnue duale : QW)
  8257. ***********************************************************************
  8258. 'SI' LWALL1 ;
  8259. ICHX1 ICHX2 ICHX3 ICHX4 NBOPE1 = TO_WALL SET LISTOPER
  8260. CHOI1 CHOI2 CHOI3 CHOI4 ICHX1 ICHX2 ICHX3 ICHX4 NBOPE1 ;
  8261. 'FINSI' ;
  8262. *======================================================================
  8263. * PUISSANCE RESIDUELLE
  8264. *======================================================================
  8265. *
  8266. 'SI' LPRESI ;
  8267. *
  8268. *------------------------------ Y1 : dérivée en temps
  8269. NBOPE1 = NBOPE1 + 1 ;
  8270. ICHX2 = ICHX2 + 1 ;
  8271. CHOI2 . ICHX2 = NBOPE1 ;
  8272. LISTOPER . NBOPE1 = TABLE 'OPER_0D' ;
  8273. LISTOPER . NBOPE1 . 'NAME' = 'MOT' TO_DFDT ;
  8274. LISTOPER . NBOPE1 . 'MAILLAGE'= SET . 'GEOINF' . 'CELL' ;
  8275. LISTOPER . NBOPE1 . 'INCO' = SET . 'INCO' ;
  8276. LISTOPER . NBOPE1 . 'MULT' = CHPLU1 ;
  8277. LISTOPER . NBOPE1 . 'DT' = 'DT' ;
  8278. LISTOPER . NBOPE1 . 'DUAL' = 'Y1' ;
  8279. *
  8280. *------------------------------ Y2 : dérivée en temps
  8281. NBOPE1 = NBOPE1 + 1 ;
  8282. ICHX2 = ICHX2 + 1 ;
  8283. CHOI2 . ICHX2 = NBOPE1 ;
  8284. LISTOPER . NBOPE1 = TABLE 'OPER_0D' ;
  8285. LISTOPER . NBOPE1 . 'NAME' = 'MOT' TO_DFDT ;
  8286. LISTOPER . NBOPE1 . 'MAILLAGE'= SET . 'GEOINF' . 'CELL' ;
  8287. LISTOPER . NBOPE1 . 'INCO' = SET . 'INCO' ;
  8288. LISTOPER . NBOPE1 . 'MULT' = CHPLU1 ;
  8289. LISTOPER . NBOPE1 . 'DT' = 'DT' ;
  8290. LISTOPER . NBOPE1 . 'DUAL' = 'Y2' ;
  8291. *
  8292. *----------------------------- Y3 : dérivée en temps
  8293. NBOPE1 = NBOPE1 + 1 ;
  8294. ICHX2 = ICHX2 + 1 ;
  8295. CHOI2 . ICHX2 = NBOPE1 ;
  8296. LISTOPER . NBOPE1 = TABLE 'OPER_0D' ;
  8297. LISTOPER . NBOPE1 . 'NAME' = 'MOT' TO_DFDT ;
  8298. LISTOPER . NBOPE1 . 'MAILLAGE'= SET . 'GEOINF' . 'CELL' ;
  8299. LISTOPER . NBOPE1 . 'INCO' = SET . 'INCO' ;
  8300. LISTOPER . NBOPE1 . 'MULT' = CHPLU1 ;
  8301. LISTOPER . NBOPE1 . 'DT' = 'DT' ;
  8302. LISTOPER . NBOPE1 . 'DUAL' = 'Y3' ;
  8303. *
  8304. 'SI' LJUNC1 ;
  8305. *
  8306. *---------------------------- Y1 : transport par convection
  8307. NBOPE1 = NBOPE1 + 1 ;
  8308. ICHX3 = ICHX3 + 1 ;
  8309. CHOI3 . ICHX3 = NBOPE1 ;
  8310. LISTOPER . NBOPE1 = TABLE 'OPER_0D' ;
  8311. LISTOPER . NBOPE1 . 'NAME' = 'MOT' 'KONV' ;
  8312. LISTOPER . NBOPE1 . 'GEOINF' = SET . 'GEOINF' ;
  8313. LISTOPER . NBOPE1 . 'INCO' = SET . 'INCO' ;
  8314. LISTOPER . NBOPE1 . 'MULT1' = 'XUNMGAS1' ;
  8315. LISTOPER . NBOPE1 . 'FLUX' = 'QCEL' ;
  8316. LISTOPER . NBOPE1 . 'OPTION' = 'DECENTRE' ;
  8317. LISTOPER . NBOPE1 . 'DUAL' = 'Y1' ;
  8318. *
  8319. *---------------------------- Y2 : transport par convection
  8320. NBOPE1 = NBOPE1 + 1 ;
  8321. ICHX3 = ICHX3 + 1 ;
  8322. CHOI3 . ICHX3 = NBOPE1 ;
  8323. LISTOPER . NBOPE1 = TABLE 'OPER_0D' ;
  8324. LISTOPER . NBOPE1 . 'NAME' = 'MOT' 'KONV' ;
  8325. LISTOPER . NBOPE1 . 'GEOINF' = SET . 'GEOINF' ;
  8326. LISTOPER . NBOPE1 . 'INCO' = SET . 'INCO' ;
  8327. LISTOPER . NBOPE1 . 'MULT1' = 'XUNMGAS1' ;
  8328. LISTOPER . NBOPE1 . 'FLUX' = 'QCEL' ;
  8329. LISTOPER . NBOPE1 . 'OPTION' = 'DECENTRE' ;
  8330. LISTOPER . NBOPE1 . 'DUAL' = 'Y2' ;
  8331. *
  8332. *---------------------------- Y3 : transport
  8333. 'SI' LJULI1 ;
  8334. NBOPE1 = NBOPE1 + 1 ;
  8335. ICHX3 = ICHX3 + 1 ;
  8336. CHOI3 . ICHX3 = NBOPE1 ;
  8337. LISTOPER . NBOPE1 = TABLE 'OPER_0D' ;
  8338. LISTOPER . NBOPE1 . 'NAME' = 'MOT' 'KONV' ;
  8339. LISTOPER . NBOPE1 . 'GEOINF' = SET . 'GEOINF' ;
  8340. LISTOPER . NBOPE1 . 'INCO' = SET . 'INCO' ;
  8341. LISTOPER . NBOPE1 . 'MULT1' = 'XUNMLIQ1' ;
  8342. LISTOPER . NBOPE1 . 'FLUX' = 'QLIQ' ;
  8343. LISTOPER . NBOPE1 . 'OPTION' = 'DECENTRE' ;
  8344. LISTOPER . NBOPE1 . 'DUAL' = 'Y3' ;
  8345. 'FINSI' ;
  8346. *
  8347. 'FINSI' ;
  8348. *
  8349. *---------------------------- Rabattemement pour Y2
  8350. NBOPE1 = NBOPE1 + 1 ;
  8351. ICHX3 = ICHX3 + 1 ;
  8352. CHOI3 . ICHX3 = NBOPE1 ;
  8353. LISTOPER . NBOPE1 = TABLE 'OPER_0D' ;
  8354. LISTOPER . NBOPE1 . 'NAME' = 'MOT' 'MDIA' ;
  8355. LISTOPER . NBOPE1 . 'MAILLAGE'= SET . 'GEOINF' .'CELL' ;
  8356. LISTOPER . NBOPE1 . 'INCO' = SET . 'INCO' ;
  8357. LISTOPER . NBOPE1 . 'COEF' = 'XLAMBDA' ;
  8358. LISTOPER . NBOPE1 . 'PRIMAL' = 'Y2' ;
  8359. LISTOPER . NBOPE1 . 'DUAL' = 'Y2' ;
  8360. LISTOPER . NBOPE1 . 'TYPEL' = 'P=D';
  8361. *
  8362. *---------------------------- Rabattemement pour Y2 dans le puisard
  8363. NBOPE1 = NBOPE1 + 1 ;
  8364. ICHX3 = ICHX3 + 1 ;
  8365. CHOI3 . ICHX3 = NBOPE1 ;
  8366. LISTOPER . NBOPE1 = TABLE 'OPER_0D' ;
  8367. LISTOPER . NBOPE1 . 'NAME' = 'MOT' 'MDIA' ;
  8368. LISTOPER . NBOPE1 . 'MAILLAGE'= SET . 'GEOINF' .'CELL' ;
  8369. LISTOPER . NBOPE1 . 'INCO' = SET . 'INCO' ;
  8370. LISTOPER . NBOPE1 . 'COEF' = 'XMLAMBDA' ;
  8371. LISTOPER . NBOPE1 . 'PRIMAL' = 'Y2' ;
  8372. LISTOPER . NBOPE1 . 'DUAL' = 'Y3' ;
  8373. LISTOPER . NBOPE1 . 'TYPEL' = 'P=D';
  8374. *
  8375. 'FINSI' ;
  8376. *
  8377. *======================================================================
  8378. *
  8379. * GRANDEURS A SAUVEGARDER
  8380. *
  8381. * Voir to_field pour la description
  8382. *
  8383. *======================================================================
  8384. *
  8385. SET . 'HISTO' = 'TABLE' ;
  8386. TCSAUV = 'TABLE' ;
  8387. TCSAUV . 'QW' = 0 ;
  8388. TCSAUV . 'QP' = 0 ;
  8389. TCSAUV . 'QS' = 0 ;
  8390. TCSAUV . 'QR' = 0 ;
  8391. TCSAUV . 'QO' = 0 ;
  8392. *
  8393. *--------------------------- les inconnues duales des tables OPER_0D
  8394. I901 = 0 ;
  8395. 'REPETER' BLO900 NBOPE1 ;
  8396. NAMC1 = LISTOPER . &BLO900 . 'DUAL' ;
  8397. 'SI' ('NON' ('EXISTE' TCSAUV NAMC1)) ;
  8398. I901 = I901 + 1 ;
  8399. TCSAUV . NAMC1 = I901 ;
  8400. SET . 'HISTO' . I901 = NAMC1 ;
  8401. 'FINSI' ;
  8402. 'FIN' BLO900 ;
  8403. *
  8404. *------------------ flux de chaleur entre les faces des murs et les
  8405. *------------------ compartiments, les puisards ou l'exterieur
  8406. 'SI' LWALL1 ;
  8407. I901 = I901 + 1 ;
  8408. SET . 'HISTO' . I901 = 'QWAL' ;
  8409. 'FINSI' ;
  8410. *
  8411. *---------------------- composantes supplémentaires associées à H2O
  8412. 'SI' LMLIQ1 ;
  8413. I901 = I901 + 1 ;
  8414. SET . 'HISTO' . I901 = 'XV' ;
  8415. *---------------------------------------------------------(puisards)
  8416. I901 = I901 + 1 ;
  8417. SET . 'HISTO' . I901 = 'TLIQ' ;
  8418. * I901 = I901 + 1 ;
  8419. * SET . 'HISTO' . I901 = 'RHOL' ;
  8420. 'SI' LJULI1 ;
  8421. I901 = I901 + 1 ;
  8422. SET . 'HISTO' . I901 = 'QLIQ' ;
  8423. 'FINSI' ;
  8424. I901 = I901 + 1 ;
  8425. SET . 'HISTO' . I901 = 'VLIQ' ;
  8426. I901 = I901 + 1 ;
  8427. SET . 'HISTO' . I901 = 'MEVA' ;
  8428. I901 = I901 + 1 ;
  8429. SET . 'HISTO' . I901 = 'QEVA' ;
  8430. I901 = I901 + 1 ;
  8431. SET . 'HISTO' . I901 = 'UEVA' ;
  8432. I901 = I901 + 1 ;
  8433. SET . 'HISTO' . I901 = 'MLS' ;
  8434. I901 = I901 + 1 ;
  8435. SET . 'HISTO' . I901 = 'QLS' ;
  8436. I901 = I901 + 1 ;
  8437. SET . 'HISTO' . I901 = 'ULS' ;
  8438. *---------------------------------------------------- (condensation)
  8439. 'SI' LWALL1 ;
  8440. 'SI' (EXISTE (SET . 'GEOINF') 'LAYERC') ;
  8441. I901 = I901 + 1 ;
  8442. SET . 'HISTO' . I901 = 'ECHA' ;
  8443. I901 = I901 + 1 ;
  8444. SET . 'HISTO' . I901 = 'ALAT' ;
  8445. 'FINSI' ;
  8446. 'FINSI' ;
  8447. *------------------------------------------------------- (aspersion)
  8448. 'SI' (EXISTE (SET . 'INCO') 'MCND') ;
  8449. I901 = I901 + 1 ;
  8450. SET . 'HISTO' . I901 = 'MCND' ;
  8451. I901 = I901 + 1 ;
  8452. SET . 'HISTO' . I901 = 'MEBU' ;
  8453. I901 = I901 + 1 ;
  8454. SET . 'HISTO' . I901 = 'MSPR' ;
  8455. I901 = I901 + 1 ;
  8456. SET . 'HISTO' . I901 = 'UCND' ;
  8457. I901 = I901 + 1 ;
  8458. SET . 'HISTO' . I901 = 'UCNV' ;
  8459. I901 = I901 + 1 ;
  8460. SET . 'HISTO' . I901 = 'UEBU' ;
  8461. I901 = I901 + 1 ;
  8462. SET . 'HISTO' . I901 = 'USPR' ;
  8463. 'FINSI' ;
  8464. *------------------------------------------------------- (combustion)
  8465. 'SI' (EXISTE (SET . 'INCO') 'ECOM') ;
  8466. I901 = I901 + 1 ;
  8467. SET . 'HISTO' . I901 = 'ECOM' ;
  8468. 'FINSI' ;
  8469. *------------------------------------------------------ (recombineur)
  8470. 'SI' (EXISTE (SET . 'INCO') 'TREC') ;
  8471. I901 = I901 + 1 ;
  8472. SET . 'HISTO' . I901 = 'TREC' ;
  8473. I901 = I901 + 1 ;
  8474. SET . 'HISTO' . I901 = 'QREC' ;
  8475. I901 = I901 + 1 ;
  8476. SET . 'HISTO' . I901 = 'TSRE' ;
  8477. I901 = I901 + 1 ;
  8478. SET . 'HISTO' . I901 = 'EREC' ;
  8479. 'FINSI' ;
  8480. 'FINSI';
  8481. *
  8482. *------------------------------------ Cas de la puissance residuelle
  8483. 'SI' (EXISTE (SET . 'INCO') 'Y1') ;
  8484. I901 = I901 + 1 ;
  8485. SET . 'HISTO' . I901 = 'Y1' ;
  8486. I901 = I901 + 1 ;
  8487. SET . 'HISTO' . I901 = 'Y2' ;
  8488. I901 = I901 + 1 ;
  8489. SET . 'HISTO' . I901 = 'Y3' ;
  8490. 'FINSI' ;
  8491. *
  8492. *======================================================================
  8493. *
  8494. * RESOLUTION
  8495. *
  8496. *======================================================================
  8497. *
  8498. TO_EXEC SET LISTOPER CHOI1 CHOI2 CHOI3 CHOI4 ;
  8499. *
  8500. 'FIN' ;
  8501.  
  8502.  
  8503.  
  8504.  
  8505.  
  8506.  
  8507.  
  8508.  
  8509.  
  8510.  
  8511.  
  8512.  
  8513.  

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