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

Functions/Subroutines

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

Function/Subroutine Documentation

◆ hm_read_monvol_type9()

subroutine hm_read_monvol_type9_mod::hm_read_monvol_type9 ( type(monvol_struct_), intent(inout) t_monvoln,
type(monvol_metadata_), intent(inout) t_monvol_metadata,
integer, dimension(npropmi, *), intent(in) ipm,
integer, dimension(npropgi, *), intent(in) igeo,
integer, dimension(*), intent(in) itabm1,
type (sensors_), intent(in) sensors,
type(unit_type_), intent(in) unitab,
integer, intent(in) luid,
integer, dimension(*), intent(in) npc,
type (surf_), dimension(nsurf), intent(inout) igrsurf,
integer, dimension(*), intent(in) itab,
dimension(3, *), intent(in) x,
dimension(npropm, *), intent(in) pm,
dimension(npropg, *), intent(in) geo,
integer, dimension(nixc, *), intent(in) ixc,
integer, dimension(nixtg, *), intent(in) ixtg,
type(submodel_data), dimension(nsubmod), intent(in) lsubmodel )

Definition at line 54 of file hm_read_monvol_type9.F.

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