Télécharger test_junc_1.dgibi

Retour à la liste

Numérotation des lignes :

  1. *$$$$ TO_DATA1
  2. 'DEBPROC' TO_DATA1 ;
  3. 'ARGU' FILENAME*'MOT' NAMEIN/'MOT' ;
  4. 'MESS' ' ' ;
  5. 'MESS' 'Data acquisition : ' FILENAME ' file.' ;
  6. *
  7. FICH1 = FILENAME ;
  8. 'OPTI' 'ACQU' FICH1 ;
  9. I_GAS = 0 ;
  10. I_INTE = 0 ;
  11. I_NUMBER = 0 ;
  12. NAMEOUT = 'XXXX' ;
  13. 'REPE' blo10 ;
  14. 'ACQU' NAME1 NAME2 ;
  15. 'SI' ('EGA' NAME1 '#') ;
  16. 'FINS' ;
  17. *
  18. 'SI' ('EGA' NAME1 'GAS') ;
  19. I_GAS = 1 ;
  20. 'SI' ('EGA' ('TYPE' NAME2) 'MOT') ;
  21. NAMEOUT = name2 ;
  22. 'SINON' ;
  23. cha1 = 'CHAI' 'File ' FICH1 ': bad GAS type ('
  24. ('TYPE' NAME2) 'instead of MOT)' ;
  25. 'ERRE' cha1 ;
  26. 'QUIT' TO_DATA1 ;
  27. 'FINSI' ;
  28. 'SI' ('EXIS' NAMEIN) ;
  29. NAMEOUT = name2 ;
  30. 'SI' ('NEG' NAME2 NAMEIN) ;
  31. cha1 = 'CHAI' 'File ' FICH1
  32. ': bad gas name (' NAMEOUT 'instead of ' NAMEIN ')' ;
  33. 'ERRE' cha1 ;
  34. 'QUIT' TO_DATA1 ;
  35. 'FINS' ;
  36. 'FINS' ;
  37. 'FINS' ;
  38. *
  39. 'SI' ('EGA' NAME1 'INTERPOLATION') ;
  40. I_INTE = 1 ;
  41. 'SI' (('NEG' NAME2 'STEP') 'ET' ('NEG' NAME2 'LIN')) ;
  42. cha1 = 'CHAI' 'File ' FICH1
  43. ': bad interpolation type (neither STEP nor LIN)' ;
  44. 'ERRE' cha1 ;
  45. 'QUIT' TO_DATA1 ;
  46. 'FINS' ;
  47. IPOL = NAME2 ;
  48. 'FINS' ;
  49. *
  50. 'SI' ('EGA' NAME1 'NUMBER') ;
  51. I_NUMBER = 1 ;
  52. 'SI' ('EGA' ('TYPE' NAME2) 'ENTIER') ;
  53. N1 = NAME2 ;
  54. 'SI' ('<EG' NAME2 1) ;
  55. cha1 = 'CHAI' 'File ' FICH1
  56. ': we want an INTEGER>1 after NUMBER keyword ' ;
  57. 'ERRE' cha1 ;
  58. 'QUIT' TO_DATA1 ;
  59. 'FINS' ;
  60. 'FINS' ;
  61. 'SI' ('EGA' NAME2 'FREE') ;
  62. N1 = 0 ;
  63. 'FINS' ;
  64. 'QUIT' blo10 ;
  65. 'FINS' ;
  66. *
  67. 'FIN' blo10 ;
  68. *
  69. * On teste qu'on a bien tous les mot-clefs
  70. 'SI' ( 'EXIS' NAMEIN) ;
  71. FLAG = I_GAS * I_INTE * I_NUMBER ;
  72. 'SINO' ;
  73. FLAG = I_INTE * I_NUMBER ;
  74. 'FINSI' ;
  75. 'SI' ('EGA' flag 0) ;
  76. 'SI' ('EGA' I_INTE 0) ;
  77. cha1 = 'CHAI' 'File ' FICH1 ': INTERPOLATION keyword is missing' ;
  78. 'ERRE' cha1 ;
  79. 'FINS' ;
  80. 'SI' ('EGA' I_NUMBER 0) ;
  81. cha1 = 'CHAI' 'File ' FICH1 ': NUMBER keyword is missing' ;
  82. 'ERRE' cha1 ;
  83. 'FINS' ;
  84. 'SI' ( 'EXIS' NAMEIN) ;
  85. 'SI' ('EGA' I_GAS 0) ;
  86. cha1 = 'CHAI' 'File ' FICH1 ': GAS keyword is missing' ;
  87. 'ERRE' cha1 ;
  88. 'FINS' ;
  89. 'FINS' ;
  90. 'QUIT' TO_DATA1 ;
  91. 'FINS' ;
  92. *
  93. * Lecture de la source
  94. 'REPE' blo20 ;
  95. 'ACQU' FLOT1 FLOT2 ;
  96. 'SI' (('EGA' ('TYPE' FLOT1) 'FLOTTANT ') 'ET'
  97. ('EGA' ('TYPE' FLOT2) 'FLOTTANT ')) ;
  98. 'QUIT' blo20 ;
  99. 'FINSI' ;
  100. 'SI' ('EGA' ('TYPE' FLOT1) 'MOT') ;
  101. 'SI' ('EGA' FLOT1 'END') ;
  102. cha1 = 'CHAI' 'File ' FICH1
  103. ': END keyword is detected but no data are given' ;
  104. 'ERRE' cha1 ;
  105. 'FINSI' ;
  106. 'FINSI' ;
  107. 'FIN' blo20 ;
  108. PROG1 = 'PROG' FLOT1 ;
  109. PROG2 = 'PROG' 0. ;
  110. PROG4 = 'PROG' FLOT2 ;
  111. *
  112. 'SI' ('EGA' IPOL 'STEP') ;
  113. 'REPE' BOU1 (N1 - 1) ;
  114. 'REPE' blo30 ;
  115. 'ACQU' FLOT4 FLOT5 ;
  116. 'SI' ('EGA' ('TYPE' FLOT4) 'FLOTTANT ') ;
  117. 'QUIT' blo30 ;
  118. 'FINSI' ;
  119. 'SI' ('EGA' ('TYPE' FLOT4) 'MOT') ;
  120. 'QUIT' blo30 ;
  121. 'FINSI' ;
  122. 'FIN' blo30 ;
  123. 'SI' ('EGA' ('TYPE' FLOT4) 'MOT') ;
  124. 'SI' ('EGA' FLOT4 'END') ;
  125. 'QUIT' BOU1 ;
  126. 'SINO' ;
  127. cha1 = 'CHAI' 'File ' FICH1 ': word ' flot4
  128. ': a word is detected instead of a time' ;
  129. 'ERRE' cha1 ;
  130. 'FINSI' ;
  131. 'SINO' ;
  132. DELTAT = FLOT4 - FLOT1 ;
  133. PRECED = &BOU1 ;
  134. 'SI' ('EGA' PRECED 1) ;
  135. VAL2 = FLOT2*DELTAT ;
  136. 'SINO' ;
  137. VAL2 = FLOT2*DELTAT + ('EXTR' PROG2 PRECED) ;
  138. 'FINSI' ;
  139. PROG1 = PROG1 'ET' ('PROG' FLOT4) ;
  140. PROG2 = PROG2 'ET' ('PROG' VAL2 ) ;
  141. PROG4 = PROG4 'ET' ('PROG' FLOT5) ;
  142. FLOT1 = FLOT4 ;
  143. FLOT2 = FLOT5 ;
  144. 'FINSI' ;
  145. 'FIN' BOU1 ;
  146. 'SINON' ;
  147. 'REPE' BOU2 (N1 - 1) ;
  148. 'REPE' blo40 ;
  149. 'ACQU' FLOT4 FLOT5 ;
  150. 'SI' ('EGA' ('TYPE' FLOT4) 'FLOTTANT ') ;
  151. 'QUIT' blo40 ;
  152. 'FINSI' ;
  153. 'SI' ('EGA' ('TYPE' FLOT4) 'MOT') ;
  154. 'QUIT' blo40 ;
  155. 'FINSI' ;
  156. 'FIN' blo40 ;
  157. 'SI' ('EGA' ('TYPE' FLOT4) 'MOT') ;
  158. 'SI' ('EGA' FLOT4 'END') ;
  159. 'QUIT' BOU2 ;
  160. 'SINO' ;
  161. cha1 = 'CHAI' 'File ' FICH1 ': word ' flot4
  162. ': a word is detected instead of a time' ;
  163. 'ERRE' cha1 ;
  164. 'FINSI' ;
  165. 'SINO' ;
  166. DTS2 = FLOT4 - FLOT1 / 2.D0 ;
  167. PRECED = &BOU2 ;
  168. 'SI' ('EGA' PRECED 1) ;
  169. VAL2 = (FLOT2+FLOT5)*DTS2 ;
  170. 'SINO' ;
  171. VAL2 = (FLOT2+FLOT5)*DTS2 + ('EXTR' PROG2 PRECED) ;
  172. 'FINSI' ;
  173. PROG1 = PROG1 'ET' ('PROG' FLOT4) ;
  174. PROG2 = PROG2 'ET' ('PROG' VAL2 ) ;
  175. PROG4 = PROG4 'ET' ('PROG' FLOT5) ;
  176. FLOT1 = FLOT4 ;
  177. FLOT2 = FLOT5 ;
  178. 'FINSI' ;
  179. 'FIN' BOU2 ;
  180. 'FINS' ;
  181. *
  182. EV1 = 'EVOL' 'MANU' PROG1 PROG2 ;
  183. EV3 = 'EVOL' 'MANU' PROG1 PROG4 ;
  184. *
  185. 'RESPROC' EV1 NAMEOUT ;
  186. 'FINPROC' ;
  187.  
  188. *$$$$ OKTPS
  189. 'DEBPROC' OKTPS EV1*'EVOLUTION' LIST1*'LISTREEL' ;
  190. IER = 0 ;
  191. *
  192. TIME = 'EXTR' EV1 'ABSC' ;
  193. TI = 'EXTR' TIME 1 ;
  194. TF = 'EXTR' TIME ('DIME' TIME) ;
  195. TC_IN = 'EXTR' LIST1 1 ;
  196. TC_FIN = 'EXTR' LIST1 ('DIME' LIST1) ;
  197. 'SI' (('<' TF TC_FIN) 'OU' ('>' TI TC_IN)) ;
  198. IER = 1 ;
  199. 'SAUT' 3 'LIGN' ;
  200. 'MESS' 'Le support des temps associe aux data ne contient' ;
  201. 'MESS' 'pas strictement le support des temps de référence.' ;
  202. 'MESS' 'Min/max data :' TI TF ;
  203. 'MESS' 'Min/max ref. :' TC_IN TC_FIN ;
  204. 'FINSI' ;
  205. *
  206. 'FINP' IER ;
  207. *$$$$ BCIMPL
  208. 'DEBPROC' BCIMPL SET*'TABLE' ;
  209. TSB = SET . 'BOUNDARY' ;
  210. TSD = SET . 'DATA' ;
  211. TSG = SET . 'GEOINF' ;
  212. TSI = SET . 'INCO' ;
  213. TSP = SET . 'PHYSICAL' ;
  214. *
  215. DT1 = TSI . 'DT' ;
  216. TIME00 = TSI . 'TIME1' ;
  217. TIME0 = TSI . 'TIME2' ;
  218. *
  219. TAB1 = 'TABLE' ;
  220. 'SI' ('EXIS' TSB 'ISBP') ;
  221. NBCEL1 = 'DIME' TSB . 'ISBP' ;
  222. 'REPE' bloisbp NBCEL1 ;
  223. PTCEL1 = TSB . 'ISBP' . &bloisbp . 'CELL' ;
  224. nbisbp = ('DIME' (TSB . 'ISBP' . &bloisbp)) - 1 ;
  225. MLIQ1 = 'EXTR' (TSI . 'MLIQ') 'MLIQ' PTCEL1 ;
  226. HLIQ1 = 'EXTR' (TSI . 'HLIQ') 'HLIQ' PTCEL1 ;
  227. 'REPE' sisbp nbisbp ;
  228. EV1 = TSB . 'ISBP' . &bloisbp . &sisbp .'EVOLM' ;
  229. XQ00 = 'IPOL' TIME00 EV1 ;
  230. XQ0 = 'IPOL' TIME0 EV1 ;
  231. XQ1 = (XQ0 - XQ00) / DT1 * -1. ;
  232. MLIQ2 = MLIQ1 + (DT1 * XQ1) ;
  233. 'SI' (MLIQ2 '<' 1.) ;
  234. MLIQ2 = 1. ;
  235. XQ10 = XQ1 ;
  236. XQ1 = MLIQ1 - MLIQ2 / DT1 * -1. ;
  237. 'SI' (XQ1 > 0.) ;
  238. XQ1 = 0. ;
  239. 'FINSI' ;
  240. 'MESS' 'Mass flow rate limitation in bcimpl (ISBP): '
  241. xq1 ' instead of ' xq10 ;
  242. 'FINSI' ;
  243. MLIQ1 = MLIQ2 ;
  244. XE1 = HLIQ1 * XQ1 ;
  245. 'SI' ( 'EGA' set . 'IMPR' 1) ;
  246. 'MESS' 'Debit massique extrait (ISBP) :' xq1 ;
  247. 'MESS' 'Debit energ. extrait :' xe1 ;
  248. 'FINSI' ;
  249. 'SI' ('EGA' &sisbp 1) ;
  250. CHCEL1 = 'MANU' 'CHPO' PTCEL1 2
  251. 'MLIQ' XQ1 'ULIQ' XE1 'NATURE' 'DISCRET' ;
  252. 'SINON' ;
  253. CHCEL1 = CHCEL1 'ET' ('MANU' 'CHPO' PTCEL1 2
  254. 'MLIQ' XQ1 'ULIQ' XE1 'NATURE' 'DISCRET') ;
  255. 'FINSI' ;
  256. STR1 = TSB . 'ISBP' . &bloisbp . &sisbp . 'CUMULM' ;
  257. DIM1 = 'DIME' str1 ;
  258. EVE0 = 'EXTR' str1 dim1 ;
  259. EVE1 = EVE0 + (DT1 * XQ1) ;
  260. TSB . 'ISBP' . &bloisbp . &sisbp . 'CUMULM' = STR1 'ET' ('PROG' EVE1) ;
  261. STR1 = TSB . 'ISBP' . &bloisbp . &sisbp . 'CUMULE' ;
  262. EVE0 = 'EXTR' str1 dim1 ;
  263. EVE1 = EVE0 + (DT1 * XE1) ;
  264. TSB . 'ISBP' . &bloisbp . &sisbp . 'CUMULE' = STR1 'ET' ('PROG' EVE1) ;
  265. 'FIN' sisbp ;
  266. 'SI' ('EXIS' TAB1 'RHS') ;
  267. TAB1 . 'RHS' = (TAB1 . 'RHS') + CHCEL1 ;
  268. 'SINON' ;
  269. TAB1 . 'RHS' = CHCEL1 ;
  270. 'FINSI' ;
  271. 'FIN' bloisbp ;
  272. 'FINSI' ;
  273. 'SI' ('EXIS' TSB 'OUT') ;
  274. NBCOMP1 = 'DIME' (SET . 'COMPONENT') ;
  275. NBCEL1 = 'DIME' (TSB . 'OUT') ;
  276. 'REPE' bloout NBCEL1 ;
  277. PTCEL1 = TSB . 'OUT' . &bloout . 'CELL' ;
  278. nbout = ('DIME' (TSB . 'OUT' . &bloout)) - 1 ;
  279. HGAS1 = 'EXTR' (TSI . 'HGAS') 'HGAS' PTCEL1 ;
  280. RGAS1 = 'EXTR' (TSI . 'RGAS') 'RGAS' PTCEL1 ;
  281. VOL1 = 'EXTR' (TSD . 'VOL') 'SCAL' PTCEL1 ;
  282. MGAS1 = RGAS1 * VOL1 ;
  283. 'REPE' sout nbout ;
  284. EV1 = TSB . 'OUT' . &bloout . &sout .'EVOLM' ;
  285. XQ00 = 'IPOL' TIME00 EV1 ;
  286. XQ0 = 'IPOL' TIME0 EV1 ;
  287. XQ1 = (XQ0 - XQ00) / DT1 * -1. ;
  288. MGAS2 = MGAS1 + (DT1 * XQ1) ;
  289. 'SI' (MGAS2 '<' (MGAS1 / 2.)) ;
  290. MGAS2 = MGAS1 / 2. ;
  291. XQ10 = XQ1 ;
  292. XQ1 = MGAS1 - MGAS2 / DT1 * -1. ;
  293. 'SI' (XQ1 > 0.) ;
  294. XQ1 = 0. ;
  295. 'FINSI' ;
  296. 'MESS' 'Mass flow rate limitation in bcimpl (OUT): '
  297. xq1 ' instead of ' xq10 ;
  298. 'FINSI' ;
  299. MGAS1 = MGAS2 ;
  300. XE1 = HGAS1 * XQ1 ;
  301. 'SI' ( 'EGA' set . 'IMPR' 1) ;
  302. 'MESS' 'Debit massique extrait (OUT) :' xq1 ;
  303. 'MESS' 'Debit energ. extrait :' xe1 ;
  304. 'FINSI' ;
  305. STR1 = TSB . 'OUT' . &bloout . &sout . 'CUMULM' ;
  306. DIM1 = 'DIME' str1 ;
  307. EVE0 = 'EXTR' str1 dim1 ;
  308. EVE1 = EVE0 + (DT1 * XQ1) ;
  309. TSB . 'OUT' . &bloout . &sout . 'CUMULM' = STR1 'ET' ('PROG' EVE1) ;
  310. STR1 = TSB . 'OUT' . &bloout . &sout . 'CUMULE' ;
  311. EVE0 = 'EXTR' str1 dim1 ;
  312. EVE1 = EVE0 + (DT1 * XE1) ;
  313. TSB . 'OUT' . &bloout . &sout . 'CUMULE' = STR1 'ET' ('PROG' EVE1) ;
  314. 'REPE' blocomp NBCOMP1 ;
  315. NAMC1 = SET . 'COMPONENT' . &blocomp ;
  316. NAMR1 = 'CHAINE' 'R' NAMC1 ;
  317. ROI1 = 'EXTR' (TSI . NAMR1) NAMR1 PTCEL1 ;
  318. XQI1 = (ROI1 / RGAS1) * XQ1 ;
  319. 'SI' ('EGA' &blocomp 1) ;
  320. CHCEL1 = 'MANU' 'CHPO' PTCEL1 2
  321. NAMR1 XQI1 'UGAS' XE1 'NATURE' 'DISCRET' ;
  322. 'SINON' ;
  323. CHCEL1 = CHCEL1 'ET' ('MANU' 'CHPO' PTCEL1 1
  324. NAMR1 XQI1 'NATURE' 'DISCRET') ;
  325. 'FINSI' ;
  326. NAM1 = 'CHAI' 'CUMULM_' NAMC1 ;
  327. STR1 = TSB . 'OUT' . &bloout . &sout . NAM1 ;
  328. EVM0 = 'EXTR' str1 dim1 ;
  329. EVM1 = EVM0 + (DT1 * XQI1) ;
  330. TSB . 'OUT' . &bloout . &sout . NAM1 = STR1 'ET' ('PROG' EVM1) ;
  331. 'FIN' blocomp ;
  332. 'SI' ('EXIS' TAB1 'RHS') ;
  333. TAB1 . 'RHS' = (TAB1 . 'RHS') + CHCEL1 ;
  334. 'SINON' ;
  335. TAB1 . 'RHS' = CHCEL1 ;
  336. 'FINSI' ;
  337. 'FIN' sout ;
  338. 'FIN' bloout ;
  339. 'FINSI' ;
  340. *
  341. 'FINP' TAB1 ;
  342.  
  343.  
  344. *$$$$ TO_BOCO
  345. 'DEBPROC' TO_BOCO SET*'TABLE' ;
  346. TSB = SET . 'BOUNDARY' ;
  347. TSD = SET . 'DATA' ;
  348. TSG = SET . 'GEOINF' ;
  349. TSI = SET . 'INCO' ;
  350. TSP = SET . 'PHYSICAL' ;
  351. *
  352. TAB1 = 'TABLE' ;
  353. 'SI' ('EXIS' TSG 'WALL') ;
  354. COUPW1 = 'EGA' (SET . 'COUPLAGE_WALL') 'ON' ;
  355. 'SI' COUPW1 ;
  356. 'SI' ('EXIS' TSG 'LAYERO') ;
  357. ECHAW1 = -1.0 * TSD . 'ECHAW' ;
  358. NBOUT = 'NBEL' TSG . 'LAYEXT' ;
  359. TPS0 = TSI . 'TIME2' ;
  360. LLOG1 = 0 ;
  361. 'REPETER' BLO1 NBOUT ;
  362. PTOU1 = 'ELEM' (TSG . 'LAYEXT') 'SEG2' &BLO1 ;
  363. PTOUT = 'CHAN' 'POI1' PTOU1 ;
  364. PLAY1 = PTOUT 'POIN' 1 ;
  365. PEXT1 = PTOUT 'POIN' 2 ;
  366. HEXT = 'EXTR' ECHAW1 'SCAL' PLAY1;
  367. 'SI' (('NOEUD' PEXT1) 'EGA' ('NOEUD' (TSG.'EXT')));
  368. T0 = TSD . 'TOUT' ;
  369. HT0 = HEXT '*' T0 ;
  370. 'SI' (LLOG1 'EGA' 0);
  371. CHPO3 = 'MANU' 'CHPO' PLAY1 1 'QO' HT0 'NATURE' 'DISCRET' ;
  372. LLOG1 = 1 ;
  373. 'SINON' ;
  374. CHPO3 = CHPO3 'ET'
  375. ('MANU' 'CHPO' PLAY1 1 'QO' HT0 'NATURE' 'DISCRET');
  376. 'FINSI' ;
  377. 'SINON' ;
  378. 'SI' ('EXIS' TSP 'OUTD') ;
  379. TSPO = TSP . 'OUTD' ;
  380. INDXT = 'INDEX' (TSPO . 'TEMP') ;
  381. NBEXTE = TSPO . 'NBOUT' ;
  382. ILOG1 = 0 ;
  383. MEXT1 = ' ' ;
  384. 'REPETER' BL01 NBEXTE ;
  385. INXT1 = INDXT . &BL01 ;
  386. PTEXT2 = TSPO . 'LOCATION' . INXT1 ;
  387. 'SI' (('NOEUD' PEXT1) 'EGA' ('NOEUD' PTEXT2)) ;
  388. ILOG1 = &BL01 ;
  389. MEXT1 = INXT1 ;
  390. 'QUITTER' BL01 ;
  391. 'FINSI' ;
  392. 'FIN' BL01 ;
  393. 'SI' (ILOG1 'EGA' 0 );
  394. 'MESS' 'Probleme with external temperature definition';
  395. 'FINSI' ;
  396. TIME2= TSI . 'TIME2';
  397. T0 = 'IPOL' TIME2 (TSPO.'TPS'.MEXT1) (TSPO.'TEMP'.MEXT1);
  398. HT0 = HEXT '*' T0 ;
  399. 'SI' (LLOG1 'EGA' 0);
  400. CHPO3 = 'MANU' 'CHPO' PLAY1 1 'QO' HT0 'NATURE' 'DISCRET' ;
  401. LLOG1 = 1 ;
  402. 'SINON' ;
  403. CHPO3 = CHPO3 'ET'
  404. ('MANU' 'CHPO' PLAY1 1 'QO' HT0 'NATURE' 'DISCRET');
  405. 'FINSI' ;
  406. 'SINON' ;
  407. 'MESS' 'Probleme with external temperature definition';
  408. 'FINSI' ;
  409. 'FINSI' ;
  410. 'FIN' BLO1 ;
  411. TAB1 . 'RHS' = CHPO3 ;
  412. 'FINSI' ;
  413. 'FINSI' ;
  414. 'FINSI' ;
  415. DT1 = TSI . 'DT' ;
  416. TIME00 = TSI . 'TIME1' ;
  417. TIME0 = TSI . 'TIME2' ;
  418. TSB . 'TIME' = TSB . 'TIME' 'ET' ('PROG' TIME0);
  419. NBCOMP1 = 'DIME' (SET . 'COMPONENT') ;
  420. 'REPE' BLO100 NBCOMP1 ;
  421. NAMC1 = SET . 'COMPONENT' . &BLO100 ;
  422. NAMQ1 = 'CHAI' 'Q' NAMC1 ;
  423. NAMR1 = 'CHAI' 'R' NAMC1 ;
  424. 'SI' ('EXIS' TSB NAMQ1) ;
  425. NBCEL1 = 'DIME' TSB . NAMQ1 ;
  426. TIND1 = 'INDE' (TSB . NAMQ1) ;
  427. 'REPE' BLO110 NBCEL1 ;
  428. IND1 = TIND1 . &BLO110 ;
  429. PTCEL1 = TSB . NAMQ1 . IND1 . 'CELL' ;
  430. *
  431. XQ00 = 'IPOL' TIME00 (TSB . NAMQ1 . IND1 .'EVOLM') ;
  432. XE00 = 'IPOL' TIME00 (TSB . NAMQ1 . IND1 .'EVOLE') ;
  433. XQ0 = 'IPOL' TIME0 (TSB . NAMQ1 . IND1 .'EVOLM') ;
  434. XE0 = 'IPOL' TIME0 (TSB . NAMQ1 . IND1 .'EVOLE') ;
  435. XQ1 = (XQ0 - XQ00) / DT1 ;
  436. XE1 = (XE0 - XE00) / DT1 ;
  437. *
  438. * Injection à température ébullition
  439. 'SI' ('EGA' NAMC1 'H2O') ;
  440. PTOT1 = 'EXTR' (TSI . 'PT') 'PT' PTCEL1 ;
  441. TGAS1 = 'EXTR' (TSI . 'TGAS') 'TGAS' PTCEL1 ;
  442. 'SI' (XQ1 > 0.D0) ;
  443. TEBU1 = 'VARI' 'TSATP' PTOT1 ;
  444. HVAP1 = 'VARI' 'HVS' PTOT1 TEBU1 ;
  445. HLIQ1 = 'VARI' 'HLS' PTOT1 TEBU1 ;
  446. RVAP1 = 'VARI' 'ROVAP' PTOT1 TEBU1 ;
  447. RLIQ1 = 'VARI' 'ROLIQ' PTOT1 HLIQ1 ;
  448. 'SI' ('EXIS' SET 'INJECTION') ;
  449. XE1 = XE1 - (PTOT1 / RVAP1 * XQ1) ;
  450. EVAP1 = HVAP1 - (PTOT1 / RVAP1) * XQ1 ;
  451. ELIQ1 = HLIQ1 - (PTOT1 / RLIQ1) * XQ1 ;
  452. 'SINON' ;
  453. EVAP1 = HVAP1 * XQ1 ;
  454. ELIQ1 = HLIQ1 * XQ1 ;
  455. 'FINSI' ;
  456. 'SI' (XE1 '>EG' EVAP1) ;
  457. FRAC1 = 1.D0 ;
  458. EVAP1 = XE1 ;
  459. ELIQ1 = 0.D0 ;
  460. 'SINON' ;
  461. 'SI' (XE1 '>EG' ELIQ1) ;
  462. FRAC1 = (XE1 - ELIQ1) / (EVAP1 - ELIQ1) ;
  463. 'SINON' ;
  464. FRAC1 = 0.D0 ;
  465. ELIQ1 = XE1 ;
  466. EVAP1 = 0.D0 ;
  467. 'FINSI' ;
  468. 'FINSI' ;
  469. 'SINO' ;
  470. FRAC1 = 1.D0 ;
  471. EVAP1 = XE1 ;
  472. ELIQ1 = 0.D0 ;
  473. 'FINSI' ;
  474. 'SI' ( 'EGA' set . 'IMPR' 1) ;
  475. 'MESS' 'P et T in compart.' PTOT1 TGAS1 ;
  476. 'MESS' 'fraction forme vapeur injecté :' FRAC1 ;
  477. 'FINSI' ;
  478. 'SI' (&BLO110 'EGA' 1) ;
  479. CHCEL1 = 'MANU' 'CHPO' PTCEL1 4
  480. NAMR1 (FRAC1 * XQ1) 'MLIQ' ((1.D0 - FRAC1) * XQ1)
  481. 'UGAS' (FRAC1 * EVAP1) 'ULIQ' ((1.D0 - FRAC1) * ELIQ1)
  482. 'NATURE' 'DISCRET' ;
  483. 'SINON' ;
  484. CHCEL1 = CHCEL1 'ET' ('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. 'FINSI' ;
  489. *
  490. * Sauvegarde Répartition Source H2O pour bilan de masse et d'énergie
  491. STR1 = TSB . NAMQ1 . IND1 .'MINL' ;
  492. DIM1 = 'DIME' str1 ;
  493. EVM0 = 'EXTR' str1 dim1 ;
  494. EVM1 = EVM0 + ((1.D0-FRAC1)*XQ1*DT1) ;
  495. TSB . NAMQ1 . IND1 .'MINL' = STR1 'ET' ('PROG' EVM1) ;
  496. *
  497. STR1 = TSB . NAMQ1 . IND1 .'MINV' ;
  498. EVM0 = 'EXTR' str1 dim1 ;
  499. EVM1 = EVM0 + (FRAC1*XQ1*DT1) ;
  500. TSB . NAMQ1 . IND1 .'MINV' = STR1 'ET' ('PROG' EVM1) ;
  501. *
  502. STR1 = TSB . NAMQ1 . IND1 .'UINL' ;
  503. EVM0 = 'EXTR' str1 dim1 ;
  504. EVM1 = EVM0 + ((1.D0-FRAC1)*ELIQ1*DT1) ;
  505. TSB . NAMQ1 . IND1 .'UINL' = STR1 'ET' ('PROG' EVM1) ;
  506. *
  507. STR1 = TSB . NAMQ1 . IND1 .'UINV' ;
  508. EVM0 = 'EXTR' str1 dim1 ;
  509. EVM1 = EVM0 + (FRAC1*EVAP1*DT1) ;
  510. TSB . NAMQ1 . IND1 .'UINV' = STR1 'ET' ('PROG' EVM1) ;
  511. 'SINON' ;
  512. 'SI' (&BLO110 'EGA' 1) ;
  513. CHCEL1 = 'MANU' 'CHPO' PTCEL1 2
  514. NAMR1 XQ1 'UGAS' XE1 'NATURE' 'DISCRET' ;
  515. 'SINON' ;
  516. CHCEL1 = CHCEL1 'ET' ('MANU' 'CHPO' PTCEL1 2
  517. NAMR1 XQ1 'UGAS' XE1 'NATURE' 'DISCRET') ;
  518. 'FINSI' ;
  519. 'FINSI' ;
  520. 'SI' ( 'EGA' set . 'IMPR' 1) ;
  521. 'MESS' 'Debit massique ' NAMC1 ' injecté :' XQ1 ' - Cumul masse ' XQ0 ;
  522. 'MESS' 'Debit energ. ' NAMC1 ' injecté :' XE1 ' - Cumul energ ' XE0 ;
  523. 'FINSI' ;
  524. 'FIN' BLO110 ;
  525. 'SI' ('EXIS' TAB1 'RHS') ;
  526. TAB1 . 'RHS' = (TAB1 . 'RHS') + CHCEL1 ;
  527. 'SINON' ;
  528. TAB1 . 'RHS' = CHCEL1 ;
  529. 'FINSI' ;
  530. 'FINSI' ;
  531. 'FIN' BLO100 ;
  532. *
  533. 'MESS' ' ' ;
  534. *
  535. 'FINP' TAB1 ;
  536.  
  537.  
  538. *$$$$ TO_DEFAU
  539. 'DEBP' TO_DEFAU INPUT*'TABLE' ;
  540. VOLU1 = 1000. ;
  541. PRESS1 = 1.E+5 ;
  542. TEMP1 = 300. ;
  543. HUMDT1 = 0.5 ;
  544. XV1 = 1.0 ;
  545. ASUMP1 = 10.0 ;
  546. VMAX1 = 1.D+2 ;
  547. APER1 = 1.D+01 ;
  548. MLIQ1 = 1.0 ;
  549. TOUT1 = 293.15 ;
  550. *
  551. *- valeurs par défaut pour la thermique dans les murs
  552. *
  553. KEYWAL = 'TABLE' ;
  554. KEYWAL . 'AREA' = 1.0 ;
  555. KEYWAL . 'TWAL1' = TEMP1 ;
  556. KEYWAL . 'TWAL2' = TEMP1 ;
  557. KEYWAL . 'ECHAN1' = 10.0 ;
  558. KEYWAL . 'ECHAN2' = 10.0 ;
  559. *
  560. *- valeurs par défaut pour les conditions de calcul
  561. *
  562. MESS0 = 'WARNING : default value for ' ;
  563. TXT0 = '****** DATASET INPUT FILE : ' ;
  564. INPUT . 'H2_DIS' = 'OFF' ;
  565. INPUT . 'H2_POT' = 'OFF' ;
  566. INPUT . 'H2_RAD' = 'OFF' ;
  567. INPUT . 'QSONIC' = 'ON' ;
  568. INPUT . 'QLIMIT' = 1.D-3 ;
  569. *
  570. 'SI' ('NON' ('EXISTE' INPUT 'T_COUPLING')) ;
  571. INPUT . 'T_COUPLING' = 'OFF' ;
  572. MESS1 = 'CHAI' MESS0 'T_COUPLING (OFF)' ; 'MESS' MESS1 ;
  573. 'FINSI' ;
  574. 'SI' ('NON' ('EXISTE' INPUT 'RELAX')) ;
  575. INPUT . 'RELAX' = 1. ;
  576. MESS1 = 'CHAI' MESS0 'RELAX (1.)' ; 'MESS' MESS1 ;
  577. 'FINSI' ;
  578. 'SI' ('NON' ('EXISTE' INPUT 'RELINT')) ;
  579. INPUT . 'RELINT' = INPUT . 'RELAX' ;
  580. MESS1 = 'CHAI' MESS0 'RELINT ' (INPUT . 'RELAX') ; 'MESS' MESS1 ;
  581. 'FINSI' ;
  582. 'SI' ('NON' ('EXISTE' INPUT 'IMPR')) ;
  583. INPUT . 'IMPR' = 0 ;
  584. MESS1 = 'CHAI' MESS0 'IMPR (0)' ; 'MESS' MESS1 ;
  585. 'FINSI' ;
  586. *
  587. *=====================================================================
  588. *- Propriétés physiques des constituants du mélange
  589. *=====================================================================
  590. *
  591. R_GAS = 8.3144621D0 ;
  592. INPUT . 'PHYSICAL' . 'R_GAS' = R_GAS ;
  593. *---------------------------------------------- Masse molaire (kg/mol)
  594. INPUT . 'PHYSICAL' . 'WH2' = 2.D0 * 0.00100794D0 ;
  595. INPUT . 'PHYSICAL' . 'WHE' = 0.004002602D0 ;
  596. INPUT . 'PHYSICAL' . 'WN2' = 2.D0 * 0.0140067D0 ;
  597. INPUT . 'PHYSICAL' . 'WO2' = 2.D0 * 0.0159994D0 ;
  598. INPUT . 'PHYSICAL' . 'WCO2' = 0.0120107D0 + INPUT . 'PHYSICAL' . 'WO2' ;
  599. INPUT . 'PHYSICAL' . 'WCO' = 0.0120107D0 + 0.0159994D0 ;
  600. *
  601. * La constante des Gaz de la vapeur est modifié par compatibilité avec
  602. * les propriétés de la vapeur des tables de l'eau
  603. INPUT . 'PHYSICAL' . 'WH2O' = R_GAS / 461.513D0 ;
  604. INPUT . 'PHYSICAL' . 'WH2O' = 0.0159994D0 + INPUT . 'PHYSICAL' . 'WH2';
  605. *
  606. *------------------ Température de référence en K et C pour pptés phy
  607. TGAS1 = 315. ;
  608. TMOIN1 = TGAS1 - 273.15 ;
  609. *
  610. *--------------------------------------------------- Cp RALOC (J/kg/K)
  611. CP_H2 = 1000. * (14.246 + (8.160E-4 * TMOIN1) +
  612. (4.350E-7 * (TMOIN1 * TMOIN1))) ;
  613. CP_HE = 5193. ;
  614. CP_O2 = 1000. * (0.917 + (1.404E-4 * TMOIN1) +
  615. (3.000E-8 * (TMOIN1 * TMOIN1))) ;
  616. CP_N2 = 1000. * (1.0309 + (2.044E-4 * TMOIN1) +
  617. (-3.300E-8 * (TMOIN1 * TMOIN1))) ;
  618. CP_CO2 = 1000. * (0.836 + (7.432E-4 * TMOIN1) +
  619. (-2.511E-7 * (TMOIN1 * TMOIN1))) ;
  620. CP_CO = 1000. * (1.0302 + (2.396E-4 * TMOIN1) +
  621. (-4.950E-8 * (TMOIN1 * TMOIN1))) ;
  622. CP_H2O = 1000. * (1.748383 + (0.277768E-3 * TMOIN1) +
  623. (0.275E-6 * (TMOIN1 * TMOIN1))) ;
  624. *
  625. *----------------------------------------- constante des "gp" (J/kg/K)
  626. R_H2 = R_GAS / INPUT . 'PHYSICAL' . 'WH2' ;
  627. R_HE = R_GAS / INPUT . 'PHYSICAL' . 'WHE' ;
  628. R_O2 = R_GAS / INPUT . 'PHYSICAL' . 'WO2' ;
  629. R_N2 = R_GAS / INPUT . 'PHYSICAL' . 'WN2' ;
  630. R_CO2 = R_GAS / INPUT . 'PHYSICAL' . 'WCO2' ;
  631. R_CO = R_GAS / INPUT . 'PHYSICAL' . 'WCO' ;
  632. R_H2O = R_GAS / INPUT . 'PHYSICAL' . 'WH2O' ;
  633. *
  634. INPUT . 'PHYSICAL' . 'R_H2' = R_H2 ;
  635. INPUT . 'PHYSICAL' . 'R_HE' = R_HE ;
  636. INPUT . 'PHYSICAL' . 'R_O2' = R_O2 ;
  637. INPUT . 'PHYSICAL' . 'R_N2' = R_N2 ;
  638. INPUT . 'PHYSICAL' . 'R_CO2' = R_CO2 ;
  639. INPUT . 'PHYSICAL' . 'R_CO' = R_CO ;
  640. INPUT . 'PHYSICAL' . 'R_H2O' = R_H2O ;
  641. INPUT . 'PHYSICAL' . 'CVH2' = CP_H2 - R_H2 ;
  642. INPUT . 'PHYSICAL' . 'CVHE' = CP_HE - R_HE ;
  643. INPUT . 'PHYSICAL' . 'CVO2' = CP_O2 - R_O2 ;
  644. INPUT . 'PHYSICAL' . 'CVN2' = CP_N2 - R_N2 ;
  645. INPUT . 'PHYSICAL' . 'CVCO2' = CP_CO2 - R_CO2 ;
  646. INPUT . 'PHYSICAL' . 'CVCO' = CP_CO - R_CO ;
  647. INPUT . 'PHYSICAL' . 'CVH2O' = CP_H2O - R_H2O ;
  648. INPUT . 'PHYSICAL' . 'CPH2' = CP_H2 ;
  649. INPUT . 'PHYSICAL' . 'CPHE' = CP_HE ;
  650. INPUT . 'PHYSICAL' . 'CPO2' = CP_O2 ;
  651. INPUT . 'PHYSICAL' . 'CPN2' = CP_N2 ;
  652. INPUT . 'PHYSICAL' . 'CPCO2' = CP_CO2 ;
  653. INPUT . 'PHYSICAL' . 'CPCO' = CP_CO ;
  654. INPUT . 'PHYSICAL' . 'CPH2O' = CP_H2O ;
  655. *
  656. *------------------------------ conductivités des constituants (W/m/K)
  657. LBD_H2 = (1.65E-3 * (TGAS1 ** 1.8)) / (TGAS1 - 40.13) ;
  658. LBD_HE = (5.464E-3 * (TGAS1 ** 1.616)) / (TGAS1 + 76.6) ;
  659. LBD_O2 = (0.429E-3 * (TGAS1 ** 1.746)) / (TGAS1 + 41.27) ;
  660. LBD_N2 = (0.0417E-3 * (TGAS1 ** 2.042)) / (TGAS1 - 133.) ;
  661. LBD_CO2 = (25.438E-3 * (TGAS1 ** 1.319)) / (TGAS1 + 2432.95) ;
  662. LBD_CO = (1.931E-3 * (TGAS1 ** 1.541)) / (TGAS1 + 218.17) ;
  663. LBD_H2O = (-84.442E-3 * (TGAS1 ** 1.251)) / (TGAS1 - 5827.6) ;
  664. *
  665. INPUT . 'PHYSICAL' . 'LBDH2' = LBD_H2 ;
  666. INPUT . 'PHYSICAL' . 'LBDHE' = LBD_HE ;
  667. INPUT . 'PHYSICAL' . 'LBDO2' = LBD_O2 ;
  668. INPUT . 'PHYSICAL' . 'LBDN2' = LBD_N2 ;
  669. INPUT . 'PHYSICAL' . 'LBDCO2' = LBD_CO2 ;
  670. INPUT . 'PHYSICAL' . 'LBDCO' = LBD_CO ;
  671. INPUT . 'PHYSICAL' . 'LBDH2O' = LBD_H2O ;
  672. *
  673. *--------------------- viscosités dynamiques des constituants (kg/m/s)
  674. MU_H2 = (0.1541E-6 * (TGAS1 ** 1.703)) / (TGAS1 - 17.856) ;
  675. MU_HE = (0.5865E-6 * (TGAS1 ** 1.630)) / (TGAS1 + 27.183) ;
  676. MU_O2 = (0.7406E-6 * (TGAS1 ** 1.610)) / (TGAS1 + 48.16) ;
  677. MU_N2 = (1.791E-6 * (TGAS1 ** 1.469)) / (TGAS1 + 140.812) ;
  678. MU_CO2 = (0.136E-6 * (TGAS1 ** 1.810)) / (TGAS1 - 59.30) ;
  679. MU_CO = (0.573E-6 * (TGAS1 ** 1.620)) / (TGAS1 + 46.45) ;
  680. MU_H2O = (2.142E-6 * (TGAS1 ** 1.5)) / (TGAS1 + 890.) ;
  681. *
  682. INPUT . 'PHYSICAL' . 'MUH2' = MU_H2 ;
  683. INPUT . 'PHYSICAL' . 'MUHE' = MU_HE ;
  684. INPUT . 'PHYSICAL' . 'MUO2' = MU_O2 ;
  685. INPUT . 'PHYSICAL' . 'MUN2' = MU_N2 ;
  686. INPUT . 'PHYSICAL' . 'MUCO2' = MU_CO2 ;
  687. INPUT . 'PHYSICAL' . 'MUCO' = MU_CO ;
  688. INPUT . 'PHYSICAL' . 'MUH2O' = MU_H2O;
  689. *
  690. *=====================================================================
  691. *- Etat de référence
  692. *=====================================================================
  693. *
  694. INPUT . 'PHYSICAL' . 'PREF' = 1.013D5 ;
  695. INPUT . 'PHYSICAL' . 'TREF' = 273.15 ;
  696. INPUT . 'PHYSICAL' . 'RHO_H2' =
  697. INPUT . 'PHYSICAL' . 'PREF' * INPUT . 'PHYSICAL' . 'WH2'
  698. / (R_GAS * INPUT . 'PHYSICAL' . 'TREF') ;
  699. *
  700. *------------------------------------------------------ gravité (m/s2)
  701. 'SI' ('NON' ('EXISTE' (INPUT . 'PHYSICAL') 'GRAVITY')) ;
  702. INPUT . 'PHYSICAL' . 'GRAVITY' = 9.81 ;
  703. MESS1 = 'CHAI' MESS0 'GRAVITY (9.81)' ; 'MESS' MESS1 ;
  704. 'FINSI' ;
  705. *
  706. *--------------------------- diffusion de la vapeur dans un gaz (m2/s)
  707. * Di = A * (T/273.15) ** n / (p * 1.d-5) avec p en Pa et T en Kelvin
  708. *
  709. INPUT . 'PHYSICAL' . 'ADH2O' = 0.277D-3 ;
  710. INPUT . 'PHYSICAL' . 'ADCO2' = 0.155D-4 ;
  711. INPUT . 'PHYSICAL' . 'ADO2' = 0.240D-4 ;
  712. INPUT . 'PHYSICAL' . 'ADH2' = 0.780D-4 ;
  713. INPUT . 'PHYSICAL' . 'ADCO' = 0.220D-4 ;
  714. INPUT . 'PHYSICAL' . 'ADN2' = 0.227D-4 ;
  715. INPUT . 'PHYSICAL' . 'ADHE' = 0.730D-4 ;
  716. INPUT . 'PHYSICAL' . 'NDH2O' = 0. ;
  717. INPUT . 'PHYSICAL' . 'NDCO2' = 1.75 ;
  718. INPUT . 'PHYSICAL' . 'NDO2' = 1.71 ;
  719. INPUT . 'PHYSICAL' . 'NDH2' = 1.75 ;
  720. INPUT . 'PHYSICAL' . 'NDCO' = 1.75 ;
  721. INPUT . 'PHYSICAL' . 'NDN2' = 1.75 ;
  722. INPUT . 'PHYSICAL' . 'NDHE' = 1.75 ;
  723. *
  724. *=====================================================================
  725. * Propriétés thermodynamiques du mélange et de l'eau des puisards
  726. *=====================================================================
  727. *
  728. *- Valeurs par défaut des compartiments : VOL, PT, TGAS
  729. *
  730. NBCEL1 = 'DIME' (INPUT . 'CELL' . 'LOCATION') ;
  731. IND1 = INDEX (INPUT . 'CELL' . 'LOCATION') ;
  732. 'REPETER' BLO10 NBCEL1 ;
  733. ICELL = IND1 . &BLO10 ;
  734. 'SI' ('NON' ('EXISTE' (INPUT . 'CELL' . 'VOL') ICELL)) ;
  735. INPUT . 'CELL' . 'VOL' . ICELL = VOLU1 ;
  736. MESS1 = 'CHAI' MESS0 'VOLUME in cell ' ICELL ; 'MESS' MESS1 ;
  737. 'FINSI' ;
  738. 'SI' ('NON' ('EXISTE' (INPUT . 'CELL' . 'PT') ICELL)) ;
  739. INPUT . 'CELL' . 'PT' . ICELL = PRESS1 ;
  740. MESS1 = 'CHAI' MESS0 'PRESSURE in cell ' ICELL ; 'MESS' MESS1 ;
  741. 'FINSI' ;
  742. 'SI' ('NON' ('EXISTE' (INPUT . 'CELL' . 'TGAS') ICELL)) ;
  743. INPUT . 'CELL' . 'TGAS' . ICELL = TEMP1 ;
  744. MESS1 = 'CHAI' MESS0 'T_GAS in cell ' ICELL ; 'MESS' MESS1 ;
  745. 'FINSI' ;
  746. 'FIN' BLO10 ;
  747. *
  748. NCOMP1 = 'DIME' (INPUT . 'COMPONENT') ;
  749. IND1 = 'INDEX' (INPUT . 'COMPONENT') ;
  750. TESH2O = 0 ;
  751. LCOMP1 = 'MOTS' ;
  752. 'REPETER' BLO02 NCOMP1 ;
  753. IND02 = IND1 . &BLO02 ;
  754. NAMEC1 = INPUT . 'COMPONENT' . IND02 ;
  755. 'SI' ('EGA' NAMEC1 'H2O') ;
  756. TESH2O = 1 ;
  757. 'SINON' ;
  758. LCOMP1 = LCOMP1 'ET' ('MOTS' NAMEC1) ;
  759. 'FINSI' ;
  760. 'FIN' BLO02 ;
  761. *
  762. *-------------------------------------------------- DATAS Condensation
  763. 'SI' (TESH2O 'EGA' 1) ;
  764. 'SI' ('NON' ('EXIS' (INPUT . 'PHYSICAL') 'CONDENSE')) ;
  765. INPUT . 'PHYSICAL' . 'CONDENSE' = 'CHILTON' ;
  766. MESS1 = 'CHAI' MESS0 'model condensation by default : CHILTON' ;
  767. 'MESS' MESS1 ;
  768. 'FINSI' ;
  769. *------------------------------------------ Modèle par face ----------
  770. *
  771. * On cherche si TAGAMI est présent afin d'initialiser les constantes
  772. * du modèle si besoin (flag TEST1). On en profite pour mettre le
  773. * modèle de condensation par défaut aux faces qui en sont dépourvues
  774. * et pour tester la validité des modèles indiqués.
  775. COND0 = INPUT . 'PHYSICAL' . 'CONDENSE' ;
  776. TEST1 = 0 ;
  777. 'SI' ('EGA' COND0 'TAGAMI') ;
  778. TEST1 = 1 ;
  779. 'FINSI' ;
  780. IND1 = 'INDE' (INPUT . 'WALL' . 'LOCATION') ;
  781. N1 = 'DIME' IND1 ;
  782. 'REPETER' BLO1 N1 ;
  783. IN1 = IND1.&BLO1 ;
  784. 'SI' ('EXIS' (INPUT . 'WALL' . 'COND1') IN1);
  785. C1 = INPUT . 'WALL' . 'COND1' . IN1 ;
  786. TEST2 = ('EGA' C1 'UCHIDA')
  787. 'OU' ('EGA' C1 'TAGAMI')
  788. 'OU' ('EGA' C1 'CHILTON') ;
  789. 'SI' ('EGA' TEST2 FAUX) ;
  790. TXT1 = 'CHAI' TXT0 'bad value for the COND1 index '
  791. '(UCHIDA, TAGAMI or CHILTON instead of ' C1 ')' ;
  792. INPUT . 'ERROR' = 1 ; 'MESS' TXT1 ; 'QUIT' TO_DEFAU ;
  793. 'FINSI' ;
  794. 'SI' ('EGA' C1 'TAGAMI') ;
  795. TEST1 = 1 ;
  796. 'FINSI' ;
  797. 'SINON' ;
  798. INPUT . 'WALL' . 'COND1' . IN1 = COND0 ;
  799. MESS1 = 'CHAI' MESS0 'model condensation : upside wall ' IN1 ;
  800. 'MESS' MESS1 ;
  801. 'FINSI' ;
  802. 'SI' ('EXIST' (INPUT . 'WALL' . 'COND2') IN1);
  803. C2 = INPUT . 'WALL' . 'COND2' . IN1 ;
  804. TEST2 = ('EGA' C2 'UCHIDA')
  805. 'OU' ('EGA' C2 'TAGAMI')
  806. 'OU' ('EGA' C2 'CHILTON') ;
  807. 'SI' ('EGA' TEST2 FAUX) ;
  808. TXT1 = 'CHAI' TXT0 'bad value for the COND2 index '
  809. '(UCHIDA, TAGAMI or CHILTON instead of ' C2 ')' ;
  810. INPUT . 'ERROR' = 1 ; 'MESS' TXT1 ; 'QUIT' TO_DEFAU ;
  811. 'FINSI' ;
  812. 'SI' ('EGA' C2 'TAGAMI') ;
  813. TEST1 = 1 ;
  814. 'FINSI' ;
  815. 'SINON' ;
  816. INPUT . 'WALL' . 'COND2' . (IND1.&BLO1) = COND0 ;
  817. MESS1 = 'CHAI' MESS0 'model condensation : downside wall ' IN1 ;
  818. 'MESS' MESS1 ;
  819. 'FINSI' ;
  820. 'FIN' BLO1 ;
  821. *------------------------------------------ TAGAMI (Ttag en s) -------
  822. 'SI' ('EGA' TEST1 1) ;
  823. 'SI' ('NON' ('EXISTE' (INPUT . 'PHYSICAL') 'CTAG')) ;
  824. INPUT . 'PHYSICAL' . 'CTAG' = 0.76893 ;
  825. MESS1 = 'CHAI' MESS0 'CTAG (0.76893)' ; 'MESS' MESS1 ;
  826. 'FINSI' ;
  827. 'SI' ('NON' ('EXISTE' (INPUT . 'PHYSICAL') 'TTAG')) ;
  828. INPUT . 'PHYSICAL' . 'TTAG' = 25. ;
  829. MESS1 = 'CHAI' MESS0 'TTAG (25.)' ; 'MESS' MESS1 ;
  830. 'FINSI' ;
  831. 'FINSI' ;
  832. 'FINSI' ;
  833. *
  834. 'SI' (TESH2O 'EGA' 1) ;
  835. INPUT . 'CELL' . 'XV' = TABLE ;
  836. IND1 = 'INDEX' (INPUT . 'CELL' . 'LOCATION') ;
  837. 'REPETER' BLO03 NBCEL1 ;
  838. ICELL = IND1 . &BLO03 ;
  839. INPUT . 'CELL' . 'XV' . ICELL = XV1 ;
  840. TEMP2 = INPUT . 'CELL' . 'TGAS' . ICELL ;
  841. VOLU1 = INPUT . 'CELL' . 'VOL' . ICELL ;
  842. 'SI' ('NON' ('EXISTE' (INPUT . 'CELL' . 'MH2O') ICELL)) ;
  843. 'SI' ('NON' ('EXISTE' (INPUT . 'CELL' . 'HUMIDITY') ICELL)) ;
  844. INPUT . 'CELL' . 'HUMIDITY' . ICELL = HUMDT1 ;
  845. MESS1 = 'CHAI' MESS0 'HUMIDITY in cell ' ICELL ;
  846. 'MESS' MESS1 ;
  847. 'FINSI' ;
  848. HUMDT2 = INPUT . 'CELL' . 'HUMIDITY' . ICELL ;
  849. PSAT1 = 'VARI' 'PSATT' TEMP2 ;
  850. PVAP1 = HUMDT2 * PSAT1 ;
  851. INPUT . 'CELL' . 'MH2O' . ICELL =
  852. ('VARI' 'ROVAP' PVAP1 TEMP2) * VOLU1 ;
  853. 'SINON' ;
  854. 'SI' ('EXISTE' (INPUT . 'CELL' . 'HUMIDITY') ICELL) ;
  855. 'MESS' 'ERROR : HUMIDITY and MH2O cannot be both defined!!!';
  856. INPUT . 'ERROR' = 1 ; 'QUIT' TO_DEFAU ;
  857. 'FINSI';
  858. PSAT1 = 'VARI' 'PSATT' TEMP2 ;
  859. ROVA13 = INPUT . 'CELL' . 'MH2O' . ICELL '/' VOLU1 ;
  860. PVAP1 = 'VARI' 'PVAP' ROVA13 TEMP2 ;
  861. INPUT . 'CELL' . 'HUMIDITY' . ICELL = PVAP1 '/' PSAT1 ;
  862. HUMDT2 = INPUT . 'CELL' . 'HUMIDITY' . ICELL;
  863. MESS1 = 'CHAI' MESS0 'HUMIDITY in cell ' ICELL ;
  864. 'SI' (INPUT . 'CELL' . 'HUMIDITY' . ICELL '>' 1.);
  865. 'MESS' 'ERROR : H2O mass is too high considering (P,T,V)';
  866. 'MESS' '-> Humidity =' HUMDT2 ' > 1';
  867. 'MESS' 'Steam should be transfered to liquid' ;
  868. INPUT . 'ERROR' = 1 ; 'QUIT' TO_DEFAU ;
  869. 'FINSI';
  870. 'FINSI' ;
  871. 'FIN' BLO03 ;
  872. 'FINSI' ;
  873. *
  874. WAIR = (0.79 * INPUT . 'PHYSICAL' . 'WN2')
  875. + (0.21 * INPUT . 'PHYSICAL' . 'WO2') ;
  876. RAIR = R_GAS / WAIR ;
  877. YN2 = 0.79 * INPUT . 'PHYSICAL' . 'WN2' / WAIR ;
  878. YO2 = 0.21 * INPUT . 'PHYSICAL' . 'WO2' / WAIR ;
  879. *
  880. IND1 = 'INDEX' (INPUT . 'CELL' . 'LOCATION') ;
  881. 'REPETER' BLO01 NBCEL1 ;
  882. ICELL = IND1 . &BLO01 ;
  883. VOLU1 = INPUT . 'CELL' . 'VOL' . ICELL ;
  884. PT1 = INPUT . 'CELL' . 'PT' . ICELL ;
  885. TGAS1 = INPUT . 'CELL' . 'TGAS' . ICELL ;
  886. 'SI' (TESH2O 'EGA' 1) ;
  887. ROVAP1 = (INPUT . 'CELL' . 'MH2O' . ICELL) / VOLU1 ;
  888. PVAP1 = 'VARI' 'PVAP' ROVAP1 TGAS1 ;
  889. 'SINON' ;
  890. PVAP1 = 0. ;
  891. 'FINSI' ;
  892. PAUTR1 = 0. ;
  893. 'REPE' BLO13 ('DIME' LCOMP1);
  894. COMPC13 = 'CHAIN' 'M' ('EXTR' LCOMP1 &BLO13) ;
  895. 'SI' ('EXISTE' (INPUT . 'CELL') COMPC13) ;
  896. 'SI' ('NON' ('EXISTE' (INPUT . 'CELL' . COMPC13) ICELL)) ;
  897. INPUT . 'CELL' . COMPC13 . ICELL = 0. ;
  898. 'FINSI' ;
  899. MCO13 = INPUT . 'CELL' . COMPC13 . ICELL ;
  900. MOR13 = 'CHAIN' 'R_' (EXTR LCOMP1 &BLO13) ;
  901. RCO13 = INPUT . 'PHYSICAL' . MOR13 ;
  902. PAUTR1 = PAUTR1 + (RCO13 '*' MCO13 '*' TGAS1 '/' VOLU1);
  903. 'FINSI' ;
  904. 'FIN' BLO13 ;
  905. OKN2 = 'EXIS' (INPUT . 'CELL') 'MN2' ;
  906. OKO2 = 'EXIS' (INPUT . 'CELL') 'MO2' ;
  907. OKAIR = 'ET' OKN2 OKO2 ;
  908. 'SI' ((PT1+1.) '>EG' (PVAP1 '+' PAUTR1));
  909. 'SI' OKAIR ;
  910. BN2 = 'EXIS' (INPUT . 'CELL' . 'MN2') ICELL ;
  911. BO2 = 'EXIS' (INPUT . 'CELL' . 'MO2') ICELL ;
  912. 'SI' BN2 ;
  913. MN2U = INPUT . 'CELL' . 'MN2' . ICELL ;
  914. 'SINO' ;
  915. MN2U = 0. ;
  916. 'FINSI' ;
  917. 'SI' BO2 ;
  918. MO2U = INPUT . 'CELL' . 'MO2' . ICELL ;
  919. 'SINO' ;
  920. MO2U = 0. ;
  921. 'FINSI' ;
  922. MAIR = (VOLU1 / RAIR) * (PT1 - PVAP1 - PAUTR1) / TGAS1 ;
  923. MN2P = YN2 * MAIR ;
  924. MO2P = YO2 * MAIR ;
  925. INPUT . 'CELL' . 'MN2' . ICELL = MN2P + MN2U ;
  926. INPUT . 'CELL' . 'MO2' . ICELL = MO2P + MO2U ;
  927. 'MESS' 'WARNING : to_defau : O2 mass is added:' mo2p ;
  928. 'MESS' 'WARNING : to_defau : N2 mass is added:' mn2p ;
  929. 'SINO';
  930. vtest = (pt1+1.) - (PVAP1 '+' PAUTR1) ;
  931. 'SI' (('ABS' vtest) '>' 1.) ;
  932. 'MESS' 'ERROR : Total pressure too high';
  933. 'MESS' 'ERROR : ' pt1 ' > ' pvap1 ' + ' pautr1 '=' (pvap1+pautr1) ;
  934. INPUT . 'ERROR' = 1 ; 'QUIT' TO_DEFAU ;
  935. 'FINSI' ;
  936. 'FINSI';
  937. 'SINON';
  938. 'MESS' 'ERROR : Total pressure too low';
  939. 'MESS' 'ERROR : ' pt1 ' < ' pvap1 ' + ' pautr1 '=' (pvap1+pautr1) ;
  940. INPUT . 'ERROR' = 1 ; 'QUIT' TO_DEFAU ;
  941. 'FINSI';
  942. 'FIN' BLO01 ;
  943. 'SI' ('EXISTE' (INPUT . 'CELL') 'MH2O');
  944. 'SI' ('NON' ('EXISTE' (INPUT . 'CELL') 'MLIQ')) ;
  945. INPUT . 'CELL' . 'MLIQ' = TABLE ;
  946. 'FINSI' ;
  947. 'SI' ('NON' ('EXISTE' (INPUT . 'CELL') 'TLIQ')) ;
  948. INPUT . 'CELL' . 'TLIQ' = TABLE ;
  949. 'FINSI' ;
  950. INPUT . 'CELL' . 'HLIQ' = TABLE ;
  951. INPUT . 'CELL' . 'VLIQ' = TABLE ;
  952. INPUT . 'CELL' . 'ULIQ' = TABLE ;
  953. INPUT . 'CELL' . 'QEVA' = TABLE ;
  954. IND1 = 'INDEX' (INPUT . 'CELL' . 'LOCATION') ;
  955. 'REPETER' BLO04 NBCEL1 ;
  956. ICELL = IND1 . &BLO04 ;
  957. 'SI' ('NON' ('EXISTE' (INPUT . 'CELL' . 'ASUMP') ICELL)) ;
  958. INPUT . 'CELL' . 'ASUMP' . ICELL = ASUMP1 ;
  959. MESS1 = 'CHAI' MESS0 'ASUMP in cell ' ICELL ; 'MESS' MESS1 ;
  960. 'FINSI' ;
  961. 'SI' ('NON' ('EXISTE' (INPUT . 'CELL' . 'VMAX') ICELL)) ;
  962. INPUT . 'CELL' . 'VMAX' . ICELL = VMAX1 ;
  963. MESS1 = 'CHAI' MESS0 'VMAX in cell ' ICELL ; 'MESS' MESS1 ;
  964. 'FINSI' ;
  965. 'SI' ('NON' ('EXISTE' (INPUT . 'CELL' . 'APERTURE') ICELL)) ;
  966. INPUT . 'CELL' . 'APERTURE' . ICELL = APER1 ;
  967. MESS1 = 'CHAI' MESS0 'APERTURE in cell ' ICELL ; 'MESS' MESS1 ;
  968. 'FINSI' ;
  969. 'SI' ('NON' ('EXISTE' (INPUT . 'CELL' . 'MLIQ') ICELL)) ;
  970. INPUT . 'CELL' . 'MLIQ' . ICELL = MLIQ1 ;
  971. MESS1 = 'CHAI' MESS0 'MLIQ in cell ' ICELL ; 'MESS' MESS1 ;
  972. 'FINSI' ;
  973. 'SI' ('NON' ('EXISTE' (INPUT . 'CELL' . 'TLIQ') ICELL)) ;
  974. INPUT . 'CELL' . 'TLIQ' . ICELL = TEMP1 ;
  975. MESS1 = 'CHAI' MESS0 'TLIQ in cell ' ICELL ; 'MESS' MESS1 ;
  976. 'FINSI' ;
  977. PRESS1 = INPUT . 'CELL' . 'PT' . ICELL ;
  978. MLIQ2 = INPUT . 'CELL' . 'MLIQ' . ICELL ;
  979. HLIQ2 = 'VARI' 'HLS' PRESS1 (INPUT . 'CELL' . 'TLIQ' . ICELL) ;
  980. RHOL2 = 'VARI' 'ROLIQ' PRESS1 HLIQ2 ;
  981. VLIQ2 = MLIQ2 / RHOL2 ;
  982. ULIQ2 = HLIQ2 * MLIQ2 - (PRESS1 * VLIQ2) ;
  983. INPUT . 'CELL' . 'HLIQ' . ICELL = HLIQ2 ;
  984. INPUT . 'CELL' . 'VLIQ' . ICELL = VLIQ2 ;
  985. INPUT . 'CELL' . 'ULIQ' . ICELL = ULIQ2 ;
  986. INPUT . 'CELL' . 'QEVA' . ICELL = 0. ;
  987. 'FIN' BLO04 ;
  988. 'FINSI' ;
  989. 'SI' ('EXISTE' INPUT 'WALL' ) ;
  990. 'SI' ('NON' ('EXISTE' INPUT 'TOUT')) ;
  991. INPUT . 'TOUT' = TOUT1 ;
  992. 'FINSI' ;
  993. NBIND3 = 'DIME' KEYWAL ;
  994. NBWAL3 = 'DIME' (INPUT . 'WALL' . 'LOCATION') ;
  995. IND1 = 'INDEX' (INPUT . 'WALL' . 'LOCATION') ;
  996. INDK = 'INDEX' KEYWAL ;
  997. 'REPETER' BLO30 NBWAL3 ;
  998. IWALL = IND1 . &BLO30 ;
  999. 'REPETER' BLO31 NBIND3 ;
  1000. IND3 = INDK . &BLO31 ;
  1001. 'SI' ('NON' ('EXISTE' (INPUT . 'WALL' . IND3) IWALL)) ;
  1002. VAL3 = KEYWAL . IND3 ;
  1003. INPUT . 'WALL' . IND3 . IWALL = VAL3 ;
  1004. MESS3 = 'CHAI' MESS0 ' ' IND3 ' in ' IWALL ; 'MESS' MESS3 ;
  1005. 'FINSI' ;
  1006. 'FIN' BLO31 ;
  1007. NBLAY1 = INPUT . 'WALL' . 'NLAYER' . IWALL ;
  1008. IND2 = 'INDEX' (INPUT . 'WALL' . 'MATERIAL' . IWALL) ;
  1009. 'REPETER' BLO32 NBLAY1 ;
  1010. ILAYER = IND2 . &BLO32 ;
  1011. TYPEM1 = INPUT . 'WALL' . 'MATERIAL' . IWALL . ILAYER ;
  1012. IMT1 = INPUT . 'MATERIAL' . TYPEM1 ;
  1013. INPUT . 'WALL' . 'RHO' . IWALL . ILAYER = IMT1 . 'RHOW' ;
  1014. INPUT . 'WALL' . 'CP' . IWALL . ILAYER = IMT1 . 'CPW' ;
  1015. INPUT . 'WALL' . 'LAMBDA' . IWALL . ILAYER = IMT1 . 'LBDW' ;
  1016. TYUCH1 = IMT1 . 'TYPEW' ;
  1017. 'SI' (EGA TYUCH1 'WCONCRET') ;
  1018. INPUT . 'WALL' . 'UCHIDA' . IWALL . ILAYER = 0.4 ;
  1019. 'SINON' ;
  1020. INPUT . 'WALL' . 'UCHIDA' . IWALL . ILAYER = 1.0 ;
  1021. 'FINSI' ;
  1022. 'FIN' BLO32 ;
  1023. 'FIN' BLO30 ;
  1024. 'FINSI' ;
  1025. NCOMP1 = 'DIME' (INPUT . 'COMPONENT') ;
  1026. IND1 = 'INDEX' (INPUT . 'CELL' . 'LOCATION') ;
  1027. IND2 = 'INDEX' (INPUT . 'COMPONENT') ;
  1028. 'REPETER' BLO12 NBCEL1 ;
  1029. ICELL = IND1 . &BLO12 ;
  1030. 'SI' ('NON' ('EXISTE' (INPUT . 'CELL' . 'UGAS') ICELL)) ;
  1031. TGAS1 = INPUT . 'CELL' . 'TGAS' . ICELL ;
  1032. VOLU1 = INPUT . 'CELL' . 'VOL' . ICELL ;
  1033. UVAP1 = 0. * VOLU1 ;
  1034. MCV1 = 0.D0 ;
  1035. 'REPETER' BLO121 NCOMP1 ;
  1036. NOM1 = IND2 . &BLO121 ;
  1037. NAMC1 = INPUT . 'COMPONENT' . NOM1 ;
  1038. NAMM1 = 'CHAINE' 'M' NAMC1 ;
  1039. XM1 = INPUT . 'CELL' . NAMM1 . ICELL ;
  1040. 'SI' ('EGA' NAMC1 'H2O' ) ;
  1041. PSAT1 = 'VARI' 'PSATT' TGAS1 ;
  1042. PVAP1 = (INPUT . 'CELL' . 'HUMIDITY' . ICELL) * PSAT1 ;
  1043. UVAP1 = ('VARI' 'HVS' PVAP1 TGAS1) * XM1 - (VOLU1 * PVAP1) ;
  1044. 'SINO' ;
  1045. NAMCV1 = 'CHAINE' 'CV' NAMC1 ;
  1046. XCV1 = INPUT . 'PHYSICAL' . NAMCV1 ;
  1047. MCV1 = MCV1 + (XM1 * XCV1) ;
  1048. 'FINS' ;
  1049. 'FIN' BLO121 ;
  1050. INPUT . 'CELL' . 'UGAS' . ICELL = TGAS1 * MCV1 + UVAP1 ;
  1051. 'FINSI' ;
  1052. PRES1 = INPUT . 'CELL' . 'PT' . ICELL ;
  1053. VOLU1 = INPUT . 'CELL' . 'VOL' . ICELL ;
  1054. UGAS1 = INPUT . 'CELL' . 'UGAS' . ICELL ;
  1055. MASS1 = 0. ;
  1056. 'REPETER' BLO122 NCOMP1 ;
  1057. NOM1 = IND2 . &BLO122 ;
  1058. NAMC1 = INPUT . 'COMPONENT' . NOM1 ;
  1059. NAMM1 = 'CHAINE' 'M' NAMC1 ;
  1060. XM1 = INPUT . 'CELL' . NAMM1 . ICELL ;
  1061. MASS1 = MASS1 + XM1 ;
  1062. 'FIN' BLO122 ;
  1063. HGAS2 = (UGAS1 + (PRES1 * VOLU1)) / MASS1 ;
  1064. INPUT . 'CELL' . 'HGAS' . ICELL = HGAS2 ;
  1065. 'FIN' BLO12 ;
  1066. 'SI' ('NON' ('EXIS' (INPUT . 'TIMECALC') 'FREQSAVE')) ;
  1067. 'SI' ('NON' ('EXIS' (INPUT . 'TIMECALC') 'LISTSAVE')) ;
  1068. INPUT . 'TIMECALC' . 'FREQSAVE' = 1 ;
  1069. 'MESS' MESS0 'the step frequency for saving FREQSAVE (1)';
  1070. 'FINSI' ;
  1071. 'FINSI' ;
  1072. *
  1073. 'SI' ('NON' ('EXIS' (INPUT . 'TIMECALC') 'FREQPLOT')) ;
  1074. INPUT . 'TIMECALC' . 'FREQPLOT' = 1 ;
  1075. 'MESS' MESS0 'the step frequency for plotting FREQPLOT (1)';
  1076. 'FINSI' ;
  1077. *
  1078. 'SI' ('NON' ('EXIS' (INPUT . 'TIMECALC') 'ERRTOL')) ;
  1079. INPUT . 'TIMECALC' . 'ERRTOL' = 0.001 ;
  1080. 'MESS' MESS0 'the relative error tolerance ERRTOL (0.001)';
  1081. 'FINSI' ;
  1082. 'SI' ('NON' ('EXISTE' INPUT 'NAMECASE')) ;
  1083. INPUT . 'NAMECASE' = 'NAUTILUS Evaluation' ;
  1084. 'MESS' 'WARNING : title of the case is missing';
  1085. 'FINSI' ;
  1086. *
  1087. * --- Verfication du temps maxi lorsqu'on definit un exterieur
  1088. * --- a temperature variable
  1089. * --- si Tps max utilisateur < Tps final calcul
  1090. * --- --> Tps max exte = Tps final calcul
  1091. 'SI' ('EXISTE' INPUT 'OUTD' ) ;
  1092. NBEXTE = INPUT . 'OUTD' . 'NBOUT' ;
  1093. IND1 = 'INDEX' (INPUT . 'OUTD' . 'TPS');
  1094. 'REPETER' BLO1 NBEXTE ;
  1095. IND2 = IND1 . &BLO1 ;
  1096. NTPS1= 'DIME' (INPUT . 'OUTD' . 'TPS' . IND2) ;
  1097. TPSF1= 'EXTR' (INPUT . 'OUTD' . 'TPS' . IND2) NTPS1 ;
  1098. NTPS2= 'DIME' (INPUT . 'TIMECALC' .'LISTCALC') ;
  1099. TPSF2= 'EXTR' (INPUT . 'TIMECALC' .'LISTCALC') NTPS2 ;
  1100. 'SI' (TPSF1 '<' TPSF2) ;
  1101. INPUT.'OUTD'.'TPS'.IND2 = INPUT.'OUTD'.'TPS'.IND2
  1102. 'ET' ('PROG' TPSF2);
  1103. TEMP2 = 'EXTR' (INPUT . 'OUTD' . 'TEMP' . IND2) NTPS1 ;
  1104. INPUT.'OUTD'.'TEMP'.IND2 = INPUT.'OUTD'.'TEMP'.IND2
  1105. 'ET' ('PROG' TEMP2);
  1106. 'MESS' 'Warning : Bad exterior temperature definition in ' IND2;
  1107. 'MESS' 'Final Time exterior = Final Time calculation = ' TPSF2;
  1108. 'FINSI' ;
  1109. 'FIN' BLO1 ;
  1110. 'FINSI' ;
  1111.  
  1112. 'FINPROC' INPUT ;
  1113. *$$$$ TO_DFDT
  1114. 'DEBP' TO_DFDT ;
  1115. *
  1116. 'ARGU' TABOPER*'TABLE' ;
  1117. *
  1118. *
  1119. LISTOP1 = 'TABLE' 'OPER_0D' ;
  1120. *
  1121. TYP1 = 'TYPE' TABOPER . 'DT' ;
  1122. 'SI' ('EGA' TYP1 'MOT ') ;
  1123. DT1 = TABOPER . 'INCO' . (TABOPER . 'DT') ;
  1124. 'SINON';
  1125. 'SI' ('EGA' TYP1 'FLOTTANT') ;
  1126. DT1 = TABOPER . 'DT' ;
  1127. 'SINON' ;
  1128. 'ERRE'
  1129. 'TO_DFDT procedure, OPER_0D table : DT must be FLOTTANT or MOT';
  1130. 'FIN' ;
  1131. 'FINSI' ;
  1132. 'FINSI' ;
  1133. TYP1 = 'TYPE' TABOPER . 'MULT' ;
  1134. 'SI' ('EGA' TYP1 'MOT ') ;
  1135. MULT1 = TABOPER . 'INCO' . (TABOPER . 'MULT') ;
  1136. 'SINON';
  1137. 'SI' (('EGA' TYP1 'FLOTTANT') 'OU' ('EGA' TYP1 'CHPOINT')) ;
  1138. MULT1 = TABOPER . 'MULT' ;
  1139. 'SINON' ;
  1140. 'ERRE'
  1141. 'TO_DFDT procedure, OPER_0D table : DT must be FLOTTANT or MOT';
  1142. 'FIN' ;
  1143. 'FINSI' ;
  1144. 'FINSI' ;
  1145. *
  1146. LISTOP1 . 'NAME' = MOT 'MDIA' ;
  1147. LISTOP1 . 'MAILLAGE' = TABOPER . 'MAILLAGE' ;
  1148. LISTOP1 . 'INCO' = TABOPER . 'INCO' ;
  1149. LISTOP1 . 'COEF' = mult1 / DT1 ;
  1150. LISTOP1 . 'DUAL' = TABOPER . 'DUAL' ;
  1151. LISTOP1 . 'PRIMAL' = TABOPER . 'DUAL' ;
  1152. LISTOP1 . 'TYPEL' = 'P=D' ;
  1153. MDIA LISTOP1 ;
  1154. *
  1155. NOMD1 = TABOPER . 'DUAL' ;
  1156. 'SI' ('EXIS' taboper 'DUA2') ;
  1157. NOMD2 = TABOPER . 'DUA2' ;
  1158. 'SINO' ;
  1159. NOMD2 = NOMD1 ;
  1160. 'FINSI' ;
  1161. CHPD1 = 'EXCO' NOMD1 (TABOPER . 'INCO' . NOMD2) 'SCAL' ;
  1162. CHRES1 = CHPD1 * (MULT1 / DT1) ;
  1163. TABOPER . 'RHS' = 'EXCO' 'SCAL' CHRES1 NOMD1 'NATURE' 'DISCRET';
  1164. TABOPER . 'LHS' = LISTOP1 . 'LHS' ;
  1165. *
  1166. 'FINP' ;
  1167. *$$$$ TO_DISK
  1168. 'DEBP' TO_DISK SET*'TABLE' ;
  1169. *
  1170. DATA = SET . 'DATA' ;
  1171. INCO = SET . 'INCO' ;
  1172. GEOINF = SET . 'GEOINF' ;
  1173. *
  1174. L1 = DATA . 'LENGTH' ;
  1175. K1 = DATA . 'DISC' ;
  1176. S1 = INCO . 'AREA' ;
  1177. flagmp = faux ;
  1178. *
  1179. NBJUNC = GEOINF . 'NBJUNC' ;
  1180. RHO12 = 0. * S1 ;
  1181. 'REPE' BLO20 NBJUNC ;
  1182. *
  1183. LESEG3 = 'ELEM' (GEOINF . 'JUNCEL') 'SEG3' &BLO20 ;
  1184. LSEG3 = 'CHAN' LESEG3 POI1 ;
  1185. PT1 = LSEG3 'POIN' 1 ;
  1186. PTF1 = LSEG3 'POIN' 2 ;
  1187. PT2 = LSEG3 'POIN' 3 ;
  1188. RHO1 = 'EXTR' (INCO . 'RGAS') 'RGAS' PT1 ;
  1189. RHO2 = 'EXTR' (INCO . 'RGAS') 'RGAS' PT2 ;
  1190. RHOM = (RHO1 + RHO2) / 2.D0 ;
  1191. RHO12 = RHO12 + ('MANU' 'CHPO' PTF1 1 'SCAL' RHOM) ;
  1192. *
  1193. 'SI' (set . 'QSONIC') ;
  1194. *
  1195. P1 = 'EXTR' (INCO . 'PTM') 'PT' PT1 ;
  1196. P2 = 'EXTR' (INCO . 'PTM') 'PT' PT2 ;
  1197. 'SI' (P1 '>' P2) ;
  1198. P0P = P1 ;
  1199. P0M = P2 ;
  1200. T0 = 'EXTR' (INCO . 'TGM') 'TGAS' PT1 ;
  1201. 'SINO' ;
  1202. P0P = P2 ;
  1203. P0M = P1 ;
  1204. T0 = 'EXTR' (INCO . 'TGM') 'TGAS' PT2 ;
  1205. 'FINSI' ;
  1206. A0 = 'EXTR' (INCO . 'AREA') 'SCAL' PTF1 ;
  1207. fg0 = 1.2810 ;
  1208. cp0 = 1004. ;
  1209. mp0 = p0p * A0 * fg0 / (cp0 * t0 ** 0.5) ;
  1210. Q0 = 'ABS' ('EXTR' (INCO . 'QCEL') 'QCEL' PTF1) ;
  1211. 'SI' (Q0 '>' set . 'QLIMIT') ;
  1212. 'SI' (Q0 '>' mp0) ;
  1213. rp0 = P0P / P0M ;
  1214. 'SI' (rp0 '>' 0.528) ;
  1215. 'SI' flagmp ;
  1216. mp1 = mp1 'ET'
  1217. ('MANU' 'CHPO' PTF1 1 'QCEL' mp0 'NATURE' 'DISCRET') ;
  1218. 'SINO' ;
  1219. flagmp = vrai ;
  1220. mp1 = 'MANU' 'CHPO' PTF1 1 'QCEL' mp0 'NATURE' 'DISCRET' ;
  1221. 'FINSI' ;
  1222. 'FINSI' ;
  1223. 'FINSI' ;
  1224. 'FINSI' ;
  1225. 'FINSI' ;
  1226. *
  1227. 'FIN' BLO20 ;
  1228. *
  1229. 'SI' flagmp ;
  1230. mson1 = 'EXTR' mp1 'MAIL' ;
  1231. s2 = s1 - ('REDU' s1 mson1) ;
  1232. qnul1 = s2 'MASQ' 'EGINFE' 1.D-30 ;
  1233. sigp0 = (inco . 'QCEL') 'MASQ' 'SUPERIEUR' 0.D0 ;
  1234. sigm0 = sigp0 - 1. ;
  1235. sign0 = 'REDU' (sigp0 + sigm0) mson1 ;
  1236. sign0 = 'NOMC' 'SCAL' sign0 ;
  1237. qmmp1 = (1.D0 - qnul1) * inco . 'QCEL' ;
  1238. inco . 'QCEL' = qmmp1 + (mp1 * sign0) ;
  1239. Q1 = 'ABS' ('NOMC' 'SCAL' qmmp1) ;
  1240. 'SINO' ;
  1241. s2 = s1 ;
  1242. qnul1 = s1 'MASQ' 'EGINFE' 1.D-30 ;
  1243. inco . 'QCEL' = (1.D0 - qnul1) * inco . 'QCEL' ;
  1244. q1 = 'ABS' ('NOMC' 'SCAL' (INCO . 'QCEL')) ;
  1245. 'FINSI' ;
  1246. *
  1247. inco . 'QDFDT' = rho12 * s2 * l1 ;
  1248. inco . 'QKMBT' = rho12 * s2 * s2 ;
  1249. inco . 'QMDIA' = k1 * q1 + qnul1 ;
  1250. inco . 'QMDIA2' = k1 * q1 / 2.D0 + qnul1 ;
  1251. *
  1252. 'FINP' ;
  1253.  
  1254. *$$$$ TO_EXEC
  1255. 'DEBPROC' TO_EXEC SET*'TABLE' LISTOPER*'TABLE'
  1256. CHOI1*'TABLE' CHOI2*'TABLE' CHOI3*'TABLE' CHOI4*'TABLE' ;
  1257. *
  1258. TSD = SET . 'DATA' ;
  1259. TSF = SET . 'FIELDS' ;
  1260. TSG = SET . 'GEOINF' ;
  1261. TST = SET . 'TIMECALC' ;
  1262. *
  1263. RELAX1 = SET . 'RELAX' ;
  1264. RELAX4 = SET . 'RELINT' ;
  1265. IMP1 = SET . 'IMPR' ;
  1266. ERRTOL = TST . 'ERRTOL' ;
  1267. LJUNC = 'EXIS' TSG 'JUNCTION' ;
  1268. LJOUT = 'EXIS' TSG 'JUNCTOUT' ;
  1269. LWALL = 'EXIS' TSG 'LAYERC' ;
  1270. LSUMP = 'EXIS' TSG 'LAYERS' ;
  1271. NBSAU1 = 'DIME' (SET . 'HISTO') ;
  1272. GLOLHS = 'TABLE' ;
  1273. GLORHS = 'TABLE' ;
  1274. LOCLHS = 'TABLE' ;
  1275. LOCRHS = 'TABLE' ;
  1276. *
  1277. NOPE1 = 'DIME' CHOI1 ;
  1278. 'SI' ('NEG' NOPE1 0) ;
  1279. IND1 = 'INDEX' CHOI1 ;
  1280. 'FINSI' ;
  1281. NOPE2 = 'DIME' CHOI2 ;
  1282. 'SI' ('NEG' NOPE2 0) ;
  1283. IND2 = 'INDEX' CHOI2 ;
  1284. 'FINSI' ;
  1285. NOPE3 = 'DIME' CHOI3 ;
  1286. 'SI' ('NEG' NOPE3 0) ;
  1287. IND3 = 'INDEX' CHOI3 ;
  1288. 'FINSI' ;
  1289. NOPE4 = 'DIME' CHOI4 ;
  1290. 'SI' ('NEG' NOPE4 0) ;
  1291. IND4 = 'INDEX' CHOI4 ;
  1292. 'FINSI' ;
  1293. *
  1294. *- Création du premier ensemble de matrices et seconds membres
  1295. *
  1296. 'REPETER' BLO70 NOPE1 ;
  1297. IK1 = CHOI1 . (IND1 . &BLO70) ;
  1298. * ('TEXTE' LISTOPER . IK1 . 'NAME') (LISTOPER . IK1) ;
  1299. LISTOPER . IK1 . 'NAME' (LISTOPER . IK1) ;
  1300. GLOLHS . IK1 = LISTOPER . IK1 . 'LHS' ;
  1301. 'SI' ('EXISTE' (LISTOPER . IK1) 'RHS') ;
  1302. GLORHS . IK1 = LISTOPER . IK1 . 'RHS' ;
  1303. 'FINSI' ;
  1304. 'FIN' BLO70 ;
  1305. *
  1306. ISTEPT = 1 ;
  1307. IBEGI1 = ('INDE' (TSF . 'TIME')) . ('DIME' (TSF . 'TIME')) ;
  1308. IISAUV = 1 ;
  1309. TIME1 = 'EXTR' (TST . 'LISTCALC') ISTEPT ;
  1310. TOK1 = 'PROG' TIME1 ;
  1311. NSAVE1 = 'DIME' (TST . 'TIMESAVE') ;
  1312. TSAVE1 = 'EXTR' (TST . 'TIMESAVE') (IISAUV + 1) ;
  1313. *
  1314. 'REPETER' BLO50 ((TST . 'STEPNUMB') - 1) ;
  1315. ISTEPT = ISTEPT + 1 ;
  1316. TIME2 = 'EXTR' (TST . 'LISTCALC') ISTEPT ;
  1317. DT1 = TIME2 - TIME1 ;
  1318. SET . 'INCO' . 'DT' = DT1 ;
  1319. SET . 'INCO' . 'TIME1' = TIME1 ;
  1320. TIME1 = TIME2 ;
  1321. SET . 'INCO' . 'TIME2' = TIME2 ;
  1322. 'MESS' ' ' ;
  1323. 'MESS' 'Time step =' (ISTEPT - 1) '/ time =' TIME2 ;
  1324. *
  1325. 'SI' (LJUNC 'OU' LJOUT) ;
  1326. set . 'INCO' . 'PTM' = 'COPI' set . 'INCO' . 'PT' ;
  1327. set . 'INCO' . 'TGM' = 'COPI' set . 'INCO' . 'TGAS' ;
  1328. 'SI' LJUNC ;
  1329. set . 'INCO' . 'QM' = 'COPI' set . 'INCO' . 'QCEL' ;
  1330. 'FINSI' ;
  1331. 'SI' LJOUT ;
  1332. set . 'INCO' . 'QMO' = 'COPI' set . 'INCO' . 'QOUT' ;
  1333. 'FINSI' ;
  1334. 'SI' ('EXIS' (TSD . 'AREA') 0) ;
  1335. S1 = TSD . 'AREA' . 0 ;
  1336. 'SINO' ;
  1337. S1 = 0. * (TSD . 'LENGTH') ;
  1338. 'FINSI' ;
  1339. 'SI' ('EXIS' (TSD . 'AREA') 'NBEV') ;
  1340. da = TSD . 'AREA' ;
  1341. 'REPE' blo30 (da . 'NBEV') ;
  1342. PTJ = da . &blo30 . 'LOCATION' ;
  1343. S0 = 'IPOL' TIME2 (da . &blo30 . 'EVOL') ;
  1344. S1 = S1 'ET'
  1345. ('MANU' 'CHPO' PTJ 1 'SCAL' S0 'NATURE' 'DISCRET') ;
  1346. 'FIN' blo30 ;
  1347. 'FINSI' ;
  1348. set . 'INCO' . 'AREA' = S1 ;
  1349. 'FINSI' ;
  1350. 'SI' ('EXIS' set . 'INCO' 'MLIQ') ;
  1351. set . 'INCO' . 'OMLIQ' = 'COPI' set . 'INCO' . 'MLIQ' ;
  1352. 'FINSI' ;
  1353. 'SI' ('EGA' ISTEPT 2) ;
  1354. DTOLD = DT1 ;
  1355. 'FINSI' ;
  1356. 'SI' ('EXISTE' TST 'PREDT' ) ;
  1357. OLD_INCO = PRED0 SET ;
  1358. 'SI' ('EGA' ISTEPT 2) ;
  1359. DINCO = PRED2 0.D0 SET OLD_INCO ;
  1360. 'FINSI' ;
  1361. 'FINSI' ;
  1362. *
  1363. 'REPETER' BLO52 NOPE2 ;
  1364. IK2 = CHOI2 . (IND2 . &BLO52) ;
  1365. * ('TEXTE' LISTOPER . IK2 . 'NAME') (LISTOPER . IK2) ;
  1366. LISTOPER . IK2 . 'NAME' (LISTOPER . IK2) ;
  1367. GLOLHS . IK2 = LISTOPER . IK2 . 'LHS' ;
  1368. 'SI' ('EXISTE' (LISTOPER . IK2) 'RHS') ;
  1369. GLORHS . IK2 = LISTOPER . IK2 . 'RHS' ;
  1370. 'FINSI' ;
  1371. 'FIN' BLO52 ;
  1372. *
  1373. *- Conditions aux limites pour le pas de temps DT1
  1374. *
  1375. BOUND2 = TO_BOCO SET ;
  1376. *
  1377. 'SI' ('EXISTE' TSD 'BURN' ) ;
  1378. TYPCOMB = 'CHAI' TSD . 'BURN' . TYPE ;
  1379. 'SI' ('EGA' TYPCOMB 'PROPAGATION' ) ;
  1380. BOUND3 = TO_COMBP SET ;
  1381. 'FINSI' ;
  1382. 'SI' ('EGA' TYPCOMB 'REAL' ) ;
  1383. BOUND3 = TO_COMBC SET ;
  1384. 'FINSI' ;
  1385. 'FINSI' ;
  1386. *
  1387. 'SI' ('EXISTE' TSD 'RECOMB' ) ;
  1388. BOUND4 = TO_RECOM SET ISTEPT IBEGI1;
  1389. 'FINSI' ;
  1390. *
  1391. 'SI' ('EXISTE' TSD 'PRESI' ) ;
  1392. BOUND5 = TO_PRESI SET ;
  1393. 'FINSI' ;
  1394. *
  1395. BOUND6 = BCIMPL SET ;
  1396. *
  1397. 'SI' ('EXISTE' TST 'PREDT' ) ;
  1398. PRED1 SET DINCO (DT1 / DTOLD) ;
  1399. 'FINSI' ;
  1400. ***********************************************************************
  1401. * --- Boucle interne ---
  1402. ***********************************************************************
  1403. ISTEPI = 0 ;
  1404. 'REPETER' BLO60 INSTEP ;
  1405. ISTEPI = ISTEPI + 1 ;
  1406. *
  1407. *- Actualisation des termes linéarisés
  1408. *
  1409. TO_UPLIN SET ;
  1410. *
  1411. *- Création du troisième ensemble de matrices et seconds membres
  1412. *
  1413. 'REPETER' BLO61 NOPE3 ;
  1414. IK3 = CHOI3 . (IND3 . &BLO61) ;
  1415. * ('TEXTE' LISTOPER . IK3 . 'NAME') (LISTOPER . IK3) ;
  1416. LISTOPER . IK3 . 'NAME' (LISTOPER . IK3) ;
  1417. GLOLHS . IK3 = LISTOPER . IK3 . 'LHS' ;
  1418. 'SI' ('EXISTE' (LISTOPER . IK3) 'RHS') ;
  1419. GLORHS . IK3 = LISTOPER . IK3 . 'RHS' ;
  1420. 'FINSI' ;
  1421. 'FIN' BLO61 ;
  1422. *
  1423. *- Concaténation des matrices élémentaires
  1424. *
  1425. NLHS1 = 'DIME' GLOLHS ;
  1426. DLHS1 = 'INDEX' GLOLHS ;
  1427. AXX0 = GLOLHS . (DLHS1 . 1) ;
  1428. 'SI' (NLHS1 > 1) ;
  1429. 'REPETER' BLO63 (NLHS1 - 1) ;
  1430. AXX0 = AXX0 'ET' (GLOLHS . (DLHS1 .(&BLO63 + 1))) ;
  1431. 'FIN' BLO63 ;
  1432. 'FINSI' ;
  1433. *
  1434. *- Somme des seconds membres
  1435. *
  1436. NRHS1 = 'DIME' GLORHS ;
  1437. DRHS1 = 'INDEX' GLORHS ;
  1438. BXX0 = GLORHS . (DRHS1 . 1) ;
  1439. 'SI' (NRHS1 > 1) ;
  1440. 'REPETER' BLO64 (NRHS1 - 1) ;
  1441. BXX0 = BXX0 + (GLORHS . (DRHS1 . (&BLO64 + 1))) ;
  1442. 'FIN' BLO64 ;
  1443. 'FINSI' ;
  1444. *
  1445. *- Ajout des conditions aux limites
  1446. *- Cas standard et combustion, recombineurs et/ou puissance residuelle
  1447. *
  1448. 'SI' ('EXISTE' BOUND2 'MATRIX') ;
  1449. AXX0 = AXX0 'ET' (BOUND2 . 'MATRIX');
  1450. 'FINSI' ;
  1451. 'SI' ('EXISTE' BOUND2 'RHS') ;
  1452. BXX0 = BXX0 + (BOUND2 . 'RHS') ;
  1453. 'FINSI' ;
  1454. 'SI' ('EXISTE' TSD 'BURN' ) ;
  1455. 'SI' ('EXISTE' BOUND3 'RHS') ;
  1456. BXX0 = BXX0 + (BOUND3 . 'RHS') ;
  1457. 'FINSI' ;
  1458. 'FINSI' ;
  1459. 'SI' ('EXISTE' TSD 'RECOMB' ) ;
  1460. 'SI' ('EXISTE' BOUND4 'RHS') ;
  1461. BXX0 = BXX0 + (BOUND4 . 'RHS') ;
  1462. 'FINSI' ;
  1463. 'FINSI' ;
  1464. 'SI' ('EXISTE' TSD 'PRESI' ) ;
  1465. 'SI' ('EXISTE' BOUND5 'RHS') ;
  1466. BXX0 = BXX0 + (BOUND5 . 'RHS') ;
  1467. 'FINSI' ;
  1468. 'FINSI' ;
  1469. 'SI' ('EXISTE' BOUND6 'RHS') ;
  1470. BXX0 = BXX0 + (BOUND6 . 'RHS') ;
  1471. 'FINSI' ;
  1472. *
  1473. *- Ajout des seconds membres dûs à la linéarisation
  1474. *
  1475. BXX0 = BXX0 + (SET . 'UPLIN' . 'RHS') ;
  1476. *
  1477. XX1 = 'RESO' AXX0 BXX0 ;
  1478. CCC1 = (AXX0 * XX1) - BXX0 ;
  1479. val1 = 'MAXI' CCC1 'ABS' ;
  1480. val2 = 'MAXI' BXX0 'ABS' ;
  1481. mess 'val1 val2' val1 val2;
  1482. 'SI' ((val1/val2) > 1.D-13 ) ;
  1483. 'ERRE' 'Probleme dans RESO pour une matrice non-symétrique ' ;
  1484. 'FINSI' ;
  1485. 'FIN' ;
  1486. 'FIN' BLO60 ;
  1487.  
  1488. *
  1489. 'FIN' BLO50 ;
  1490. 'FINPROC' ;
  1491. *$$$$ TO_FIELD
  1492. 'DEBPROC' TO_FIELD INPUT*'TABLE' ;
  1493. SET = 'TABLE' 'SET' ;
  1494. SET . 'ERROR' = 0 ;
  1495. *
  1496. SET . 'COMPONENT' = INPUT . 'COMPONENT' ;
  1497. NCOMP1 = 'DIME' (INPUT . 'COMPONENT') ;
  1498. *
  1499. LJUNC = 'EXIS' INPUT 'JUNCTION' ;
  1500. 'SI' LJUNC ;
  1501. NBJUNC = 'DIME' (INPUT . 'JUNCTION' . 'LOCATION') ;
  1502. INDJ1 = 'INDE' (INPUT . 'JUNCTION' . 'LOCATION') ;
  1503. 'FINSI' ;
  1504. *
  1505. NBCELL = 'DIME' (INPUT . 'CELL' . 'LOCATION') ;
  1506. INDC1 = 'INDE' (INPUT . 'CELL' . 'LOCATION') ;
  1507. *
  1508. GEOINF = 'TABLE' 'GEOINF' ;
  1509. GEOINF . 'NBCELL' = NBCELL ;
  1510. 'SI' LJUNC ;
  1511. *
  1512. *---------- spg des jonctions et connectivités jonction/compartiments
  1513. *---------- ou connectivités jonction/outdoor
  1514. NBJ = 0 ;
  1515. NBJO = 0 ;
  1516. 'REPE' BLO11 NBJUNC ;
  1517. II11 = INDJ1 . &BLO11 ;
  1518. FROM1 = INPUT . 'JUNCTION' . 'FROM' . II11 ;
  1519. TO1 = INPUT . 'JUNCTION' . 'TO' . II11 ;
  1520. 'SI' ('EGA' (INPUT . 'JUNCTION' . 'TYPETO' . II11) 'CELL') ;
  1521. NBJ = NBJ + 1 ;
  1522. 'SI' ('EGA' NBJ 1) ;
  1523. THEJUN = 'MANU' 'POI1' (INPUT . 'JUNCTION' . 'LOCATION' . II11);
  1524. JUCE1 = 'MANU' 'SEG3' (INPUT . 'CELL' . 'LOCATION' . FROM1)
  1525. (INPUT . 'JUNCTION' . 'LOCATION' . II11)
  1526. (INPUT . 'CELL' . 'LOCATION' . TO1) ;
  1527. 'SINO' ;
  1528. THEJUN = THEJUN 'ET' (INPUT . 'JUNCTION' . 'LOCATION' . II11) ;
  1529. JUCE1 = JUCE1 'ET' ('MANU' 'SEG3'
  1530. (INPUT . 'CELL' . 'LOCATION' . FROM1)
  1531. (INPUT . 'JUNCTION' . 'LOCATION' . II11)
  1532. (INPUT . 'CELL' . 'LOCATION' . TO1) ) ;
  1533. 'FINSI' ;
  1534. 'SINO' ;
  1535. NBJO = NBJO + 1 ;
  1536. 'SI' ('EGA' NBJO 1) ;
  1537. THEOUT = 'MANU' 'POI1' (INPUT . 'JUNCTION' . 'LOCATION' . II11);
  1538. JUCE2 = 'MANU' 'SEG3' (INPUT . 'CELL' . 'LOCATION' . FROM1)
  1539. (INPUT . 'JUNCTION' . 'LOCATION' . II11)
  1540. (INPUT . 'OUTD' . 'LOCATION' . TO1) ;
  1541. 'SINO' ;
  1542. THEOUT = THEOUT 'ET' (INPUT . 'JUNCTION' . 'LOCATION' . II11) ;
  1543. JUCE2 = JUCE2 'ET' ('MANU' 'SEG3'
  1544. (INPUT . 'CELL' . 'LOCATION' . FROM1)
  1545. (INPUT . 'JUNCTION' . 'LOCATION' . II11)
  1546. (INPUT . 'OUTD' . 'LOCATION' . TO1) ) ;
  1547. 'FINSI' ;
  1548. 'FINSI' ;
  1549. 'FIN' BLO11 ;
  1550. 'SI' ('NEG' NBJ 0) ;
  1551. GEOINF . 'NBJUNC' = NBJ ;
  1552. GEOINF . 'JUNCTION' = THEJUN ;
  1553. GEOINF . 'JUNCEL' = JUCE1 ;
  1554. 'FINSI' ;
  1555. 'SI' ('NEG' NBJO 0) ;
  1556. GEOINF . 'NBJOUT' = NBJO ;
  1557. GEOINF . 'JUNCTOUT' = THEOUT ;
  1558. GEOINF . 'JUNOUT' = JUCE2 ;
  1559. 'FINSI' ;
  1560. 'FINSI' ;
  1561. *
  1562. *------------------------------- support géométrique des compartiments
  1563. II10 = INDC1 . 1 ;
  1564. THECEL = 'MANU' 'POI1' (INPUT . 'CELL' . 'LOCATION' . II10) ;
  1565. 'SI' (NBCELL '>' 1) ;
  1566. 'REPE' BLO10 (NBCELL - 1) ;
  1567. I10 = &BLO10 + 1 ;
  1568. II10 = INDC1 . I10 ;
  1569. PT10 = INPUT . 'CELL' . 'LOCATION' . II10 ;
  1570. THECEL = THECEL 'ET' PT10 ;
  1571. 'FIN' BLO10 ;
  1572. 'FINSI' ;
  1573. GEOINF . 'CELL' = THECEL ;
  1574. *
  1575. *---------- informations géométriques associées aux jonctions liquides ---
  1576. 'SI' ('EXIS' INPUT 'JULIQ') ;
  1577. NBJUL1 = 'DIME' (INPUT . 'JULIQ' . 'LOCATION') ;
  1578. 'SINON' ;
  1579. NBJUL1 = 0 ;
  1580. 'FINSI' ;
  1581. 'SI' (NBJUL1 'NEG' 0) ;
  1582. INDJL1 = 'INDE' (INPUT . 'JULIQ' . 'LOCATION') ;
  1583. GEOINF . 'NBJUL' = NBJUL1 ;
  1584. II10 = INDJL1 . 1 ;
  1585. FROM10 = INPUT . 'JULIQ' . 'FROM' . II10 ;
  1586. TO10 = INPUT . 'JULIQ' . 'TO' . II10 ;
  1587. PTF1 = INPUT . 'CELL' . 'LOCATION' . FROM10 ;
  1588. PTJL1 = INPUT . 'JULIQ' . 'LOCATION' . II10 ;
  1589. PTT1 = INPUT . 'CELL' . 'LOCATION' . TO10 ;
  1590. THELIQ = 'MANU' 'POI1' PTJL1 ;
  1591. JULCE1 = 'MANU' 'SEG3' PTF1 PTJL1 PTT1 ;
  1592. 'SI' (NBJUL1 '>' 1) ;
  1593. 'REPE' BL10 (NBJUL1 - 1) ;
  1594. I10 = &BL10 + 1 ;
  1595. II10 = INDJL1 . I10 ;
  1596. FROM10 = INPUT . 'JULIQ' . 'FROM' . II10 ;
  1597. TO10 = INPUT . 'JULIQ' . 'TO' . II10 ;
  1598. PTF1 = INPUT . 'CELL' . 'LOCATION' . FROM10 ;
  1599. PTJL1 = INPUT . 'JULIQ' . 'LOCATION' . II10 ;
  1600. PTT1 = INPUT . 'CELL' . 'LOCATION' . TO10 ;
  1601. THELIQ = THELIQ 'ET' PTJL1 ;
  1602. JULCE1 = JULCE1 'ET' ('MANU' 'SEG3' PTF1 PTJL1 PTT1) ;
  1603. 'FIN' BL10 ;
  1604. 'FINSI' ;
  1605. GEOINF . 'JULIQ' = THELIQ ;
  1606. GEOINF . 'JULCEL' = JULCE1 ;
  1607. 'FINSI' ;
  1608. *
  1609. *---- informations géométriques liées aux éventuels puisards externes
  1610. NBSUMP = 'DIME' (INPUT . 'SUMP' . 'LOCATION') ;
  1611. GEOINF . 'NBSUMP' = NBSUMP ;
  1612. 'SI' (NBSUMP 'NEG' 0) ;
  1613. INDS1 = 'INDE' (INPUT . 'SUMP' . 'LOCATION') ;
  1614. II300 = INDS1 . 1 ;
  1615. PTS1 = INPUT . 'SUMP' . 'LOCATION' . II300 ;
  1616. THESUM = 'MANU' 'POI1' PTS1 ;
  1617. 'SI' (NBSUMP '>' 1) ;
  1618. 'REPE' BLO300 (NBSUMP - 1) ;
  1619. I300 = &BLO300 + 1 ;
  1620. II300 = INDS1 . I300 ;
  1621. PTS1 = INPUT . 'SUMP' . 'LOCATION' . II300 ;
  1622. THESUM = THESUM 'ET' PTS1 ;
  1623. 'FIN' BLO300 ;
  1624. 'FINSI' ;
  1625. GEOINF . 'SUMP' = THESUM ;
  1626. 'FINSI' ;
  1627. *
  1628. *---- informations géométriques associées aux murs pour thermique murs
  1629. 'SI' ('EXIS' INPUT 'WALL') ;
  1630. *
  1631. * Remplissage des indices : 'EXT','NBWALL','CENTRW' et 'WALCEL'
  1632. *
  1633. * PT1000 : point extérieur à l'enceinte
  1634. * NBWALL : nombre de murs
  1635. *
  1636. LEXTE = FAUX ;
  1637. 'SI' ('EXIS' INPUT 'OUTD') ;
  1638. LEXTE = VRAI ;
  1639. INDXT = 'INDE' (INPUT . 'OUTD' . 'TEMP') ;
  1640. NBEXTE = INPUT . 'OUTD' . 'NBOUT' ;
  1641. 'FINSI' ;
  1642. *
  1643. PT1000 = 10000. 10000. ;
  1644. GEOINF . 'EXT' = PT1000 ;
  1645. NBWALL = 'DIME' (INPUT . 'WALL' . 'LOCATION') ;
  1646. INDW1 = 'INDE' (INPUT . 'WALL' . 'LOCATION') ;
  1647. GEOINF . 'NBWALL' = NBWALL ;
  1648. *
  1649. II100 = INDW1 . 1 ;
  1650. PTC1 = INPUT . 'WALL' . 'LOCATION' . II100 ;
  1651. FROM1 = INPUT . 'WALL' . 'FROM' . II100 ;
  1652. TFRO1 = INPUT . 'WALL' . 'TYPEFROM' . II100 ;
  1653. TO1 = INPUT . 'WALL' . 'TO' . II100 ;
  1654. TTO1 = INPUT . 'WALL' . 'TYPETO' . II100 ;
  1655. *
  1656. 'SI' ('EGA' FROM1 0) ;
  1657. PTF1 = PT1000 ;
  1658. 'SINON' ;
  1659. 'SI' ('EGA' TFRO1 'OUTDOOR') ;
  1660. PTF1 = INPUT . 'OUTD' . 'LOCATION' . FROM1 ;
  1661. 'SINON' ;
  1662. PTF1 = INPUT . 'CELL' . 'LOCATION' . FROM1 ;
  1663. 'FINSI' ;
  1664. 'FINSI' ;
  1665. *
  1666. 'SI' ('EGA' TO1 0) ;
  1667. PTT1 = PT1000 ;
  1668. 'SINON' ;
  1669. 'SI' ('EGA' TTO1 'OUTDOOR') ;
  1670. PTT1 = INPUT . 'OUTD' . 'LOCATION' . TO1 ;
  1671. 'SINON' ;
  1672. PTT1 = INPUT . 'CELL' . 'LOCATION' . TO1 ;
  1673. 'FINSI' ;
  1674. 'FINSI' ;
  1675. *
  1676. THEWAL = 'MANU' 'POI1' PTC1 ;
  1677. WALCE1 = 'MANU' 'SEG3' PTF1 PTC1 PTT1 ;
  1678. 'SI' (NBWALL > 1) ;
  1679. 'REPE' BLO100 (NBWALL - 1) ;
  1680. I100 = &BLO100 + 1 ;
  1681. II100 = INDW1 . I100 ;
  1682. PTC1 = INPUT . 'WALL' . 'LOCATION' . II100 ;
  1683. FROM1 = INPUT . 'WALL' . 'FROM' . II100 ;
  1684. TFRO1 = INPUT . 'WALL' . 'TYPEFROM' . II100 ;
  1685. TO1 = INPUT . 'WALL' . 'TO' . II100 ;
  1686. TTO1 = INPUT . 'WALL' . 'TYPETO' . II100 ;
  1687. *
  1688. 'SI' ('EGA' FROM1 0) ;
  1689. PTF1 = PT1000 ;
  1690. 'SINON' ;
  1691. 'SI' ('EGA' TFRO1 'OUTDOOR') ;
  1692. PTF1 = INPUT . 'OUTD' . 'LOCATION' . FROM1 ;
  1693. 'SINON' ;
  1694. PTF1 = INPUT . 'CELL' . 'LOCATION' . FROM1 ;
  1695. 'FINSI' ;
  1696. 'FINSI' ;
  1697. *
  1698. 'SI' ('EGA' TO1 0) ;
  1699. PTT1 = PT1000 ;
  1700. 'SINON' ;
  1701. 'SI' ('EGA' TTO1 'OUTDOOR') ;
  1702. PTT1 = INPUT . 'OUTD' . 'LOCATION' . TO1 ;
  1703. 'SINON' ;
  1704. PTT1 = INPUT . 'CELL' . 'LOCATION' . TO1 ;
  1705. 'FINSI' ;
  1706. 'FINSI' ;
  1707. *
  1708. THEWAL = THEWAL 'ET' PTC1 ;
  1709. WALCE1 = WALCE1 'ET' ('MANU' 'SEG3' PTF1 PTC1 PTT1) ;
  1710. 'FIN' BLO100 ;
  1711. 'FINSI' ;
  1712. GEOINF . 'CENTRW' = THEWAL ;
  1713. GEOINF . 'WALCEL' = WALCE1 ;
  1714. *
  1715. * remplissage des indices 'WALL','INWALL', 'LAYERW' et 'WALLAY'
  1716. *
  1717. WALLIN = TABLE ;
  1718. FLAGC = 0 ;
  1719. FLAGC1= 0 ;
  1720. FLAGC2= 0 ;
  1721. FLAGC3= 0 ;
  1722. FLAGS = 0 ;
  1723. FLAGO = 0 ;
  1724. FLAGE = 0 ;
  1725. 'REPE' BLO110 NBWALL ;
  1726. II110 = INDW1 . &BLO110 ;
  1727. * récupération point centre du mur
  1728. PTC1 = INPUT . 'WALL' . 'LOCATION' . II110 ;
  1729. * point du compartiment amont à identifier parmi 0, OUTDOOR ou CELL
  1730. FROM1 = INPUT . 'WALL' . 'FROM' . II110 ;
  1731. TFRO1 = INPUT . 'WALL' . 'TYPEFROM' . II110 ;
  1732. 'SI' ('EGA' FROM1 0) ;
  1733. PTF1 = GEOINF . 'EXT' ;
  1734. 'SINON' ;
  1735. 'SI' ('EGA' TFRO1 'OUTDOOR') ;
  1736. PTF1 = INPUT . 'OUTD' . 'LOCATION' . FROM1 ;
  1737. 'SINON' ;
  1738. PTF1 = INPUT . 'CELL' . 'LOCATION' . FROM1 ;
  1739. 'FINSI' ;
  1740. 'FINSI' ;
  1741. * calcul de la pente
  1742. XC1 YC1 = 'COOR' PTC1 ;
  1743. XF1 YF1 = 'COOR' PTF1 ;
  1744. LW1 = ( ((XC1-XF1)*(XC1-XF1)) + ((YC1-YF1)*(YC1-YF1)) ) ** 0.5 ;
  1745. 'SI' ('EGA' LW1 0.D0) ;
  1746. COS1 = 1.D0 ;
  1747. SIN1 = 0.D0 ;
  1748. 'SINO' ;
  1749. COS1 = (XC1 - XF1) / LW1 ;
  1750. SIN1 = (YC1 - YF1) / LW1 ;
  1751. 'FINSI' ;
  1752. * récupération de l'épaisseur totale du mur
  1753. XEW1 = 0. ;
  1754. NLAY1 = INPUT . 'WALL' . 'NLAYER' . II110 ;
  1755. INDWM1 = 'INDE' (INPUT . 'WALL' . 'MATERIAL' . II110) ;
  1756. 'REPE' BLO111 NLAY1 ;
  1757. II111 = INDWM1 . &BLO111 ;
  1758. XEW1 = XEW1 + (INPUT . 'WALL' . 'THICK' . II110 . II111) ;
  1759. 'FIN' BLO111 ;
  1760. * création du premier point du mur
  1761. XW1 = XC1 - ((XEW1 / 2.) * COS1) ;
  1762. YW1 = YC1 - ((XEW1 / 2.) * SIN1) ;
  1763. PTW1 = XW1 YW1 ;
  1764. LINE1 = PTW1 ;
  1765. * création des autres points du mur
  1766. 'REPE' BLO112 NLAY1 ;
  1767. II112 = INDWM1 . &BLO112 ;
  1768. * nombre de noeuds et épaisseur de la couche
  1769. NBNO1 = INPUT . 'WALL' . 'NODES' . II110 . II112 ;
  1770. EPAI1 = INPUT . 'WALL' . 'THICK' . II110 . II112 ;
  1771. EPAI2 = EPAI1 / (NBNO1 + 1) ;
  1772. 'REPE' BLO113 (NBNO1 + 1) ;
  1773. XW2 = XW1 + (EPAI2 * COS1) ;
  1774. YW2 = YW1 + (EPAI2 * SIN1) ;
  1775. PTW2 = XW2 YW2 ;
  1776. LINE1 = LINE1 'ET' PTW2 ;
  1777. XW1 = XW2 ;
  1778. YW1 = YW2 ;
  1779. 'FIN' BLO113 ;
  1780. 'FIN' BLO112 ;
  1781. WALLIN . PTC1 = LINE1 ;
  1782. 'SI' (&BLO110 'EGA' 1) ;
  1783. LINE2 = LINE1 ;
  1784. WALLA1 = 'MANU' 'SEG3' PTW1 PTC1 PTW2 ;
  1785. 'SINON' ;
  1786. LINE2 = LINE2 'ET' LINE1 ;
  1787. WALLA1 = WALLA1 'ET' ('MANU' 'SEG3' PTW1 PTC1 PTW2) ;
  1788. 'FINSI' ;
  1789. *** Differenciation des faces en contact avec un compartiment
  1790. *** ou avec un puisard
  1791. LFROMO = 'EGA' (INPUT . 'WALL' . 'TYPEFROM' . II110) 'OUTDOOR' ;
  1792. LTOOUT = 'EGA' (INPUT . 'WALL' . 'TYPETO' . II110) 'OUTDOOR' ;
  1793. LFROMS = 'EGA' (INPUT . 'WALL' . 'TYPEFROM' . II110) 'SUMP' ;
  1794. LTOS = 'EGA' (INPUT . 'WALL' . 'TYPETO' . II110) 'SUMP' ;
  1795. FROM1 = INPUT . 'WALL' . 'FROM' . II110 ;
  1796. TO1 = INPUT . 'WALL' . 'TO' . II110 ;
  1797. * A) AMONT = SUMP
  1798. 'SI' LFROMS ;
  1799. 'SI' ('EGA' FLAGS 0) ;
  1800. LAYS1 = 'MANU' 'POI1' PTW1 ;
  1801. FLAGS = 1 ;
  1802. 'SINON' ;
  1803. LAYS1 = LAYS1 'ET' ('MANU' 'POI1' PTW1) ;
  1804. 'FINSI' ;
  1805. * A1) AMONT = SUMP et AVAL = SUMP
  1806. 'SI' LTOS ;
  1807. LAYS1 = LAYS1 'ET' ('MANU' 'POI1' PTW2) ;
  1808. 'SINON' ;
  1809. 'SI' LTOOUT ;
  1810. 'SI' ('EGA' TO1 0);
  1811. * A2) AMONT = SUMP et AVAL = 0
  1812. 'SI' ('EGA' FLAGE 0) ;
  1813. LAYE1 = 'MANU' 'SEG2' PTW2 (GEOINF.'EXT') ;
  1814. FLAGE = 1 ;
  1815. 'SINON' ;
  1816. LAYE1 = LAYE1 'ET' ('MANU' 'SEG2' PTW2 (GEOINF.'EXT'));
  1817. 'FINSI' ;
  1818. 'SINON' ;
  1819. * A3) AMONT = SUMP et AVAL = OUTDOOR
  1820. 'SI' ('EGA' FLAGE 0) ;
  1821. LAYE1 = 'MANU' 'SEG2' PTW2 (INPUT.'OUTD'.'LOCATION'. TO1);
  1822. FLAGE = 1 ;
  1823. 'SINON' ;
  1824. LAYE1 = LAYE1 'ET' ('MANU' 'SEG2' PTW2 (INPUT.'OUTD'.'LOCATION'.TO1));
  1825. 'FINSI' ;
  1826. 'FINSI' ;
  1827. 'SI' ('EGA' FLAGO 0) ;
  1828. LAYO1 = 'MANU' 'POI1' PTW2 ;
  1829. FLAGO = 1 ;
  1830. 'SINON' ;
  1831. LAYO1 = LAYO1 'ET' ('MANU' 'POI1' PTW2) ;
  1832. 'FINSI' ;
  1833. 'SINON' ;
  1834. * A4) AMONT = SUMP et AVAL = CELL
  1835. 'SI' ('EXIS' INPUT.'PHYSICAL' 'CONDENSE') ;
  1836. * Identification du modele de condensation pour la face CELL
  1837. KOND1 = INPUT . 'WALL' . 'COND2' . II110 ;
  1838. 'SI' ('EGA' KOND1 'CHILTON');
  1839. 'SI' ('EGA' FLAGC1 0) ;
  1840. LAYC11 = 'MANU' 'POI1' PTW2 ;
  1841. FLAGC1 = 1 ;
  1842. 'SINON' ;
  1843. LAYC11 = LAYC11 'ET' ('MANU' 'POI1' PTW2) ;
  1844. 'FINSI' ;
  1845. 'FINSI' ;
  1846. 'SI' ('EGA' KOND1 'TAGAMI');
  1847. 'SI' ('EGA' FLAGC2 0) ;
  1848. LAYC12 = 'MANU' 'POI1' PTW2 ;
  1849. FLAGC2 = 1 ;
  1850. 'SINON' ;
  1851. LAYC12 = LAYC12 'ET' ('MANU' 'POI1' PTW2) ;
  1852. 'FINSI' ;
  1853. 'FINSI' ;
  1854. 'SI' ('EGA' KOND1 'UCHIDA');
  1855. 'SI' ('EGA' FLAGC3 0) ;
  1856. LAYC13 = 'MANU' 'POI1' PTW2 ;
  1857. FLAGC3 = 1 ;
  1858. 'SINON' ;
  1859. LAYC13 = LAYC13 'ET' ('MANU' 'POI1' PTW2) ;
  1860. 'FINSI' ;
  1861. 'FINSI' ;
  1862. 'SINON' ;
  1863. 'SI' ('EGA' FLAGC 0) ;
  1864. LAYC1 = 'MANU' 'POI1' PTW2 ;
  1865. FLAGC = 1 ;
  1866. 'SINON' ;
  1867. LAYC1 = LAYC1 'ET' ('MANU' 'POI1' PTW2) ;
  1868. 'FINSI' ;
  1869. 'FINSI' ;
  1870. 'FINSI' ;
  1871. 'FINSI' ;
  1872. 'SINON' ;
  1873. * B) AMONT = 0 ou OUTDOOR
  1874. 'SI' LFROMO ;
  1875. 'SI' ('EGA' (INPUT . 'WALL' . 'FROM'. II110) 0);
  1876. 'SI' ('EGA' FLAGE 0) ;
  1877. LAYE1 = 'MANU' 'SEG2' PTW1 (GEOINF.'EXT') ;
  1878. FLAGE = 1 ;
  1879. 'SINON' ;
  1880. LAYE1 = LAYE1 'ET' ('MANU' 'SEG2' PTW1 (GEOINF.'EXT'));
  1881. 'FINSI' ;
  1882. 'SINON' ;
  1883. 'SI' ('EGA' FLAGE 0) ;
  1884. LAYE1 = 'MANU' 'SEG2' PTW1 (INPUT.'OUTD'.'LOCATION'.FROM1);
  1885. FLAGE = 1 ;
  1886. 'SINON' ;
  1887. LAYE1 = LAYE1 'ET' ('MANU' 'SEG2' PTW1 (INPUT.'OUTD'.'LOCATION'.FROM1));
  1888. 'FINSI' ;
  1889. 'FINSI' ;
  1890. 'SI' ('EGA' FLAGO 0) ;
  1891. LAYO1 = 'MANU' 'POI1' PTW1 ;
  1892. FLAGO = 1 ;
  1893. 'SINON' ;
  1894. LAYO1 = LAYO1 'ET' ('MANU' 'POI1' PTW1) ;
  1895. 'FINSI' ;
  1896. * B1) AMONT = 0 ou OUTDOOR et AVAL = SUMP
  1897. 'SI' LTOS ;
  1898. 'SI' ('EGA' FLAGS 0) ;
  1899. LAYS1 = 'MANU' 'POI1' PTW2 ;
  1900. FLAGS = 1 ;
  1901. 'SINON' ;
  1902. LAYS1 = LAYS1 'ET' ('MANU' 'POI1' PTW2) ;
  1903. 'FINSI' ;
  1904. 'SINON' ;
  1905. * B2) AMONT = 0 ou OUTDOOR et AVAL = 0 ou OUTDOOR
  1906. 'SI' LTOOUT ;
  1907. 'MESS' 'Un mur ne peut etre defini entre 2 exterieurs !';
  1908. 'ERRE' 5;
  1909. 'SINON' ;
  1910. * B3) AMONT = 0 ou OUTDOOR et AVAL = CELL
  1911. 'SI' ('EXIS' INPUT.'PHYSICAL' 'CONDENSE') ;
  1912. * Identification du modele de condensation pour la face CELL
  1913. 'SI' ('EGA' KOND1 'CHILTON');
  1914. 'SI' ('EGA' FLAGC1 0) ;
  1915. LAYC11 = 'MANU' 'POI1' PTW2 ;
  1916. FLAGC1 = 1 ;
  1917. 'SINON' ;
  1918. LAYC11 = LAYC11 'ET' ('MANU' 'POI1' PTW2) ;
  1919. 'FINSI' ;
  1920. 'FINSI' ;
  1921. 'SI' ('EGA' KOND1 'TAGAMI');
  1922. 'SI' ('EGA' FLAGC2 0) ;
  1923. LAYC12 = 'MANU' 'POI1' PTW2 ;
  1924. FLAGC2 = 1 ;
  1925. 'SINON' ;
  1926. LAYC12 = LAYC12 'ET' ('MANU' 'POI1' PTW2) ;
  1927. 'FINSI' ;
  1928. 'FINSI' ;
  1929. 'SI' ('EGA' KOND1 'UCHIDA');
  1930. 'SI' ('EGA' FLAGC3 0) ;
  1931. LAYC13 = 'MANU' 'POI1' PTW2 ;
  1932. FLAGC3 = 1 ;
  1933. 'SINON' ;
  1934. LAYC13 = LAYC13 'ET' ('MANU' 'POI1' PTW2) ;
  1935. 'FINSI' ;
  1936. 'FINSI' ;
  1937. 'SINON' ;
  1938. 'SI' ('EGA' FLAGC 0) ;
  1939. LAYC1 = 'MANU' 'POI1' PTW2 ;
  1940. FLAGC = 1 ;
  1941. 'SINON' ;
  1942. LAYC1 = LAYC1 'ET' ('MANU' 'POI1' PTW2) ;
  1943. 'FINSI' ;
  1944. 'FINSI' ;
  1945. 'FINSI' ;
  1946. 'FINSI' ;
  1947. 'SINON' ;
  1948. * C) AMONT = CELL
  1949. 'SI' ('EXIS' INPUT.'PHYSICAL' 'CONDENSE') ;
  1950. * Identification du modele de condensation pour la face CELL
  1951. KOND1 = INPUT . 'WALL' . 'COND1' . II110 ;
  1952. 'SI' ('EGA' KOND1 'CHILTON');
  1953. 'SI' ('EGA' FLAGC1 0) ;
  1954. LAYC11 = 'MANU' 'POI1' PTW1 ;
  1955. FLAGC1 = 1 ;
  1956. 'SINON' ;
  1957. LAYC11 = LAYC11 'ET' ('MANU' 'POI1' PTW1) ;
  1958. 'FINSI' ;
  1959. 'FINSI' ;
  1960. 'SI' ('EGA' KOND1 'TAGAMI');
  1961. 'SI' ('EGA' FLAGC2 0) ;
  1962. LAYC12 = 'MANU' 'POI1' PTW1 ;
  1963. FLAGC2 = 1 ;
  1964. 'SINON' ;
  1965. LAYC12 = LAYC12 'ET' ('MANU' 'POI1' PTW1) ;
  1966. 'FINSI' ;
  1967. 'FINSI' ;
  1968. 'SI' ('EGA' KOND1 'UCHIDA');
  1969. 'SI' ('EGA' FLAGC3 0) ;
  1970. LAYC13 = 'MANU' 'POI1' PTW1 ;
  1971. FLAGC3 = 1 ;
  1972. 'SINON' ;
  1973. LAYC13 = LAYC13 'ET' ('MANU' 'POI1' PTW1) ;
  1974. 'FINSI' ;
  1975. 'FINSI' ;
  1976. 'SINON' ;
  1977. 'SI' ('EGA' FLAGC 0) ;
  1978. LAYC1 = 'MANU' 'POI1' PTW1 ;
  1979. FLAGC = 1 ;
  1980. 'SINON' ;
  1981. LAYC1 = LAYC1 'ET' ('MANU' 'POI1' PTW1) ;
  1982. 'FINSI' ;
  1983. 'FINSI' ;
  1984. **
  1985. * C1) AMONT = CELL et AVAL = SUMP
  1986. 'SI' LTOS ;
  1987. 'SI' ('EGA' FLAGS 0) ;
  1988. LAYS1 = 'MANU' 'POI1' PTW2 ;
  1989. FLAGS = 1 ;
  1990. 'SINON' ;
  1991. LAYS1 = LAYS1 'ET' ('MANU' 'POI1' PTW2) ;
  1992. 'FINSI' ;
  1993. 'SINON' ;
  1994. * C2) AMONT = CELL et AVAL = 0 ou OUTDOOR
  1995. 'SI' LTOOUT ;
  1996. 'SI' ('EGA' (INPUT . 'WALL' . 'TO' . II110) 0);
  1997. 'SI' ('EGA' FLAGE 0) ;
  1998. LAYE1 = 'MANU' 'SEG2' PTW2 (GEOINF.'EXT') ;
  1999. FLAGE = 1 ;
  2000. 'SINON' ;
  2001. LAYE1 = LAYE1 'ET' ('MANU' 'SEG2' PTW2 (GEOINF.'EXT'));
  2002. 'FINSI' ;
  2003. 'SINON' ;
  2004. 'SI' ('EGA' FLAGE 0) ;
  2005. LAYE1 = 'MANU' 'SEG2' PTW2 (INPUT.'OUTD'.'LOCATION'.TO1);
  2006. FLAGE = 1 ;
  2007. 'SINON' ;
  2008. LAYE1 = LAYE1 'ET' ('MANU' 'SEG2' PTW2 (INPUT.'OUTD'.'LOCATION'.TO1));
  2009. 'FINSI' ;
  2010. 'FINSI' ;
  2011. 'SI' ('EGA' FLAGO 0) ;
  2012. LAYO1 = 'MANU' 'POI1' PTW2 ;
  2013. FLAGO = 1 ;
  2014. 'SINON' ;
  2015. LAYO1 = LAYO1 'ET' ('MANU' 'POI1' PTW2) ;
  2016. 'FINSI' ;
  2017. 'SINON' ;
  2018. * C2) AMONT = CELL et AVAL = CELL
  2019. 'SI' ('EXIS' INPUT.'PHYSICAL' 'CONDENSE') ;
  2020. * Identification du modele de condensation pour la face CELL
  2021. KOND1 = INPUT . 'WALL' . 'COND2' . II110 ;
  2022. 'SI' ('EGA' KOND1 'CHILTON');
  2023. 'SI' ('EGA' FLAGC1 0) ;
  2024. LAYC11 = 'MANU' 'POI1' PTW2 ;
  2025. FLAGC1 = 1 ;
  2026. 'SINON' ;
  2027. LAYC11 = LAYC11 'ET' ('MANU' 'POI1' PTW2) ;
  2028. 'FINSI' ;
  2029. 'FINSI' ;
  2030. 'SI' ('EGA' KOND1 'TAGAMI');
  2031. 'SI' ('EGA' FLAGC2 0) ;
  2032. LAYC12 = 'MANU' 'POI1' PTW2 ;
  2033. FLAGC2 = 1 ;
  2034. 'SINON' ;
  2035. LAYC12 = LAYC12 'ET' ('MANU' 'POI1' PTW2) ;
  2036. 'FINSI' ;
  2037. 'FINSI' ;
  2038. 'SI' ('EGA' KOND1 'UCHIDA');
  2039. 'SI' ('EGA' FLAGC3 0) ;
  2040. LAYC13 = 'MANU' 'POI1' PTW2 ;
  2041. FLAGC3 = 1 ;
  2042. 'SINON' ;
  2043. LAYC13 = LAYC13 'ET' ('MANU' 'POI1' PTW2) ;
  2044. 'FINSI' ;
  2045. 'FINSI' ;
  2046. 'SINON' ;
  2047. LAYC1 = LAYC1 'ET' ('MANU' 'POI1' PTW2) ;
  2048. 'FINSI' ;
  2049. 'FINSI' ;
  2050. 'FINSI' ;
  2051. 'FINSI' ;
  2052. 'FINSI' ;
  2053. 'FIN' BLO110 ;
  2054. *
  2055. * On a traité tous les murs et toutes les faces
  2056. * remplissage des indices LOCOUT, LAYERC1, LAYERC2, LAYERC3, LAYERC et LAYEXT
  2057. *
  2058. GEOINF . 'WALL' = LINE2 ;
  2059. GEOINF . 'INWALL' = WALLIN ;
  2060. GEOINF . 'WALLAY' = WALLA1 ;
  2061. 'SI' LEXTE ;
  2062. GEOINF . 'LOCOUT' = INPUT . 'OUTD' . 'LOCATION' ;
  2063. 'FINSI' ;
  2064. 'SI' ('EGA' FLAGC1 1) ;
  2065. GEOINF . 'LAYERC1' = LAYC11 ;
  2066. 'SI' ('EXISTE' GEOINF 'LAYERC') ;
  2067. GEOINF . 'LAYERC' = (GEOINF . 'LAYERC') 'ET' LAYC11 ;
  2068. 'SINON' ;
  2069. GEOINF . 'LAYERC' = LAYC11 ;
  2070. 'FINSI' ;
  2071. 'FINSI' ;
  2072. 'SI' ('EGA' FLAGC2 1) ;
  2073. GEOINF . 'LAYERC2' = LAYC12 ;
  2074. 'SI' ('EXISTE' GEOINF 'LAYERC') ;
  2075. GEOINF . 'LAYERC' = (GEOINF . 'LAYERC') 'ET' LAYC12 ;
  2076. 'SINON' ;
  2077. GEOINF . 'LAYERC' = LAYC12 ;
  2078. 'FINSI' ;
  2079. 'FINSI' ;
  2080. 'SI' ('EGA' FLAGC3 1) ;
  2081. GEOINF . 'LAYERC3' = LAYC13 ;
  2082. 'SI' ('EXISTE' GEOINF 'LAYERC') ;
  2083. GEOINF . 'LAYERC' = (GEOINF . 'LAYERC') 'ET' LAYC13 ;
  2084. 'SINON' ;
  2085. GEOINF . 'LAYERC' = LAYC13 ;
  2086. 'FINSI' ;
  2087. 'FINSI' ;
  2088. 'SI' ('EGA' FLAGC 1) ;
  2089. GEOINF . 'LAYERC' = LAYC1 ;
  2090. 'FINSI' ;
  2091. 'SI' ('EXISTE' GEOINF 'LAYERC') ;
  2092. FLAGC = 1 ;
  2093. 'SI' ('EXISTE' GEOINF 'LAYERT') ;
  2094. GEOINF.'LAYERT' = (GEOINF.'LAYERT') 'ET' (GEOINF.'LAYERC');
  2095. 'SINON' ;
  2096. GEOINF.'LAYERT' = GEOINF.'LAYERC' ;
  2097. 'FINSI' ;
  2098. 'FINSI' ;
  2099. 'SI' ('EGA' FLAGO 1) ;
  2100. GEOINF . 'LAYERO' = LAYO1 ;
  2101. 'SI' ('EXISTE' GEOINF 'LAYERT') ;
  2102. GEOINF . 'LAYERT' = (GEOINF . 'LAYERT') 'ET' LAYO1 ;
  2103. 'SINON' ;
  2104. GEOINF . 'LAYERT' = LAYO1 ;
  2105. 'FINSI' ;
  2106. 'FINSI' ;
  2107. 'SI' ('EGA' FLAGS 1) ;
  2108. GEOINF . 'LAYERS' = LAYS1 ;
  2109. 'SI' ('EXISTE' GEOINF 'LAYERT') ;
  2110. GEOINF . 'LAYERT' = (GEOINF . 'LAYERT') 'ET' LAYS1 ;
  2111. 'SINON' ;
  2112. GEOINF . 'LAYERT' = LAYS1 ;
  2113. 'FINSI' ;
  2114. 'FINSI' ;
  2115. 'SI' ('EGA' FLAGE 1) ;
  2116. GEOINF . 'LAYEXT' = LAYE1 ;
  2117. 'FINSI' ;
  2118. *
  2119. * remplissage de l'indice 'CELLAYW' et 'CELLAYS'
  2120. *
  2121. FLAG1 = 0 ;
  2122. FLAG4 = 0 ;
  2123. 'REPE' BLO300 NBCELL ;
  2124. NPTC1 = (GEOINF . 'CELL') 'POIN' &BLO300 ;
  2125. 'REPE' BLO310 NBWALL ;
  2126. LESEG1 = 'ELEM' (GEOINF . 'WALCEL') 'SEG3' &BLO310 ;
  2127. LSEG1 = 'CHAN' 'POI1' LESEG1 ;
  2128. NPT1 = LSEG1 'POIN' 1 ;
  2129. NPTCW1 = 'NOEU' (LSEG1 'POIN' 2) ;
  2130. FLAG2 = 0 ;
  2131. 'SI' ('EGA' ('NBEL' LSEG1) 2) ;
  2132. FLAG2 = 1 ;
  2133. NPT2 = NPT1 ;
  2134. 'SINO' ;
  2135. NPT2 = LSEG1 'POIN' 3 ;
  2136. 'FINSI' ;
  2137. 'SI' (('EGA' (NOEU NPTC1) (NOEU NPT1)) 'OU'
  2138. ('EGA' (NOEU NPTC1) (NOEU NPT2))) ;
  2139. FLAG3 = 0 ;
  2140. 'REPE' BLO320 NBWALL ;
  2141. *** Differenciation des faces en contact avec un compartiment
  2142. *** ou avec un puisard ou avec l'exterieur
  2143. II320 = INDW1 . &BLO320 ;
  2144. FROM1 = INPUT.'WALL'.'FROM'.II320 ;
  2145. TO1 = INPUT.'WALL'.'TO' .II320 ;
  2146. LFROMO = 'EGA' (INPUT . 'WALL' . 'TYPEFROM' . II320) 'OUTDOOR' ;
  2147. LFROMS = 'EGA' (INPUT . 'WALL' . 'TYPEFROM' . II320) 'SUMP' ;
  2148. LFROMC = 'EGA' (INPUT . 'WALL' . 'TYPEFROM' . II320) 'CELL' ;
  2149. LTOOUT = 'EGA' (INPUT . 'WALL' . 'TYPETO' . II320) 'OUTDOOR' ;
  2150. LTOS = 'EGA' (INPUT . 'WALL' . 'TYPETO' . II320) 'SUMP' ;
  2151. LTOC = 'EGA' (INPUT . 'WALL' . 'TYPETO' . II320) 'CELL' ;
  2152. LESEG2 = 'ELEM' (GEOINF . 'WALLAY') 'SEG3' &BLO320 ;
  2153. LSEG2 = 'CHAN' 'POI1' LESEG2 ;
  2154. NPTCW2 = 'NOEU' (LSEG2 'POIN' 2) ;
  2155. 'SI' ('EGA' NPTCW1 NPTCW2) ;
  2156. FLAG3 = 1 ;
  2157. 'SI' ('EGA' (NOEU NPTC1) (NOEU NPT1)) ;
  2158. CLW1 = 'MANU' 'SEG2' NPTC1 (LSEG2 'POIN' 1) ;
  2159. 'SI' (LFROMC 'ET' ('NON' LFROMO)) ;
  2160. 'SI' ('EGA' FLAG1 0) ;
  2161. CELLAYW = CLW1 ;
  2162. FLAG1 = 1 ;
  2163. 'SINO' ;
  2164. CELLAYW = CELLAYW 'ET' CLW1 ;
  2165. 'FINSI' ;
  2166. 'SI' ('EGA' FLAG2 1) ;
  2167. CLW2 = 'MANU' 'SEG2' NPTC1 (LSEG2 'POIN' 3) ;
  2168. 'SI' (LTOC 'ET' ('NON' LTOOUT)) ;
  2169. CELLAYW = CELLAYW 'ET' CLW2 ;
  2170. 'SINO' ;
  2171. 'SI' LTOS ;
  2172. 'SI' ('EGA' FLAG4 0) ;
  2173. CELLAYS = CLW2 ;
  2174. FLAG4 = 1 ;
  2175. 'SINO' ;
  2176. CELLAYS = CELLAYS 'ET' CLW2 ;
  2177. 'FINSI' ;
  2178. 'FINSI' ;
  2179. 'FINSI' ;
  2180. 'FINSI' ;
  2181. 'SINO' ;
  2182. 'SI' LFROMS ;
  2183. 'SI' ('EGA' FLAG4 0) ;
  2184. CELLAYS = CLW1 ;
  2185. FLAG4 = 1 ;
  2186. 'SINO' ;
  2187. CELLAYS = CELLAYS 'ET' CLW1 ;
  2188. 'FINSI' ;
  2189. 'SI' ('EGA' FLAG2 1) ;
  2190. CLW2 = 'MANU' 'SEG2' NPTC1 (LSEG2 'POIN' 3) ;
  2191. 'SI' LTOS ;
  2192. CELLAYS = CELLAYS 'ET' CLW2 ;
  2193. 'SINO' ;
  2194. 'SI' (LTOC 'ET' ('NON' LTOOUT)) ;
  2195. 'SI' ('EGA' FLAG1 0) ;
  2196. CELLAYW = CLW2 ;
  2197. FLAG1 = 1 ;
  2198. 'SINO' ;
  2199. CELLAYW = CELLAYW 'ET' CLW2 ;
  2200. 'FINSI' ;
  2201. 'FINSI' ;
  2202. 'FINSI' ;
  2203. 'FINSI' ;
  2204. 'FINSI' ;
  2205. 'FINSI' ;
  2206. 'SINO' ;
  2207. CLW1 = 'MANU' 'SEG2' NPTC1 (LSEG2 'POIN' 3) ;
  2208. 'SI' (LTOC 'ET' ('NON' LTOOUT)) ;
  2209. 'SI' ('EGA' FLAG1 0) ;
  2210. CELLAYW = CLW1 ;
  2211. FLAG1 = 1 ;
  2212. 'SINO' ;
  2213. CELLAYW = CELLAYW 'ET' CLW1 ;
  2214. 'FINSI' ;
  2215. 'SINO' ;
  2216. 'SI' LTOS ;
  2217. 'SI' ('EGA' FLAG4 0) ;
  2218. CELLAYS = CLW1 ;
  2219. FLAG4 = 1 ;
  2220. 'SINO' ;
  2221. CELLAYS = CELLAYS 'ET' CLW1 ;
  2222. 'FINSI' ;
  2223. 'FINSI' ;
  2224. 'FINSI' ;
  2225. 'FINSI' ;
  2226. 'QUITTER' BLO320 ;
  2227. 'FINSI' ;
  2228. 'FIN' BLO320 ;
  2229. 'SI' ('EGA' FLAG3 0) ;
  2230. 'MESS' 'TO_FIELD procedure : bad connectivity WALLS/LAYER';
  2231. SET . 'ERROR' = 1 ;
  2232. 'QUITTER' TO_FIELD ;
  2233. 'FINSI' ;
  2234. 'FINSI' ;
  2235. 'FIN' BLO310 ;
  2236. 'FIN' BLO300 ;
  2237. 'SI' ('EGA' FLAG1 1) ;
  2238. GEOINF . 'CELLAYW' = CELLAYW ;
  2239. 'FINSI' ;
  2240. 'SI' ('EGA' FLAG4 1) ;
  2241. GEOINF . 'CELLAYS' = CELLAYS ;
  2242. 'FINSI' ;
  2243. 'FINSI' ;
  2244. *
  2245. * cas de la combustion (remplissage de l'indice CELLCELL)
  2246. *
  2247. * CELLCELL : table donnant pour chaque compartiment la liste
  2248. * des compartiments connectés par une jonction cell-cell
  2249. *
  2250. 'SI' ('EXIS' INPUT 'BURN' ) ;
  2251. TCELLCEL = 'TABLE' ;
  2252. NJCT1 = 'DIME' (INPUT . 'JUNCTION' . 'LOCATION') ;
  2253. 'REPE' BLOJCT NJCT1 ;
  2254. NAM0 = INDJ1 . &BLOJCT ;
  2255. NAM1 = INPUT . 'JUNCTION' . 'FROM' . NAM0 ;
  2256. NAM2 = INPUT . 'JUNCTION' . 'TO' . NAM0 ;
  2257. 'SI' ('EGA' (INPUT . 'JUNCTION' . 'TYPETO' . NAM0) 'CELL') ;
  2258. 'SI' ('NON' ('EXIS' TCELLCEL NAM1 )) ;
  2259. TCELLCEL . NAM1 = 'TABLE' ;
  2260. TCELLCEL . NAM1 . 1 = NAM2 ;
  2261. 'SINON' ;
  2262. NCC = 'DIME' (TCELLCEL . NAM1) ;
  2263. NCC1 = NCC + 1 ;
  2264. TCELLCEL . NAM1 . NCC1 = NAM2 ;
  2265. 'FINSI' ;
  2266. 'SI' ('NON' ('EXIS' TCELLCEL NAM2 )) ;
  2267. TCELLCEL . NAM2 = 'TABLE' ;
  2268. TCELLCEL . NAM2 . 1 = NAM1 ;
  2269. 'SINON' ;
  2270. NCC = 'DIME' (TCELLCEL . NAM2) ;
  2271. NCC1 = NCC + 1 ;
  2272. TCELLCEL . NAM2 . NCC1 = NAM1 ;
  2273. 'FINSI' ;
  2274. 'FINSI' ;
  2275. 'FIN' BLOJCT ;
  2276. GEOINF . 'CELLCELL' = TCELLCEL ;
  2277. 'FINSI' ;
  2278. *
  2279. *
  2280. * cas de l'aspersion
  2281. *
  2282. 'SI' ('EXIS' INPUT 'SPRAY' ) ;
  2283. GEOINF . 'NAMECELL' = INPUT . 'CELL' . 'LOCATION' ;
  2284. 'FINSI' ;
  2285. *
  2286. * cas de la Combustion
  2287. *
  2288. 'SI' ('EXIS' INPUT 'BURN' ) ;
  2289. GEOINF . 'NAMECELL' = INPUT . 'CELL' . 'LOCATION' ;
  2290. 'FINSI' ;
  2291. *
  2292. * cas des recombineurs
  2293. *
  2294. 'SI' ('EXIS' INPUT 'RECOMB' ) ;
  2295. GEOINF . 'NAMECELL' = INPUT . 'CELL' . 'LOCATION' ;
  2296. 'FINSI' ;
  2297. *
  2298. * cas de la Puissance residuelle
  2299. *
  2300. 'SI' ('EXIS' INPUT 'PRESI' ) ;
  2301. GEOINF . 'NAMECELL' = INPUT . 'CELL' . 'LOCATION' ;
  2302. 'FINSI' ;
  2303. *
  2304. SET . 'GEOINF' = GEOINF ;
  2305. *
  2306. *======================================================================
  2307. *
  2308. * Création de la table FIELDS
  2309. *
  2310. *======================================================================
  2311. *
  2312. FIELDS = 'TABLE' 'FIELDS' ;
  2313. FIELDS . 'TIME' = 'TABLE' ;
  2314. FIELDS . 'PT' = 'TABLE' ;
  2315. FIELDS . 'TGAS' = 'TABLE' ;
  2316. FIELDS . 'UGAS' = 'TABLE' ;
  2317. FIELDS . 'HGAS' = 'TABLE' ;
  2318. FIELDS . 'RGAS' = 'TABLE' ;
  2319. 'SI' LJUNC ;
  2320. FIELDS . 'Q' = 'TABLE' ;
  2321. 'SI' ('NEG' NBJ 0) ;
  2322. FIELDS . 'QCEL' = 'TABLE' ;
  2323. 'FINSI' ;
  2324. 'SI' ('NEG' NBJO 0) ;
  2325. FIELDS . 'QOUT' = 'TABLE' ;
  2326. 'FINSI' ;
  2327. 'FINSI' ;
  2328. 'SI' ('EXIS' (INPUT . 'CELL') 'XV') ;
  2329. FIELDS . 'XV' = 'TABLE' ;
  2330. 'FINSI' ;
  2331. 'SI' ('EXIS' (INPUT . 'CELL') 'MLIQ') ;
  2332. FIELDS . 'MLIQ' = 'TABLE' ;
  2333. FIELDS . 'ULIQ' = 'TABLE' ;
  2334. FIELDS . 'HLIQ' = 'TABLE' ;
  2335. FIELDS . 'VLIQ' = 'TABLE' ;
  2336. FIELDS . 'TLIQ' = 'TABLE' ;
  2337. FIELDS . 'QEVA' = 'TABLE' ;
  2338. FIELDS . 'MEVA' = 'TABLE' ;
  2339. FIELDS . 'UEVA' = 'TABLE' ;
  2340. FIELDS . 'QLS' = 'TABLE' ;
  2341. FIELDS . 'MLS' = 'TABLE' ;
  2342. FIELDS . 'ULS' = 'TABLE' ;
  2343. 'FINSI' ;
  2344. *
  2345. * cas de l'aspersion
  2346. *
  2347. 'SI' ('EXIS' INPUT 'SPRAY' ) ;
  2348. FIELDS . 'MCND' = 'TABLE' ;
  2349. FIELDS . 'MEBU' = 'TABLE' ;
  2350. FIELDS . 'MSPR' = 'TABLE' ;
  2351. FIELDS . 'UCND' = 'TABLE' ;
  2352. FIELDS . 'UCNV' = 'TABLE' ;
  2353. FIELDS . 'UEBU' = 'TABLE' ;
  2354. FIELDS . 'USPR' = 'TABLE' ;
  2355. 'FINSI' ;
  2356. *
  2357. * cas de la Combustion
  2358. *
  2359. 'SI' ('EXIS' INPUT 'BURN' ) ;
  2360. FIELDS . 'ECOM' = 'TABLE' ;
  2361. 'FINSI' ;
  2362. *
  2363. * cas des recombineurs
  2364. *
  2365. 'SI' ('EXIS' INPUT 'RECOMB' ) ;
  2366. FIELDS . 'TREC' = 'TABLE' ;
  2367. FIELDS . 'QREC' = 'TABLE' ;
  2368. FIELDS . 'TSRE' = 'TABLE' ;
  2369. FIELDS . 'EREC' = 'TABLE' ;
  2370. 'FINSI' ;
  2371. *
  2372. * cas de la Puissance residuelle
  2373. *
  2374. 'SI' ('EXIS' INPUT 'PRESI' ) ;
  2375. FIELDS . 'Y1' = 'TABLE' ;
  2376. FIELDS . 'Y2' = 'TABLE' ;
  2377. FIELDS . 'Y3' = 'TABLE' ;
  2378. 'FINSI' ;
  2379. *
  2380. *
  2381. FIELDS . 'TIME' . 0 = 'EXTR' (INPUT . 'TIMECALC' . 'LISTCALC') 1 ;
  2382. *
  2383. ***********************************************************************
  2384. * Les champs définis dans les compartiments
  2385. ***********************************************************************
  2386. *
  2387. 'REPE' BLO20 NBCELL ;
  2388. II20 = INDC1 . &BLO20 ;
  2389. PTI = INPUT . 'CELL' . 'LOCATION' . II20 ;
  2390. PRESS1 = INPUT . 'CELL' . 'PT' . II20 ;
  2391. TGAS1 = INPUT . 'CELL' . 'TGAS' . II20 ;
  2392. UGAS1 = INPUT . 'CELL' . 'UGAS' . II20 ;
  2393. HGAS1 = INPUT . 'CELL' . 'HGAS' . II20 ;
  2394. *
  2395. *---------- masse volumique des constituants et masse volumique totale
  2396. RGAS1 = 0. ;
  2397. VOLU1 = INPUT . 'CELL' . 'VOL' . II20 ;
  2398. 'REPE' BLO21 NCOMP1 ;
  2399. IND1 = INPUT . 'COMPONENT' . &BLO21 ;
  2400. NAMM1 = 'CHAINE' 'M' IND1 ;
  2401. MASS1 = INPUT . 'CELL' . NAMM1 . II20 ;
  2402. NAMRC1 = 'CHAINE' 'R_' IND1 ;
  2403. NAMCV1 = 'CHAINE' 'CV' IND1 ;
  2404. NAMR1 = 'CHAINE' 'R' IND1 ;
  2405. RCST1 = INPUT . 'PHYSICAL' . NAMRC1 ;
  2406. RHO1 = MASS1 / VOLU1 ;
  2407. RGAS1 = RGAS1 + RHO1 ;
  2408. 'SI' ('EGA' IND1 'H2O') ;
  2409. PVAP1 = VARI PVAP RHO1 TGAS1 ;
  2410. ZVAP1 = VARI ZVAP RHO1 TGAS1 ;
  2411. ROR1 = RHO1 * RCST1 * ZVAP1 ;
  2412. ROCV1 = 0. ;
  2413. 'SINON' ;
  2414. ROR1 = RHO1 * RCST1 ;
  2415. CV1 = INPUT . 'PHYSICAL' . NAMCV1 ;
  2416. ROCV1 = RHO1 * CV1 ;
  2417. 'FINSI' ;
  2418. 'SI' (&BLO20 'EGA' 1) ;
  2419. FIELDS . NAMR1 = 'TABLE' ;
  2420. FIELDS . NAMR1 . 0 =
  2421. 'MANU' 'CHPO' PTI 1 NAMR1 RHO1 'NATURE' 'DISCRET' ;
  2422. 'SINON' ;
  2423. FIELDS . NAMR1 . 0 = (FIELDS . NAMR1 . 0) 'ET'
  2424. ('MANU' 'CHPO' PTI 1 NAMR1 RHO1 'NATURE' 'DISCRET') ;
  2425. 'FINSI' ;
  2426. 'FIN' BLO21 ;
  2427. *
  2428. *---------------------------------------------------- le titre vapeur
  2429. 'SI' ('EXIS' (INPUT . 'CELL') 'XV') ;
  2430. XV1 = INPUT . 'CELL' . 'XV' . II20 ;
  2431. 'SI' (&BLO20 'EGA' 1) ;
  2432. FIELDS . 'XV' . 0 =
  2433. 'MANU' 'CHPO' PTI 1 'XV' XV1 'NATURE' 'DISCRET' ;
  2434. 'SINON' ;
  2435. FIELDS . 'XV' . 0 = (FIELDS . 'XV' . 0) 'ET'
  2436. ('MANU' 'CHPO' PTI 1 'XV' XV1 'NATURE' 'DISCRET') ;
  2437. 'FINSI' ;
  2438. 'FINSI' ;
  2439. *
  2440. *----------------------------------- quantités associées aux puisards
  2441. 'SI' ('EXIS' (INPUT . 'CELL') 'MLIQ') ;
  2442. MLIQ1 = INPUT . 'CELL' . 'MLIQ' . II20 ;
  2443. ULIQ1 = INPUT . 'CELL' . 'ULIQ' . II20 ;
  2444. HLIQ1 = INPUT . 'CELL' . 'HLIQ' . II20 ;
  2445. VLIQ1 = INPUT . 'CELL' . 'VLIQ' . II20 ;
  2446. TLIQ1 = INPUT . 'CELL' . 'TLIQ' . II20 ;
  2447. 'SI' (&BLO20 'EGA' 1) ;
  2448. FIELDS . 'MLIQ' . 0 = 'MANU' 'CHPO' PTI 1 'MLIQ' MLIQ1
  2449. 'NATURE' 'DISCRET' ;
  2450. FIELDS . 'ULIQ' . 0 = 'MANU' 'CHPO' PTI 1 'ULIQ' ULIQ1
  2451. 'NATURE' 'DISCRET' ;
  2452. FIELDS . 'HLIQ' . 0 = 'MANU' 'CHPO' PTI 1 'HLIQ' HLIQ1
  2453. 'NATURE' 'DISCRET' ;
  2454. FIELDS . 'VLIQ' . 0 = 'MANU' 'CHPO' PTI 1 'VLIQ' VLIQ1
  2455. 'NATURE' 'DISCRET' ;
  2456. FIELDS . 'TLIQ' . 0 = 'MANU' 'CHPO' PTI 1 'TLIQ' TLIQ1
  2457. 'NATURE' 'DISCRET' ;
  2458. FIELDS . 'QEVA' . 0 = 'MANU' 'CHPO' PTI 1 'QEVA' 0.D0
  2459. 'NATURE' 'DISCRET' ;
  2460. FIELDS . 'MEVA' . 0 = 'MANU' 'CHPO' PTI 1 'MEVA' 0.D0
  2461. 'NATURE' 'DISCRET' ;
  2462. FIELDS . 'UEVA' . 0 = 'MANU' 'CHPO' PTI 1 'UEVA' 0.D0
  2463. 'NATURE' 'DISCRET' ;
  2464. FIELDS . 'QLS' . 0 = 'MANU' 'CHPO' PTI 1 'QLS' 0.D0
  2465. 'NATURE' 'DISCRET' ;
  2466. FIELDS . 'MLS' . 0 = 'MANU' 'CHPO' PTI 1 'MLS' 0.D0
  2467. 'NATURE' 'DISCRET' ;
  2468. FIELDS . 'ULS' . 0 = 'MANU' 'CHPO' PTI 1 'ULS' 0.D0
  2469. 'NATURE' 'DISCRET' ;
  2470. *
  2471. * cas de l'aspersion
  2472. 'SI' ('EXIS' INPUT 'SPRAY' ) ;
  2473. FIELDS . 'MCND' . 0 = 'MANU' 'CHPO' PTI 1 'MCND' 0.D0
  2474. 'NATURE' 'DISCRET' ;
  2475. FIELDS . 'MEBU' . 0 = 'MANU' 'CHPO' PTI 1 'MEBU' 0.D0
  2476. 'NATURE' 'DISCRET' ;
  2477. FIELDS . 'MSPR' . 0 = 'MANU' 'CHPO' PTI 1 'MSPR' 0.D0
  2478. 'NATURE' 'DISCRET' ;
  2479. FIELDS . 'UCND' . 0 = 'MANU' 'CHPO' PTI 1 'UCND' 0.D0
  2480. 'NATURE' 'DISCRET' ;
  2481. FIELDS . 'UCNV' . 0 = 'MANU' 'CHPO' PTI 1 'UCNV' 0.D0
  2482. 'NATURE' 'DISCRET' ;
  2483. FIELDS . 'UEBU' . 0 = 'MANU' 'CHPO' PTI 1 'UEBU' 0.D0
  2484. 'NATURE' 'DISCRET' ;
  2485. FIELDS . 'USPR' . 0 = 'MANU' 'CHPO' PTI 1 'USPR' 0.D0
  2486. 'NATURE' 'DISCRET' ;
  2487. 'FINSI' ;
  2488. *
  2489. * cas de la Combustion
  2490. 'SI' ('EXIS' INPUT 'BURN' ) ;
  2491. FIELDS . 'ECOM' . 0 = 'MANU' 'CHPO' PTI 1 'ECOM' 0.D0
  2492. 'NATURE' 'DISCRET' ;
  2493. 'FINSI' ;
  2494. *
  2495. * cas des Recombineurs
  2496. 'SI' ('EXIS' INPUT 'RECOMB' ) ;
  2497. FIELDS . 'TREC' . 0 = 'MANU' 'CHPO' PTI 1 'TREC' TGAS1
  2498. 'NATURE' 'DISCRET' ;
  2499. FIELDS . 'QREC' . 0 = 'MANU' 'CHPO' PTI 1 'QREC' 0.
  2500. 'NATURE' 'DISCRET' ;
  2501. FIELDS . 'TSRE' . 0 = 'MANU' 'CHPO' PTI 1 'TSRE' TGAS1
  2502. 'NATURE' 'DISCRET' ;
  2503. FIELDS . 'EREC' . 0 = 'MANU' 'CHPO' PTI 1 'EREC' 0.
  2504. 'NATURE' 'DISCRET' ;
  2505. 'FINSI' ;
  2506. *
  2507. * cas de la puissance residuelle
  2508. 'SI' ('EXIS' INPUT 'PRESI' ) ;
  2509. FIELDS . 'Y1' . 0 = 'MANU' 'CHPO' PTI 1 'Y1' 0.D0
  2510. 'NATURE' 'DISCRET' ;
  2511. FIELDS . 'Y2' . 0 = 'MANU' 'CHPO' PTI 1 'Y2' 0.D0
  2512. 'NATURE' 'DISCRET' ;
  2513. FIELDS . 'Y3' . 0 = 'MANU' 'CHPO' PTI 1 'Y3' 0.D0
  2514. 'NATURE' 'DISCRET' ;
  2515. 'FINSI' ;
  2516. *
  2517. 'SINON' ;
  2518. FIELDS . 'MLIQ' . 0 = (FIELDS . 'MLIQ' . 0) 'ET'
  2519. ('MANU' 'CHPO' PTI 1 'MLIQ' MLIQ1 'NATURE' 'DISCRET') ;
  2520. FIELDS . 'ULIQ' . 0 = (FIELDS . 'ULIQ' . 0) 'ET'
  2521. ('MANU' 'CHPO' PTI 1 'ULIQ' ULIQ1 'NATURE' 'DISCRET') ;
  2522. FIELDS . 'HLIQ' . 0 = (FIELDS . 'HLIQ' . 0) 'ET'
  2523. ('MANU' 'CHPO' PTI 1 'HLIQ' HLIQ1 'NATURE' 'DISCRET') ;
  2524. FIELDS . 'VLIQ' . 0 = (FIELDS . 'VLIQ' . 0) 'ET'
  2525. ('MANU' 'CHPO' PTI 1 'VLIQ' VLIQ1 'NATURE' 'DISCRET') ;
  2526. FIELDS . 'TLIQ' . 0 = (FIELDS . 'TLIQ' . 0) 'ET'
  2527. ('MANU' 'CHPO' PTI 1 'TLIQ' TLIQ1 'NATURE' 'DISCRET') ;
  2528. FIELDS . 'QEVA' . 0 = (FIELDS . 'QEVA' . 0) 'ET'
  2529. ('MANU' 'CHPO' PTI 1 'QEVA' 0.D0 'NATURE' 'DISCRET') ;
  2530. FIELDS . 'MEVA' . 0 = (FIELDS . 'MEVA' . 0) 'ET'
  2531. ('MANU' 'CHPO' PTI 1 'MEVA' 0.D0 'NATURE' 'DISCRET') ;
  2532. FIELDS . 'UEVA' . 0 = (FIELDS . 'UEVA' . 0) 'ET'
  2533. ('MANU' 'CHPO' PTI 1 'UEVA' 0.D0 'NATURE' 'DISCRET') ;
  2534. FIELDS . 'QLS' . 0 = (FIELDS . 'QLS' . 0) 'ET'
  2535. ('MANU' 'CHPO' PTI 1 'QLS' 0.D0 'NATURE' 'DISCRET') ;
  2536. FIELDS . 'MLS' . 0 = (FIELDS . 'MLS' . 0) 'ET'
  2537. ('MANU' 'CHPO' PTI 1 'MLS' 0.D0 'NATURE' 'DISCRET') ;
  2538. FIELDS . 'ULS' . 0 = (FIELDS . 'ULS' . 0) 'ET'
  2539. ('MANU' 'CHPO' PTI 1 'ULS' 0.D0 'NATURE' 'DISCRET') ;
  2540. *
  2541. * cas de l'aspersion
  2542. 'SI' ('EXIS' INPUT 'SPRAY' ) ;
  2543. FIELDS . 'MCND' . 0 = (FIELDS . 'MCND' . 0) 'ET'
  2544. ('MANU' 'CHPO' PTI 1 'MCND' 0.D0 'NATURE' 'DISCRET') ;
  2545. FIELDS . 'MEBU' . 0 = (FIELDS . 'MEBU' . 0) 'ET'
  2546. ('MANU' 'CHPO' PTI 1 'MEBU' 0.D0 'NATURE' 'DISCRET') ;
  2547. FIELDS . 'MSPR' . 0 = (FIELDS . 'MSPR' . 0) 'ET'
  2548. ('MANU' 'CHPO' PTI 1 'MSPR' 0.D0 'NATURE' 'DISCRET') ;
  2549. FIELDS . 'UCND' . 0 = (FIELDS . 'UCND' . 0) 'ET'
  2550. ('MANU' 'CHPO' PTI 1 'UCND' 0.D0 'NATURE' 'DISCRET') ;
  2551. FIELDS . 'UCNV' . 0 = (FIELDS . 'UCNV' . 0) 'ET'
  2552. ('MANU' 'CHPO' PTI 1 'UCNV' 0.D0 'NATURE' 'DISCRET') ;
  2553. FIELDS . 'UEBU' . 0 = (FIELDS . 'UEBU' . 0) 'ET'
  2554. ('MANU' 'CHPO' PTI 1 'UEBU' 0.D0 'NATURE' 'DISCRET') ;
  2555. FIELDS . 'USPR' . 0 = (FIELDS . 'USPR' . 0) 'ET'
  2556. ('MANU' 'CHPO' PTI 1 'USPR' 0.D0 'NATURE' 'DISCRET') ;
  2557. 'FINSI' ;
  2558. *
  2559. * cas de la Combustion
  2560. 'SI' ('EXIS' INPUT 'BURN' ) ;
  2561. FIELDS . 'ECOM' . 0 = (FIELDS . 'ECOM' . 0) 'ET'
  2562. ('MANU' 'CHPO' PTI 1 'ECOM' 0.D0 'NATURE' 'DISCRET') ;
  2563. 'FINSI' ;
  2564. *
  2565. * cas des Recombineurs
  2566. *
  2567. 'SI' ('EXIS' INPUT 'RECOMB' ) ;
  2568. FIELDS . 'TREC' . 0 = (FIELDS . 'TREC' . 0) 'ET'
  2569. ('MANU' 'CHPO' PTI 1 'TREC' TGAS1 'NATURE' 'DISCRET') ;
  2570. FIELDS . 'QREC' . 0 = (FIELDS . 'QREC' . 0) 'ET'
  2571. ('MANU' 'CHPO' PTI 1 'QREC' 0. 'NATURE' 'DISCRET') ;
  2572. FIELDS . 'TSRE' . 0 = (FIELDS . 'TSRE' . 0) 'ET'
  2573. ('MANU' 'CHPO' PTI 1 'TSRE' TGAS1 'NATURE' 'DISCRET') ;
  2574. FIELDS . 'EREC' . 0 = (FIELDS . 'EREC' . 0) 'ET'
  2575. ('MANU' 'CHPO' PTI 1 'EREC' 0. 'NATURE' 'DISCRET') ;
  2576. 'FINSI' ;
  2577. *
  2578. * cas de la Puissance résiduelle
  2579. *
  2580. 'SI' ('EXIS' INPUT 'PRESI' ) ;
  2581. FIELDS . 'Y1' . 0 = (FIELDS . 'Y1' . 0) 'ET'
  2582. ('MANU' 'CHPO' PTI 1 'Y1' 0.D0 'NATURE' 'DISCRET') ;
  2583. FIELDS . 'Y2' . 0 = (FIELDS . 'Y2' . 0) 'ET'
  2584. ('MANU' 'CHPO' PTI 1 'Y2' 0.D0 'NATURE' 'DISCRET') ;
  2585. FIELDS . 'Y3' . 0 = (FIELDS . 'Y3' . 0) 'ET'
  2586. ('MANU' 'CHPO' PTI 1 'Y3' 0.D0 'NATURE' 'DISCRET') ;
  2587. 'FINSI' ;
  2588. *
  2589. 'FINSI' ;
  2590. 'FINSI' ;
  2591. 'SI' (&BLO20 'EGA' 1) ;
  2592. FIELDS . 'PT' . 0 = 'MANU' 'CHPO' PTI 1 'PT' PRESS1
  2593. 'NATURE' 'DISCRET' ;
  2594. FIELDS . 'TGAS' . 0 = 'MANU' 'CHPO' PTI 1 'TGAS' TGAS1
  2595. 'NATURE' 'DISCRET' ;
  2596. FIELDS . 'UGAS' . 0 = 'MANU' 'CHPO' PTI 1 'UGAS' UGAS1
  2597. 'NATURE' 'DISCRET' ;
  2598. FIELDS . 'HGAS' . 0 = 'MANU' 'CHPO' PTI 1 'HGAS' HGAS1
  2599. 'NATURE' 'DISCRET' ;
  2600. FIELDS . 'RGAS' . 0 = 'MANU' 'CHPO' PTI 1 'RGAS' RGAS1
  2601. 'NATURE' 'DISCRET' ;
  2602. 'SINON' ;
  2603. FIELDS . 'PT' . 0 = (FIELDS . 'PT' . 0) 'ET'
  2604. ('MANU' 'CHPO' PTI 1 'PT' PRESS1 'NATURE' 'DISCRET') ;
  2605. FIELDS . 'TGAS' . 0 =