41 . UPARAM ,MAXUPARAM,NUPARAM ,NUVAR ,MFUNC ,
42 . MAXFUNC ,IFUNC ,MTAG ,PARMAT ,UNITAB ,
43 . PM ,LSUBMODEL,ISRAT ,MAT_ID ,TITR ,
44 . ITABLE ,MAXTABL ,NTABLE ,MATPARAM )
68#include "implicit_f.inc"
77 TYPE (UNIT_TYPE_),
INTENT(IN) ::UNITAB
78 INTEGER,
INTENT(IN) :: MAT_ID,MAXUPARAM,MAXFUNC,MAXTABL
79 my_real,
DIMENSION(NPROPM) ,
INTENT(INOUT) :: PM
80 CHARACTER(LEN=NCHARTITLE) ,
INTENT(IN) :: TITR
81 INTEGER,
INTENT(INOUT) :: ISRAT ,NTABLE,ITABLE(MAXTABL)
82 INTEGER,
INTENT(INOUT) :: NUPARAM,NUVAR
83 INTEGER,
INTENT(INOUT) :: MFUNC
84 INTEGER,
DIMENSION(MAXFUNC) ,
INTENT(INOUT) :: IFUNC
85 my_real,
DIMENSION(MAXUPARAM) ,
INTENT(INOUT) :: uparam
86 my_real,
DIMENSION(100),
INTENT(INOUT) :: parmat
89 TYPE(matparam_struct_) ,
INTENT(INOUT) :: MATPARAM
93 LOGICAL :: IS_AVAILABLE,IS_ENCRYPTED
95 . E, NU, YEILD, ET,CSD, VISP, Q1, Q2, Q3, SN, EPSN,
96 . F1,FN,FC, FF, FU,FI,G,C1,N,FAC_L,FAC_T,FAC_M,FAC_C,
100 IS_ENCRYPTED = .false.
101 is_available = .false.
111 CALL hm_get_floatv(
'MAT_RHO' ,rho0 ,is_available, lsubmodel, unitab)
114 CALL hm_get_floatv(
'MAT_E' ,e ,is_available, lsubmodel, unitab)
116 CALL hm_get_intv (
'MAT_Iflag' ,iflag ,is_available,lsubmodel
118 CALL hm_get_floatv(
'Fcut' ,fcut ,is_available, lsubmodel, unitab)
119 CALL hm_get_intv (
'MAT_Iyield' ,iyieldtab ,is_available,lsubmodel)
121 CALL hm_get_floatv(
'MAT_A' ,yeild ,is_available, lsubmodel, unitab)
122 CALL hm_get_floatv(
'MAT_B' ,et ,is_available, lsubmodel, unitab)
123 CALL hm_get_floatv(
'MAT_N' ,n ,is_available, lsubmodel, unitab
124 CALL hm_get_floatv(
'MAT_C' ,csd ,is_available, lsubmodel, unitab)
125 CALL hm_get_floatv(
'MAT_PC' ,visp ,is_available, lsubmodel, unitab)
127 CALL hm_get_floatv(
'MAT_q1' ,q1 ,is_available, lsubmodel, unitab)
128 CALL hm_get_floatv(
'MAT_q2' ,q2 ,is_available, lsubmodel, unitab)
129 CALL hm_get_floatv(
'MAT_q3' ,q3 ,is_available, lsubmodel, unitab)
130 CALL hm_get_floatv(
'MAT_S_N' ,sn ,is_available, lsubmodel, unitab)
131 CALL hm_get_floatv(
'MAT_EPS_N' ,epsn ,is_available, lsubmodel, unitab)
133 CALL hm_get_floatv(
'MAT_f_I' ,fi ,is_available, lsubmodel, unitab)
134 CALL hm_get_floatv(
'MAT_f_N' ,fn ,is_available, lsubmodel, unitab)
135 CALL hm_get_floatv(
'MAT_f_C' ,fc ,is_available, lsubmodel, unitab)
136 CALL hm_get_floatv(
'MAT_f_F' ,ff ,is_available, lsubmodel, unitab)
139 IF(iyieldtab > 0)
THEN
144 IF (rhor == zero) rhor=rho0
149 c1 = e / three / (one - two*nu)
150 IF( csd > zero .AND. visp > zero .AND. fcut
THEN
152 . msgtype=msgwarning,
153 . anmode=aninfo_blind_1
157 IF (fcut == zero) fcut = infinity
159 IF(itable(1) /= 0) ntable =
160 IF(xfac == zero) xfac = one
161 IF(yfac == zero) yfac = one
165 IF(ff < fc .OR. ff < fi .OR. fc < fi )
THEN
168 . anmode=aninfo_blind_1,
180 IF(csd == zero) csd = infinity
182 IF(visp == zero)visp=one
194 IF(q1 == zero)q1=em20
200 IF(ntable == 1) uparam(21) = 1
215 parmat(17) = (one - two*nu)/(one + nu)
228 mtag%G_DMG = 1 + matparam%NMOD
229 mtag%L_DMG = 1 + matparam%NMOD
231 ALLOCATE(matparam%MODE(matparam%NMOD))
232 matparam%MODE(1) =
"Void growth volume fraction fg"
233 matparam%MODE(2) =
"Nucleation volume fraction fn"
234 matparam%MODE(3) =
"Total void volume fraction ft"
235 matparam%MODE(4) =
"Effective void volume fraction f*"
243 WRITE(iout,1001) trim(titr),mat_id,52
247 WRITE(iout,
'(5X,A,//)')
'CONFIDENTIAL DATA'
249 WRITE(iout,1002) rho0
250 WRITE(iout,1100) e,nu,yeild, et, n,csd, visp,sn
251 IF( iyieldtab > 0)
THEN
252 write(iout,1200)itable(1),yfac,xfac
260 &5x,30h -------------------- ,//)
263 &5x,
'MATERIAL NUMBER. . . . . . . . . . . . . . . . . =',i10/,
264 &5x,
'MATERIAL LAW . . . . . . . . . . . . . . . . . . =',i10/)
266 &5x,
'INITIAL DENSITY . . . . . . . . . . . . . . . . =',1pg20.13/)
268 &5x,
'YOUNG''S MODULUS. . . . . . . . . . . . . . . . =',1pg20.13,/
269 &5x,
'POISSON''S RATIO. . . . . . . . . . . . . . . . =',1pg20.13,/
270 &5x,
'YIELD STRESS. . . . . . . . . . . . . . . . . . =',1pg20.13,/
271 &5x,
'TANGENT MODULUS . . . . . . . . . . . . . . . . =',1pg20.13,/
272 &5x,
'HARDENING EXPONENT. . . . . . . . . . . . . . . =',1pg20.13,/
273 &5x,'coefficient of
the cowper-symond .. . . . . . . =
',1PG20.13,/
274 &5X,'strain rate exponent in cowper-symond law . . . =
',1PG20.13,/
275 &5X,'gaussian standard deviation. . . . . . . . . . =
',1PG20.13,/
276 &5X,'nuclueted effective plastic strain . . . . . . =
',1PG20.13,/
277 &5x,'material parameters :
',/
278 &10x, 'q1. . . . . . . . . . . . . . . . . . . . . =
',1PG20.13,/
279 &10x, 'q2. . . . . . . . . . . . . . . . . . . . . . =
',1PG20.13,/
280 &10x, 'q3. . . . . . . . . . . . . . . . . . . . . . =
',1PG20.13,/
281 &5x,'initial void volume fraction . . . . . . . . . =
',1PG20.13,/
282 &5x,'nuclueted void volume fraction . . . . . . . . =
',1PG20.13,/
283 &5x,'critical void volume fraction at coalescence. . =
',1PG20.13,/
284 &5x,'critical void volume fraction at ductile fracture=
',1PG20.13,/
285 &5x,'VALUE of
the coelescence
VALUE. . . . . . . . . =
',1PG20.13,/
286 &5X,'smooth strain rate option. . . . . . . . . . . =
',I10/
287 &5X,'strain rate cutting frequency. . . . . . . . . =
',1PG20.13/
288 &5x,'the choice of viscoplastic flow. . . . . . . . . =
',I10)
291 & 5X,'yield table
id . . . . . . . . .. . . . . . . . =
',I10/
292 & 5X,'yield scale factor . . . . . . . . . . . . . . =
',1PG20.13/
293 & 5X,'plastic strain scale factor . . . . . . .. . =
',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)