57
58
59
65 USE sensor_mod
66 use element_mod , only : nixc,nixtg
67
68
69
70#include "implicit_f.inc"
71
72
73
74
75#include "com04_c.inc"
76
77
78#include "param_c.inc"
79
80#include "units_c.inc"
81
82#include "scr03_c.inc"
83
84
85
86 TYPE(UNIT_TYPE_), INTENT(IN) :: UNITAB
87 INTEGER, INTENT(IN) :: 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
91 TYPE(MONVOL_STRUCT_), INTENT(INOUT) :: T_MONVOLN
92 TYPE (GROUP_), DIMENSION(NGRBRIC), INTENT(IN) :: IGRBRIC
93 TYPE(SUBMODEL_DATA), DIMENSION(NSUBMOD), INTENT(IN) :: LSUBMODEL
94 TYPE (SENSORS_) ,INTENT(IN) :: SENSORS
95
96
97
98 INTEGER :: II, JJ
99 INTEGER :: SURFID
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
104 my_real :: pext, ti, pini, gamai, cpai, cpbi, cpci
105 INTEGER :: IEQUI, ITTF, NJET, NVENT
106 my_real,
DIMENSION(:),
ALLOCATABLE :: gama, cpa, cpb, cpc, fmass, ftemp, fvel
107 INTEGER, DIMENSION(:), ALLOCATABLE :: IMASS, IFLU, ITEMP, ISENS, IJET, IVEL
108 INTEGER, DIMENSION(:), ALLOCATABLE :: IPVENT, ITVENT, IDTPDEF, IVDP
109 my_real,
DIMENSION(:),
ALLOCATABLE :: avent, bvent, tstope, tvent, dpdef, dtpdef, fvdp
110 INTEGER, DIMENSION(:), ALLOCATABLE :: IPORT, IPORP, IPORA, IPORT1, IPORP1, IPORA1
111 my_real,
DIMENSION(:),
ALLOCATABLE :: fport, fporp, fpora, fport1, fporp1, fpora1
112 my_real :: dirx, diry, dirz, dir2x, dir2y, dir2z, origx, origy, origz, lx, ly, lz
113 INTEGER :: NBX, NBY, NBZ, IBRIC, ISUR, IREF, IGMERG
114 my_real :: cgmerg, cnmerg, ptole, qa, qb, hmin
115 INTEGER :: ILVOUT, NLAYER, NFACMAX, NPPMAX, IFVANI
116 my_real :: cpi, cvi, rmwi, mi, cpg, rmwg
117 INTEGER :: NBRIC, NN, I1, I2, I3, I4, ISH34
118 my_real :: sjet, dir, xx, yy, zz, x13, y13, z13, x24, y24, z24, nx, ny, nz, ds,
119 . rhoi, ti2, especi, shol
120 INTEGER :: NP, IP, IFVENT
121 LOGICAL :: IS_AVAILABLE
122
123
124
125
126
127
128
129 CALL hm_get_intv(
'surf_IDex', surfid, is_available, lsubmodel)
130
131 CALL hm_get_floatv(
'Ascalet', scal_t, is_available, lsubmodel, unitab)
132 CALL hm_get_floatv(
'AscaleP', scal_p, is_available, lsubmodel, unitab)
133 CALL hm_get_floatv(
'AscaleS', scal_s, is_available, lsubmodel, unitab)
134 CALL hm_get_floatv(
'AscaleA', scal_a, is_available, lsubmodel, unitab)
135 CALL hm_get_floatv(
'AscaleD', scal_d, is_available, lsubmodel, unitab)
136
137 CALL hm_get_floatv(
'Pext', pext, is_available, lsubmodel, unitab)
138 CALL hm_get_floatv(
'T0', ti, is_available, lsubmodel, unitab)
139 CALL hm_get_intv(
'Iequi', iequi, is_available, lsubmodel)
140 CALL hm_get_intv(
'Ittf', ittf, is_available, lsubmodel)
141
142 CALL hm_get_floatv(
'Gammai', gamai, is_available, lsubmodel, unitab)
143 CALL hm_get_floatv(
'cpai', cpai, is_available, lsubmodel, unitab)
144 CALL hm_get_floatv(
'cpbi', cpbi, is_available, lsubmodel, unitab)
145 CALL hm_get_floatv(
'cpci', cpci, is_available, lsubmodel, unitab)
146
147 CALL hm_get_intv(
'Njet', njet, is_available, lsubmodel)
148 t_monvoln%NJET = njet
149 t_monvoln%IVOLU(8) = njet
150 IF (njet > 0) THEN
151 ALLOCATE(t_monvoln%IBAGJET(nibjet, njet))
152 t_monvoln%IBAGJET(1:nibjet, 1:njet) = 0
153 ALLOCATE(t_monvoln%RBAGJET(nrbjet, njet))
154 t_monvoln%RBAGJET(1:nrbjet, 1:njet) = zero
155 ENDIF
156 IF (njet > 0) THEN
157 ALLOCATE(gama(njet), cpa(njet), cpb(njet), cpc(njet), fmass(njet), ftemp(njet))
158 ALLOCATE(imass(njet), iflu(njet), itemp(njet), isens(njet))
159 ALLOCATE(ijet(njet))
160 ALLOCATE(ivel(njet), fvel(njet))
161 DO ii = 1, njet
166
173
175
178 ENDDO
179 ENDIF
180
181 CALL hm_get_intv(
'Nvent', nvent, is_available, lsubmodel)
182 t_monvoln%IVOLU(11) = nvent
183 t_monvoln%NVENT = nvent
184 IF (nvent > 0) THEN
185 ALLOCATE(t_monvoln%IBAGHOL(nibhol, nvent))
186 t_monvoln%IBAGHOL(1:nibhol, 1:nvent) = 0
187 ALLOCATE(t_monvoln%RBAGHOL(nrbhol, nvent))
188 t_monvoln%RBAGHOL(1:nrbhol, 1:nvent) = zero
189 ENDIF
190 IF (nvent > 0) THEN
191 ALLOCATE(ipvent(nvent), itvent(nvent), idtpdef(nvent), ivdp(nvent))
192 ALLOCATE(avent(nvent), bvent(nvent), tstope(nvent),
193 . tvent(nvent), dpdef(nvent), dtpdef(nvent), fvdp(nvent))
194 ALLOCATE(iport(nvent), iporp(nvent), ipora(nvent), iport1(nvent),
195 . iporp1(nvent), ipora1(nvent))
196 ALLOCATE(fport(nvent), fporp(nvent), fpora(nvent), fport1(nvent),
197 . fporp1(nvent), fpora1(nvent))
198 DO ii = 1, nvent
203
210
217
224 ENDDO
225 ENDIF
226 CALL hm_get_floatv(
'Vx3', dirx, is_available, lsubmodel, unitab)
227 CALL hm_get_floatv(
'Vy3', diry, is_available, lsubmodel, unitab)
228 CALL hm_get_floatv(
'Vz3', dirz, is_available, lsubmodel, unitab)
229
230 CALL hm_get_floatv(
'Vx1', dir2x, is_available, lsubmodel, unitab)
231 CALL hm_get_floatv(
'Vy1', dir2y, is_available, lsubmodel, unitab)
232 CALL hm_get_floatv(
'Vz1', dir2z, is_available, lsubmodel, unitab)
233
234 CALL hm_get_floatv(
'X0', origx, is_available, lsubmodel, unitab)
235 CALL hm_get_floatv(
'Y0', origy, is_available, lsubmodel, unitab)
236 CALL hm_get_floatv(
'Z0', origz, is_available, lsubmodel, unitab)
237
238 CALL hm_get_floatv(
'L1', lx, is_available, lsubmodel, unitab)
239 CALL hm_get_floatv(
'L2', ly, is_available, lsubmodel, unitab)
240 CALL hm_get_floatv(
'L3', lz, is_available, lsubmodel, unitab)
241
242 CALL hm_get_intv(
'Nb1', nbx, is_available, lsubmodel)
243 CALL hm_get_intv(
'Nb2', nby, is_available, lsubmodel)
244 CALL hm_get_intv(
'Nb3', nbz, is_available, lsubmodel)
245 CALL hm_get_intv(
'grbrc_ID', ibric, is_available, lsubmodel)
246 CALL hm_get_intv(
'surf_IDin', isur, is_available, lsubmodel)
247 CALL hm_get_intv(
'Iref', iref, is_available, lsubmodel)
248
249 CALL hm_get_intv(
'Igmerg', igmerg, is_available, lsubmodel)
250 CALL hm_get_floatv(
'Cgmerg', cgmerg, is_available, lsubmodel, unitab)
251 CALL hm_get_floatv(
'Cnmerg', cnmerg, is_available, lsubmodel, unitab)
252 CALL hm_get_floatv(
'Ptole', ptole, is_available, lsubmodel, unitab)
253
254 CALL hm_get_floatv(
'qa', qa, is_available, lsubmodel, unitab)
255 CALL hm_get_floatv(
'qb', qb, is_available, lsubmodel, unitab)
256 CALL hm_get_floatv(
'Hmin', hmin, is_available, lsubmodel, unitab)
257
258 CALL hm_get_intv(
'Ilvout', ilvout, is_available, lsubmodel)
259 CALL hm_get_intv(
'Nlayer', nlayer, is_available, lsubmodel)
260 CALL hm_get_intv(
'Nfacmax', nfacmax, is_available, lsubmodel)
261 CALL hm_get_intv(
'Nppmax', nppmax, is_available, lsubmodel)
262 CALL hm_get_intv(
'Ifvani', ifvani, is_available, lsubmodel)
263
264
265
266
267 t_monvoln%IVOLU(4) = 0
268 found = .false.
269 DO ii = 1, nsurf
270 IF (surfid == igrsurf(ii)%ID) THEN
271 t_monvoln%IVOLU(4) = ii
272 t_monvoln%EXT_SURFID = ii
273 found = .true.
274 EXIT
275 ENDIF
276 ENDDO
277 IF (.NOT. found) THEN
279 ELSEIF (igrsurf(t_monvoln%IVOLU(4))%ISH4N3N == 0) THEN
280 CALL ancmsg(msgid = 18, anmode = aninfo, msgtype = msgerror,
281 . i1 = t_monvoln%ID, c1 = t_monvoln%TITLE, i2 = surfid)
283 ENDIF
284
285
287
289 . igrsurf(t_monvoln%EXT_SURFID),ixc, ixtg, x, 10)
290
291 CALL monvol_compute_volume(t_monvoln, t_monvoln%TITLE, t_monvoln%IVOLU, igrsurf(t_monvoln%EXT_SURFID),
292 . itab, x, pm, geo, ixc, ixtg,
293 . sa, rot, vol, vmin, veps, sv)
294
296 . igrsurf(t_monvoln%EXT_SURFID),ixc,ixtg,vol, x, 10)
297
298 IF (ittf < 0 .OR. ittf > 3) THEN
299 CALL ancmsg(msgid = 773, anmode = aninfo, msgtype = msgerror,
300 . i1 = t_monvoln%ID, c1 = t_monvoln%TITLE)
301 END IF
302 IF (gamai == zero .OR. cpai == zero) THEN
303 CALL ancmsg(msgid = 473, msgtype = msgerror, anmode = aninfo,
304 . i1 = t_monvoln%ID, c1 = t_monvoln%TITLE)
305 ENDIF
306
307
308
309 IF (scal_t == zero) THEN
311 scal_t = one * fac_gen
312 ENDIF
313 IF (scal_p == zero) THEN
315 scal_p = one * fac_gen
316 ENDIF
317 IF (scal_s == zero) THEN
319 scal_s = one * fac_gen
320 ENDIF
321 IF (scal_a == zero) THEN
323 scal_a = one * fac_gen
324 ENDIF
325 IF (scal_d == zero) THEN
327 scal_d = one * fac_gen
328 ENDIF
329
330 amu = em02
331 IF(pext == zero) THEN
332 pext = 101325.d0 * (unitab%FAC_L_WORK * unitab%FAC_T_WORK * unitab%FAC_T_WORK) / unitab%FAC_M_WORK
333 ENDIF
334 IF (ti == zero) ti = twohundred95
335 pini = pext
336
337 DO ii = 1, njet
338 IF (imass(ii) /=0 .AND. fmass(ii) == zero) THEN
340 fmass(ii) = one * fac_gen
341 ENDIF
342 IF (itemp(ii) /=0 .AND. ftemp(ii) == zero) THEN
344 ftemp(ii) = one * fac_gen
345 ENDIF
346
347 IF (fvel(ii) == zero) THEN
349 fvel(ii) = one * fac_gen
350 ENDIF
351 ENDDO
352 DO ii = 1, nvent
353 IF (itvent(ii) == 0) itvent(ii) = 2
354 IF (ipvent(ii) == 0) THEN
355 avent(ii) = zero
356 bvent(ii) = zero
357 ENDIF
358 IF (fport(ii) == zero) fport(ii) = one
359 IF (fporp(ii) == zero) fporp(ii) = one
360 IF (fpora(ii) == zero) fpora(ii) = one
361 IF (fport1(ii) == zero) fport1(ii) = one
362 IF (fporp1(ii) == zero) fporp1(ii) = one
363 IF (fpora1(ii) == zero) fpora1(ii) = one
364 ENDDO
365 IF (nbx == 0) nbx = 1
366 IF (nby == 0) nby = 1
367 IF (nbz == 0) nbz = 1
368 IF (igmerg == 0) igmerg = 1
369 IF (cgmerg == zero) cgmerg = zep02
370 IF (ptole == zero) ptole = em5
371 IF (nlayer == 0) nlayer = 10
372 IF (nfacmax == 0) nfacmax = 20
373 IF (nppmax == 0) nppmax = 20
374 cpi = cpai + ti * (cpbi + cpci * ti)
375 cvi = cpi / gamai
376 rmwi = cvi * (gamai - one)
377 mi = pini * (vol + veps) / (rmwi * ti)
378
379
380
381 t_monvoln%RVOLU(26) = one / scal_t
382 t_monvoln%RVOLU(27) = one / scal_p
383 t_monvoln%RVOLU(28) = one / scal_s
384 t_monvoln%RVOLU(29) = one / scal_a
385 t_monvoln%RVOLU(30) = one / scal_d
386
387 t_monvoln%IVOLU(17) = ittf
388 t_monvoln%IVOLU(8) = njet
389 DO ii = 1, njet
390 t_monvoln%IBAGJET(14, ii) = 0
391 found = .false.
392 DO jj = 1, nsurf
393 IF (ijet(ii) == igrsurf(jj)%ID) THEN
394 t_monvoln%IBAGJET(14, ii) = jj
395 found = .true.
396 EXIT
397 ENDIF
398 ENDDO
399 IF (.NOT. found) THEN
400 CALL ancmsg(msgid = 847, anmode = aninfo, msgtype = msgerror,
401 . i2 = ijet(ii), i1 = t_monvoln%ID, c1 = t_monvoln%TITLE)
402 ENDIF
403 ijet(ii) = 0
404 found = .false.
405 DO jj = 1, nfunct
406 IF (ivel(ii) == npc(jj)) THEN
407 t_monvoln%IBAGJET(11, ii) = jj
408 found = .true.
409 EXIT
410 ENDIF
411 ENDDO
412 IF (.NOT. found) THEN
413 CALL ancmsg(msgid = 6, anmode = aninfo, msgtype = msgerror,
414 . i1 = t_monvoln%ID, c1 = t_monvoln%TITLE, i2 = ivel(ii))
415 ENDIF
416 t_monvoln%RBAGJET(15, ii) = fvel(ii)
417 t_monvoln%IBAGJET(13, ii) = 0
418 t_monvoln%RBAGJET(1, ii) = gama(ii)
419 t_monvoln%RBAGJET(2, ii) = cpa(ii)
420 t_monvoln%RBAGJET(3, ii) = cpb(ii)
421 t_monvoln%RBAGJET(4, ii) = cpc(ii)
422 t_monvoln%RBAGJET(5, ii) = fmass(ii)
423 t_monvoln%RBAGJET(6, ii) = ftemp(ii)
424 t_monvoln%RBAGJET(12, ii) = one
425 t_monvoln%RBAGJET(13, ii) = one
426 t_monvoln%RBAGJET(14, ii) = one
427 IF (imass(ii) == 0)THEN
428 t_monvoln%IBAGJET(1, ii) = 0
429 ELSE
430 found = .false.
431 DO jj = 1, nfunct
432 IF (imass(ii) == npc(jj)) THEN
433 t_monvoln%IBAGJET(1, ii) = jj
434 decrease = .false.
435 np = (npt(jj + 1) - npt(jj)) / 2
436 IF (iflu(ii) == 0) THEN
437 DO ip = (npt(jj) - 1) / 2 + 1, (npt(jj + 1) - 1) / 2 - 1
438 IF (pld(2, ip + 1) < pld(2, ip)) decrease = .true.
439 ENDDO
440 IF (decrease) THEN
441 CALL ancmsg(msgid=540, msgtype = msgwarning, anmode = aninfo_blind_1,
442 . i1 = t_monvoln%ID, c1 = t_monvoln%TITLE, i2 = imass(ii), i3 = ii)
443 ENDIF
444 ELSE
445 DO ip = (npt(jj) - 1) / 2 + 1, (npt(jj + 1) - 1) / 2
446 IF (pld(2, ip) < zero) decrease = .true.
447 ENDDO
448 IF (decrease) THEN
449 CALL ancmsg(msgid = 541, msgtype = msgwarning, anmode = aninfo_blind_1,
450 . i1 = t_monvoln%ID, c1 = t_monvoln%TITLE, i2 = imass(ii), i3 = ii)
451 ENDIF
452 ENDIF
453 found = .true.
454 EXIT
455 ENDIF
456 ENDDO
457 IF (.NOT. found) THEN
458 CALL ancmsg(msgid = 10, anmode = aninfo, msgtype = msgerror,
459 . i2 = imass(ii), i1 = t_monvoln%ID, c1 = t_monvoln%TITLE)
460 ENDIF
461 ENDIF
462 t_monvoln%IBAGJET(2, ii) = iflu(ii)
463 IF (itemp(ii) == 0) THEN
464 t_monvoln%IBAGJET(3, ii) = 0
465 ELSE
466 found = .false.
467 DO jj = 1, nfunct
468 IF (itemp(ii) == npc(jj)) THEN
469 t_monvoln%IBAGJET(3, ii) = jj
470 found = .true.
471 EXIT
472 ENDIF
473 ENDDO
474 IF (.NOT. found) THEN
475 CALL ancmsg(msgid = 11, anmode = aninfo, msgtype = msgerror,
476 . i2 = itemp(ii), i1 = t_monvoln%ID, c1 = t_monvoln%TITLE)
477 ENDIF
478 ENDIF
479 IF (isens(ii) > 0) THEN
480 found = .false.
481 DO jj = 1, sensors%NSENSOR
482 IF (isens(ii) == sensors%SENSOR_TAB(jj)%SENS_ID) THEN
483 t_monvoln%IBAGJET(4, ii) = jj
484 found = .true.
485 EXIT
486 ENDIF
487 ENDDO
488 IF (.NOT. found) THEN
489 CALL ancmsg(msgid = 17, anmode = aninfo, msgtype = msgerror,
490 . i2 = isens(ii), i1 = t_monvoln%ID, c1 = t_monvoln%TITLE)
491 ENDIF
492 ENDIF
493 cpg = cpa(ii) + ti * (cpb(ii) + cpc(ii) * ti)
494 rmwg = cpg * (gama(ii) - one) / gama(ii)
495 t_monvoln%RBAGJET(1, ii) = rmwg
496 ENDDO
497 DO ii = 1, nvent
498 t_monvoln%RBAGHOL(7, ii) = fport(ii)
499 t_monvoln%RBAGHOL(8, ii) = fporp(ii)
500 t_monvoln%RBAGHOL(9, ii) = fpora(ii)
501 t_monvoln%RBAGHOL(10, ii) = fport1(ii)
502 t_monvoln%RBAGHOL(11, ii) = fporp1(ii)
503 t_monvoln%RBAGHOL(12, ii) = fpora1(ii)
504 t_monvoln%IBAGHOL(1, ii) = 0
505 t_monvoln%IBAGHOL(10, ii) = 0
506 t_monvoln%IBAGHOL(11, ii) = idtpdef(ii)
507 t_monvoln%IBAGHOL(12, ii) = 0
508 IF (ipvent(ii) == 0) THEN
509 t_monvoln%IBAGHOL(2, ii) = 0
510 ELSE
511 t_monvoln%IBAGHOL(2, ii) = 0
512 found = .false.
513 DO jj = 1, nsurf
514 IF (ipvent(ii) == igrsurf(jj)%ID) THEN
515 t_monvoln%IBAGHOL(2, ii) = jj
516 found = .true.
517 EXIT
518 ENDIF
519 ENDDO
520 IF(.NOT. found)THEN
521 CALL ancmsg(msgid = 532, anmode = aninfo, msgtype = msgerror,
522 . i2 = ipvent(ii), i1 = t_monvoln%ID, c1 = t_monvoln%TITLE)
523 ELSEIF(igrsurf(t_monvoln%IBAGHOL(2, ii))%ISH4N3N == 0) THEN
524 CALL ancmsg(msgid = 330, anmode = aninfo, msgtype = msgerror,
525 . i1 = t_monvoln%ID, c1 = t_monvoln%TITLE)
526 ENDIF
527 IF (avent(ii) == zero) avent(ii) = one
528 ENDIF
529 IF (avent(ii) == zero) dpdef(ii) = infinity
530 IF (avent(ii) == zero) tvent(ii) = infinity
531 IF (dpdef(ii) == zero .AND. dtpdef(ii) == zero .AND. tvent(ii) == zero) THEN
532 t_monvoln%IBAGHOL(1, ii) = 1
533 ENDIF
534 t_monvoln%RBAGHOL(1, ii) = dpdef(ii)
535 t_monvoln%RBAGHOL(2, ii) = avent(ii)
536 t_monvoln%RBAGHOL(3, ii) = tvent(ii)
537 t_monvoln%RBAGHOL(4, ii) = dtpdef(ii)
538 t_monvoln%RBAGHOL(6, ii) = bvent(ii)
539 IF (ivdp(ii) /= 0 .AND. fvdp(ii) == zero) fvdp(ii) = one
540 t_monvoln%RBAGHOL(13, ii) = fvdp(ii)
541 tstope(ii) = infinity
542 t_monvoln%RBAGHOL(14, ii) = tstope(ii)
543
544 t_monvoln%IBAGHOL(3, ii) = -1
545 t_monvoln%IBAGHOL(4, ii) = -1
546 t_monvoln%IBAGHOL(5, ii) = -1
547 t_monvoln%IBAGHOL(6, ii) = -1
548 t_monvoln%IBAGHOL(7, ii) = -1
549 t_monvoln%IBAGHOL(8, ii) = -1
550 t_monvoln%IBAGHOL(9, ii) = -1
551 DO jj = 1, nfunct
552 IF (iport(ii) == npc(jj)) t_monvoln%IBAGHOL(3, ii) = jj
553 IF (iporp(ii) == npc(jj)) t_monvoln%IBAGHOL(4, ii) = jj
554 IF (ipora(ii) == npc(jj)) t_monvoln%IBAGHOL(5, ii) = jj
555 IF (iport1(ii) == npc(jj)) t_monvoln%IBAGHOL(6, ii) = jj
556 IF (iporp1(ii) == npc(jj)) t_monvoln%IBAGHOL(7, ii) = jj
557 IF (ipora1(ii) == npc(jj)) t_monvoln%IBAGHOL(8, ii) = jj
558 IF (ivdp(ii) == npc(jj)) t_monvoln%IBAGHOL(9, ii) = jj
559 ENDDO
560 IF (iport(ii) == 0) t_monvoln%IBAGHOL(3, ii) = 0
561 IF (iporp(ii) == 0) t_monvoln%IBAGHOL(4, ii) = 0
562 IF (ipora(ii) == 0) t_monvoln%IBAGHOL(5, ii) = 0
563 IF (iport1(ii) == 0) t_monvoln%IBAGHOL(6, ii) = 0
564 IF (iporp1(ii) == 0) t_monvoln%IBAGHOL(7, ii) = 0
565 IF (ipora1(ii) == 0) t_monvoln%IBAGHOL(8, ii) = 0
566 IF (ivdp(ii) == 0) t_monvoln%IBAGHOL(9, ii) = 0
567 IF (t_monvoln%IBAGHOL(3, ii) == -1) THEN
568 t_monvoln%IBAGHOL(3, ii) = 0
569 CALL ancmsg(msgid = 331, anmode = aninfo, msgtype = msgerror,
570 . i1 = t_monvoln%ID, c1 = t_monvoln%TITLE, i2 = iport(ii))
571 ENDIF
572 IF (t_monvoln%IBAGHOL(4, ii) == -1) THEN
573 t_monvoln%IBAGHOL(4, ii) = 0
574 CALL ancmsg(msgid = 332, anmode = aninfo, msgtype = msgerror,
575 . i1 = t_monvoln%ID, c1 = t_monvoln%TITLE, i2 = iporp(ii))
576 ENDIF
577 IF (t_monvoln%IBAGHOL(5, ii) == -1) THEN
578 t_monvoln%IBAGHOL(5, ii)=0
579 CALL ancmsg(msgid = 333, anmode = aninfo, msgtype = msgerror,
580 . i1 = t_monvoln%ID, c1 = t_monvoln%TITLE, i2 = ipora(ii))
581 ENDIF
582 IF (t_monvoln%IBAGHOL(6, ii) == -1) THEN
583 t_monvoln%IBAGHOL(6, ii) = 0
584 CALL ancmsg(msgid=331, anmode=aninfo, msgtype=msgerror,
585 . i1 = t_monvoln%ID, c1 = t_monvoln%TITLE, i2 = iport1(ii))
586 ENDIF
587 IF (t_monvoln%IBAGHOL(7, ii) == -1) THEN
588 t_monvoln%IBAGHOL(7, ii)=0
589 CALL ancmsg(msgid=332, anmode=aninfo, msgtype=msgerror,
590 . i1 = t_monvoln%ID, c1 = t_monvoln%TITLE, i2 = iporp1(ii))
591 ENDIF
592 IF (t_monvoln%IBAGHOL(8, ii) == -1) THEN
593 t_monvoln%IBAGHOL(8, ii) = 0
594 CALL ancmsg(msgid=333, anmode=aninfo, msgtype=msgerror,
595 . i1 = t_monvoln%ID, c1 = t_monvoln%TITLE, i2 = ipora1(ii))
596 ENDIF
597 IF (t_monvoln%IBAGHOL(9, ii) == -1) THEN
598 t_monvoln%IBAGHOL(9, ii) = 0
599 CALL ancmsg(msgid = 518, anmode = aninfo, msgtype = msgerror,
600 . i1 = t_monvoln%ID, c1 = t_monvoln%TITLE, i2 = ivdp(ii))
601 ENDIF
602 t_monvoln%IBAGHOL(10, ii) = itvent(ii)
603 ENDDO
604 t_monvoln%RVOLU(35) = dirx
605 t_monvoln%RVOLU(36) = diry
606 t_monvoln%RVOLU(37) = dirz
607 t_monvoln%RVOLU(38) = dir2x
608 t_monvoln%RVOLU(39) = dir2y
609 t_monvoln%RVOLU(40) = dir2z
610 t_monvoln%RVOLU(41) = origx
611 t_monvoln%RVOLU(42) = origy
612 t_monvoln%RVOLU(43) = origz
613 t_monvoln%RVOLU(44) = lx
614 t_monvoln%RVOLU(45) = ly
615 t_monvoln%RVOLU(53) = lz
616 t_monvoln%IVOLU(54) = nbx
617 t_monvoln%IVOLU(55) = nby
618 t_monvoln%IVOLU(35) = nbx * nby
619 t_monvoln%IVOLU(65) = nbz
620 t_monvoln%IVOLU(59) = iref
621 t_monvoln%IVOLU(61) = 0
622 IF(ibric > 0) THEN
623 DO jj = 1, ngrbric
624 IF (ibric == igrbric(jj)%ID) t_monvoln%IVOLU(61) = jj
625 EXIT
626 ENDDO
627 ENDIF
628 t_monvoln%IVOLU(67)=0
629 t_monvoln%INT_SURFID = 0
630 IF (isur > 0) THEN
631 DO jj = 1, nsurf
632 IF (isur == igrsurf(jj)%ID) THEN
633 t_monvoln%IVOLU(67) = jj
634 t_monvoln%INT_SURFID = jj
635 EXIT
636 ENDIF
637 ENDDO
638 ENDIF
639 t_monvoln%IVOLU(60) = igmerg
640 t_monvoln%RVOLU(31) = cgmerg
641 t_monvoln%RVOLU(34) = cnmerg
642 t_monvoln%RVOLU(50) = ptole
643 t_monvoln%RVOLU(46) = qa
644 t_monvoln%RVOLU(47) = qb
645 t_monvoln%RVOLU(51) = hmin
646 t_monvoln%IVOLU(44) = ilvout
647 t_monvoln%IVOLU(40) = nlayer
648 t_monvoln%IVOLU(41) = nfacmax
649 t_monvoln%IVOLU(42) = nppmax
650 t_monvoln%IVOLU(15) = iequi
651 t_monvoln%IVOLU(27) = 1
652 t_monvoln%RVOLU(7) = cpai
653 t_monvoln%RVOLU(8) = cpbi
654 t_monvoln%RVOLU(9) = cpci
655 t_monvoln%RVOLU(10) = rmwi
656 t_monvoln%RVOLU(1) = gamai
657 t_monvoln%RVOLU(3) = pext
658 t_monvoln%RVOLU(4) = vol+veps
659 t_monvoln%RVOLU(11) = mi
660 t_monvoln%RVOLU(12) = pini
661 t_monvoln%RVOLU(13) = ti
662 t_monvoln%RVOLU(14) = rmwi * mi
663 t_monvoln%RVOLU(17) = veps
664 t_monvoln%RVOLU(20) = mi
665 t_monvoln%RVOLU(25) = ti
666 t_monvoln%RVOLU(61) = gamai
667 rhoi = pini / (ti * rmwi)
668 t_monvoln%RVOLU(62) = rhoi
669 ti2 = ti * ti
670 especi = ti * (cpai + half * cpbi * ti + third * cpci * ti2 - rmwi)
671 t_monvoln%RVOLU(63) = especi + rmwi * ti
672 t_monvoln%RVOLU(64) = zero
673 t_monvoln%RVOLU(65) = zero
674 t_monvoln%RVOLU(66) = especi
675
676 t_monvoln%RVOLU(2) = amu
677 t_monvoln%RVOLU(16) = vol + veps
678 t_monvoln%RVOLU(18) = sa
679 t_monvoln%RVOLU(21) = rot
680 t_monvoln%RVOLU(22:24) = zero
681
682
683
684
685 WRITE(iout, 1005) surfid
686 WRITE(iout, 1003) scal_t, scal_p, scal_s, scal_a, scal_d
687 WRITE(iout, 1002) sa, sv, vol
688 WRITE(iout, 1400) amu, ti, pext, pini
689 IF (iequi == 0) THEN
690 WRITE(iout, 1401)
691 ENDIF
692 IF (iequi > 0) THEN
693 IF (iequi == 1) THEN
694 WRITE(iout, 1404)
695 ELSE
696 WRITE(iout,1405) iequi
697 ENDIF
698 ENDIF
699 WRITE(iout, 1410) gamai, cpai, cpbi, cpci
700 nbric = 0
701 IF (t_monvoln%IVOLU(61) /= 0) nbric = igrbric(t_monvoln%IVOLU(61))%ID
702 WRITE(iout, 1700)
703 WRITE(iout, 1704)
704 WRITE(iout,1710) t_monvoln%RVOLU(41),t_monvoln%RVOLU(42),t_monvoln%RVOLU(43),
705 . t_monvoln%RVOLU(38),t_monvoln%RVOLU(39),t_monvoln%RVOLU(40),
706 . t_monvoln%RVOLU(35),t_monvoln%RVOLU(36),t_monvoln%RVOLU(37),
707 . t_monvoln%RVOLU(44),t_monvoln%RVOLU(45),t_monvoln%RVOLU(53),
708 . t_monvoln%IVOLU(54),t_monvoln%IVOLU(55),t_monvoln%IVOLU(65),
709 . nbric ,isur ,t_monvoln%IVOLU(59),
710 . t_monvoln%IVOLU(60),t_monvoln%RVOLU(31),t_monvoln%RVOLU(34),
711 . t_monvoln%RVOLU(50),
712 . t_monvoln%RVOLU(46),t_monvoln%RVOLU(47),t_monvoln%RVOLU(51),
713 . t_monvoln%RVOLU(71),t_monvoln%RVOLU(72),
714 . t_monvoln%IVOLU(44),t_monvoln%IVOLU(40),t_monvoln%IVOLU(41),
715 . t_monvoln%IVOLU(42),ifvani
716 WRITE(iout, 1420)
717 WRITE(iout, 1421) njet
718 DO ii = 1, njet
719 WRITE(iout, 1430) ii, imass(ii), iflu(ii), fmass(ii), itemp(ii), ftemp(ii), isens(ii)
720 IF (ivel(ii) > 0) THEN
721 WRITE(iout,1435) ivel(ii), fvel(ii)
722 ENDIF
723 WRITE(iout, 1440) gama(ii), cpa(ii), cpb(ii), cpc(ii)
724
725 isur = t_monvoln%IBAGJET(14, ii)
726 sjet = zero
727 IF (isur /= 0) THEN
728 IF (igrsurf(isur)%ISH4N3N == 0) THEN
729 CALL ancmsg(msgid = 18, anmode = aninfo, msgtype = msgerror,
730 . i2 = igrsurf(isur)%ID, i1 = t_monvoln%ID, c1 = t_monvoln%TITLE)
731 ELSE
732 nn =igrsurf(isur)%NSEG
733 DO jj = 1, nn
734 dir = half
735 i1 = igrsurf(isur)%NODES(jj, 1)
736 i2 = igrsurf(isur)%NODES(jj, 2)
737 i3 = igrsurf(isur)%NODES(jj, 3)
738 i4 = igrsurf(isur)%NODES(jj, 4)
739 ish34 = igrsurf(isur)%ELTYP(jj)
740 IF (ish34 == 7) i4 = i3
741 xx = half * (x(1, i1) + x(1, i2))
742 yy = half * (x(2, i1) + x(2, i2))
743 zz = half * (x(3, i1) + x(3, i2))
744 x13 = x(1, i3) - x(1, i1)
745 y13 = x(2, i3) - x(2, i1)
746 z13 = x(3, i3) - x(3, i1)
747 x24 = x(1, i4) - x(1, i2)
748 y24 = x(2, i4) - x(2, i2)
749 z24 = x(3, i4) - x(3, i2)
750 nx = dir * (y13 * z24 - y24 * z13)
751 ny = dir * (z13 * x24 - z24 * x13)
752 nz = dir * (x13 * y24 - x24 * y13)
753 ds = sqrt(nx * nx + ny * ny + nz * nz)
754 sjet = sjet + ds
755 ENDDO
756 ENDIF
757 ENDIF
758 WRITE(iout,1445) igrsurf(isur)%ID, sjet
759 ENDDO
760 WRITE(iout, 1470) nvent, zero
761 IF (nvent > 0) THEN
762 WRITE(iout, 1475) ittf
763 DO ii = 1, nvent
764 WRITE(iout, 1472) ii, ipvent(ii)
765 IF (ipvent(ii) == 0) THEN
766 CALL ancmsg(msgid = 1050, msgtype = msgerror, anmode = aninfo,
767 . i1 = t_monvoln%ID, i2 = ii, c1 = t_monvoln%TITLE, c2 = 'VENT HOLE SURFACE')
768 ENDIF
769 ifvent = t_monvoln%IBAGHOL(10, ii)
770 IF (ifvent == 1) WRITE(iout, 1483)
771 IF (ifvent == 2) WRITE(iout, 1481)
772 IF (ifvent == 3) WRITE(iout, 1482) ivdp(ii), fvdp(ii)
773 IF (ifvent == 5) WRITE(iout, 1484)
774 IF (ipvent(ii) /= 0) THEN
776 t_monvoln%RBAGHOL(15, ii) = shol
777 WRITE(iout,1479)
778 . shol,avent(ii),bvent(ii),
779 . iport(ii),iporp(ii),ipora(ii),fport(ii),fporp(ii),fpora(ii),
780 . iport1(ii),iporp1(ii),ipora1(ii),fport1(ii),fporp1(ii),fpora1(ii)
781 WRITE(iout,1480) tvent(ii),dpdef(ii),dtpdef(ii),idtpdef(ii),tstope(ii)
782 ELSE
783 WRITE(iout,1489)
784 . avent(ii),bvent(ii),
785 . iport(ii),iporp(ii),ipora(ii),fport(ii),fporp(ii),fpora(ii),
786 . iport1(ii),iporp1(ii),ipora1(ii),fport1(ii),fporp1(ii),fpora1(ii)
787 WRITE(iout,1480) tvent(ii),dpdef(ii),dtpdef(ii),idtpdef(ii),tstope(ii)
788 ENDIF
789 ENDDO
790 ENDIF
791
792
793
794 IF (njet > 0) THEN
795 DEALLOCATE(gama, cpa, cpb, cpc, fmass, ftemp)
796 DEALLOCATE(imass, iflu, itemp, isens)
797 DEALLOCATE(ijet)
798 DEALLOCATE(ivel, fvel)
799 ENDIF
800 IF (nvent > 0) THEN
801 DEALLOCATE(ipvent, itvent, idtpdef, ivdp)
802 DEALLOCATE(avent, bvent, tstope, tvent, dpdef, dtpdef, fvdp)
803 DEALLOCATE(iport, iporp, ipora, iport1, iporp1, ipora1)
804 DEALLOCATE(fport, fporp, fpora, fport1, fporp1, fpora1)
805 ENDIF
806
807
808
809
810 RETURN
811 1002 FORMAT(
812 . /5x,'INITIAL SURFACE OF MONITORED VOLUME . .=',1pg20.13,
813 . /5x,'SURFACE ERROR(NE.0 FOR NON CLOSED SURF)=',1pg20.13,
814 . /5x,'INITIAL VOLUME OF MONITORED VOLUME. . .=',1pg20.13)
815 1003 FORMAT(
816 . 5x,'UNIT SCALE FOR TIME FUNCTIONS =',1pg20.13,
817 . /5x,'UNIT SCALE FOR PRESSURE FUNCTIONS =',1pg20.13,
818 . /5x,'UNIT SCALE FOR AREA FUNCTIONS =',1pg20.13,
819 . /5x,'UNIT SCALE FOR ANGLE FUNCTIONS =',1pg20.13,
820 . /5x,'UNIT SCALE FOR DISTANCE FUNCTIONS =',1pg20.13)
821 1005 FORMAT( 5x,'EXTERNAL SURFACE ID . . . . . . . . . .=',i10)
822 1400 FORMAT(
823 . 5x,'VOLUMIC VISCOSITY . . . . . . . . . . .=',1pg20.13,
824 . /5x,'INITIAL TEMPERATURE . . . . . . . . . .=',1pg20.13,
825 . /5x,'EXTERNAL PRESSURE . . . . . . . . . . .=',1pg20.13,
826 . /5x,'INITIAL PRESSURE. . . . . . . . . . . .=',1pg20.13/)
827 1401 FORMAT(
828 . 5x,'INITIAL THERMODYNAMIC EQUILIBRIUM IS SET AT TIME 0'
829 . /5x,'--------------------------------------------------'/)
830 1404 FORMAT(
831 . 5x,'THERMODYNAMIC EQUILIBRIUM IS SET EVERY CYCLE UP TO INJECTION TIME'/)
832 1405 FORMAT(
833 . 5x,'THERMODYNAMIC EQUILIBRIUM IS SET EVERY',i10,' CYCLES UP TO INJECTION TIME'/)
834 1410 FORMAT(
835 . 5x,'CHARACTERISTICS OF INITIAL GAZ ',
836 . /5x,'------------------------------ ',
837 . /5x,'GAMMA AT INITIAL TEMPERATURE. . . . . .=',1pg20.13,
838 . /5x,'COEFFICIENT CPA . . . . . . . . . . . .=',1pg20.13,
839 . /5x,'COEFFICIENT CPB . . . . . . . . . . . .=',1pg20.13,
840 . /5x,'COEFFICIENT CPC . . . . . . . . . . . .=',1pg20.13/)
841 1700 FORMAT(5x,'FVMBAG PARAMETERS ',
842 . /5x,'----------------- ')
843 1704 FORMAT(15x,'AIRBAG CUTTING FRAME: ')
844 1710 FORMAT(15x,' ORIGIN X COORDINATE. . . . . . . . .=',1pg20.13,
845 . /15x,' ORIGIN Y COORDINATE. . . . . . . . .=',1pg20.13,
846 . /15x,' ORIGIN Z COORDINATE. . . . . . . . .=',1pg20.13,
847 . /15x,' DIRECTION 1 X COORDINATE . . . . . .=',1pg20.13,
848 . /15x,' DIRECTION 1 Y COORDINATE . . . . . .=',1pg20.13,
849 . /15x,' DIRECTION 1 Z COORDINATE . . . . . .=',1pg20.13,
850 . /15x,' DIRECTION 3 X COORDINATE . . . . . .=',1pg20.13,
851 . /15x,' DIRECTION 3 Y COORDINATE . . . . . .=',1pg20.13,
852 . /15x,' DIRECTION 3 Z COORDINATE . . . . . .=',1pg20.13,
853 . /15x,'CUTTING LENGTH IN LOCAL DIRECTION 1 . .=',1pg20.13,
854 . /15x,'CUTTING LENGTH IN LOCAL DIRECTION 2 . .=',1pg20.13,
855 . /15x,'CUTTING LENGTH IN LOCAL DIRECTION 3 . .=',1pg20.13,
856 . /15x,'NUMBER OF CELLS IN LOCAL DIRECTION 1. .=',i10,
857 . /15x,'NUMBER OF CELLS IN LOCAL DIRECTION 2. .=',i10,
858 . /15x,'NUMBER OF CELLS IN LOCAL DIRECTION 3. .=',i10,
859 . /15x,'ADDITIONAL BRICK GROUP NUMBER . . . . .=',i10,
860 . /15x,'INTERNAL SURFACE ID. . . . . . . . . .=',i10,
861 . /15x,'FLAG FOR MESH ON REFERENCE METRICS. . .=',i10,
862 . /15x,'CELL MERGING STRATEGY: ',
863 . /15x,' GLOBAL MERGING TYPE. . . . . . . . .=',i10,
864 . /15x,' GLOBAL MERGING COEFFICIENT . . . . .=',1pg20.13,
865 . /15x,' NEIGHBORHOOD MERGING COEFFICIENT . .=',1pg20.13,
866 . /15x,'TOLERANCE FOR SMALL SEGMENT REMOVAL . .=',1pg20.13,
867 . /15x,'QUADRATIC BULK VISCOSITY. . . . . . . .=',1pg20.13,
868 . /15x,'LINEAR BULK VISCOSITY . . . . . . . . .=',1pg20.13,
869 . /15x,'MINIMUM HEIGHT. . . . . . . . . . . . .=',1pg20.13,
870 . /15x,'DT SCALE FACTOR . . . . . . . . . . . .=',1pg20.13,
871 . /15x,'MINIMUM TIMESTEP. . . . . . . . . . . .=',1pg20.13,
872 . /15x,'OUTPUT LEVEL. . . . . . . . . . . . . .=',i10,
873 . /15x,'MEMORY PARAMETERS: ',
874 . /15x,' ESTIMATED NUMBER OF AIRBAG LAYERS. .=',i10,
875 . /15x,' ESTIMATED MAXIMUM NUMBER OF AIRBAG ',
876 . /15x,' FACETS PER CUTTING CELL. . . . .=',i10,
877 . /15x,' ESTIMATED MAXIMUM NUMBER OF POINTS ',
878 . /15x,' PER POLYGON. . . . . . . . . . .=',i10,
879 . /15x,'FLAG FOR ANIMATION FILE A000. . . . . .=',i10)
880 1420 FORMAT(
881 . 5x,'INFLATORS ',
882 . /5x,'--------- ')
883 1421 FORMAT(
884 . 5x,'NUMBER OF INFLATORS . . . . . . . . . .=',i10/)
885 1430 FORMAT(
886 . 5x,'INFLATOR NUMBER . . . . . . . . . . . .=',i10,
887 . /15x,'TIME FUNCTION FOR INCOMING TOTAL MASS .=',i10,
888 . /15x,' or MASS FLUX if IFLU=1 . . . . IFLU =',i10,
889 . /15x,'SCALE FACTOR FOR INCOMING TOTAL MASS .=',1pg20.13,
890 . /15x,'TIME FUNCTION FOR INCOMIMG GAS TEMP . .=',i10,
891 . /15x,'SCALE FACTOR FOR INCOMIMG GAS TEMP . .=',1pg20.13,
892 . /15x,'SENSOR NUMBER . . . . . . . . . . . . .=',i10)
893 1435 FORMAT(15x,'TIME FUNCTION FOR INCOMING GAS VELOCITY=',i10,
894 . /15x,'SCALE FACTOR FOR INCOMING GAS VELOCITY.=',1pg20.13)
895 1440 FORMAT(
896 . /15x,'GAZ CHARACTERISTICS ',
897 . /15x,'------------------- ',
898 . /15x,'GAMMA AT INITIAL TEMPERATURE. . . . . .=',1pg20.13,
899 . /15x,'COEFFICIENT CPA . . . . . . . . . . . .=',1pg20.13,
900 . /15x,'COEFFICIENT CPB . . . . . . . . . . . .=',1pg20.13,
901 . /15x,'COEFFICIENT CPC . . . . . . . . . . . .=',1pg20.13)
902 1445 FORMAT(
903 . 15x,'INFLATOR SURFACE ID . . . . . . . . . .=',i10,
904 . /15x,'INITIAL SURFACE OF INFLATOR . . . . . .=',1pg20.13)
905 1470 FORMAT(
906 . /5x,'VENT HOLES AND POROUS FABRIC SURFACES ',
907 . /5x,'------------------------------------- ',
908 . /5x,'NUMBER OF VENT HOLES AND POROUS SURFACES . .=',i10,
909 . /5x,'INJECTION TIME TINJ. . . . . . . . . . . . .=',1pg20.13)
910 1475 FORMAT(
911 . 5x,'VENTING START TIME SHIFT . . . . . . . . . .=',i10,
912 . /5x,' 0 : NO SHIFT',
913 . /5x,' 1,2: VENTING FUNCTIONS ARE SHIFTED BY TINJ',
914 . /5x,' 3 : VENTING FUNCTIONS ARE SHIFTED BY TINJ+TSTART')
915 1472 FORMAT(
916 . / 5x,'VENT HOLE NUMBER. . . . . . . . . . . .=',i10,
917 . /15x,'VENT HOLE SURFACE ID. . . . . . . . . .=',i10)
918 1481 FORMAT(15x,'ISENTHALPIC VENTING MODEL ')
919 1482 FORMAT(15x,'CHEMKIN MODEL FOR POROSITY : ',
920 . /15x,'VELOCITY VS RELATIVE PRESSURE FUNCTION =',i10,
921 . /15x,' SCALE FACTOR. . . . . . .=',1pg20.13)
922 1483 FORMAT(15x,'LOCAL VELOCITY VENTING FORMULATION')
923 1484 FORMAT(15x,'GRAEFE POROSITY FORMULATION')
924 1479 FORMAT(
925 . 15x,'INITIAL SURFACE . . . . . . . . . . . .=',1pg20.13,
926 . /15x,'AVENT:VENT HOLE SCALE FACTOR. . . . . .=',1pg20.13,
927 . /15x,'BVENT:VENT HOLE SCALE FACTOR IF CONTACT=',1pg20.13,
928 . /15x,'POROSITY FUNCTION / TIME. . . . . . . .=',i10,
929 . /15x,'POROSITY FUNCTION / PRESSURE. . . . . .=',i10,
930 . /15x,'POROSITY FUNCTION / AREA. . . . . . . .=',i10,
931 . /15x,'POROSITY TIME FUNCTION SCALE FACTOR =',1pg20.13,
932 . /15x,'POROSITY PRESSURE FUNCTION SCALE FACTOR=',1pg20.13,
933 . /15x,'POROSITY AREA FUNCTION SCALE FACTOR . .=',1pg20.13,
934 . /15x,'POROSITY FUNCTION / TIME(after contact)=',i10,
935 . /15x,'POROSITY FUNCTION / PRESSURE. . . . . .=',i10,
936 . /15x,'POROSITY FUNCTION / AREA. . . . . . . .=',i10,
937 . /15x,'POROSITY TIME FUNCTION SCALE FACTOR =',1pg20.13,
938 . /15x,'POROSITY PRESSURE FUNCTION SCALE FACTOR=',1pg20.13,
939 . /15x,'POROSITY AREA FUNCTION SCALE FACTOR . .=',1pg20.13)
940 1480 FORMAT(
941 . 15x,'START TIME FOR VENTING TSTART . . . . .=',1pg20.13,
942 . /15x,'RELATIVE PRES. FOR MEMBRANE DEFLATION .=',1pg20.13,
943 . /15x,' (DPDEF = PDEF - PEXT) ',
944 . /15x,'TIME DELAY BEFORE MEMBRANE DEFLATION .=',1pg20.13,
945 . /15x,'TIME DELAY FLAG . . . . . . . . . . . .=',i10,
946 . /15x,' IF IDTPDEF : 0',
947 . /15x,' PRESSURE SHOULD BE OVER PDEF DURING',
948 . /15x,' A CUMULATED DTPDEF TIME'
949 . /15x,' BEFORE ACTIVATING DEFLATION'
950 . /15x,' IF IDTPDEF : 1',
951 . /15x,' DEFLATION START DTPDEF AFTER',
952 . /15x,' DPDEF HAS BEEN REACHED',
953 . /15x,'END TIME FOR VENTING TSTOP. . . . . . .=',1pg20.13)
954 1489 FORMAT(
955 . 15x,'AVENT:VENT HOLE AREA. . . . . . . . . .=',1pg20.13,
956 . /15x,'BVENT:VENT HOLE SCALE FACTOR IF CONTACT=',1pg20.13,
957 . /15x,'POROSITY FUNCTION / TIME. . . . . . . .=',i10,
958 . /15x,'POROSITY FUNCTION / PRESSURE. . . . . .=',i10,
959 . /15x,'POROSITY FUNCTION / AREA. . . . . . . .=',i10,
960 . /15x,'POROSITY TIME FUNCTION SCALE FACTOR =',1pg20.13,
961 . /15x,'POROSITY PRESSURE FUNCTION SCALE FACTOR=',1pg20.13,
962 . /15x,'POROSITY AREA FUNCTION SCALE FACTOR . .=',1pg20.13,
963 . /15x,'POROSITY FUNCTION / TIME(after contact)=',i10,
964 . /15x,'POROSITY FUNCTION / PRESSURE. . . . . .=',i10,
965 . /15x,'POROSITY FUNCTION / AREA. . . . . . . .=',i10,
966 . /15x,'POROSITY TIME FUNCTION SCALE FACTOR =',1pg20.13,
967 . /15x,'POROSITY PRESSURE FUNCTION SCALE FACTOR=',1pg20.13,
968 . /15x,'POROSITY AREA FUNCTION SCALE FACTOR . .=',1pg20.13)
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 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)