OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
hm_read_monvol_type11_mod Module Reference

Functions/Subroutines

subroutine hm_read_monvol_type11 (t_monvoln, ipm, igeo, itabm1, sensors, xframe, igrbric, unitab, luid, npc, igrsurf, itab, x, pm, geo, ixc, ixtg, lsubmodel)

Function/Subroutine Documentation

◆ hm_read_monvol_type11()

subroutine hm_read_monvol_type11_mod::hm_read_monvol_type11 ( type(monvol_struct_), intent(inout) t_monvoln,
integer, dimension(npropmi, nummat), intent(in) ipm,
integer, dimension(npropgi, numgeo), intent(in) igeo,
integer, dimension(numnod), intent(in) itabm1,
type (sensors_), intent(in) sensors,
dimension(nxframe, numfram+1), intent(in) xframe,
type (group_), dimension(ngrbric), intent(in) igrbric,
type(unit_type_), intent(in) unitab,
integer, intent(in) luid,
integer, dimension(*), intent(in) npc,
type (surf_), dimension(nsurf), intent(inout) igrsurf,
integer, dimension(numnod), intent(in) itab,
dimension(3, numnod), intent(in) x,
dimension(npropm, nummat), intent(in) pm,
dimension(npropg, numgeo), intent(in) geo,
integer, dimension(nixc, numelc), intent(in) ixc,
integer, dimension(nixtg, numeltg), intent(in) ixtg,
type(submodel_data), dimension(nsubmod), intent(in) lsubmodel )

Definition at line 53 of file hm_read_monvol_type11.F.

57C-----------------------------------------------
58C D e s c r i p t i o n
59C-----------------------------------------------
60C Reader for options "/MONVOL/FVMBAG2"
61C-----------------------------------------------
62C M o d u l e s
63C-----------------------------------------------
64 USE unitab_mod
65 USE groupdef_mod , only:group_,surf_
66 USE message_mod
68 USE submodel_mod
69 USE sensor_mod
70C-----------------------------------------------
71C I m p l i c i t T y p e s
72C-----------------------------------------------
73#include "implicit_f.inc"
74C-----------------------------------------------
75C C o m m o n B l o c k s
76C-----------------------------------------------
77C NSURF
78#include "com04_c.inc"
79C NIMV, NRVOLU
80#include "param_c.inc"
81C IIN
82#include "units_c.inc"
83C IPRI
84#include "scr03_c.inc"
85C-----------------------------------------------
86C D u m m y A r g u m e n t s
87C-----------------------------------------------
88 TYPE(UNIT_TYPE_), INTENT(IN) :: UNITAB
89 INTEGER, INTENT(IN) :: LUID, IPM(NPROPMI, NUMMAT), IGEO(NPROPGI, NUMGEO), ITABM1(NUMNOD)
90 INTEGER, INTENT(IN) :: NPC(*), ITAB(NUMNOD), IXC(NIXC, NUMELC), IXTG(NIXTG, NUMELTG)
91 my_real, INTENT(IN) :: x(3, numnod), geo(npropg, numgeo), pm(npropm, nummat),
92 . xframe(nxframe, numfram+1)
93 TYPE (SURF_), INTENT(INOUT), DIMENSION(NSURF) :: IGRSURF
94 TYPE(MONVOL_STRUCT_), INTENT(INOUT) :: T_MONVOLN
95 TYPE (GROUP_) , DIMENSION(NGRBRIC), INTENT(IN) :: IGRBRIC
96 TYPE(SUBMODEL_DATA), DIMENSION(NSUBMOD), INTENT(IN) :: LSUBMODEL
97 TYPE (SENSORS_) ,INTENT(IN) :: SENSORS
98C-----------------------------------------------
99C L o c a l V a r i a b l e s
100C-----------------------------------------------
101 INTEGER :: II, JJ
102 INTEGER :: SURFID, SURFID_INT,SURFID_INJ
103 my_real :: fac_m, fac_l, fac_t, fac_c
104 my_real :: scal_t, scal_p, scal_s, scal_a, scal_d
105 LOGICAL :: FOUND
106 my_real :: sa, rot, vol, vmin, veps, amu, sv
107 INTEGER :: MID_INI, IEQUI, ITTF, MID_INISYS
108 my_real :: hconv, pext, ti, pini
109 my_real :: mwi, cpai, cpbi, cpci, cpdi, cpei, cpfi, r_igc1, cpi, rmwi, cvi, gamai
110 INTEGER :: NJET
111 INTEGER, DIMENSION(:), ALLOCATABLE :: I_INJ, ISENS, IJET, NJ1, NJ2, NJ3,
112 . IPT, IPA, IPZ, I_INJSYS,IVEL
113 my_real, DIMENSION(:), ALLOCATABLE :: fpt, fpa, fpz,fvel
114 INTEGER :: NVENTHOLES, NPORSURF, NVENT
115 CHARACTER(LEN = 40) :: MESS
116 CHARACTER(LEN = 20) :: VENTTITLE
117 INTEGER :: TITREVENT(20)
118 INTEGER, DIMENSION(:), ALLOCATABLE :: IPVENT, IFVENT, IDTPDEF, IPORT, IPORP, IPORA,
119 . IPORT1, IPORP1, IPORA1, IVDP, IBLOCKAGE
120 my_real, DIMENSION(:), ALLOCATABLE :: avent, bvent, tvent, tstope, dpdef, dtpdef,
121 . fport, fporp, fpora, fport1, fporp1, fpora1, fvdp, cleak
122 my_real :: ttfire
123 CHARACTER(LEN = nchartitle) :: TITR1
124 my_real :: mi, rhoi, ti2, especi, cpa, cpb, cpc, cpd, cpe, cpf, mw_tmp, rmwg,
125 . cpg, cvg, gama, shol
126 LOGICAL lFOUND
127 INTEGER IMESH_ALL, NSWITCH, ISWITCH, NBX, NBY, NBZ, IBRIC
128 INTEGER IREF, IGMERG, ILVOUT, NLAYER, NFACMAX, NPPMAX, IFVANI
129 INTEGER I1,I2,I3, I4, NBRIC, NN, ISH34
130 my_real tswitch, pswitch, lx, ly, lz, cnmerg, qa, qb, ptole,hmin, cfl_coef, dtmin, sjet, cgmerg
131 my_real nx, ny, nz, xx, yy, zz, x13, y13, z13, x24, y24, z24
132 my_real origx, origy, origz, dir2x, dir2y, dir2z, dir, ds, dirx, diry, dirz
133 INTEGER :: KMESH,ID_DT_OPTION, IH3D_FLAG
134 LOGICAL :: IS_AVAILABLE
135C-----------------------------------------------
136C E x t e r n a l F u n c t i o n s
137C-----------------------------------------------
138 INTEGER USR2SYS
139 EXTERNAL usr2sys
140C-----------------------------------------------
141C B e g i n n i n g o f s o u r c e
142C-----------------------------------------------
143 mess = 'MONITORED VOLUME DEFINITION '
144 lfound=.false.
145 id_dt_option=2
146 rmwi = zero
147
148C =======
149C Reading
150C =======
151! Line 1
152 CALL hm_get_intv('surf_IDex', surfid, is_available, lsubmodel)
153 CALL hm_get_intv('surf_IDin', surfid_int, is_available, lsubmodel)
154 CALL hm_get_floatv('HEAT_T0',hconv, is_available, lsubmodel, unitab)
155 CALL hm_get_intv('IH3D', ih3d_flag, is_available, lsubmodel)
156
157! Line 2
158 CALL hm_get_intv('mat_ID', mid_ini, is_available, lsubmodel)
159 CALL hm_get_floatv('Pext', pext, is_available, lsubmodel, unitab)
160 CALL hm_get_floatv('T0', ti, is_available, lsubmodel, unitab)
161 CALL hm_get_intv('Ittf', ittf, is_available, lsubmodel)
162! Injectors
163 CALL hm_get_intv('Njet', njet, is_available, lsubmodel)
164
165 t_monvoln%NJET = njet
166 t_monvoln%IVOLU(8) = njet
167 IF (njet > 0) THEN
168 ALLOCATE(t_monvoln%IBAGJET(nibjet, njet))
169 t_monvoln%IBAGJET(1:nibjet, 1:njet) = 0
170 ALLOCATE(t_monvoln%RBAGJET(nrbjet, njet))
171 t_monvoln%RBAGJET(1:nrbjet, 1:njet) = zero
172 ENDIF
173 IF (njet > 0) THEN
174 ALLOCATE(i_inj(njet), isens(njet), ijet(njet), nj1(njet), nj2(njet), nj3(njet))
175 ALLOCATE(ipt(njet), ipa(njet), ipz(njet), fpt(njet), fpa(njet), fpz(njet))
176 ALLOCATE(ivel(njet),fvel(njet))
177
178 i_inj(1:njet) = 0
179 isens(1:njet) = 0
180 ijet(1:njet) = 0
181 nj1(1:njet) = 0
182 nj2(1:njet) = 0
183 nj3(1:njet) = 0
184 ipt(1:njet) = 0
185 ipa(1:njet) = 0
186 ipz(1:njet) = 0
187 fpt(1:njet) = zero
188 fpa(1:njet) = zero
189 fpz(1:njet) = zero
190 ivel(1:njet) = 0
191 fvel(1:njet) = zero
192 DO ii = 1, njet
193 CALL hm_get_int_array_index('inject_ID', i_inj(ii), ii, is_available, lsubmodel)
194 CALL hm_get_int_array_index('sens_ID', isens(ii), ii, is_available, lsubmodel)
195 CALL hm_get_int_array_index('surf_IDinj', ijet(ii), ii, is_available, lsubmodel)
196 ENDDO
197 ENDIF
198! Ventholes and porous surfaces
199 CALL hm_get_intv('Nvent', nventholes, is_available, lsubmodel)
200 CALL hm_get_intv('Nporsurf', nporsurf, is_available, lsubmodel)
201
202 nvent = nventholes + nporsurf
203 t_monvoln%IVOLU(11) = nvent
204 t_monvoln%NVENT = nvent
205 t_monvoln%NPORSURF = nporsurf
206 IF (nvent > 0) THEN
207 ALLOCATE(t_monvoln%IBAGHOL(nibhol, nvent))
208 t_monvoln%IBAGHOL(1:nibhol, 1:nvent) = 0
209 ALLOCATE(t_monvoln%RBAGHOL(nrbhol, nvent))
210 t_monvoln%RBAGHOL(1:nrbhol, 1:nvent) = zero
211 ENDIF
212! IF (NVENT > 0) THEN
213 ALLOCATE(ipvent(nvent), ifvent(nvent), avent(nvent), bvent(nvent))
214 ALLOCATE(tvent(nvent), tstope(nvent), dpdef(nvent), dtpdef(nvent),
215 . idtpdef(nvent))
216 ALLOCATE(iport(nvent), iporp(nvent), ipora(nvent), fport(nvent),
217 . fporp(nvent), fpora(nvent))
218 ALLOCATE(iport1(nvent), iporp1(nvent), ipora1(nvent), fport1(nvent),
219 . fporp1(nvent), fpora1(nvent))
220 ALLOCATE(iblockage(nvent), cleak(nvent))
221 ALLOCATE(ivdp(nvent), fvdp(nvent))
222! ENDIF
223 IF (nventholes > 0) THEN
224 DO ii = 1, nventholes
225 venttitle = ''
226 CALL hm_get_int_array_index('surf_IDv', ipvent(ii), ii, is_available, lsubmodel)
227 CALL hm_get_int_array_index('Iform', ifvent(ii), ii, is_available, lsubmodel)
228 CALL hm_get_float_array_index('Avent', avent(ii), ii, is_available, lsubmodel, unitab)
229 CALL hm_get_float_array_index('Bvent', bvent(ii), ii, is_available, lsubmodel, unitab)
230 CALL hm_get_string_index('vent_title', venttitle, ii, 20, is_available)
231 IF (ifvent(ii) == 0) ifvent(ii) = 1
232 CALL hm_get_float_array_index('Tstart_arr_X', tvent(ii), ii, is_available, lsubmodel, unitab)
233 CALL hm_get_float_array_index('Tstop_arr_X', tstope(ii), ii, is_available, lsubmodel, unitab)
234 CALL hm_get_float_array_index('ABG_dPdef', dpdef(ii), ii, is_available, lsubmodel, unitab)
235 CALL hm_get_float_array_index('ABG_dtPdef', dtpdef(ii), ii, is_available, lsubmodel, unitab)
236 CALL hm_get_int_array_index('I_dtPdef_arr', idtpdef(ii), ii, is_available, lsubmodel)
237 DO jj = 1, 20
238 titrevent(jj) = iachar(venttitle(jj:jj))
239 t_monvoln%IBAGHOL(jj + 14, ii) = titrevent(jj)
240 ENDDO
241 CALL hm_get_int_array_index('fct_IDt', iport(ii), ii, is_available, lsubmodel)
242 CALL hm_get_int_array_index('fct_IDP', iporp(ii), ii, is_available, lsubmodel)
243 CALL hm_get_int_array_index('fct_IDA', ipora(ii), ii, is_available, lsubmodel)
244 CALL hm_get_float_array_index('Fscalet', fport(ii), ii, is_available, lsubmodel, unitab)
245 CALL hm_get_float_array_index('FscaleP', fporp(ii), ii, is_available, lsubmodel, unitab)
246 CALL hm_get_float_array_index('FscaleA', fpora(ii), ii, is_available, lsubmodel, unitab)
247
248 CALL hm_get_int_array_index("fct_IDt'", iport1(ii), ii, is_available, lsubmodel)
249 CALL hm_get_int_array_index("fct_IDP'", iporp1(ii), ii, is_available, lsubmodel)
250 CALL hm_get_int_array_index("fct_IDA'", ipora1(ii), ii, is_available, lsubmodel)
251 CALL hm_get_float_array_index("Fscalet'", fport1(ii), ii, is_available, lsubmodel, unitab)
252 CALL hm_get_float_array_index("FscaleP'", fporp1(ii), ii, is_available, lsubmodel, unitab)
253 CALL hm_get_float_array_index("FscaleA'", fpora1(ii), ii, is_available, lsubmodel, unitab)
254
255 IF (ifvent(ii) == 2) THEN
256 CALL hm_get_int_array_index('fct_IDV', ivdp(ii), ii, is_available, lsubmodel)
257 CALL hm_get_float_array_index('FscaleV', fvdp(ii), ii, is_available, lsubmodel, unitab)
258 ELSE
259 ivdp(ii) = 0
260 fvdp(ii) = zero
261 ENDIF
262 ENDDO
263 ENDIF
264 IF (nporsurf > 0) THEN
265 DO ii = 1, nporsurf
266 venttitle = ''
267 CALL hm_get_int_array_index('surf_IDps', ipvent(nventholes + ii), ii, is_available, lsubmodel)
268 CALL hm_get_int_array_index('Iformps', ifvent(nventholes + ii), ii, is_available, lsubmodel)
269 CALL hm_get_int_array_index('Iblockage', iblockage(nventholes + ii), ii, is_available, lsubmodel)
270 CALL hm_get_string_index('surface_title', venttitle, ii, 20, is_available)
271 DO jj = 1, 20
272 titrevent(jj) = iachar(venttitle(jj:jj))
273 t_monvoln%IBAGHOL(jj + 14, nventholes + ii) = titrevent(jj)
274 ENDDO
275
276 CALL hm_get_float_array_index('Tstart_arr_Y', tvent(nventholes + ii), ii, is_available, lsubmodel, unitab)
277 CALL hm_get_float_array_index('Tstop_arr_Y', tstope(nventholes + ii), ii, is_available, lsubmodel, unitab)
278 CALL hm_get_float_array_index('ABG_dPdef_ps', dpdef(nventholes + ii), ii, is_available, lsubmodel, unitab)
279 CALL hm_get_float_array_index('ABG_dtPdef_ps', dtpdef(nventholes + ii), ii, is_available, lsubmodel, unitab)
280 CALL hm_get_int_array_index('I_dtPdef_arr_ps', idtpdef(nventholes + ii), ii, is_available, lsubmodel)
281 cleak(nventholes + ii) = zero
282 avent(nventholes + ii) = zero
283 iport(nventholes + ii) = 0
284 ipora(nventholes + ii) = 0
285 fport(nventholes + ii) = zero
286 fpora(nventholes + ii) = zero
287 IF (ifvent(nventholes + ii) == 0) ifvent(nventholes + ii) = 1
288 IF (ifvent(nventholes + ii) == 3) ifvent(nventholes + ii) = 5
289 ivdp(nventholes + ii) = 0
290 fvdp(nventholes + ii) = zero
291 IF (ifvent(nventholes + ii) == 2) THEN
292 CALL hm_get_int_array_index('ABG_fct', ivdp(nventholes + ii), ii, is_available, lsubmodel)
293 CALL hm_get_float_array_index('BB10', fvdp(nventholes + ii), ii, is_available, lsubmodel, unitab)
294 ENDIF
295 ENDDO
296 ENDIF
297 !Specific lines to Iyp=8 (FVMBAG1)
298 kmesh = 14
299 imesh_all = 0
300 CALL hm_get_floatv('Cgmerg', cgmerg, is_available, lsubmodel, unitab)
301 CALL hm_get_floatv('Tswitch', tswitch, is_available, lsubmodel, unitab)
302 CALL hm_get_intv('Iswitch', iswitch, is_available, lsubmodel)
303 CALL hm_get_floatv('Pswitch', pswitch, is_available, lsubmodel, unitab)
304
305 CALL hm_get_floatv('Dtsca', cfl_coef, is_available, lsubmodel, unitab)
306 CALL hm_get_floatv('Dtmin', dtmin, is_available, lsubmodel, unitab)
307
308 jj = 1
309
310 dirx = xframe(7, jj)
311 diry = xframe(8, jj)
312 dirz = xframe(9, jj)
313 dir2x = xframe(1, jj)
314 dir2y = xframe(2, jj)
315 dir2z = xframe(3, jj)
316 origx = xframe(10, jj)
317 origy = xframe(11, jj)
318 origz = xframe(12, jj)
319
320C =====
321C Units
322C =====
323 fac_m = unitab%FAC_M(luid)
324 fac_l = unitab%FAC_L(luid)
325 fac_t = unitab%FAC_T(luid)
326 fac_c = fac_m / (fac_l * fac_t * fac_t)
327
328C ================
329C Check operations
330C ================
331C External surface check
332 t_monvoln%IVOLU(4) = 0
333 t_monvoln%EXT_SURFID = 0
334 found = .false.
335 DO ii = 1, nsurf
336 IF (surfid == igrsurf(ii)%ID) THEN
337 t_monvoln%IVOLU(4) = ii
338 t_monvoln%EXT_SURFID = ii
339 found = .true.
340 EXIT
341 ENDIF
342 ENDDO
343 IF (.NOT. found) THEN
344 CALL freerr(3)
345 ELSEIF (igrsurf(t_monvoln%IVOLU(4))%ISH4N3N == 0) THEN
346 CALL ancmsg(msgid = 18, anmode = aninfo, msgtype = msgerror,
347 . i1 = t_monvoln%ID, c1 = t_monvoln%TITLE, i2 = surfid)
348 CALL freerr(3)
349 ENDIF
350
351C Check surface closure
352 CALL monvol_check_surfclose(t_monvoln, itab, igrsurf(t_monvoln%EXT_SURFID), x)
353C Set all normal on same side
354 CALL monvol_orient_surf(t_monvoln, t_monvoln%TITLE, t_monvoln%IVOLU, itab,
355 . igrsurf(t_monvoln%EXT_SURFID),ixc, ixtg, x, 11)
356C Compute Monvon volume
357 CALL monvol_compute_volume(t_monvoln, t_monvoln%TITLE, t_monvoln%IVOLU, igrsurf(t_monvoln%EXT_SURFID),
358 . itab, x, pm, geo, ixc, ixtg,
359 . sa, rot, vol, vmin, veps, sv)
360C Reverse all normals to ensure positive volume
361 CALL monvol_reverse_normals(t_monvoln, t_monvoln%TITLE, t_monvoln%IVOLU, itab,
362 . igrsurf(t_monvoln%EXT_SURFID),ixc,ixtg,vol, x, 11)
363
364 IF (ittf < 0 .OR. ittf > 3) THEN
365 CALL ancmsg(msgid = 773, anmode = aninfo, msgtype = msgerror,
366 . i1 = t_monvoln%ID, c1 = t_monvoln%TITLE)
367 ENDIF
368 IF (ti == zero) THEN
369 ti = twohundred95
370 ENDIF
371! Find material
372 t_monvoln%IVOLU(66) = 0
373 found = .false.
374 DO ii = 1, nummat
375 IF (ipm(1, ii) == mid_ini .AND. ipm(2, ii) == 999) THEN
376 mwi = pm(20, ii) * fac_m
377 cpai = pm(21, ii) * fac_l * fac_l / (fac_t * fac_t)
378 cpbi = pm(22, ii) * fac_l * fac_l / (fac_t * fac_t)
379 cpci = pm(23, ii) * fac_l * fac_l / (fac_t * fac_t)
380 cpdi = pm(24, ii) * fac_l * fac_l / (fac_t * fac_t)
381 cpei = pm(25, ii) * fac_l * fac_l / (fac_t * fac_t)
382 cpfi = pm(26, ii) * fac_l * fac_l / (fac_t * fac_t)
383 r_igc1 = pm(27, ii)
384 cpi = cpai + cpbi * ti + cpci * ti * ti + cpdi * ti * ti * ti +
385 . cpei / (ti * ti) + cpfi * ti * ti * ti * ti
386 rmwi = r_igc1 / mwi
387 cvi = cpi - rmwi
388 t_monvoln%IVOLU(66) = ii
389 IF (cvi == zero) THEN
390 CALL ancmsg(msgid = 709, msgtype = msgerror, anmode = aninfo,
391 . i1 = t_monvoln%ID, c1 = t_monvoln%TITLE)
392 gamai = zero
393 ELSE
394 gamai = cpi / cvi
395 END IF
396 found = .true.
397 EXIT
398 ENDIF
399 ENDDO
400 IF (.NOT. found) THEN
401 CALL ancmsg(msgid = 699, anmode = aninfo, msgtype = msgerror,
402 . i2 = mid_ini, i1 = t_monvoln%ID, c1 = t_monvoln%TITLE)
403 ENDIF
404! Injectors
405 IF (njet > 0) THEN
406 ALLOCATE(i_injsys(njet))
407 DO ii = 1, njet
408! Check injector property
409 i_injsys(ii) = 0
410 found = .false.
411 DO jj = 1, numgeo
412 IF (igeo(1, jj) == i_inj(ii)) THEN
413 i_injsys(ii) = jj
414 found = .true.
415 EXIT
416 ENDIF
417 ENDDO
418 IF (.NOT. found) THEN
419 CALL ancmsg(msgid = 723, anmode = aninfo, msgtype = msgerror,
420 . i2 = i_inj(ii), i1 = t_monvoln%ID, c1 = t_monvoln%TITLE)
421 ENDIF
422 ENDDO
423 ENDIF
424
425
426 t_monvoln%IVOLU(61)=0
427
428C internal surface check
429 t_monvoln%IVOLU(67)=0
430 t_monvoln%INT_SURFID = 0
431 IF(surfid_int>0) THEN
432 DO ii=1,nsurf
433 IF (surfid_int==igrsurf(ii)%ID) THEN
434 t_monvoln%IVOLU(67) = ii
435 t_monvoln%INT_SURFID = ii
436 EXIT
437 ENDIF
438 ENDDO
439 ENDIF
440
441 nbric=0
442 IF(t_monvoln%IVOLU(61)/=0) nbric=igrbric(t_monvoln%IVOLU(61))%ID
443 surfid_int=0
444 IF(t_monvoln%INT_SURFID/=0) surfid_int=igrsurf(t_monvoln%INT_SURFID)%ID
445
446 !-----------------------------------------------
447
448 !IH3D_FLAG
449 IF(ih3d_flag /= 0)THEN
450 IF(ih3d_flag /= -1 .AND. ih3d_flag /= 1)THEN
451 ih3d_flag = -1
452 ENDIF
453 ENDIF
454
455C ==============
456C Default values
457C ==============
458 scal_t = one
459 scal_p = one
460 scal_s = one
461 scal_a = one
462 scal_d = one
463 amu = em02
464 IF (pext == zero) THEN
465 pext = 101325.d0 * (unitab%FAC_L_WORK * unitab%FAC_T_WORK * unitab%FAC_T_WORK) / unitab%FAC_M_WORK
466 ENDIF
467 pini = pext
468 lx = zero
469 ly = zero
470 lz = zero
471 ibric = 0
472 nbx = 0
473 nby = 0
474 nbz = 0
475 iref = 0
476 igmerg = 1
477 cnmerg = em04
478 ptole = zero
479 qa = zero
480 qb = zero
481 hmin = zero
482 ilvout = 0
483 nlayer = 0
484 nfacmax = 0
485 nppmax = 0
486 ifvani = 0
487 nswitch = 0
488! Injectors
489 IF (njet > 0) THEN
490 DO ii = 1, njet
491 IF (ijet(ii) > 0) THEN
492 IF (fpt(ii) == zero) fpt(ii) = one
493 IF (fpa(ii) == zero) fpa(ii) = one
494 IF (fpz(ii) == zero) fpz(ii) = one
495 ELSE
496 fpt(ii) = one
497 fpa(ii) = one
498 fpz(ii) = one
499 ENDIF
500 ivel(ii) = 0
501 fvel(ii) = three100 * unitab%FAC_T_WORK / unitab%FAC_L_WORK
502 ENDDO
503 ENDIF
504! Ventholes
505 IF (nventholes > 0) THEN
506 DO ii = 1, nventholes
507 IF (ipvent(ii) == 0) THEN
508 bvent(ii) = zero
509 ENDIF
510 IF (fport(ii) == zero) fport(ii) = one
511 IF (fporp(ii) == zero) fporp(ii) = one
512 IF (fpora(ii) == zero) fpora(ii) = one
513 IF (fport1(ii) == zero) fport1(ii) = one
514 IF (fporp1(ii) == zero) fporp1(ii) = one
515 IF (fpora1(ii) == zero) fpora1(ii) = one
516 ENDDO
517 ENDIF
518
519!------------------------------------------------------!
520 DO ii=1,njet
521 t_monvoln%IBAGJET(14,ii) = 0
522 lfound=.false.
523 DO jj=1,nsurf
524 IF (ijet(ii)==igrsurf(jj)%ID) THEN
525 t_monvoln%IBAGJET(14, ii) = jj
526 lfound=.true.
527 EXIT
528 ENDIF
529 ENDDO
530 ijet(ii) = 0
531 IF(.NOT.lfound)CALL ancmsg(msgid=847,anmode=aninfo,msgtype=msgerror,i2=ijet(ii),i1=t_monvoln%ID,c1=t_monvoln%TITLE)
532 DO jj=1,nfunct
533 IF (ivel(ii)==npc(jj)) t_monvoln%IBAGJET(11, ii)=jj
534 ENDDO
535 IF (fvel(ii) == zero) fvel(ii) = one
536 ENDDO
537
538 IF(tswitch == zero) tswitch=ep20
539
540 IF (nbx==0) nbx=1
541 IF (nby==0) nby=1
542 IF (nbz==0) nbz=1
543
544
545 IF (igmerg==0) igmerg=1
546 IF (cgmerg == zero) cgmerg = em01
547 IF (ptole==zero) ptole=em5
548 IF (nlayer ==0) nlayer =10
549 IF (nfacmax==0) nfacmax=20
550 IF (nppmax ==0) nppmax =20
551
552 IF(cfl_coef/=zero .AND. dtmin/=zero)id_dt_option=1
553 IF(cfl_coef==zero)cfl_coef=zep9
554 IF(dtmin==zero)dtmin=em20
555
556 !------------------------------------------------------!
557C =====
558C Store
559C =====
560 t_monvoln%IMESH_ALL = imesh_all
561 t_monvoln%IVOLU(8) = njet
562 iequi = 1
563 t_monvoln%IVOLU(15) = iequi
564 t_monvoln%IVOLU(17) = ittf
565 t_monvoln%IVOLU(27) = id_dt_option
566 t_monvoln%IVOLU(30) = kmesh
567 t_monvoln%IVOLU(35)=nbx*nby
568 t_monvoln%IVOLU(37) = nswitch
569 t_monvoln%IVOLU(40)=nlayer
570 t_monvoln%IVOLU(41)=nfacmax
571 t_monvoln%IVOLU(42)=nppmax
572 t_monvoln%IVOLU(44)=ilvout
573 t_monvoln%IVOLU(54)=nbx
574 t_monvoln%IVOLU(55)=nby
575 t_monvoln%IVOLU(59)=iref
576 t_monvoln%IVOLU(60)=igmerg
577 t_monvoln%IVOLU(65)=nbz
578 t_monvoln%IVOLU(74) = iswitch !Parameter for autoswitching to uniform pressure airbag
579 t_monvoln%IVOLU(75) = ih3d_flag
580
581 t_monvoln%RVOLU(19) = hconv
582 t_monvoln%RVOLU(26) = one / scal_t
583 t_monvoln%RVOLU(27) = one / scal_p
584 t_monvoln%RVOLU(28) = one / scal_s
585 t_monvoln%RVOLU(29) = one / scal_a
586 t_monvoln%RVOLU(30) = one / scal_d
587 t_monvoln%RVOLU(31)=cgmerg
588 t_monvoln%RVOLU(34)=cnmerg
589 t_monvoln%RVOLU(35)=dirx
590 t_monvoln%RVOLU(36)=diry
591 t_monvoln%RVOLU(37)=dirz
592 t_monvoln%RVOLU(38)=dir2x
593 t_monvoln%RVOLU(39)=dir2y
594 t_monvoln%RVOLU(40)=dir2z
595 t_monvoln%RVOLU(41)=origx
596 t_monvoln%RVOLU(42)=origy
597 t_monvoln%RVOLU(43)=origz
598 t_monvoln%RVOLU(44)=lx
599 t_monvoln%RVOLU(45)=ly
600 t_monvoln%RVOLU(46)=qa
601 t_monvoln%RVOLU(47)=qb
602 t_monvoln%RVOLU(50)=ptole
603 t_monvoln%RVOLU(51)=hmin
604 t_monvoln%RVOLU(53)=lz
605 t_monvoln%RVOLU(70) = tswitch
606 t_monvoln%RVOLU(71) = cfl_coef
607 t_monvoln%RVOLU(72) = dtmin
608 t_monvoln%RVOLU(73) = pswitch
609
610
611 mid_inisys = t_monvoln%IVOLU(66)
612 IF (mid_inisys /= 0) THEN
613 mwi = pm(20, mid_inisys)
614 cpai = pm(21, mid_inisys)
615 cpbi = pm(22, mid_inisys)
616 cpci = pm(23, mid_inisys)
617 cpdi = pm(24, mid_inisys)
618 cpei = pm(25, mid_inisys)
619 cpfi = pm(26, mid_inisys)
620 r_igc1 = pm(27, mid_inisys)
621 ELSE
622 mwi = zero
623 cpai = zero
624 cpbi = zero
625 cpci = zero
626 cpdi = zero
627 cpei = zero
628 cpfi = zero
629 r_igc1 = zero
630 CALL ancmsg(msgid= 7 18, anmode = aninfo, msgtype = msgerror,
631 . i1 = t_monvoln%ID, c1 = t_monvoln%TITLE)
632 ENDIF
633 t_monvoln%RVOLU(7)=cpai
634 t_monvoln%RVOLU(8)=cpbi
635 t_monvoln%RVOLU(9)=cpci
636 t_monvoln%RVOLU(56)=cpdi
637 t_monvoln%RVOLU(57)=cpei
638 t_monvoln%RVOLU(58)=cpfi
639 t_monvoln%RVOLU(59)=mwi
640 cpi = cpai + cpbi * ti + cpci * ti * ti + cpdi * ti * ti * ti +
641 . cpei / (ti * ti) + cpfi * ti * ti * ti * ti
642 IF (mwi == zero) THEN
643 gamai = zero
644 ELSE
645 rmwi = r_igc1 / mwi
646 cvi = cpi - rmwi
647 gamai = cpi / cvi
648 ENDIF
649 mi = pini * (vol + veps) / (rmwi * ti)
650 t_monvoln%RVOLU(1) = gamai
651 t_monvoln%RVOLU(3) = pext
652 t_monvoln%RVOLU(4) = vol + veps
653 t_monvoln%RVOLU(11) = mi
654 t_monvoln%RVOLU(12) = pini
655 t_monvoln%RVOLU(13) = ti
656 t_monvoln%RVOLU(14) = rmwi * mi
657 t_monvoln%RVOLU(17) = veps
658 t_monvoln%RVOLU(20) = mi
659 t_monvoln%RVOLU(25) = ti
660 t_monvoln%RVOLU(61) = gamai
661 rhoi = pini / (ti * rmwi)
662 t_monvoln%RVOLU(62) = rhoi
663 t_monvoln%RVOLU(10) = rmwi
664 ti2=ti*ti
665 especi=ti*(cpai+half*cpbi*ti+third*cpci*ti2-rmwi)
666 especi=especi+fourth*cpdi*ti2*ti2-cpei/ti+one_fifth*cpfi*ti2*ti2*ti
667 t_monvoln%RVOLU(63)= especi+rmwi*ti
668 t_monvoln%RVOLU(64)= zero
669 t_monvoln%RVOLU(65)= zero
670 t_monvoln%RVOLU(66)= especi
671! Injectors
672 ttfire = infinity
673 DO ii = 1, njet
674 !------------------------------------------------------!
675 t_monvoln%RBAGJET(15,ii)=fvel(ii)
676 !------------------------------------------------------!
677 t_monvoln%IBAGJET(13, ii) = i_injsys(ii)
678 t_monvoln%RBAGJET(1, ii) = zero
679 t_monvoln%RBAGJET(2, ii) = geo(203, i_injsys(ii))
680 t_monvoln%RBAGJET(3, ii) = geo(204, i_injsys(ii))
681 t_monvoln%RBAGJET(4, ii) = geo(205, i_injsys(ii))
682 t_monvoln%RBAGJET(16, ii) = geo(206, i_injsys(ii))
683 t_monvoln%RBAGJET(17, ii) = geo(207, i_injsys(ii))
684 t_monvoln%RBAGJET(18, ii) = geo(208, i_injsys(ii))
685 t_monvoln%RBAGJET(19, ii) = geo(202, i_injsys(ii))
686 t_monvoln%RBAGJET(5, ii) = zero !FMASS
687 t_monvoln%RBAGJET(6, ii) = zero !FTEMP
688 t_monvoln%RBAGJET(12, ii) = fpt(ii)
689 t_monvoln%RBAGJET(13, ii) = fpa(ii)
690 t_monvoln%RBAGJET(14, ii) = fpz(ii)
691 t_monvoln%IBAGJET(2, ii) = 0 !IFLU
692 t_monvoln%IBAGJET(3, ii) = 0 !ITEMP
693 t_monvoln%IBAGJET(4, ii) = isens(ii)
694! Jetting
695 IF (ijet(ii) > 0) THEN
696 t_monvoln%IBAGJET(5, ii) = usr2sys(nj1(ii), itabm1, mess, t_monvoln%ID)
697 t_monvoln%IBAGJET(6, ii) = usr2sys(nj2(ii), itabm1, mess, t_monvoln%ID)
698 IF(nj3(ii) /= 0) THEN
699 t_monvoln%IBAGJET(7, ii) = usr2sys(nj3(ii), itabm1, mess, t_monvoln%ID)
700 ENDIF
701 found = .false.
702 DO jj= 1, nfunct
703 IF (ipt(ii) == npc(jj)) THEN
704 t_monvoln%IBAGJET(8, ii) = jj
705 found = .true.
706 EXIT
707 ENDIF
708 ENDDO
709 IF (.NOT. found) THEN
710 CALL ancmsg(msgid = 12, anmode = aninfo, msgtype = msgerror,
711 . i2 = ipt(ii), i1 = t_monvoln%ID, c1 = t_monvoln%TITLE)
712 ENDIF
713 found = .false.
714 DO jj = 1, nfunct
715 IF (ipa(ii) == npc(jj)) THEN
716 t_monvoln%IBAGJET(9, ii) = jj
717 found = .true.
718 EXIT
719 ENDIF
720 ENDDO
721 IF (.NOT. found) THEN
722 CALL ancmsg(msgid = 13, anmode = aninfo, msgtype = msgerror,
723 . i2 = ipa(ii), i1 = t_monvoln%ID, c1 = t_monvoln%TITLE)
724 ENDIF
725 found = .false.
726 DO jj = 1, nfunct
727 IF (ipz(ii) == npc(jj)) THEN
728 t_monvoln%IBAGJET(10, ii) = jj
729 found = .true.
730 EXIT
731 ENDIF
732 ENDDO
733 IF (.NOT. found) THEN
734 CALL ancmsg(msgid = 14, anmode = aninfo, msgtype = msgerror,
735 . i2 = ipz(ii), i1 = t_monvoln%ID, c1 = t_monvoln%TITLE)
736 ENDIF
737 ENDIF
738 IF (isens(ii) > 0) THEN
739 found = .false.
740 DO jj = 1, sensors%NSENSOR
741 IF (isens(ii) == sensors%SENSOR_TAB(jj)%SENS_ID) THEN
742 t_monvoln%IBAGJET(4, ii) = jj
743 IF (sensors%SENSOR_TAB(jj)%TCRIT < ttfire) ttfire = sensors%SENSOR_TAB(jj)%TCRIT
744 found = .true.
745 EXIT
746 ENDIF
747 ENDDO
748 IF (.NOT. found) THEN
749 CALL ancmsg(msgid = 17, anmode =aninfo, msgtype = msgerror,
750 . i2 = isens(ii), i1 = t_monvoln%ID, c1 = t_monvoln%TITLE)
751 ENDIF
752 ENDIF
753 cpa = t_monvoln%RBAGJET(2, ii)
754 cpb = t_monvoln%RBAGJET(3, ii)
755 cpc = t_monvoln%RBAGJET(4, ii)
756 cpd = t_monvoln%RBAGJET(16, ii)
757 cpe = t_monvoln%RBAGJET(17, ii)
758 cpf = t_monvoln%RBAGJET(18, ii)
759 mw_tmp = t_monvoln%RBAGJET(19, ii)
760 rmwg = r_igc1 / mw_tmp
761 cpg = cpa + cpb*ti+cpc*ti*ti+cpd*ti*ti*ti+
762 . cpe/(ti*ti)+cpf*ti*ti*ti*ti
763 cvg = cpg - rmwg
764 gama = cpg / cvg
765 t_monvoln%RBAGJET(1, ii) = rmwg
766 ENDDO
767 IF (ttfire == infinity) ttfire = zero
768 t_monvoln%RVOLU(49) = ttfire
769! Ventholes
770 DO ii = 1, nventholes
771 t_monvoln%RBAGHOL(7, ii) = fport(ii)
772 t_monvoln%RBAGHOL(8, ii) = fporp(ii)
773 t_monvoln%RBAGHOL(9, ii) = fpora(ii)
774 t_monvoln%RBAGHOL(10, ii) = fport1(ii)
775 t_monvoln%RBAGHOL(11, ii) = fporp1(ii)
776 t_monvoln%RBAGHOL(12, ii) = fpora1(ii)
777
778 t_monvoln%IBAGHOL(1, ii) = 0
779 IF (ifvent(ii) == 1) t_monvoln%IBAGHOL(10, ii) = 2
780 IF (ifvent(ii) == 2) t_monvoln%IBAGHOL(10, ii) = 3
781 IF (ifvent(ii) == 3) t_monvoln%IBAGHOL(10, ii) = 1
782
783 t_monvoln%IBAGHOL(11, ii) = idtpdef(ii)
784
785 t_monvoln%IBAGHOL(12, ii) = 0
786
787 IF (ipvent(ii) == 0) THEN
788 t_monvoln%IBAGHOL(2, ii) = 0
789 ELSE
790 t_monvoln%IBAGHOL(2, ii) = 0
791 found = .false.
792 DO jj = 1, nsurf
793 IF (ipvent(ii) == igrsurf(jj)%ID) THEN
794 t_monvoln%IBAGHOL(2, ii) = jj
795 found = .true.
796 EXIT
797 ENDIF
798 ENDDO
799 IF(.NOT. found)THEN
800 CALL ancmsg(msgid = 532, anmode = aninfo, msgtype = msgerror,
801 . i2 = ipvent(ii), i1 = t_monvoln%ID, c1 = t_monvoln%TITLE)
802 ELSEIF(igrsurf(t_monvoln%IBAGHOL(2, ii))%ISH4N3N == 0) THEN
803 CALL ancmsg(msgid = 330, anmode = aninfo, msgtype = msgerror,
804 . i1 = t_monvoln%ID, c1 = t_monvoln%TITLE)
805 ENDIF
806 IF (avent(ii) == zero) avent(ii) = one
807 ENDIF
808 IF (avent(ii) == zero) dpdef(ii) = infinity
809 IF (avent(ii) == zero) tvent(ii) = infinity
810 IF (dpdef(ii) == zero .AND. dtpdef(ii) == zero .AND. tvent(ii) == zero) THEN
811 t_monvoln%IBAGHOL(1, ii) = 1
812 ENDIF
813 t_monvoln%RBAGHOL(1, ii) = dpdef(ii)
814 t_monvoln%RBAGHOL(2, ii) = avent(ii)
815 t_monvoln%RBAGHOL(3, ii) = tvent(ii)
816 t_monvoln%RBAGHOL(4, ii) = dtpdef(ii)
817 t_monvoln%RBAGHOL(6, ii) = bvent(ii)
818 IF (ivdp(ii) /= 0 .AND. fvdp(ii) == zero) fvdp(ii) = one
819 t_monvoln%RBAGHOL(13, ii) = fvdp(ii)
820 IF (tstope(ii) == zero) tstope(ii) = infinity
821 t_monvoln%RBAGHOL(14, ii) = tstope(ii)
822C
823 t_monvoln%IBAGHOL(3, ii) = -1
824 t_monvoln%IBAGHOL(4, ii) = -1
825 t_monvoln%IBAGHOL(5, ii) = -1
826 t_monvoln%IBAGHOL(6, ii) = -1
827 t_monvoln%IBAGHOL(7, ii) = -1
828 t_monvoln%IBAGHOL(8, ii) = -1
829 t_monvoln%IBAGHOL(9, ii) = -1
830 DO jj = 1, nfunct
831 IF (iport(ii) == npc(jj)) t_monvoln%IBAGHOL(3, ii) = jj
832 IF (iporp(ii) == npc(jj)) t_monvoln%IBAGHOL(4, ii) = jj
833 IF (ipora(ii) == npc(jj)) t_monvoln%IBAGHOL(5, ii) = jj
834 IF (iport1(ii) == npc(jj)) t_monvoln%IBAGHOL(6, ii) = jj
835 IF (iporp1(ii) == npc(jj)) t_monvoln%IBAGHOL(7, ii) = jj
836 IF (ipora1(ii) == npc(jj)) t_monvoln%IBAGHOL(8, ii) = jj
837 IF (ivdp(ii) == npc(jj)) t_monvoln%IBAGHOL(9, ii) = jj
838 ENDDO
839 IF (iport(ii) == 0) t_monvoln%IBAGHOL(3, ii) = 0
840 IF (iporp(ii) == 0) t_monvoln%IBAGHOL(4, ii) = 0
841 IF (ipora(ii) == 0) t_monvoln%IBAGHOL(5, ii) = 0
842 IF (iport1(ii) == 0) t_monvoln%IBAGHOL(6, ii) = 0
843 IF (iporp1(ii) == 0) t_monvoln%IBAGHOL(7, ii) = 0
844 IF (ipora1(ii) == 0) t_monvoln%IBAGHOL(8, ii) = 0
845 IF (ivdp(ii) == 0 .AND. ifvent(ii) /= 3) t_monvoln%IBAGHOL(9, ii) = 0
846 IF (t_monvoln%IBAGHOL(3, ii) == -1) THEN
847 t_monvoln%IBAGHOL(3, ii) = 0
848 CALL ancmsg(msgid = 331, anmode = aninfo, msgtype = msgerror,
849 . i1 = t_monvoln%ID, c1 = t_monvoln%TITLE, i2 = iport(ii))
850 ENDIF
851 IF (t_monvoln%IBAGHOL(4, ii) == -1) THEN
852 t_monvoln%IBAGHOL(4, ii) = 0
853 CALL ancmsg(msgid = 332, anmode = aninfo, msgtype = msgerror,
854 . i1 = t_monvoln%ID, c1 = t_monvoln%TITLE, i2 = iporp(ii))
855 ENDIF
856 IF (t_monvoln%IBAGHOL(5, ii) == -1) THEN
857 t_monvoln%IBAGHOL(5, ii)=0
858 CALL ancmsg(msgid = 333, anmode = aninfo, msgtype = msgerror,
859 . i1 = t_monvoln%ID, c1 = t_monvoln%TITLE, i2 = ipora(ii))
860 ENDIF
861 IF (t_monvoln%IBAGHOL(6, ii) == -1) THEN
862 t_monvoln%IBAGHOL(6, ii) = 0
863 CALL ancmsg(msgid=331, anmode=aninfo, msgtype=msgerror,
864 . i1 = t_monvoln%ID, c1 = t_monvoln%TITLE, i2 = iport1(ii))
865 ENDIF
866 IF (t_monvoln%IBAGHOL(7, ii) == -1) THEN
867 t_monvoln%IBAGHOL(7, ii)=0
868 CALL ancmsg(msgid=332, anmode=aninfo, msgtype=msgerror,
869 . i1 = t_monvoln%ID, c1 = t_monvoln%TITLE, i2 = iporp1(ii))
870 ENDIF
871 IF (t_monvoln%IBAGHOL(8, ii) == -1) THEN
872 t_monvoln%IBAGHOL(8, ii) = 0
873 CALL ancmsg(msgid=333, anmode=aninfo, msgtype=msgerror,
874 . i1 = t_monvoln%ID, c1 = t_monvoln%TITLE, i2 = ipora1(ii))
875 ENDIF
876 IF (t_monvoln%IBAGHOL(9, ii) == -1) THEN
877 t_monvoln%IBAGHOL(9, ii) = 0
878 CALL ancmsg(msgid = 518, anmode = aninfo, msgtype = msgerror,
879 . i1 = t_monvoln%ID, c1 = t_monvoln%TITLE, i2 = ivdp(ii))
880 ENDIF
881 ENDDO
882
883 DO ii = 1, nporsurf
884 t_monvoln%IBAGHOL(13, nventholes + ii) = 1
885 IF (ifvent(nventholes + ii) == 1) t_monvoln%IBAGHOL(10, nventholes + ii) = 2
886 IF (ifvent(nventholes + ii) == 2) t_monvoln%IBAGHOL(10, nventholes + ii) = 3
887 IF (fport(nventholes + ii) == zero) fport(nventholes + ii) = one
888 IF (fpora(nventholes + ii) == zero) fpora(nventholes + ii) = one
889 t_monvoln%RBAGHOL(7, nventholes + ii) = fport(nventholes + ii)
890 t_monvoln%RBAGHOL(9, nventholes + ii) = fpora(nventholes + ii)
891C
892 t_monvoln%IBAGHOL(1, nventholes + ii) = 0
893 t_monvoln%IBAGHOL(11, nventholes + ii) = idtpdef(nventholes + ii)
894 t_monvoln%IBAGHOL(12, nventholes + ii) = 0
895 t_monvoln%IBAGHOL(14, nventholes + ii) = iblockage(nventholes + ii)
896C
897 IF (ipvent(nventholes + ii) == 0) THEN
898 t_monvoln%IBAGHOL(2, nventholes + ii) = 0
899 ELSE
900 t_monvoln%IBAGHOL(2, nventholes + ii) = 0
901 DO jj = 1, nsurf
902 IF (ipvent(nventholes + ii) == igrsurf(jj)%ID) THEN
903 t_monvoln%IBAGHOL(2, nventholes + ii) = jj
904 ENDIF
905 ENDDO
906 IF (t_monvoln%IBAGHOL(2, nventholes + ii) == 0) THEN
907 CALL ancmsg(msgid = 532, anmode = aninfo, msgtype = msgerror,
908 . i1 = t_monvoln%ID, c1 = t_monvoln%TITLE, i2 = ipvent(nventholes + ii))
909 ELSEIF (igrsurf(t_monvoln%IBAGHOL(2, nventholes + ii))%ISH4N3N == 0) THEN
910 CALL ancmsg(msgid = 330, anmode = aninfo, msgtype = msgerror,
911 . i1 = t_monvoln%ID, c1 = t_monvoln%TITLE)
912 ENDIF
913 ENDIF
914C
915 IF (dpdef(nventholes + ii) == zero .AND. dtpdef(nventholes + ii) == zero .AND.
916 . tvent(nventholes + ii) == zero) THEN
917 t_monvoln%IBAGHOL(1, nventholes + ii) = 1
918 ENDIF
919 t_monvoln%RBAGHOL(1, nventholes + ii) = dpdef(nventholes + ii)
920 t_monvoln%RBAGHOL(2, nventholes + ii) = avent(nventholes + ii)
921 t_monvoln%RBAGHOL(3, nventholes + ii) = tvent(nventholes + ii)
922 t_monvoln%RBAGHOL(4, nventholes + ii) = dtpdef(nventholes + ii)
923 t_monvoln%RBAGHOL(6, nventholes + ii) = cleak(nventholes + ii)
924 IF (ivdp(nventholes + ii) /= 0 .AND. fvdp(nventholes + ii) == zero) fvdp=one
925 t_monvoln%RBAGHOL(13, nventholes + ii)=fvdp(nventholes + ii)
926 IF (tstope(nventholes + ii) == zero) tstope(nventholes + ii) = infinity
927 t_monvoln%RBAGHOL(14, nventholes + ii) = tstope(nventholes + ii)
928C
929 t_monvoln%IBAGHOL(3, nventholes + ii) = -1
930 t_monvoln%IBAGHOL(5, nventholes + ii) = -1
931 t_monvoln%IBAGHOL(9, nventholes + ii) = -1
932C
933 DO jj = 1, nfunct
934 IF (iport(nventholes + ii) == npc(jj)) THEN
935 t_monvoln%IBAGHOL(3, nventholes + ii) = jj
936 ENDIF
937 IF (ipora(nventholes + ii) == npc(jj)) THEN
938 t_monvoln%IBAGHOL(5, nventholes + ii) = jj
939 ENDIF
940 IF (ivdp(nventholes + ii) == npc(jj)) THEN
941 t_monvoln%IBAGHOL(9, nventholes + ii) = jj
942 ENDIF
943 ENDDO
944 IF (iport(nventholes + ii) == 0) t_monvoln%IBAGHOL(3, nventholes + ii) = 0
945 IF (ipora(nventholes + ii) == 0) t_monvoln%IBAGHOL(5, nventholes + ii) = 0
946 IF (ivdp(nventholes + ii) == 0 .AND. ifvent(nventholes + ii) /= 2) THEN
947 t_monvoln%IBAGHOL(9, nventholes + ii) = 0
948 ENDIF
949
950 IF (t_monvoln%IBAGHOL(3, nventholes + ii) == -1) THEN
951 t_monvoln%IBAGHOL(3, nventholes + ii) =0
952 CALL ancmsg(msgid = 331, anmode = aninfo, msgtype = msgerror,
953 . i1 = t_monvoln%ID, c1 = t_monvoln%TITLE, i2 = iport(nventholes + ii))
954 ENDIF
955 IF (t_monvoln%IBAGHOL(4, ii) == -1) THEN
956 t_monvoln%IBAGHOL(4, ii) = 0
957 CALL ancmsg(msgid = 332, anmode = aninfo, msgtype = msgerror,
958 . i1 = t_monvoln%ID, c1 = t_monvoln%TITLE, i2 = iporp(ii))
959 ENDIF
960 IF (t_monvoln%IBAGHOL(5, nventholes + ii) == -1) THEN
961 t_monvoln%IBAGHOL(5, nventholes + ii) = 0
962 CALL ancmsg(msgid = 333, anmode = aninfo, msgtype = msgerror,
963 . i1 = t_monvoln%ID, c1 = t_monvoln%TITLE, i2 = ipora(nventholes + ii))
964 ENDIF
965 IF (t_monvoln%IBAGHOL(9, nventholes + ii) == -1) THEN
966 t_monvoln%IBAGHOL(9, nventholes + ii) = 0
967 CALL ancmsg(msgid = 518, anmode = aninfo, msgtype = msgerror,
968 . i1 = t_monvoln%ID, c1 = t_monvoln%TITLE, i2 = ivdp(nventholes + ii))
969 ENDIF
970 ENDDO
971
972C
973 t_monvoln%RVOLU(2) = amu
974 t_monvoln%RVOLU(16) = vol + veps
975 t_monvoln%RVOLU(18) = sa
976 t_monvoln%RVOLU(21) = rot
977 t_monvoln%RVOLU(22:24) = zero
978
979C =========
980C Print out
981C =========
982 WRITE(iout, 1005) surfid
983 WRITE(iout, 1003) scal_t, scal_p, scal_s, scal_a, scal_d
984 WRITE(iout, 1006) hconv
985 WRITE(iout, 1002) sa, sv, vol
986 WRITE(iout,1395) mid_ini
987 WRITE(iout,1400) amu, ti, pext, pini
988 IF (iequi == 0) THEN
989 WRITE(iout,1401)
990 ELSEIF(iequi == 1) THEN
991 WRITE(iout,1404)
992 ELSE
993 WRITE(iout,1405) iequi
994 ENDIF
995 WRITE(iout,1415) mwi, gamai, cpai, cpbi, cpci, cpdi, cpei, cpfi
996 WRITE(iout,1700)
997
998 IF(iswitch /= 0 .OR. tswitch /= zero .OR. pswitch /= zero)THEN
999 WRITE(iout,1789) iswitch
1000 WRITE(iout,1790)
1001 WRITE(iout,1791)
1002 WRITE(iout,2703) tswitch
1003 WRITE(iout,2704) pswitch
1004 ENDIF
1005
1006 IF (t_monvoln%IMESH_ALL > 0) THEN
1007 WRITE(iout, 1706) t_monvoln%IMESH_ALL
1008 ENDIF
1009 WRITE(iout, 1711) t_monvoln%INT_SURFID, t_monvoln%IVOLU(60),
1010 . t_monvoln%RVOLU(31), t_monvoln%RVOLU(34),
1011 . t_monvoln%RVOLU(71), t_monvoln%RVOLU(72)
1012
1013
1014 WRITE(iout,1425)
1015 WRITE(iout,1426) njet
1016 DO ii = 1, njet
1017 WRITE(iout,1432) ii, igeo(1, i_injsys(ii)), isens(ii)
1018 WRITE(iout, 2435) fvel(ii)
1019 cpa = t_monvoln%RBAGJET(2, ii)
1020 cpb = t_monvoln%RBAGJET(3, ii)
1021 cpc = t_monvoln%RBAGJET(4, ii)
1022 cpd = t_monvoln%RBAGJET(16, ii)
1023 cpe = t_monvoln%RBAGJET(17, ii)
1024 cpf = t_monvoln%RBAGJET(18, ii)
1025 mw_tmp = t_monvoln%RBAGJET(19, ii)
1026 rmwg = r_igc1 / mw_tmp
1027 cpg = cpa + cpb*ti+cpc*ti*ti+cpd*ti*ti*ti+
1028 . cpe/(ti*ti)+cpf*ti*ti*ti*ti
1029 cvg = cpg - rmwg
1030 gama = cpg / cvg
1031 WRITE(iout,1442) gama, mw_tmp, cpa, cpb, cpc,
1032 . cpd, cpe, cpf
1033 surfid_inj = t_monvoln%IBAGJET(14, ii)
1034 sjet = zero
1035 IF (surfid_inj/=0) THEN
1036 IF (igrsurf(surfid_inj)%ISH4N3N == 0) THEN
1037 CALL ancmsg(msgid = 18, anmode = aninfo, msgtype = msgerror,
1038 . i2 = igrsurf(surfid_inj)%ID, i1 = t_monvoln%ID, c1 = t_monvoln%TITLE)
1039 ELSE
1040 nn = igrsurf(surfid_inj)%NSEG
1041 DO jj = 1, nn
1042 dir = half
1043 i1 = igrsurf(surfid_inj)%NODES(jj,1)
1044 i2 = igrsurf(surfid_inj)%NODES(jj,2)
1045 i3 = igrsurf(surfid_inj)%NODES(jj,3)
1046 i4 = igrsurf(surfid_inj)%NODES(jj,4)
1047 ish34 = igrsurf(surfid_inj)%ELTYP(jj)
1048 IF (ish34 == 7)i4 = i3
1049 xx = half * (x(1, i1) + x(1, i2))
1050 yy = half * (x(2, i1) + x(2, i2))
1051 zz = half * (x(3, i1) + x(3, i2))
1052 x13 = x(1, i3) - x(1, i1)
1053 y13 = x(2, i3) - x(2, i1)
1054 z13 = x(3, i3) - x(3, i1)
1055 x24 = x(1, i4) - x(1, i2)
1056 y24 = x(2, i4) - x(2, i2)
1057 z24 = x(3, i4) - x(3, i2)
1058 nx = dir * (y13 * z24 - y24 * z13)
1059 ny = dir * (z13 * x24 - z24 * x13)
1060 nz = dir * (x13 * y24 - x24 * y13)
1061 ds = sqrt(nx * nx + ny * ny + nz * nz)
1062 sjet = sjet + ds
1063 ENDDO
1064 ENDIF
1065 WRITE(iout,1445) igrsurf(surfid_inj)%ID, sjet
1066 ENDIF
1067 ENDDO
1068 WRITE(iout,1470) nvent, ttfire
1069 WRITE(iout,1475)ittf
1070 DO ii = 1, nvent
1071 IF (t_monvoln%IBAGHOL(13, ii) == 0) THEN
1072 titr1='VENT HOLE SURFACE'
1073 WRITE(iout,1472) ii, ipvent(ii)
1074 ELSE
1075 titr1='POROUS SURFACE'
1076 WRITE(iout,1473) ii, ipvent(ii)
1077 ENDIF
1078 DO jj = 1, 20
1079 titrevent(jj) = t_monvoln%IBAGHOL(jj + 14, ii)
1080 venttitle(jj:jj) = achar(titrevent(jj))
1081 ENDDO
1082 WRITE(iout,1476) venttitle
1083 IF (ipvent(ii)==0) THEN
1084 CALL ancmsg(msgid = 1050, msgtype = msgerror, anmode = aninfo,
1085 . i1 = t_monvoln%ID, i2 = ii, c1 = t_monvoln%TITLE, c2 = titr1)
1086 ENDIF
1087 IF (ifvent(ii) == 1) WRITE(iout, 1483)
1088 IF (ifvent(ii) == 2) WRITE(iout, 1481)
1089 IF (ifvent(ii) == 3) WRITE(iout, 1482) ivdp(ii), fvdp(ii)
1090 IF (ifvent(ii) == 5) WRITE(iout, 1484)
1091 IF (ifvent(ii) == 4) WRITE(iout, 1485)
1092 shol = zero
1093 IF (ipvent(ii) /= 0) THEN
1094 CALL monvol_check_venthole_surf(ipri, t_monvoln, igrsurf, ii, shol, x, ixc, ixtg)
1095 t_monvoln%RBAGHOL(15, ii) = shol
1096 IF (t_monvoln%IBAGHOL(13, ii) == 0) THEN
1097 WRITE(iout,1479)
1098 . shol,avent(ii),bvent(ii),
1099 . iport(ii),iporp(ii),ipora(ii),fport(ii),fporp(ii),fpora(ii),
1100 . iport1(ii),iporp1(ii),ipora1(ii),fport1(ii),fporp1(ii),fpora1(ii)
1101 WRITE(iout,1480) tvent(ii),dpdef(ii),dtpdef(ii),idtpdef(ii),tstope(ii)
1102 ELSE
1103 WRITE(iout,1579) shol,iblockage(ii)
1104 WRITE(iout,1580) tvent(ii),dpdef(ii),dtpdef(ii),idtpdef(ii),tstope(ii)
1105 ENDIF
1106 ELSE
1107 IF (t_monvoln%IBAGHOL(13, ii) == 0) THEN
1108 WRITE(iout,1489)
1109 . avent(ii),bvent(ii),
1110 . iport(ii),iporp(ii),ipora(ii),fport(ii),fporp(ii),fpora(ii),
1111 . iport1(ii),iporp1(ii),ipora1(ii),fport1(ii),fporp1(ii),fpora1(ii)
1112 WRITE(iout,1480) tvent(ii),dpdef(ii),dtpdef(ii),idtpdef(ii),tstope(ii)
1113 ELSE
1114 cleak =t_monvoln%RBAGHOL(6, ii)
1115 WRITE(iout,1585) cleak(ii),avent(ii),iport(ii),fport(ii),ipora(ii),fpora(ii)
1116 WRITE(iout,1580) tvent(ii),dpdef(ii),dtpdef(ii),idtpdef(ii),tstope(ii)
1117 ENDIF
1118 ENDIF
1119 ENDDO
1120
1121 IF(t_monvoln%IVOLU(75) == 1)THEN
1122 WRITE(iout,3001)1
1123 ENDIF
1124
1125
1126C ===================
1127C Memory deallocation
1128C ===================
1129 IF (ALLOCATED(i_inj)) DEALLOCATE(i_inj)
1130 IF (ALLOCATED(isens)) DEALLOCATE(isens)
1131 IF (ALLOCATED(ijet)) DEALLOCATE(ijet)
1132 IF (ALLOCATED(nj1)) DEALLOCATE(nj1)
1133 IF (ALLOCATED(nj2)) DEALLOCATE(nj2)
1134 IF (ALLOCATED(nj3)) DEALLOCATE(nj3)
1135 IF (ALLOCATED(ipt)) DEALLOCATE(ipt)
1136 IF (ALLOCATED(ipa)) DEALLOCATE(ipa)
1137 IF (ALLOCATED(ipz)) DEALLOCATE(ipz)
1138 IF (ALLOCATED(fpt)) DEALLOCATE(fpt)
1139 IF (ALLOCATED(fpa)) DEALLOCATE(fpa)
1140 IF (ALLOCATED(fpz)) DEALLOCATE(fpz)
1141 IF (ALLOCATED(i_injsys)) DEALLOCATE(i_injsys)
1142 DEALLOCATE(ipvent, ifvent, avent, bvent)
1143 DEALLOCATE(tvent, tstope, dpdef, dtpdef,
1144 . idtpdef)
1145 DEALLOCATE(iport, iporp, ipora, fport,
1146 . fporp, fpora)
1147 DEALLOCATE(iport1, iporp1, ipora1, fport1,
1148 . fporp1, fpora1)
1149 DEALLOCATE(iblockage, cleak)
1150 DEALLOCATE(ivdp, fvdp)
1151C-----------------------------------------------
1152C E n d o f s o u r c e
1153C-----------------------------------------------
1154
1155 RETURN
1156 1002 FORMAT(
1157 . /5x,'INITIAL SURFACE OF MONITORED VOLUME . .=',1pg20.13,
1158 . /5x,'SURFACE ERROR(NE.0 FOR NON CLOSED SURF)=',1pg20.13,
1159 . /5x,'INITIAL VOLUME OF MONITORED VOLUME. . .=',1pg20.13)
1160 1003 FORMAT(
1161 . 5x,'UNIT SCALE FOR TIME FUNCTIONS =',1pg20.13,
1162 . /5x,'UNIT SCALE FOR PRESSURE FUNCTIONS =',1pg20.13,
1163 . /5x,'UNIT SCALE FOR AREA FUNCTIONS =',1pg20.13,
1164 . /5x,'UNIT SCALE FOR ANGLE FUNCTIONS =',1pg20.13,
1165 . /5x,'UNIT SCALE FOR DISTANCE FUNCTIONS =',1pg20.13)
1166 1005 FORMAT( 5x,'EXTERNAL SURFACE ID . . . . . . . . . .=',i10)
1167 1006 FORMAT( 5x,'GLOBAL HEAT TRANSFER COEFFICIENT. . . .=',1pg20.13)
1168 1395 FORMAT(
1169 . /5x,'INITIAL GAS . . . . . . . . . . . . . .=',i10)
1170 1400 FORMAT(
1171 . 5x,'VOLUMIC VISCOSITY . . . . . . . . . . .=',1pg20.13,
1172 . /5x,'INITIAL TEMPERATURE . . . . . . . . . .=',1pg20.13,
1173 . /5x,'EXTERNAL PRESSURE . . . . . . . . . . .=',1pg20.13,
1174 . /5x,'INITIAL PRESSURE. . . . . . . . . . . .=',1pg20.13/)
1175 1401 FORMAT(
1176 . 5x,'INITIAL THERMODYNAMIC EQUILIBRIUM IS SET AT TIME 0'
1177 . /5x,'--------------------------------------------------'/)
1178 1404 FORMAT(
1179 . 5x,'THERMODYNAMIC EQUILIBRIUM IS SET EVERY CYCLE UP TO INJECTION TIME'/)
1180 1405 FORMAT(
1181 . 5x,'THERMODYNAMIC EQUILIBRIUM IS SET EVERY',i10,' CYCLES UP TO INJECTION TIME'/)
1182 1415 FORMAT(
1183 . 5x,'CHARACTERISTICS OF INITIAL GAZ ',
1184 . /5x,'------------------------------ ',
1185 . /5x,'MOLECULAR WEIGHT',
1186 . /5x,' AT INITIAL TEMPERATURE . . . . .=',1pg20.13,
1187 . /5x,'GAMMA AT INITIAL TEMPERATURE . . . . .=',1pg20.13,
1188 . /5x,'COEFFICIENT CPA . . . . . . . . . . . .=',1pg20.13,
1189 . /5x,'COEFFICIENT CPB . . . . . . . . . . . .=',1pg20.13,
1190 . /5x,'COEFFICIENT CPC . . . . . . . . . . . .=',1pg20.13,
1191 . /5x,'COEFFICIENT CPD . . . . . . . . . . . .=',1pg20.13,
1192 . /5x,'COEFFICIENT CPE . . . . . . . . . . . .=',1pg20.13,
1193 . /5x,'COEFFICIENT CPF . . . . . . . . . . . .=',1pg20.13/)
1194 1425 FORMAT(
1195 . /5x,'INJECTORS ',
1196 . /5x,'--------- ')
1197 1426 FORMAT(
1198 . 5x,'NUMBER OF INJECTORS . . . . . . . . . .=',i10/)
1199 1432 FORMAT(
1200 . 5x,'INJECTOR. . . . . . . . . . . . . . . .=',i10,
1201 . /10x,'INJECTOR NUMBER . . . . . . . . . . . .=',i10,
1202 . /10x,'SENSOR NUMBER . . . . . . . . . . . . .=',i10)
1203 1442 FORMAT(
1204 . /15x,'MIXTURE CHARACTERISTICS ',
1205 . /15x,'AT BEGINNING OF INJECTION ',
1206 . /15x,'------------------------- ',
1207 . /15x,'GAMMA . . . . . . . . . . . . . . . . .=',1pg20.13,
1208 . /15x,'MOLECULAR WEIGHT. . . . . . . . . . . .=',1pg20.13,
1209 . /15x,'COEFFICIENT CPA . . . . . . . . . . . .=',1pg20.13,
1210 . /15x,'COEFFICIENT CPB . . . . . . . . . . . .=',1pg20.13,
1211 . /15x,'COEFFICIENT CPC . . . . . . . . . . . .=',1pg20.13,
1212 . /15x,'COEFFICIENT CPD . . . . . . . . . . . .=',1pg20.13,
1213 . /15x,'COEFFICIENT CPE . . . . . . . . . . . .=',1pg20.13,
1214 . /15x,'COEFFICIENT CPF . . . . . . . . . . . .=',1pg20.13)
1215 1445 FORMAT(
1216 . 15x,'INFLATOR SURFACE ID . . . . . . . . . .=',i10,
1217 . /15x,'INITIAL SURFACE OF INFLATOR . . . . . .=',1pg20.13)
1218 1470 FORMAT(
1219 . /5x,'VENT HOLES AND POROUS FABRIC SURFACES ',
1220 . /5x,'------------------------------------- ',
1221 . /5x,'NUMBER OF VENT HOLES AND POROUS SURFACES . .=',i10,
1222 . /5x,'INJECTION TIME TINJ. . . . . . . . . . . . .=',1pg20.13)
1223 1472 FORMAT(
1224 . / 5x,'VENT HOLE NUMBER. . . . . . . . . . . .=',i10,
1225 . /15x,'VENT HOLE SURFACE ID. . . . . . . . . .=',i10)
1226 1473 FORMAT(
1227 . / 5x,'POROUS SURFACE NUMBER . . . . . . . . .=',i10,
1228 . /15x,'POROUS SURFACE ID . . . . . . . . . . .=',i10)
1229 1475 FORMAT(
1230 . 5x,'VENTING START TIME SHIFT . . . . . . . . . .=',i10,
1231 . /5x,' 0 : NO SHIFT',
1232 . /5x,' 1,2: VENTING FUNCTIONS ARE SHIFTED BY TINJ',
1233 . /5x,' 3 : VENTING FUNCTIONS ARE SHIFTED BY TINJ+TSTART')
1234 1476 FORMAT(
1235 . 15x,'TITLE . . . . . . . . . . . . . . . . .=',1x,a20)
1236 1481 FORMAT(15x,'ISENTHALPIC VENTING MODEL ')
1237 1482 FORMAT(15x,'CHEMKIN MODEL FOR POROSITY : ',
1238 . /15x,'VELOCITY VS RELATIVE PRESSURE FUNCTION =',i10,
1239 . /15x,' SCALE FACTOR. . . . . . .=',1pg20.13)
1240 1484 FORMAT(15x,'GRAEFE POROSITY FORMULATION')
1241 1485 FORMAT(15x,'ISENTHALPIC VENTING MODEL WITH POSSIBLE FLOW IN')
1242 1479 FORMAT(
1243 . 15x,'INITIAL SURFACE . . . . . . . . . . . .=',1pg20.13,
1244 . /15x,'AVENT:VENT HOLE SCALE FACTOR. . . . . .=',1pg20.13,
1245 . /15x,'BVENT:VENT HOLE SCALE FACTOR IF CONTACT=',1pg20.13,
1246 . /15x,'POROSITY FUNCTION / TIME. . . . . . . .=',i10,
1247 . /15x,'POROSITY FUNCTION / PRESSURE. . . . . .=',i10,
1248 . /15x,'POROSITY FUNCTION / AREA. . . . . . . .=',i10,
1249 . /15x,'POROSITY TIME FUNCTION SCALE FACTOR =',1pg20.13,
1250 . /15x,'POROSITY PRESSURE FUNCTION SCALE FACTOR=',1pg20.13,
1251 . /15x,'POROSITY AREA FUNCTION SCALE FACTOR . .=',1pg20.13,
1252 . /15x,'POROSITY FUNCTION / TIME(after contact)=',i10,
1253 . /15x,'POROSITY FUNCTION / PRESSURE. . . . . .=',i10,
1254 . /15x,'POROSITY FUNCTION / AREA. . . . . . . .=',i10,
1255 . /15x,'POROSITY TIME FUNCTION SCALE FACTOR =',1pg20.13,
1256 . /15x,'POROSITY PRESSURE FUNCTION SCALE FACTOR=',1pg20.13,
1257 . /15x,'POROSITY AREA FUNCTION SCALE FACTOR . .=',1pg20.13)
1258 1480 FORMAT(
1259 . 15x,'START TIME FOR VENTING TSTART . . . . .=',1pg20.13,
1260 . /15x,'RELATIVE PRES. FOR MEMBRANE DEFLATION .=',1pg20.13,
1261 . /15x,' (DPDEF = PDEF - PEXT) ',
1262 . /15x,'TIME DELAY BEFORE MEMBRANE DEFLATION .=',1pg20.13,
1263 . /15x,'TIME DELAY FLAG . . . . . . . . . . . .=',i10,
1264 . /15x,' IF IDTPDEF : 0',
1265 . /15x,' PRESSURE SHOULD BE OVER PDEF DURING',
1266 . /15x,' A CUMULATED DTPDEF TIME'
1267 . /15x,' BEFORE ACTIVATING DEFLATION'
1268 . /15x,' IF IDTPDEF : 1',
1269 . /15x,' DEFLATION START DTPDEF AFTER',
1270 . /15x,' DPDEF HAS BEEN REACHED',
1271 . /15x,'END TIME FOR VENTING TSTOP. . . . . . .=',1pg20.13)
1272 1483 FORMAT(15x,'LOCAL VELOCITY VENTING FORMULATION')
1273 1489 FORMAT(
1274 . 15x,'AVENT:VENT HOLE AREA. . . . . . . . . .=',1pg20.13,
1275 . /15x,'BVENT:VENT HOLE SCALE FACTOR IF CONTACT=',1pg20.13,
1276 . /15x,'POROSITY FUNCTION / TIME. . . . . . . .=',i10,
1277 . /15x,'POROSITY FUNCTION / PRESSURE. . . . . .=',i10,
1278 . /15x,'POROSITY FUNCTION / AREA. . . . . . . .=',i10,
1279 . /15x,'POROSITY TIME FUNCTION SCALE FACTOR =',1pg20.13,
1280 . /15x,'POROSITY PRESSURE FUNCTION SCALE FACTOR=',1pg20.13,
1281 . /15x,'POROSITY AREA FUNCTION SCALE FACTOR . .=',1pg20.13,
1282 . /15x,'POROSITY FUNCTION / TIME(after contact)=',i10,
1283 . /15x,'POROSITY FUNCTION / PRESSURE. . . . . .=',i10,
1284 . /15x,'POROSITY FUNCTION / AREA. . . . . . . .=',i10,
1285 . /15x,'POROSITY TIME FUNCTION SCALE FACTOR =',1pg20.13,
1286 . /15x,'POROSITY PRESSURE FUNCTION SCALE FACTOR=',1pg20.13,
1287 . /15x,'POROSITY AREA FUNCTION SCALE FACTOR . .=',1pg20.13)
1288 1579 FORMAT(
1289 . 15x,'INITIAL SURFACE . . . . . . . . . . . .=',1pg20.13,
1290 . /15x,'BLOCKAGE IF CONTACT . . . . . . . . . .=',i10,
1291 . /15x,' =0 NO =1 YES')
1292 1580 FORMAT(
1293 . 15x,'START TIME FOR VENTING TSTART . . . . .=',1pg20.13,
1294 . /15x,'RELATIVE PRESSURE TO INITIATE LEAKAGE .=',1pg20.13,
1295 . /15x,' (DPDEF = PDEF - PEXT) ',
1296 . /15x,'TIME DELAY BEFORE LEAKAGE . . . . . . .=',1pg20.13,
1297 . /15x,'TIME DELAY FLAG . . . . . . . . . . . .=',i10,
1298 . /15x,' IF IDTPDEF = 0',
1299 . /15x,' PRESSURE SHOULD BE OVER PDEF DURING',
1300 . /15x,' A CUMULATED DTPDEF TIME '
1301 . /15x,' BEFORE INITIATING LEAKAGE'
1302 . /15x,' IF IDTPDEF = 1',
1303 . /15x,' DEFLATION STARTS DTPDEF AFTER',
1304 . /15x,' DPDEF HAS BEEN REACHED',
1305 . /15x,'END TIME FOR VENTING TSTOP. . . . . . .=',1pg20.13)
1306 1585 FORMAT(
1307 . 15x,'LEAKAGE COEFFICIENT . . . . . . . . . .=',1pg20.13,
1308 . /15x,'LEAKAGE AREA. . . . . . . . . . . . . .=',1pg20.13,
1309 . /15x,'LEAKAGE COEFFICIENT TIME FUNCTION . . .=',i10,
1310 . /15x,' SCALE FACTOR. . . . . . . . . .=',1pg20.13,
1311 . /15x,'LEAKAGE AREA TIME FUNCTION. . . . . . .=',i10,
1312 . /15x,' SCALE FACTOR. . . . . . . . . .=',1pg20.13)
1313 1700 FORMAT(5x,'FVMBAG PARAMETERS ',
1314 . /5x,'----------------- ')
1315 1706 FORMAT(15x,'MESH HOLES. . . . . . . . . . . . . . .=',i10)
1316 1789 FORMAT(15x, 'SWITCH OPTION (ISWITCH). . . . . . . . =',i10)
1317 1790 FORMAT(15x, ' = 1 SWITCH TO UNIFORM PRESSURE')
1318 1791 FORMAT(15x, ' = 2 MERGE TO SINGLE FV INSIDE EACH CHAMBER')
1319 2703 FORMAT(15x, ' TIME (TSWITCH) . . . . . . . . . . =',1pg20.13)
1320 2704 FORMAT(15x, ' PRESSURE DEVIATION RATIO (PSWITCH) =',1pg20.13)
1321 1711 FORMAT(/15x,'INTERNAL SURFACE ID . . . . . . . . =',i10,
1322 . /15x,'CELL MERGING STRATEGY: ',
1323 . /15x,' GLOBAL MERGING TYPE. . . . . . . . .=',i10,
1324 . /15x,' GLOBAL MERGING COEFFICIENT . . . . .=',1pg20.13,
1325 . /15x,' NEIGHBORHOOD MERGING COEFFICIENT . .=',1pg20.13,
1326 . /15x,'DT SCALE FACTOR . . . . . . . . . . . .=',1pg20.13,
1327 . /15x,'MINIMUM TIMESTEP. . . . . . . . . . . .=',1pg20.13)
1328 2435 FORMAT(15x,'INCOMING GAS VELOCITY. . . . . . . . .=',1pg20.13)
1329 3001 FORMAT(
1330 . /5x,'DEBUG OPTIONS',
1331 . /5x,'-------------',
1332 . /5x,' IH3D_FLAG (H3D OUTPUT). . . . . . . .=', i10)
1333
#define my_real
Definition cppsort.cpp:32
subroutine hm_get_float_array_index(name, rval, index, is_available, lsubmodel, unitab)
subroutine hm_get_floatv(name, rval, is_available, lsubmodel, unitab)
subroutine hm_get_int_array_index(name, ival, index, is_available, lsubmodel)
subroutine hm_get_intv(name, ival, is_available, lsubmodel)
subroutine hm_get_string_index(name, sval, index, size, is_available)
subroutine monvol_check_venthole_surf(ipri, t_monvoln, igrsurf, ihol, shol, x, ixc, ixtg)
subroutine monvol_compute_volume(t_monvoln, title, ivolu, surf, itab, node_coord, pm, geo, ixc, ixtg, sa, rot, vol, vmin, veps, sv)
subroutine monvol_check_surfclose(t_monvoln, itab, surf, x)
subroutine monvol_orient_surf(t_monvoln, title, ivolu, itab, surf, ixc, ixtg, x, itype)
subroutine monvol_reverse_normals(t_monvoln, title, ivolu, itab, surf, ixc, ixtg, vol, x, itype)
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)
Definition message.F:889
subroutine freerr(it)
Definition freform.F:506
integer function usr2sys(iu, itabm1, mess, id)
Definition sysfus.F:160