42 . UPARAM ,MAXUPARAM,NUPARAM ,NUVAR ,NFUNC ,
43 . MAXFUNC ,IFUNC ,PARMAT ,MAT_ID ,PM ,
44 . ISRATE ,IMATVIS ,TITR ,UNITAB ,LSUBMODEL,
70#include "implicit_f.inc"
79 TYPE (UNIT_TYPE_),
INTENT(IN) ::UNITAB
80 INTEGER,
INTENT(IN) :: MAT_ID,MAXUPARAM,MAXFUNC
81 my_real,
DIMENSION(NPROPM) ,
INTENT(INOUT) :: PM
82 CHARACTER(LEN=NCHARTITLE) ,
INTENT(IN) :: TITR
83 INTEGER,
INTENT(INOUT) :: NUPARAM,NUVAR,NFUNC,ISRATE,,JALE
84 INTEGER,
DIMENSION(MAXFUNC) ,
INTENT(INOUT) :: IFUNC
85 my_real,
DIMENSION(MAXUPARAM) ,
INTENT(INOUT) :: uparam
86 my_real,
DIMENSION(100),
INTENT(INOUT) :: parmat
87 TYPE(matparam_struct_) ,
INTENT(INOUT) :: MATPARAM
92 INTEGER :: I,J,ILAW,NRATEN,NRATEP,IUNLOAD,IFUNCR,IFUNCK,
93 . NPAR_FOAM,ICLOS,INCGAS
94 my_real :: ,G,RHOA,RHO0,RHOR,EXPO,HYS,FRAC,
95 . FCUT, A1,E0,EMAX,EPSMAX,P0,AA,BB,KK,TAUX,BULK,EINT0,
96 . gamma,pext,fp_ini,rhoext,eint_ext,fscal_unit
97 INTEGER ,
DIMENSION(15) :: FLOAD,FUNLOAD
98 my_real ,
DIMENSION(30) :: rate,yfac,rload,sload,runload,sunload
99 LOGICAL :: IS_AVAILABLE,IS_ENCRYPTED
101 is_encrypted = .false.
102 is_available = .false.
113 CALL hm_get_floatv(
'MAT_RHO' ,rho0 ,is_available, lsubmodel, unitab)
114 CALL hm_get_floatv(
'Refer_Rho' ,rhor ,is_available, lsubmodel, unitab)
116 CALL hm_get_floatv(
'MAT_E' ,e0 ,is_available, lsubmodel, unitab)
117 CALL hm_get_floatv(
'MAT_NU' ,nu ,is_available, lsubmodel, unitab)
118 CALL hm_get_floatv(
'E_Max' ,emax ,is_available, lsubmodel, unitab)
119 CALL hm_get_floatv(
'MAT_EPS' ,epsmax ,is_available, lsubmodel, unitab)
120 CALL hm_get_floatv(
'MAT_FP0' ,fp_ini ,is_available, lsubmodel, unitab)
122 CALL hm_get_floatv(
'MAT_asrate' ,fcut ,is_available, lsubmodel, unitab)
123 CALL hm_get_intv (
'ISRATE' ,israte ,is_available,lsubmodel)
124 CALL hm_get_intv (
'NRATEP' ,nratep ,is_available,lsubmodel)
125 CALL hm_get_intv (
'NRATEN' ,nraten ,is_available,lsubmodel)
126 CALL hm_get_intv (
'MAT_Iflag' ,iunload ,is_available,lsubmodel)
127 CALL hm_get_floatv(
'MAT_SHAPE' ,expo ,is_available, lsubmodel, unitab)
128 CALL hm_get_floatv(
'MAT_HYST' ,hys ,is_available, lsubmodel, unitab)
148 CALL hm_get_floatv(
'Lqud_Rho_g' ,rhoa ,is_available, lsubmodel, unitab)
149 CALL hm_get_floatv(
'MAT_P0' ,p0 ,is_available, lsubmodel, unitab)
150 CALL hm_get_floatv(
'GAMMA' ,gamma ,is_available, lsubmodel, unitab)
151 CALL hm_get_floatv(
'MAT_POROS' ,frac ,is_available, lsubmodel, unitab)
153 CALL hm_get_floatv(
'Rho_Gas' ,rhoext ,is_available, lsubmodel, unitab)
154 CALL hm_get_floatv(
'PEXT' ,pext ,is_available, lsubmodel, unitab)
155 CALL hm_get_intv (
'ISFLAG' ,iclos ,is_available,lsubmodel)
156 CALL hm_get_intv (
'Gflag' ,incgas ,is_available,lsubmodel)
158 CALL hm_get_floatv(
'MAT_ALPHA' ,aa ,is_available, lsubmodel, unitab)
159 CALL hm_get_floatv(
'MAT_Beta' ,bb ,is_available, lsubmodel, unitab)
161 CALL hm_get_floatv(
'MAT_K' ,kk ,is_available, lsubmodel, unitab)
163 CALL hm_get_intv (
'FUN_A1' ,ifunck ,is_available,lsubmodel)
164 CALL hm_get_intv (
'FUN_B1' ,ifuncr ,is_available,lsubmodel)
170 IF (nratep == 0)
THEN
173 . anmode=aninfo_blind,
177 IF (nraten == 0 .AND. (iunload == 0 .OR. iunload == 1) )
THEN
180 . anmode=aninfo_blind,
187 IF (sload(i) == zero) sload(i) = one*fscal_unit
192 nfunc = nratep + nraten
195 IF (sunload(i) == zero) sunload(i) = one*fscal_unit
196 ifunc(j) = funload(i)
202 IF (ifunc(i) == 0)
THEN
205 . anmode=aninfo_blind_1,
212 ifunc(nfunc + 1) = ifunck
213 ifunc(nfunc + 2) = ifuncr
218 IF (emax == zero) emax = e0
219 IF (epsmax == zero) epsmax = one
220 IF (gamma == zero) gamma = onep4
221 IF (rhoext == 0) rhoext = rhoa
222 IF (expo == zero) expo = one
223 IF (hys == zero) hys = one
224 IF (iunload == 0) iunload = 1
226 IF (fcut == zero) fcut = infinity
228 eint0 = p0/(gamma - one)
229 eint_ext = pext/(gamma - one)
230 a1 = (emax-e0) / epsmax
231 g = half*e0 / (one + nu)
232 bulk = e0/three / (one - two*nu)
233 eint0 = p0/(gamma - one)
234 eint_ext = pext/(gamma - one)
244 uparam(i + 8) = rate(i)
245 uparam(i + 8 + nfunc) = yfac(i)
247 uparam(2*nfunc + 9) = iunload
248 uparam(2*nfunc + 10) = expo
249 uparam(2*nfunc + 11) = hys
250 uparam(2*nfunc + 12) = emax
251 npar_foam = 13 + 2*nfunc
252 uparam(npar_foam + 1) = rhoa
253 uparam(npar_foam + 2) = p0
254 uparam(npar_foam + 3) = gamma
255 uparam(npar_foam + 4) = frac
256 uparam(npar_foam + 5) = pext
257 uparam(npar_foam + 6) = fp_ini
258 uparam(npar_foam + 7) = eint0
259 uparam(npar_foam + 8) = kk
261 nuparam = npar_foam + 8
271 parmat(17) = (one - two*nu)/(one - nu)
298 WRITE(iout,1000) trim(titr),mat_id,77
300 IF (is_encrypted)
THEN
301 WRITE(iout,
'(5X,A,//)')
'CONFIDENTIAL DATA'
303 WRITE(iout,1200) rho0
304 WRITE(iout,1300) e0,nu,emax,epsmax,fp_ini
305 WRITE(iout,1400) fcut,israte,nratep,nraten,iunload,expo,hys
306 WRITE(iout,1500)(ifunc(j),rate(j),yfac(j),j=1,nratep)
307 WRITE(iout,1600)(ifunc(j+nratep),rate(j+nratep),yfac(j+nratep),j=1,nraten)
309 WRITE(iout,2100) rhoa,p0,gamma,frac,ifuncr
311 WRITE(iout,2300) rhoext,pext,iclos,incgas
313 WRITE(iout,3100) aa,bb,taux,kk,ifunck
318 & 5x,
'MATERIAL NUMBER. . . . . . . . . . . . . . .=',i10/,
319 & 5x,
'MATERIAL LAW . . . . . . . . . . . . . . . .=',i10/)
321 &(5x,
'MATERIAL : TABULATED NON-LINEAR VISCO ELASTIC (LAW77) ',/,
322 & 5x,
'----------------------------------------------------- ',/)
324 & 5x,
'INITIAL DENSITY . . . . . . . . . . . . .=',1pg20.13/)
326 & 5x,
'INITIAL YOUNG''S MODULUS . . . . . . . . . .=',1pg20.13/,
327 & 5x,
'POISSON''S RATIO . . . . . . . . . . . . . .=',1pg20.13/,
328 & 5x,
'MAXIMUM YOUNG''S MODULUS . . . . . . . . . .=',1pg20.13/,
329 & 5x,
'MAXIMUM STRAIN . . . . . . . . . . . . . .=',1pg20.13/,
330 & 5x,
'INITIAL FOAM PRESSURE. . . . . . . . . . . .=',1pg20.13/)
332 & 5x,
'STRAIN RATE CUTOFF FREQUENCY . . . . . . . .=',1pg20.13/,
333 & 5x,
'FLAG FOR STRAIN RATE . . . . . . . .=',i10/,
334 & 5x,
'NUMBER OF LOAD STRESS FUNCTIONS . . . . . .=',i10/,
335 & 5x,
'NUMBER OF UNLOAD STRESS FUNCTIONS. . . . . .=',i10/,
336 & 5x,
'CHOICE OF UNLOADING FORMULATION. . . . . . .=',i10/,
337 & 5x,
'SHAPE FACTOR FOR UNLOADING . . . . . . . . .=',1pg20.13/,
338 & 5x,
'HYSTERETIC UNLOADING FACTOR . . . . . . . .=',1pg20.13 )
340 & 5x,
'LOAD YIELD STRESS FUNCTION NUMBER. . . . . .=',i10/,
341 & 5x,
'STRAIN RATE. . . . . . . . . . . . . . . . .=',1pg20.13/,
342 & 5x,
'SCALE FACTOR . . . . . . . . . . . . . . . .=',1pg20.13/)
344 & 5x,
'UNLOAD YIELD STRESS FUNCTION NUMBER. . . . .=',i10/,
345 & 5x,
'STRAIN RATE. . . . . . . . . . . . . . . . .=',1pg20.13/,
346 & 5x,
'SCALE FACTOR . . . . . . . . . . . . . . . .=',1pg20.13/)
348 & 5x,
' GAS PARAMETERS' ,/,
349 & 5x,
' -----------------',/)
351 & 5x,
'DENSITY. . . . . . . . . . . . . . . . . . .=',1pg20.13/,
352 & 5x,
'P0 . . . . . . . . . . . . . . . . . . . . .=',1pg20.13/,
353 & 5x,
'GAMMA. . . . . . . . . . . . . . . . . . . .=',1pg20.13/,
354 & 5x,
'INITIAL GAS FRACTION (R) . . . . . . . . . .=',1pg20.13/,
355 & 5x,
'SCALE FUNCTION FOR GAS FRACTION R(V/V0). . .=',i10/)
357 & 5x,
' EXTERNAL GAS PARAMETERS' ,/,
358 & 5x,
' -----------------------',/)
360 & 5x,
'DENSITY. . . . . . . . . . . . . . . . . . .=',1pg20.13/,
361 & 5x,
'PEXT. . . . . . . .. . . . . . . . . . . . .=',1pg20.13/,
362 & 5x,
'FLAG FOR CLOSED FOAM . . . . . . . . . . . .=',i10/
363 & 5x,
'INCOMING GAS FLAG. . . . . . . . . . . . . .=',i10/ )
365 & 5x,
' DARCY PARAMETERS ',/,
366 & 5x,
' -----------------',/)
368 & 5x,
'A. . . . . . . . . . . . . . . . . . . . . .=',1pg20.13/,
369 & 5x,
'BETA . . . . . . . . . . . . . . . . . . . .=',1pg20.13/,
370 & 5x,
'TAUX . . . . . . . . . . . . . . . . . . . .=',1pg20.13/,
371 & 5x,
'INITIAL PERMEABILITY (K) . . . . . . . . . .=',1pg20.13/
372 & 5x,
'SCALE FUNCTION FOR PERMEABILITY K(V/V0). . .=',i10/ )
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)