44 . MAXFUNC ,MFUNC , PARMAT ,UNITAB ,ID ,
45 . MTAG ,TITR , LSUBMODEL,PM ,MATPARAM )
75#include "implicit_f.inc"
84 TYPE (UNIT_TYPE_),
INTENT(IN) ::UNITAB
85 ,
DIMENSION(NPROPM) ,
INTENT(INOUT) :: PM
86 my_real,
DIMENSION(100) ,
INTENT(INOUT) :: parmat
87 my_real,
DIMENSION(MAXUPARAM) ,
INTENT(INOUT) :: uparam
88 INTEGER,
DIMENSION(MAXFUNC) ,
INTENT(INOUT) :: IFUNC
89 INTEGER,
INTENT(INOUT) :: MFUNC,NUPARAM,NUVAR
91 INTEGER,
INTENT(IN) :: ID,MAXFUNC,MAXUPARAM
92 CHARACTER(LEN=NCHARTITLE) ,
INTENT(IN) :: TITR
94 TYPE(matparam_struct_) ,
INTENT(INOUT) :: MATPARAM
98 INTEGER :: NBMAT, MAT_ID
99 INTEGER :: I,J,IU,NC,NT,VP,ILAW,ISRATE,IRATE
100 my_real :: e,ec,nu,g,cp,epsp0,sigy,rho0,rhor,
101 . fisokin,yfac_unit,fcut,pc,pt,c1,rpct
102 my_real :: rate(maxfunc+1),yfac(maxfunc+1)
103 LOGICAL :: IS_AVAILABLE,IS_ENCRYPTED
108 is_encrypted = .false.
109 is_available = .false.
124 CALL hm_get_floatv(
'MAT_RHO' ,rho0 ,is_available, lsubmodel, unitab)
125 CALL hm_get_floatv(
'Refer_Rho' ,rhor ,is_available, lsubmodel, unitab)
128 CALL hm_get_floatv(
'MAT_E' ,e ,is_available, lsubmodel, unitab)
129 CALL hm_get_floatv(
'MAT_NU' ,nu ,is_available, lsubmodel, unitab)
130 CALL hm_get_floatv(
'MAT_HARD' ,fisokin ,is_available, lsubmodel, unitab)
131 CALL hm_get_floatv(
'MAT_asrate' ,fcut ,is_available, lsubmodel, unitab)
132 CALL hm_get_intv (
'Fsmooth' ,israte ,is_available,lsubmodel)
133 CALL hm_get_intv (
'ISRATE' ,irate ,is_available,lsubmodel)
136 CALL hm_get_floatv(
'MAT_PC' ,pc ,is_available, lsubmodel, unitab)
137 CALL hm_get_floatv(
'MAT_PT' ,pt ,is_available, lsubmodel, unitab)
138 CALL hm_get_floatv(
'MAT_EC' ,ec ,is_available, lsubmodel, unitab)
139 CALL hm_get_floatv(
'MAT_RPCT' ,rpct ,is_available, lsubmodel, unitab)
142 IF(irate == 0) irate = 1
145 CALL hm_get_intv (
'FUN_A1' ,ifunc(1) ,is_available,lsubmodel)
146 CALL hm_get_intv (
'FUN_A2' ,ifunc(2) ,is_available,lsubmodel)
147 CALL hm_get_floatv(
'FScale11' ,yfac(1) ,is_available, lsubmodel, unitab)
148 CALL hm_get_floatv(
'FScale22' ,yfac(2) ,is_available, lsubmodel, unitab)
153 IF(yfac(1) == zero) yfac(1)= yfac_unit
155 IF(yfac(2) == zero) yfac(2)= yfac_unit
160 CALL hm_get_floatv(
'Epsilon_0' ,epsp0 ,is_available, lsubmodel, unitab)
161 CALL hm_get_floatv(
'MAT_C0' ,cp ,is_available, lsubmodel, unitab)
162 CALL hm_get_floatv(
'SIGMA_r' ,sigy ,is_available, lsubmodel, unitab)
163 CALL hm_get_intv (
'VP' ,vp ,is_available,lsubmodel)
165 IF(epsp0 == zero .AND. cp == zero)epsp0 = ep20
166 IF(epsp0 == zero) epsp0 = one
169 ELSEIF(irate == 3)
THEN
170 CALL hm_get_intv (
'FUN_B1' ,ifunc(3) ,is_available,lsubmodel)
171 CALL hm_get_intv (
'FUN_B2' ,ifunc(4) ,is_available,lsubmodel)
172 CALL hm_get_floatv(
'FScale33' ,yfac(3) ,is_available, lsubmodel
173 CALL hm_get_floatv(
'FScale12' ,yfac(4) ,is_available, lsubmodel, unitab)
180 IF(yfac(3) == zero) yfac(3)= yfac_unit
182 IF(yfac(4) == zero) yfac(4)= yfac_unit
184 ELSEIF(irate == 4)
THEN
185 CALL hm_get_intv (
'NFUNC' ,nc ,is_available,lsubmodel)
186 CALL hm_get_intv (
'TFUNC' ,nt ,is_available,lsubmodel)
193 IF(yfac(i) == zero) yfac(i) = yfac_unit
202 ELSEIF(rate(1) /= zero)
THEN
218 IF(yfac(nc + i) == zero) yfac(nc + i) = yfac_unit
222 ifunc(nc + 2) = ifunc(nc + 1)
225 yfac(nc + 2) = yfac(nc + 1)
226 ELSEIF(rate(nc + 1) /= zero)
THEN
229 ifunc(nc + j + 1) = ifunc(nc + j)
230 rate(nc + j + 1) = rate(nc + j)
231 yfac(nc + j + 1) = yfac(nc + j)
238 IF(rate(i) > rate(i+1))
THEN
241 . anmode=aninfo_blind_1,
250 IF(rate(nc+i) >= rate(nc+i+1))
THEN
253 . anmode=aninfo_blind_1,
266 IF(rhor==zero)rhor=rho0
271 IF(ifunc(i) == 0)
THEN
281 IF(nu == half)nu=zep499
282 IF(cp == zero .AND. irate == 1
283 IF(irate == 1 ) cp = one/cp
284 g = half*e/( one + nu)
289 uparam(3) = e/(one - nu*nu)
290 uparam(4) = nu*uparam(3)
301 uparam(13+i) = yfac(i)
302 uparam(13+i+mfunc) = rate(i)
305 uparam(14 + 2*mfunc) = sigy
306 uparam(15 + 2*mfunc) = vp
307 uparam(16 + 2*mfunc) = ec
308 uparam(17 + 2*mfunc) = rpct
309 nuparam = 17 + 2*mfunc
311 c1=e/three/(one - two*nu)
332 WRITE(iout,1001) trim(titr),id,ilaw
335 WRITE(iout,
'(5X,A,//)')
'CONFIDENTIAL DATA'
337 WRITE(iout,1002) rho0
338 WRITE(iout,1100) e,ec,nu,pc,pt,rpct,fisokin,israte,fcut
339 WRITE(iout,1200) irate
341 WRITE(iout,1300) ifunc(1),yfac(1)
342 write(iout,1400) ifunc(2),yfac(2)
343 write(iout,1500) epsp0
349 write(iout,1530) vp,sigy
350 ELSEIF(irate == 3)
THEN
351 WRITE(iout,1300) ifunc(1),yfac(1)
352 write(iout,1400) ifunc(2),yfac(2)
353 write(iout,1600) ifunc(3),yfac(3)
354 WRITE(iout,1700) ifunc(4),yfac(4)
357 WRITE(iout,2000) ifunc(i),yfac(i),rate(i)
360 WRITE(iout,3000) ifunc(i+nc),yfac(i+nc),rate(i+nc)
367 & 5x,
' TABULATED TENSION-COMPRESSION PLASTIC LAW ',/,
368 & 5x,
' ----------------------------- ' ,//)
371 & 5x,
'MATERIAL NUMBER. . . . . . . . . . . . =',i10/,
372 & 5x,
'MATERIAL LAW . . . . . . . . . . . . . =',i10/)
374 & 5x,
'INITIAL DENSITY. . . . . . . . . . . . =',1pg20.13/)
376 & 5x,
'YOUNG''S MODULUS. . . . . . . . . . . . .=',1pg20.13/
377 & 5x,
'YOUNG''S MODULUS IN COMPRESSION . . . . .=',1pg20.13/
378 & 5x,
'POISSON''S RATIO. . . . . . . . . . . . .=',1pg20.13/
379 & 5x,
'COMPRESSION MEAN STRESS. . . . . . . . .=',1pg20.13/
380 & 5x,
'TRACTION MEAN STRESS . . . . . . . . . .=',1pg20.13/
381 & 5x,
'FRACTION OF MEAN STRESSES . . . . . . . .=',1pg20.13/
382 & 5x,
'ISO-KINEMATIC HARDENNING FACTOR . . . . .=',1pg20.13/
383 & 5x,
'SMOOTH STRAIN RATE OPTION . . . . . . . .=',i10/
384 & 5x,
'STRAIN RATE CUTTING FREQUENCY . . . . . .=',1pg20.13/)
386 & 5x,
'STRAIN RATE FORMULATION OPTION . . . . .=', i10/)
388 & 5x,
'COMPRESSION YIELD STRESS FUNCTION NUMBER.=',i10/
389 & 5x,
'YIELD SCALE FACTOR. . . . . . . . . . . .=',1pg20.13)
391 & 5x,
'TRACTION YIELD STRESS FUNCTION NUMBER . .=',i10/
392 & 5x,
'YIELD SCALE FACTOR. . . . . . . . . . . .=',1pg20.13)
394 & 5x,
'REFERENCE STRAIN RATE . . . . . . . . . .=',1pg20.13)
396 & 5x,
'STRAIN RATE PARAMETER 1/C . . . . . . . .=',1pg20.13)
398 & 5x,
'STRAIN RATE PARAMETER C . . . . . . . . .=',1pg20.13)
400 & 5x,
'OPTIONAL STRAIN RATE EFFECT : . . . . . .=',i10/,
401 & 5x,
' 0 : STRAIN RATE EFFECT IS ACTIVATED ',/,
402 & 5x,
' 1 : VISCPLASTIC OPTION IS ACTIVATED ',/,
403 & 5x,
'OPTIONAL INITIAL YIELD STRESS . . . . . .=',1pg20.13/)
406 .
'COMPRESSION STRAIN RATE SCALING EFFECT FUNCTION NUMBER .=',i10/
407 & 5x,
'SCALE FACTOR. . . . . . . . . . . . . . .=',1pg20.13)
411 .
'TRACTION STRAIN RATE SCALING EFFECT FUNCTION NUMBER . . .=',i10/
412 & 5x,
'SCALE FACTOR. . . . . . . . . . . . . . .=',1pg20.13)
414 & 5x,
'COMPRESSION YIELD STRESS FUNCTION NUMBER.=',i10/
415 & 5x,
' YIELD SCALE FACTOR. . . . . .=',1pg20.13
416 & 5x,
'STRAIN RATE. . . . . . . . . .=',1pg20.13)
418 & 5x,
'TRACTION YIELD STRESS FUNCTION NUMBER . .=',i10/
419 & 5x,
'YIELD SCALE FACTOR. . . . . . . . . . . .=',1pg20.13/
420 & 5x,
'STRAIN RATE . . . . . . . . . . . . . . .=',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)