56 . SENSORS, IFRAME, XFRAME, IGRBRIC,
57 . UNITAB, LUID, NPC, IGRSURF, ITAB, X, PM, GEO, IXC, IXTG,
72 use element_mod ,
only : nixc,nixtg
76#include "implicit_f.inc"
92 INTEGER,
INTENT(IN) :: LUID, IPM(NPROPMI, NUMMAT), IGEO(NPROPGI, NUMGEO), ITABM1(NUMNOD), IFRAME(LISKN,NUMFRAM+1)
93 INTEGER,
INTENT(IN) :: NPC(*), ITAB(NUMNOD), IXC(NIXC, NUMELC), IXTG(NIXTG, NUMELTG)
94 my_real,
INTENT(IN) :: x(3, numnod), geo(npropg, numgeo), pm(npropm, nummat),
95 . xframe(nxframe, numfram+1)
96 TYPE (SURF_),
INTENT(INOUT),
DIMENSION(NSURF) :: IGRSURF
98 TYPE (GROUP_) ,
DIMENSION(NGRBRIC),
INTENT(IN) :: IGRBRIC
99 TYPE(
submodel_data),
DIMENSION(NSUBMOD),
INTENT(IN) :: LSUBMODEL
100 TYPE (SENSORS_) ,
INTENT(IN) :: SENSORS
105 INTEGER :: SURFID, SURFID_INT,SURFID_INJ
106 my_real :: FAC_M, FAC_L, FAC_T, FAC_C, FAC_GEN
107 my_real :: scal_t, scal_p, scal_s, scal_a, scal_d
109 my_real :: sa, rot, vol, vmin, veps, amu, sv
110 INTEGER :: MID_INI, IEQUI, ITTF, MID_INISYS
111 my_real :: hconv, pext, ti, pini
112 my_real :: mwi, cpai, cpbi, cpci, cpdi, cpei, cpfi, r_igc1, cpi, rmwi, cvi, gamai
114 INTEGER,
DIMENSION(:),
ALLOCATABLE :: I_INJ, ISENS, , NJ1, NJ2, NJ3,
115 . ipt, ipa, ipz, i_injsys,ivel
116 my_real,
DIMENSION(:),
ALLOCATABLE :: fpt, fpa, fpz,fvel
117 INTEGER :: NVENTHOLES, NPORSURF, NVENT
118 CHARACTER(LEN = 40) :: MESS
119 CHARACTER(LEN = 20) :: VENTTITLE
120 INTEGER :: TITREVENT(20)
121 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IPVENT, IFVENT, IDTPDEF, IPORT, IPORP, IPORA,
122 . iport1, iporp1, ipora1, ivdp, iblockage
123 my_real,
DIMENSION(:),
ALLOCATABLE :: avent, bvent, tvent, tstope, dpdef, dtpdef,
124 . fport, fporp, fpora, fport1, fporp1, fpora1, fvdp, cleak
126 CHARACTER(LEN = nchartitle) :: TITR1
127 my_real :: MI, RHOI, TI2, ESPECI, CPA, CPB, CPC, CPD, CPE, CPF, MW_TMP, RMWG,
128 . cpg, cvg, gama, shol
130 INTEGER KFRAME, IMESH_ALL, ISWITCH, NBX, NBY, NBZ, IBRIC
131 INTEGER IREF, IGMERG, ILVOUT, NLAYER, NFACMAX, NPPMAX, IFVANI
132 INTEGER I1,I2,I3, I4, NBRIC, NN, ISH34
133 my_real tswitch, pswitch, lx, ly, lz, cnmerg, qa, qb, ptole,hmin, cfl_coef, dtmin, sjet, cgmerg
134 my_real nx, ny, nz, xx, yy, zz, x13, y13, z13, x24, y24, z24
135 my_real origx, origy, origz, dir2x, dir2y, dir2z, dir, ds, dirx, diry, dirz
136 INTEGER :: KMESH, ID_DT_OPTION,IH3D_FLAG
137 LOGICAL :: IS_AVAILABLE
146 mess =
'MONITORED VOLUME DEFINITION '
154 CALL hm_get_intv(
'surf_IDex', surfid, is_available, lsubmodel)
155 CALL hm_get_floatv(
'Hconv',hconv, is_available, lsubmodel, unitab)
156 CALL hm_get_intv(
'IH3D', ih3d_flag, is_available, lsubmodel)
159 CALL hm_get_floatv(
'Ascalet', scal_t, is_available, lsubmodel, unitab)
160 CALL hm_get_floatv(
'AscaleP', scal_p, is_available, lsubmodel, unitab)
161 CALL hm_get_floatv(
'AscaleS', scal_s, is_available, lsubmodel, unitab)
162 CALL hm_get_floatv(
'AscaleA', scal_a, is_available, lsubmodel, unitab)
163 CALL hm_get_floatv(
'AscaleD', scal_d, is_available, lsubmodel
165 CALL hm_get_intv(
'mat_ID', mid_ini, is_available, lsubmodel)
166 CALL hm_get_floatv(
'Pext', pext, is_available, lsubmodel, unitab)
167 CALL hm_get_floatv(
'T0', ti, is_available, lsubmodel, unitab)
168 CALL hm_get_intv(
'Iequil', iequi, is_available, lsubmodel)
169 CALL hm_get_intv(
'Ittf', ittf, is_available, lsubmodel)
171 CALL hm_get_intv(
'Njet', njet, is_available, lsubmodel)
173 t_monvoln%NJET = njet
174 t_monvoln%IVOLU(8) = njet
176 ALLOCATE(t_monvoln%IBAGJET(nibjet, njet))
177 t_monvoln%IBAGJET(1:nibjet, 1:njet) = 0
178 ALLOCATE(t_monvoln%RBAGJET(nrbjet, njet))
179 t_monvoln%RBAGJET(1:nrbjet, 1:njet) = zero
182 ALLOCATE(i_inj(njet), isens(njet), ijet(njet), nj1(njet), nj2(njet), nj3(njet))
183 ALLOCATE(ipt(njet), ipa(njet), ipz(njet), fpt(njet), fpa(njet), fpz(njet))
184 ALLOCATE(ivel(njet),fvel(njet))
202 CALL hm_get_intv(
'Nvent', nventholes, is_available, lsubmodel)
203 CALL hm_get_intv(
'Nporsurf', nporsurf, is_available, lsubmodel)
205 nvent = nventholes + nporsurf
206 t_monvoln%IVOLU(11) = nvent
207 t_monvoln%NVENT = nvent
208 t_monvoln%NPORSURF = nporsurf
210 ALLOCATE(t_monvoln%IBAGHOL(nibhol, nvent))
211 t_monvoln%IBAGHOL(1:nibhol, 1:nvent) = 0
212 ALLOCATE(t_monvoln%RBAGHOL(nrbhol, nvent))
213 t_monvoln%RBAGHOL(1:nrbhol, 1:nvent) = zero
215 ALLOCATE(ipvent(nvent), ifvent(nvent), avent(nvent), bvent(nvent))
216 ALLOCATE(tvent(nvent), tstope(nvent), dpdef(nvent), dtpdef(nvent),
218 ALLOCATE(iport(nvent), iporp(nvent), ipora(nvent), fport(nvent),
219 . fporp(nvent), fpora(nvent))
220 ALLOCATE(iport1(nvent), iporp1(nvent), ipora1(nvent), fport1(nvent),
221 . fporp1(nvent), fpora1(nvent))
222 ALLOCATE(iblockage(nvent), cleak(nvent))
223 ALLOCATE(ivdp(nvent), fvdp(nvent))
225 IF (nventholes > 0)
THEN
226 DO ii = 1, nventholes
233 IF (ifvent(ii) == 0) ifvent(ii) = 1
240 venttitle = venttitle(1:len_trim(venttitle))
242 titrevent(jj) = iachar(venttitle(jj:jj))
243 t_monvoln%IBAGHOL(jj + 14, ii) = titrevent(jj)
259 IF (ifvent(ii) == 2)
THEN
268 IF (nporsurf > 0)
THEN
276 venttitle = venttitle(1:len_trim(venttitle))
278 titrevent(jj) = iachar(venttitle(jj:jj))
279 t_monvoln%IBAGHOL(jj + 14, nventholes + ii) = titrevent(jj)
289 cleak(nventholes + ii) = zero
290 avent(nventholes + ii) = zero
291 iport(nventholes + ii) = 0
292 ipora(nventholes + ii) = 0
293 fport(nventholes + ii) = zero
294 fpora(nventholes + ii) = zero
295 IF (ifvent(nventholes + ii) == 0) ifvent(nventholes + ii) = 1
296 IF (ifvent(nventholes + ii) == 3) ifvent(nventholes + ii) = 5
297 ivdp(nventholes + ii) = 0
298 fvdp(nventholes + ii) = zero
299 IF (ifvent(nventholes + ii) == 2)
THEN
307 CALL hm_get_intv(
'frame_ID', kframe, is_available, lsubmodel)
308 CALL hm_get_intv(
'kmesh', kmesh, is_available, lsubmodel)
309 CALL hm_get_floatv(
'Tswitch', tswitch, is_available, lsubmodel, unitab)
310 CALL hm_get_intv(
'Iswitch', iswitch, is_available, lsubmodel)
311 CALL hm_get_floatv(
'Pswitch', pswitch, is_available, lsubmodel, unitab)
313 CALL hm_get_floatv(
'L1', lx, is_available, lsubmodel, unitab)
314 CALL hm_get_floatv(
'L2', ly, is_available, lsubmodel, unitab)
315 CALL hm_get_floatv(
'L3', lz, is_available, lsubmodel, unitab)
317 CALL hm_get_intv(
'Nb1', nbx, is_available, lsubmodel)
318 CALL hm_get_intv(
'Nb2', nby, is_available, lsubmodel)
319 CALL hm_get_intv(
'Nb3', nbz, is_available, lsubmodel)
320 CALL hm_get_intv(
'grbric_ID', ibric, is_available, lsubmodel)
321 CALL hm_get_intv(
'surf_IDin', surfid_int, is_available, lsubmodel)
322 CALL hm_get_intv(
'Iref', iref, is_available, lsubmodel)
324 CALL hm_get_intv(
'Igmerg', igmerg, is_available, lsubmodel)
325 CALL hm_get_floatv(
'Cgmerg', cgmerg, is_available, lsubmodel, unitab)
326 CALL hm_get_floatv(
'Cnmerg', cnmerg, is_available, lsubmodel, unitab)
327 CALL hm_get_floatv(
'Ptole', ptole, is_available, lsubmodel, unitab)
329 CALL hm_get_floatv(
'qa', qa, is_available, lsubmodel, unitab)
330 CALL hm_get_floatv(
'qb', qb, is_available, lsubmodel, unitab)
331 CALL hm_get_floatv(
'Hmin', hmin, is_available, lsubmodel, unitab)
332 CALL hm_get_floatv(
'Dtsca', cfl_coef, is_available, lsubmodel, unitab)
333 CALL hm_get_floatv(
'Dtmin', dtmin, is_available, lsubmodel, unitab)
335 CALL hm_get_intv(
'Ilvout', ilvout, is_available, lsubmodel)
336 CALL hm_get_intv(
'Nlayer', nlayer, is_available, lsubmodel)
337 CALL hm_get_intv(
'Nfacmax', nfacmax, is_available, lsubmodel)
338 CALL hm_get_intv(
'Nppmax', nppmax, is_available, lsubmodel)
339 CALL hm_get_intv(
'Ifvani', ifvani, is_available, lsubmodel)
346 IF (iframe(4, ii + 1) == kframe)
THEN
351 IF (.NOT. lfound)
THEN
352 CALL ancmsg(msgid = 853, anmode = aninfo
353 . i2 = kframe, i1 = t_monvoln%ID, c1 = t_monvoln%TITLE)
359 dir2x = xframe(1, jj)
360 dir2y = xframe(2, jj)
361 dir2z = xframe(3, jj)
362 origx = xframe(10, jj)
363 origy = xframe(11, jj)
364 origz = xframe(12, jj)
369 fac_m = unitab%FAC_M(luid)
370 fac_l = unitab%FAC_L(luid)
371 fac_t = unitab%FAC_T(luid)
372 fac_c = fac_m / (fac_l * fac_t * fac_t)
378 t_monvoln%IVOLU(4) = 0
379 t_monvoln%EXT_SURFID = 0
382 IF (surfid == igrsurf(ii)%ID)
THEN
383 t_monvoln%IVOLU(4) = ii
384 t_monvoln%EXT_SURFID = ii
389 IF (.NOT. found)
THEN
391 ELSEIF (igrsurf(t_monvoln%IVOLU(4))%ISH4N3N == 0)
THEN
392 CALL ancmsg(msgid = 18, anmode = aninfo, msgtype = msgerror,
393 . i1 = t_monvoln%ID, c1 = t_monvoln%TITLE, i2 = surfid)
401 . igrsurf(t_monvoln%EXT_SURFID),ixc, ixtg, x, 8)
403 CALL monvol_compute_volume(t_monvoln, t_monvoln%TITLE, t_monvoln%IVOLU, igrsurf(t_monvoln%EXT_SURFID),
404 . itab, x, pm, geo, ixc, ixtg,
405 . sa, rot, vol, vmin, veps, sv)
408 . igrsurf(t_monvoln%EXT_SURFID),ixc,ixtg,vol, x, 8)
410 IF (ittf < 0 .OR. ittf > 3)
THEN
411 CALL ancmsg(msgid = 773, anmode = aninfo, msgtype = msgerror,
412 . i1 = t_monvoln%ID, c1 = t_monvoln%TITLE)
418 t_monvoln%IVOLU(66) = 0
421 IF (ipm(1, ii) == mid_ini .AND. ipm(2, ii) == 999)
THEN
422 mwi = pm(20, ii) * fac_m
423 cpai = pm(21, ii) * fac_l * fac_l / (fac_t * fac_t)
424 cpbi = pm(22, ii) * fac_l * fac_l / (fac_t * fac_t)
425 cpci = pm(23, ii) * fac_l * fac_l / (fac_t * fac_t)
426 cpdi = pm(24, ii) * fac_l * fac_l / (fac_t * fac_t)
427 cpei = pm(25, ii) * fac_l * fac_l / (fac_t * fac_t)
428 cpfi = pm(26, ii) * fac_l * fac_l / (fac_t * fac_t)
430 cpi = cpai + cpbi * ti + cpci * ti * ti + cpdi * ti * ti * ti +
431 . cpei / (ti * ti) + cpfi * ti * ti * ti * ti
434 t_monvoln%IVOLU(66) = ii
435 IF (cvi == zero)
THEN
436 CALL ancmsg(msgid = 709, msgtype = msgerror, anmode = aninfo,
437 . i1 = t_monvoln%ID, c1 = t_monvoln%TITLE)
446 IF (.NOT. found)
THEN
447 CALL ancmsg(msgid = 699, anmode = aninfo, msgtype = msgerror,
448 . i2 = mid_ini, i1 = t_monvoln%ID, c1 = t_monvoln%TITLE)
452 ALLOCATE(i_injsys(njet))
458 IF (igeo(1, jj) == i_inj(ii))
THEN
464 IF (.NOT. found)
THEN
465 CALL ancmsg(msgid = 723, anmode = aninfo, msgtype = msgerror,
466 . i2 = i_inj(ii), i1 = t_monvoln%ID, c1 = t_monvoln%TITLE)
472 t_monvoln%IVOLU(61)=0
475 IF (ibric==igrbric(ii)%ID)
THEN
476 t_monvoln%IVOLU(61)=ii
483 t_monvoln%IVOLU(67)=0
484 t_monvoln%INT_SURFID = 0
485 IF(surfid_int>0)
THEN
487 IF (surfid_int==igrsurf(ii)%ID)
THEN
488 t_monvoln%IVOLU(67) = ii
489 t_monvoln%INT_SURFID = ii
496 IF(t_monvoln%IVOLU(61)/=0) nbric=igrbric(t_monvoln%IVOLU(61))%ID
498 IF(t_monvoln%INT_SURFID/=0) surfid_int=igrsurf(t_monvoln%INT_SURFID)%ID
502 IF(ih3d_flag /= 0)
THEN
503 IF(ih3d_flag /= -1 .AND. ih3d_flag /= 1)
THEN
514 IF (scal_t == zero)
THEN
518 IF (scal_p == zero)
THEN
522 IF (scal_s == zero)
THEN
526 IF (scal_a == zero)
THEN
530 IF (scal_d == zero)
THEN
537 IF (pext == zero)
THEN
538 pext = 101325.d0 * (unitab%FAC_L_WORK * unitab%FAC_T_WORK * unitab%FAC_T_WORK) / unitab%FAC_M_WORK
541 pext = pext * fac_gen
549 fpt(ii) = one * fac_c
550 fpa(ii) = one * fac_c
551 fpz(ii) = one * fac_c
555 IF (nventholes > 0)
THEN
556 DO ii = 1, nventholes
557 IF (ipvent(ii) == 0)
THEN
560 IF (fport(ii) == zero) fport(ii) = one
561 IF (fporp(ii) == zero) fporp(ii) = one
562 IF (fpora(ii) == zero) fpora(ii) = one
563 IF (fport1(ii) == zero) fport1(ii) = one
564 IF (fporp1(ii) == zero) fporp1(ii) = one
565 IF (fpora1(ii) == zero) fpora1(ii) = one
571 t_monvoln%IBAGJET(14,ii) = 0
574 IF (ijet(ii)==igrsurf(jj)%ID)
THEN
575 t_monvoln%IBAGJET(14, ii) = jj
581 IF(.NOT.lfound)
CALL ancmsg(msgid=847,anmode=aninfo,msgtype=msgerror,i2=ijet(ii),i1=t_monvoln%ID,c1=t_monvoln%TITLE
583 IF (ivel(ii)==npc(jj)) t_monvoln%IBAGJET(11, ii)=jj
585 IF (fvel(ii) == zero) fvel(ii) = one
588 IF(tswitch == zero) tswitch=ep20
589 IF (kmesh == 0) kmesh=14
590 IF (kmesh == 2) kmesh=12
591 IF (kmesh == 4) kmesh=14
600 IF (igmerg==0) igmerg=1
601 IF (cgmerg==zero) cgmerg=em01
602 IF (cnmerg==zero) cnmerg=em04
603 IF (ptole==zero) ptole=em5
604 IF (nlayer ==0) nlayer =10
605 IF (nfacmax==0) nfacmax=20
606 IF (nppmax ==0) nppmax =20
608 IF(cfl_coef/=zero .AND. dtmin/=zero)id_dt_option=1
609 IF(cfl_coef==zero)cfl_coef=zep9
610 IF(dtmin==zero)dtmin=em20
616 t_monvoln%IMESH_ALL = imesh_all
617 t_monvoln%IVOLU(8) = njet
618 IF (iequi > 0 .AND. iequi /= 1) iequi = 1
619 t_monvoln%IVOLU(15) = iequi
620 t_monvoln%IVOLU(17) = ittf
621 t_monvoln%IVOLU(27) = id_dt_option
622 t_monvoln%IVOLU(30) = kmesh
623 t_monvoln%IVOLU(35)=nbx*nby
624 t_monvoln%IVOLU(37) = 0
625 t_monvoln%IVOLU(40)=nlayer
626 t_monvoln%IVOLU(41)=nfacmax
627 t_monvoln%IVOLU(42)=nppmax
628 t_monvoln%IVOLU(44)=ilvout
629 t_monvoln%IVOLU(54)=nbx
630 t_monvoln%IVOLU(55)=nby
631 t_monvoln%IVOLU(59)=iref
632 t_monvoln%IVOLU(60)=igmerg
633 t_monvoln%IVOLU(65)=nbz
634 t_monvoln%IVOLU(74) = iswitch
635 t_monvoln%IVOLU(75) = ih3d_flag
637 t_monvoln%RVOLU(19) = hconv
638 t_monvoln%RVOLU(26) = one / scal_t
639 t_monvoln%RVOLU(27) = one / scal_p
640 t_monvoln%RVOLU(28) = one / scal_s
641 t_monvoln%RVOLU(29) = one / scal_a
642 t_monvoln%RVOLU(30) = one / scal_d
643 t_monvoln%RVOLU(31)=cgmerg
644 t_monvoln%RVOLU(34)=cnmerg
645 t_monvoln%RVOLU(35)=dirx
646 t_monvoln%RVOLU(36)=diry
647 t_monvoln%RVOLU(37)=dirz
648 t_monvoln%RVOLU(38)=dir2x
649 t_monvoln%RVOLU(39)=dir2y
650 t_monvoln%RVOLU(40)=dir2z
651 t_monvoln%RVOLU(41)=origx
652 t_monvoln%RVOLU(42)=origy
653 t_monvoln%RVOLU(43)=origz
654 t_monvoln%RVOLU(44)=lx
655 t_monvoln%RVOLU(45)=ly
656 t_monvoln%RVOLU(46)=qa
657 t_monvoln%RVOLU(47)=qb
658 t_monvoln%RVOLU(50)=ptole
659 t_monvoln%RVOLU(51)=hmin
660 t_monvoln%RVOLU(53)=lz
661 t_monvoln%RVOLU(70) = tswitch
662 t_monvoln%RVOLU(71) = cfl_coef
663 t_monvoln%RVOLU(72) = dtmin
664 t_monvoln%RVOLU(73) = pswitch
667 mid_inisys = t_monvoln%IVOLU(66)
668 IF (mid_inisys /= 0)
THEN
669 mwi = pm(20, mid_inisys)
670 cpai = pm(21, mid_inisys)
671 cpbi = pm(22, mid_inisys)
672 cpci = pm(23, mid_inisys)
673 cpdi = pm(24, mid_inisys)
674 cpei = pm(25, mid_inisys)
675 cpfi = pm(26, mid_inisys)
676 r_igc1 = pm(27, mid_inisys)
686 CALL ancmsg(msgid= 7 18, anmode = aninfo, msgtype = msgerror,
687 . i1 = t_monvoln%ID, c1 = t_monvoln%TITLE)
689 t_monvoln%RVOLU(7)=cpai
690 t_monvoln%RVOLU(8)=cpbi
691 t_monvoln%RVOLU(9)=cpci
692 t_monvoln%RVOLU(56)=cpdi
693 t_monvoln%RVOLU(57)=cpei
694 t_monvoln%RVOLU(58)=cpfi
695 t_monvoln%RVOLU(59)=mwi
696 cpi = cpai + cpbi * ti + cpci * ti * ti + cpdi * ti * ti * ti +
697 . cpei / (ti * ti) + cpfi * ti * ti * ti * ti
698 IF (mwi == zero)
THEN
705 mi = pini * (vol + veps) / (rmwi * ti)
706 t_monvoln%RVOLU(1) = gamai
707 t_monvoln%RVOLU(3) = pext
708 t_monvoln%RVOLU(4) = vol + veps
709 t_monvoln%RVOLU(11) = mi
710 t_monvoln%RVOLU(12) = pini
711 t_monvoln%RVOLU(13) = ti
712 t_monvoln%RVOLU(14) = rmwi * mi
713 t_monvoln%RVOLU(17) = veps
714 t_monvoln%RVOLU(20) = mi
715 t_monvoln%RVOLU(25) = ti
716 t_monvoln%RVOLU(61) = gamai
717 rhoi = pini / (ti * rmwi)
718 t_monvoln%RVOLU(62) = rhoi
719 t_monvoln%RVOLU(10) = rmwi
721 especi=ti*(cpai+half*cpbi*ti+third*cpci*ti2-rmwi)
722 especi=especi+fourth*cpdi*ti2*ti2-cpei/ti+one_fifth*cpfi*ti2*ti2*ti
723 t_monvoln%RVOLU(63)= especi+rmwi*ti
724 t_monvoln%RVOLU(64)= zero
725 t_monvoln%RVOLU(65)= zero
726 t_monvoln%RVOLU(66)= especi
731 t_monvoln%RBAGJET(15,ii)=fvel(ii)
733 t_monvoln%IBAGJET(13, ii) = i_injsys(ii)
734 t_monvoln%RBAGJET(1, ii) = zero
735 t_monvoln%RBAGJET(2, ii) = geo(203, i_injsys(ii))
736 t_monvoln%RBAGJET(3, ii) = geo(204, i_injsys(ii))
737 t_monvoln%RBAGJET(4, ii) = geo(205, i_injsys(ii))
738 t_monvoln%RBAGJET(16, ii) = geo(206, i_injsys(ii))
739 t_monvoln%RBAGJET(17, ii) = geo(207, i_injsys(ii))
740 t_monvoln%RBAGJET(18, ii) = geo(208, i_injsys(ii))
741 t_monvoln%RBAGJET(19, ii) = geo(202, i_injsys(ii))
742 t_monvoln%RBAGJET(5, ii) = zero
743 t_monvoln%RBAGJET(6, ii) = zero
744 t_monvoln%RBAGJET(12, ii) = fpt(ii)
745 t_monvoln%RBAGJET(13, ii) = fpa(ii)
746 t_monvoln%RBAGJET(14, ii) = fpz(ii)
747 t_monvoln%IBAGJET(2, ii) = 0
748 t_monvoln%IBAGJET(3, ii) = 0
749 t_monvoln%IBAGJET(4, ii) = isens(ii)
751 IF (ijet(ii) > 0)
THEN
752 t_monvoln%IBAGJET(5, ii) = usr2sys
753 t_monvoln%IBAGJET(6, ii) = usr2sys(nj2(ii), itabm1, mess, t_monvoln%ID)
754 IF(nj3(ii) /= 0)
THEN
755 t_monvoln%IBAGJET(7, ii) = usr2sys(nj3(ii), itabm1, mess, t_monvoln%ID)
759 IF (ipt(ii) == npc(jj))
THEN
760 t_monvoln%IBAGJET(8, ii) = jj
765 IF (.NOT. found)
THEN
766 CALL ancmsg(msgid = 12, anmode = aninfo, msgtype = msgerror,
767 . i2 = ipt(ii), i1 = t_monvoln%ID, c1 = t_monvoln%TITLE)
771 IF (ipa(ii) == npc(jj))
THEN
772 t_monvoln%IBAGJET(9, ii) = jj
777 IF (.NOT. found)
THEN
778 CALL ancmsg(msgid = 13, anmode = aninfo, msgtype = msgerror,
779 . i2 = ipa(ii), i1 = t_monvoln%ID, c1 = t_monvoln%TITLE)
783 IF (ipz(ii) == npc(jj))
THEN
784 t_monvoln%IBAGJET(10, ii) = jj
789 IF (.NOT. found)
THEN
790 CALL ancmsg(msgid = 14, anmode = aninfo, msgtype = msgerror,
791 . i2 = ipz(ii), i1 = t_monvoln%ID, c1 = t_monvoln%TITLE)
794 IF (isens(ii) > 0)
THEN
796 DO jj = 1, sensors%NSENSOR
797 IF (isens(ii) == sensors%SENSOR_TAB(jj)%SENS_ID)
THEN
798 t_monvoln%IBAGJET(4, ii) = jj
799 IF (sensors%SENSOR_TAB(jj)%TCRIT < ttfire) ttfire = sensors%SENSOR_TAB(jj)%TCRIT
804 IF (.NOT. found)
THEN
805 CALL ancmsg(msgid = 17, anmode =aninfo, msgtype = msgerror,
806 . i2 = isens(ii), i1 = t_monvoln%ID, c1 = t_monvoln%TITLE)
809 cpa = t_monvoln%RBAGJET(2, ii)
810 cpb = t_monvoln%RBAGJET(3, ii)
811 cpc = t_monvoln%RBAGJET(4, ii)
812 cpd = t_monvoln%RBAGJET(16, ii)
813 cpe = t_monvoln%RBAGJET(17, ii)
814 cpf = t_monvoln%RBAGJET(18, ii)
815 mw_tmp = t_monvoln%RBAGJET(19, ii)
816 rmwg = r_igc1 / mw_tmp
817 cpg = cpa + cpb*ti+cpc*ti*ti+cpd*ti*ti*ti+
818 . cpe/(ti*ti)+cpf*ti*ti*ti*ti
821 t_monvoln%RBAGJET(1, ii) = rmwg
823 IF (ttfire == infinity) ttfire = zero
824 t_monvoln%RVOLU(49) = ttfire
826 DO ii = 1, nventholes
827 t_monvoln%RBAGHOL(7, ii) = fport(ii)
828 t_monvoln%RBAGHOL(8, ii) = fporp(ii)
829 t_monvoln%RBAGHOL(9, ii) = fpora(ii)
830 t_monvoln%RBAGHOL(10, ii) = fport1(ii)
831 t_monvoln%RBAGHOL(11, ii) = fporp1(ii)
832 t_monvoln%RBAGHOL(12, ii) = fpora1(ii)
834 t_monvoln%IBAGHOL(1, ii) = 0
835 IF (ifvent(ii) == 1) t_monvoln%IBAGHOL(10, ii) = 2
836 IF (ifvent(ii) == 2) t_monvoln%IBAGHOL(10, ii) = 3
837 IF (ifvent(ii) == 3) t_monvoln%IBAGHOL(10, ii) = 1
839 t_monvoln%IBAGHOL(11, ii) = idtpdef(ii)
841 t_monvoln%IBAGHOL(12, ii) = 0
843 IF (ipvent(ii) == 0)
THEN
844 t_monvoln%IBAGHOL(2, ii) = 0
846 t_monvoln%IBAGHOL(2, ii) = 0
849 IF (ipvent(ii) == igrsurf(jj)%ID)
THEN
850 t_monvoln%IBAGHOL(2, ii) = jj
856 CALL ancmsg(msgid = 532, anmode = aninfo, msgtype = msgerror,
857 . i2 = ipvent(ii), i1 = t_monvoln%ID, c1 = t_monvoln%TITLE)
858 ELSEIF(igrsurf(t_monvoln%IBAGHOL(2, ii))%ISH4N3N == 0)
THEN
859 CALL ancmsg(msgid = 330, anmode = aninfo, msgtype = msgerror,
860 . i1 = t_monvoln%ID, c1 = t_monvoln%TITLE)
862 IF (avent(ii) == zero) avent(ii) = one
864 IF (avent(ii) == zero) dpdef(ii) = infinity
865 IF (avent(ii) == zero) tvent(ii) = infinity
866 IF (dpdef(ii) == zero .AND. dtpdef(ii) == zero
THEN
867 t_monvoln%IBAGHOL(1, ii) = 1
869 t_monvoln%RBAGHOL(1, ii) = dpdef(ii)
870 t_monvoln%RBAGHOL(2, ii) = avent(ii)
871 t_monvoln%RBAGHOL(3, ii) = tvent(ii)
872 t_monvoln%RBAGHOL(4, ii) = dtpdef
873 t_monvoln%RBAGHOL(6, ii) = bvent(ii)
874 IF (ivdp(ii) /= 0 .AND. fvdp(ii) == zero) fvdp(ii) = one
875 t_monvoln%RBAGHOL(13, ii) = fvdp(ii)
876 IF (tstope(ii) == zero) tstope(ii) = infinity
877 t_monvoln%RBAGHOL(14, ii) = tstope(ii)
879 t_monvoln%IBAGHOL(3, ii) = -1
880 t_monvoln%IBAGHOL(4, ii) = -1
881 t_monvoln%IBAGHOL(5, ii) = -1
882 t_monvoln%IBAGHOL(6, ii) = -1
883 t_monvoln%IBAGHOL(7, ii) = -1
884 t_monvoln%IBAGHOL(8, ii) = -1
885 t_monvoln%IBAGHOL(9, ii) = -1
887 IF (iport(ii) == npc(jj)) t_monvoln%IBAGHOL(3, ii) = jj
888 IF (iporp(ii) == npc(jj)) t_monvoln%IBAGHOL(4, ii) = jj
889 IF (ipora(ii) == npc(jj)) t_monvoln%IBAGHOL(5, ii) = jj
890 IF (iport1(ii) == npc(jj)) t_monvoln%IBAGHOL(6, ii) = jj
891 IF (iporp1(ii) == npc(jj)) t_monvoln%IBAGHOL(7, ii) = jj
892 IF (ipora1(ii) == npc(jj)) t_monvoln%IBAGHOL(8, ii) = jj
893 IF (ivdp(ii) == npc(jj)) t_monvoln%IBAGHOL(9, ii) = jj
895 IF (iport(ii) == 0) t_monvoln%IBAGHOL(3, ii) = 0
896 IF (iporp(ii) == 0) t_monvoln%IBAGHOL(4, ii) = 0
897 IF (ipora(ii) == 0) t_monvoln%IBAGHOL(5, ii) = 0
898 IF (iport1(ii) == 0) t_monvoln%IBAGHOL(6, ii) = 0
899 IF (iporp1(ii) == 0) t_monvoln%IBAGHOL(7, ii) = 0
900 IF (ipora1(ii) == 0) t_monvoln%IBAGHOL(8, ii) = 0
901 IF (ivdp(ii) == 0 .AND. ifvent(ii) /= 3) t_monvoln%IBAGHOL(9, ii) = 0
902 IF (t_monvoln%IBAGHOL(3, ii) == -1)
THEN
903 t_monvoln%IBAGHOL(3, ii) = 0
904 CALL ancmsg(msgid = 331, anmode = aninfo, msgtype = msgerror,
905 . i1 = t_monvoln%ID, c1 = t_monvoln%TITLE, i2 = iport(ii))
907 IF (t_monvoln%IBAGHOL(4, ii) == -1)
THEN
908 t_monvoln%IBAGHOL(4, ii) = 0
909 CALL ancmsg(msgid = 332, anmode
910 . i1 = t_monvoln%ID, c1 = t_monvoln%TITLE, i2 = iporp(ii))
912 IF (t_monvoln%IBAGHOL(5, ii) == -1)
THEN
913 t_monvoln%IBAGHOL(5, ii)=0
914 CALL ancmsg(msgid = 333, anmode = aninfo, msgtype = msgerror,
915 . i1 = t_monvoln%ID, c1 = t_monvoln%TITLE, i2 = ipora
917 IF (t_monvoln%IBAGHOL(6, ii) == -1)
THEN
918 t_monvoln%IBAGHOL(6, ii) = 0
919 CALL ancmsg(msgid=331, anmode=aninfo, msgtype=msgerror,
920 . i1 = t_monvoln%ID, c1 = t_monvoln%TITLE, i2 = iport1(ii))
922 IF (t_monvoln%IBAGHOL(7, ii) == -1)
THEN
923 t_monvoln%IBAGHOL(7, ii)=0
924 CALL ancmsg(msgid=332, anmode=aninfo, msgtype=msgerror
925 . i1 = t_monvoln%ID, c1 = t_monvoln%TITLE, i2 = iporp1(ii))
927 IF (t_monvoln%IBAGHOL(8, ii) == -1)
THEN
928 t_monvoln%IBAGHOL(8, ii) = 0
929 CALL ancmsg(msgid=333, anmode=aninfo, msgtype=msgerror,
930 . i1 = t_monvoln%ID, c1 = t_monvoln%TITLE, i2 = ipora1(ii))
932 IF (t_monvoln%IBAGHOL(9, ii) == -1)
THEN
933 t_monvoln%IBAGHOL(9, ii) = 0
934 CALL ancmsg(msgid = 518, anmode = aninfo, msgtype = msgerror,
935 . i1 = t_monvoln%ID, c1 = t_monvoln%TITLE, i2 = ivdp(ii))
940 t_monvoln%IBAGHOL(13, nventholes + ii) = 1
941 IF (ifvent(nventholes + ii) == 1) t_monvoln%IBAGHOL(10, nventholes + ii) = 2
942 IF (ifvent(nventholes + ii) == 2) t_monvoln%IBAGHOL(10, nventholes + ii) = 3
943 IF (fport(nventholes + ii) == zero) fport(nventholes + ii) = one
944 IF (fpora(nventholes + ii) == zero) fpora(nventholes + ii) = one
945 t_monvoln%RBAGHOL(7, nventholes + ii) = fport(nventholes + ii)
946 t_monvoln%RBAGHOL(9, nventholes + ii) = fpora(nventholes + ii)
948 t_monvoln%IBAGHOL(1, nventholes + ii) = 0
949 t_monvoln%IBAGHOL(11, nventholes + ii) = idtpdef(nventholes + ii)
950 t_monvoln%IBAGHOL(12, nventholes + ii) = 0
951 t_monvoln%IBAGHOL(14, nventholes + ii) = iblockage(nventholes + ii)
953 IF (ipvent(nventholes + ii) == 0)
THEN
954 t_monvoln%IBAGHOL(2, nventholes + ii) = 0
956 t_monvoln%IBAGHOL(2, nventholes + ii) = 0
958 IF (ipvent(nventholes + ii) == igrsurf(jj)%ID)
THEN
959 t_monvoln%IBAGHOL(2, nventholes + ii) = jj
962 IF (t_monvoln%IBAGHOL(2, nventholes + ii) == 0)
THEN
963 CALL ancmsg(msgid = 532, anmode = aninfo, msgtype = msgerror,
964 . i1 = t_monvoln%ID, c1 = t_monvoln%TITLE, i2 = ipvent(nventholes + ii))
965 ELSEIF (igrsurf(t_monvoln%IBAGHOL(2, nventholes + ii))%ISH4N3N == 0)
THEN
966 CALL ancmsg(msgid = 330, anmode = aninfo, msgtype = msgerror,
967 . i1 = t_monvoln%ID, c1 = t_monvoln%TITLE)
971 IF (dpdef(nventholes + ii) == zero .AND. dtpdef(nventholes + ii) == zero .AND.
972 . tvent(nventholes + ii) == zero)
THEN
973 t_monvoln%IBAGHOL(1, nventholes + ii) = 1
975 t_monvoln%RBAGHOL(1, nventholes + ii) = dpdef(nventholes + ii)
976 t_monvoln%RBAGHOL(2, nventholes + ii) = avent(nventholes + ii)
977 t_monvoln%RBAGHOL(3, nventholes + ii) = tvent(nventholes + ii)
978 t_monvoln%RBAGHOL(4, nventholes + ii) = dtpdef(nventholes + ii)
979 t_monvoln%RBAGHOL(6, nventholes + ii) = cleak(nventholes + ii)
980 IF (ivdp(nventholes + ii) /= 0 .AND. fvdp(nventholes + ii) == zero) fvdp=one
981 t_monvoln%RBAGHOL(13, nventholes + ii)=fvdp(nventholes + ii)
982 IF (tstope(nventholes + ii) == zero) tstope(nventholes + ii
983 t_monvoln%RBAGHOL(14, nventholes + ii) = tstope(nventholes + ii)
985 t_monvoln%IBAGHOL(3, nventholes + ii) = -1
986 t_monvoln%IBAGHOL(5, nventholes + ii) = -1
987 t_monvoln%IBAGHOL(9, nventholes + ii) = -1
990 IF (iport(nventholes + ii) == npc(jj))
THEN
991 t_monvoln%IBAGHOL(3, nventholes + ii) = jj
993 IF (ipora(nventholes + ii) == npc(jj))
THEN
994 t_monvoln%IBAGHOL(5, nventholes + ii) = jj
996 IF (ivdp(nventholes + ii) == npc(jj))
THEN
997 t_monvoln%IBAGHOL(9, nventholes + ii) = jj
1000 IF (iport(nventholes + ii) == 0) t_monvoln%IBAGHOL(3, nventholes + ii) = 0
1001 IF (ipora(nventholes + ii) == 0) t_monvoln%IBAGHOL(5, nventholes + ii) = 0
1002 IF (ivdp(nventholes + ii) == 0 .AND. ifvent(nventholes
THEN
1003 t_monvoln%IBAGHOL(9, nventholes + ii) = 0
1006 IF (t_monvoln%IBAGHOL(3, nventholes + ii) == -1)
THEN
1007 t_monvoln%IBAGHOL(3, nventholes + ii) =0
1008 CALL ancmsg(msgid = 331, anmode = aninfo, msgtype = msgerror,
1009 . i1 = t_monvoln%ID, c1 = t_monvoln%TITLE, i2 = iport(nventholes + ii))
1011 IF (t_monvoln%IBAGHOL(4, ii) == -1)
THEN
1012 t_monvoln%IBAGHOL(4, ii) = 0
1013 CALL ancmsg(msgid = 332, anmode = aninfo, msgtype = msgerror,
1014 . i1 = t_monvoln%ID, c1 = t_monvoln%TITLE, i2 = iporp(ii))
1016 IF (t_monvoln%IBAGHOL(5, nventholes + ii) == -1)
THEN
1017 t_monvoln%IBAGHOL(5, nventholes + ii) = 0
1018 CALL ancmsg(msgid = 333, anmode = aninfo, msgtype = msgerror,
1019 . i1 = t_monvoln%ID, c1 = t_monvoln%TITLE, i2 = ipora(nventholes + ii))
1021 IF (t_monvoln%IBAGHOL(9, nventholes + ii) == -1)
THEN
1022 t_monvoln%IBAGHOL(9, nventholes + ii) = 0
1023 CALL ancmsg(msgid = 518, anmode = aninfo, msgtype = msgerror,
1024 . i1 = t_monvoln%ID, c1 = t_monvoln%TITLE, i2 = ivdp(nventholes + ii))
1029 t_monvoln%RVOLU(2) = amu
1030 t_monvoln%RVOLU(16) = vol + veps
1031 t_monvoln%RVOLU(18) = sa
1032 t_monvoln%RVOLU(21) = rot
1033 t_monvoln%RVOLU(22:24) = zero
1038 WRITE(iout, 1005) surfid
1039 WRITE(iout, 1003) scal_t, scal_p, scal_s, scal_a, scal_d
1040 WRITE(iout, 1006) hconv
1041 WRITE(iout, 1002) sa, sv, vol
1042 WRITE(iout,1395) mid_ini
1043 WRITE(iout,1400) amu, ti, pext, pini
1044 IF (iequi == 0)
THEN
1046 ELSEIF(iequi == 1)
THEN
1049 WRITE(iout,1405) iequi
1051 WRITE(iout,1415) mwi, gamai, cpai, cpbi, cpci, cpdi, cpei, cpfi
1053 WRITE(iout,1702) kmesh
1055 IF(iswitch /= 0 .OR. tswitch /= zero .OR. pswitch /= zero)
THEN
1056 WRITE(iout,1789)iswitch
1059 WRITE(iout,2703) tswitch
1060 WRITE(iout,2704) pswitch
1063 IF (t_monvoln%IMESH_ALL > 0)
THEN
1064 WRITE(iout, 1706) t_monvoln%IMESH_ALL
1067 WRITE(iout,1705) kframe
1068 WRITE(iout,1710) t_monvoln%RVOLU(41),t_monvoln%RVOLU
1069 . t_monvoln%RVOLU(38),t_monvoln%RVOLU(39),t_monvoln%RVOLU(40),
1070 . t_monvoln%RVOLU(35),t_monvoln%RVOLU(36),t_monvoln%RVOLU(37),
1071 . t_monvoln%RVOLU(44),t_monvoln%RVOLU(45),t_monvoln%RVOLU(53),
1072 . t_monvoln%IVOLU(54),t_monvoln%IVOLU(55),t_monvoln%IVOLU(65),
1073 . nbric ,surfid_int ,t_monvoln%IVOLU(59),
1074 . t_monvoln%IVOLU(60),t_monvoln%RVOLU(31),t_monvoln%RVOLU(34),
1075 . t_monvoln%RVOLU(50),
1076 . t_monvoln%RVOLU(46),t_monvoln%RVOLU(47),t_monvoln%RVOLU(51),
1077 . t_monvoln%RVOLU(71),t_monvoln%RVOLU(72),
1078 . t_monvoln%IVOLU(44),t_monvoln%IVOLU(40),t_monvoln%IVOLU(41),
1079 . t_monvoln%IVOLU(42),ifvani
1081 WRITE(iout,1426) njet
1083 WRITE(iout,1432) ii, igeo(1, i_injsys(ii)), isens(ii)
1084 IF (ivel(ii) > 0)
THEN
1085 WRITE(iout, 1435) ivel(ii), fvel(ii)
1087 cpa = t_monvoln%RBAGJET(2, ii)
1088 cpb = t_monvoln%RBAGJET(3, ii)
1089 cpc = t_monvoln%RBAGJET(4, ii)
1090 cpd = t_monvoln%RBAGJET(16, ii)
1091 cpe = t_monvoln%RBAGJET(17, ii)
1092 cpf = t_monvoln%RBAGJET(18, ii)
1093 mw_tmp = t_monvoln%RBAGJET(19, ii)
1094 rmwg = r_igc1 / mw_tmp
1095 cpg = cpa + cpb*ti+cpc*ti*ti+cpd*ti*ti*ti+
1096 . cpe/(ti*ti)+cpf*ti*ti*ti*ti
1099 WRITE(iout,1442) gama, mw_tmp, cpa, cpb, cpc,
1101 surfid_inj = t_monvoln%IBAGJET(14, ii)
1103 IF (surfid_inj/=0)
THEN
1104 IF (igrsurf(surfid_inj)%ISH4N3N == 0)
THEN
1105 CALL ancmsg(msgid = 18, anmode = aninfo, msgtype = msgerror,
1106 . i2 = igrsurf(surfid_inj)%ID, i1 = t_monvoln%ID, c1 = t_monvoln%TITLE)
1108 nn = igrsurf(surfid_inj)%NSEG
1111 i1 = igrsurf(surfid_inj)%NODES(jj,1)
1112 i2 = igrsurf(surfid_inj)%NODES(jj,2)
1113 i3 = igrsurf(surfid_inj)%NODES(jj,3)
1114 i4 = igrsurf(surfid_inj)%NODES(jj,4)
1115 ish34 = igrsurf(surfid_inj)%ELTYP(jj)
1116 IF (ish34 == 7)i4 = i3
1117 xx = half * (x(1, i1) + x(1, i2))
1118 yy = half * (x(2, i1) + x(2, i2))
1119 zz = half * (x(3, i1) + x(3, i2))
1120 x13 = x(1, i3) - x(1, i1)
1121 y13 = x(2, i3) - x(2, i1)
1122 z13 = x(3, i3) - x(3, i1)
1123 x24 = x(1, i4) - x(1, i2)
1124 y24 = x(2, i4) - x(2, i2)
1125 z24 = x(3, i4) - x(3, i2)
1126 nx = dir * (y13 * z24 - y24 * z13)
1127 ny = dir * (z13 * x24 - z24 * x13)
1128 nz = dir * (x13 * y24 - x24 * y13)
1129 ds = sqrt(nx * nx + ny * ny + nz * nz)
1133 WRITE(iout,1445) igrsurf(surfid_inj)%ID, sjet
1136 WRITE(iout,1470) nvent, ttfire
1137 WRITE(iout,1475)ittf
1139 IF (t_monvoln%IBAGHOL(13, ii) == 0)
THEN
1140 titr1='vent hole surface
'
1141 WRITE(IOUT,1472) II, IPVENT(II)
1143 TITR1='porous surface
'
1144 WRITE(IOUT,1473) II, IPVENT(II)
1147 TITREVENT(JJ) = T_MONVOLN%IBAGHOL(JJ + 14, II)
1148 VENTTITLE(JJ:JJ) = ACHAR(TITREVENT(JJ))
1150 WRITE(IOUT,1476) VENTTITLE
1151 IF (IPVENT(II)==0) THEN
1152 CALL ANCMSG(MSGID = 1050, MSGTYPE = MSGERROR, ANMODE = ANINFO,
1153 . I1 = T_MONVOLN%ID, I2 = II, C1 = T_MONVOLN%TITLE, C2 = TITR1)
1155 IFVENT(II) = T_MONVOLN%IBAGHOL(10, II)
1156 IF (IFVENT(II) == 1) WRITE(IOUT, 1483)
1157 IF (IFVENT(II) == 2) WRITE(IOUT, 1481)
1158 IF (IFVENT(II) == 3) WRITE(IOUT, 1482) IVDP(II), FVDP(II)
1159 IF (IFVENT(II) == 5) WRITE(IOUT, 1484)
1160 IF (IFVENT(II) == 4) WRITE(IOUT, 1485)
1162 IF (IPVENT(II) /= 0) THEN
1163 CALL MONVOL_CHECK_VENTHOLE_SURF(IPRI, T_MONVOLN, IGRSURF, II, SHOL, X, IXC, IXTG)
1164 T_MONVOLN%RBAGHOL(15, II) = SHOL
1165 IF (T_MONVOLN%IBAGHOL(13, II) == 0) THEN
1167 . SHOL,AVENT(II),BVENT(II),
1168 . IPORT(II),IPORP(II),IPORA(II),FPORT(II),FPORP(II),FPORA(II),
1169 . IPORT1(II),IPORP1(II),IPORA1(II),FPORT1(II),FPORP1(II),FPORA1(II)
1170 WRITE(IOUT,1480) TVENT(II),DPDEF(II),DTPDEF(II),IDTPDEF(II),TSTOPE(II)
1172 WRITE(IOUT,1579) SHOL,IBLOCKAGE(II)
1173 WRITE(IOUT,1580) TVENT(II),DPDEF(II),DTPDEF(II),IDTPDEF(II),TSTOPE(II)
1176 IF (T_MONVOLN%IBAGHOL(13, II) == 0) THEN
1178 . AVENT(II),BVENT(II),
1179 . IPORT(II),IPORP(II),IPORA(II),FPORT(II),FPORP(II),FPORA(II),
1180 . IPORT1(II),IPORP1(II),IPORA1(II),FPORT1(II),FPORP1(II),FPORA1(II)
1181 WRITE(IOUT,1480) TVENT(II),DPDEF(II),DTPDEF(II),IDTPDEF(II),TSTOPE(II)
1183 CLEAK =T_MONVOLN%RBAGHOL(6, II)
1184 WRITE(IOUT,1585) CLEAK(II),AVENT(II),IPORT(II),FPORT(II),IPORA(II),FPORA(II)
1185 WRITE(IOUT,1580) TVENT(II),DPDEF(II),DTPDEF(II),IDTPDEF(II),TSTOPE(II)
1190 IF(T_MONVOLN%IVOLU(75) == 1)THEN
1197 IF (ALLOCATED(I_INJ)) DEALLOCATE(I_INJ)
1198 IF (ALLOCATED(ISENS)) DEALLOCATE(ISENS)
1199 IF (ALLOCATED(IJET)) DEALLOCATE(IJET)
1200 IF (ALLOCATED(NJ1)) DEALLOCATE(NJ1)
1201 IF (ALLOCATED(NJ2)) DEALLOCATE(NJ2)
1202 IF (ALLOCATED(NJ3)) DEALLOCATE(NJ3)
1203 IF (ALLOCATED(IPT)) DEALLOCATE(IPT)
1204 IF (ALLOCATED(IPA)) DEALLOCATE(IPA)
1205 IF (ALLOCATED(IPZ)) DEALLOCATE(IPZ)
1206 IF (ALLOCATED(FPT)) DEALLOCATE(FPT)
1207 IF (ALLOCATED(FPA)) DEALLOCATE(FPA)
1208 IF (ALLOCATED(FPZ)) DEALLOCATE(FPZ)
1209 IF (ALLOCATED(I_INJSYS)) DEALLOCATE(I_INJSYS)
1210 DEALLOCATE(IPVENT, IFVENT, AVENT, BVENT)
1211 DEALLOCATE(TVENT, TSTOPE, DPDEF, DTPDEF,
1213 DEALLOCATE(IPORT, IPORP, IPORA, FPORT,
1215 DEALLOCATE(IPORT1, IPORP1, IPORA1, FPORT1,
1217 DEALLOCATE(IBLOCKAGE, CLEAK)
1218 DEALLOCATE(IVDP, FVDP)
1225 . /5X,'initial surface of monitored volume . .=
',1PG20.13,
1226 . /5X,'surface error(ne.0
for non closed surf)=
',1PG20.13,
1227 . /5X,'initial volume of monitored volume. . .=
',1PG20.13)
1229 . 5X,'unit scale
for time functions =
',1PG20.13,
1230 . /5X,'unit scale
for pressure functions =
',1PG20.13,
1231 . /5X,'unit scale
for area functions =
',1PG20.13,
1232 . /5X,'unit scale
for angle functions =
',1PG20.13,
1233 . /5X,'unit scale
for distance functions =
',1PG20.13)
1234 1005 FORMAT( 5X,'EXTERNAL surface
id . . . . . . . . . .=
',I10)
1235 1006 FORMAT( 5X,'global heat transfer coefficient. . . .=
',1PG20.13)
1237 . /5X,'initial gas . . . . . . . . . . . . . .=
',I10)
1239 . 5X,'volumic viscosity . . . . . . . . . . .=
',1PG20.13,
1240 . /5X,'initial temperature . . . . . . . . . .=
',1PG20.13,
1241 . /5X,'EXTERNAL pressure . . . . . . . . . . .=
',1PG20.13,
1242 . /5X,'initial pressure. . . . . . . . . . . .=
',1PG20.13/)
1244 . 5X,'initial thermodynamic equilibrium is set at time 0
'
1245 . /5X,'--------------------------------------------------
'/)
1247 . 5X,'thermodynamic equilibrium is set every cycle up to injection time
'/)
1249 . 5X,'thermodynamic equilibrium is set every
',I10,' cycles up to injection time
'/)
1251 . 5X,'characteristics of initial gaz
',
1252 . /5X,'------------------------------
',
1253 . /5X,'molecular weight
',
1254 . /5X,' at initial temperature . . . . .=
',1PG20.13,
1255 . /5X,'gamma at initial temperature . . . . .=
',1PG20.13,
1256 . /5X,'coefficient cpa . . . . . . . . . . . .=
',1PG20.13,
1257 . /5X,'coefficient cpb . . . . . . . . . . . .=
',1PG20.13,
1258 . /5X,'coefficient cpc . . . . . . . . . . . .=
',1PG20.13,
1259 . /5X,'coefficient cpd . . . . . . . . . . . .=
',1PG20.13,
1260 . /5X,'coefficient cpe . . . . . . . . . . . .=
',1PG20.13,
1261 . /5X,'coefficient cpf . . . . . . . . . . . .=
',1PG20.13/)
1266 . 5X,'number of injectors . . . . . . . . . .=
',I10/)
1268 . 5X,'injector. . . . . . . . . . . . . . . .=
',I10,
1269 . /10X,'injector number . . . . . . . . . . . .=
',I10,
1270 . /10X,'sensor number . . . . . . . . . . . . .=
',I10)
1271 1435 FORMAT(15X,'time
FUNCTION for incoming gas
velocity=
',I10,
1272 . /15X,'scale factor
for incoming gas
velocity.=
',1PG20.13)
1274 . /15X,'mixture characteristics
',
1275 . /15X,'at beginning of injection
',
1276 . /15X,'-------------------------
',
1277 . /15X,'gamma . . . . . . . . . . . . . . . . .=
',1PG20.13,
1278 . /15X,'molecular weight. . . . . . . . . . . .=
',1PG20.13,
1279 . /15X,'coefficient cpa . . . . . . . . . . . .=
',1PG20.13,
1280 . /15X,'coefficient cpb . . . . . . . . . . . .=
',1PG20.13,
1281 . /15X,'coefficient cpc . . . . . . . . . . . .=
',1PG20.13,
1282 . /15X,'coefficient cpd . . . . . . . . . . . .=
',1PG20.13,
1283 . /15X,'coefficient cpe . . . . . . . . . . . .=
',1PG20.13,
1284 . /15X,'coefficient cpf . . . . . . . . . . . .=
',1PG20.13)
1286 . 15X,'inflator surface
id . . . . . . . . . .=
',I10,
1287 . /15X,'initial surface of inflator . . . . . .=
',1PG20.13)
1289 . /5X,'vent holes and porous fabric surfaces ',
1290 . /5x,
'------------------------------------- ',
1291 . /5x,
'NUMBER OF VENT HOLES AND POROUS SURFACES . .=',i10,
1292 . /5x,
'INJECTION TIME TINJ. . . . . . . . . . . . .=',1pg20.13)
1294 . / 5x,
'VENT HOLE NUMBER. . . . . . . . . . . .=',i10,
1295 . /15x,
'VENT HOLE SURFACE ID. . . . . . . . . .=',i10)
1297 . / 5x,
'POROUS SURFACE NUMBER . . . . . . . . .=',i10,
1298 . /15x,
'POROUS SURFACE ID . . . . . . . . . . .=',i10)
1300 . 5x,
'VENTING START TIME SHIFT . . . . . . . . . .=',i10,
1301 . /5x,
' 0 : NO SHIFT',
1302 . /5x,
' 1,2: VENTING FUNCTIONS ARE SHIFTED BY TINJ',
1303 . /5x,
' 3 : VENTING FUNCTIONS ARE SHIFTED BY TINJ+TSTART')
1305 . 15x,
'TITLE . . . . . . . . . . . . . . . . .=',1x,a20)
1306 1481
FORMAT(15x,
'ISENTHALPIC VENTING MODEL ')
1307 1482
FORMAT(15x,
'CHEMKIN MODEL FOR POROSITY : ',
1308 . /15x,
'VELOCITY VS RELATIVE PRESSURE FUNCTION =',i10,
1309 . /15x,
' SCALE FACTOR. . . . . . .=',1pg20.13)
1310 1484
FORMAT(15x,
'GRAEFE POROSITY FORMULATION')
1311 1485
FORMAT(15x,
'ISENTHALPIC VENTING MODEL WITH POSSIBLE FLOW IN')
1313 . 15x,
'INITIAL SURFACE . . . . . . . . . . . .=',1pg20.13,
1314 . /15x,
'AVENT:VENT HOLE SCALE FACTOR. . . . . .=',1pg20.13,
1315 . /15x,
'BVENT:VENT HOLE SCALE FACTOR IF CONTACT=',1pg20.13,
1316 . /15x,
'POROSITY FUNCTION / TIME. . . . . . . .=',i10,
1317 . /15x,
'POROSITY FUNCTION / PRESSURE. . . . . .=',i10,
1318 . /15x,
'POROSITY FUNCTION / AREA. . . . . . . .=',i10,
1319 . /15x,
'POROSITY TIME FUNCTION SCALE FACTOR =',1pg20.13,
1320 . /15x,
'POROSITY PRESSURE FUNCTION SCALE FACTOR=',1pg20.13,
1321 . /15x,
'POROSITY AREA FUNCTION SCALE FACTOR . .=',1pg20.13,
1322 . /15x,
'POROSITY FUNCTION / TIME(after contact)=',i10,
1323 . /15x,
'POROSITY FUNCTION / PRESSURE. . . . . .=',i10,
1324 . /15x,
'POROSITY FUNCTION / AREA. . . . . . . .=',i10,
1325 . /15x,
'POROSITY TIME FUNCTION SCALE FACTOR =',1pg20.13,
1326 . /15x,
'POROSITY PRESSURE FUNCTION SCALE FACTOR=',1pg20.13,
1327 . /15x,
'POROSITY AREA FUNCTION SCALE FACTOR . .=',1pg20.13)
1329 . 15x,
'START TIME FOR VENTING TSTART . . . . .=',1pg20.13,
1330 . /15x,
'RELATIVE PRES. FOR MEMBRANE DEFLATION .=',1pg20.13,
1331 . /15x,
' (DPDEF = PDEF - PEXT) ',
1332 . /15x,
'TIME DELAY BEFORE MEMBRANE DEFLATION .=',1pg20.13,
1333 . /15x,
'TIME DELAY FLAG . . . . . . . . . . . .=',i10,
1334 . /15x,
' IF IDTPDEF : 0',
1335 . /15x,
' PRESSURE SHOULD BE OVER PDEF DURING',
1336 . /15x,
' A CUMULATED DTPDEF TIME'
1337 . /15x,
' BEFORE ACTIVATING DEFLATION'
1338 . /15x,
' IF IDTPDEF : 1',
1339 . /15x,
' DEFLATION START DTPDEF AFTER',
1340 . /15x,
' DPDEF HAS BEEN REACHED',
1341 . /15x,
'END TIME FOR VENTING TSTOP. . . . . . .=',1pg20.13)
1342 1483
FORMAT(15x,
'LOCAL VELOCITY VENTING FORMULATION'
1344 . 15x,
'AVENT:VENT HOLE AREA. . . . . . . . . .=',1pg20.13,
1345 . /15x,
'BVENT:VENT HOLE SCALE FACTOR IF CONTACT=',1pg20.13,
1346 . /15x,
'POROSITY FUNCTION / TIME. . . . . . . .=',i10,
1347 . /15x,
'POROSITY FUNCTION / PRESSURE. . . . . .=',i10,
1348 . /15x,
'POROSITY FUNCTION / AREA. . . . . . . .=',i10,
1349 . /15x,
'POROSITY TIME FUNCTION SCALE FACTOR =',1pg20.13,
1350 . /15x,
'POROSITY PRESSURE FUNCTION SCALE FACTOR=',1pg20.13,
1351 . /15x,
'POROSITY AREA FUNCTION SCALE FACTOR . .=',1pg20.13,
1352 . /15x,
'POROSITY FUNCTION / TIME(after contact)=',i10,
1353 . /15x,
'POROSITY FUNCTION / PRESSURE. . . . . .=',i10,
1354 . /15x,
'POROSITY FUNCTION / AREA. . . . . . . .=',i10,
1355 . /15x,
'POROSITY TIME FUNCTION SCALE FACTOR =',1pg20.13,
1356 . /15x,
'POROSITY PRESSURE FUNCTION SCALE FACTOR=',1pg20.13,
1357 . /15x,
'POROSITY AREA FUNCTION SCALE FACTOR . .=',1pg20.13)
1359 . 15x,
'INITIAL SURFACE . . . . . . . . . . . .=',1pg20.13,
1360 . /15x,
'BLOCKAGE IF CONTACT . . . . . . . . . .=',i10,
1361 . /15x,
' =0 NO =1 YES')
1363 . 15x,
'START TIME FOR VENTING TSTART . . . . .=',1pg20.13,
1364 . /15x,
'RELATIVE PRESSURE TO INITIATE LEAKAGE .=',1pg20.13,
1365 . /15x,
' (DPDEF = PDEF - PEXT) ',
1366 . /15x,
'TIME DELAY BEFORE LEAKAGE . . . . . . .=',1pg20.13,
1367 . /15x,
'TIME DELAY FLAG . . . . . . . . . . . .=',i10,
1368 . /15x,
' IF IDTPDEF = 0',
1369 . /15x,
' PRESSURE SHOULD BE OVER PDEF DURING',
1370 . /15x,
' A CUMULATED DTPDEF TIME '
1371 . /15x,
' BEFORE INITIATING LEAKAGE'
1372 . /15x,
' IF IDTPDEF = 1',
1373 . /15x,
' DEFLATION STARTS DTPDEF AFTER',
1374 . /15x,
' DPDEF HAS BEEN REACHED',
1375 . /15x,
'END TIME FOR VENTING TSTOP. . . . . . .=',1pg20.13)
1377 . 15x,
'LEAKAGE COEFFICIENT . . . . . . . . . .=',1pg20.13,
1378 . /15x,
'LEAKAGE AREA. . . . . . . . . . . . . .=',1pg20.13,
1379 . /15x,
'LEAKAGE COEFFICIENT TIME FUNCTION . . .=',i10,
1380 . /15x,
' SCALE FACTOR. . . . . . . . . .=',1pg20.13,
1381 . /15x,
'LEAKAGE AREA TIME FUNCTION. . . . . . .=',i10,
1382 . /15x,
' SCALE FACTOR. . . . . . . . . .=',1pg20.13)
1383 1700
FORMAT(5x,
'FVMBAG PARAMETERS ',
1384 . /5x,
'----------------- ')
1385 1702
FORMAT(15x,
'GAS MESH OPTION . . . . . . . . . . . .=',i10,
1386 . /15x,
' = 1 POLYHEDRON AUTOMESH (obsolete) ',
1387 . /15x,
' = 2 TETRAHEDRON AUTOMESH ',
1388 . /15x,
' = 4 TETRAHEDRON AUTOMESH WITH MESH OUTPUT ',
1389 . /15x,
' = 12 TETRAHEDRON HM AUTOMESH ',
1390 . /15x,
' = 14 TETRAHEDRON HM AUTOMESH WITH MESH OUTPUT')
1391 1704
FORMAT(15x,
'AIRBAG CUTTING FRAME: ')
1392 1705
FORMAT(15x,
'FRAME NUMBER. . . . . . . . . . . . . .=',i10)
1393 1706
FORMAT(15x,
'MESH HOLES. . . . . . . . . . . . . . .=',i10)
1394 1710
FORMAT(15x,
' ORIGIN X COORDINATE. . . . . . . . .=',1pg20.13,
1395 . /15x,
' ORIGIN Y COORDINATE. . . . . . . . .=',1pg20.13,
1396 . /15x,
' ORIGIN Z COORDINATE. . . . . . . . .=',1pg20.13,
1397 . /15x,
' DIRECTION 1 X COORDINATE . . . . . .=',1pg20.13,
1398 . /15x,
' DIRECTION 1 Y COORDINATE . . . . . .=',1pg20.13,
1399 . /15x,
' DIRECTION 1 Z COORDINATE . . . . . .=',1pg20.13,
1400 . /15x,
' DIRECTION 3 X COORDINATE . . . . . .=',1pg20.13,
1401 . /15x,
' DIRECTION 3 Y COORDINATE . . . . . .=',1pg20.13,
1402 . /15x,
' DIRECTION 3 Z COORDINATE . . . . . .=',1pg20.13,
1403 . /15x,
'CUTTING LENGTH IN LOCAL DIRECTION 1 . .=',1pg20.13,
1404 . /15x,
'CUTTING LENGTH IN LOCAL DIRECTION 2 . .=',1pg20.13,
1405 . /15x,
'CUTTING LENGTH IN LOCAL DIRECTION 3 . .=',1pg20.13,
1406 . /15x,
'NUMBER OF CELLS IN LOCAL DIRECTION 1. .=',i10,
1407 . /15x,
'NUMBER OF CELLS IN LOCAL DIRECTION 2. .=',i10,
1408 . /15x,
'NUMBER OF CELLS IN LOCAL DIRECTION 3. .=',i10,
1409 . /15x,
'ADDITIONAL BRICK GROUP NUMBER . . . . .=',i10,
1410 . /15x,
'INTERNAL SURFACE ID. . . . . . . . . .=',i10,
1411 . /15x,
'FLAG FOR MESH ON REFERENCE METRICS. . .=',i10,
1412 . /15x,
'CELL MERGING STRATEGY: ',
1413 . /15x,' global merging type. . . . . . . . .=
',I10,
1414 . /15X,' global merging coefficient . . . . .=
',1PG20.13,
1415 . /15X,' neighborhood merging coefficient . .=
',1PG20.13,
1416 . /15X,'tolerance
for small segment removal . .=
',1PG20.13,
1417 . /15X,'quadratic bulk viscosity. . . . . . . .=
',1PG20.13,
1418 . /15X,'linear bulk viscosity . . . . . . . . .=
',1PG20.13,
1419 . /15X,'minimum height. . . . . . . . . . . . .=
',1PG20.13,
1420 . /15X,'dt scale factor . . . . . . . . . . . .=
',1PG20.13,
1421 . /15X,'minimum timestep. . . . . . . . . . . .=
',1PG20.13,
1422 . /15X,'output level. . . . . . . . . . . . . .=
',I10,
1423 . /15X,'memory parameters:
',
1424 . /15X,' estimated number of airbag layers. .=
',I10,
1425 . /15X,' estimated maximum number of airbag
',
1426 . /15X,' facets per cutting cell. . . . .=
',I10,
1427 . /15X,' estimated maximum number of points
',
1428 . /15X,' per polygon. . . . . . . . . . .=
',I10,
1429 . /15X,'flag
for animation file a000. . . . . .=
',I10)
1430 1789 FORMAT(15X, 'switch option(iswitch). . . . . . . . =
',I10)
1431 1790 FORMAT(15X, ' = 1 switch to uniform pressure
')
1432 1791 FORMAT(15X, ' = 2
merge to single fv inside each chamber
')
1433 2703 FORMAT(15X, ' time(tswitch) . . . . . . . . . . =
',1PG20.13)
1434 2704 FORMAT(15X, ' pressure deviation ratio(pswitch) =
',1PG20.13)
1436 . /5X,'debug options
',
1437 . /5X,'-------------
',
1438 . /5X,' ih3d_flag(h3d output). . . . . . . .=
', I10)