48 . UNITAB, LUID, IGRSURF,
49 . ITAB, X, PM, GEO, IXC, IXTG,LSUBMODEL)
61#include "implicit_f.inc"
75 TYPE(),
INTENT(IN) :: UNITAB
76 INTEGER,
INTENT(IN) :: LUID
77 INTEGER,
INTENT(IN) :: ITAB(*), IXC(NIXC, *), IXTG(NIXTG, *)
78 my_real,
INTENT(IN) :: x(3, *), geo(npropg, *), pm(npropm, *)
79 TYPE (SURF_),
INTENT(INOUT),
DIMENSION(NSURF) ::
87 my_real :: fac_m, fac_l, fac_t, fac_c
88 my_real :: scal_t, scal_p, scal_s, scal_a, scal_d
90 my_real :: sa, rot, vol, vmin, veps, amu, sv
91 LOGICAL :: IS_AVAILABLE
96 is_available = .false.
101 CALL hm_get_intv(
'surf_IDex', surfid, is_available, lsubmodel)
106 t_monvoln%IVOLU(4) = 0
109 IF (surfid == igrsurf(ii)%ID)
THEN
110 t_monvoln%IVOLU(4) = ii
111 t_monvoln%EXT_SURFID = ii
116 IF (.NOT. found)
THEN
118 ELSEIF (igrsurf(t_monvoln%IVOLU(4))%ISH4N3N == 0)
THEN
119 CALL ancmsg(msgid = 18, anmode
120 . i1 = t_monvoln%ID, c1 = t_monvoln%TITLE, i2 = surfid)
128 . igrsurf(t_monvoln%EXT_SURFID),ixc, ixtg, x, 1)
130 CALL monvol_compute_volume(t_monvoln, t_monvoln%TITLE, t_monvoln%IVOLU, igrsurf(t_monvoln%EXT_SURFID),
131 . itab, x, pm, geo, ixc, ixtg,
132 . sa, rot, vol, vmin, veps, sv)
135 . igrsurf(t_monvoln%EXT_SURFID),ixc,ixtg,vol, x, 1)
140 fac_m = unitab%FAC_M(luid)
141 fac_l = unitab%FAC_L(luid)
142 fac_t = unitab%FAC_T(luid)
143 fac_c = fac_m / (fac_l * fac_t * fac_t)
148 scal_s = one * fac_l * fac_l
155 t_monvoln%RVOLU(26) = one / scal_t
156 t_monvoln%RVOLU(27) = one / scal_p
157 t_monvoln%RVOLU(28) = one / scal_s
158 t_monvoln%RVOLU(29) = one / scal_a
159 t_monvoln%RVOLU(30) = one / scal_d
162 t_monvoln%RVOLU(2) = amu
163 t_monvoln%RVOLU(16) = vol + veps
164 t_monvoln%RVOLU(18) = sa
165 t_monvoln%RVOLU(21) = rot
166 t_monvoln%RVOLU(22:24) = zero
171 WRITE(iout, 1005) surfid
172 WRITE(iout, 1003) scal_t, scal_p, scal_s, scal_a, scal_d
173 WRITE(iout, 1002) sa, sv, vol
180 . /5x,
'INITIAL SURFACE OF MONITORED VOLUME . .=',1pg20.13,
181 . /5x,
'SURFACE ERROR(NE.0 FOR NON CLOSED SURF)=',1pg20.13,
182 . /5x,
'INITIAL VOLUME OF MONITORED VOLUME. . .=',1pg20.13)
184 . 5x,
'UNIT SCALE FOR TIME FUNCTIONS =',1pg20.13,
185 . /5x,
'UNIT SCALE FOR PRESSURE FUNCTIONS =',1pg20.13,
186 . /5x,
'UNIT SCALE FOR AREA FUNCTIONS =',1pg20.13,
187 . /5x,
'UNIT SCALE FOR ANGLE FUNCTIONS =',1pg20.13,
188 . /5x,
'UNIT SCALE FOR DISTANCE FUNCTIONS =',1pg20.13)
189 1005
FORMAT( 5x,
'EXTERNAL SURFACE ID . . . . . . . . . .=',i10)
subroutine monvol_compute_volume(t_monvoln, title, ivolu, surf, itab, node_coord, pm, geo, ixc, ixtg, sa, rot, vol, vmin, veps, sv)
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)