Télécharger test_junc_1.dgibi

Retour à la liste

Numérotation des lignes :

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