55 . UNITAB, LUID, NPC, IGRSURF, ITAB, X, PM, GEO, IXC, IXTG,
66 use element_mod ,
only : nixc,nixtg
70#include "implicit_f.inc"
87 INTEGER,
INTENT(IN) :: LUID, ITABM1(*), NPT(*)
88 INTEGER,
INTENT(IN) :: NPC(*), ITAB(*), IXC(NIXC, *), IXTG(NIXTG, *)
89 my_real,
INTENT(IN) :: x(3, *), geo(npropg, *), pm(npropm, *),pld(2, *)
90 TYPE (SURF_),
INTENT(INOUT),
DIMENSION(NSURF) :: IGRSURF
93 TYPE(
submodel_data),
DIMENSION(NSUBMOD),
INTENT(IN) :: LSUBMODEL
94 TYPE (SENSORS_) ,
INTENT(IN) :: SENSORS
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, DECREASE
103 my_real :: sa, rot, vol, vmin, veps, amu, sv,
105 INTEGER :: IEQUI, ITTF, NP, IP, IS, NJET, NVENT
106 my_real :: gamai, cpai, cpbi, cpci, cpi, cvi, rmwi, cpg, rmwg, rhoi, especi, ti2, mi,
108 my_real,
DIMENSION(:),
ALLOCATABLE :: gama, cpa, cpb, cpc, fmass, ftemp, fpt, fpa, fpz,
109 . tvent, dpdef, dtpdef, fvdp, avent, bvent, tstope, fport, fporp, fpora,
110 . fport1, fporp1,fpora1
111 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IMASS, IFLU, ITEMP, ISENS, IJET, NJ1, NJ2, NJ3,
112 . IPT, IPA, IPZ, IVDP, IDTPDEF, IPVENT, IFVENT, IPORT, IPORP, IPORA, IPORT1, IPORP1, IPORA1
113 CHARACTER(LEN = 40) :: MESS
114 INTEGER :: NCA, LCA, CHKSURF
115 INTEGER,
DIMENSION(:),
ALLOCATABLE :: COMM_ID, COMM_IPVENT
116 my_real,
DIMENSION(:),
ALLOCATABLE :: comm_dpdef, comm_avent, comm_tvent, comm_dtpdef
117 INTEGER :: NN, EXT_SURFID, JI, ITY, NN1, J1, JI1, ITY1, NEL
118 LOGICAL :: IS_AVAILABLE
127 mess =
'MONITORED VOLUME DEFINITION '
132 CALL hm_get_intv(
'surf_IDex', surfid, is_available, lsubmodel)
134 CALL hm_get_floatv(
'Ascalet', scal_t, is_available, lsubmodel, unitab)
135 CALL hm_get_floatv(
'AscaleP', scal_p, is_available, lsubmodel, unitab)
136 CALL hm_get_floatv(
'AscaleS', scal_s, is_available, lsubmodel, unitab)
137 CALL hm_get_floatv(
'AscaleA', scal_a, is_available, lsubmodel, unitab)
138 CALL hm_get_floatv('ascaled
', SCAL_D, IS_AVAILABLE, LSUBMODEL, UNITAB)
140 CALL HM_GET_FLOATV('mu
', AMU, IS_AVAILABLE, LSUBMODEL, UNITAB)
141 CALL HM_GET_FLOATV('pext
', PEXT, IS_AVAILABLE, LSUBMODEL, UNITAB)
142 CALL HM_GET_FLOATV('t0
', TI, IS_AVAILABLE, LSUBMODEL, UNITAB)
143 CALL HM_GET_INTV('iequi
', IEQUI, IS_AVAILABLE, LSUBMODEL)
144 CALL HM_GET_INTV('ittf
', ITTF, IS_AVAILABLE, LSUBMODEL)
146 CALL HM_GET_FLOATV('gammai
', GAMAI, IS_AVAILABLE, LSUBMODEL, UNITAB)
147 CALL HM_GET_FLOATV('cpai
', CPAI, IS_AVAILABLE, LSUBMODEL, UNITAB)
148 CALL HM_GET_FLOATV('cpbi
', CPBI, IS_AVAILABLE, LSUBMODEL, UNITAB)
149 CALL HM_GET_FLOATV('cpci
', CPCI, IS_AVAILABLE, LSUBMODEL, UNITAB)
151 CALL HM_GET_INTV('njet
', NJET, IS_AVAILABLE, LSUBMODEL)
152 T_MONVOLN%NJET = NJET
153 T_MONVOLN%IVOLU(8) = NJET
155 ALLOCATE(T_MONVOLN%IBAGJET(NIBJET, NJET))
156 T_MONVOLN%IBAGJET(1:NIBJET, 1:NJET) = 0
157 ALLOCATE(T_MONVOLN%RBAGJET(NRBJET, NJET))
158 T_MONVOLN%RBAGJET(1:NRBJET, 1:NJET) = ZERO
161 ALLOCATE(GAMA(NJET), CPA(NJET), CPB(NJET), CPC(NJET))
162 ALLOCATE(IMASS(NJET), IFLU(NJET), FMASS(NJET), ITEMP(NJET), FTEMP(NJET), ISENS(NJET))
163 ALLOCATE(IJET(NJET), NJ1(NJET), NJ2(NJET), NJ3(NJET))
164 ALLOCATE(IPT(NJET), IPA(NJET), IPZ(NJET), FPT(NJET), FPA(NJET), FPZ(NJET))
166 CALL HM_GET_FLOAT_ARRAY_INDEX('gamma
', GAMA(II), II, IS_AVAILABLE, LSUBMODEL, UNITAB)
167 CALL HM_GET_FLOAT_ARRAY_INDEX('cpa
', CPA(II), II, IS_AVAILABLE, LSUBMODEL, UNITAB)
168 CALL HM_GET_FLOAT_ARRAY_INDEX('cpb
', CPB(II), II, IS_AVAILABLE, LSUBMODEL, UNITAB)
169 CALL HM_GET_FLOAT_ARRAY_INDEX('cpc
', CPC(II), II, IS_AVAILABLE, LSUBMODEL, UNITAB)
171 CALL HM_GET_INT_ARRAY_INDEX('fct_idmas
', IMASS(II), II,IS_AVAILABLE, LSUBMODEL)
172 CALL HM_GET_INT_ARRAY_INDEX('iflow
', IFLU(II), II,IS_AVAILABLE, LSUBMODEL)
173 CALL HM_GET_FLOAT_ARRAY_INDEX('fscalemas
', FMASS(II), II, IS_AVAILABLE, LSUBMODEL, UNITAB)
174 CALL HM_GET_INT_ARRAY_INDEX('fct_idt
', ITEMP(II), II,IS_AVAILABLE, LSUBMODEL)
175 CALL HM_GET_FLOAT_ARRAY_INDEX('fscalet
', FTEMP(II), II, IS_AVAILABLE, LSUBMODEL, UNITAB)
176 CALL HM_GET_INT_ARRAY_INDEX('sens_id
', ISENS(II), II,IS_AVAILABLE, LSUBMODEL)
178 CALL HM_GET_INT_ARRAY_INDEX('ijet
', IJET(II), II,IS_AVAILABLE, LSUBMODEL)
179 CALL HM_GET_INT_ARRAY_INDEX('abg_n1
', NJ1(II), II,IS_AVAILABLE, LSUBMODEL)
180 CALL HM_GET_INT_ARRAY_INDEX('node_id2
', NJ2(II), II,IS_AVAILABLE, LSUBMODEL)
181 CALL HM_GET_INT_ARRAY_INDEX('node_id3
', NJ3(II), II,IS_AVAILABLE, LSUBMODEL)
186 IF (IJET(II) > 0) THEN
187 CALL HM_GET_INT_ARRAY_INDEX('fct_idpt
', IPT(II), II,IS_AVAILABLE, LSUBMODEL)
188 CALL HM_GET_INT_ARRAY_INDEX('fctidpthet
', IPA(II), II,IS_AVAILABLE, LSUBMODEL)
189 CALL HM_GET_INT_ARRAY_INDEX('fctidpdelt
', IPZ(II), II,IS_AVAILABLE, LSUBMODEL)
190 CALL HM_GET_FLOAT_ARRAY_INDEX('fscalept
', FPT(II), II, IS_AVAILABLE, LSUBMODEL, UNITAB)
191 CALL HM_GET_FLOAT_ARRAY_INDEX('fscaleptheta
', FPA(II), II, IS_AVAILABLE, LSUBMODEL, UNITAB)
192 CALL HM_GET_FLOAT_ARRAY_INDEX('fscalepdelta
', FPZ(II), II, IS_AVAILABLE, LSUBMODEL, UNITAB)
197 CALL HM_GET_INTV('nvent
', NVENT, IS_AVAILABLE, LSUBMODEL)
198 T_MONVOLN%IVOLU(11) = NVENT
199 T_MONVOLN%NVENT = NVENT
201 ALLOCATE(T_MONVOLN%IBAGHOL(NIBHOL, NVENT))
202 T_MONVOLN%IBAGHOL(1:NIBHOL, 1:NVENT) = 0
203 ALLOCATE(T_MONVOLN%RBAGHOL(NRBHOL, NVENT))
204 T_MONVOLN%RBAGHOL(1:NRBHOL, 1:NVENT) = ZERO
207 ALLOCATE(TVENT(NVENT), DPDEF(NVENT), DTPDEF(NVENT), FVDP(NVENT), AVENT(NVENT),
208 . BVENT(NVENT), TSTOPE(NVENT))
209 ALLOCATE(IPVENT(NVENT), IVDP(NVENT), IDTPDEF(NVENT), IFVENT(NVENT))
210 ALLOCATE(IPORT(NVENT), IPORP(NVENT), IPORA(NVENT), IPORT1(NVENT),
211 . IPORP1(NVENT), IPORA1(NVENT))
212 ALLOCATE(FPORT(NVENT), FPORP(NVENT), FPORA(NVENT), FPORT1(NVENT),
213 . FPORP1(NVENT), FPORA1(NVENT))
216 CALL HM_GET_INT_ARRAY_INDEX('surf_idv
', IPVENT(II), II, IS_AVAILABLE, LSUBMODEL)
217 CALL HM_GET_FLOAT_ARRAY_INDEX('avent
', AVENT(II), II, IS_AVAILABLE, LSUBMODEL, UNITAB)
218 CALL HM_GET_FLOAT_ARRAY_INDEX('bvent
', BVENT(II), II, IS_AVAILABLE, LSUBMODEL, UNITAB)
219 CALL HM_GET_FLOAT_ARRAY_INDEX('tstop
', TSTOPE(II), II, IS_AVAILABLE, LSUBMODEL, UNITAB)
221 CALL HM_GET_FLOAT_ARRAY_INDEX('tvent
', TVENT(II), II, IS_AVAILABLE, LSUBMODEL, UNITAB)
222 CALL HM_GET_FLOAT_ARRAY_INDEX('deltapdef
', DPDEF(II), II, IS_AVAILABLE, LSUBMODEL, UNITAB)
223 CALL HM_GET_FLOAT_ARRAY_INDEX('deltatpdef
', DTPDEF(II), II, IS_AVAILABLE, LSUBMODEL, UNITAB)
224 CALL HM_GET_INT_ARRAY_INDEX('fct_idv
', IVDP(II), II,IS_AVAILABLE, LSUBMODEL)
225 CALL HM_GET_FLOAT_ARRAY_INDEX('fscalev
', FVDP(II), II, IS_AVAILABLE, LSUBMODEL, UNITAB)
226 CALL HM_GET_INT_ARRAY_INDEX('idtpdef
', IDTPDEF(II), II,IS_AVAILABLE, LSUBMODEL)
228 CALL HM_GET_INT_ARRAY_INDEX('fct_idt
', IPORT(II), II,IS_AVAILABLE, LSUBMODEL)
229 CALL HM_GET_INT_ARRAY_INDEX('fct_idp
', IPORP(II), II,IS_AVAILABLE, LSUBMODEL)
230 CALL HM_GET_INT_ARRAY_INDEX('fct_ida
', IPORA(II), II,IS_AVAILABLE, LSUBMODEL)
231 CALL HM_GET_FLOAT_ARRAY_INDEX('fscalet
', FPORT(II), II, IS_AVAILABLE, LSUBMODEL, UNITAB)
232 CALL HM_GET_FLOAT_ARRAY_INDEX('fscalep
', FPORP(II), II, IS_AVAILABLE, LSUBMODEL, UNITAB)
233 CALL HM_GET_FLOAT_ARRAY_INDEX('fscalea
', FPORA(II), II, IS_AVAILABLE, LSUBMODEL, UNITAB)
235 CALL HM_GET_INT_ARRAY_INDEX("fct_IDt'", IPORT1(II), II,IS_AVAILABLE, LSUBMODEL)
236 CALL HM_GET_INT_ARRAY_INDEX("fct_idp
'", IPORP1(II), II,IS_AVAILABLE, LSUBMODEL)
237 CALL HM_GET_INT_ARRAY_INDEX("fct_IDA'", IPORA1(II), II,IS_AVAILABLE, LSUBMODEL)
238 CALL HM_GET_FLOAT_ARRAY_INDEX("fscalet
'", FPORT1(II), II, IS_AVAILABLE, LSUBMODEL, UNITAB)
239 CALL HM_GET_FLOAT_ARRAY_INDEX("FscaleP'", FPORP1(II), II, IS_AVAILABLE, LSUBMODEL, UNITAB)
240 CALL HM_GET_FLOAT_ARRAY_INDEX("fscalea
'", FPORA1(II), II, IS_AVAILABLE, LSUBMODEL, UNITAB)
243! Specific cards communicating airbags
244 CALL HM_GET_INTV('nbag
', NCA, IS_AVAILABLE, LSUBMODEL)
247 T_MONVOLN%IVOLU(3) = NCA
249 ALLOCATE(COMM_ID(NCA), COMM_IPVENT(NCA))
250 ALLOCATE(COMM_DPDEF(NCA), COMM_AVENT(NCA), COMM_TVENT(NCA), COMM_DTPDEF(NCA))
252 CALL HM_GET_INT_ARRAY_INDEX('bag_id1
', COMM_ID(1), II,IS_AVAILABLE, LSUBMODEL)
253 CALL HM_GET_INT_ARRAY_INDEX('surf_id1
', COMM_IPVENT(1), II,IS_AVAILABLE, LSUBMODEL)
254 CALL HM_GET_FLOAT_ARRAY_INDEX('dpdiff1
', COMM_DPDEF(1), II, IS_AVAILABLE, LSUBMODEL, UNITAB)
255 CALL HM_GET_FLOAT_ARRAY_INDEX('acom1
', COMM_AVENT(1), II, IS_AVAILABLE, LSUBMODEL, UNITAB)
256 CALL HM_GET_FLOAT_ARRAY_INDEX('tcom1
', COMM_TVENT(1), II, IS_AVAILABLE, LSUBMODEL, UNITAB)
257 CALL HM_GET_FLOAT_ARRAY_INDEX('dtpdefcommu1
', COMM_DTPDEF(1), II, IS_AVAILABLE, LSUBMODEL, UNITAB)
260 CALL HM_GET_INT_ARRAY_INDEX('bag_id2
', COMM_ID(2), II,IS_AVAILABLE, LSUBMODEL)
261 CALL HM_GET_INT_ARRAY_INDEX('surf_id2
', COMM_IPVENT(2), II,IS_AVAILABLE, LSUBMODEL)
262 CALL HM_GET_FLOAT_ARRAY_INDEX('dpdiff2
', COMM_DPDEF(2), II, IS_AVAILABLE, LSUBMODEL, UNITAB)
263 CALL HM_GET_FLOAT_ARRAY_INDEX('acom2
', COMM_AVENT(2), II, IS_AVAILABLE, LSUBMODEL, UNITAB)
264 CALL HM_GET_FLOAT_ARRAY_INDEX('tcom2
', COMM_TVENT(2), II, IS_AVAILABLE, LSUBMODEL, UNITAB)
265 CALL HM_GET_FLOAT_ARRAY_INDEX('dtpdefcommu2
', COMM_DTPDEF(2), II, IS_AVAILABLE, LSUBMODEL, UNITAB)
268 CALL HM_GET_INT_ARRAY_INDEX('bag_id3
', COMM_ID(3), II,IS_AVAILABLE, LSUBMODEL)
269 CALL HM_GET_INT_ARRAY_INDEX('surf_id3
', COMM_IPVENT(3), II,IS_AVAILABLE, LSUBMODEL)
270 CALL HM_GET_FLOAT_ARRAY_INDEX('dpdiff3
', COMM_DPDEF(3), II, IS_AVAILABLE, LSUBMODEL, UNITAB)
271 CALL HM_GET_FLOAT_ARRAY_INDEX('acom3
', COMM_AVENT(3), II, IS_AVAILABLE, LSUBMODEL, UNITAB)
272 CALL HM_GET_FLOAT_ARRAY_INDEX('tcom3
', COMM_TVENT(3), II, IS_AVAILABLE, LSUBMODEL, UNITAB)
273 CALL HM_GET_FLOAT_ARRAY_INDEX('dtpdefcommu3
', COMM_DTPDEF(3), II, IS_AVAILABLE, LSUBMODEL, UNITAB)
276 CALL HM_GET_INT_ARRAY_INDEX('bag_id4
', COMM_ID(4), II,IS_AVAILABLE, LSUBMODEL)
277 CALL HM_GET_INT_ARRAY_INDEX('surf_id4
', COMM_IPVENT(4), II,IS_AVAILABLE, LSUBMODEL)
278 CALL HM_GET_FLOAT_ARRAY_INDEX('dpdiff4
', COMM_DPDEF(4), II, IS_AVAILABLE, LSUBMODEL, UNITAB)
279 CALL HM_GET_FLOAT_ARRAY_INDEX('acom4
', COMM_AVENT(4), II, IS_AVAILABLE, LSUBMODEL, UNITAB)
280 CALL HM_GET_FLOAT_ARRAY_INDEX('tcom4
', COMM_TVENT(4), II, IS_AVAILABLE, LSUBMODEL, UNITAB)
281 CALL HM_GET_FLOAT_ARRAY_INDEX('dtpdefcommu4
', COMM_DTPDEF(4), II, IS_AVAILABLE, LSUBMODEL, UNITAB)
284 CALL HM_GET_INT_ARRAY_INDEX('bag_id5
', COMM_ID(5), II,IS_AVAILABLE, LSUBMODEL)
285 CALL HM_GET_INT_ARRAY_INDEX('surf_id5
', COMM_IPVENT(5), II,IS_AVAILABLE, LSUBMODEL)
286 CALL HM_GET_FLOAT_ARRAY_INDEX('dpdiff5
', COMM_DPDEF(5), II, IS_AVAILABLE, LSUBMODEL, UNITAB)
287 CALL HM_GET_FLOAT_ARRAY_INDEX('acom5
', COMM_AVENT(5), II, IS_AVAILABLE, LSUBMODEL, UNITAB)
288 CALL HM_GET_FLOAT_ARRAY_INDEX('tcom5
', COMM_TVENT(5), II, IS_AVAILABLE, LSUBMODEL, UNITAB)
289 CALL HM_GET_FLOAT_ARRAY_INDEX('dtpdefcommu5
', COMM_DTPDEF(5), II, IS_AVAILABLE, LSUBMODEL, UNITAB)
296 T_MONVOLN%IVOLU(4) = 0
299 IF (SURFID == IGRSURF(II)%ID) THEN
300 T_MONVOLN%IVOLU(4) = II
301 T_MONVOLN%EXT_SURFID = II
306.NOT.
IF ( FOUND) THEN
308 ELSEIF (IGRSURF(T_MONVOLN%IVOLU(4))%ISH4N3N == 0) THEN
309 CALL ANCMSG(MSGID = 18, ANMODE = ANINFO, MSGTYPE = MSGERROR,
310 . I1 = T_MONVOLN%ID, C1 = T_MONVOLN%TITLE, I2 = SURFID)
315 CALL MONVOL_CHECK_SURFCLOSE(T_MONVOLN, ITAB, IGRSURF(T_MONVOLN%EXT_SURFID), X)
317 CALL MONVOL_ORIENT_SURF(T_MONVOLN, T_MONVOLN%TITLE, T_MONVOLN%IVOLU, ITAB,
318 . IGRSURF(T_MONVOLN%EXT_SURFID),IXC, IXTG, X, 10)
320 CALL MONVOL_COMPUTE_VOLUME(T_MONVOLN, T_MONVOLN%TITLE, T_MONVOLN%IVOLU, IGRSURF(T_MONVOLN%EXT_SURFID),
321 . ITAB, X, PM, GEO, IXC, IXTG,
322 . SA, ROT, VOL, VMIN, VEPS, SV)
324 CALL MONVOL_REVERSE_NORMALS(T_MONVOLN, T_MONVOLN%TITLE, T_MONVOLN%IVOLU, ITAB,
325 . IGRSURF(T_MONVOLN%EXT_SURFID),IXC,IXTG,VOL, X, 10)
328.OR.
IF (ITTF < 0 ITTF > 3) THEN
329 CALL ANCMSG(MSGID = 773, ANMODE = ANINFO, MSGTYPE = MSGERROR,
330 . I1 = T_MONVOLN%ID, C1 = T_MONVOLN%TITLE)
335 FAC_M = UNITAB%FAC_M(LUID)
336 FAC_L = UNITAB%FAC_L(LUID)
337 FAC_T = UNITAB%FAC_T(LUID)
338 FAC_C = FAC_M / (FAC_L * FAC_T * FAC_T)
343 IF (SCAL_T == ZERO) THEN
344 CALL HM_GET_FLOATV_DIM('ascalet
', FAC_GEN, IS_AVAILABLE, LSUBMODEL, UNITAB)
345 SCAL_T = ONE * FAC_GEN
347 IF (SCAL_P == ZERO) THEN
348 CALL HM_GET_FLOATV_DIM('ascalep
', FAC_GEN, IS_AVAILABLE, LSUBMODEL, UNITAB)
349 SCAL_P = ONE * FAC_GEN
351 IF (SCAL_S == ZERO) THEN
352 CALL HM_GET_FLOATV_DIM('ascales
', FAC_GEN, IS_AVAILABLE, LSUBMODEL, UNITAB)
353 SCAL_S = ONE * FAC_GEN
355 IF (SCAL_A == ZERO) THEN
356 CALL HM_GET_FLOATV_DIM('ascalea
', FAC_GEN, IS_AVAILABLE, LSUBMODEL, UNITAB)
357 SCAL_A = ONE * FAC_GEN
359 IF (SCAL_D == ZERO) THEN
360 CALL HM_GET_FLOATV_DIM('ascaled
', FAC_GEN, IS_AVAILABLE, LSUBMODEL, UNITAB)
361 SCAL_D = ONE * FAC_GEN
363 IF (AMU == ZERO) AMU = EM02
364 IF(PEXT == ZERO) THEN
365 PEXT = 101325.D0 * (UNITAB%FAC_L_WORK * UNITAB%FAC_T_WORK * UNITAB%FAC_T_WORK) / UNITAB%FAC_M_WORK
368 IF (TI == ZERO) TI = TWOHUNDRED95
371.AND.
IF (IMASS(II) /= 0 FMASS(II) == ZERO) THEN
372 CALL HM_GET_FLOATV_DIM('fscalemas
', FAC_GEN, IS_AVAILABLE, LSUBMODEL, UNITAB)
373 FMASS(II) = ONE * FAC_GEN
375.AND.
IF (ITEMP(II) /= 0 FTEMP(II) == ZERO) THEN
376 CALL HM_GET_FLOATV_DIM('fscalet
', FAC_GEN, IS_AVAILABLE, LSUBMODEL, UNITAB)
377 FTEMP(II) = ONE * FAC_GEN
379 IF (FPT(II) == ZERO) THEN
380 CALL HM_GET_FLOATV_DIM('fscalept
', FAC_GEN, IS_AVAILABLE, LSUBMODEL, UNITAB)
381 FPT(II) = ONE * FAC_GEN
383 IF (FPA(II) == ZERO) THEN
384 CALL HM_GET_FLOATV_DIM('fscaleptheta
', FAC_GEN, IS_AVAILABLE, LSUBMODEL, UNITAB)
385 FPA(II) = ONE * FAC_GEN
387 IF (FPZ(II) == ZERO) THEN
388 CALL HM_GET_FLOATV_DIM('fscalepdelta
', FAC_GEN, IS_AVAILABLE, LSUBMODEL, UNITAB)
389 FPZ(II) = ONE * FAC_GEN
393 IF (IVDP(II) > 0) IFVENT(II) = 2
394 IF (IPVENT(II) == 0) THEN
397 IF (FPORT(II) == ZERO) FPORT(II) = ONE
398 IF (FPORP(II) == ZERO) FPORP(II) = ONE
399 IF (FPORA(II) == ZERO) FPORA(II) = ONE
400 IF (FPORT1(II) == ZERO) FPORT1(II) = ONE
401 IF (FPORP1(II) == ZERO) FPORP1(II) = ONE
402 IF (FPORA1(II) == ZERO) FPORA1(II) = ONE
405 CPI = CPAI + TI * (CPBI + CPCI * TI)
407 RMWI = CVI * (GAMAI - ONE)
408 MI = PINI * (VOL + VEPS) / (RMWI * TI)
411 IF (ISENS(II) > 0) THEN
413 DO IS = 1, SENSORS%NSENSOR
414 IF (ISENS(II) == SENSORS%SENSOR_TAB(IS)%SENS_ID) THEN
415 T_MONVOLN%IBAGJET(4, II) = IS
416 IF (SENSORS%SENSOR_TAB(IS)%TCRIT < TTFIRE) TTFIRE = SENSORS%SENSOR_TAB(IS)%TCRIT
421.NOT.
IF ( FOUND) THEN
422 CALL ANCMSG(MSGID = 17, ANMODE = ANINFO, MSGTYPE = MSGERROR,
423 . I2 = ISENS(II), I1 = T_MONVOLN%ID, C1 = T_MONVOLN%TITLE)
427 IF (TTFIRE == INFINITY) THEN
434 T_MONVOLN%RVOLU(26) = ONE / SCAL_T
435 T_MONVOLN%RVOLU(27) = ONE / SCAL_P
436 T_MONVOLN%RVOLU(28) = ONE / SCAL_S
437 T_MONVOLN%RVOLU(29) = ONE / SCAL_A
438 T_MONVOLN%RVOLU(30) = ONE / SCAL_D
440 IF (IEQUI > 0) IEQUI = 1
441 T_MONVOLN%IVOLU(15) = IEQUI
442 T_MONVOLN%IVOLU(17) = ITTF
443 T_MONVOLN%IVOLU(8) = NJET
445 T_MONVOLN%RVOLU(31) = PINI
446 T_MONVOLN%RVOLU(7) = CPAI
447 T_MONVOLN%RVOLU(8) = CPBI
448 T_MONVOLN%RVOLU(9) = CPCI
449 T_MONVOLN%RVOLU(10) = RMWI
450 T_MONVOLN%RVOLU(49) = TTFIRE
452 T_MONVOLN%RVOLU(1) = GAMAI
453 T_MONVOLN%RVOLU(3) = PEXT
454 T_MONVOLN%RVOLU(4) = VOL+VEPS
455 T_MONVOLN%RVOLU(11) = MI
456 T_MONVOLN%RVOLU(12) = PINI
457 T_MONVOLN%RVOLU(13) = TI
458 T_MONVOLN%RVOLU(14) = RMWI*MI
459 T_MONVOLN%RVOLU(17) = VEPS
460 T_MONVOLN%RVOLU(20) = MI
461 T_MONVOLN%RVOLU(25) = TI
462 T_MONVOLN%RVOLU(61) = GAMAI
463 RHOI = PINI / (TI * RMWI)
464 T_MONVOLN%RVOLU(62) = RHOI
466 ESPECI = TI * (CPAI + HALF * CPBI * TI + THIRD * CPCI * TI2 - RMWI)
468 T_MONVOLN%RVOLU(63) = ESPECI + RMWI * TI
469 T_MONVOLN%RVOLU(64) = ZERO
470 T_MONVOLN%RVOLU(65) = ZERO
471 T_MONVOLN%RVOLU(66) = ESPECI
473 T_MONVOLN%IBAGJET(13, II) = 0
474 T_MONVOLN%RBAGJET(1, II) = GAMA(II)
475 T_MONVOLN%RBAGJET(2, II) = CPA(II)
476 T_MONVOLN%RBAGJET(3, II) = CPB(II)
477 T_MONVOLN%RBAGJET(4, II) = CPC(II)
478 T_MONVOLN%RBAGJET(5, II) = FMASS(II)
479 T_MONVOLN%RBAGJET(6, II) = FTEMP(II)
480 T_MONVOLN%RBAGJET(12, II) = FPT(II)
481 T_MONVOLN%RBAGJET(13, II) = FPA(II)
482 T_MONVOLN%RBAGJET(14, II) = FPZ(II)
483 IF (IMASS(II) == 0)THEN
484 T_MONVOLN%IBAGJET(1, II) = 0
488 IF (IMASS(II) == NPC(JJ)) THEN
489 T_MONVOLN%IBAGJET(1, II) = JJ
491 NP = (NPT(JJ + 1) - NPT(JJ)) / 2
492 IF (IFLU(II) == 0) THEN
493 DO IP = (NPT(JJ) - 1) / 2 + 1, (NPT(JJ + 1) - 1) / 2 - 1
494 IF (PLD(2, IP + 1) < PLD(2, IP)) DECREASE = .TRUE.
497 CALL ANCMSG(MSGID=540, MSGTYPE = MSGWARNING, ANMODE = ANINFO_BLIND_1,
498 . I1 = T_MONVOLN%ID, C1 = T_MONVOLN%TITLE, I2 = IMASS(II), I3 = II)
501 DO IP = (NPT(JJ) - 1) / 2 + 1, (NPT(JJ + 1) - 1) / 2
502 IF (PLD(2, IP) < ZERO) DECREASE = .TRUE.
505 CALL ANCMSG(MSGID = 541, MSGTYPE = MSGWARNING, ANMODE = ANINFO_BLIND_1,
506 . I1 = T_MONVOLN%ID, C1 = T_MONVOLN%TITLE, I2 = IMASS(II), I3 = II)
513.NOT.
IF ( FOUND) THEN
514 CALL ANCMSG(MSGID = 10, ANMODE = ANINFO, MSGTYPE = MSGERROR,
515 . I2 = IMASS(II), I1 = T_MONVOLN%ID, C1 = T_MONVOLN%TITLE)
518 T_MONVOLN%IBAGJET(2, II) = IFLU(II)
519 IF (ITEMP(II) == 0) THEN
520 T_MONVOLN%IBAGJET(3, II) = 0
524 IF (ITEMP(II) == NPC(JJ)) THEN
525 T_MONVOLN%IBAGJET(3, II) = JJ
530.NOT.
IF ( FOUND) THEN
531 CALL ANCMSG(MSGID = 11, ANMODE = ANINFO, MSGTYPE = MSGERROR,
532 . I2 = ITEMP(II), I1 = T_MONVOLN%ID, C1 = T_MONVOLN%TITLE)
536 IF (IJET(II) > 0) THEN
537 T_MONVOLN%IBAGJET(5, II) = USR2SYS(NJ1(II), ITABM1, MESS, T_MONVOLN%ID)
538 T_MONVOLN%IBAGJET(6, II) = USR2SYS(NJ2(II), ITABM1, MESS, T_MONVOLN%ID)
539 IF(NJ3(II) /= 0) THEN
540 T_MONVOLN%IBAGJET(7, II) = USR2SYS(NJ3(II), ITABM1, MESS, T_MONVOLN%ID)
544 IF (IPT(II) == NPC(JJ)) THEN
545 T_MONVOLN%IBAGJET(8, II) = JJ
550.NOT.
IF ( FOUND) THEN
551 CALL ANCMSG(MSGID = 12, ANMODE = ANINFO, MSGTYPE = MSGERROR,
552 . I2 = IPT(II), I1 = T_MONVOLN%ID, C1 = T_MONVOLN%TITLE)
556 IF (IPA(II) == NPC(JJ)) THEN
557 T_MONVOLN%IBAGJET(9, II) = JJ
562.NOT.
IF ( FOUND) THEN
563 CALL ANCMSG(MSGID = 13, ANMODE = ANINFO, MSGTYPE = MSGERROR,
564 . I2 = IPA(II), I1 = T_MONVOLN%ID, C1 = T_MONVOLN%TITLE)
568 IF (IPZ(II) == NPC(JJ)) THEN
569 T_MONVOLN%IBAGJET(10, II) = JJ
574.NOT.
IF ( FOUND) THEN
575 CALL ANCMSG(MSGID = 14, ANMODE = ANINFO, MSGTYPE = MSGERROR,
576 . I2 = IPZ(II), I1 = T_MONVOLN%ID, C1 = T_MONVOLN%TITLE)
579 CPG = CPA(II) + TI * (CPB(II) + CPC(II) * TI)
580 RMWG = CPG * (GAMA(II) - ONE) / GAMA(II)
581 T_MONVOLN%RBAGJET(1, II) = RMWG
582 IF (NJ1(II) == 0) THEN
587 IF (NJ3(II) == 0) THEN
588 T_MONVOLN%IBAGJET(7, II) = T_MONVOLN%IBAGJET(5, II)
593 T_MONVOLN%IBAGHOL(13, II) = 0
594 T_MONVOLN%RBAGHOL(7, II) = FPORT(II)
595 T_MONVOLN%RBAGHOL(8, II) = FPORP(II)
596 T_MONVOLN%RBAGHOL(9, II) = FPORA(II)
597 T_MONVOLN%RBAGHOL(10, II) = FPORT1(II)
598 T_MONVOLN%RBAGHOL(11, II) = FPORP1(II)
599 T_MONVOLN%RBAGHOL(12, II) = FPORA1(II)
600 T_MONVOLN%IBAGHOL(1, II) = 0
601 T_MONVOLN%IBAGHOL(10, II) = IFVENT(II)
602 T_MONVOLN%IBAGHOL(11, II) = IDTPDEF(II)
603 T_MONVOLN%IBAGHOL(12, II) = 0
604 IF (IPVENT(II) == 0) THEN
605 T_MONVOLN%IBAGHOL(2, II) = 0
607 T_MONVOLN%IBAGHOL(2, II) = 0
610 IF (IPVENT(II) == IGRSURF(JJ)%ID) THEN
611 T_MONVOLN%IBAGHOL(2, II) = JJ
617 CALL ANCMSG(MSGID = 532, ANMODE = ANINFO, MSGTYPE = MSGERROR,
618 . I2 = IPVENT(II), I1 = T_MONVOLN%ID, C1 = T_MONVOLN%TITLE)
619 ELSEIF(IGRSURF(T_MONVOLN%IBAGHOL(2, II))%ISH4N3N == 0) THEN
620 CALL ANCMSG(MSGID = 330, ANMODE = ANINFO, MSGTYPE = MSGERROR,
621 . I1 = T_MONVOLN%ID, C1 = T_MONVOLN%TITLE)
623 IF (AVENT(II) == ZERO) AVENT(II) = ONE
625 IF (AVENT(II) == ZERO) DPDEF(II) = INFINITY
626 IF (AVENT(II) == ZERO) TVENT(II) = INFINITY
627.AND..AND.
IF (DPDEF(II) == ZERO DTPDEF(II) == ZERO TVENT(II) == ZERO) THEN
628 T_MONVOLN%IBAGHOL(1, II) = 1
630 T_MONVOLN%RBAGHOL(1, II) = DPDEF(II)
631 T_MONVOLN%RBAGHOL(2, II) = AVENT(II)
632 T_MONVOLN%RBAGHOL(3, II) = TVENT(II)
633 T_MONVOLN%RBAGHOL(4, II) = DTPDEF(II)
634 T_MONVOLN%RBAGHOL(6, II) = BVENT(II)
635.AND.
IF (IVDP(II) /= 0 FVDP(II) == ZERO) FVDP(II) = ONE
636 T_MONVOLN%RBAGHOL(13, II) = FVDP(II)
637 IF (TSTOPE(II) == ZERO) TSTOPE(II) = INFINITY
638 T_MONVOLN%RBAGHOL(14, II) = TSTOPE(II)
640 T_MONVOLN%IBAGHOL(3, II) = -1
641 T_MONVOLN%IBAGHOL(4, II) = -1
642 T_MONVOLN%IBAGHOL(5, II) = -1
643 T_MONVOLN%IBAGHOL(6, II) = -1
644 T_MONVOLN%IBAGHOL(7, II) = -1
645 T_MONVOLN%IBAGHOL(8, II) = -1
646 T_MONVOLN%IBAGHOL(9, II) = -1
648 IF (IPORT(II) == NPC(JJ)) T_MONVOLN%IBAGHOL(3, II) = JJ
649 IF (IPORP(II) == NPC(JJ)) T_MONVOLN%IBAGHOL(4, II) = JJ
650 IF (IPORA(II) == NPC(JJ)) T_MONVOLN%IBAGHOL(5, II) = JJ
651 IF (IPORT1(II) == NPC(JJ)) T_MONVOLN%IBAGHOL(6, II) = JJ
652 IF (IPORP1(II) == NPC(JJ)) T_MONVOLN%IBAGHOL(7, II) = JJ
653 IF (IPORA1(II) == NPC(JJ)) T_MONVOLN%IBAGHOL(8, II) = JJ
654 IF (IVDP(II) == NPC(JJ)) T_MONVOLN%IBAGHOL(9, II) = JJ
656 IF (IPORT(II) == 0) T_MONVOLN%IBAGHOL(3, II) = 0
657 IF (IPORP(II) == 0) T_MONVOLN%IBAGHOL(4, II) = 0
658 IF (IPORA(II) == 0) T_MONVOLN%IBAGHOL(5, II) = 0
659 IF (IPORT1(II) == 0) T_MONVOLN%IBAGHOL(6, II) = 0
660 IF (IPORP1(II) == 0) T_MONVOLN%IBAGHOL(7, II) = 0
661 IF (IPORA1(II) == 0) T_MONVOLN%IBAGHOL(8, II) = 0
662 IF (IVDP(II) == 0) T_MONVOLN%IBAGHOL(9, II) = 0
663 IF (T_MONVOLN%IBAGHOL(3, II) == -1) THEN
664 T_MONVOLN%IBAGHOL(3, II) = 0
665 CALL ANCMSG(MSGID = 331, ANMODE = ANINFO, MSGTYPE = MSGERROR,
666 . I1 = T_MONVOLN%ID, C1 = T_MONVOLN%TITLE, I2 = IPORT(II))
668 IF (T_MONVOLN%IBAGHOL(4, II) == -1) THEN
669 T_MONVOLN%IBAGHOL(4, II) = 0
670 CALL ANCMSG(MSGID = 332, ANMODE = ANINFO, MSGTYPE = MSGERROR,
671 . I1 = T_MONVOLN%ID, C1 = T_MONVOLN%TITLE, I2 = IPORP(II))
673 IF (T_MONVOLN%IBAGHOL(5, II) == -1) THEN
674 T_MONVOLN%IBAGHOL(5, II)=0
675 CALL ANCMSG(MSGID = 333, ANMODE = ANINFO, MSGTYPE = MSGERROR,
676 . I1 = T_MONVOLN%ID, C1 = T_MONVOLN%TITLE, I2 = IPORA(II))
678 IF (T_MONVOLN%IBAGHOL(6, II) == -1) THEN
679 T_MONVOLN%IBAGHOL(6, II) = 0
680 CALL ANCMSG(MSGID=331, ANMODE=ANINFO, MSGTYPE=MSGERROR,
681 . I1 = T_MONVOLN%ID, C1 = T_MONVOLN%TITLE, I2 = IPORT1(II))
683 IF (T_MONVOLN%IBAGHOL(7, II) == -1) THEN
684 T_MONVOLN%IBAGHOL(7, II)=0
685 CALL ANCMSG(MSGID=332, ANMODE=ANINFO, MSGTYPE=MSGERROR,
686 . I1 = T_MONVOLN%ID, C1 = T_MONVOLN%TITLE, I2 = IPORP1(II))
688 IF (T_MONVOLN%IBAGHOL(8, II) == -1) THEN
689 T_MONVOLN%IBAGHOL(8, II) = 0
690 CALL ANCMSG(MSGID=333, ANMODE=ANINFO, MSGTYPE=MSGERROR,
691 . I1 = T_MONVOLN%ID, C1 = T_MONVOLN%TITLE, I2 = IPORA1(II))
693 IF (T_MONVOLN%IBAGHOL(9, II) == -1) THEN
694 T_MONVOLN%IBAGHOL(9, II) = 0
695 CALL ANCMSG(MSGID = 518, ANMODE = ANINFO, MSGTYPE = MSGERROR,
696 . I1 = T_MONVOLN%ID, C1 = T_MONVOLN%TITLE, I2 = IVDP(II))
701 LCA = T_MONVOL_METADATA%LCA
704 T_MONVOL_METADATA%ICBAG(1, II + LCA) = COMM_ID(II)
705 T_MONVOL_METADATA%ICBAG(2, II + LCA) = 0
706 T_MONVOL_METADATA%ICBAG(3, II + LCA) = 0
707 T_MONVOL_METADATA%ICBAG(4, II + LCA) = 0
708 IF (COMM_AVENT(II) < ZERO) THEN
709 CALL ANCMSG(MSGID = 1002, ANMODE = ANINFO, MSGTYPE = MSGERROR,
710 . I1 = T_MONVOLN%ID, I2 = COMM_ID(II), R1 = COMM_AVENT(II))
712 IF (COMM_IPVENT(II) /= 0) THEN
713 IF (COMM_AVENT(II) == ZERO) COMM_AVENT(II) = ONE
715 IF (COMM_IPVENT(II) == IGRSURF(JJ)%ID) THEN
716 T_MONVOL_METADATA%ICBAG(2, II + LCA) = JJ
719 IF (T_MONVOL_METADATA%ICBAG(2, II + LCA) == 0) THEN
720 CALL ANCMSG(MSGID = 532, ANMODE = ANINFO, MSGTYPE = MSGERROR,
721 . I2 = COMM_IPVENT(II), I1 = T_MONVOLN%ID, C1 = T_MONVOLN%TITLE)
722 ELSEIF (IGRSURF(T_MONVOL_METADATA%ICBAG(2, II + LCA))%ISH4N3N == 0) THEN
723 CALL ANCMSG(MSGID = 18, ANMODE = ANINFO, MSGTYPE = MSGERROR,
724 . I2 = IGRSURF(T_MONVOL_METADATA%ICBAG(2, II + LCA))%ID, I1 = T_MONVOLN%ID,
725 . C1 = T_MONVOLN%TITLE)
730 NN = IGRSURF(T_MONVOL_METADATA%ICBAG(2, II + LCA))%NSEG
731 EXT_SURFID = T_MONVOLN%EXT_SURFID
733 JI = IGRSURF(T_MONVOL_METADATA%ICBAG(2, II + LCA))%ELEM(JJ)
734 ITY = IGRSURF(T_MONVOL_METADATA%ICBAG(2 ,II + LCA))%ELTYP(JJ)
737 ELSEIF (ITY /= 3) THEN
738 JI = JJ + NUMELC + NUMELTG
740 NN1 = IGRSURF(EXT_SURFID)%NSEG
743 JI1 = IGRSURF(EXT_SURFID)%ELEM(J1)
744 ITY1 = IGRSURF(EXT_SURFID)%ELTYP(J1)
747 ELSEIF (ITY1 /= 3) THEN
748 JI1 = J1 + NUMELC + NUMELTG
755.NOT.
IF ( FOUND) CHKSURF = 1
756.AND..NOT.
IF (IPRI >= 5 FOUND) THEN
759 WRITE(IOUT,'(a,i10,a,i10,a,i10)
')
760 . ' error : shell element
id=
',NEL,
761 . ' of communicating surface
id=
',
762 . IGRSURF(T_MONVOL_METADATA%ICBAG(2,II + LCA))%ID,
763 . ' is not included into airbag surface
id=
',
764 . IGRSURF(EXT_SURFID)%ID
766 NEL=IXTG(NIXTG,JI-NUMELC)
767 WRITE(IOUT,'(a,i10,a,i10,a,i10)
')
768 . ' error : sh3n element
id=
',NEL,
769 . ' of communicating surface
id=
',
770 . IGRSURF(T_MONVOL_METADATA%ICBAG(2, II + LCA))%ID,
771 . ' is not included into airbag surface
id=
',
772 . IGRSURF(EXT_SURFID)%ID
778 T_MONVOL_METADATA%ICBAG(3, II + LCA) = 0
779.AND..OR.
IF((COMM_DPDEF(II) == ZERO COMM_DTPDEF(II) == ZERO) COMM_TVENT(II) == ZERO)
780 . T_MONVOL_METADATA%ICBAG(3, II + LCA) = 1
781 T_MONVOL_METADATA%RCBAG(1, II + LCA) = COMM_DPDEF(II)
782 T_MONVOL_METADATA%RCBAG(2, II + LCA) = COMM_AVENT(II)
783 T_MONVOL_METADATA%RCBAG(3, II + LCA) = COMM_TVENT(II)
784 T_MONVOL_METADATA%RCBAG(4, II + LCA) = COMM_DTPDEF(II)
785 IF (CHKSURF == 1) THEN
786 CALL ANCMSG(MSGID = 902, ANMODE = ANINFO, MSGTYPE = MSGERROR,
787 . I2 = IGRSURF(T_MONVOL_METADATA%ICBAG(2, II + LCA))%ID, I3 = IGRSURF(EXT_SURFID)%ID,
788 . I1 = T_MONVOLN%ID, C1 = T_MONVOLN%TITLE)
790 ENDDO !DO II = 1, NCA
794 T_MONVOL_METADATA%LCA = LCA
796 T_MONVOLN%RVOLU(2) = AMU
797 T_MONVOLN%RVOLU(16) = VOL + VEPS
798 T_MONVOLN%RVOLU(18) = SA
799 T_MONVOLN%RVOLU(21) = ROT
800 T_MONVOLN%RVOLU(22:24) = ZERO
805 WRITE(IOUT, 1005) SURFID
806 WRITE(IOUT, 1003) SCAL_T, SCAL_P, SCAL_S, SCAL_A, SCAL_D
807 WRITE(IOUT, 1002) SA, SV, VOL
808 WRITE(IOUT, 1400) AMU, TI, PEXT, PINI
814 WRITE(IOUT, 1410) GAMAI, CPAI, CPBI, CPCI
819 . IMASS(II), IFLU(II), FMASS(II), ITEMP(II), FTEMP(II), ISENS(II)
820 WRITE(IOUT, 1440) GAMA(II), CPA(II), CPB(II), CPC(II)
821 WRITE(IOUT, 1450) IJET(II)
822 IF (IJET(II) > 0) THEN
823 IF (NJ3(II) == 0) THEN
824 WRITE(IOUT, 1460) NJ1(II), NJ2(II), IPT(II), IPA(II), IPZ(II),
825 . FPT(II), FPA(II), FPZ(II)
827 WRITE(IOUT, 1461) NJ1(II), NJ2(II), NJ3(II), IPT(II), IPA(II), IPZ(II),
828 . FPT(II), FPA(II), FPZ(II)
832 WRITE(IOUT, 1470) NVENT,TTFIRE
834 WRITE(IOUT, 1471) ITTF
837 WRITE(IOUT,1472) II, IPVENT(II)
838.AND.
IF (IPVENT(II) == 0 AVENT(II) == ZERO) THEN
839 CALL ANCMSG(MSGID = 1019, MSGTYPE = MSGWARNING, ANMODE = ANINFO,
840 . I1 = T_MONVOLN%ID, I2 = II, C1 = T_MONVOLN%TITLE, C2 = 'vent hole surface
')
842 IF (IFVENT(II) <= 1) WRITE(IOUT, 1481)
843 IF (IFVENT(II) == 2) THEN
844 WRITE(IOUT, 1482) IVDP(II), FVDP(II)
846 IF (IFVENT(II) == 3) WRITE(IOUT, 1484)
847 IF (IFVENT(II) == 4) WRITE(IOUT, 1485)
848 IF (IPVENT(II) /= 0) THEN
849 CALL MONVOL_CHECK_VENTHOLE_SURF(IPRI, T_MONVOLN, IGRSURF, II, SHOL, X, IXC, IXTG)
850 T_MONVOLN%RBAGHOL(15, II) = SHOL
852 . SHOL,AVENT(II),BVENT(II),
853 . IPORT(II),IPORP(II),IPORA(II),FPORT(II),FPORP(II),FPORA(II),
854 . IPORT1(II),IPORP1(II),IPORA1(II),FPORT1(II),FPORP1(II),FPORA1(II)
855 WRITE(IOUT,1480) TVENT(II),DPDEF(II),DTPDEF(II),IDTPDEF(II),TSTOPE(II)
858 . AVENT(II),BVENT(II),
859 . IPORT(II),IPORP(II),IPORA(II),FPORT(II),FPORP(II),FPORA(II),
860 . IPORT1(II),IPORP1(II),IPORA1(II),FPORT1(II),FPORP1(II),FPORA1(II)
861 WRITE(IOUT,1480) TVENT(II),DPDEF(II),DTPDEF(II),IDTPDEF(II),TSTOPE(II)
864 WRITE(IOUT, 1500) NCA
866 WRITE(IOUT, 1510) COMM_ID(II), COMM_IPVENT(II), COMM_DPDEF(II), COMM_DTPDEF(II), COMM_AVENT(II),
867 . COMM_TVENT(II), 0, 0, ZERO, ZERO
873 DEALLOCATE(GAMA, CPA, CPB, CPC)
874 DEALLOCATE(IMASS, IFLU, FMASS, ITEMP, FTEMP, ISENS)
875 DEALLOCATE(IJET, NJ1, NJ2, NJ3)
876 DEALLOCATE(IPT, IPA, IPZ, FPT, FPA, FPZ)
879 DEALLOCATE(TVENT, DPDEF, DTPDEF, FVDP, AVENT, BVENT, TSTOPE)
880 DEALLOCATE(IPVENT, IVDP, IDTPDEF, IFVENT)
881 DEALLOCATE(IPORT, IPORP, IPORA, IPORT1, IPORP1, IPORA1)
882 DEALLOCATE(FPORT, FPORP, FPORA, FPORT1, FPORP1, FPORA1)
885 DEALLOCATE(COMM_ID, COMM_IPVENT)
886 DEALLOCATE(COMM_DPDEF, COMM_AVENT, COMM_TVENT, COMM_DTPDEF)
894 . /5X,'initial surface of monitored volume . .=
',1PG20.13,
895 . /5X,'surface error(ne.0
for non closed surf)=
',1PG20.13,
896 . /5X,'initial volume of monitored volume. . .=
',1PG20.13)
898 . 5X,'unit scale
for time functions =
',1PG20.13,
899 . /5X,'unit scale
for pressure functions =
',1PG20.13,
900 . /5X,'unit scale
for area functions =
',1PG20.13,
901 . /5X,'unit scale
for angle functions =
',1PG20.13,
902 . /5X,'unit scale
for distance functions =
',1PG20.13)
903 1005 FORMAT( 5X,'EXTERNAL surface
id . . . . . . . . . .=
',I10)
905 . 5X,'volumic viscosity . . . . . . . . . . .=
',1PG20.13,
906 . /5X,'initial temperature . . . . . . . . . .=
',1PG20.13,
907 . /5X,'EXTERNAL pressure . . . . . . . . . . .=
',1PG20.13,
908 . /5X,'initial pressure. . . . . . . . . . . .=
',1PG20.13/)
910 . 5X,'initial thermodynamic equilibrium is set at time 0
'
911 . /5X,'--------------------------------------------------
'/)
913 . 5X,'initial thermodynamic equilibrium is set at injection time
'
914 . /5X,'----------------------------------------------------------
'/)
916 . 5X,'characteristics of initial gaz
',
917 . /5X,'------------------------------
',
918 . /5X,'gamma at initial temperature. . . . . .=
',1PG20.13,
919 . /5X,'coefficient cpa . . . . . . . . . . . .=
',1PG20.13,
920 . /5X,'coefficient cpb . . . . . . . . . . . .=
',1PG20.13,
921 . /5X,'coefficient cpc . . . . . . . . . . . .=
',1PG20.13/)
926 . 5X,'number of inflators . . . . . . . . . .=
',I10/)
928 . 5X,'inflator number . . . . . . . . . . . .=
',I10,
929 . /15X,'time
FUNCTION for incoming total mass .=
',I10,
930 . /15X,' or mass flux
if iflu=1 . . . . iflu
',I10,
931 . /15X,'scale factor
for incoming total mass .=
',1PG20.13,
932 . /15X,'time function
for incomimg gas temp . .=
',I10,
933 . /15X,'scale factor
for incomimg gas temp . .=
',1PG20.13,
934 . /15X,'sensor number . . . . . . . . . . . . .=
',I10)
936 . /15X,'gaz characteristics
',
937 . /15X,'-------------------
',
938 . /15X,'gamma at initial temperature. . . . . .=
',1PG20.13,
939 . /15X,'coefficient cpa . . . . . . . . . . . .=
',1PG20.13,
940 . /15X,'coefficient cpb . . . . . . . . . . . .=
',1PG20.13,
941 . /15X,'coefficient cpc . . . . . . . . . . . .=
',1PG20.13)
943 . /15X,'jetting option. . . . . . . . . . . . .=
',I10,
944 . /15X,'----------------------------------------
')
946 . 15X,'conical jet . . . . . . . . . . . . . .
',
947 . /15X,'node number defining injection center .=
',I10,
948 . /15X,'node number defining injection axis . .=
',I10,
949 . /15X,'jetting pressure time curve number. . .=
',I10,
950 . /15X,'jetting pressure theta curve number . .=
',I10,
951 . /15X,'jetting pressure dist. curve number . .=
',I10,
952 . /15X,'time function scale factor . .=
',1PG20.13,
953 . /15X,'theta function scale factor . .=
',1PG20.13,
954 . /15X,'dist function scale factor . .=
',1PG20.13/)
956 . 15X,'dihedral jet. . . . . . . . . . . . . .
',
957 . /15X,'node number defining injection center .=
',I10,
958 . /15X,'node number defining injection axis . .=
',I10,
959 . /15X,'node number defining base line. . . . .=
',I10,
960 . /15X,'jetting pressure time curve number. . .=
',I10,
961 . /15X,'jetting pressure theta curve number . .=
',I10,
962 . /15X,'jetting pressure dist. curve number . .=
',I10,
963 . /15X,'time function scale factor . .=
',1PG20.13,
964 . /15X,'theta function scale factor . .=
',1PG20.13,
965 . /15X,'dist function scale factor . .=
',1PG20.13)
967 . /5X,'vent holes and porous fabric surfaces
',
968 . /5X,'-------------------------------------
',
969 . /5X,'number of vent holes and porous surfaces . .=
',I10,
970 . /5X,'injection time tinj. . . . . . . . . . . . .=
',1PG20.13)
972 . 5X,'venting start time shift . . . . . . . . . .=
',I10,
973 . /5X,' 0 : no shift
',
974 . /5X,' 1 : jetting functions are shifted by injection time
',
975 . /5X,' 2 : jetting and venting functions are shifted by
',
976 . /5X,' injection time tinj
',
977 . /5X,' 3 : jetting and venting functions are shifted
',
978 . /5X,' by tinj
for jetting functions
',
979 . /5X,' by tinj+tstart
for venting functions
')
981 . / 5X,'vent hole number. . . . . . . . . . . .=
',I10,
982 . /15X,'vent hole surface
id. . . . . . . . . .=
',I10)
983 1481 FORMAT(15X,'isenthalpic venting model
')
984 1482 FORMAT(15X,'chemkin model
for porosity :
',
985 . /15X,'velocity vs relative pressure function =
',I10,
986 . /15X,' scale factor. . . . . . .=
',1PG20.13)
987 1484 FORMAT(15X,'graefe porosity formulation
')
988 1485 FORMAT(15X,'isenthalpic venting model with possible flow in
')
990 . 15X,'initial surface . . . . . . . . . . . .=
',1PG20.13,
991 . /15X,'avent:vent hole scale factor. . . . . .=
',1PG20.13,
992 . /15X,'bvent:vent hole scale factor
if contact=
',1PG20.13,
993 . /15X,'porosity function / time. . . . . . . .=
',I10,
994 . /15X,'porosity function / pressure. . . . . .=
',I10,
995 . /15X,'porosity function /
area. . . . . . . .=
',I10,
996 . /15X,'porosity time function scale factor =
',1PG20.13,
997 . /15X,'porosity pressure function scale factor=
',1PG20.13,
998 . /15X,'porosity
area function scale factor . .=
',1PG20.13,
999 . /15X,'porosity function / time(after contact)=
',I10,
1000 . /15X,'porosity function / pressure. . . . . .=
',I10,
1001 . /15X,'porosity function /
area. . . . . . . .=
',I10,
1002 . /15X,'porosity time function scale factor =
',1PG20.13,
1003 . /15X,'porosity pressure function scale factor=
',1PG20.13,
1004 . /15X,'porosity
area function scale factor . .=
',1PG20.13)
1006 . 15X,'start time
for venting tstart . . . . .=
',1PG20.13,
1007 . /15X,'relative pres.
for membrane deflation .=
',1PG20.13,
1008 . /15X,' (DPDEF = PDEF - PEXT)
',
1009 . /15X,'time delay before membrane deflation .=
',1PG20.13,
1010 . /15X,'time delay flag . . . . . . . . . . . .=
',I10,
1011 . /15X,' if idtpdef : 0
',
1012 . /15X,' pressure should be over pdef during
',
1013 . /15X,' a cumulated dtpdef time
'
1014 . /15X,' before activating deflation
'
1015 . /15X,' if idtpdef : 1
',
1016 . /15X,' deflation start dtpdef after
',
1017 . /15X,' dpdef has been reached
',
1018 . /15X,'end time
for venting tstop. . . . . . .=
',1PG20.13)
1020 . 15X,'avent:vent hole
area. . . . . . . . . .=
',1PG20.13,
1021 . /15X,'bvent:vent hole scale factor
if contact=
',1PG20.13,
1022 . /15X,'porosity function / time. . . . . . . .=
',I10,
1023 . /15X,'porosity function / pressure. . . . . .=
',I10,
1024 . /15X,'porosity function /
area. . . . . . . .=
',I10,
1025 . /15X,'porosity time function scale factor =
',1PG20.13,
1026 . /15X,'porosity pressure function scale factor=
',1PG20.13,
1027 . /15X,'porosity
area function scale factor . .=
',1PG20.13,
1028 . /15X,'porosity function / time(after contact)=
',I10,
1029 . /15X,'porosity function / pressure. . . . . .=
',I10,
1030 . /15X,'porosity function /
area. . . . . . . .=
',I10,
1031 . /15X,'porosity time function scale factor =
',1PG20.13,
1032 . /15X,'porosity pressure function scale factor=
',1PG20.13,
1033 . /15X,'porosity
area function scale factor . .=
',1PG20.13)
1034 1500 FORMAT(/5X,'number of communicating volumes . . . .=
',I10,
1035 . /5X,'volume_id
',' vent_surf
',8X,'delta_pdef
',11X,'dtpdef
',15X,
1036 . 'avent
',16X,'tvent
',9X,' fct/time
','fct/pres.
',
1037 . 'fct/time scale fac.
','fct/pres.scale fac.
')
1038 1510 FORMAT(5X,2I10,4(1X,1PG20.13),2I10,2(1X,1PG20.13))
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)