56 . SENSORS, IFRAME, XFRAME, IGRBRIC,
57 . UNITAB, LUID, NPC, IGRSURF, ITAB, X, PM, GEO, IXC, IXTG,
75#include
"implicit_f.inc"
91 INTEGER,
INTENT(IN) :: LUID, IPM(NPROPMI, NUMMAT), IGEO(NPROPGI, NUMGEO), ITABM1(NUMNOD), IFRAME(LISKN,NUMFRAM
92INTEGER,
INTENT(IN) :: NPC(*), ITAB(NUMNOD), IXC(NIXC, NUMELC), IXTG(NIXTG, NUMELTG)
93 my_real,
INTENT(IN) :: x(3, numnod), geo(npropg, numgeo), pm(npropm, nummat),
94 . xframe(nxframe, numfram+1)
95 TYPE (SURF_),
INTENT(INOUT),
DIMENSION(NSURF) :: IGRSURF
97 TYPE (GROUP_) ,
DIMENSION(NGRBRIC),
INTENT(IN) :: IGRBRIC
98 TYPE(
submodel_data),
DIMENSION(NSUBMOD),
INTENT(IN) :: LSUBMODEL
99 TYPE (SENSORS_) ,
INTENT(IN) :: SENSORS
104 INTEGER :: SURFID, SURFID_INT,SURFID_INJ
105 my_real :: FAC_M, FAC_L, FAC_T, FAC_C, FAC_GEN
106 my_real :: scal_t, scal_p, scal_s, scal_a, scal_d
108 my_real :: sa, rot, vol, vmin, veps, amu, sv
109 INTEGER :: MID_INI, IEQUI, ITTF, MID_INISYS
110 my_real :: hconv, pext, ti, pini
111 my_real :: mwi, cpai, cpbi, cpci, cpdi, cpei, cpfi, r_igc1, cpi, rmwi, cvi, gamai
113 INTEGER,
DIMENSION(:),
ALLOCATABLE :: I_INJ, ISENS, IJET, NJ1, NJ2, NJ3,
114 . ipt, ipa, ipz, i_injsys,ivel
115 my_real,
DIMENSION(:),
ALLOCATABLE :: fpt, fpa, fpz,fvel
116 INTEGER :: NVENTHOLES, NPORSURF, NVENT
117 CHARACTER(LEN = 40) :: MESS
118 CHARACTER(LEN = 20) :: VENTTITLE
119 INTEGER :: TITREVENT(20)
120 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IPVENT, IFVENT, IDTPDEF, IPORT, IPORP, IPORA,
121 . iport1, iporp1, ipora1, ivdp, iblockage
122 my_real,
DIMENSION(:),
ALLOCATABLE :: avent, bvent, tvent, tstope, dpdef
123 . fport, fporp, fpora, fport1, fporp1, fpora1, fvdp, cleak
125 CHARACTER(LEN = nchartitle) :: TITR1
126 my_real :: MI, RHOI, TI2, ESPECI, CPA, CPB, CPC, CPD, CPE, CPF, MW_TMP, RMWG,
127 . cpg, cvg, gama, shol
129 INTEGER KFRAME, IMESH_ALL, ISWITCH, NBX, NBY, NBZ, IBRIC
130 INTEGER IREF, IGMERG, ILVOUT, NLAYER, NFACMAX, NPPMAX, IFVANI
131 INTEGER I1,I2,I3, I4, NBRIC, NN, ISH34
132 my_real tswitch, pswitch, lx, ly, lz, cnmerg, qa, qb, ptole,hmin, cfl_coef, dtmin, sjet, cgmerg
133 my_real nx, ny, nz, xx, yy, zz, x13, y13, z13, x24, y24, z24
134 my_real origx, origy, origz, dir2x, dir2y, dir2z, dir, ds, dirx, diry, dirz
135 INTEGER :: KMESH, ID_DT_OPTION,IH3D_FLAG
136 LOGICAL :: IS_AVAILABLE
145 mess =
'MONITORED VOLUME DEFINITION '
153 CALL hm_get_intv(
'surf_IDex', surfid, is_available, lsubmodel)
154 CALL hm_get_floatv(
'Hconv',hconv, is_available, lsubmodel, unitab)
155 CALL hm_get_intv(
'IH3D', ih3d_flag, is_available, lsubmodel)
158 CALL hm_get_floatv(
'Ascalet', scal_t, is_available, lsubmodel, unitab)
159 CALL hm_get_floatv(
'AscaleP', scal_p, is_available, lsubmodel, unitab)
160 CALL hm_get_floatv(
'AscaleS', scal_s, is_available, lsubmodel, unitab)
161 CALL hm_get_floatv(
'AscaleA', scal_a, is_available, lsubmodel, unitab)
162 CALL hm_get_floatv(
'AscaleD', scal_d, is_available, lsubmodel, unitab)
164 CALL hm_get_intv(
'mat_ID', mid_ini, is_available, lsubmodel)
165 CALL hm_get_floatv(
'Pext', pext, is_available, lsubmodel, unitab)
166 CALL hm_get_floatv(
'T0', ti, is_available, lsubmodel, unitab)
167 CALL hm_get_intv(
'Iequil', iequi, is_available, lsubmodel)
168 CALL hm_get_intv(
'Ittf', ittf, is_available, lsubmodel)
170 CALL hm_get_intv(
'Njet', njet, is_available, lsubmodel)
172 t_monvoln%NJET = njet
173 t_monvoln%IVOLU(8) = njet
175 ALLOCATE(t_monvoln%IBAGJET(nibjet, njet))
176 t_monvoln%IBAGJET(1:nibjet, 1:njet) = 0
177 ALLOCATE(t_monvoln%RBAGJET(nrbjet, njet))
178 t_monvoln%RBAGJET(1:nrbjet, 1:njet) = zero
181 ALLOCATE(i_inj(njet), isens(njet), ijet(njet), nj1(njet), nj2(njet), nj3(njet))
182 ALLOCATE(ipt(njet), ipa(njet), ipz(njet), fpt(njet), fpa(njet), fpz(njet))
183 ALLOCATE(ivel(njet),fvel(njet))
201 CALL hm_get_intv(
'Nvent', nventholes, is_available, lsubmodel)
202 CALL hm_get_intv(
'Nporsurf', nporsurf, is_available, lsubmodel)
204 nvent = nventholes + nporsurf
205 t_monvoln%IVOLU(11) = nvent
206 t_monvoln%NVENT = nvent
207 t_monvoln%NPORSURF = nporsurf
209 ALLOCATE(t_monvoln%IBAGHOL(nibhol, nvent))
210 t_monvoln%IBAGHOL(1:nibhol, 1:nvent) = 0
211 ALLOCATE(t_monvoln%RBAGHOL(nrbhol, nvent))
212 t_monvoln%RBAGHOL(1:nrbhol, 1:nvent) = zero
214 ALLOCATE(ipvent(nvent), ifvent(nvent), avent(nvent), bvent(nvent))
215 ALLOCATE(tvent(nvent), tstope(nvent), dpdef(nvent), dtpdef(nvent),
217 ALLOCATE(iport(nvent), iporp(nvent), ipora(nvent), fport(nvent),
218 . fporp(nvent), fpora(nvent))
219 ALLOCATE(iport1(nvent), iporp1(nvent), ipora1(nvent), fport1(nvent),
220 . fporp1(nvent), fpora1(nvent))
221 ALLOCATE(iblockage(nvent), cleak(nvent))
222 ALLOCATE(ivdp(nvent), fvdp(nvent))
224 IF (nventholes > 0)
THEN
225 DO ii = 1, nventholes
232 IF (ifvent(ii) == 0) ifvent(ii) = 1
239 venttitle = venttitle(1:len_trim(venttitle))
241 titrevent(jj) = iachar(venttitle(jj:jj))
242 t_monvoln%IBAGHOL(jj + 14, ii) = titrevent(jj)
258 IF (ifvent(ii) == 2)
THEN
267 IF (nporsurf > 0)
THEN
275 venttitle = venttitle(1:len_trim(venttitle))
277 titrevent(jj) = iachar(venttitle(jj:jj))
278 t_monvoln%IBAGHOL(jj + 14, nventholes + ii) = titrevent(jj)
288 cleak(nventholes + ii) = zero
289 avent(nventholes + ii) = zero
290 iport(nventholes + ii) = 0
291 ipora(nventholes + ii) = 0
293 fpora(nventholes + ii) = zero
294 IF (ifvent(nventholes + ii) == 0) ifvent(nventholes + ii) = 1
295 IF (ifvent(nventholes + ii) == 3) ifvent(nventholes + ii) = 5
296 ivdp(nventholes + ii) = 0
297 fvdp(nventholes + ii) = zero
298 IF (ifvent(nventholes + ii) == 2)
THEN
306 CALL hm_get_intv(
'frame_ID', kframe, is_available, lsubmodel)
307 CALL hm_get_intv(
'kmesh', kmesh, is_available, lsubmodel)
308 CALL hm_get_floatv(
'Tswitch', tswitch, is_available, lsubmodel, unitab)
310 CALL hm_get_floatv(
'Pswitch', pswitch, is_available, lsubmodel, unitab
312 CALL hm_get_floatv(
'L1', lx, is_available, lsubmodel, unitab)
313 CALL hm_get_floatv(
'L2', ly, is_available, lsubmodel, unitab)
314 CALL hm_get_floatv(
'L3', lz, is_available, lsubmodel, unitab)
316 CALL hm_get_intv(
'Nb1', nbx, is_available, lsubmodel)
317 CALL hm_get_intv(
'Nb2', nby, is_available, lsubmodel)
318 CALL hm_get_intv(
'Nb3', nbz, is_available, lsubmodel)
319 CALL hm_get_intv(
'grbric_ID', ibric, is_available, lsubmodel)
320 CALL hm_get_intv(
'surf_IDin', surfid_int, is_available, lsubmodel)
321 CALL hm_get_intv(
'Iref', iref, is_available, lsubmodel)
323 CALL hm_get_intv(
'Igmerg', igmerg, is_available, lsubmodel)
325 CALL hm_get_floatv(
'Cnmerg', cnmerg, is_available, lsubmodel, unitab)
326 CALL hm_get_floatv(
'Ptole', ptole, is_available, lsubmodel, unitab)
328 CALL hm_get_floatv(
'qa', qa, is_available, lsubmodel, unitab)
329 CALL hm_get_floatv(
'qb', qb, is_available, lsubmodel, unitab)
330 CALL hm_get_floatv(
'Hmin', hmin, is_available, lsubmodel, unitab)
332 CALL hm_get_floatv(
'Dtmin', dtmin, is_available, lsubmodel, unitab
334 CALL hm_get_intv(
'Ilvout', ilvout, is_available, lsubmodel)
335 CALL hm_get_intv(
'Nlayer', nlayer, is_available, lsubmodel)
336 CALL hm_get_intv('nfacmax
', NFACMAX, IS_AVAILABLE, LSUBMODEL)
337 CALL HM_GET_INTV('nppmax
', NPPMAX, IS_AVAILABLE, LSUBMODEL)
338 CALL HM_GET_INTV('ifvani
', IFVANI, IS_AVAILABLE, LSUBMODEL)
345 IF (IFRAME(4, II + 1) == KFRAME) THEN
350.NOT.
IF ( lFOUND) THEN
351 CALL ANCMSG(MSGID = 853, ANMODE = ANINFO, MSGTYPE = MSGERROR,
352 . I2 = KFRAME, I1 = T_MONVOLN%ID, C1 = T_MONVOLN%TITLE)
358 DIR2X = XFRAME(1, JJ)
359 DIR2Y = XFRAME(2, JJ)
360 DIR2Z = XFRAME(3, JJ)
361 ORIGX = XFRAME(10, JJ)
362 ORIGY = XFRAME(11, JJ)
363 ORIGZ = XFRAME(12, JJ)
368 FAC_M = UNITAB%FAC_M(LUID)
369 FAC_L = UNITAB%FAC_L(LUID)
370 FAC_T = UNITAB%FAC_T(LUID)
371 FAC_C = FAC_M / (FAC_L * FAC_T * FAC_T)
377 T_MONVOLN%IVOLU(4) = 0
378 T_MONVOLN%EXT_SURFID = 0
381 IF (SURFID == IGRSURF(II)%ID) THEN
382 T_MONVOLN%IVOLU(4) = II
383 T_MONVOLN%EXT_SURFID = II
388.NOT.
IF ( FOUND) THEN
390 ELSEIF (IGRSURF(T_MONVOLN%IVOLU(4))%ISH4N3N == 0) THEN
391 CALL ANCMSG(MSGID = 18, ANMODE = ANINFO, MSGTYPE = MSGERROR,
392 . I1 = T_MONVOLN%ID, C1 = T_MONVOLN%TITLE, I2 = SURFID)
397 CALL MONVOL_CHECK_SURFCLOSE(T_MONVOLN, ITAB, IGRSURF(T_MONVOLN%EXT_SURFID), X)
399 CALL MONVOL_ORIENT_SURF(T_MONVOLN, T_MONVOLN%TITLE, T_MONVOLN%IVOLU, ITAB,
400 . IGRSURF(T_MONVOLN%EXT_SURFID),IXC, IXTG, X, 8)
402 CALL MONVOL_COMPUTE_VOLUME(T_MONVOLN, T_MONVOLN%TITLE, T_MONVOLN%IVOLU, IGRSURF(T_MONVOLN%EXT_SURFID),
403 . ITAB, X, PM, GEO, IXC, IXTG,
404 . SA, ROT, VOL, VMIN, VEPS, SV)
406 CALL MONVOL_REVERSE_NORMALS(T_MONVOLN, T_MONVOLN%TITLE, T_MONVOLN%IVOLU, ITAB,
407 . IGRSURF(T_MONVOLN%EXT_SURFID),IXC,IXTG,VOL, X, 8)
409.OR.
IF (ITTF < 0 ITTF > 3) THEN
410 CALL ANCMSG(MSGID = 773, ANMODE = ANINFO, MSGTYPE = MSGERROR,
411 . I1 = T_MONVOLN%ID, C1 = T_MONVOLN%TITLE)
417 T_MONVOLN%IVOLU(66) = 0
420.AND.
IF (IPM(1, II) == MID_INI IPM(2, II) == 999) THEN
421 MWI = PM(20, II) * FAC_M
422 CPAI = PM(21, II) * FAC_L * FAC_L / (FAC_T * FAC_T)
423 CPBI = PM(22, II) * FAC_L * FAC_L / (FAC_T * FAC_T)
424 CPCI = PM(23, II) * FAC_L * FAC_L / (FAC_T * FAC_T)
425 CPDI = PM(24, II) * FAC_L * FAC_L / (FAC_T * FAC_T)
426 CPEI = PM(25, II) * FAC_L * FAC_L / (FAC_T * FAC_T)
427 CPFI = PM(26, II) * FAC_L * FAC_L / (FAC_T * FAC_T)
429 CPI = CPAI + CPBI * TI + CPCI * TI * TI + CPDI * TI * TI * TI +
430 . CPEI / (TI * TI) + CPFI * TI * TI * TI * TI
433 T_MONVOLN%IVOLU(66) = II
434 IF (CVI == ZERO) THEN
435 CALL ANCMSG(MSGID = 709, MSGTYPE = MSGERROR, ANMODE = ANINFO,
436 . I1 = T_MONVOLN%ID, C1 = T_MONVOLN%TITLE)
445.NOT.
IF ( FOUND) THEN
446 CALL ANCMSG(MSGID = 699, ANMODE = ANINFO, MSGTYPE = MSGERROR,
447 . I2 = MID_INI, I1 = T_MONVOLN%ID, C1 = T_MONVOLN%TITLE)
451 ALLOCATE(I_INJSYS(NJET))
453! Check injector property
457 IF (IGEO(1, JJ) == I_INJ(II)) THEN
463.NOT.
IF ( FOUND) THEN
464 CALL ANCMSG(MSGID = 723, ANMODE = ANINFO, MSGTYPE = MSGERROR,
465 . I2 = I_INJ(II), I1 = T_MONVOLN%ID, C1 = T_MONVOLN%TITLE)
471 T_MONVOLN%IVOLU(61)=0
474 IF (IBRIC==IGRBRIC(II)%ID) THEN
475 T_MONVOLN%IVOLU(61)=II
482 T_MONVOLN%IVOLU(67)=0
483 T_MONVOLN%INT_SURFID = 0
484 IF(SURFID_INT>0) THEN
486 IF (SURFID_INT==IGRSURF(II)%ID) THEN
487 T_MONVOLN%IVOLU(67) = II
488 T_MONVOLN%INT_SURFID = II
495 IF(T_MONVOLN%IVOLU(61)/=0) NBRIC=IGRBRIC(T_MONVOLN%IVOLU(61))%ID
497 IF(T_MONVOLN%INT_SURFID/=0) SURFID_INT=IGRSURF(T_MONVOLN%INT_SURFID)%ID
501 IF(IH3D_FLAG /= 0)THEN
502.AND.
IF(IH3D_FLAG /= -1 IH3D_FLAG /= 1)THEN
507 !-----------------------------------------------
513 IF (SCAL_T == ZERO) THEN
514 CALL HM_GET_FLOATV_DIM('ascalet
', FAC_GEN, IS_AVAILABLE, LSUBMODEL, UNITAB)
517 IF (SCAL_P == ZERO) THEN
518 CALL HM_GET_FLOATV_DIM('ascalep
', FAC_GEN, IS_AVAILABLE, LSUBMODEL, UNITAB)
521 IF (SCAL_S == ZERO) THEN
522 CALL HM_GET_FLOATV_DIM('ascales
', FAC_GEN, IS_AVAILABLE, LSUBMODEL, UNITAB)
525 IF (SCAL_A == ZERO) THEN
526 CALL HM_GET_FLOATV_DIM('ascalea
', FAC_GEN, IS_AVAILABLE, LSUBMODEL, UNITAB)
529 IF (SCAL_D == ZERO) THEN
530 CALL HM_GET_FLOATV_DIM('ascaled
', FAC_GEN, IS_AVAILABLE, LSUBMODEL, UNITAB)
536 IF (PEXT == ZERO) THEN
537 PEXT = 101325.D0 * (UNITAB%FAC_L_WORK * UNITAB%FAC_T_WORK * UNITAB%FAC_T_WORK) / UNITAB%FAC_M_WORK
539 CALL HM_GET_FLOATV_DIM('pext
', FAC_GEN, IS_AVAILABLE, LSUBMODEL, UNITAB)
540 PEXT = PEXT * FAC_GEN
543 !CALL HM_GET_FLOATV_DIM('', FAC_GEN, IS_AVAILABLE, LSUBMODEL, UNITAB)
548 FPT(II) = ONE * FAC_C
549 FPA(II) = ONE * FAC_C
550 FPZ(II) = ONE * FAC_C
554 IF (NVENTHOLES > 0) THEN
555 DO II = 1, NVENTHOLES
556 IF (IPVENT(II) == 0) THEN
559 IF (FPORT(II) == ZERO) FPORT(II) = ONE
560 IF (FPORP(II) == ZERO) FPORP(II) = ONE
561 IF (FPORA(II) == ZERO) FPORA(II) = ONE
562 IF (FPORT1(II) == ZERO) FPORT1(II) = ONE
563 IF (FPORP1(II) == ZERO) FPORP1(II) = ONE
564 IF (FPORA1(II) == ZERO) FPORA1(II) = ONE
570 T_MONVOLN%IBAGJET(14,II) = 0
573 IF (IJET(II)==IGRSURF(JJ)%ID) THEN
574 T_MONVOLN%IBAGJET(14, II) = JJ
580.NOT.
IF(lFOUND)CALL ANCMSG(MSGID=847,ANMODE=ANINFO,MSGTYPE=MSGERROR,I2=IJET(II),I1=T_MONVOLN%ID,C1=T_MONVOLN%TITLE)
582 IF (IVEL(II)==NPC(JJ)) T_MONVOLN%IBAGJET(11, II)=JJ
584 IF (FVEL(II) == ZERO) FVEL(II) = ONE
587 IF(TSWITCH == ZERO) TSWITCH=EP20
588 IF (KMESH == 0) KMESH=14
589 IF (KMESH == 2) KMESH=12 ! KMESH=2 is deprecated, set to 12.
590 IF (KMESH == 4) KMESH=14 ! KMESH=4 is deprecated, set to 14.
591 IF (IBRIC /= 0) THEN !IF IBRIC is not 0 and KMESH has been set to 2, KMESH is ignored
599 IF (IGMERG==0) IGMERG=1
600 IF (CGMERG==ZERO) CGMERG=EM01
601 IF (CNMERG==ZERO) CNMERG=EM04
602 IF (PTOLE==ZERO) PTOLE=EM5
603 IF (NLAYER ==0) NLAYER =10
604 IF (NFACMAX==0) NFACMAX=20
605 IF (NPPMAX ==0) NPPMAX =20
607.AND.
IF(CFL_COEF/=ZERO DTMIN/=ZERO)ID_DT_OPTION=1
608 IF(CFL_COEF==ZERO)CFL_COEF=ZEP9
609 IF(DTMIN==ZERO)DTMIN=EM20
611 !------------------------------------------------------!
615 T_MONVOLN%IMESH_ALL = IMESH_ALL
616 T_MONVOLN%IVOLU(8) = NJET
617.AND.
IF (IEQUI > 0 IEQUI /= 1) IEQUI = 1
618 T_MONVOLN%IVOLU(15) = IEQUI
619 T_MONVOLN%IVOLU(17) = ITTF
620 T_MONVOLN%IVOLU(27) = ID_DT_OPTION
621 T_MONVOLN%IVOLU(30) = KMESH
622 T_MONVOLN%IVOLU(35)=NBX*NBY
623 T_MONVOLN%IVOLU(37) = 0
624 T_MONVOLN%IVOLU(40)=NLAYER
625 T_MONVOLN%IVOLU(41)=NFACMAX
626 T_MONVOLN%IVOLU(42)=NPPMAX
627 T_MONVOLN%IVOLU(44)=ILVOUT
628 T_MONVOLN%IVOLU(54)=NBX
629 T_MONVOLN%IVOLU(55)=NBY
630 T_MONVOLN%IVOLU(59)=IREF
631 T_MONVOLN%IVOLU(60)=IGMERG
632 T_MONVOLN%IVOLU(65)=NBZ
633 T_MONVOLN%IVOLU(74) = ISWITCH !Parameter for autoswitching to uniform pressure airbag
634 T_MONVOLN%IVOLU(75) = IH3D_FLAG
636 T_MONVOLN%RVOLU(19) = HCONV
637 T_MONVOLN%RVOLU(26) = ONE / SCAL_T
638 T_MONVOLN%RVOLU(27) = ONE / SCAL_P
639 T_MONVOLN%RVOLU(28) = ONE / SCAL_S
640 T_MONVOLN%RVOLU(29) = ONE / SCAL_A
641 T_MONVOLN%RVOLU(30) = ONE / SCAL_D
642 T_MONVOLN%RVOLU(31)=CGMERG
643 T_MONVOLN%RVOLU(34)=CNMERG
644 T_MONVOLN%RVOLU(35)=DIRX
645 T_MONVOLN%RVOLU(36)=DIRY
646 T_MONVOLN%RVOLU(37)=DIRZ
647 T_MONVOLN%RVOLU(38)=DIR2X
648 T_MONVOLN%RVOLU(39)=DIR2Y
649 T_MONVOLN%RVOLU(40)=DIR2Z
650 T_MONVOLN%RVOLU(41)=ORIGX
651 T_MONVOLN%RVOLU(42)=ORIGY
652 T_MONVOLN%RVOLU(43)=ORIGZ
653 T_MONVOLN%RVOLU(44)=LX
654 T_MONVOLN%RVOLU(45)=LY
655 T_MONVOLN%RVOLU(46)=QA
656 T_MONVOLN%RVOLU(47)=QB
657 T_MONVOLN%RVOLU(50)=PTOLE
658 T_MONVOLN%RVOLU(51)=HMIN
659 T_MONVOLN%RVOLU(53)=LZ
660 T_MONVOLN%RVOLU(70) = TSWITCH
661 T_MONVOLN%RVOLU(71) = CFL_COEF
662 T_MONVOLN%RVOLU(72) = DTMIN
663 T_MONVOLN%RVOLU(73) = PSWITCH
666 MID_INISYS = T_MONVOLN%IVOLU(66)
667 IF (MID_INISYS /= 0) THEN
668 MWI = PM(20, MID_INISYS)
669 CPAI = PM(21, MID_INISYS)
670 CPBI = PM(22, MID_INISYS)
671 CPCI = PM(23, MID_INISYS)
672 CPDI = PM(24, MID_INISYS)
673 CPEI = PM(25, MID_INISYS)
674 CPFI = PM(26, MID_INISYS)
675 R_IGC1 = PM(27, MID_INISYS)
685 CALL ANCMSG(MSGID= 7 18, ANMODE = ANINFO, MSGTYPE = MSGERROR,
686 . I1 = T_MONVOLN%ID, C1 = T_MONVOLN%TITLE)
688 T_MONVOLN%RVOLU(7)=CPAI
689 T_MONVOLN%RVOLU(8)=CPBI
690 T_MONVOLN%RVOLU(9)=CPCI
691 T_MONVOLN%RVOLU(56)=CPDI
692 T_MONVOLN%RVOLU(57)=CPEI
693 T_MONVOLN%RVOLU(58)=CPFI
694 T_MONVOLN%RVOLU(59)=MWI
695 CPI = CPAI + CPBI * TI + CPCI * TI * TI + CPDI * TI * TI * TI +
696 . CPEI / (TI * TI) + CPFI * TI * TI * TI * TI
697 IF (MWI == ZERO) THEN
704 MI = PINI * (VOL + VEPS) / (RMWI * TI)
705 T_MONVOLN%RVOLU(1) = GAMAI
706 T_MONVOLN%RVOLU(3) = PEXT
707 T_MONVOLN%RVOLU(4) = VOL + VEPS
708 T_MONVOLN%RVOLU(11) = MI
709 T_MONVOLN%RVOLU(12) = PINI
710 T_MONVOLN%RVOLU(13) = TI
711 T_MONVOLN%RVOLU(14) = RMWI * MI
712 T_MONVOLN%RVOLU(17) = VEPS
713 T_MONVOLN%RVOLU(20) = MI
714 T_MONVOLN%RVOLU(25) = TI
715 T_MONVOLN%RVOLU(61) = GAMAI
716 RHOI = PINI / (TI * RMWI)
717 T_MONVOLN%RVOLU(62) = RHOI
718 T_MONVOLN%RVOLU(10) = RMWI
720 ESPECI=TI*(CPAI+HALF*CPBI*TI+THIRD*CPCI*TI2-RMWI)
721 ESPECI=ESPECI+FOURTH*CPDI*TI2*TI2-CPEI/TI+ONE_FIFTH*CPFI*TI2*TI2*TI
722 T_MONVOLN%RVOLU(63)= ESPECI+RMWI*TI
723 T_MONVOLN%RVOLU(64)= ZERO
724 T_MONVOLN%RVOLU(65)= ZERO
725 T_MONVOLN%RVOLU(66)= ESPECI
729 !------------------------------------------------------!
730 T_MONVOLN%RBAGJET(15,II)=FVEL(II)
731 !------------------------------------------------------!
732 T_MONVOLN%IBAGJET(13, II) = I_INJSYS(II)
733 T_MONVOLN%RBAGJET(1, II) = ZERO
734 T_MONVOLN%RBAGJET(2, II) = GEO(203, I_INJSYS(II))
735 T_MONVOLN%RBAGJET(3, II) = GEO(204, I_INJSYS(II))
736 T_MONVOLN%RBAGJET(4, II) = GEO(205, I_INJSYS(II))
737 T_MONVOLN%RBAGJET(16, II) = GEO(206, I_INJSYS(II))
738 T_MONVOLN%RBAGJET(17, II) = GEO(207, I_INJSYS(II))
739 T_MONVOLN%RBAGJET(18, II) = GEO(208, I_INJSYS(II))
740 T_MONVOLN%RBAGJET(19, II) = GEO(202, I_INJSYS(II))
741 T_MONVOLN%RBAGJET(5, II) = ZERO !FMASS
742 T_MONVOLN%RBAGJET(6, II) = ZERO !FTEMP
743 T_MONVOLN%RBAGJET(12, II) = FPT(II)
744 T_MONVOLN%RBAGJET(13, II) = FPA(II)
745 T_MONVOLN%RBAGJET(14, II) = FPZ(II)
746 T_MONVOLN%IBAGJET(2, II) = 0 !IFLU
747 T_MONVOLN%IBAGJET(3, II) = 0 !ITEMP
748 T_MONVOLN%IBAGJET(4, II) = ISENS(II)
750 IF (IJET(II) > 0) THEN
751 T_MONVOLN%IBAGJET(5, II) = USR2SYS(NJ1(II), ITABM1, MESS, T_MONVOLN%ID)
752 T_MONVOLN%IBAGJET(6, II) = USR2SYS(NJ2(II), ITABM1, MESS, T_MONVOLN%ID)
753 IF(NJ3(II) /= 0) THEN
754 T_MONVOLN%IBAGJET(7, II) = USR2SYS(NJ3(II), ITABM1, MESS, T_MONVOLN%ID)
758 IF (IPT(II) == NPC(JJ)) THEN
759 T_MONVOLN%IBAGJET(8, II) = JJ
764.NOT.
IF ( FOUND) THEN
765 CALL ANCMSG(MSGID = 12, ANMODE = ANINFO, MSGTYPE = MSGERROR,
766 . I2 = IPT(II), I1 = T_MONVOLN%ID, C1 = T_MONVOLN%TITLE)
770 IF (IPA(II) == NPC(JJ)) THEN
771 T_MONVOLN%IBAGJET(9, II) = JJ
776.NOT.
IF ( FOUND) THEN
777 CALL ANCMSG(MSGID = 13, ANMODE = ANINFO, MSGTYPE = MSGERROR,
778 . I2 = IPA(II), I1 = T_MONVOLN%ID, C1 = T_MONVOLN%TITLE)
782 IF (IPZ(II) == NPC(JJ)) THEN
783 T_MONVOLN%IBAGJET(10, II) = JJ
788.NOT.
IF ( FOUND) THEN
789 CALL ANCMSG(MSGID = 14, ANMODE = ANINFO, MSGTYPE = MSGERROR,
790 . I2 = IPZ(II), I1 = T_MONVOLN%ID, C1 = T_MONVOLN%TITLE)
793 IF (ISENS(II) > 0) THEN
795 DO JJ = 1, SENSORS%NSENSOR
796 IF (ISENS(II) == SENSORS%SENSOR_TAB(JJ)%SENS_ID) THEN
797 T_MONVOLN%IBAGJET(4, II) = JJ
798 IF (SENSORS%SENSOR_TAB(JJ)%TCRIT < TTFIRE) TTFIRE = SENSORS%SENSOR_TAB(JJ)%TCRIT
803.NOT.
IF ( FOUND) THEN
804 CALL ANCMSG(MSGID = 17, ANMODE =ANINFO, MSGTYPE = MSGERROR,
805 . I2 = ISENS(II), I1 = T_MONVOLN%ID, C1 = T_MONVOLN%TITLE)
808 CPA = T_MONVOLN%RBAGJET(2, II)
809 CPB = T_MONVOLN%RBAGJET(3, II)
810 CPC = T_MONVOLN%RBAGJET(4, II)
811 CPD = T_MONVOLN%RBAGJET(16, II)
812 CPE = T_MONVOLN%RBAGJET(17, II)
813 CPF = T_MONVOLN%RBAGJET(18, II)
814 MW_TMP = T_MONVOLN%RBAGJET(19, II)
815 RMWG = R_IGC1 / MW_TMP
816 CPG = CPA + CPB*TI+CPC*TI*TI+CPD*TI*TI*TI+
817 . CPE/(TI*TI)+CPF*TI*TI*TI*TI
820 T_MONVOLN%RBAGJET(1, II) = RMWG
822 IF (TTFIRE == INFINITY) TTFIRE = ZERO
823 T_MONVOLN%RVOLU(49) = TTFIRE
825 DO II = 1, NVENTHOLES
826 T_MONVOLN%RBAGHOL(7, II) = FPORT(II)
827 T_MONVOLN%RBAGHOL(8, II) = FPORP(II)
828 T_MONVOLN%RBAGHOL(9, II) = FPORA(II)
829 T_MONVOLN%RBAGHOL(10, II) = FPORT1(II)
830 T_MONVOLN%RBAGHOL(11, II) = FPORP1(II)
831 T_MONVOLN%RBAGHOL(12, II) = FPORA1(II)
833 T_MONVOLN%IBAGHOL(1, II) = 0
834 IF (IFVENT(II) == 1) T_MONVOLN%IBAGHOL(10, II) = 2
835 IF (IFVENT(II) == 2) T_MONVOLN%IBAGHOL(10, II) = 3
836 IF (IFVENT(II) == 3) T_MONVOLN%IBAGHOL(10, II) = 1
838 T_MONVOLN%IBAGHOL(11, II) = IDTPDEF(II)
840 T_MONVOLN%IBAGHOL(12, II) = 0
842 IF (IPVENT(II) == 0) THEN
843 T_MONVOLN%IBAGHOL(2, II) = 0
845 T_MONVOLN%IBAGHOL(2, II) = 0
848 IF (IPVENT(II) == IGRSURF(JJ)%ID) THEN
849 T_MONVOLN%IBAGHOL(2, II) = JJ
855 CALL ANCMSG(MSGID = 532, ANMODE = ANINFO, MSGTYPE = MSGERROR,
856 . I2 = IPVENT(II), I1 = T_MONVOLN%ID, C1 = T_MONVOLN%TITLE)
857 ELSEIF(IGRSURF(T_MONVOLN%IBAGHOL(2, II))%ISH4N3N == 0) THEN
858 CALL ANCMSG(MSGID = 330, ANMODE = ANINFO, MSGTYPE = MSGERROR,
859 . I1 = T_MONVOLN%ID, C1 = T_MONVOLN%TITLE)
861 IF (AVENT(II) == ZERO) AVENT(II) = ONE
863 IF (AVENT(II) == ZERO) DPDEF(II) = INFINITY
864 IF (AVENT(II) == ZERO) TVENT(II) = INFINITY
865.AND..AND.
IF (DPDEF(II) == ZERO DTPDEF(II) == ZERO TVENT(II) == ZERO) THEN
866 T_MONVOLN%IBAGHOL(1, II) = 1
868 T_MONVOLN%RBAGHOL(1, II) = DPDEF(II)
869 T_MONVOLN%RBAGHOL(2, II) = AVENT(II)
870 T_MONVOLN%RBAGHOL(3, II) = TVENT(II)
871 T_MONVOLN%RBAGHOL(4, II) = DTPDEF(II)
872 T_MONVOLN%RBAGHOL(6, II) = BVENT(II)
873.AND.
IF (IVDP(II) /= 0 FVDP(II) == ZERO) FVDP(II) = ONE
874 T_MONVOLN%RBAGHOL(13, II) = FVDP(II)
875 IF (TSTOPE(II) == ZERO) TSTOPE(II) = INFINITY
876 T_MONVOLN%RBAGHOL(14, II) = TSTOPE(II)
878 T_MONVOLN%IBAGHOL(3, II) = -1
879 T_MONVOLN%IBAGHOL(4, II) = -1
880 T_MONVOLN%IBAGHOL(5, II) = -1
881 T_MONVOLN%IBAGHOL(6, II) = -1
882 T_MONVOLN%IBAGHOL(7, II) = -1
883 T_MONVOLN%IBAGHOL(8, II) = -1
884 T_MONVOLN%IBAGHOL(9, II) = -1
886 IF (IPORT(II) == NPC(JJ)) T_MONVOLN%IBAGHOL(3, II) = JJ
887 IF (IPORP(II) == NPC(JJ)) T_MONVOLN%IBAGHOL(4, II) = JJ
888 IF (IPORA(II) == NPC(JJ)) T_MONVOLN%IBAGHOL(5, II) = JJ
889 IF (IPORT1(II) == NPC(JJ)) T_MONVOLN%IBAGHOL(6, II) = JJ
890 IF (IPORP1(II) == NPC(JJ)) T_MONVOLN%IBAGHOL(7, II) = JJ
891 IF (IPORA1(II) == NPC(JJ)) T_MONVOLN%IBAGHOL(8, II) = JJ
892 IF (IVDP(II) == NPC(JJ)) T_MONVOLN%IBAGHOL(9, II) = JJ
894 IF (IPORT(II) == 0) T_MONVOLN%IBAGHOL(3, II) = 0
895 IF (IPORP(II) == 0) T_MONVOLN%IBAGHOL(4, II) = 0
896 IF (IPORA(II) == 0) T_MONVOLN%IBAGHOL(5, II) = 0
897 IF (IPORT1(II) == 0) T_MONVOLN%IBAGHOL(6, II) = 0
898 IF (IPORP1(II) == 0) T_MONVOLN%IBAGHOL(7, II) = 0
899 IF (IPORA1(II) == 0) T_MONVOLN%IBAGHOL(8, II) = 0
900.AND.
IF (IVDP(II) == 0 IFVENT(II) /= 3) T_MONVOLN%IBAGHOL(9, II) = 0
901 IF (T_MONVOLN%IBAGHOL(3, II) == -1) THEN
902 T_MONVOLN%IBAGHOL(3, II) = 0
903 CALL ANCMSG(MSGID = 331, ANMODE = ANINFO, MSGTYPE = MSGERROR,
904 . I1 = T_MONVOLN%ID, C1 = T_MONVOLN%TITLE, I2 = IPORT(II))
906 IF (T_MONVOLN%IBAGHOL(4, II) == -1) THEN
907 T_MONVOLN%IBAGHOL(4, II) = 0
908 CALL ANCMSG(MSGID = 332, ANMODE = ANINFO, MSGTYPE = MSGERROR,
909 . I1 = T_MONVOLN%ID, C1 = T_MONVOLN%TITLE, I2 = IPORP(II))
911 IF (T_MONVOLN%IBAGHOL(5, II) == -1) THEN
912 T_MONVOLN%IBAGHOL(5, II)=0
913 CALL ANCMSG(MSGID = 333, ANMODE = ANINFO, MSGTYPE = MSGERROR,
914 . I1 = T_MONVOLN%ID, C1 = T_MONVOLN%TITLE, I2 = IPORA(II))
916 IF (T_MONVOLN%IBAGHOL(6, II) == -1) THEN
917 T_MONVOLN%IBAGHOL(6, II) = 0
918 CALL ANCMSG(MSGID=331, ANMODE=ANINFO, MSGTYPE=MSGERROR,
919 . I1 = T_MONVOLN%ID, C1 = T_MONVOLN%TITLE, I2 = IPORT1(II))
921 IF (T_MONVOLN%IBAGHOL(7, II) == -1) THEN
922 T_MONVOLN%IBAGHOL(7, II)=0
923 CALL ANCMSG(MSGID=332, ANMODE=ANINFO, MSGTYPE=MSGERROR,
924 . I1 = T_MONVOLN%ID, C1 = T_MONVOLN%TITLE, I2 = IPORP1(II))
926 IF (T_MONVOLN%IBAGHOL(8, II) == -1) THEN
927 T_MONVOLN%IBAGHOL(8, II) = 0
928 CALL ANCMSG(MSGID=333, ANMODE=ANINFO, MSGTYPE=MSGERROR,
929 . I1 = T_MONVOLN%ID, C1 = T_MONVOLN%TITLE, I2 = IPORA1(II))
931 IF (T_MONVOLN%IBAGHOL(9, II) == -1) THEN
932 T_MONVOLN%IBAGHOL(9, II) = 0
933 CALL ANCMSG(MSGID = 518, ANMODE = ANINFO, MSGTYPE = MSGERROR,
934 . I1 = T_MONVOLN%ID, C1 = T_MONVOLN%TITLE, I2 = IVDP(II))
939 T_MONVOLN%IBAGHOL(13, NVENTHOLES + II) = 1
940 IF (IFVENT(NVENTHOLES + II) == 1) T_MONVOLN%IBAGHOL(10, NVENTHOLES + II) = 2
941 IF (IFVENT(NVENTHOLES + II) == 2) T_MONVOLN%IBAGHOL(10, NVENTHOLES + II) = 3
942 IF (FPORT(NVENTHOLES + II) == ZERO) FPORT(NVENTHOLES + II) = ONE
943 IF (FPORA(NVENTHOLES + II) == ZERO) FPORA(NVENTHOLES + II) = ONE
944 T_MONVOLN%RBAGHOL(7, NVENTHOLES + II) = FPORT(NVENTHOLES + II)
945 T_MONVOLN%RBAGHOL(9, NVENTHOLES + II) = FPORA(NVENTHOLES + II)
947 T_MONVOLN%IBAGHOL(1, NVENTHOLES + II) = 0
948 T_MONVOLN%IBAGHOL(11, NVENTHOLES + II) = IDTPDEF(NVENTHOLES + II)
949 T_MONVOLN%IBAGHOL(12, NVENTHOLES + II) = 0
950 T_MONVOLN%IBAGHOL(14, NVENTHOLES + II) = IBLOCKAGE(NVENTHOLES + II)
952 IF (IPVENT(NVENTHOLES + II) == 0) THEN
953 T_MONVOLN%IBAGHOL(2, NVENTHOLES + II) = 0
955 T_MONVOLN%IBAGHOL(2, NVENTHOLES + II) = 0
957 IF (IPVENT(NVENTHOLES + II) == IGRSURF(JJ)%ID) THEN
958 T_MONVOLN%IBAGHOL(2, NVENTHOLES + II) = JJ
961 IF (T_MONVOLN%IBAGHOL(2, NVENTHOLES + II) == 0) THEN
962 CALL ANCMSG(MSGID = 532, ANMODE = ANINFO, MSGTYPE = MSGERROR,
963 . I1 = T_MONVOLN%ID, C1 = T_MONVOLN%TITLE, I2 = IPVENT(NVENTHOLES + II))
964 ELSEIF (IGRSURF(T_MONVOLN%IBAGHOL(2, NVENTHOLES + II))%ISH4N3N == 0) THEN
965 CALL ANCMSG(MSGID = 330, ANMODE = ANINFO, MSGTYPE = MSGERROR,
966 . I1 = T_MONVOLN%ID, C1 = T_MONVOLN%TITLE)
970.AND..AND.
IF (DPDEF(NVENTHOLES + II) == ZERO DTPDEF(NVENTHOLES + II) == ZERO
971 . TVENT(NVENTHOLES + II) == ZERO) THEN
972 T_MONVOLN%IBAGHOL(1, NVENTHOLES + II) = 1
974 T_MONVOLN%RBAGHOL(1, NVENTHOLES + II) = DPDEF(NVENTHOLES + II)
975 T_MONVOLN%RBAGHOL(2, NVENTHOLES + II) = AVENT(NVENTHOLES + II)
976 T_MONVOLN%RBAGHOL(3, NVENTHOLES + II) = TVENT(NVENTHOLES + II)
977 T_MONVOLN%RBAGHOL(4, NVENTHOLES + II) = DTPDEF(NVENTHOLES + II)
978 T_MONVOLN%RBAGHOL(6, NVENTHOLES + II) = CLEAK(NVENTHOLES + II)
979.AND.
IF (IVDP(NVENTHOLES + II) /= 0 FVDP(NVENTHOLES + II) == ZERO) FVDP=ONE
980 T_MONVOLN%RBAGHOL(13, NVENTHOLES + II)=FVDP(NVENTHOLES + II)
981 IF (TSTOPE(NVENTHOLES + II) == ZERO) TSTOPE(NVENTHOLES + II) = INFINITY
982 T_MONVOLN%RBAGHOL(14, NVENTHOLES + II) = TSTOPE(NVENTHOLES + II)
984 T_MONVOLN%IBAGHOL(3, NVENTHOLES + II) = -1
985 T_MONVOLN%IBAGHOL(5, NVENTHOLES + II) = -1
986 T_MONVOLN%IBAGHOL(9, NVENTHOLES + II) = -1
989 IF (IPORT(NVENTHOLES + II) == NPC(JJ)) THEN
990 T_MONVOLN%IBAGHOL(3, NVENTHOLES + II) = JJ
992 IF (IPORA(NVENTHOLES + II) == NPC(JJ)) THEN
993 T_MONVOLN%IBAGHOL(5, NVENTHOLES + II) = JJ
995 IF (IVDP(NVENTHOLES + II) == NPC(JJ)) THEN
996 T_MONVOLN%IBAGHOL(9, NVENTHOLES + II) = JJ
999 IF (IPORT(NVENTHOLES + II) == 0) T_MONVOLN%IBAGHOL(3, NVENTHOLES + II) = 0
1000 IF (IPORA(NVENTHOLES + II) == 0) T_MONVOLN%IBAGHOL(5, NVENTHOLES + II) = 0
1001.AND.
IF (IVDP(NVENTHOLES + II) == 0 IFVENT(NVENTHOLES + II) /= 2) THEN
1002 T_MONVOLN%IBAGHOL(9, NVENTHOLES + II) = 0
1005 IF (T_MONVOLN%IBAGHOL(3, NVENTHOLES + II) == -1) THEN
1006 T_MONVOLN%IBAGHOL(3, NVENTHOLES + II) =0
1007 CALL ANCMSG(MSGID = 331, ANMODE = ANINFO, MSGTYPE = MSGERROR,
1008 . I1 = T_MONVOLN%ID, C1 = T_MONVOLN%TITLE, I2 = IPORT(NVENTHOLES + II))
1010 IF (T_MONVOLN%IBAGHOL(4, II) == -1) THEN
1011 T_MONVOLN%IBAGHOL(4, II) = 0
1012 CALL ANCMSG(MSGID = 332, ANMODE = ANINFO, MSGTYPE = MSGERROR,
1013 . I1 = T_MONVOLN%ID, C1 = T_MONVOLN%TITLE, I2 = IPORP(II))
1015 IF (T_MONVOLN%IBAGHOL(5, NVENTHOLES + II) == -1) THEN
1016 T_MONVOLN%IBAGHOL(5, NVENTHOLES + II) = 0
1017 CALL ANCMSG(MSGID = 333, ANMODE = ANINFO, MSGTYPE = MSGERROR,
1018 . I1 = T_MONVOLN%ID, C1 = T_MONVOLN%TITLE, I2 = IPORA(NVENTHOLES + II))
1020 IF (T_MONVOLN%IBAGHOL(9, NVENTHOLES + II) == -1) THEN
1021 T_MONVOLN%IBAGHOL(9, NVENTHOLES + II) = 0
1022 CALL ANCMSG(MSGID = 518, ANMODE = ANINFO, MSGTYPE = MSGERROR,
1023 . I1 = T_MONVOLN%ID, C1 = T_MONVOLN%TITLE, I2 = IVDP(NVENTHOLES + II))
1028 T_MONVOLN%RVOLU(2) = AMU
1029 T_MONVOLN%RVOLU(16) = VOL + VEPS
1030 T_MONVOLN%RVOLU(18) = SA
1031 T_MONVOLN%RVOLU(21) = ROT
1032 T_MONVOLN%RVOLU(22:24) = ZERO
1037 WRITE(IOUT, 1005) SURFID
1038 WRITE(IOUT, 1003) SCAL_T, SCAL_P, SCAL_S, SCAL_A, SCAL_D
1039 WRITE(IOUT, 1006) HCONV
1040 WRITE(IOUT, 1002) SA, SV, VOL
1041 WRITE(IOUT,1395) MID_INI
1042 WRITE(IOUT,1400) AMU, TI, PEXT, PINI
1043 IF (IEQUI == 0) THEN
1045 ELSEIF(IEQUI == 1) THEN
1048 WRITE(IOUT,1405) IEQUI
1050 WRITE(IOUT,1415) MWI, GAMAI, CPAI, CPBI, CPCI, CPDI, CPEI, CPFI
1052 WRITE(IOUT,1702) KMESH
1054.OR..OR.
IF(ISWITCH /= 0 TSWITCH /= ZERO PSWITCH /= ZERO)THEN
1055 WRITE(IOUT,1789)ISWITCH
1058 WRITE(IOUT,2703) TSWITCH
1059 WRITE(IOUT,2704) PSWITCH
1062 IF (T_MONVOLN%IMESH_ALL > 0) THEN
1063 WRITE(IOUT, 1706) T_MONVOLN%IMESH_ALL
1066 WRITE(IOUT,1705) KFRAME
1067 WRITE(IOUT,1710) T_MONVOLN%RVOLU(41),T_MONVOLN%RVOLU(42),T_MONVOLN%RVOLU(43),
1068 . T_MONVOLN%RVOLU(38),T_MONVOLN%RVOLU(39),T_MONVOLN%RVOLU(40),
1069 . T_MONVOLN%RVOLU(35),T_MONVOLN%RVOLU(36),T_MONVOLN%RVOLU(37),
1070 . T_MONVOLN%RVOLU(44),T_MONVOLN%RVOLU(45),T_MONVOLN%RVOLU(53),
1071 . T_MONVOLN%IVOLU(54),T_MONVOLN%IVOLU(55),T_MONVOLN%IVOLU(65),
1072 . NBRIC ,SURFID_INT ,T_MONVOLN%IVOLU(59),
1073 . T_MONVOLN%IVOLU(60),T_MONVOLN%RVOLU(31),T_MONVOLN%RVOLU(34),
1074 . T_MONVOLN%RVOLU(50),
1075 . T_MONVOLN%RVOLU(46),T_MONVOLN%RVOLU(47),T_MONVOLN%RVOLU(51),
1076 . T_MONVOLN%RVOLU(71),T_MONVOLN%RVOLU(72),
1077 . T_MONVOLN%IVOLU(44),T_MONVOLN%IVOLU(40),T_MONVOLN%IVOLU(41),
1078 . T_MONVOLN%IVOLU(42),IFVANI
1080 WRITE(IOUT,1426) NJET
1082 WRITE(IOUT,1432) II, IGEO(1, I_INJSYS(II)), ISENS(II)
1083 IF (IVEL(II) > 0) THEN
1084 WRITE(IOUT, 1435) IVEL(II), FVEL(II)
1086 CPA = T_MONVOLN%RBAGJET(2, II)
1087 CPB = T_MONVOLN%RBAGJET(3, II)
1088 CPC = T_MONVOLN%RBAGJET(4, II)
1089 CPD = T_MONVOLN%RBAGJET(16, II)
1090 CPE = T_MONVOLN%RBAGJET(17, II)
1091 CPF = T_MONVOLN%RBAGJET(18, II)
1092 MW_TMP = T_MONVOLN%RBAGJET(19, II)
1093 RMWG = R_IGC1 / MW_TMP
1094 CPG = CPA + CPB*TI+CPC*TI*TI+CPD*TI*TI*TI+
1095 . CPE/(TI*TI)+CPF*TI*TI*TI*TI
1098 WRITE(IOUT,1442) GAMA, MW_TMP, CPA, CPB, CPC,
1100 SURFID_INJ = T_MONVOLN%IBAGJET(14, II)
1102 IF (SURFID_INJ/=0) THEN
1103 IF (IGRSURF(SURFID_INJ)%ISH4N3N == 0) THEN
1104 CALL ANCMSG(MSGID = 18, ANMODE = ANINFO, MSGTYPE = MSGERROR,
1105 . I2 = IGRSURF(SURFID_INJ)%ID, I1 = T_MONVOLN%ID, C1 = T_MONVOLN%TITLE)
1107 NN = IGRSURF(SURFID_INJ)%NSEG
1110 I1 = IGRSURF(SURFID_INJ)%NODES(JJ,1)
1111 I2 = IGRSURF(SURFID_INJ)%NODES(JJ,2)
1112 I3 = IGRSURF(SURFID_INJ)%NODES(JJ,3)
1113 I4 = IGRSURF(SURFID_INJ)%NODES(JJ,4)
1114 ISH34 = IGRSURF(SURFID_INJ)%ELTYP(JJ)
1115 IF (ISH34 == 7)I4 = I3
1116 XX = HALF * (X(1, I1) + X(1, I2))
1117 YY = HALF * (X(2, I1) + X(2, I2))
1118 ZZ = HALF * (X(3, I1) + X(3, I2))
1119 X13 = X(1, I3) - X(1, I1)
1120 Y13 = X(2, I3) - X(2, I1)
1121 Z13 = X(3, I3) - X(3, I1)
1122 X24 = X(1, I4) - X(1, I2)
1123 Y24 = X(2, I4) - X(2, I2)
1124 Z24 = X(3, I4) - X(3, I2)
1125 NX = DIR * (Y13 * Z24 - Y24 * Z13)
1126 NY = DIR * (Z13 * X24 - Z24 * X13)
1127 NZ = DIR * (X13 * Y24 - X24 * Y13)
1128 DS = SQRT(NX * NX + NY * NY + NZ * NZ)
1132 WRITE(IOUT,1445) IGRSURF(SURFID_INJ)%ID, SJET
1135 WRITE(IOUT,1470) NVENT, TTFIRE
1136 WRITE(IOUT,1475)ITTF
1138 IF (T_MONVOLN%IBAGHOL(13, II) == 0) THEN
1139 TITR1='vent hole surface
'
1140 WRITE(IOUT,1472) II, IPVENT(II)
1142 TITR1='porous surface
'
1143 WRITE(IOUT,1473) II, IPVENT(II)
1146 TITREVENT(JJ) = T_MONVOLN%IBAGHOL(JJ + 14, II)
1147 VENTTITLE(JJ:JJ) = ACHAR(TITREVENT(JJ))
1149 WRITE(IOUT,1476) VENTTITLE
1150 IF (IPVENT(II)==0) THEN
1151 CALL ANCMSG(MSGID = 1050, MSGTYPE = MSGERROR, ANMODE = ANINFO,
1152 . I1 = T_MONVOLN%ID, I2 = II, C1 = T_MONVOLN%TITLE, C2 = TITR1)
1154 IFVENT(II) = T_MONVOLN%IBAGHOL(10, II)
1155 IF (IFVENT(II) == 1) WRITE(IOUT, 1483)
1156 IF (IFVENT(II) == 2) WRITE(IOUT, 1481)
1157 IF (IFVENT(II) == 3) WRITE(IOUT, 1482) IVDP(II), FVDP(II)
1158 IF (IFVENT(II) == 5) WRITE(IOUT, 1484)
1159 IF (IFVENT(II) == 4) WRITE(IOUT, 1485)
1161 IF (IPVENT(II) /= 0) THEN
1162 CALL MONVOL_CHECK_VENTHOLE_SURF(IPRI, T_MONVOLN, IGRSURF, II, SHOL, X, IXC, IXTG)
1163 T_MONVOLN%RBAGHOL(15, II) = SHOL
1164 IF (T_MONVOLN%IBAGHOL(13, II) == 0) THEN
1166 . SHOL,AVENT(II),BVENT(II),
1167 . IPORT(II),IPORP(II),IPORA(II),FPORT(II),FPORP(II),FPORA(II),
1168 . IPORT1(II),IPORP1(II),IPORA1(II),FPORT1(II),FPORP1(II),FPORA1(II)
1169 WRITE(IOUT,1480) TVENT(II),DPDEF(II),DTPDEF(II),IDTPDEF(II),TSTOPE(II)
1171 WRITE(IOUT,1579) SHOL,IBLOCKAGE(II)
1172 WRITE(IOUT,1580) TVENT(II),DPDEF(II),DTPDEF(II),IDTPDEF(II),TSTOPE(II)
1175 IF (T_MONVOLN%IBAGHOL(13, II) == 0) THEN
1177 . AVENT(II),BVENT(II),
1178 . IPORT(II),IPORP(II),IPORA(II),FPORT(II),FPORP(II),FPORA(II),
1179 . IPORT1(II),IPORP1(II),IPORA1(II),FPORT1(II),FPORP1(II),FPORA1(II)
1180 WRITE(IOUT,1480) TVENT(II),DPDEF(II),DTPDEF(II),IDTPDEF(II),TSTOPE(II)
1182 CLEAK =T_MONVOLN%RBAGHOL(6, II)
1183 WRITE(IOUT,1585) CLEAK(II),AVENT(II),IPORT(II),FPORT(II),IPORA(II),FPORA(II)
1184 WRITE(IOUT,1580) TVENT(II),DPDEF(II),DTPDEF(II),IDTPDEF(II),TSTOPE(II)
1189 IF(T_MONVOLN%IVOLU(75) == 1)THEN
1196 IF (ALLOCATED(I_INJ)) DEALLOCATE(I_INJ)
1197 IF (ALLOCATED(ISENS)) DEALLOCATE(ISENS)
1198 IF (ALLOCATED(IJET)) DEALLOCATE(IJET)
1199 IF (ALLOCATED(NJ1)) DEALLOCATE(NJ1)
1200 IF (ALLOCATED(NJ2)) DEALLOCATE(NJ2)
1201 IF (ALLOCATED(NJ3)) DEALLOCATE(NJ3)
1202 IF (ALLOCATED(IPT)) DEALLOCATE(IPT)
1203 IF (ALLOCATED(IPA)) DEALLOCATE(IPA)
1204 IF (ALLOCATED(IPZ)) DEALLOCATE(IPZ)
1205 IF (ALLOCATED(FPT)) DEALLOCATE(FPT)
1206 IF (ALLOCATED(FPA)) DEALLOCATE(FPA)
1207 IF (ALLOCATED(FPZ)) DEALLOCATE(FPZ)
1208 IF (ALLOCATED(I_INJSYS)) DEALLOCATE(I_INJSYS)
1209 DEALLOCATE(IPVENT, IFVENT, AVENT, BVENT)
1210 DEALLOCATE(TVENT, TSTOPE, DPDEF, DTPDEF,
1212 DEALLOCATE(IPORT, IPORP, IPORA, FPORT,
1214 DEALLOCATE(IPORT1, IPORP1, IPORA1, FPORT1,
1216 DEALLOCATE(IBLOCKAGE, CLEAK)
1217 DEALLOCATE(IVDP, FVDP)
1224 . /5X,'initial surface of monitored volume . .=
',1PG20.13,
1225 . /5X,'surface error(ne.0
for non closed surf)=
',1PG20.13,
1226 . /5X,'initial volume of monitored volume. . .=
',1PG20.13)
1228 . 5X,'unit scale
for time functions =
',1PG20.13,
1229 . /5X,'unit scale
for pressure functions =
',1PG20.13,
1230 . /5X,'unit scale
for area functions =
',1PG20.13,
1231 . /5X,'unit scale
for angle functions =
',1PG20.13,
1232 . /5X,'unit scale
for distance functions =
',1PG20.13)
1233 1005 FORMAT( 5X,'EXTERNAL surface
id . . . . . . . . . .=
',I10)
1234 1006 FORMAT( 5X,'global heat transfer coefficient. . . .=
',1PG20.13)
1236 . /5X,'initial gas . . . . . . . . . . . . . .=
',I10)
1238 . 5X,'volumic viscosity . . . . . . . . . . .=
',1PG20.13,
1239 . /5X,'initial temperature . . . . . . . . . .=
',1PG20.13,
1240 . /5X,'EXTERNAL pressure . . . . . . . . . . .=
',1PG20.13,
1241 . /5X,'initial pressure. . . . . . . . . . . .=
',1PG20.13/)
1243 . 5X,'initial thermodynamic equilibrium is set at time 0
'
1244 . /5X,'--------------------------------------------------
'/)
1246 . 5X,'thermodynamic equilibrium is set every cycle up to injection time
'/)
1248 . 5X,'thermodynamic equilibrium is set every
',I10,' cycles up to injection time
'/)
1250 . 5X,'characteristics of initial gaz
',
1251 . /5X,'------------------------------
',
1252 . /5X,'molecular weight
',
1253 . /5X,' at initial temperature . . . . .=
',1PG20.13,
1254 . /5X,'gamma at initial temperature . . . . .=
',1PG20.13,
1255 . /5X,'coefficient cpa . . . . . . . . . . . .=
',1PG20.13,
1256 . /5X,'coefficient cpb . . . . . . . . . . . .=
',1PG20.13,
1257 . /5X,'coefficient cpc . . . . . . . . . . . .=
',1PG20.13,
1258 . /5X,'coefficient cpd . . . . . . . . . . . .=
',1PG20.13,
1259 . /5X,'coefficient cpe . . . . . . . . . . . .=
',1PG20.13,
1260 . /5X,'coefficient cpf . . . . . . . . . . . .=
',1PG20.13/)
1265 . 5X,'number of injectors . . . . . . . . . .=
',I10/)
1267 . 5X,'injector. . . . . . . . . . . . . . . .=
',I10,
1268 . /10X,'injector number . . . . . . . . . . . .=
',I10,
1269 . /10X,'sensor number . . . . . . . . . . . . .=
',I10)
1270 1435 FORMAT(15X,'time
FUNCTION for incoming gas velocity=
',I10,
1271 . /15X,'scale factor
for incoming gas velocity.=
',1PG20.13)
1273 . /15X,'mixture characteristics
',
1274 . /15X,'at beginning of injection
',
1275 . /15X,'-------------------------
',
1276 . /15X,'gamma . . . . . . . . . . . . . . . . .=
',1PG20.13,
1277 . /15X,'molecular weight. . . . . . . . . . . .=
',1PG20.13,
1278 . /15X,'coefficient cpa . . . . . . . . . . . .=
',1PG20.13,
1279 . /15X,'coefficient cpb . . . . . . . . . . . .=
',1PG20.13,
1280 . /15X,'coefficient cpc . . . . . . . . . . . .=
',1PG20.13,
1281 . /15X,'coefficient cpd . . . . . . . . . . . .=
',1PG20.13,
1282 . /15X,'coefficient cpe . . . . . . . . . . . .=
',1PG20.13,
1283 . /15X,'coefficient cpf . . . . . . . . . . . .=
',1PG20.13)
1285 . 15X,'inflator surface
id . . . . . . . . . .=
',I10,
1286 . /15X,'initial surface of inflator . . . . . .=
',1PG20.13)
1288 . /5X,'vent holes and porous fabric surfaces
',
1289 . /5X,'-------------------------------------
',
1290 . /5X,'number of vent holes and porous surfaces . .=
',I10,
1291 . /5X,'injection time tinj. . . . . . . . . . . . .=
',1PG20.13)
1293 . / 5X,'vent hole number. . . . . . . . . . . .=
',I10,
1294 . /15X,'vent hole surface
id. . . . . . . . . .=
',I10)
1296 . / 5X,'porous surface number . . . . . . . . .=
',I10,
1297 . /15X,'porous surface
id . . . . . . . . . . .=
',I10)
1299 . 5X,'venting start time shift . . . . . . . . . .=
',I10,
1300 . /5X,' 0 : no shift
',
1301 . /5X,' 1,2: venting functions are shifted by tinj
',
1302 . /5X,' 3 : venting functions are shifted by tinj+tstart
')
1304 . 15X,'title . . . . . . . . . . . . . . . . .=
',1X,A20)
1305 1481 FORMAT(15X,'isenthalpic venting model
')
1306 1482 FORMAT(15X,'chemkin model
for porosity :
',
1307 . /15X,'velocity vs relative pressure function =
',I10,
1308 . /15X,' scale factor. . . . . . .=
',1PG20.13)
1309 1484 FORMAT(15X,'graefe porosity formulation
')
1310 1485 FORMAT(15X,'isenthalpic venting model with possible flow in
')
1312 . 15X,'initial surface . . . . . . . . . . . .=
',1PG20.13,
1313 . /15X,'avent:vent hole scale factor. . . . . .=
',1PG20.13,
1314 . /15X,'bvent:vent hole scale factor
if contact=
',1PG20.13,
1315 . /15X,'porosity function / time. . . . . . . .=
',I10,
1316 . /15X,'porosity function / pressure. . . . . .=
',I10,
1317 . /15X,'porosity function /
area. . . . . . . .=
',I10,
1318 . /15X,'porosity time function scale factor =
',1PG20.13,
1319 . /15X,'porosity pressure function scale factor=
',1PG20.13,
1320 . /15X,'porosity
area function scale factor . .=
',1PG20.13,
1321 . /15X,'porosity function / time(after contact)=
',I10,
1322 . /15X,'porosity function / pressure. . . . . .=
',I10,
1323 . /15X,'porosity function /
area. . . . . . . .=
',I10,
1324 . /15X,'porosity time function scale factor =
',1PG20.13,
1325 . /15X,'porosity pressure function scale factor=
',1PG20.13,
1326 . /15X,'porosity
area function scale factor . .=
',1PG20.13)
1328 . 15X,'start time
for venting tstart . . . . .=
',1PG20.13,
1329 . /15X,'relative pres.
for membrane deflation .=
',1PG20.13,
1330 . /15X,' (DPDEF = PDEF - PEXT)
',
1331 . /15X,'time delay before membrane deflation .=
',1PG20.13,
1332 . /15X,'time delay flag . . . . . . . . . . . .=
',I10,
1333 . /15X,' if idtpdef : 0
',
1334 . /15X,' pressure should be over pdef during
',
1335 . /15X,' a cumulated dtpdef time
'
1336 . /15X,' before activating deflation
'
1337 . /15X,' if idtpdef : 1
',
1338 . /15X,' deflation start dtpdef after
',
1339 . /15X,' dpdef has been reached
',
1340 . /15X,'end time
for venting tstop. . . . . . .=
',1PG20.13)
1341 1483 FORMAT(15X,'local velocity venting formulation
')
1343 . 15X,'avent:vent hole
area. . . . . . . . . .=
',1PG20.13,
1344 . /15X,'bvent:vent hole scale factor
if contact=
',1PG20.13,
1345 . /15X,'porosity function / time. . . . . . . .=
',I10,
1346 . /15X,'porosity function / pressure. . . . . .=
',I10,
1347 . /15X,'porosity function /
area. . . . . . . .=
',I10,
1348 . /15X,'porosity time function scale factor =
',1PG20.13,
1349 . /15X,'porosity pressure function scale factor=
',1PG20.13,
1350 . /15X,'porosity
area function scale factor . .=
',1PG20.13,
1351 . /15X,'porosity function / time(after contact)=
',I10,
1352 . /15X,'porosity function / pressure. . . . . .=
',I10,
1353 . /15X,'porosity function /
area. . . . . . . .=
',I10,
1354 . /15X,'porosity time function scale factor =
',1PG20.13,
1355 . /15X,'porosity pressure function scale factor=
',1PG20.13,
1356 . /15X,'porosity
area function scale factor . .=
',1PG20.13)
1358 . 15X,'initial surface . . . . . . . . . . . .=
',1PG20.13,
1359 . /15X,'blockage
if contact . . . . . . . . . .=
',I10,
1360 . /15X,' =0 no =1 yes
')
1362 . 15X,'start time
for venting tstart . . . . .=
',1PG20.13,
1363 . /15X,'relative pressure to initiate leakage .=
',1PG20.13,
1364 . /15X,' (DPDEF = PDEF - PEXT)
',
1365 . /15X,'time delay before leakage . . . . . . .=
',1PG20.13,
1366 . /15X,'time delay flag . . . . . . . . . . . .=
',I10,
1367 . /15X,' if idtpdef = 0
',
1368 . /15X,' pressure should be over pdef during
',
1369 . /15X,' a cumulated dtpdef time
'
1370 . /15X,' before initiating leakage
'
1371 . /15X,' if idtpdef = 1
',
1372 . /15X,' deflation starts dtpdef after
',
1373 . /15X,' dpdef has been reached
',
1374 . /15X,'end time
for venting tstop. . . . . . .=
',1PG20.13)
1376 . 15X,'leakage coefficient . . . . . . . . . .=
',1PG20.13,
1377 . /15X,'leakage
area. . . . . . . . . . . . . .=
',1PG20.13,
1378 . /15X,'leakage coefficient time function . . .=
',I10,
1379 . /15X,' scale factor. . . . . . . . . .=
',1PG20.13,
1380 . /15X,'leakage
area time function. . . . . . .=
',I10,
1381 . /15X,' scale factor. . . . . . . . . .=
',1PG20.13)
1382 1700 FORMAT(5X,'fvmbag parameters
',
1383 . /5X,'-----------------
')
1384 1702 FORMAT(15X,'gas mesh option . . . . . . . . . . . .=
',I10,
1385 . /15X,' = 1 polyhedron automesh (obsolete)
',
1386 . /15X,' = 2 tetrahedron automesh
',
1387 . /15X,' = 4 tetrahedron automesh with mesh output
',
1388 . /15X,' = 12 tetrahedron hm automesh
',
1389 . /15X,' = 14 tetrahedron hm automesh with mesh output
')
1390 1704 FORMAT(15X,'airbag cutting frame:
')
1391 1705 FORMAT(15X,'frame number. . . . . . . . . . . . . .=
',I10)
1392 1706 FORMAT(15X,'mesh holes. . . . . . . . . . . . . . .=
',I10)
1393 1710 FORMAT(15X,' origin x coordinate. . . . . . . . .=
',1PG20.13,
1394 . /15X,' origin y coordinate. . . . . . . . .=
',1PG20.13,
1395 . /15X,' origin z coordinate. . . . . . . . .=
',1PG20.13,
1396 . /15X,' direction 1 x coordinate . . . . . .=
',1PG20.13,
1397 . /15X,' direction 1 y coordinate . . . . . .=
',1PG20.13,
1398 . /15X,' direction 1 z coordinate . . . . . .=
',1PG20.13,
1399 . /15X,' direction 3 x coordinate . . . . . .=
',1PG20.13,
1400 . /15X,' direction 3 y coordinate . . . . . .=
',1PG20.13,
1401 . /15X,' direction 3 z coordinate . . . . . .=
',1PG20.13,
1402 . /15X,'cutting length in local direction 1 . .=
',1PG20.13,
1403 . /15X,'cutting length in local direction 2 . .=
',1PG20.13,
1404 . /15X,'cutting length in local direction 3 . .=
',1PG20.13,
1405 . /15X,'number of cells in local direction 1. .=
',I10,
1406 . /15X,'number of cells in local direction 2. .=
',I10,
1407 . /15X,'number of cells in local direction 3. .=
',I10,
1408 . /15X,'additional brick group number . . . . .=
',I10,
1409 . /15X,'internal surface
id. . . . . . . . . .=
',I10,
1410 . /15X,'flag
for mesh on reference metrics. . .=
',I10,
1411 . /15X,'cell merging strategy:
',
1412 . /15X,' global merging type. . . . . . . . .=
',I10,
1413 . /15X,' global merging coefficient . . . . .=
',1PG20.13,
1414 . /15X,' neighborhood merging coefficient . .=
',1PG20.13,
1415 . /15X,'tolerance
for small segment removal . .=
',1PG20.13,
1416 . /15X,'quadratic bulk viscosity. . . . . . . .=
',1PG20.13,
1417 . /15X,'linear bulk viscosity . . . . . . . . .=
',1PG20.13,
1418 . /15X,'minimum height. . . . . . . . . . . . .=
',1PG20.13,
1419 . /15X,'dt scale factor . . . . . . . . . . . .=
',1PG20.13,
1420 . /15X,'minimum timestep. . . . . . . . . . . .=
',1PG20.13,
1421 . /15X,'output level. . . . . . . . . . . . . .=
',I10,
1422 . /15X,'memory parameters:
',
1423 . /15X,' estimated number of airbag layers. .=
',I10,
1424 . /15X,' estimated maximum number of airbag
',
1425 . /15X,' facets per cutting cell. . . . .=
',I10,
1426 . /15X,' estimated maximum number of points
',
1427 . /15X,' per polygon. . . . . . . . . . .=
',I10,
1428 . /15X,'flag
for animation file a000. . . . . .=
',I10)
1429 1789 FORMAT(15X, 'switch option (ISWITCH). . . . . . . . =
',I10)
1430 1790 FORMAT(15X, ' = 1 switch to uniform pressure
')
1431 1791 FORMAT(15X, ' = 2
merge to single fv inside each chamber
')
1432 2703 FORMAT(15X, ' time (TSWITCH) . . . . . . . . . . =
',1PG20.13)
1433 2704 FORMAT(15X, ' pressure deviation ratio (PSWITCH) =
',1PG20.13)
1435 . /5X,'debug options
',
1436 . /5X,'-------------
',
1437 . /5X,' ih3d_flag (H3D OUTPUT). . . . . . . .=
', I10)