OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
hm_read_monvol_type7.F
Go to the documentation of this file.
1Copyright> OpenRadioss
2Copyright> Copyright (C) 1986-2025 Altair Engineering Inc.
3Copyright>
4Copyright> This program is free software: you can redistribute it and/or modify
5Copyright> it under the terms of the GNU Affero General Public License as published by
6Copyright> the Free Software Foundation, either version 3 of the License, or
7Copyright> (at your option) any later version.
8Copyright>
9Copyright> This program is distributed in the hope that it will be useful,
10Copyright> but WITHOUT ANY WARRANTY; without even the implied warranty of
11Copyright> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12Copyright> GNU Affero General Public License for more details.
13Copyright>
14Copyright> You should have received a copy of the GNU Affero General Public License
15Copyright> along with this program. If not, see <https://www.gnu.org/licenses/>.
16Copyright>
17Copyright>
18Copyright> Commercial Alternative: Altair Radioss Software
19Copyright>
20Copyright> As an alternative to this open-source version, Altair also offers Altair Radioss
21Copyright> software under a commercial license. Contact Altair to discuss further if the
22Copyright> commercial version may interest you: https://www.altair.com/radioss/.
23!||====================================================================
24!|| hm_read_monvol_type7_mod ../starter/source/airbag/hm_read_monvol_type7.F
25!||--- called by ------------------------------------------------------
26!|| read_monvol ../starter/source/airbag/read_monvol.F
27!||====================================================================
29 CONTAINS
30!||====================================================================
31!|| hm_read_monvol_type7 ../starter/source/airbag/hm_read_monvol_type7.F
32!||--- called by ------------------------------------------------------
33!|| read_monvol ../starter/source/airbag/read_monvol.F
34!||--- calls -----------------------------------------------------
35!|| ancmsg ../starter/source/output/message/message.F
36!|| freerr ../starter/source/starter/freform.F
37!|| hm_get_float_array_index ../starter/source/devtools/hm_reader/hm_get_float_array_index.F
39!|| hm_get_floatv ../starter/source/devtools/hm_reader/hm_get_floatv.F
40!|| hm_get_floatv_dim ../starter/source/devtools/hm_reader/hm_get_floatv_dim.F
41!|| hm_get_int_array_index ../starter/source/devtools/hm_reader/hm_get_int_array_index.F
42!|| hm_get_intv ../starter/source/devtools/hm_reader/hm_get_intv.f
43!|| hm_get_string_index ../starter/source/devtools/hm_reader/hm_get_string_index.F
44!|| monvol_check_surfclose ../starter/share/modules1/monvol_struct_mod.F
45!|| monvol_check_venthole_surf ../starter/share/modules1/monvol_struct_mod.F
46!|| monvol_compute_volume ../starter/share/modules1/monvol_struct_mod.F
47!|| monvol_orient_surf ../starter/share/modules1/monvol_struct_mod.F
48!|| monvol_reverse_normals ../starter/share/modules1/monvol_struct_mod.F
49!|| usr2sys ../starter/source/system/sysfus.F
50!||--- uses -----------------------------------------------------
51!|| message_mod ../starter/share/message_module/message_mod.F
52!|| monvol_struct_mod ../starter/share/modules1/monvol_struct_mod.F
53!|| submodel_mod ../starter/share/modules1/submodel_mod.F
54!||====================================================================
55 SUBROUTINE hm_read_monvol_type7(T_MONVOLN, IPM, IGEO, ITABM1,
56 . SENSORS,
57 . UNITAB, LUID, NPC, IGRSURF, ITAB, X, PM, GEO, IXC, IXTG,
58 . LSUBMODEL)
59C-----------------------------------------------
60C M o d u l e s
61C-----------------------------------------------
62 USE unitab_mod
63 USE groupdef_mod
64 USE message_mod
66 USE submodel_mod
67 USE sensor_mod
68 use element_mod , only : nixc,nixtg
69C-----------------------------------------------
70C I m p l i c i t T y p e s
71C-----------------------------------------------
72#include "implicit_f.inc"
73C-----------------------------------------------
74C C o m m o n B l o c k s
75C-----------------------------------------------
76C NSURF
77#include "com04_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(submodel_data), DIMENSION(NSUBMOD), INTENT(IN) :: LSUBMODEL
94 TYPE (SENSORS_) ,INTENT(IN) :: SENSORS
95C-----------------------------------------------
96C L o c a l V a r i a b l e s
97C-----------------------------------------------
98 INTEGER :: II, JJ
99 INTEGER :: SURFID
100 my_real :: FAC_M, FAC_L, FAC_T, FAC_C, FAC_GEN
101 my_real :: scal_t, scal_p, scal_s, scal_a, scal_d
102 LOGICAL :: FOUND
103 my_real :: sa, rot, vol, vmin, veps, amu, sv
104 INTEGER :: MID_INI, IEQUI, ITTF, MID_INISYS
105 my_real :: hconv, pext, ti, pini
106 my_real :: mwi, cpai, cpbi, cpci, cpdi, cpei, cpfi, r_igc1, cpi, rmwi, cvi, gamai
107 INTEGER :: NJET
108 INTEGER, DIMENSION(:), ALLOCATABLE :: I_INJ, ISENS, IJET, NJ1, NJ2, NJ3, IPT, IPA, IPZ, I_INJSYS
109 my_real, DIMENSION(:), ALLOCATABLE :: fpt, fpa, fpz
110 INTEGER :: NVENTHOLES, NPORSURF, NVENT
111 CHARACTER(LEN = 40) :: MESS
112 CHARACTER(LEN = 20) :: VENTTITLE
113 INTEGER :: TITREVENT(20)
114 INTEGER, DIMENSION(:), ALLOCATABLE :: IPVENT, IFVENT, IDTPDEF, IPORT, IPORP, IPORA
115 INTEGER, DIMENSION(:), ALLOCATABLE :: IPORT1, IPORP1, IPORA1, IVDP, IBLOCKAGE
116 my_real, DIMENSION(:), ALLOCATABLE :: avent, bvent, tvent, tstope, dpdef, dtpdef
117 my_real, DIMENSION(:), ALLOCATABLE :: fport, fporp, fpora, fport1, fporp1, fpora1, fvdp, cleak
118 my_real :: ttfire
119 CHARACTER(LEN = nchartitle) :: TITR1
120 my_real :: mi, rhoi, ti2, especi, cpa, cpb, cpc, cpd, cpe, cpf, mw_tmp, rmwg, cpg, cvg, gama, shol
121 LOGICAL :: IS_AVAILABLE
122C-----------------------------------------------
123C E x t e r n a l F u n c t i o n s
124C-----------------------------------------------
125 INTEGER USR2SYS
126 EXTERNAL USR2SYS
127C-----------------------------------------------
128C B e g i n n i n g o f s o u r c e
129C-----------------------------------------------
130 mess = 'MONITORED VOLUME DEFINITION '
131 rmwi = 0
132C =======
133C Reading
134C =======
135! Line 1
136 CALL hm_get_intv('surf_IDex', surfid, is_available, lsubmodel)
137 CALL hm_get_floatv('hconv',hconv, is_available, lsubmodel, unitab)
138! Line 2
139 CALL hm_get_floatv('scale_t', scal_t, is_available, lsubmodel, unitab)
140 CALL hm_get_floatv('scale_p', scal_p, is_available, lsubmodel, unitab)
141 CALL hm_get_floatv('scale_s', scal_s, is_available, lsubmodel, unitab)
142 CALL hm_get_floatv('scale_a', scal_a, is_available, lsubmodel, unitab)
143 CALL hm_get_floatv('scale_d', scal_d, is_available, lsubmodel, unitab)
144! Line 3
145 CALL hm_get_intv('matid', mid_ini, is_available, lsubmodel)
146 CALL hm_get_floatv('mu', amu, is_available, lsubmodel, unitab)
147 CALL hm_get_floatv('pext', pext, is_available, lsubmodel, unitab)
148 CALL hm_get_floatv('t_initial', ti, is_available, lsubmodel, unitab)
149 CALL hm_get_intv('iequil', iequi, is_available, lsubmodel)
150 CALL hm_get_intv('ittf', ittf, is_available, lsubmodel)
151! Injectors
152 CALL hm_get_intv('nb_jet', njet, is_available, lsubmodel)
153 t_monvoln%NJET = njet
154 t_monvoln%IVOLU(8) = njet
155 IF (njet > 0) THEN
156 ALLOCATE(t_monvoln%IBAGJET(nibjet, njet))
157 t_monvoln%IBAGJET(1:nibjet, 1:njet) = 0
158 ALLOCATE(t_monvoln%RBAGJET(nrbjet, njet))
159 t_monvoln%RBAGJET(1:nrbjet, 1:njet) = zero
160 ENDIF
161 IF (njet > 0) THEN
162 ALLOCATE(i_inj(njet), isens(njet), ijet(njet), nj1(njet), nj2(njet), nj3(njet),
163 . ipt(njet), ipa(njet), ipz(njet), fpt(njet), fpa(njet), fpz(njet))
164 DO ii = 1, njet
165 CALL hm_get_int_array_index('inject_ID', i_inj(ii), ii, is_available, lsubmodel)
166 CALL hm_get_int_array_index('sensor', isens(ii), ii, is_available, lsubmodel)
167 CALL hm_get_int_array_index('ijet', ijet(ii), ii, is_available, lsubmodel)
168 CALL hm_get_int_array_index('node1', nj1(ii), ii, is_available, lsubmodel)
169 CALL hm_get_int_array_index('node2', nj2(ii), ii, is_available, lsubmodel)
170 CALL hm_get_int_array_index('node3', nj3(ii), ii, is_available, lsubmodel)
171 IF (ijet(ii) > 0) THEN
172 CALL hm_get_int_array_index('fct_pt', ipt(ii), ii, is_available, lsubmodel)
173 CALL hm_get_int_array_index('fct_theta', ipa(ii), ii, is_available, lsubmodel)
174 CALL hm_get_int_array_index('fct_delta', ipz(ii), ii, is_available, lsubmodel)
175 CALL hm_get_float_array_index('fscale_pt', fpt(ii), ii, is_available, lsubmodel, unitab)
176 CALL hm_get_float_array_index('fscale_ptheta', fpa(ii), ii, is_available, lsubmodel, unitab)
177 CALL hm_get_float_array_index('fscale_pdelta', fpz(ii), ii, is_available, lsubmodel, unitab)
178 ENDIF
179 ENDDO
180 ENDIF
181! Ventholes and porous surfaces
182 CALL hm_get_intv('nb_vent', nventholes, is_available, lsubmodel)
183 CALL hm_get_intv('nb_porous', nporsurf, is_available, lsubmodel)
184 nvent = nventholes + nporsurf
185 t_monvoln%IVOLU(11) = nvent
186 t_monvoln%NVENT = nvent
187 t_monvoln%NPORSURF = nporsurf
188 IF (nvent > 0) THEN
189 ALLOCATE(t_monvoln%IBAGHOL(nibhol, nvent))
190 t_monvoln%IBAGHOL(1:nibhol, 1:nvent) = 0
191 ALLOCATE(t_monvoln%RBAGHOL(nrbhol, nvent))
192 t_monvoln%RBAGHOL(1:nrbhol, 1:nvent) = zero
193 ENDIF
194 ALLOCATE(ipvent(nvent), ifvent(nvent), avent(nvent), bvent(nvent))
195 ALLOCATE(tvent(nvent), tstope(nvent), dpdef(nvent), dtpdef(nvent),
196 . idtpdef(nvent))
197 ALLOCATE(iport(nvent), iporp(nvent), ipora(nvent), fport(nvent),
198 . fporp(nvent), fpora(nvent))
199 ALLOCATE(iport1(nvent), iporp1(nvent), ipora1(nvent), fport1(nvent),
200 . fporp1(nvent), fpora1(nvent))
201 ALLOCATE(iblockage(nvent), cleak(nvent))
202 ALLOCATE(ivdp(nvent), fvdp(nvent))
203 IF (nventholes > 0) THEN
204 DO ii = 1, nventholes
205 venttitle = ''
206 CALL hm_get_int_array_index('surf_IDv', ipvent(ii), ii, is_available, lsubmodel)
207 CALL hm_get_int_array_index('Iform', ifvent(ii), ii, is_available, lsubmodel)
208 CALL hm_get_float_array_index('Avent', avent(ii), ii, is_available, lsubmodel, unitab)
209 CALL hm_get_float_array_index('Bvent', bvent(ii), ii, is_available, lsubmodel, unitab)
210 CALL hm_get_string_index('vent_title', venttitle, ii, 20, is_available)
211 DO jj = 1, 20
212 titrevent(jj) = iachar(venttitle(jj:jj))
213 t_monvoln%IBAGHOL(jj + 14, ii) = titrevent(jj)
214 ENDDO
215!
216 CALL hm_get_float_array_index('tstart', tvent(ii), ii, is_available, lsubmodel, unitab)
217 CALL hm_get_float_array_index('tstop', tstope(ii), ii, is_available, lsubmodel, unitab)
218 CALL hm_get_float_array_index('dpdef', dpdef(ii), ii, is_available, lsubmodel, unitab)
219 CALL hm_get_float_array_index('dtpdef', dtpdef(ii), ii, is_available, lsubmodel, unitab)
220 CALL hm_get_int_array_index('idtpdef', idtpdef(ii), ii, is_available, lsubmodel)
221!
222 CALL hm_get_int_array_index('fct_IDt', iport(ii), ii, is_available, lsubmodel)
223 CALL hm_get_int_array_index('fct_IDP', iporp(ii), ii, is_available, lsubmodel)
224 CALL hm_get_int_array_index('fct_IDA', ipora(ii), ii, is_available, lsubmodel)
225 CALL hm_get_float_array_index('Fscalet', fport(ii), ii, is_available, lsubmodel, unitab)
226 CALL hm_get_float_array_index('FscaleP', fporp(ii), ii, is_available, lsubmodel, unitab)
227 CALL hm_get_float_array_index('FscaleA', fpora(ii), ii, is_available, lsubmodel, unitab)
228!
229 CALL hm_get_int_array_index("fct_IDt'", iport1(ii), ii, is_available, lsubmodel)
230 CALL hm_get_int_array_index("fct_IDP'", iporp1(ii), ii, is_available, lsubmodel)
231 CALL hm_get_int_array_index("fct_IDA'", ipora1(ii), ii, is_available, lsubmodel)
232 CALL hm_get_float_array_index("Fscalet'", fport1(ii), ii, is_available, lsubmodel, unitab)
233 CALL hm_get_float_array_index("FscaleP'", fporp1(ii), ii, is_available, lsubmodel, unitab)
234 CALL hm_get_float_array_index("FscaleA'", fpora1(ii), ii, is_available, lsubmodel, unitab)
235
236 IF (ifvent(ii) == 2) THEN
237 CALL hm_get_int_array_index('fct_IDvvh', ivdp(ii), ii, is_available, lsubmodel)
238 CALL hm_get_float_array_index('Fscalevvh', fvdp(ii), ii, is_available, lsubmodel, unitab)
239 ELSE
240 ivdp(ii) = 0
241 fvdp(ii) = zero
242 ENDIF
243 ENDDO
244 ENDIF
245 IF (nporsurf > 0) THEN
246CALL HM_GET_INT_ARRAY_INDEX('', , II, IS_AVAILABLE, LSUBMODEL)
247CALL HM_GET_FLOAT_ARRAY_INDEX('', , II, IS_AVAILABLE, LSUBMODEL, UNITAB)
248 DO ii = 1, nporsurf
249 venttitle = ''
250 CALL hm_get_int_array_index('surf_ps', ipvent(nventholes + ii), ii, is_available, lsubmodel)
251 CALL hm_get_int_array_index('iform_ps', ifvent(nventholes + ii), ii, is_available, lsubmodel)
252 CALL hm_get_int_array_index('iblockage_ps', iblockage(nventholes + ii), ii, is_available, lsubmodel)
253 CALL hm_get_string_index('title_ps', venttitle, ii, 20, is_available)
254 DO jj = 1, 20
255 titrevent(jj) = iachar(venttitle(jj:jj))
256 t_monvoln%IBAGHOL(jj + 14, nventholes + ii) = titrevent(jj)
257 ENDDO
258!
259 CALL hm_get_float_array_index('tstart_ps', tvent(nventholes + ii), ii, is_available, lsubmodel, unitab)
260 CALL hm_get_float_array_index('tstop_ps', tstope(nventholes + ii), ii, is_available, lsubmodel, unitab)
261 CALL hm_get_float_array_index('dpdef_ps', dpdef(nventholes + ii), ii, is_available, lsubmodel, unitab)
262 CALL hm_get_float_array_index('dtpdef_ps', dtpdef(nventholes + ii), ii, is_available, lsubmodel, unitab)
263 CALL hm_get_int_array_index('idtpdef_ps', idtpdef(nventholes + ii), ii, is_available, lsubmodel)
264
265 cleak(nventholes + ii) = zero
266 avent(nventholes + ii) = zero
267 iport(nventholes + ii) = 0
268 ipora(nventholes + ii) = 0
269 fport(nventholes + ii) = zero
270 fpora(nventholes + ii) = zero
271 IF (ifvent(nventholes + ii) == 0) THEN
272 CALL hm_get_float_array_index('cps', cleak(nventholes + ii), ii, is_available, lsubmodel, unitab)
273 CALL hm_get_float_array_index('area_ps', avent(nventholes + ii), ii, is_available, lsubmodel, unitab)
274 CALL hm_get_int_array_index('fct_cps', iport(nventholes + ii), ii, is_available, lsubmodel)
275 CALL hm_get_int_array_index('fct_aps', ipora(nventholes + ii), ii, is_available, lsubmodel)
276 CALL hm_get_float_array_index('fscale_cps', fport(nventholes + ii), ii, is_available, lsubmodel, unitab)
277 CALL hm_get_float_array_index('fscale_aps', fpora(nventholes + ii), ii, is_available, lsubmodel, unitab)
278 ENDIF
279 ivdp(nventholes + ii) = 0
280 fvdp(nventholes + ii) = zero
281 IF (ifvent(nventholes + ii) == 2) THEN
282 CALL hm_get_int_array_index('fct_IDvps', ivdp(nventholes + ii), ii, is_available, lsubmodel)
283 CALL hm_get_float_array_index('Fscalevps', fvdp(nventholes + ii), ii, is_available, lsubmodel, unitab)
284 ENDIF
285 ENDDO
286 ENDIF
287C =====
288C Units
289C =====
290 fac_m = unitab%FAC_M(luid)
291 fac_l = unitab%FAC_L(luid)
292 fac_t = unitab%FAC_T(luid)
293 fac_c = fac_m / (fac_l * fac_t * fac_t)
294
295C ================
296C Check operations
297C ================
298C External surface check
299 t_monvoln%IVOLU(4) = 0
300 found = .false.
301 DO ii = 1, nsurf
302 IF (surfid == igrsurf(ii)%ID) THEN
303 t_monvoln%IVOLU(4) = ii
304 t_monvoln%EXT_SURFID = ii
305 found = .true.
306 EXIT
307 ENDIF
308 ENDDO
309 IF (.NOT. found) THEN
310 CALL freerr(3)
311 ELSEIF (igrsurf(t_monvoln%IVOLU(4))%ISH4N3N == 0) THEN
312 CALL ancmsg(msgid = 18, anmode = aninfo, msgtype = msgerror,
313 . i1 = t_monvoln%ID, c1 = t_monvoln%TITLE, i2 = surfid)
314 CALL freerr(3)
315 ENDIF
316
317C Check surface closure
318 CALL monvol_check_surfclose(t_monvoln, itab, igrsurf(t_monvoln%EXT_SURFID), x)
319C Set all normal on same side
320 CALL monvol_orient_surf(t_monvoln, t_monvoln%TITLE, t_monvoln%IVOLU, itab,
321 . igrsurf(t_monvoln%EXT_SURFID),ixc, ixtg, x, 7)
322C Compute Monvon volume
323 CALL monvol_compute_volume(t_monvoln, t_monvoln%TITLE, t_monvoln%IVOLU, igrsurf(t_monvoln%EXT_SURFID),
324 . itab, x, pm, geo, ixc, ixtg,
325 . sa, rot, vol, vmin, veps, sv)
326C Reverse all normals to ensure positive volume
327 CALL monvol_reverse_normals(t_monvoln, t_monvoln%TITLE, t_monvoln%IVOLU, itab,
328 . igrsurf(t_monvoln%EXT_SURFID),ixc,ixtg,vol, x, 7)
329
330 IF (ittf < 0 .OR. ittf > 3) THEN
331 CALL ancmsg(msgid = 773, anmode = aninfo, msgtype = msgerror,
332 . i1 = t_monvoln%ID, c1 = t_monvoln%TITLE)
333 END IF
334 IF (ti == zero) THEN
335 ti = twohundred95
336 ENDIF
337! Find material
338 t_monvoln%IVOLU(66) = 0
339 found = .false.
340 DO ii = 1, nummat
341 IF (ipm(1, ii) == mid_ini .AND. ipm(2, ii) == 999) THEN
342 mwi = pm(20, ii) * fac_m
343 cpai = pm(21, ii) * fac_l * fac_l / (fac_t * fac_t)
344 cpbi = pm(22, ii) * fac_l * fac_l / (fac_t * fac_t)
345 cpci = pm(23, ii) * fac_l * fac_l / (fac_t * fac_t)
346 cpdi = pm(24, ii) * fac_l * fac_l / (fac_t * fac_t)
347 cpei = pm(25, ii) * fac_l * fac_l / (fac_t * fac_t)
348 cpfi = pm(26, ii) * fac_l * fac_l / (fac_t * fac_t)
349 r_igc1 = pm(27, ii)
350 cpi = cpai + cpbi * ti + cpci * ti * ti + cpdi * ti * ti * ti +
351 . cpei / (ti * ti) + cpfi * ti * ti * ti * ti
352 rmwi = r_igc1 / mwi
353 cvi = cpi - rmwi
354 t_monvoln%IVOLU(66) = ii
355 IF (cvi == zero) THEN
356 CALL ancmsg(msgid = 709, msgtype = msgerror, anmode = aninfo,
357 . i1 = t_monvoln%ID, c1 = t_monvoln%TITLE)
358 gamai = zero
359 ELSE
360 gamai = cpi / cvi
361 END IF
362 found = .true.
363 EXIT
364 ENDIF
365 ENDDO
366 IF (.NOT. found) THEN
367 CALL ancmsg(msgid = 699, anmode = aninfo, msgtype = msgerror,
368 . i2 = mid_ini, i1 = t_monvoln%ID, c1 = t_monvoln%TITLE)
369 ENDIF
370! Injectors
371 IF (njet > 0) THEN
372 ALLOCATE(i_injsys(njet))
373 DO ii = 1, njet
374! Check injector property
375 i_injsys(ii) = 0
376 found = .false.
377 DO jj = 1, numgeo
378 IF (igeo(1, jj) == i_inj(ii)) THEN
379 i_injsys(ii) = jj
380 found = .true.
381 EXIT
382 ENDIF
383 ENDDO
384 IF (.NOT. found) THEN
385 CALL ancmsg(msgid = 723, anmode = aninfo, msgtype = msgerror,
386 . i2 = i_inj(ii), i1 = t_monvoln%ID, c1 = t_monvoln%TITLE)
387 ENDIF
388 ENDDO
389 ENDIF
390
391
392C ==============
393C Default values
394C ==============
395 IF (scal_t == zero) THEN
396 CALL hm_get_floatv_dim('scale_t', fac_gen, is_available, lsubmodel, unitab)
397 scal_t = one * fac_gen
398 ENDIF
399 IF (scal_p == zero) THEN
400 CALL hm_get_floatv_dim('scale_p', fac_gen, is_available, lsubmodel, unitab)
401 scal_p = one * fac_gen
402 ENDIF
403 IF (scal_s == zero) THEN
404 CALL hm_get_floatv_dim('scale_s', fac_gen, is_available, lsubmodel, unitab)
405 scal_s = one * fac_gen
406 ENDIF
407 IF (scal_a == zero) THEN
408 CALL hm_get_floatv_dim('scale_a', fac_gen, is_available, lsubmodel, unitab)
409 scal_a = one * fac_gen
410 ENDIF
411 IF (scal_d == zero) THEN
412 CALL hm_get_floatv_dim('scale_d', fac_gen, is_available, lsubmodel, unitab)
413 scal_d = one * fac_gen
414 ENDIF
415
416 IF (amu == zero) amu = em02
417 IF (pext == zero) THEN
418 pext = 101325.d0 * (unitab%FAC_L_WORK * unitab%FAC_T_WORK * unitab%FAC_T_WORK) / unitab%FAC_M_WORK
419 ENDIF
420
421 pini = pext
422! Injectors
423 IF (njet > 0) THEN
424 DO ii = 1, njet
425 IF (ijet(ii) > 0) THEN
426 IF (fpt(ii) == zero) THEN
427 CALL hm_get_float_array_index_dim('fscale_pt', fac_gen, ii, is_available, lsubmodel, unitab)
428 fpt(ii) = one * fac_gen
429 ENDIF
430 IF (fpa(ii) == zero) THEN
431 CALL hm_get_float_array_index_dim('fscale_ptheta', fac_gen, ii, is_available, lsubmodel, unitab)
432 fpa(ii) = one * fac_gen
433 ENDIF
434 IF (fpz(ii) == zero) THEN
435 CALL hm_get_float_array_index_dim('fscale_pdelta', fac_gen, ii, is_available, lsubmodel, unitab)
436 fpz(ii) = one
437 ENDIF
438 ELSE
439 CALL hm_get_float_array_index_dim('fscale_pt', fac_gen, ii, is_available, lsubmodel, unitab)
440 fpt(ii) = one * fac_gen
441 CALL hm_get_float_array_index_dim('fscale_ptheta', fac_gen, ii, is_available, lsubmodel, unitab)
442 fpa(ii) = one * fac_gen
443 CALL hm_get_float_array_index_dim('fscale_pdelta', FAC_GEN, II, IS_AVAILABLE, LSUBMODEL, UNITAB)
444 FPZ(II) = ONE * FAC_GEN
445 ENDIF
446 ENDDO
447 ENDIF
448! Ventholes
449 IF (NVENTHOLES > 0) THEN
450 DO II = 1, NVENTHOLES
451 IF (IFVENT(II) == 0) IFVENT(II) = 1
452 IF (IPVENT(II) == 0) THEN
453 BVENT(II) = ZERO
454 ENDIF
455 IF (FPORT(II) == ZERO) THEN
456 CALL HM_GET_FLOAT_ARRAY_INDEX_DIM('fscalet', FAC_GEN, II, IS_AVAILABLE, LSUBMODEL, UNITAB)
457 FPORT(II) = ONE * FAC_GEN
458 ENDIF
459 IF (FPORP(II) == ZERO) THEN
460 CALL HM_GET_FLOAT_ARRAY_INDEX_DIM('fscalep', FAC_GEN, II, IS_AVAILABLE, LSUBMODEL, UNITAB)
461 FPORP(II) = ONE * FAC_GEN
462 ENDIF
463 IF (FPORA(II) == ZERO) THEN
464 CALL HM_GET_FLOAT_ARRAY_INDEX_DIM('fscale_aps', FAC_GEN, II, IS_AVAILABLE, LSUBMODEL, UNITAB)
465 FPORA(II) = ONE * FAC_GEN
466 ENDIF
467 IF (FPORT1(II) == ZERO) THEN
468 CALL HM_GET_FLOAT_ARRAY_INDEX_DIM("Fscalet'", FAC_GEN, II, IS_AVAILABLE, LSUBMODEL, UNITAB)
469 FPORT1(II) = ONE * FAC_GEN
470 ENDIF
471 IF (FPORP1(II) == ZERO) THEN
472 CALL HM_GET_FLOAT_ARRAY_INDEX_DIM("fscalep'", FAC_GEN, II, IS_AVAILABLE, LSUBMODEL, UNITAB)
473 FPORP1(II) = ONE * FAC_GEN
474 ENDIF
475 IF (FPORA1(II) == ZERO) THEN
476 CALL HM_GET_FLOAT_ARRAY_INDEX_DIM("FscaleA'", FAC_GEN, II, IS_AVAILABLE, LSUBMODEL, UNITAB)
477 FPORA1(II) = ONE * FAC_GEN
478 ENDIF
479 ENDDO
480 ENDIF
481C =====
482C Store
483C =====
484 T_MONVOLN%IVOLU(8) = NJET
485.AND. IF (IEQUI > 0 IEQUI /= 1) IEQUI = 1
486 T_MONVOLN%IVOLU(15) = IEQUI
487 T_MONVOLN%IVOLU(17) = ITTF
488
489 T_MONVOLN%RVOLU(19) = HCONV
490 T_MONVOLN%RVOLU(26) = ONE / SCAL_T
491 T_MONVOLN%RVOLU(27) = ONE / SCAL_P
492 T_MONVOLN%RVOLU(28) = ONE / SCAL_S
493 T_MONVOLN%RVOLU(29) = ONE / SCAL_A
494 T_MONVOLN%RVOLU(30) = ONE / SCAL_D
495
496 T_MONVOLN%RVOLU(31) = PINI
497
498 MID_INISYS = T_MONVOLN%IVOLU(66)
499 IF (MID_INISYS /= 0) THEN
500 MWI = PM(20, MID_INISYS)
501 CPAI = PM(21, MID_INISYS)
502 CPBI = PM(22, MID_INISYS)
503 CPCI = PM(23, MID_INISYS)
504 CPDI = PM(24, MID_INISYS)
505 CPEI = PM(25, MID_INISYS)
506 CPFI = PM(26, MID_INISYS)
507 R_IGC1 = PM(27, MID_INISYS)
508 ELSE
509 MWI = ZERO
510 CPAI = ZERO
511 CPBI = ZERO
512 CPCI = ZERO
513 CPDI = ZERO
514 CPEI = ZERO
515 CPFI = ZERO
516 R_IGC1 = ZERO
517 CALL ANCMSG(MSGID= 7 18, ANMODE = ANINFO, MSGTYPE = MSGERROR,
518 . I1 = T_MONVOLN%ID, C1 = T_MONVOLN%TITLE)
519 ENDIF
520 T_MONVOLN%RVOLU(7)=CPAI
521 T_MONVOLN%RVOLU(8)=CPBI
522 T_MONVOLN%RVOLU(9)=CPCI
523 T_MONVOLN%RVOLU(56)=CPDI
524 T_MONVOLN%RVOLU(57)=CPEI
525 T_MONVOLN%RVOLU(58)=CPFI
526 T_MONVOLN%RVOLU(59)=MWI
527 CPI = CPAI + CPBI * TI + CPCI * TI * TI + CPDI * TI * TI * TI +
528 . CPEI / (TI * TI) + CPFI * TI * TI * TI * TI
529 IF (MWI == ZERO) THEN
530 GAMAI = ZERO
531 ELSE
532 RMWI = R_IGC1 / MWI
533 CVI = CPI - RMWI
534 GAMAI = CPI / CVI
535 ENDIF
536 MI = PINI * (VOL + VEPS) / (RMWI * TI)
537 T_MONVOLN%RVOLU(1) = GAMAI
538 T_MONVOLN%RVOLU(3) = PEXT
539 T_MONVOLN%RVOLU(4) = VOL + VEPS
540 T_MONVOLN%RVOLU(11) = MI
541 T_MONVOLN%RVOLU(12) = PINI
542 T_MONVOLN%RVOLU(13) = TI
543 T_MONVOLN%RVOLU(14) = RMWI * MI
544 T_MONVOLN%RVOLU(17) = VEPS
545 T_MONVOLN%RVOLU(20) = MI
546 T_MONVOLN%RVOLU(25) = TI
547 T_MONVOLN%RVOLU(61) = GAMAI
548 RHOI = PINI / (TI * RMWI)
549 T_MONVOLN%RVOLU(62) = RHOI
550 T_MONVOLN%RVOLU(10) = RMWI
551 TI2=TI*TI
552 ESPECI=TI*(CPAI+HALF*CPBI*TI+THIRD*CPCI*TI2-RMWI)
553 ESPECI=ESPECI+FOURTH*CPDI*TI2*TI2-CPEI/TI+ONE_FIFTH*CPFI*TI2*TI2*TI
554 T_MONVOLN%RVOLU(63)= ESPECI+RMWI*TI
555 T_MONVOLN%RVOLU(64)= ZERO
556 T_MONVOLN%RVOLU(65)= ZERO
557 T_MONVOLN%RVOLU(66)= ESPECI
558! Injectors
559 TTFIRE = INFINITY
560 DO II = 1, NJET
561 T_MONVOLN%IBAGJET(13, II) = I_INJSYS(II)
562 T_MONVOLN%RBAGJET(1, II) = ZERO
563 T_MONVOLN%RBAGJET(2, II) = GEO(203, I_INJSYS(II))
564 T_MONVOLN%RBAGJET(3, II) = GEO(204, I_INJSYS(II))
565 T_MONVOLN%RBAGJET(4, II) = GEO(205, I_INJSYS(II))
566 T_MONVOLN%RBAGJET(16, II) = GEO(206, I_INJSYS(II))
567 T_MONVOLN%RBAGJET(17, II) = GEO(207, I_INJSYS(II))
568 T_MONVOLN%RBAGJET(18, II) = GEO(208, I_INJSYS(II))
569 T_MONVOLN%RBAGJET(19, II) = GEO(202, I_INJSYS(II))
570 T_MONVOLN%RBAGJET(5, II) = ZERO !FMASS
571 T_MONVOLN%RBAGJET(6, II) = ZERO !FTEMP
572 T_MONVOLN%RBAGJET(12, II) = FPT(II)
573 T_MONVOLN%RBAGJET(13, II) = FPA(II)
574 T_MONVOLN%RBAGJET(14, II) = FPZ(II)
575 T_MONVOLN%IBAGJET(2, II) = 0 !IFLU
576 T_MONVOLN%IBAGJET(3, II) = 0 !ITEMP
577 T_MONVOLN%IBAGJET(4, II) = ISENS(II)
578! Jetting
579 IF (IJET(II) > 0) THEN
580 T_MONVOLN%IBAGJET(5, II) = USR2SYS(NJ1(II), ITABM1, MESS, T_MONVOLN%ID)
581 T_MONVOLN%IBAGJET(6, II) = USR2SYS(NJ2(II), ITABM1, MESS, T_MONVOLN%ID)
582 IF(NJ3(II) /= 0) THEN
583 T_MONVOLN%IBAGJET(7, II) = USR2SYS(NJ3(II), ITABM1, MESS, T_MONVOLN%ID)
584 ENDIF
585 FOUND = .FALSE.
586 DO JJ= 1, NFUNCT
587 IF (IPT(II) == NPC(JJ)) THEN
588 T_MONVOLN%IBAGJET(8, II) = JJ
589 FOUND = .TRUE.
590 EXIT
591 ENDIF
592 ENDDO
593.NOT. IF ( FOUND) THEN
594 CALL ANCMSG(MSGID = 12, ANMODE = ANINFO, MSGTYPE = MSGERROR,
595 . I2 = IPT(II), I1 = T_MONVOLN%ID, C1 = T_MONVOLN%TITLE)
596 ENDIF
597 FOUND = .FALSE.
598 DO JJ = 1, NFUNCT
599 IF (IPA(II) == NPC(JJ)) THEN
600 T_MONVOLN%IBAGJET(9, II) = JJ
601 FOUND = .TRUE.
602 EXIT
603 ENDIF
604 ENDDO
605.NOT. IF ( FOUND) THEN
606 CALL ANCMSG(MSGID = 13, ANMODE = ANINFO, MSGTYPE = MSGERROR,
607 . I2 = IPA(II), I1 = T_MONVOLN%ID, C1 = T_MONVOLN%TITLE)
608 ENDIF
609 FOUND = .FALSE.
610 DO JJ = 1, NFUNCT
611 IF (IPZ(II) == NPC(JJ)) THEN
612 T_MONVOLN%IBAGJET(10, II) = JJ
613 FOUND = .TRUE.
614 EXIT
615 ENDIF
616 ENDDO
617.NOT. IF ( FOUND) THEN
618 CALL ANCMSG(MSGID = 14, ANMODE = ANINFO, MSGTYPE = MSGERROR,
619 . I2 = IPZ(II), I1 = T_MONVOLN%ID, C1 = T_MONVOLN%TITLE)
620 ENDIF
621 ENDIF
622 IF (ISENS(II) > 0) THEN
623 FOUND = .FALSE.
624 DO JJ = 1, SENSORS%NSENSOR
625 IF (ISENS(II) == SENSORS%SENSOR_TAB(JJ)%SENS_ID) THEN
626 T_MONVOLN%IBAGJET(4, II) = JJ
627 IF (SENSORS%SENSOR_TAB(JJ)%TCRIT < TTFIRE) TTFIRE = SENSORS%SENSOR_TAB(JJ)%TCRIT
628 FOUND = .TRUE.
629 EXIT
630 ENDIF
631 ENDDO
632.NOT. IF ( FOUND) THEN
633 CALL ANCMSG(MSGID = 17, ANMODE =ANINFO, MSGTYPE = MSGERROR,
634 . I2 = ISENS(II), I1 = T_MONVOLN%ID, C1 = T_MONVOLN%TITLE)
635 ENDIF
636 ENDIF
637 CPA = T_MONVOLN%RBAGJET(2, II)
638 CPB = T_MONVOLN%RBAGJET(3, II)
639 CPC = T_MONVOLN%RBAGJET(4, II)
640 CPD = T_MONVOLN%RBAGJET(16, II)
641 CPE = T_MONVOLN%RBAGJET(17, II)
642 CPF = T_MONVOLN%RBAGJET(18, II)
643 MW_TMP = T_MONVOLN%RBAGJET(19, II)
644 RMWG = R_IGC1 / MW_TMP
645 CPG = CPA + CPB*TI+CPC*TI*TI+CPD*TI*TI*TI+
646 . CPE/(TI*TI)+CPF*TI*TI*TI*TI
647 CVG = CPG - RMWG
648 GAMA = CPG / CVG
649 T_MONVOLN%RBAGJET(1, II) = RMWG
650 ENDDO
651 IF (TTFIRE == INFINITY) TTFIRE = ZERO
652 T_MONVOLN%RVOLU(49) = TTFIRE
653! Ventholes
654 DO II = 1, NVENTHOLES
655 T_MONVOLN%RBAGHOL(7, II) = FPORT(II)
656 T_MONVOLN%RBAGHOL(8, II) = FPORP(II)
657 T_MONVOLN%RBAGHOL(9, II) = FPORA(II)
658 T_MONVOLN%RBAGHOL(10, II) = FPORT1(II)
659 T_MONVOLN%RBAGHOL(11, II) = FPORP1(II)
660 T_MONVOLN%RBAGHOL(12, II) = FPORA1(II)
661
662 T_MONVOLN%IBAGHOL(1, II) = 0
663 T_MONVOLN%IBAGHOL(10, II) = IFVENT(II)
664 T_MONVOLN%IBAGHOL(11, II) = IDTPDEF(II)
665
666 T_MONVOLN%IBAGHOL(12, II) = 0
667
668 IF (IPVENT(II) == 0) THEN
669 T_MONVOLN%IBAGHOL(2, II) = 0
670 ELSE
671 T_MONVOLN%IBAGHOL(2, II) = 0
672 FOUND = .FALSE.
673 DO JJ = 1, NSURF
674 IF (IPVENT(II) == IGRSURF(JJ)%ID) THEN
675 T_MONVOLN%IBAGHOL(2, II) = JJ
676 FOUND = .TRUE.
677 EXIT
678 ENDIF
679 ENDDO
680.NOT. IF( FOUND)THEN
681 CALL ANCMSG(MSGID = 532, ANMODE = ANINFO, MSGTYPE = MSGERROR,
682 . I2 = IPVENT(II), I1 = T_MONVOLN%ID, C1 = T_MONVOLN%TITLE)
683 ELSEIF(IGRSURF(T_MONVOLN%IBAGHOL(2, II))%ISH4N3N == 0) THEN
684 CALL ANCMSG(MSGID = 330, ANMODE = ANINFO, MSGTYPE = MSGERROR,
685 . I1 = T_MONVOLN%ID, C1 = T_MONVOLN%TITLE)
686 ENDIF
687 IF (AVENT(II) == ZERO) THEN
688 CALL HM_GET_FLOAT_ARRAY_INDEX_DIM('avent', FAC_GEN, II, IS_AVAILABLE, LSUBMODEL, UNITAB)
689 AVENT(II) = ONE * FAC_GEN
690 ENDIF
691 ENDIF
692 IF (AVENT(II) == ZERO) DPDEF(II) = INFINITY
693 IF (AVENT(II) == ZERO) TVENT(II) = INFINITY
694.AND..AND. IF (DPDEF(II) == ZERO DTPDEF(II) == ZERO TVENT(II) == ZERO) THEN
695 T_MONVOLN%IBAGHOL(1, II) = 1
696 ENDIF
697 T_MONVOLN%RBAGHOL(1, II) = DPDEF(II)
698 T_MONVOLN%RBAGHOL(2, II) = AVENT(II)
699 T_MONVOLN%RBAGHOL(3, II) = TVENT(II)
700 T_MONVOLN%RBAGHOL(4, II) = DTPDEF(II)
701 T_MONVOLN%RBAGHOL(6, II) = BVENT(II)
702.AND. IF (IVDP(II) /= 0 FVDP(II) == ZERO) THEN
703 CALL HM_GET_FLOAT_ARRAY_INDEX_DIM('fscale_v', FAC_GEN, II, IS_AVAILABLE, LSUBMODEL, UNITAB)
704 FVDP(II) = ONE * FAC_GEN
705 ENDIF
706 T_MONVOLN%RBAGHOL(13, II) = FVDP(II)
707 IF (TSTOPE(II) == ZERO) TSTOPE(II) = INFINITY
708 T_MONVOLN%RBAGHOL(14, II) = TSTOPE(II)
709C
710 T_MONVOLN%IBAGHOL(3, II) = -1
711 T_MONVOLN%IBAGHOL(4, II) = -1
712 T_MONVOLN%IBAGHOL(5, II) = -1
713 T_MONVOLN%IBAGHOL(6, II) = -1
714 T_MONVOLN%IBAGHOL(7, II) = -1
715 T_MONVOLN%IBAGHOL(8, II) = -1
716 T_MONVOLN%IBAGHOL(9, II) = -1
717 DO JJ = 1, NFUNCT
718 IF (IPORT(II) == NPC(JJ)) T_MONVOLN%IBAGHOL(3, II) = JJ
719 IF (IPORP(II) == NPC(JJ)) T_MONVOLN%IBAGHOL(4, II) = JJ
720 IF (IPORA(II) == NPC(JJ)) T_MONVOLN%IBAGHOL(5, II) = JJ
721 IF (IPORT1(II) == NPC(JJ)) T_MONVOLN%IBAGHOL(6, II) = JJ
722 IF (IPORP1(II) == NPC(JJ)) T_MONVOLN%IBAGHOL(7, II) = JJ
723 IF (IPORA1(II) == NPC(JJ)) T_MONVOLN%IBAGHOL(8, II) = JJ
724 IF (IVDP(II) == NPC(JJ)) T_MONVOLN%IBAGHOL(9, II) = JJ
725 ENDDO
726 IF (IPORT(II) == 0) T_MONVOLN%IBAGHOL(3, II) = 0
727 IF (IPORP(II) == 0) T_MONVOLN%IBAGHOL(4, II) = 0
728 IF (IPORA(II) == 0) T_MONVOLN%IBAGHOL(5, II) = 0
729 IF (IPORT1(II) == 0) T_MONVOLN%IBAGHOL(6, II) = 0
730 IF (IPORP1(II) == 0) T_MONVOLN%IBAGHOL(7, II) = 0
731 IF (IPORA1(II) == 0) T_MONVOLN%IBAGHOL(8, II) = 0
732.AND. IF (IVDP(II) == 0 IFVENT(II) /= 2) T_MONVOLN%IBAGHOL(9, II) = 0
733 IF (T_MONVOLN%IBAGHOL(3, II) == -1) THEN
734 T_MONVOLN%IBAGHOL(3, II) = 0
735 CALL ANCMSG(MSGID = 331, ANMODE = ANINFO, MSGTYPE = MSGERROR,
736 . I1 = T_MONVOLN%ID, C1 = T_MONVOLN%TITLE, I2 = IPORT(II))
737 ENDIF
738 IF (T_MONVOLN%IBAGHOL(4, II) == -1) THEN
739 T_MONVOLN%IBAGHOL(4, II) = 0
740 CALL ANCMSG(MSGID = 332, ANMODE = ANINFO, MSGTYPE = MSGERROR,
741 . I1 = T_MONVOLN%ID, C1 = T_MONVOLN%TITLE, I2 = IPORP(II))
742 ENDIF
743 IF (T_MONVOLN%IBAGHOL(5, II) == -1) THEN
744 T_MONVOLN%IBAGHOL(5, II)=0
745 CALL ANCMSG(MSGID = 333, ANMODE = ANINFO, MSGTYPE = MSGERROR,
746 . I1 = T_MONVOLN%ID, C1 = T_MONVOLN%TITLE, I2 = IPORA(II))
747 ENDIF
748 IF (T_MONVOLN%IBAGHOL(6, II) == -1) THEN
749 T_MONVOLN%IBAGHOL(6, II) = 0
750 CALL ANCMSG(MSGID=331, ANMODE=ANINFO, MSGTYPE=MSGERROR,
751 . I1 = T_MONVOLN%ID, C1 = T_MONVOLN%TITLE, I2 = IPORT1(II))
752 ENDIF
753 IF (T_MONVOLN%IBAGHOL(7, II) == -1) THEN
754 T_MONVOLN%IBAGHOL(7, II)=0
755 CALL ANCMSG(MSGID=332, ANMODE=ANINFO, MSGTYPE=MSGERROR,
756 . I1 = T_MONVOLN%ID, C1 = T_MONVOLN%TITLE, I2 = IPORP1(II))
757 ENDIF
758 IF (T_MONVOLN%IBAGHOL(8, II) == -1) THEN
759 T_MONVOLN%IBAGHOL(8, II) = 0
760 CALL ANCMSG(MSGID=333, ANMODE=ANINFO, MSGTYPE=MSGERROR,
761 . I1 = T_MONVOLN%ID, C1 = T_MONVOLN%TITLE, I2 = IPORA1(II))
762 ENDIF
763 IF (T_MONVOLN%IBAGHOL(9, II) == -1) THEN
764 T_MONVOLN%IBAGHOL(9, II) = 0
765 CALL ANCMSG(MSGID = 518, ANMODE = ANINFO, MSGTYPE = MSGERROR,
766 . I1 = T_MONVOLN%ID, C1 = T_MONVOLN%TITLE, I2 = IVDP(II))
767 ENDIF
768 ENDDO
769
770 DO II = 1, NPORSURF
771 T_MONVOLN%IBAGHOL(13, NVENTHOLES + II) = 1
772 IF (IFVENT(NVENTHOLES + II) == 0) THEN
773 IF (CLEAK(NVENTHOLES + II) > ZERO) IPORT(NVENTHOLES + II) = 0
774 IF (AVENT(NVENTHOLES + II) > ZERO) IPORA(NVENTHOLES + II) = 0
775 IPVENT(NVENTHOLES + II) = 0
776 IBLOCKAGE(NVENTHOLES + II) = 0
777 ENDIF
778 IF (FPORT(NVENTHOLES + II) == ZERO) THEN
779 CALL HM_GET_FLOAT_ARRAY_INDEX_DIM('fscale_cps', FAC_GEN, II, IS_AVAILABLE, LSUBMODEL, UNITAB)
780 FPORT(NVENTHOLES + II) = ONE * FAC_GEN
781 ENDIF
782 IF (FPORA(NVENTHOLES + II) == ZERO) THEN
783 CALL HM_GET_FLOAT_ARRAY_INDEX_DIM('fscale_aps', FAC_GEN, II, IS_AVAILABLE, LSUBMODEL, UNITAB)
784 FPORA(NVENTHOLES + II) = ONE * FAC_GEN
785 ENDIF
786 T_MONVOLN%RBAGHOL(7, NVENTHOLES + II) = FPORT(NVENTHOLES + II)
787 T_MONVOLN%RBAGHOL(9, NVENTHOLES + II) = FPORA(NVENTHOLES + II)
788C
789 T_MONVOLN%IBAGHOL(1, NVENTHOLES + II) = 0
790 T_MONVOLN%IBAGHOL(10, NVENTHOLES + II) = IFVENT(NVENTHOLES + II)
791 T_MONVOLN%IBAGHOL(11, NVENTHOLES + II) = IDTPDEF(NVENTHOLES + II)
792 T_MONVOLN%IBAGHOL(12, NVENTHOLES + II) = 0
793 T_MONVOLN%IBAGHOL(14, NVENTHOLES + II) = IBLOCKAGE(NVENTHOLES + II)
794C
795 IF (IPVENT(NVENTHOLES + II) == 0) THEN
796 T_MONVOLN%IBAGHOL(2, NVENTHOLES + II) = 0
797 ELSE
798 T_MONVOLN%IBAGHOL(2, NVENTHOLES + II) = 0
799 DO JJ = 1, NSURF
800 IF (IPVENT(NVENTHOLES + II) == IGRSURF(JJ)%ID) THEN
801 T_MONVOLN%IBAGHOL(2, NVENTHOLES + II) = JJ
802 ENDIF
803 ENDDO
804 IF (T_MONVOLN%IBAGHOL(2, NVENTHOLES + II) == 0) THEN
805 CALL ANCMSG(MSGID = 532, ANMODE = ANINFO, MSGTYPE = MSGERROR,
806 . I1 = T_MONVOLN%ID, C1 = T_MONVOLN%TITLE, I2 = IPVENT(NVENTHOLES + II))
807 ELSEIF (IGRSURF(T_MONVOLN%IBAGHOL(2, NVENTHOLES + II))%ISH4N3N == 0) THEN
808 CALL ANCMSG(MSGID = 330, ANMODE = ANINFO, MSGTYPE = MSGERROR,
809 . I1 = T_MONVOLN%ID, C1 = T_MONVOLN%TITLE)
810 ENDIF
811 ENDIF
812C
813.AND..AND. IF (DPDEF(NVENTHOLES + II) == ZERO DTPDEF(NVENTHOLES + II) == ZERO
814 . TVENT(NVENTHOLES + II) == ZERO) THEN
815 T_MONVOLN%IBAGHOL(1, NVENTHOLES + II) = 1
816 ENDIF
817 T_MONVOLN%RBAGHOL(1, NVENTHOLES + II) = DPDEF(NVENTHOLES + II)
818 T_MONVOLN%RBAGHOL(2, NVENTHOLES + II) = AVENT(NVENTHOLES + II)
819 T_MONVOLN%RBAGHOL(3, NVENTHOLES + II) = TVENT(NVENTHOLES + II)
820 T_MONVOLN%RBAGHOL(4, NVENTHOLES + II) = DTPDEF(NVENTHOLES + II)
821 T_MONVOLN%RBAGHOL(6, NVENTHOLES + II) = CLEAK(NVENTHOLES + II)
822.AND. IF (IVDP(NVENTHOLES + II) /= 0 FVDP(NVENTHOLES + II) == ZERO) THEN
823 CALL HM_GET_FLOAT_ARRAY_INDEX_DIM('fscale_v', FAC_GEN, II, IS_AVAILABLE, LSUBMODEL, UNITAB)
824 FVDP = ONE * FAC_GEN
825 ENDIF
826 T_MONVOLN%RBAGHOL(13, NVENTHOLES + II)=FVDP(NVENTHOLES + II)
827 IF (TSTOPE(NVENTHOLES + II) == ZERO) TSTOPE(NVENTHOLES + II) = INFINITY
828 T_MONVOLN%RBAGHOL(14, NVENTHOLES + II) = TSTOPE(NVENTHOLES + II)
829C
830 T_MONVOLN%IBAGHOL(3, NVENTHOLES + II) = -1
831 T_MONVOLN%IBAGHOL(5, NVENTHOLES + II) = -1
832 T_MONVOLN%IBAGHOL(9, NVENTHOLES + II) = -1
833C
834 DO JJ = 1, NFUNCT
835 IF (IPORT(NVENTHOLES + II) == NPC(JJ)) THEN
836 T_MONVOLN%IBAGHOL(3, NVENTHOLES + II) = JJ
837 ENDIF
838 IF (IPORA(NVENTHOLES + II) == NPC(JJ)) THEN
839 T_MONVOLN%IBAGHOL(5, NVENTHOLES + II) = JJ
840 ENDIF
841 IF (IVDP(NVENTHOLES + II) == NPC(JJ)) THEN
842 T_MONVOLN%IBAGHOL(9, NVENTHOLES + II) = JJ
843 ENDIF
844 ENDDO
845 IF (IPORT(NVENTHOLES + II) == 0) T_MONVOLN%IBAGHOL(3, NVENTHOLES + II) = 0
846 IF (IPORA(NVENTHOLES + II) == 0) T_MONVOLN%IBAGHOL(5, NVENTHOLES + II) = 0
847.AND. IF (IVDP(NVENTHOLES + II) == 0 IFVENT(NVENTHOLES + II) /= 2) THEN
848 T_MONVOLN%IBAGHOL(9, NVENTHOLES + II) = 0
849 ENDIF
850
851 IF (T_MONVOLN%IBAGHOL(3, NVENTHOLES + II) == -1) THEN
852 T_MONVOLN%IBAGHOL(3, NVENTHOLES + II) =0
853 CALL ANCMSG(MSGID = 331, ANMODE = ANINFO, MSGTYPE = MSGERROR,
854 . I1 = T_MONVOLN%ID, C1 = T_MONVOLN%TITLE, I2 = IPORT(NVENTHOLES + II))
855 ENDIF
856 IF (T_MONVOLN%IBAGHOL(5, NVENTHOLES + II) == -1) THEN
857 T_MONVOLN%IBAGHOL(5, NVENTHOLES + II) = 0
858 CALL ANCMSG(MSGID = 333, ANMODE = ANINFO, MSGTYPE = MSGERROR,
859 . I1 = T_MONVOLN%ID, C1 = T_MONVOLN%TITLE, I2 = IPORA(NVENTHOLES + II))
860 ENDIF
861 IF (T_MONVOLN%IBAGHOL(9, NVENTHOLES + II) == -1) THEN
862 T_MONVOLN%IBAGHOL(9, NVENTHOLES + II) = 0
863 CALL ANCMSG(MSGID = 518, ANMODE = ANINFO, MSGTYPE = MSGERROR,
864 . I1 = T_MONVOLN%ID, C1 = T_MONVOLN%TITLE, I2 = IVDP(NVENTHOLES + II))
865 ENDIF
866 ENDDO
867
868C
869 T_MONVOLN%RVOLU(2) = AMU
870 T_MONVOLN%RVOLU(16) = VOL + VEPS
871 T_MONVOLN%RVOLU(18) = SA
872 T_MONVOLN%RVOLU(21) = ROT
873 T_MONVOLN%RVOLU(22:24) = ZERO
874
875C =========
876C Print out
877C =========
878 WRITE(IOUT, 1005) SURFID
879 WRITE(IOUT, 1003) SCAL_T, SCAL_P, SCAL_S, SCAL_A, SCAL_D
880 WRITE(IOUT, 1006) HCONV
881 WRITE(IOUT, 1002) SA, SV, VOL
882 WRITE(IOUT,1395) MID_INI
883 WRITE(IOUT,1400) AMU, TI, PEXT, PINI
884 IF (IEQUI == 0) THEN
885 WRITE(IOUT,1401)
886 ENDIF
887 IF (IEQUI > 0) THEN
888 WRITE(IOUT,1402)
889 ENDIF
890 WRITE(IOUT,1415) MWI, GAMAI, CPAI, CPBI, CPCI, CPDI, CPEI, CPFI
891 WRITE(IOUT,1425)
892 WRITE(IOUT,1426) NJET
893 DO II = 1, NJET
894 WRITE(IOUT,1432) II,
895 . IGEO(1, I_INJSYS(II)), ISENS(II)
896 CPA = T_MONVOLN%RBAGJET(2, II)
897 CPB = T_MONVOLN%RBAGJET(3, II)
898 CPC = T_MONVOLN%RBAGJET(4, II)
899 CPD = T_MONVOLN%RBAGJET(16, II)
900 CPE = T_MONVOLN%RBAGJET(17, II)
901 CPF = T_MONVOLN%RBAGJET(18, II)
902 MW_TMP = T_MONVOLN%RBAGJET(19, II)
903 RMWG = R_IGC1 / MW_TMP
904 CPG = CPA + CPB*TI+CPC*TI*TI+CPD*TI*TI*TI+
905 . CPE/(TI*TI)+CPF*TI*TI*TI*TI
906 CVG = CPG - RMWG
907 GAMA = CPG / CVG
908 WRITE(IOUT,1442) GAMA, MW_TMP, CPA, CPB, CPC,
909 . CPD, CPE, CPF
910 IF (NJ1(II) == 0) THEN
911 WRITE(IOUT, 1455) 0
912 ELSE
913 WRITE(IOUT, 1455) 1
914 IF (NJ3(II) == 0) THEN
915 WRITE(IOUT, 1460) NJ1(II), NJ2(II),
916 . IPT(II), IPA(II), IPZ(II), FPT(II), FPA(II), FPZ(II)
917 T_MONVOLN%IBAGJET(7, II) = T_MONVOLN%IBAGJET(5, II)
918 ELSE
919 WRITE(IOUT, 1461) NJ1(II), NJ2(II), NJ3(II),
920 . IPT(II), IPA(II), IPZ(II),
921 . FPT(II), FPA(II) ,FPZ(II)
922 ENDIF
923 ENDIF
924 ENDDO
925 WRITE(IOUT,1470) NVENT, TTFIRE
926 IF (NVENT > 0) THEN
927 WRITE(IOUT,1471) ITTF
928 ENDIF
929 DO II = 1, NVENT
930 IF (T_MONVOLN%IBAGHOL(13, II) == 0) THEN
931 TITR1='VENT HOLE SURFACE'
932 WRITE(IOUT,1472) II,IPVENT(II)
933 ELSE
934 TITR1='POROUS SURFACE'
935 WRITE(IOUT,1473) II,IPVENT(II)
936 ENDIF
937 DO JJ = 1, 20
938 TITREVENT(JJ) = T_MONVOLN%IBAGHOL(JJ + 14, II)
939 ENDDO
940 WRITE(IOUT,1476) VENTTITLE
941.AND. IF (IPVENT(II) == 0 AVENT(II) == ZERO) THEN
942 CALL ANCMSG(MSGID=1019, MSGTYPE=MSGWARNING, ANMODE=ANINFO,
943 . I1=T_MONVOLN%ID,I2=II, C1=T_MONVOLN%TITLE,C2=TITR1)
944 ENDIF
945 IF(IFVENT(II) <= 1)WRITE(IOUT,1481)
946 IF(IFVENT(II)==2) THEN
947 WRITE(IOUT,1482)IVDP(II),FVDP(II)
948 ENDIF
949 IF(IFVENT(II)==3) WRITE(IOUT,1484)
950 IF(IFVENT(II)==4) WRITE(IOUT,1485)
951 SHOL = ZERO
952 IF (IPVENT(II) /= 0) THEN
953 CALL MONVOL_CHECK_VENTHOLE_SURF(IPRI, T_MONVOLN, IGRSURF, II, SHOL, X, IXC, IXTG)
954 T_MONVOLN%RBAGHOL(15, II) = SHOL
955 IF (T_MONVOLN%IBAGHOL(13, II) == 0) THEN
956 WRITE(IOUT,1479)
957 . SHOL,AVENT(II),BVENT(II),
958 . IPORT(II),IPORP(II),IPORA(II),FPORT(II),FPORP(II),FPORA(II),
959 . IPORT1(II),IPORP1(II),IPORA1(II),FPORT1(II),FPORP1(II),FPORA1(II)
960 WRITE(IOUT,1480) TVENT(II),DPDEF(II),DTPDEF(II),IDTPDEF(II),TSTOPE(II)
961 ELSE
962 WRITE(IOUT,1579) SHOL,IBLOCKAGE(II)
963 WRITE(IOUT,1580) TVENT(II),DPDEF(II),DTPDEF(II),IDTPDEF(II),TSTOPE(II)
964 ENDIF
965 ELSE
966 IF (T_MONVOLN%IBAGHOL(13, II) == 0) THEN
967 WRITE(IOUT,1489)
968 . AVENT(II),BVENT(II),
969 . IPORT(II),IPORP(II),IPORA(II),FPORT(II),FPORP(II),FPORA(II),
970 . IPORT1(II),IPORP1(II),IPORA1(II),FPORT1(II),FPORP1(II),FPORA1(II)
971 WRITE(IOUT,1480) TVENT(II),DPDEF(II),DTPDEF(II),IDTPDEF(II),TSTOPE(II)
972 ELSE
973 CLEAK =T_MONVOLN%RBAGHOL(6, II)
974 WRITE(IOUT,1585) CLEAK(II),AVENT(II),IPORT(II),FPORT(II),IPORA(II),FPORA(II)
975 WRITE(IOUT,1580) TVENT(II),DPDEF(II),DTPDEF(II),IDTPDEF(II),TSTOPE(II)
976 ENDIF
977 ENDIF
978 ENDDO
979C ===================
980C Memory deallocation
981C ===================
982 IF (ALLOCATED(I_INJ)) DEALLOCATE(I_INJ)
983 IF (ALLOCATED(ISENS)) DEALLOCATE(ISENS)
984 IF (ALLOCATED(IJET)) DEALLOCATE(IJET)
985 IF (ALLOCATED(NJ1)) DEALLOCATE(NJ1)
986 IF (ALLOCATED(NJ2)) DEALLOCATE(NJ2)
987 IF (ALLOCATED(NJ3)) DEALLOCATE(NJ3)
988 IF (ALLOCATED(IPT)) DEALLOCATE(IPT)
989 IF (ALLOCATED(IPA)) DEALLOCATE(IPA)
990 IF (ALLOCATED(IPZ)) DEALLOCATE(IPZ)
991 IF (ALLOCATED(FPT)) DEALLOCATE(FPT)
992 IF (ALLOCATED(FPA)) DEALLOCATE(FPA)
993 IF (ALLOCATED(FPZ)) DEALLOCATE(FPZ)
994 IF (ALLOCATED(I_INJSYS)) DEALLOCATE(I_INJSYS)
995 IF (NVENT > 0) THEN
996 DEALLOCATE(IPVENT, IFVENT, AVENT, BVENT)
997 DEALLOCATE(TVENT, TSTOPE, DPDEF, DTPDEF,
998 . IDTPDEF)
999 DEALLOCATE(IPORT, IPORP, IPORA, FPORT,
1000 . FPORP, FPORA)
1001 DEALLOCATE(IPORT1, IPORP1, IPORA1, FPORT1,
1002 . FPORP1, FPORA1)
1003 DEALLOCATE(IBLOCKAGE, CLEAK)
1004 DEALLOCATE(IVDP, FVDP)
1005 ENDIF
1006C-----------------------------------------------
1007C E n d o f s o u r c e
1008C-----------------------------------------------
1009
1010 RETURN
1011 1002 FORMAT(
1012 . /5X,'INITIAL SURFACE OF MONITORED VOLUME . .=',1PG20.13,
1013 . /5X,'SURFACE ERROR(NE.0 FOR NON CLOSED SURF)=',1PG20.13,
1014 . /5X,'INITIAL VOLUME OF MONITORED VOLUME. . .=',1PG20.13)
1015 1003 FORMAT(
1016 . 5X,'UNIT SCALE FOR TIME FUNCTIONS =',1PG20.13,
1017 . /5X,'UNIT SCALE FOR PRESSURE FUNCTIONS =',1PG20.13,
1018 . /5X,'UNIT SCALE FOR AREA FUNCTIONS =',1PG20.13,
1019 . /5X,'UNIT SCALE FOR ANGLE FUNCTIONS =',1PG20.13,
1020 . /5X,'UNIT SCALE FOR DISTANCE FUNCTIONS =',1PG20.13)
1021 1005 FORMAT( 5X,'EXTERNAL SURFACE ID . . . . . . . . . .=',I10)
1022 1006 FORMAT( 5X,'GLOBAL HEAT TRANSFER COEFFICIENT. . . .=',1PG20.13)
1023 1395 FORMAT(
1024 . /5X,'INITIAL GAS . . . . . . . . . . . . . .=',I10)
1025 1400 FORMAT(
1026 . 5X,'VOLUMIC VISCOSITY . . . . . . . . . . .=',1PG20.13,
1027 . /5X,'INITIAL TEMPERATURE . . . . . . . . . .=',1PG20.13,
1028 . /5X,'EXTERNAL PRESSURE . . . . . . . . . . .=',1PG20.13,
1029 . /5X,'INITIAL PRESSURE. . . . . . . . . . . .=',1PG20.13/)
1030 1401 FORMAT(
1031 . 5X,'INITIAL THERMODYNAMIC EQUILIBRIUM IS SET AT TIME 0'
1032 . /5X,'--------------------------------------------------'/)
1033 1402 FORMAT(
1034 . 5X,'INITIAL THERMODYNAMIC EQUILIBRIUM IS SET AT INJECTION TIME'
1035 . /5X,'----------------------------------------------------------'/)
1036 1415 FORMAT(
1037 . 5X,'CHARACTERISTICS OF INITIAL GAZ ',
1038 . /5X,'------------------------------ ',
1039 . /5X,'MOLECULAR WEIGHT',
1040 . /5X,' AT INITIAL TEMPERATURE . . . . .=',1PG20.13,
1041 . /5X,'GAMMA AT INITIAL TEMPERATURE . . . . .=',1PG20.13,
1042 . /5X,'COEFFICIENT CPA . . . . . . . . . . . .=',1PG20.13,
1043 . /5X,'COEFFICIENT CPB . . . . . . . . . . . .=',1PG20.13,
1044 . /5X,'COEFFICIENT CPC . . . . . . . . . . . .=',1PG20.13,
1045 . /5X,'COEFFICIENT CPD . . . . . . . . . . . .=',1PG20.13,
1046 . /5X,'COEFFICIENT CPE . . . . . . . . . . . .=',1PG20.13,
1047 . /5X,'COEFFICIENT CPF . . . . . . . . . . . .=',1PG20.13/)
1048 1425 FORMAT(
1049 . /5X,'INJECTORS ',
1050 . /5X,'--------- ')
1051 1426 FORMAT(
1052 . 5X,'NUMBER OF INJECTORS . . . . . . . . . .=',I10/)
1053 1432 FORMAT(
1054 . 5X,'INJECTOR. . . . . . . . . . . . . . . .=',I10,
1055 . /10X,'INJECTOR NUMBER . . . . . . . . . . . .=',I10,
1056 . /10X,'SENSOR NUMBER . . . . . . . . . . . . .=',I10)
1057 1442 FORMAT(
1058 . /15X,'MIXTURE CHARACTERISTICS ',
1059 . /15X,'AT BEGINNING OF INJECTION ',
1060 . /15X,'------------------------- ',
1061 . /15X,'GAMMA . . . . . . . . . . . . . . . . .=',1PG20.13,
1062 . /15X,'MOLECULAR WEIGHT. . . . . . . . . . . .=',1PG20.13,
1063 . /15X,'COEFFICIENT CPA . . . . . . . . . . . .=',1PG20.13,
1064 . /15X,'COEFFICIENT CPB . . . . . . . . . . . .=',1PG20.13,
1065 . /15X,'COEFFICIENT CPC . . . . . . . . . . . .=',1PG20.13,
1066 . /15X,'COEFFICIENT CPD . . . . . . . . . . . .=',1PG20.13,
1067 . /15X,'COEFFICIENT CPE . . . . . . . . . . . .=',1PG20.13,
1068 . /15X,'COEFFICIENT CPF . . . . . . . . . . . .=',1PG20.13)
1069 1455 FORMAT(
1070 . /10X,'JETTING OPTION. . . . . . . . . . . . .=',I10,
1071 . /10X,'----------------------------------------')
1072 1460 FORMAT(
1073 . 15X,'CONICAL JET . . . . . . . . . . . . . .',
1074 . /15X,'NODE NUMBER DEFINING INJECTION CENTER .=',I10,
1075 . /15X,'NODE NUMBER DEFINING INJECTION AXIS . .=',I10,
1076 . /15X,'JETTING PRESSURE TIME CURVE NUMBER. . .=',I10,
1077 . /15X,'JETTING PRESSURE THETA CURVE NUMBER . .=',I10,
1078 . /15X,'JETTING PRESSURE DIST. CURVE NUMBER . .=',I10,
1079 . /15X,'TIME FUNCTION SCALE FACTOR . .=',1PG20.13,
1080 . /15X,'THETA FUNCTION SCALE FACTOR . .=',1PG20.13,
1081 . /15X,'DIST FUNCTION SCALE FACTOR . .=',1PG20.13/)
1082 1461 FORMAT(
1083 . 15X,'DIHEDRAL JET. . . . . . . . . . . . . .',
1084 . /15X,'NODE NUMBER DEFINING INJECTION CENTER .=',I10,
1085 . /15X,'NODE NUMBER DEFINING INJECTION AXIS . .=',I10,
1086 . /15X,'NODE NUMBER DEFINING BASE LINE. . . . .=',I10,
1087 . /15X,'JETTING PRESSURE TIME CURVE NUMBER. . .=',I10,
1088 . /15X,'JETTING PRESSURE THETA CURVE NUMBER . .=',I10,
1089 . /15X,'JETTING PRESSURE DIST. CURVE NUMBER . .=',I10,
1090 . /15X,'TIME FUNCTION SCALE FACTOR . .=',1PG20.13,
1091 . /15X,'THETA FUNCTION SCALE FACTOR . .=',1PG20.13,
1092 . /15X,'DIST FUNCTION SCALE FACTOR . .=',1PG20.13)
1093 1470 FORMAT(
1094 . /5X,'VENT HOLES AND POROUS FABRIC SURFACES ',
1095 . /5X,'------------------------------------- ',
1096 . /5X,'NUMBER OF VENT HOLES AND POROUS SURFACES . .=',I10,
1097 . /5X,'INJECTION TIME TINJ. . . . . . . . . . . . .=',1PG20.13)
1098 1471 FORMAT(
1099 . 5X,'VENTING START TIME SHIFT . . . . . . . . . .=',I10,
1100 . /5X,' 0 : NO SHIFT',
1101 . /5X,' 1 : JETTING FUNCTIONS ARE SHIFTED BY INJECTION TIME',
1102 . /5X,' 2 : JETTING AND VENTING FUNCTIONS ARE SHIFTED BY',
1103 . /5X,' INJECTION TIME TINJ',
1104 . /5X,' 3 : JETTING AND VENTING FUNCTIONS ARE SHIFTED',
1105 . /5X,' BY TINJ FOR JETTING FUNCTIONS',
1106 . /5X,' BY TINJ+TSTART FOR VENTING FUNCTIONS')
1107 1472 FORMAT(
1108 . / 5X,'VENT HOLE NUMBER. . . . . . . . . . . .=',I10,
1109 . /15X,'VENT HOLE SURFACE ID. . . . . . . . . .=',I10)
1110 1473 FORMAT(
1111 . / 5X,'POROUS SURFACE NUMBER . . . . . . . . .=',I10,
1112 . /15X,'POROUS SURFACE ID . . . . . . . . . . .=',I10)
1113 1476 FORMAT(
1114 . 15X,'TITLE . . . . . . . . . . . . . . . . .=',1X,A20)
1115 1481 FORMAT(15X,'ISENTHALPIC VENTING MODEL ')
1116 1482 FORMAT(15X,'CHEMKIN MODEL FOR POROSITY : ',
1117 . /15X,'VELOCITY VS RELATIVE PRESSURE FUNCTION =',I10,
1118 . /15X,' SCALE FACTOR. . . . . . .=',1PG20.13)
1119 1484 FORMAT(15X,'GRAEFE POROSITY FORMULATION')
1120 1485 FORMAT(15X,'ISENTHALPIC VENTING MODEL WITH POSSIBLE FLOW IN')
1121 1479 FORMAT(
1122 . 15X,'INITIAL SURFACE . . . . . . . . . . . .=',1PG20.13,
1123 . /15X,'AVENT:VENT HOLE SCALE FACTOR. . . . . .=',1PG20.13,
1124 . /15X,'BVENT:VENT HOLE SCALE FACTOR IF CONTACT=',1PG20.13,
1125 . /15X,'POROSITY FUNCTION / TIME. . . . . . . .=',I10,
1126 . /15X,'POROSITY FUNCTION / PRESSURE. . . . . .=',I10,
1127 . /15X,'POROSITY FUNCTION / AREA. . . . . . . .=',I10,
1128 . /15X,'POROSITY TIME FUNCTION SCALE FACTOR =',1PG20.13,
1129 . /15X,'POROSITY PRESSURE FUNCTION SCALE FACTOR=',1PG20.13,
1130 . /15X,'POROSITY AREA FUNCTION SCALE FACTOR . .=',1PG20.13,
1131 . /15X,'POROSITY FUNCTION / TIME(after contact)=',I10,
1132 . /15X,'POROSITY FUNCTION / PRESSURE. . . . . .=',I10,
1133 . /15X,'POROSITY FUNCTION / AREA. . . . . . . .=',I10,
1134 . /15X,'POROSITY TIME FUNCTION SCALE FACTOR =',1PG20.13,
1135 . /15X,'POROSITY PRESSURE FUNCTION SCALE FACTOR=',1PG20.13,
1136 . /15X,'POROSITY AREA FUNCTION SCALE FACTOR . .=',1PG20.13)
1137 1480 FORMAT(
1138 . 15X,'START TIME FOR VENTING TSTART . . . . .=',1PG20.13,
1139 . /15X,'RELATIVE PRES. FOR MEMBRANE DEFLATION .=',1PG20.13,
1140 . /15X,' (DPDEF = PDEF - PEXT) ',
1141 . /15X,'TIME DELAY BEFORE MEMBRANE DEFLATION .=',1PG20.13,
1142 . /15X,'TIME DELAY FLAG . . . . . . . . . . . .=',I10,
1143 . /15X,' IF IDTPDEF : 0',
1144 . /15X,' PRESSURE SHOULD BE OVER PDEF DURING',
1145 . /15X,' A CUMULATED DTPDEF TIME'
1146 . /15X,' BEFORE ACTIVATING DEFLATION'
1147 . /15X,' IF IDTPDEF : 1',
1148 . /15X,' DEFLATION START DTPDEF AFTER',
1149 . /15X,' DPDEF HAS BEEN REACHED',
1150 . /15X,'END TIME FOR VENTING TSTOP. . . . . . .=',1PG20.13)
1151 1489 FORMAT(
1152 . 15X,'AVENT:VENT HOLE AREA. . . . . . . . . .=',1PG20.13,
1153 . /15X,'BVENT:VENT HOLE SCALE FACTOR IF CONTACT=',1PG20.13,
1154 . /15X,'POROSITY FUNCTION / TIME. . . . . . . .=',I10,
1155 . /15X,'POROSITY FUNCTION / PRESSURE. . . . . .=',I10,
1156 . /15X,'POROSITY FUNCTION / AREA. . . . . . . .=',I10,
1157 . /15X,'POROSITY TIME FUNCTION SCALE FACTOR =',1PG20.13,
1158 . /15X,'POROSITY PRESSURE FUNCTION SCALE FACTOR=',1PG20.13,
1159 . /15X,'POROSITY AREA FUNCTION SCALE FACTOR . .=',1PG20.13,
1160 . /15X,'POROSITY FUNCTION / TIME(after contact)=',I10,
1161 . /15X,'POROSITY FUNCTION / PRESSURE. . . . . .=',I10,
1162 . /15X,'POROSITY FUNCTION / AREA. . . . . . . .=',I10,
1163 . /15X,'POROSITY TIME FUNCTION SCALE FACTOR =',1PG20.13,
1164 . /15X,'POROSITY PRESSURE FUNCTION SCALE FACTOR=',1PG20.13,
1165 . /15X,'POROSITY AREA FUNCTION SCALE FACTOR . .=',1PG20.13)
1166 1579 FORMAT(
1167 . 15X,'INITIAL SURFACE . . . . . . . . . . . .=',1PG20.13,
1168 . /15X,'BLOCKAGE IF CONTACT . . . . . . . . . .=',I10,
1169 . /15X,' =0 NO =1 YES')
1170 1580 FORMAT(
1171 . 15X,'START TIME FOR VENTING TSTART . . . . .=',1PG20.13,
1172 . /15X,'RELATIVE PRESSURE TO INITIATE LEAKAGE .=',1PG20.13,
1173 . /15X,' (DPDEF = PDEF - PEXT) ',
1174 . /15X,'TIME DELAY BEFORE LEAKAGE . . . . . . .=',1PG20.13,
1175 . /15X,'TIME DELAY FLAG . . . . . . . . . . . .=',I10,
1176 . /15X,' IF IDTPDEF = 0',
1177 . /15X,' PRESSURE SHOULD BE OVER PDEF DURING',
1178 . /15X,' A CUMULATED DTPDEF TIME '
1179 . /15X,' BEFORE INITIATING LEAKAGE'
1180 . /15X,' IF IDTPDEF = 1',
1181 . /15X,' DEFLATION STARTS DTPDEF AFTER',
1182 . /15X,' DPDEF HAS BEEN REACHED',
1183 . /15X,'END TIME FOR VENTING TSTOP. . . . . . .=',1PG20.13)
1184 1585 FORMAT(
1185 . 15X,'LEAKAGE COEFFICIENT . . . . . . . . . .=',1PG20.13,
1186 . /15X,'LEAKAGE AREA. . . . . . . . . . . . . .=',1PG20.13,
1187 . /15X,'LEAKAGE COEFFICIENT TIME FUNCTION . . .=',I10,
1188 . /15X,' SCALE FACTOR. . . . . . . . . .=',1PG20.13,
1189 . /15X,'LEAKAGE AREA TIME FUNCTION. . . . . . .=',I10,
1190 . /15X,' SCALE FACTOR. . . . . . . . . .=',1PG20.13)
1191 END SUBROUTINE HM_READ_MONVOL_TYPE7
1192 END MODULE HM_READ_MONVOL_TYPE7_MOD
#define my_real
Definition cppsort.cpp:32
subroutine hm_get_float_array_index(name, rval, index, is_available, lsubmodel, unitab)
subroutine hm_get_float_array_index_dim(name, dim_fac, 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 hm_read_monvol_type7(t_monvoln, ipm, igeo, itabm1, sensors, unitab, luid, npc, igrsurf, itab, x, pm, geo, ixc, ixtg, lsubmodel)
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
program starter
Definition starter.F:39