56 . UNITAB, LUID, NPC, IGRSURF, ITAB, X, PM, GEO, IXC, IXTG,
70#include
"implicit_f.inc"
87 INTEGER,
INTENT(IN) :: LUID, ITABM1(*), NPT(*)
88 INTEGER,
INTENT(IN) :: NPC(*), ITAB(*), IXC(NIXC, *), IXTG(NIXTG, *)
89 my_real,
INTENT(IN) :: x(3, *), geo(npropg, *), pm(npropm, *),pld(2, *)
90 TYPE (SURF_),
INTENT(INOUT),
DIMENSION(NSURF) :: IGRSURF
92 TYPE(),
DIMENSION(NSUBMOD),
INTENT(IN) :: LSUBMODEL
93 TYPE (SENSORS_) ,
INTENT(IN) :: SENSORS
99 my_real :: FAC_M, FAC_L, FAC_T, FAC_C
100 my_real :: scal_t, scal_p, scal_s, scal_a, scal_d
101 LOGICAL :: FOUND, DECREASE
102 my_real :: sa, rot, vol, vmin, veps, amu, sv,
103 . pext, ti, pini, fac_gen
104 INTEGER :: IEQUI, ITTF, NP, IP, IS, NJET, NVENT
105 my_real :: gamai, cpai, cpbi, cpci, cpi, cvi, rmwi, cpg, rmwg, rhoi, especi, ti2, mi,
107 my_real,
DIMENSION(:),
ALLOCATABLE :: gama, cpa, cpb, cpc, fmass, ftemp, fpt, fpa, fpz,
108 . tvent, dpdef, dtpdef, fvdp, avent, bvent, tstope, fport, fporp, fpora,
109 . fport1, fporp1,fpora1
110 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IMASS, IFLU, ITEMP, ISENS, IJET, NJ1, NJ2, NJ3,
111 . IPT, IPA, IPZ, IVDP, IDTPDEF, IPVENT, IFVENT, IPORT, IPORP, IPORA, IPORT1, IPORP1, IPORA1
112 CHARACTER(LEN = 40) :: MESS
113 LOGICAL :: IS_AVAILABLE
122 mess =
'MONITORED VOLUME DEFINITION '
127 CALL hm_get_intv(
'surf_IDex', surfid, is_available, lsubmodel)
129 CALL hm_get_floatv(
'Ascalet', scal_t, is_available, lsubmodel, unitab)
130 CALL hm_get_floatv(
'AscaleP', scal_p, is_available, lsubmodel, unitab)
131 CALL hm_get_floatv(
'AscaleS', scal_s, is_available, lsubmodel, unitab)
132 CALL hm_get_floatv(
'AscaleA', scal_a, is_available, lsubmodel, unitab)
133 CALL hm_get_floatv(
'AscaleD', scal_d, is_available, lsubmodel, unitab)
135 CALL hm_get_floatv(
'MU', amu, is_available, lsubmodel, unitab)
136 CALL hm_get_floatv(
'Pext', pext, is_available, lsubmodel, unitab)
137 CALL hm_get_floatv(
'T0', ti, is_available, lsubmodel, unitab)
138 CALL hm_get_intv(
'Iequi', iequi, is_available, lsubmodel)
139 CALL hm_get_intv(
'Ittf', ittf, is_available, lsubmodel)
141 CALL hm_get_floatv(
'GAMMAi', gamai, is_available, lsubmodel, unitab)
142 CALL hm_get_floatv(
'cpai', cpai, is_available, lsubmodel, unitab)
143 CALL hm_get_floatv(
'cpbi', cpbi, is_available, lsubmodel, unitab)
144 CALL hm_get_floatv(
'cpci', cpci, is_available, lsubmodel, unitab)
146 CALL hm_get_intv('njet
', NJET, IS_AVAILABLE, LSUBMODEL)
148 T_MONVOLN%NJET = NJET
149 T_MONVOLN%IVOLU(8) = NJET
151 ALLOCATE(T_MONVOLN%IBAGJET(NIBJET, NJET))
152 T_MONVOLN%IBAGJET(1:NIBJET, 1:NJET) = 0
153 ALLOCATE(T_MONVOLN%RBAGJET(NRBJET, NJET))
154 T_MONVOLN%RBAGJET(1:NRBJET, 1:NJET) = ZERO
157 ALLOCATE(GAMA(NJET), CPA(NJET), CPB(NJET), CPC(NJET))
158 ALLOCATE(IMASS(NJET), IFLU(NJET), FMASS(NJET), ITEMP(NJET), FTEMP(NJET), ISENS(NJET))
159 ALLOCATE(IJET(NJET), NJ1(NJET), NJ2(NJET), NJ3(NJET))
160 ALLOCATE(IPT(NJET), IPA(NJET), IPZ(NJET), FPT(NJET), FPA(NJET), FPZ(NJET))
162 CALL HM_GET_FLOAT_ARRAY_INDEX('gammaj
', GAMA(II), II, IS_AVAILABLE, LSUBMODEL, UNITAB)
163 CALL HM_GET_FLOAT_ARRAY_INDEX('cpa
', CPA(II), II, IS_AVAILABLE, LSUBMODEL, UNITAB)
164 CALL HM_GET_FLOAT_ARRAY_INDEX('cpb
', CPB(II), II, IS_AVAILABLE, LSUBMODEL, UNITAB)
165 CALL HM_GET_FLOAT_ARRAY_INDEX('cpc
', CPC(II), II, IS_AVAILABLE, LSUBMODEL, UNITAB)
167 CALL HM_GET_INT_ARRAY_INDEX('fct_idmas
', IMASS(II), II,IS_AVAILABLE, LSUBMODEL)
168 CALL HM_GET_INT_ARRAY_INDEX('iflow
', IFLU(II), II,IS_AVAILABLE, LSUBMODEL)
169 CALL HM_GET_FLOAT_ARRAY_INDEX('fscalemas
', FMASS(II), II, IS_AVAILABLE, LSUBMODEL, UNITAB)
170 CALL HM_GET_INT_ARRAY_INDEX('fct_idt
', ITEMP(II), II,IS_AVAILABLE, LSUBMODEL)
171 CALL HM_GET_FLOAT_ARRAY_INDEX('fscalet
', FTEMP(II), II, IS_AVAILABLE, LSUBMODEL, UNITAB)
172 CALL HM_GET_INT_ARRAY_INDEX('sens_id
', ISENS(II), II,IS_AVAILABLE, LSUBMODEL)
174 CALL HM_GET_INT_ARRAY_INDEX('ijet
', IJET(II), II,IS_AVAILABLE, LSUBMODEL)
175 CALL HM_GET_INT_ARRAY_INDEX('abg_n1
', NJ1(II), II,IS_AVAILABLE, LSUBMODEL)
176 CALL HM_GET_INT_ARRAY_INDEX('abg_n2
', NJ2(II), II,IS_AVAILABLE, LSUBMODEL)
177 CALL HM_GET_INT_ARRAY_INDEX('abg_n3
', NJ3(II), II,IS_AVAILABLE, LSUBMODEL)
182 IF (IJET(II) > 0) THEN
183 CALL HM_GET_INT_ARRAY_INDEX('ipt
', IPT(II), II,IS_AVAILABLE, LSUBMODEL)
184 CALL HM_GET_INT_ARRAY_INDEX('iptheta
', IPA(II), II,IS_AVAILABLE, LSUBMODEL)
185 CALL HM_GET_INT_ARRAY_INDEX('ipdelta
', IPZ(II), II,IS_AVAILABLE, LSUBMODEL)
186 CALL HM_GET_FLOAT_ARRAY_INDEX('fpt
', FPT(II), II, IS_AVAILABLE, LSUBMODEL, UNITAB)
187 CALL HM_GET_FLOAT_ARRAY_INDEX('fptheta
', FPA(II), II, IS_AVAILABLE, LSUBMODEL, UNITAB)
188 CALL HM_GET_FLOAT_ARRAY_INDEX('fpdelta
', FPZ(II), II, IS_AVAILABLE, LSUBMODEL, UNITAB)
194 CALL HM_GET_INTV('nvent
', NVENT, IS_AVAILABLE, LSUBMODEL)
196 T_MONVOLN%IVOLU(11) = NVENT
197 T_MONVOLN%NVENT = NVENT
199 ALLOCATE(T_MONVOLN%IBAGHOL(NIBHOL, NVENT))
200 T_MONVOLN%IBAGHOL(1:NIBHOL, 1:NVENT) = 0
201 ALLOCATE(T_MONVOLN%RBAGHOL(NRBHOL, NVENT))
202 T_MONVOLN%RBAGHOL(1:NRBHOL, 1:NVENT) = ZERO
205 ALLOCATE(TVENT(NVENT), DPDEF(NVENT), DTPDEF(NVENT), FVDP(NVENT), AVENT(NVENT),
206 . BVENT(NVENT), TSTOPE(NVENT))
207 ALLOCATE(IPVENT(NVENT), IVDP(NVENT), IDTPDEF(NVENT), IFVENT(NVENT))
208 ALLOCATE(IPORT(NVENT), IPORP(NVENT), IPORA(NVENT), IPORT1(NVENT),
209 . IPORP1(NVENT), IPORA1(NVENT))
210 ALLOCATE(FPORT(NVENT), FPORP(NVENT), FPORA(NVENT), FPORT1(NVENT),
211 . FPORP1(NVENT), FPORA1(NVENT))
214 CALL HM_GET_INT_ARRAY_INDEX('surf_idv
', IPVENT(II), II,IS_AVAILABLE, LSUBMODEL)
215 CALL HM_GET_FLOAT_ARRAY_INDEX('avent
', AVENT(II), II, IS_AVAILABLE, LSUBMODEL, UNITAB)
216 CALL HM_GET_FLOAT_ARRAY_INDEX('bvent
', BVENT(II), II, IS_AVAILABLE, LSUBMODEL, UNITAB)
217 CALL HM_GET_FLOAT_ARRAY_INDEX('tstop
', TSTOPE(II), II, IS_AVAILABLE, LSUBMODEL, UNITAB)
219 CALL HM_GET_FLOAT_ARRAY_INDEX('tvent
', TVENT(II), II, IS_AVAILABLE, LSUBMODEL, UNITAB)
220 CALL HM_GET_FLOAT_ARRAY_INDEX('dpdef
', DPDEF(II), II, IS_AVAILABLE, LSUBMODEL, UNITAB)
221 CALL HM_GET_FLOAT_ARRAY_INDEX('dtpdef
', DTPDEF(II), II, IS_AVAILABLE, LSUBMODEL, UNITAB)
222 CALL HM_GET_INT_ARRAY_INDEX('fct_idv
', IVDP(II), II,IS_AVAILABLE, LSUBMODEL)
223 CALL HM_GET_FLOAT_ARRAY_INDEX('fscalev
', FVDP(II), II, IS_AVAILABLE, LSUBMODEL, UNITAB)
224 CALL HM_GET_INT_ARRAY_INDEX('idtpdef
', IDTPDEF(II), II,IS_AVAILABLE, LSUBMODEL)
226 CALL HM_GET_INT_ARRAY_INDEX('fct_idt
', IPORT(II), II,IS_AVAILABLE, LSUBMODEL)
227 CALL HM_GET_INT_ARRAY_INDEX('fct_idp
', IPORP(II), II,IS_AVAILABLE, LSUBMODEL)
228 CALL HM_GET_INT_ARRAY_INDEX('fct_ida
', IPORA(II), II,IS_AVAILABLE, LSUBMODEL)
229 CALL HM_GET_FLOAT_ARRAY_INDEX('fscalet
', FPORT(II), II, IS_AVAILABLE, LSUBMODEL, UNITAB)
230 CALL HM_GET_FLOAT_ARRAY_INDEX('fscalep
', FPORP(II), II, IS_AVAILABLE, LSUBMODEL, UNITAB)
231 CALL HM_GET_FLOAT_ARRAY_INDEX('fscalea
', FPORA(II), II, IS_AVAILABLE, LSUBMODEL, UNITAB)
233 CALL HM_GET_INT_ARRAY_INDEX("fct_IDt'", iport1(ii), ii,is_available, lsubmodel
245 t_monvoln%IVOLU(4) = 0
248 IF (surfid == igrsurf(ii)%ID)
THEN
249 t_monvoln%IVOLU(4) = ii
250 t_monvoln%EXT_SURFID = ii
255 IF (.NOT. found)
THEN
257 ELSEIF (igrsurf(t_monvoln%IVOLU(4))%ISH4N3N == 0)
THEN
258 CALL ancmsg(msgid = 18, anmode = aninfo, msgtype = msgerror,
259 . i1 = t_monvoln%ID, c1 = t_monvoln%TITLE, i2 = surfid)
267 . igrsurf(t_monvoln%EXT_SURFID),ixc, ixtg, x, 2)
269 CALL monvol_compute_volume(t_monvoln, t_monvoln%TITLE, t_monvoln%IVOLU, igrsurf(t_monvoln%EXT_SURFID),
270 . itab, x, pm, geo, ixc, ixtg,
271 . sa, rot, vol, vmin, veps, sv)
274 . igrsurf(t_monvoln%EXT_SURFID),ixc,ixtg,vol, x, 2)
276 IF (ittf < 0 .OR. ittf > 3)
THEN
277 CALL ancmsg(msgid = 773, anmode = aninfo, msgtype = msgerror,
278 . i1 = t_monvoln%ID, c1 = t_monvoln%TITLE)
283 fac_m = unitab%FAC_M(luid)
284 fac_l = unitab%FAC_L(luid)
285 fac_t = unitab%FAC_T(luid)
286 fac_c = fac_m / (fac_l * fac_t * fac_t)
291 IF (scal_t == zero)
THEN
293 scal_t = one * fac_gen
295 IF (scal_p == zero)
THEN
297 scal_p = one * fac_gen
299 IF (scal_s == zero)
THEN
301 scal_s = one * fac_gen
303 IF (scal_a == zero)
THEN
305 scal_a = one * fac_gen
307 IF (scal_d == zero)
THEN
309 scal_d = one * fac_gen
312 IF (amu == zero) amu = em02
313 IF(pext == zero)
THEN
314 pext = 101325.d0 * (unitab%FAC_L_WORK * unitab%FAC_T_WORK * unitab%FAC_T_WORK) / unitab%FAC_M_WORK
317 IF (ti == zero) ti = twohundred95
319 IF (imass(ii) /= 0 .AND. fmass(ii) == zero)
THEN
321 fmass(ii) = one * fac_gen
323 IF (itemp(ii) /= 0 .AND. ftemp(ii) == zero
THEN
325 FTEMP(II) = ONE * FAC_GEN
327 IF (IFLU(II) /= 0) THEN
328 FMASS(II) = FMASS(II) / FAC_T
330 IF (FPT(II) == ZERO) THEN
331 CALL HM_GET_FLOAT_ARRAY_INDEX_DIM('fpt
', FAC_GEN, II, IS_AVAILABLE, LSUBMODEL, UNITAB)
332 FPT(II) = ONE * FAC_GEN
334 IF (FPA(II) == ZERO) THEN
335 CALL HM_GET_FLOAT_ARRAY_INDEX_DIM('fptheta
', FAC_GEN, II, IS_AVAILABLE, LSUBMODEL, UNITAB)
336 FPA(II) = ONE * FAC_GEN
338 IF (FPZ(II) == ZERO) THEN
339 CALL HM_GET_FLOAT_ARRAY_INDEX_DIM('fpdelta
', FAC_GEN, II, IS_AVAILABLE, LSUBMODEL, UNITAB)
340 FPZ(II) = ONE * FAC_GEN
344 IF (IVDP(II) > 0) IFVENT(II) = 2
345 IF (IPVENT(II) == 0) THEN
348 IF (FPORT(II) == ZERO) FPORT(II) = ONE
349 IF (FPORP(II) == ZERO) FPORP(II) = ONE
350 IF (FPORA(II) == ZERO) FPORA(II) = ONE
351 IF (FPORT1(II) == ZERO) FPORT1(II) = ONE
352 IF (FPORP1(II) == ZERO) FPORP1(II) = ONE
353 IF (FPORA1(II) == ZERO) FPORA1(II) = ONE
355 IF (GAMAI == ZERO) THEN
363 CPI = CPAI + TI * (CPBI + CPCI * TI)
365 RMWI = CVI * (GAMAI - ONE)
366 MI = PINI * (VOL + VEPS) / (RMWI * TI)
369 IF (ISENS(II) > 0) THEN
371 DO IS = 1, SENSORS%NSENSOR
372 IF (ISENS(II) == SENSORS%SENSOR_TAB(IS)%SENS_ID) THEN
373 T_MONVOLN%IBAGJET(4, II) = IS
374 IF (SENSORS%SENSOR_TAB(IS)%TCRIT < TTFIRE) TTFIRE = SENSORS%SENSOR_TAB(IS)%TCRIT
379.NOT.
IF ( FOUND) THEN
380 CALL ANCMSG(MSGID = 17, ANMODE = ANINFO, MSGTYPE = MSGERROR,
381 . I2 = ISENS(II), I1 = T_MONVOLN%ID, C1 = T_MONVOLN%TITLE)
385 IF (TTFIRE == INFINITY) THEN
392 T_MONVOLN%RVOLU(26) = ONE / SCAL_T
393 T_MONVOLN%RVOLU(27) = ONE / SCAL_P
394 T_MONVOLN%RVOLU(28) = ONE / SCAL_S
395 T_MONVOLN%RVOLU(29) = ONE / SCAL_A
396 T_MONVOLN%RVOLU(30) = ONE / SCAL_D
398 IF (IEQUI > 0) IEQUI = 1
399 T_MONVOLN%IVOLU(15) = IEQUI
400 T_MONVOLN%IVOLU(17) = ITTF
401 T_MONVOLN%IVOLU(8) = NJET
403 T_MONVOLN%RVOLU(31) = PINI
404 T_MONVOLN%RVOLU(7) = CPAI
405 T_MONVOLN%RVOLU(8) = CPBI
406 T_MONVOLN%RVOLU(9) = CPCI
407 T_MONVOLN%RVOLU(10) = RMWI
408 T_MONVOLN%RVOLU(49) = TTFIRE
410 T_MONVOLN%RVOLU(1) = GAMAI
411 T_MONVOLN%RVOLU(3) = PEXT
412 T_MONVOLN%RVOLU(4) = VOL+VEPS
413 T_MONVOLN%RVOLU(11) = MI
414 T_MONVOLN%RVOLU(12) = PINI
415 T_MONVOLN%RVOLU(13) = TI
416 T_MONVOLN%RVOLU(14) = RMWI*MI
417 T_MONVOLN%RVOLU(17) = VEPS
418 T_MONVOLN%RVOLU(20) = MI
419 T_MONVOLN%RVOLU(25) = TI
420 T_MONVOLN%RVOLU(61) = GAMAI
421 RHOI = PINI / (TI * RMWI)
422 T_MONVOLN%RVOLU(62) = RHOI
424 ESPECI = TI * (CPAI + HALF * CPBI * TI + THIRD * CPCI * TI2 - RMWI)
426 T_MONVOLN%RVOLU(63) = ESPECI + RMWI * TI
427 T_MONVOLN%RVOLU(64) = ZERO
428 T_MONVOLN%RVOLU(65) = ZERO
429 T_MONVOLN%RVOLU(66) = ESPECI
431 T_MONVOLN%IBAGJET(13, II) = 0
432 T_MONVOLN%RBAGJET(1, II) = GAMA(II)
433 T_MONVOLN%RBAGJET(2, II) = CPA(II)
434 T_MONVOLN%RBAGJET(3, II) = CPB(II)
435 T_MONVOLN%RBAGJET(4, II) = CPC(II)
436 T_MONVOLN%RBAGJET(5, II) = FMASS(II)
437 T_MONVOLN%RBAGJET(6, II) = FTEMP(II)
438 T_MONVOLN%RBAGJET(12, II) = FPT(II)
439 T_MONVOLN%RBAGJET(13, II) = FPA(II)
440 T_MONVOLN%RBAGJET(14, II) = FPZ(II)
441 IF (IMASS(II) == 0)THEN
442 T_MONVOLN%IBAGJET(1, II) = 0
446 IF (IMASS(II) == NPC(JJ)) THEN
447 T_MONVOLN%IBAGJET(1, II) = JJ
449 NP = (NPT(JJ + 1) - NPT(JJ)) / 2
450 IF (IFLU(II) == 0) THEN
451 DO IP = (NPT(JJ) - 1) / 2 + 1, (NPT(JJ + 1) - 1) / 2 - 1
452 IF (PLD(2, IP + 1) < PLD(2, IP)) DECREASE = .TRUE.
455 CALL ANCMSG(MSGID=540, MSGTYPE = MSGWARNING, ANMODE = ANINFO_BLIND_1,
456 . I1 = T_MONVOLN%ID, C1 = T_MONVOLN%TITLE, I2 = IMASS(II), I3 = II)
459 DO IP = (NPT(JJ) - 1) / 2 + 1, (NPT(JJ + 1) - 1) / 2
460 IF (PLD(2, IP) < ZERO) DECREASE = .TRUE.
463 CALL ANCMSG(MSGID = 541, MSGTYPE = MSGWARNING, ANMODE = ANINFO_BLIND_1,
464 . I1 = T_MONVOLN%ID, C1 = T_MONVOLN%TITLE, I2 = IMASS(II), I3 = II)
471.NOT.
IF ( FOUND) THEN
472 CALL ANCMSG(MSGID = 10, ANMODE = ANINFO, MSGTYPE = MSGERROR,
473 . I2 = IMASS(II), I1 = T_MONVOLN%ID, C1 = T_MONVOLN%TITLE)
476 T_MONVOLN%IBAGJET(2, II) = IFLU(II)
477 IF (ITEMP(II) == 0) THEN
478 T_MONVOLN%IBAGJET(3, II) = 0
482 IF (ITEMP(II) == NPC(JJ)) THEN
483 T_MONVOLN%IBAGJET(3, II) = JJ
488.NOT.
IF ( FOUND) THEN
489 CALL ANCMSG(MSGID = 11, ANMODE = ANINFO, MSGTYPE = MSGERROR,
490 . I2 = ITEMP(II), I1 = T_MONVOLN%ID, C1 = T_MONVOLN%TITLE)
494 IF (IJET(II) > 0) THEN
495 T_MONVOLN%IBAGJET(5, II) = USR2SYS(NJ1(II), ITABM1, MESS, T_MONVOLN%ID)
496 T_MONVOLN%IBAGJET(6, II) = USR2SYS(NJ2(II), ITABM1, MESS, T_MONVOLN%ID)
497 IF(NJ3(II) /= 0) THEN
498 T_MONVOLN%IBAGJET(7, II) = USR2SYS(NJ3(II), ITABM1, MESS, T_MONVOLN%ID)
502 IF (IPT(II) == NPC(JJ)) THEN
503 T_MONVOLN%IBAGJET(8, II) = JJ
508.NOT.
IF ( FOUND) THEN
509 CALL ANCMSG(MSGID = 12, ANMODE = ANINFO, MSGTYPE = MSGERROR,
510 . I2 = IPT(II), I1 = T_MONVOLN%ID, C1 = T_MONVOLN%TITLE)
514 IF (IPA(II) == NPC(JJ)) THEN
515 T_MONVOLN%IBAGJET(9, II) = JJ
520.NOT.
IF ( FOUND) THEN
521 CALL ANCMSG(MSGID = 13, ANMODE = ANINFO, MSGTYPE = MSGERROR,
522 . I2 = IPA(II), I1 = T_MONVOLN%ID, C1 = T_MONVOLN%TITLE)
526 IF (IPZ(II) == NPC(JJ)) THEN
527 T_MONVOLN%IBAGJET(10, II) = JJ
532.NOT.
IF ( FOUND) THEN
533 CALL ANCMSG(MSGID = 14, ANMODE = ANINFO, MSGTYPE = MSGERROR,
534 . I2 = IPZ(II), I1 = T_MONVOLN%ID, C1 = T_MONVOLN%TITLE)
537 CPG = CPA(II) + TI * (CPB(II) + CPC(II) * TI)
538 RMWG = CPG * (GAMA(II) - ONE) / GAMA(II)
539 T_MONVOLN%RBAGJET(1, II) = RMWG
540 IF (NJ1(II) == 0) THEN
545 IF (NJ3(II) == 0) THEN
546 T_MONVOLN%IBAGJET(7, II) = T_MONVOLN%IBAGJET(5, II)
551 T_MONVOLN%IBAGHOL(13, II) = 0
552 T_MONVOLN%RBAGHOL(7, II) = FPORT(II)
553 T_MONVOLN%RBAGHOL(8, II) = FPORP(II)
554 T_MONVOLN%RBAGHOL(9, II) = FPORA(II)
555 T_MONVOLN%RBAGHOL(10, II) = FPORT1(II)
556 T_MONVOLN%RBAGHOL(11, II) = FPORP1(II)
557 T_MONVOLN%RBAGHOL(12, II) = FPORA1(II)
558 T_MONVOLN%IBAGHOL(1, II) = 0
559 T_MONVOLN%IBAGHOL(10, II) = IFVENT(II)
560 T_MONVOLN%IBAGHOL(11, II) = IDTPDEF(II)
561 T_MONVOLN%IBAGHOL(12, II) = 0
562 IF (IPVENT(II) == 0) THEN
563 T_MONVOLN%IBAGHOL(2, II) = 0
565 T_MONVOLN%IBAGHOL(2, II) = 0
568 IF (IPVENT(II) == IGRSURF(JJ)%ID) THEN
569 T_MONVOLN%IBAGHOL(2, II) = JJ
575 CALL ANCMSG(MSGID = 532, ANMODE = ANINFO, MSGTYPE = MSGERROR,
576 . I2 = IPVENT(II), I1 = T_MONVOLN%ID, C1 = T_MONVOLN%TITLE)
577 ELSEIF(IGRSURF(T_MONVOLN%IBAGHOL(2, II))%ISH4N3N == 0) THEN
578 CALL ANCMSG(MSGID = 330, ANMODE = ANINFO, MSGTYPE = MSGERROR,
579 . I1 = T_MONVOLN%ID, C1 = T_MONVOLN%TITLE)
581 IF (AVENT(II) == ZERO) AVENT(II) = ONE
583 IF (AVENT(II) == ZERO) DPDEF(II) = INFINITY
584 IF (AVENT(II) == ZERO) TVENT(II) = INFINITY
585.AND..AND.
IF (DPDEF(II) == ZERO DTPDEF(II) == ZERO TVENT(II) == ZERO) THEN
586 T_MONVOLN%IBAGHOL(1, II) = 1
588 T_MONVOLN%RBAGHOL(1, II) = DPDEF(II)
589 T_MONVOLN%RBAGHOL(2, II) = AVENT(II)
590 T_MONVOLN%RBAGHOL(3, II) = TVENT(II)
591 T_MONVOLN%RBAGHOL(4, II) = DTPDEF(II)
592 T_MONVOLN%RBAGHOL(6, II) = BVENT(II)
593.AND.
IF (IVDP(II) /= 0 FVDP(II) == ZERO) FVDP(II) = ONE
594 T_MONVOLN%RBAGHOL(13, II) = FVDP(II)
595 IF (TSTOPE(II) == ZERO) TSTOPE(II) = INFINITY
596 T_MONVOLN%RBAGHOL(14, II) = TSTOPE(II)
598 T_MONVOLN%IBAGHOL(3, II) = -1
599 T_MONVOLN%IBAGHOL(4, II) = -1
600 T_MONVOLN%IBAGHOL(5, II) = -1
601 T_MONVOLN%IBAGHOL(6, II) = -1
602 T_MONVOLN%IBAGHOL(7, II) = -1
603 T_MONVOLN%IBAGHOL(8, II) = -1
604 T_MONVOLN%IBAGHOL(9, II) = -1
606 IF (IPORT(II) == NPC(JJ)) T_MONVOLN%IBAGHOL(3, II) = JJ
607 IF (IPORP(II) == NPC(JJ)) T_MONVOLN%IBAGHOL(4, II) = JJ
608 IF (IPORA(II) == NPC(JJ)) T_MONVOLN%IBAGHOL(5, II) = JJ
609 IF (IPORT1(II) == NPC(JJ)) T_MONVOLN%IBAGHOL(6, II) = JJ
610 IF (IPORP1(II) == NPC(JJ)) T_MONVOLN%IBAGHOL(7, II) = JJ
611 IF (IPORA1(II) == NPC(JJ)) T_MONVOLN%IBAGHOL(8, II) = JJ
612 IF (IVDP(II) == NPC(JJ)) T_MONVOLN%IBAGHOL(9, II) = JJ
614 IF (IPORT(II) == 0) T_MONVOLN%IBAGHOL(3, II) = 0
615 IF (IPORP(II) == 0) T_MONVOLN%IBAGHOL(4, II) = 0
616 IF (IPORA(II) == 0) T_MONVOLN%IBAGHOL(5, II) = 0
617 IF (IPORT1(II) == 0) T_MONVOLN%IBAGHOL(6, II) = 0
618 IF (IPORP1(II) == 0) T_MONVOLN%IBAGHOL(7, II) = 0
619 IF (IPORA1(II) == 0) T_MONVOLN%IBAGHOL(8, II) = 0
620 IF (IVDP(II) == 0) T_MONVOLN%IBAGHOL(9, II) = 0
621 IF (T_MONVOLN%IBAGHOL(3, II) == -1) THEN
622 T_MONVOLN%IBAGHOL(3, II) = 0
623 CALL ANCMSG(MSGID = 331, ANMODE = ANINFO, MSGTYPE = MSGERROR,
624 . I1 = T_MONVOLN%ID, C1 = T_MONVOLN%TITLE, I2 = IPORT(II))
626 IF (T_MONVOLN%IBAGHOL(4, II) == -1) THEN
627 T_MONVOLN%IBAGHOL(4, II) = 0
628 CALL ANCMSG(MSGID = 332, ANMODE = ANINFO, MSGTYPE = MSGERROR,
629 . I1 = T_MONVOLN%ID, C1 = T_MONVOLN%TITLE, I2 = IPORP(II))
631 IF (T_MONVOLN%IBAGHOL(5, II) == -1) THEN
632 T_MONVOLN%IBAGHOL(5, II)=0
633 CALL ANCMSG(MSGID = 333, ANMODE = ANINFO, MSGTYPE = MSGERROR,
634 . I1 = T_MONVOLN%ID, C1 = T_MONVOLN%TITLE, I2 = IPORA(II))
636 IF (T_MONVOLN%IBAGHOL(6, II) == -1) THEN
637 T_MONVOLN%IBAGHOL(6, II) = 0
638 CALL ANCMSG(MSGID=331, ANMODE=ANINFO, MSGTYPE=MSGERROR,
639 . I1 = T_MONVOLN%ID, C1 = T_MONVOLN%TITLE, I2 = IPORT1(II))
641 IF (T_MONVOLN%IBAGHOL(7, II) == -1) THEN
642 T_MONVOLN%IBAGHOL(7, II)=0
643 CALL ANCMSG(MSGID=332, ANMODE=ANINFO, MSGTYPE=MSGERROR,
644 . I1 = T_MONVOLN%ID, C1 = T_MONVOLN%TITLE, I2 = IPORP1(II))
646 IF (T_MONVOLN%IBAGHOL(8, II) == -1) THEN
647 T_MONVOLN%IBAGHOL(8, II) = 0
648 CALL ANCMSG(MSGID=333, ANMODE=ANINFO, MSGTYPE=MSGERROR,
649 . I1 = T_MONVOLN%ID, C1 = T_MONVOLN%TITLE, I2 = IPORA1(II))
651 IF (T_MONVOLN%IBAGHOL(9, II) == -1) THEN
652 T_MONVOLN%IBAGHOL(9, II) = 0
653 CALL ANCMSG(MSGID = 518, ANMODE = ANINFO, MSGTYPE = MSGERROR,
654 . I1 = T_MONVOLN%ID, C1 = T_MONVOLN%TITLE, I2 = IVDP(II))
658 T_MONVOLN%RVOLU(2) = AMU
659 T_MONVOLN%RVOLU(16) = VOL + VEPS
660 T_MONVOLN%RVOLU(18) = SA
661 T_MONVOLN%RVOLU(21) = ROT
662 T_MONVOLN%RVOLU(22:24) = ZERO
667 WRITE(IOUT, 1005) SURFID
668 WRITE(IOUT, 1003) SCAL_T, SCAL_P, SCAL_S, SCAL_A, SCAL_D
669 WRITE(IOUT, 1002) SA, SV, VOL
670 WRITE(IOUT, 1400) AMU, TI, PEXT, PINI
676 WRITE(IOUT, 1410) GAMAI, CPAI, CPBI, CPCI
681 . IMASS(II), IFLU(II), FMASS(II), ITEMP(II), FTEMP(II), ISENS(II)
682 WRITE(IOUT, 1440) GAMA(II), CPA(II), CPB(II), CPC(II)
683 WRITE(IOUT, 1450) IJET(II)
684 IF (IJET(II) > 0) THEN
685 IF (NJ3(II) == 0) THEN
686 WRITE(IOUT, 1460) NJ1(II), NJ2(II), IPT(II), IPA(II), IPZ(II),
687 . FPT(II), FPA(II), FPZ(II)
689 WRITE(IOUT, 1461) NJ1(II), NJ2(II), NJ3(II), IPT(II), IPA(II), IPZ(II),
690 . FPT(II), FPA(II), FPZ(II)
694 WRITE(IOUT, 1470) NVENT,TTFIRE
696 WRITE(IOUT, 1471) ITTF
699 WRITE(IOUT,1472) II, IPVENT(II)
700.AND.
IF (IPVENT(II) == 0 AVENT(II) == ZERO) THEN
701 CALL ANCMSG(MSGID = 1019, MSGTYPE = MSGWARNING, ANMODE = ANINFO,
702 . I1 = T_MONVOLN%ID, I2 = II, C1 = T_MONVOLN%TITLE, C2 = 'vent hole surface
')
704 IF (IFVENT(II) <= 1) WRITE(IOUT, 1481)
705 IF (IFVENT(II) == 2) THEN
706 WRITE(IOUT, 1482) IVDP(II), FVDP(II)
708 IF (IFVENT(II) == 3) WRITE(IOUT, 1484)
709 IF (IFVENT(II) == 4) WRITE(IOUT, 1485)
710 IF (IPVENT(II) /= 0) THEN
711 CALL MONVOL_CHECK_VENTHOLE_SURF(IPRI, T_MONVOLN, IGRSURF, II, SHOL, X, IXC, IXTG)
712 T_MONVOLN%RBAGHOL(15, II) = SHOL
714 . SHOL,AVENT(II),BVENT(II),
715 . IPORT(II),IPORP(II),IPORA(II),FPORT(II),FPORP(II),FPORA(II),
716 . IPORT1(II),IPORP1(II),IPORA1(II),FPORT1(II),FPORP1(II),FPORA1(II)
717 WRITE(IOUT,1480) TVENT(II),DPDEF(II),DTPDEF(II),IDTPDEF(II),TSTOPE(II)
720 . AVENT(II),BVENT(II),
721 . IPORT(II),IPORP(II),IPORA(II),FPORT(II),FPORP(II),FPORA(II),
722 . IPORT1(II),IPORP1(II),IPORA1(II),FPORT1(II),FPORP1(II),FPORA1(II)
723 WRITE(IOUT,1480) TVENT(II),DPDEF(II),DTPDEF(II),IDTPDEF(II),TSTOPE(II)
730 DEALLOCATE(GAMA, CPA, CPB, CPC)
731 DEALLOCATE(IMASS, IFLU, FMASS, ITEMP, FTEMP, ISENS)
732 DEALLOCATE(IJET, NJ1, NJ2, NJ3)
733 DEALLOCATE(IPT, IPA, IPZ, FPT, FPA, FPZ)
736 DEALLOCATE(TVENT, DPDEF, DTPDEF, FVDP, AVENT, BVENT, TSTOPE)
737 DEALLOCATE(IPVENT, IVDP, IDTPDEF, IFVENT)
738 DEALLOCATE(IPORT, IPORP, IPORA, IPORT1, IPORP1, IPORA1)
739 DEALLOCATE(FPORT, FPORP, FPORA, FPORT1, FPORP1, FPORA1)
747 . /5X,'initial surface of monitored volume . .=
',1PG20.13,
748 . /5X,'surface error(ne.0
for non closed surf)=
',1PG20.13,
749 . /5X,'initial volume of monitored volume. . .=
',1PG20.13)
751 . 5X,'unit scale
for time functions =
',1PG20.13,
752 . /5X,'unit scale
for pressure functions =
',1PG20.13,
753 . /5X,'unit scale
for area functions =
',1PG20.13,
754 . /5X,'unit scale
for angle functions =
',1PG20.13,
755 . /5X,'unit scale
for distance
',1PG20.13)
756 1005 FORMAT( 5X,'EXTERNAL surface
id . . . . . . . . . .=
',I10)
758 . 5X,'volumic viscosity . . . . . . . . . . .=
',1PG20.13,
759 . /5X,'initial temperature . . . . . . . . . .=
',1PG20.13,
760 . /5X,'EXTERNAL pressure . . . . . . . . . . .=
',1PG20.13,
761 . /5X,'initial pressure. . . . . . . . . . . .=
',1PG20.13/)
763 . 5X,'initial thermodynamic equilibrium is set at time 0
'
764 . /5X,'--------------------------------------------------
'/)
766 . 5X,'initial thermodynamic equilibrium is set at injection time
'
767 . /5X,'----------------------------------------------------------
'/)
769 . 5X,'characteristics of initial gaz
',
770 . /5X,'------------------------------
',
771 . /5X,'gamma at initial temperature. . . . . .=
',1PG20.13,
772 . /5X,'coefficient cpa . . . . . . . . . . . .=',1pg20.13,
773 . /5x,
'COEFFICIENT CPB . . . . . . . . . . . .=',1pg20.13,
774 . /5x,
'COEFFICIENT CPC . . . . . . . . . . . .=',1pg20.13/)
779 . 5x,
'NUMBER OF INFLATORS . . . . . . . . . .=',i10/)
781 . 5x,
'INFLATOR NUMBER . . . . . . . . . . . .=',i10,
782 . /15x,
'TIME FUNCTION FOR INCOMING TOTAL MASS .=',i10,
783 . /15x,
' or MASS FLUX if IFLU=1 . . . . IFLU =',i10,
784 . /15x,
'SCALE FACTOR FOR INCOMING TOTAL MASS .=',1pg20.13,
785 . /15x,
'TIME FUNCTION FOR INCOMIMG GAS TEMP . .=',i10,
786 . /15x,
'SCALE FACTOR FOR INCOMIMG GAS TEMP . .=',1pg20.13,
787 . /15x,
'SENSOR NUMBER . . . . . . . . . . . . .=',i10)
789 . /15x,
'GAZ CHARACTERISTICS ',
790 . /15x,
'------------------- ',
791 . /15x,
'GAMMA AT INITIAL TEMPERATURE. . . . . .=',1pg20.13,
792 . /15x,
'COEFFICIENT CPA . . . . . . . . . . . .=',1pg20.13,
793 . /15x,
'COEFFICIENT CPB . . . . . . . . . . . .=',1pg20.13,
794 . /15x,
'COEFFICIENT CPC . . . . . . . . . . . .=',1pg20
796 . /15x,
'JETTING OPTION. . . . . . . . . . . . .=',i10,
797 . /15x,
'----------------------------------------')
799 . 15x,
'CONICAL JET . . . . . . . . . . . . . .',
800 . /15x,
'NODE NUMBER DEFINING INJECTION CENTER .='
801 . /15x,
'NODE NUMBER DEFINING INJECTION AXIS . .=',i10,
802 . /15x,
'JETTING PRESSURE TIME CURVE NUMBER. . .=',i10,
803 . /15x,
'JETTING PRESSURE THETA CURVE NUMBER . .=',i10,
804 . /15x,
'JETTING PRESSURE DIST. CURVE NUMBER . .=',i10,
805 . /15x,
'TIME FUNCTION SCALE FACTOR . .=',1pg20.13,
806 . /15x,
'THETA FUNCTION SCALE FACTOR . .=',1pg20.13,
807 . /15x,
'DIST FUNCTION SCALE FACTOR . .=',1pg20.13/)
809 . 15x,
'DIHEDRAL JET. . . . . . . . . . . . . .',
810 . /15x,
'NODE NUMBER DEFINING INJECTION CENTER .='
811 . /15x,
'NODE NUMBER DEFINING INJECTION AXIS . .=',i10,
812 . /15x,
'NODE NUMBER DEFINING BASE LINE. . . . .='
813 . /15x,
'JETTING PRESSURE TIME CURVE NUMBER. . .=',i10,
814 . /15x,
'JETTING PRESSURE THETA CURVE NUMBER . .=',i10,
815 . /15x,
'JETTING PRESSURE DIST. CURVE NUMBER . .=',i10,
816 . /15x,
'TIME FUNCTION SCALE FACTOR . .=',1pg20.13,
817 . /15x,
'THETA FUNCTION SCALE FACTOR . .=',1pg20
818 . /15x,
'DIST FUNCTION SCALE FACTOR . .=',1pg20.13)
820 . /5x,
'VENT HOLES AND POROUS FABRIC SURFACES ',
821 . /5x,
'------------------------------------- ',
822 . /5x,
'NUMBER OF VENT HOLES AND POROUS SURFACES . .='
823 . /5x,
'INJECTION TIME TINJ. . . . . . . . . . . . .=',1pg20.13)
825 . 5x,
'VENTING START TIME SHIFT . . . . . . . . . .=',i10,
826 . /5x,
' 0 : NO SHIFT',
827 . /5x,
' 1 : JETTING FUNCTIONS ARE SHIFTED BY INJECTION TIME',
828 . /5x,
' 2 : JETTING AND VENTING FUNCTIONS ARE SHIFTED BY',
829 . /5x,
' INJECTION TIME TINJ',
830 . /5x,
' 3 : JETTING AND VENTING FUNCTIONS ARE SHIFTED',
831 . /5x,
' BY TINJ FOR JETTING FUNCTIONS',
832 . /5x,
' BY TINJ+TSTART FOR VENTING FUNCTIONS')
834 . / 5x,
'VENT HOLE NUMBER. . . . . . . . . . . .=',i10,
835 . /15x,
'VENT HOLE SURFACE ID. . . . . . . . . .=',i10)
836 1481
FORMAT(15x,
'ISENTHALPIC VENTING MODEL ')
837 1482
FORMAT(15x,
'CHEMKIN MODEL FOR POROSITY : ',
838 . /15x,
'VELOCITY VS RELATIVE PRESSURE FUNCTION =',i10,
839 . /15x,
' SCALE FACTOR. . . . . . .=',1pg20.13)
840 1484
FORMAT(15x,
'GRAEFE POROSITY FORMULATION')
841 1485
FORMAT(15x,
'ISENTHALPIC VENTING MODEL WITH POSSIBLE FLOW IN')
843 . 15x,
'INITIAL SURFACE . . . . . . . . . . . .=',1pg20.13,
844 . /15x,
'AVENT:VENT HOLE SCALE FACTOR. . . . . .=',1pg20.13
845 . /15x,
'BVENT:VENT HOLE SCALE FACTOR IF CONTACT=',1pg20.13,
846 . /15x,
'POROSITY FUNCTION / TIME. . . . . . . .=',i10,
847 . /15x,
'POROSITY FUNCTION / PRESSURE. . . . . .=',i10,
848 . /15x,
'POROSITY FUNCTION / AREA. . . . . . . .=',i10,
849 . /15x,
'POROSITY TIME FUNCTION SCALE FACTOR =',1pg20.13,
850 . /15x,
'POROSITY PRESSURE FUNCTION SCALE FACTOR=',1pg20.13,
851 . /15x,
'POROSITY AREA FUNCTION SCALE FACTOR . .=',1pg20.13,
852 . /15x,
'POROSITY FUNCTION / TIME(after contact)=',i10,
853 . /15x,
'POROSITY FUNCTION / PRESSURE. . . . . .=',i10,
854 . /15x,
'POROSITY FUNCTION / AREA. . . . . . . .=',i10,
855 . /15x,
'POROSITY TIME FUNCTION SCALE FACTOR =',1pg20.13,
856 . /15x,
'POROSITY PRESSURE FUNCTION SCALE FACTOR=',1pg20.13,
857 . /15x,
'POROSITY AREA FUNCTION SCALE FACTOR . .=',1pg20.13)
859 . 15x,
'START TIME FOR VENTING TSTART . . . . .=',1pg20.13,
860 . /15x,
'RELATIVE PRES. FOR MEMBRANE DEFLATION .=',1pg20.13,
861 . /15x,
' (DPDEF = PDEF - PEXT) ',
862 . /15x,
'TIME DELAY BEFORE MEMBRANE DEFLATION .=',1pg20.13,
863 . /15x,
'TIME DELAY FLAG . . . . . . . . . . . .=',i10,
864 . /15x,
' IF IDTPDEF : 0',
865 . /15x,
' PRESSURE SHOULD BE OVER PDEF DURING',
866 . /15x,
' A CUMULATED DTPDEF TIME'
867 . /15x,
' BEFORE ACTIVATING DEFLATION'
868 . /15x,
' IF IDTPDEF : 1',
869 . /15x,
' DEFLATION START DTPDEF AFTER',
870 . /15x,
' DPDEF HAS BEEN REACHED',
871 . /15x,
'END TIME FOR VENTING TSTOP. . . . . . .=',1pg20.13)
873 . 15x,
'AVENT:VENT HOLE AREA. . . . . . . . . .=',1pg20.13,
874 . /15x,
'BVENT:VENT HOLE SCALE FACTOR IF CONTACT=',1pg20.13,
875 . /15x,
'POROSITY FUNCTION / TIME. . . . . . . .=',i10,
876 . /15x,
'POROSITY FUNCTION / PRESSURE. . . . . .=',i10,
877 . /15x,
'POROSITY FUNCTION / AREA. . . . . . . .=',i10,
878 . /15x,
'POROSITY TIME FUNCTION SCALE FACTOR =',1pg20.13,
879 . /15x,
'POROSITY PRESSURE FUNCTION SCALE FACTOR=',1pg20.13,
880 . /15x,'porosity
area FUNCTION scale factor . .=
',1PG20.13,
881 . /15X,'porosity function / time(after contact)=
',I10,
882 . /15X,'porosity function / pressure. . . . . .=
',I10,
883 . /15X,'porosity function /
area. . . . . . . .=
',I10,
884 . /15X,'porosity time function scale factor =
',1PG20.13,
885 . /15X,'porosity pressure function scale factor=
',1PG20.13,
886 . /15X,'porosity
area function scale factor . .=
',1PG20.13)
subroutine ancmsg(msgid, msgtype, anmode, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, r1, r2, r3, r4, r5, r6, r7, r8, r9, c1, c2, c3, c4, c5, c6, c7, c8, c9, prmode)