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

Functions/Subroutines

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

Function/Subroutine Documentation

◆ hm_read_monvol_type8()

subroutine hm_read_monvol_type8_mod::hm_read_monvol_type8 ( 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,
integer, dimension(liskn,numfram+1), intent(in) iframe,
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 55 of file hm_read_monvol_type8.F.

59C-----------------------------------------------
60C D e s c r i p t i o n
61C-----------------------------------------------
62C Reader for options "/MONVOL/FVMBAG1"
63C-----------------------------------------------
64C M o d u l e s
65C-----------------------------------------------
66 USE unitab_mod
67 USE groupdef_mod , only:group_,surf_
68 USE message_mod
70 USE submodel_mod
71 USE sensor_mod
72 use element_mod , only : nixc,nixtg
73C-----------------------------------------------
74C I m p l i c i t T y p e s
75C-----------------------------------------------
76#include "implicit_f.inc"
77C-----------------------------------------------
78C C o m m o n B l o c k s
79C-----------------------------------------------
80C NSURF
81#include "com04_c.inc"
82C NIMV, NRVOLU
83#include "param_c.inc"
84C IIN
85#include "units_c.inc"
86C IPRI
87#include "scr03_c.inc"
88C-----------------------------------------------
89C D u m m y A r g u m e n t s
90C-----------------------------------------------
91 TYPE(UNIT_TYPE_), INTENT(IN) :: UNITAB
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
97 TYPE(MONVOL_STRUCT_), INTENT(INOUT) :: T_MONVOLN
98 TYPE (GROUP_) , DIMENSION(NGRBRIC), INTENT(IN) :: IGRBRIC
99 TYPE(SUBMODEL_DATA), DIMENSION(NSUBMOD), INTENT(IN) :: LSUBMODEL
100 TYPE (SENSORS_) ,INTENT(IN) :: SENSORS
101C-----------------------------------------------
102C L o c a l V a r i a b l e s
103C-----------------------------------------------
104 INTEGER :: II, JJ
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
108 LOGICAL :: FOUND
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
113 INTEGER :: NJET
114 INTEGER, DIMENSION(:), ALLOCATABLE :: I_INJ, ISENS, IJET, 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
125 my_real :: ttfire
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
129 LOGICAL lFOUND
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
138C-----------------------------------------------
139C E x t e r n a l F u n c t i o n s
140C-----------------------------------------------
141 INTEGER USR2SYS
142 EXTERNAL usr2sys
143C-----------------------------------------------
144C B e g i n n i n g o f s o u r c e
145C-----------------------------------------------
146 mess = 'MONITORED VOLUME DEFINITION '
147 lfound=.false.
148 id_dt_option=2
149 rmwi = 0
150C =======
151C Reading
152C =======
153! Line 1
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)
157
158! Line 2
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, unitab)
164! Line 3
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)
170! Injectors
171 CALL hm_get_intv('Njet', njet, is_available, lsubmodel)
172
173 t_monvoln%NJET = njet
174 t_monvoln%IVOLU(8) = njet
175 IF (njet > 0) THEN
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
180 ENDIF
181 IF (njet > 0) THEN
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))
185 ipt(:)=0
186 ipa(:)=0
187 ipz(:)=0
188 fpt(:)=zero
189 fpa(:)=zero
190 fpz(:)=zero
191 ivel(:)=0
192 fvel(:)=zero
193 DO ii = 1, njet
194 CALL hm_get_int_array_index('inject_ID', i_inj(ii), ii, is_available, lsubmodel)
195 CALL hm_get_int_array_index('sens_ID', isens(ii), ii, is_available, lsubmodel)
196 CALL hm_get_int_array_index('surf_IDinj', ijet(ii), ii, is_available, lsubmodel)
197 CALL hm_get_int_array_index('fct_IDvel', ivel(ii), ii, is_available, lsubmodel)
198 CALL hm_get_float_array_index('Fscalevel', fvel(ii), ii, is_available, lsubmodel, unitab)
199 ENDDO
200 ENDIF
201! Ventholes and porous surfaces
202 CALL hm_get_intv('Nvent', nventholes, is_available, lsubmodel)
203 CALL hm_get_intv('Nporsurf', nporsurf, is_available, lsubmodel)
204
205 nvent = nventholes + nporsurf
206 t_monvoln%IVOLU(11) = nvent
207 t_monvoln%NVENT = nvent
208 t_monvoln%NPORSURF = nporsurf
209 IF (nvent > 0) THEN
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
214 ENDIF
215 ALLOCATE(ipvent(nvent), ifvent(nvent), avent(nvent), bvent(nvent))
216 ALLOCATE(tvent(nvent), tstope(nvent), dpdef(nvent), dtpdef(nvent),
217 . idtpdef(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))
224
225 IF (nventholes > 0) THEN
226 DO ii = 1, nventholes
227 venttitle = ''
228 CALL hm_get_int_array_index('surf_IDv', ipvent(ii), ii, is_available, lsubmodel)
229 CALL hm_get_int_array_index('Iform', ifvent(ii), ii, is_available, lsubmodel)
230 CALL hm_get_float_array_index('Avent', avent(ii), ii, is_available, lsubmodel, unitab)
231 CALL hm_get_float_array_index('Bvent', bvent(ii), ii, is_available, lsubmodel, unitab)
232 CALL hm_get_string_index('vent_title', venttitle, ii, 20, is_available)
233 IF (ifvent(ii) == 0) ifvent(ii) = 1
234 CALL hm_get_float_array_index('Tstart_arr_X', tvent(ii), ii, is_available, lsubmodel, unitab)
235 CALL hm_get_float_array_index('Tstop_arr_X', tstope(ii), ii, is_available, lsubmodel, unitab)
236 CALL hm_get_float_array_index('ABG_dPdef', dpdef(ii), ii, is_available, lsubmodel, unitab)
237 CALL hm_get_float_array_index('ABG_dtPdef', dtpdef(ii), ii, is_available, lsubmodel, unitab)
238 CALL hm_get_int_array_index('I_dtPdef_arr', idtpdef(ii), ii, is_available, lsubmodel)
239
240 venttitle = venttitle(1:len_trim(venttitle))
241 DO jj = 1, 20
242 titrevent(jj) = iachar(venttitle(jj:jj))
243 t_monvoln%IBAGHOL(jj + 14, ii) = titrevent(jj)
244 ENDDO
245 CALL hm_get_int_array_index('fct_IDt', iport(ii), ii, is_available, lsubmodel)
246 CALL hm_get_int_array_index('fct_IDP', iporp(ii), ii, is_available, lsubmodel)
247 CALL hm_get_int_array_index('fct_IDA', ipora(ii), ii, is_available, lsubmodel)
248 CALL hm_get_float_array_index('Fscalet', fport(ii), ii, is_available, lsubmodel, unitab)
249 CALL hm_get_float_array_index('FscaleP', fporp(ii), ii, is_available, lsubmodel, unitab)
250 CALL hm_get_float_array_index('FscaleA', fpora(ii), ii, is_available, lsubmodel, unitab)
251
252 CALL hm_get_int_array_index("fct_IDt'", iport1(ii), ii, is_available, lsubmodel)
253 CALL hm_get_int_array_index("fct_IDP'", iporp1(ii), ii, is_available, lsubmodel)
254 CALL hm_get_int_array_index("fct_IDA'", ipora1(ii), ii, is_available, lsubmodel)
255 CALL hm_get_float_array_index("Fscalet'", fport1(ii), ii, is_available, lsubmodel, unitab)
256 CALL hm_get_float_array_index("FscaleP'", fporp1(ii), ii, is_available, lsubmodel, unitab)
257 CALL hm_get_float_array_index("FscaleA'", fpora1(ii), ii, is_available, lsubmodel, unitab)
258
259 IF (ifvent(ii) == 2) THEN
260 CALL hm_get_int_array_index('fct_IDV', ivdp(ii), ii, is_available, lsubmodel)
261 CALL hm_get_float_array_index('FscaleV', fvdp(ii), ii, is_available, lsubmodel, unitab)
262 ELSE
263 ivdp(ii) = 0
264 fvdp(ii) = zero
265 ENDIF
266 ENDDO
267 ENDIF
268 IF (nporsurf > 0) THEN
269 DO ii = 1, nporsurf
270 venttitle = ''
271 CALL hm_get_int_array_index('surf_IDps', ipvent(nventholes + ii), ii, is_available, lsubmodel)
272 CALL hm_get_int_array_index('Iformps', ifvent(nventholes + ii), ii, is_available, lsubmodel)
273 CALL hm_get_int_array_index('Iblockage', iblockage(nventholes + ii), ii, is_available, lsubmodel)
274 CALL hm_get_string_index('surface_title', venttitle, ii, 20, is_available)
275
276 venttitle = venttitle(1:len_trim(venttitle))
277 DO jj = 1, 20
278 titrevent(jj) = iachar(venttitle(jj:jj))
279 t_monvoln%IBAGHOL(jj + 14, nventholes + ii) = titrevent(jj)
280 ENDDO
281
282 CALL hm_get_float_array_index('Tstart_arr_Y', tvent(nventholes + ii), ii, is_available, lsubmodel, unitab)
283 CALL hm_get_float_array_index('Tstop_arr_Y', tstope(nventholes + ii), ii, is_available, lsubmodel, unitab)
284 CALL hm_get_float_array_index('ABG_dPdef_ps', dpdef(nventholes + ii), ii, is_available, lsubmodel, unitab)
285 CALL hm_get_float_array_index('ABG_dtPdef_ps', dtpdef(nventholes + ii), ii, is_available, lsubmodel, unitab)
286 CALL hm_get_int_array_index('I_dtPdef_arr_ps', idtpdef(nventholes + ii), ii, is_available, lsubmodel)
287
288
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
300 CALL hm_get_int_array_index('fct_IDv', ivdp(nventholes + ii), ii, is_available, lsubmodel)
301 CALL hm_get_float_array_index('Fscalev', fvdp(nventholes + ii), ii, is_available, lsubmodel, unitab)
302 ENDIF
303 ENDDO
304 ENDIF
305 !Specific lines to Iyp=8 (FVMBAG1)
306 imesh_all = 0
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)
312
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)
316
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)
323
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)
328
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)
334
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)
340
341 lfound = .false.
342 IF (kframe == 0)THEN
343 jj = 1
344 ELSE
345 DO ii = 1, numfram
346 IF (iframe(4, ii + 1) == kframe) THEN
347 jj = ii + 1
348 lfound = .true.
349 ENDIF
350 ENDDO
351 IF (.NOT. lfound) THEN
352 CALL ancmsg(msgid = 853, anmode = aninfo, msgtype = msgerror,
353 . i2 = kframe, i1 = t_monvoln%ID, c1 = t_monvoln%TITLE)
354 ENDIF
355 ENDIF
356 dirx = xframe(7, jj)
357 diry = xframe(8, jj)
358 dirz = xframe(9, jj)
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)
365
366C =====
367C Units
368C =====
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)
373
374C ================
375C Check operations
376C ================
377C External surface check
378 t_monvoln%IVOLU(4) = 0
379 t_monvoln%EXT_SURFID = 0
380 found = .false.
381 DO ii = 1, nsurf
382 IF (surfid == igrsurf(ii)%ID) THEN
383 t_monvoln%IVOLU(4) = ii
384 t_monvoln%EXT_SURFID = ii
385 found = .true.
386 EXIT
387 ENDIF
388 ENDDO
389 IF (.NOT. found) THEN
390 CALL freerr(3)
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)
394 CALL freerr(3)
395 ENDIF
396
397C Check surface closure
398 CALL monvol_check_surfclose(t_monvoln, itab, igrsurf(t_monvoln%EXT_SURFID), x)
399C Set all normal on same side
400 CALL monvol_orient_surf(t_monvoln, t_monvoln%TITLE, t_monvoln%IVOLU, itab,
401 . igrsurf(t_monvoln%EXT_SURFID),ixc, ixtg, x, 8)
402C Compute Monvon volume
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)
406C Reverse all normals to ensure positive volume
407 CALL monvol_reverse_normals(t_monvoln, t_monvoln%TITLE, t_monvoln%IVOLU, itab,
408 . igrsurf(t_monvoln%EXT_SURFID),ixc,ixtg,vol, x, 8)
409
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)
413 ENDIF
414 IF (ti == zero) THEN
415 ti = twohundred95
416 ENDIF
417! Find material
418 t_monvoln%IVOLU(66) = 0
419 found = .false.
420 DO ii = 1, nummat
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)
429 r_igc1 = pm(27, ii)
430 cpi = cpai + cpbi * ti + cpci * ti * ti + cpdi * ti * ti * ti +
431 . cpei / (ti * ti) + cpfi * ti * ti * ti * ti
432 rmwi = r_igc1 / mwi
433 cvi = cpi - rmwi
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)
438 gamai = zero
439 ELSE
440 gamai = cpi / cvi
441 END IF
442 found = .true.
443 EXIT
444 ENDIF
445 ENDDO
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)
449 ENDIF
450! Injectors
451 IF (njet > 0) THEN
452 ALLOCATE(i_injsys(njet))
453 DO ii = 1, njet
454! Check injector property
455 i_injsys(ii) = 0
456 found = .false.
457 DO jj = 1, numgeo
458 IF (igeo(1, jj) == i_inj(ii)) THEN
459 i_injsys(ii) = jj
460 found = .true.
461 EXIT
462 ENDIF
463 ENDDO
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)
467 ENDIF
468 ENDDO
469 ENDIF
470
471
472 t_monvoln%IVOLU(61)=0
473 IF(ibric>0) THEN
474 DO ii=1,ngrbric
475 IF (ibric==igrbric(ii)%ID) THEN
476 t_monvoln%IVOLU(61)=ii
477 EXIT
478 ENDIF
479 ENDDO
480 ENDIF
481
482C internal surface check
483 t_monvoln%IVOLU(67)=0
484 t_monvoln%INT_SURFID = 0
485 IF(surfid_int>0) THEN
486 DO ii=1,nsurf
487 IF (surfid_int==igrsurf(ii)%ID) THEN
488 t_monvoln%IVOLU(67) = ii
489 t_monvoln%INT_SURFID = ii
490 EXIT
491 ENDIF
492 ENDDO
493 ENDIF
494
495 nbric=0
496 IF(t_monvoln%IVOLU(61)/=0) nbric=igrbric(t_monvoln%IVOLU(61))%ID
497 surfid_int=0
498 IF(t_monvoln%INT_SURFID/=0) surfid_int=igrsurf(t_monvoln%INT_SURFID)%ID
499
500
501 !IH3D_FLAG
502 IF(ih3d_flag /= 0)THEN
503 IF(ih3d_flag /= -1 .AND. ih3d_flag /= 1)THEN
504 ih3d_flag = -1
505 ENDIF
506 ENDIF
507
508 !-----------------------------------------------
509
510
511C ==============
512C Default values
513C ==============
514 IF (scal_t == zero) THEN
515 CALL hm_get_floatv_dim('Ascalet', fac_gen, is_available, lsubmodel, unitab)
516 scal_t = one
517 ENDIF
518 IF (scal_p == zero) THEN
519 CALL hm_get_floatv_dim('AscaleP', fac_gen, is_available, lsubmodel, unitab)
520 scal_p = one
521 ENDIF
522 IF (scal_s == zero) THEN
523 CALL hm_get_floatv_dim('AscaleS', fac_gen, is_available, lsubmodel, unitab)
524 scal_s = one
525 ENDIF
526 IF (scal_a == zero) THEN
527 CALL hm_get_floatv_dim('AscaleA', fac_gen, is_available, lsubmodel, unitab)
528 scal_a = one
529 ENDIF
530 IF (scal_d == zero) THEN
531 CALL hm_get_floatv_dim('AscaleD', fac_gen, is_available, lsubmodel, unitab)
532 scal_d = one
533 ENDIF
534
535 amu = em02
536
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
539 ELSE
540 CALL hm_get_floatv_dim('Pext', fac_gen, is_available, lsubmodel, unitab)
541 pext = pext * fac_gen
542 ENDIF
543
544 !CALL HM_GET_FLOATV_DIM('', FAC_GEN, IS_AVAILABLE, LSUBMODEL, UNITAB)
545 pini = pext
546! Injectors
547 IF (njet > 0) THEN
548 DO ii = 1, njet
549 fpt(ii) = one * fac_c
550 fpa(ii) = one * fac_c
551 fpz(ii) = one * fac_c
552 ENDDO
553 ENDIF
554! Ventholes
555 IF (nventholes > 0) THEN
556 DO ii = 1, nventholes
557 IF (ipvent(ii) == 0) THEN
558 bvent(ii) = zero
559 ENDIF
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
566 ENDDO
567 ENDIF
568!
569
570 DO ii=1,njet
571 t_monvoln%IBAGJET(14,ii) = 0
572 lfound=.false.
573 DO jj=1,nsurf
574 IF (ijet(ii)==igrsurf(jj)%ID) THEN
575 t_monvoln%IBAGJET(14, ii) = jj
576 lfound=.true.
577 EXIT
578 ENDIF
579 ENDDO
580 ijet(ii)=0
581 IF(.NOT.lfound)CALL ancmsg(msgid=847,anmode=aninfo,msgtype=msgerror,i2=ijet(ii),i1=t_monvoln%ID,c1=t_monvoln%TITLE)
582 DO jj=1,nfunct
583 IF (ivel(ii)==npc(jj)) t_monvoln%IBAGJET(11, ii)=jj
584 ENDDO
585 IF (fvel(ii) == zero) fvel(ii) = one
586 ENDDO
587
588 IF(tswitch == zero) tswitch=ep20
589 IF (kmesh == 0) kmesh=14
590 IF (kmesh == 2) kmesh=12 ! KMESH=2 is deprecated, set to 12.
591 IF (kmesh == 4) kmesh=14 ! KMESH=4 is deprecated, set to 14.
592 IF (ibric /= 0) THEN !IF IBRIC is not 0 and KMESH has been set to 2, KMESH is ignored
593 kmesh = 1
594 ENDIF
595 IF (nbx==0) nbx=1
596 IF (nby==0) nby=1
597 IF (nbz==0) nbz=1
598
599
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
607
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
611
612 !------------------------------------------------------!
613C =====
614C Store
615C =====
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 !Parameter for autoswitching to uniform pressure airbag
635 t_monvoln%IVOLU(75) = ih3d_flag
636
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
665
666
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)
677 ELSE
678 mwi = zero
679 cpai = zero
680 cpbi = zero
681 cpci = zero
682 cpdi = zero
683 cpei = zero
684 cpfi = zero
685 r_igc1 = zero
686 CALL ancmsg(msgid= 7 18, anmode = aninfo, msgtype = msgerror,
687 . i1 = t_monvoln%ID, c1 = t_monvoln%TITLE)
688 ENDIF
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
699 gamai = zero
700 ELSE
701 rmwi = r_igc1 / mwi
702 cvi = cpi - rmwi
703 gamai = cpi / cvi
704 ENDIF
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
720 ti2=ti*ti
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
727! Injectors
728 ttfire = infinity
729 DO ii = 1, njet
730 !------------------------------------------------------!
731 t_monvoln%RBAGJET(15,ii)=fvel(ii)
732 !------------------------------------------------------!
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 !FMASS
743 t_monvoln%RBAGJET(6, ii) = zero !FTEMP
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 !IFLU
748 t_monvoln%IBAGJET(3, ii) = 0 !ITEMP
749 t_monvoln%IBAGJET(4, ii) = isens(ii)
750! Jetting
751 IF (ijet(ii) > 0) THEN
752 t_monvoln%IBAGJET(5, ii) = usr2sys(nj1(ii), itabm1, mess, t_monvoln%ID)
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)
756 ENDIF
757 found = .false.
758 DO jj= 1, nfunct
759 IF (ipt(ii) == npc(jj)) THEN
760 t_monvoln%IBAGJET(8, ii) = jj
761 found = .true.
762 EXIT
763 ENDIF
764 ENDDO
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)
768 ENDIF
769 found = .false.
770 DO jj = 1, nfunct
771 IF (ipa(ii) == npc(jj)) THEN
772 t_monvoln%IBAGJET(9, ii) = jj
773 found = .true.
774 EXIT
775 ENDIF
776 ENDDO
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)
780 ENDIF
781 found = .false.
782 DO jj = 1, nfunct
783 IF (ipz(ii) == npc(jj)) THEN
784 t_monvoln%IBAGJET(10, ii) = jj
785 found = .true.
786 EXIT
787 ENDIF
788 ENDDO
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)
792 ENDIF
793 ENDIF
794 IF (isens(ii) > 0) THEN
795 found = .false.
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
800 found = .true.
801 EXIT
802 ENDIF
803 ENDDO
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)
807 ENDIF
808 ENDIF
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
819 cvg = cpg - rmwg
820 gama = cpg / cvg
821 t_monvoln%RBAGJET(1, ii) = rmwg
822 ENDDO
823 IF (ttfire == infinity) ttfire = zero
824 t_monvoln%RVOLU(49) = ttfire
825! Ventholes
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)
833
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
838
839 t_monvoln%IBAGHOL(11, ii) = idtpdef(ii)
840
841 t_monvoln%IBAGHOL(12, ii) = 0
842
843 IF (ipvent(ii) == 0) THEN
844 t_monvoln%IBAGHOL(2, ii) = 0
845 ELSE
846 t_monvoln%IBAGHOL(2, ii) = 0
847 found = .false.
848 DO jj = 1, nsurf
849 IF (ipvent(ii) == igrsurf(jj)%ID) THEN
850 t_monvoln%IBAGHOL(2, ii) = jj
851 found = .true.
852 EXIT
853 ENDIF
854 ENDDO
855 IF(.NOT. found)THEN
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)
861 ENDIF
862 IF (avent(ii) == zero) avent(ii) = one
863 ENDIF
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 .AND. tvent(ii) == zero) THEN
867 t_monvoln%IBAGHOL(1, ii) = 1
868 ENDIF
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(ii)
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)
878C
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
886 DO jj = 1, nfunct
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
894 ENDDO
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))
906 ENDIF
907 IF (t_monvoln%IBAGHOL(4, ii) == -1) THEN
908 t_monvoln%IBAGHOL(4, ii) = 0
909 CALL ancmsg(msgid = 332, anmode = aninfo, msgtype = msgerror,
910 . i1 = t_monvoln%ID, c1 = t_monvoln%TITLE, i2 = iporp(ii))
911 ENDIF
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(ii))
916 ENDIF
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))
921 ENDIF
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))
926 ENDIF
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))
931 ENDIF
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))
936 ENDIF
937 ENDDO
938
939 DO ii = 1, nporsurf
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)
947C
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)
952C
953 IF (ipvent(nventholes + ii) == 0) THEN
954 t_monvoln%IBAGHOL(2, nventholes + ii) = 0
955 ELSE
956 t_monvoln%IBAGHOL(2, nventholes + ii) = 0
957 DO jj = 1, nsurf
958 IF (ipvent(nventholes + ii) == igrsurf(jj)%ID) THEN
959 t_monvoln%IBAGHOL(2, nventholes + ii) = jj
960 ENDIF
961 ENDDO
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)
968 ENDIF
969 ENDIF
970C
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
974 ENDIF
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) = infinity
983 t_monvoln%RBAGHOL(14, nventholes + ii) = tstope(nventholes + ii)
984C
985 t_monvoln%IBAGHOL(3, nventholes + ii) = -1
986 t_monvoln%IBAGHOL(5, nventholes + ii) = -1
987 t_monvoln%IBAGHOL(9, nventholes + ii) = -1
988C
989 DO jj = 1, nfunct
990 IF (iport(nventholes + ii) == npc(jj)) THEN
991 t_monvoln%IBAGHOL(3, nventholes + ii) = jj
992 ENDIF
993 IF (ipora(nventholes + ii) == npc(jj)) THEN
994 t_monvoln%IBAGHOL(5, nventholes + ii) = jj
995 ENDIF
996 IF (ivdp(nventholes + ii) == npc(jj)) THEN
997 t_monvoln%IBAGHOL(9, nventholes + ii) = jj
998 ENDIF
999 ENDDO
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 + ii) /= 2) THEN
1003 t_monvoln%IBAGHOL(9, nventholes + ii) = 0
1004 ENDIF
1005
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))
1010 ENDIF
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))
1015 ENDIF
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))
1020 ENDIF
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))
1025 ENDIF
1026 ENDDO
1027
1028C
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
1034
1035C =========
1036C Print out
1037C =========
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
1045 WRITE(iout,1401)
1046 ELSEIF(iequi == 1) THEN
1047 WRITE(iout,1404)
1048 ELSE
1049 WRITE(iout,1405) iequi
1050 ENDIF
1051 WRITE(iout,1415) mwi, gamai, cpai, cpbi, cpci, cpdi, cpei, cpfi
1052 WRITE(iout,1700)
1053 WRITE(iout,1702) kmesh
1054
1055 IF(iswitch /= 0 .OR. tswitch /= zero .OR. pswitch /= zero)THEN
1056 WRITE(iout,1789)iswitch
1057 WRITE(iout,1790)
1058 WRITE(iout,1791)
1059 WRITE(iout,2703) tswitch
1060 WRITE(iout,2704) pswitch
1061 ENDIF
1062
1063 IF (t_monvoln%IMESH_ALL > 0) THEN
1064 WRITE(iout, 1706) t_monvoln%IMESH_ALL
1065 ENDIF
1066 WRITE(iout,1704)
1067 WRITE(iout,1705) kframe
1068 WRITE(iout,1710) t_monvoln%RVOLU(41),t_monvoln%RVOLU(42),t_monvoln%RVOLU(43),
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
1080 WRITE(iout,1425)
1081 WRITE(iout,1426) njet
1082 DO ii = 1, 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)
1086 ENDIF
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
1097 cvg = cpg - rmwg
1098 gama = cpg / cvg
1099 WRITE(iout,1442) gama, mw_tmp, cpa, cpb, cpc,
1100 . cpd, cpe, cpf
1101 surfid_inj = t_monvoln%IBAGJET(14, ii)
1102 sjet = zero
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)
1107 ELSE
1108 nn = igrsurf(surfid_inj)%NSEG
1109 DO jj = 1, nn
1110 dir = half
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)
1130 sjet = sjet + ds
1131 ENDDO
1132 ENDIF
1133 WRITE(iout,1445) igrsurf(surfid_inj)%ID, sjet
1134 ENDIF
1135 ENDDO
1136 WRITE(iout,1470) nvent, ttfire
1137 WRITE(iout,1475)ittf
1138 DO ii = 1, nvent
1139 IF (t_monvoln%IBAGHOL(13, ii) == 0) THEN
1140 titr1='VENT HOLE SURFACE'
1141 WRITE(iout,1472) ii, ipvent(ii)
1142 ELSE
1143 titr1='POROUS SURFACE'
1144 WRITE(iout,1473) ii, ipvent(ii)
1145 ENDIF
1146 DO jj = 1, 20
1147 titrevent(jj) = t_monvoln%IBAGHOL(jj + 14, ii)
1148 venttitle(jj:jj) = achar(titrevent(jj))
1149 ENDDO
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)
1154 ENDIF
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)
1161 shol = zero
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
1166 WRITE(iout,1479)
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)
1171 ELSE
1172 WRITE(iout,1579) shol,iblockage(ii)
1173 WRITE(iout,1580) tvent(ii),dpdef(ii),dtpdef(ii),idtpdef(ii),tstope(ii)
1174 ENDIF
1175 ELSE
1176 IF (t_monvoln%IBAGHOL(13, ii) == 0) THEN
1177 WRITE(iout,1489)
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)
1182 ELSE
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)
1186 ENDIF
1187 ENDIF
1188 ENDDO
1189
1190 IF(t_monvoln%IVOLU(75) == 1)THEN
1191 WRITE(iout,3001)1
1192 ENDIF
1193
1194C ===================
1195C Memory deallocation
1196C ===================
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,
1212 . idtpdef)
1213 DEALLOCATE(iport, iporp, ipora, fport,
1214 . fporp, fpora)
1215 DEALLOCATE(iport1, iporp1, ipora1, fport1,
1216 . fporp1, fpora1)
1217 DEALLOCATE(iblockage, cleak)
1218 DEALLOCATE(ivdp, fvdp)
1219C-----------------------------------------------
1220C E n d o f s o u r c e
1221C-----------------------------------------------
1222
1223 RETURN
1224 1002 FORMAT(
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)
1228 1003 FORMAT(
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)
1236 1395 FORMAT(
1237 . /5x,'INITIAL GAS . . . . . . . . . . . . . .=',i10)
1238 1400 FORMAT(
1239 . 5x,'VOLUMIC VISCOSITY . . . . . . . . . . .=',1pg20.13,
1240 . /5x,'INITIAL TEMPERATURE . . . . . . . . . .=',1pg20.13,
1241 . /5x,'EXTERNAL PRESSURE . . . . . . . . . . .=',1pg20.13,
1242 . /5x,'INITIAL PRESSURE. . . . . . . . . . . .=',1pg20.13/)
1243 1401 FORMAT(
1244 . 5x,'INITIAL THERMODYNAMIC EQUILIBRIUM IS SET AT TIME 0'
1245 . /5x,'--------------------------------------------------'/)
1246 1404 FORMAT(
1247 . 5x,'THERMODYNAMIC EQUILIBRIUM IS SET EVERY CYCLE UP TO INJECTION TIME'/)
1248 1405 FORMAT(
1249 . 5x,'THERMODYNAMIC EQUILIBRIUM IS SET EVERY',i10,' CYCLES UP TO INJECTION TIME'/)
1250 1415 FORMAT(
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/)
1262 1425 FORMAT(
1263 . /5x,'INJECTORS ',
1264 . /5x,'--------- ')
1265 1426 FORMAT(
1266 . 5x,'NUMBER OF INJECTORS . . . . . . . . . .=',i10/)
1267 1432 FORMAT(
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)
1273 1442 FORMAT(
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)
1285 1445 FORMAT(
1286 . 15x,'INFLATOR SURFACE ID . . . . . . . . . .=',i10,
1287 . /15x,'INITIAL SURFACE OF INFLATOR . . . . . .=',1pg20.13)
1288 1470 FORMAT(
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)
1293 1472 FORMAT(
1294 . / 5x,'VENT HOLE NUMBER. . . . . . . . . . . .=',i10,
1295 . /15x,'VENT HOLE SURFACE ID. . . . . . . . . .=',i10)
1296 1473 FORMAT(
1297 . / 5x,'POROUS SURFACE NUMBER . . . . . . . . .=',i10,
1298 . /15x,'POROUS SURFACE ID . . . . . . . . . . .=',i10)
1299 1475 FORMAT(
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')
1304 1476 FORMAT(
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')
1312 1479 FORMAT(
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)
1328 1480 FORMAT(
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')
1343 1489 FORMAT(
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)
1358 1579 FORMAT(
1359 . 15x,'INITIAL SURFACE . . . . . . . . . . . .=',1pg20.13,
1360 . /15x,'BLOCKAGE IF CONTACT . . . . . . . . . .=',i10,
1361 . /15x,' =0 NO =1 YES')
1362 1580 FORMAT(
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)
1376 1585 FORMAT(
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)
1435 3001 FORMAT(
1436 . /5x,'DEBUG OPTIONS',
1437 . /5x,'-------------',
1438 . /5x,' IH3D_FLAG (H3D OUTPUT). . . . . . . .=', i10)
#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_floatv_dim(name, dim_fac, 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:895
subroutine freerr(it)
Definition freform.F:501
integer function usr2sys(iu, itabm1, mess, id)
Definition sysfus.F:146