38 . NUVAR ,IFUNC ,MAXFUNC ,NFUNC , PARMAT ,
39 . UNITAB ,ID ,TITR ,MTAG , LSUBMODEL,
40 . PM ,STIFINT ,MAT_ID ,MATPARAM )
71#include "implicit_f.inc"
82 TYPE (UNIT_TYPE_),
INTENT(IN) ::UNITAB
83 my_real,
DIMENSION(NPROPM) ,
INTENT(INOUT) :: PM
84 my_real,
DIMENSION(100) ,
INTENT(INOUT) :: PARMAT
85 my_real,
DIMENSION(MAXUPARAM) ,
INTENT(INOUT) :: uparam
86 INTEGER,
DIMENSION(MAXFUNC) ,
INTENT(INOUT) :: IFUNC
87 INTEGER,
INTENT(INOUT) :: ISRATE,IMATVIS,NFUNC,MAXFUNC,MAXUPARAM,NUPARAM,NUVAR
89 INTEGER,
INTENT(IN) :: ID
90 CHARACTER(LEN=NCHARTITLE) ,
INTENT(IN) :: TITR
91 my_real,
INTENT(INOUT) :: stifint
93 INTEGER,
INTENT(IN) :: MAT_ID
94 TYPE(matparam_struct_) ,
INTENT(INOUT) :: MATPARAM
98 LOGICAL :: IS_AVAILABLE,IS_ENCRYPTED
99 my_real C1,C2,,VIS,VISV,RHO10,RHO20,A1,PMIN,GAM,VIS2,PSHIFT,VISV2,FAC_M,FAC_L,FAC_T,FAC_C,RHO0,RHOR
100 INTEGER I,ISOLVER,IRHO
107 is_encrypted = .false.
108 is_available = .false.
114 IF(trimat==0)trimat = -2
118 CALL hm_get_floatv(
'MAT_RHO' ,rho0 ,is_available, lsubmodel, unitab)
119 CALL hm_get_floatv(
'Refer_Rho' ,rhor ,is_available, lsubmodel, unitab)
120 CALL hm_get_floatv(
'MAT_PSH' ,pshift ,is_available, lsubmodel, unitab)
123 CALL hm_get_floatv(
'Lqud_Rho_l' ,rho10 ,is_available, lsubmodel, unitab)
124 CALL hm_get_floatv(
'C_l' ,c1 ,is_available, lsubmodel, unitab)
125 CALL hm_get_floatv(
'ALPHA1' ,a1 ,is_available, lsubmodel, unitab)
126 CALL hm_get_floatv(
'Nu_l' ,vis ,is_available, lsubmodel, unitab)
127 CALL hm_get_floatv(
'Bulk_Ratio_l' ,visv ,is_available, lsubmodel, unitab)
130 CALL hm_get_floatv(
'Lqud_Rho_g' ,rho20 ,is_available, lsubmodel, unitab)
131 CALL hm_get_floatv(
'Lqud_Gamma_bulk',gam ,is_available, lsubmodel, unitab)
132 CALL hm_get_floatv(
'Lqud_P0' ,p0 ,is_available, lsubmodel, unitab)
133 CALL hm_get_floatv(
'Nu_g' ,vis2 ,is_available, lsubmodel, unitab)
134 CALL hm_get_floatv(
'Bulk_Ratio_g' ,visv2 ,is_available, lsubmodel, unitab)
137 IF(gam*c1==0)irho=int(p0)
142 IF(a1<zero .OR. a1>one)
THEN
143 chain1 =
'INITIAL MASSIC FRACTION MUST BE BETWEEN 0 AND 1. '
155 IF(rho10<zero .OR. rho20<zero)
THEN
156 chain1 =
'INITIAL DENSITY CANNOT BE NEGATIVE. '
165 IF(rho10<zero)rho10 = em20
166 IF(rho20<zero)rho20 = em20
177 IF(int22 > 0) isolver = 2
191 rho0 = rho10 * a1 + (one-a1)*rho20
201 uparam(3) = (visv-uparam(2))*third
206 uparam(7) = gam * p0 / rho20
213 uparam(14) = two*vis2
214 uparam(15) = (visv2-uparam(14))*third
234 WRITE(iout,1011) trim(titr),mat_id,37
237 IF(isolver==2)
WRITE(iout,1102)
239 WRITE(iout,
'(5X,A,//)')
'CONFIDENTIAL DATA'
241 WRITE(iout,1012) rho0
242 WRITE(iout,1100)rho10,c1,a1,vis,visv,rho20,gam,p0,vis2,visv2,p0,-pshift
247 WRITE(iout,
'(5X,A,//)')
'CONFIDENTIAL DATA'
249 WRITE(iout,1101)rho10,rho20,irho
256 & 5x,
' BI-PHASE LIQUID-GAS LAW',/,
257 & 5x,
' -----------------------',//)
260 & 5x,
'MATERIAL NUMBER . . . . . . . . . . . .=',i10/,
261 & 5x,
'MATERIAL LAW. . . . . . . . . . . . . .=',i10/)
263 & 5x,
'INITIAL DENSITY . . . . . . . . . . . .=',1pg20.13/)
265 & 5x,
' BOUNDARY FOR BI-PHASE LIQUID-GAS LAW',/,
266 & 5x,
' -------------------------------------',//)
268 & 5x,
'LIQUID REFERENCE DENSITY. . . . . . . .=',1pg20.13/
269 & 5x,
'LIQUID BULK STIFFNESS . . . . . . . . .=',1pg20.13/
270 & 5x,
'LIQUID MASS RATIO . . . . . . . . . . .=',1pg20.13/
271 & 5x,
' (0. = FULL OF GAZ; 1. = FULL OF LIQUID)'/
272 & 5x,
'LIQUID SHEAR KINEMATIC VISCOSITY . . . =',1pg20.13/
273 & 5x,
'LIQUID BULK KINEMATIC VISCOSITY . . . =',1pg20.13//
274 & 5x,
'GAS REFERENCE DENSITY. . . . . . . .=',1pg20.13/
275 & 5x,
'GAS CONSTANT. . . . . . . . . . . . . .=',1pg20.13/
276 & 5x,
'GAS REFERENCE PRESSURE. . . . . . . . .=',1pg20.13/
277 & 5x,
'GAS SHEAR KINEMATIC VISCOSITY . . . . .=',1pg20.13/
278 & 5x,
'GAS BULK KINEMATIC VISCOSITY . . . . .=',1pg20.13//
279 & 5x,
'REFERENCE PRESSURE. . . . . . . . . . .=',1pg20.13/
280 & 5x,
'PRESSURE SHIFT. . . . . . . . . . . . .=',1pg20.13//)
282 & 5x,
'LIQUID REFERENCE DENSITY. . . . . . . .=',1pg20.13/
283 & 5x,
'GAS REFERENCE DENSITY. . . . . . . .=',1pg20.13/
284 & 5x,
'SCALING FUNCTION FOR GAS DENSITY. . . .=',i10)
286 & 5x,
'ITERATIVE NEWTON SOLVER '/)
subroutine hm_read_mat37(uparam, maxuparam, nuparam, israte, imatvis, nuvar, ifunc, maxfunc, nfunc, parmat, unitab, id, titr, mtag, lsubmodel, pm, stifint, mat_id, matparam)
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)