40 . MAXFUNC, NFUNC, PARMAT, UNITAB ,MAT_ID,
41 . MTAG, TITR, LSUBMODEL, PM, MATPARAM)
54#include "implicit_f.inc"
63 TYPE (UNIT_TYPE_),
INTENT(IN) ::UNITAB
64 ,
DIMENSION(NPROPM),
INTENT(INOUT) :: PM
65 my_realDIMENSION(100),
INTENT(INOUT) :: parmat
66 my_real,
DIMENSION(MAXUPARAM),
INTENT(INOUT) :: uparam
67 INTEGER,
DIMENSION(MAXFUNC),
INTENT(INOUT) :: IFUNC
68 INTEGER,
INTENT(INOUT) :: NFUNC, NUPARAM, NUVAR
70 INTEGER,
INTENT(IN) :: MAT_ID, MAXFUNC, MAXUPARAM
71 CHARACTER(LEN=NCHARTITLE),
INTENT(IN) :: TITR
72 TYPE(
submodel_data),
DIMENSION(NSUBMOD),
INTENT(IN) :: LSUBMODEL
73 TYPE(matparam_struct_) ,
INTENT(INOUT) :: MATPARAM
78 my_real E, NU, AY, AZ, BY, BZ, CX, DC, PR, PS, SIG0, H, M, SFAC,
79 . rho0, rhor, fac_unit
80 LOGICAL :: IS_ENCRYPTED, IS_AVAILABLE
84 is_encrypted = .false.
85 is_available = .false.
90 CALL hm_get_floatv(
'MAT_RHO' ,rho0 ,is_available, lsubmodel, unitab)
91 CALL hm_get_floatv(
'Refer_Rho' ,rhor ,is_available, lsubmodel, unitab)
92 IF (rhor == zero)
THEN
99 CALL hm_get_floatv(
'MAT_E', e, is_available, lsubmodel, unitab)
100 CALL hm_get_floatv(
'MAT_NU', nu, is_available, lsubmodel, unitab)
102 CALL hm_get_intv(
'FUNC', nf, is_available, lsubmodel)
103 CALL hm_get_floatv(
'MAT_A', sig0, is_available, lsubmodel, unitab)
104 CALL hm_get_floatv(
'MAT_B', h, is_available, lsubmodel, unitab)
105 CALL hm_get_floatv(
'MAT_N', m, is_available, lsubmodel, unitab)
106 CALL hm_get_floatv(
'MAT_Sfac_Yield', sfac, is_available, lsubmodel, unitab)
108 CALL hm_get_floatv(
'MAT_Ay', ay, is_available, lsubmodel, unitab)
109 CALL hm_get_floatv(
'MAT_Az', az, is_available, lsubmodel, unitab)
110 CALL hm_get_floatv(
'MAT_By', by, is_available, lsubmodel, unitab)
111 CALL hm_get_floatv(
'MAT_Bz', bz, is_available, lsubmodel, unitab)
112 CALL hm_get_floatv(
'MAT_Cx', cx, is_available, lsubmodel, unitab)
114 CALL hm_get_floatv(
'MAT_Dc', dc, is_available, lsubmodel, unitab)
115 CALL hm_get_floatv(
'MAT_Rc', pr, is_available, lsubmodel, unitab)
116 CALL hm_get_floatv(
'MAT_EPS', ps, is_available, lsubmodel, unitab)
119 IF (sfac == zero)
THEN
120 CALL hm_get_floatv_dim(
'MAT_Sfac_Yield', fac_unit, is_available, lsubmodel, unitab)
121 sfac = one * fac_unit
143 IF (dc == zero .OR. dc >= one)
THEN
155 IF (sig0 == zero .AND. h == zero .AND. m == zero)
THEN
156 CALL ancmsg(msgid = 501, msgtype = msgerror, anmode = aninfo_blind_1,
157 . i1 = mat_id, c1 = titr)
161 CALL ancmsg(msgid = 502, msgtype = msgerror, anmode = aninfo_blind_1,
162 . i1 = mat_id, c1 = titr)
173 uparam(6) = half * e / (one + nu)
198 WRITE(iout, 800) trim(titr), mat_id, 54
200 IF (is_encrypted)
THEN
201 WRITE(iout,
'(5X,A,//)')
'CONFIDENTIAL DATA'
203 WRITE(iout, 850) rho0
204 WRITE(iout, 1100) e, nu, ay, az, by, bz, cx
206 WRITE(iout, 2100) nf, sfac, sig0, h, m
208 WRITE(iout, 3100) dc, pr, ps
213 & 5x,
'MATERIAL NUMBER. . . . . . . . . . . . . . .=',i10/,
214 & 5x,
'MATERIAL LAW . . . . . . . . . . . . . . . .=',i10/)
216 & 5x,
'INITIAL DENSITY . . . . . . . . . . . . .=',1pg20.13/)
218 & 5x,
' ELASTOPLASTIC USER LAW ',/,
219 & 5x,
' ---------------------- ',//)
221 & 5x,
'E . . . . . . . . . . . . . . . . . . .=',1pg20.13/,
222 & 5x,
'NU. . . . . . . . . . . . . . . . . . .=',1pg20.13/,
223 & 5x,
'AY. . . . . . . . . . . . . . . . . . .=',1pg20.13/,
224 & 5x,
'AZ. . . . . . . . . . . . . . . . . . .=',1pg20.13/,
225 & 5x,
'By. . . . . . . . . . . . . . . . . . .=',1pg20.13/,
226 & 5x,
'BZ. . . . . . . . . . . . . . . . . . .=',1pg20.13/,
227 & 5x,
'CX. . . . . . . . . . . . . . . . . . .=',1pg20.13//)
230 & 5x,
' HARDENING USER PARAMETERS ',/,
231 & 5x,
' ---------------------- ',//)
233 & 5x,
'YIELD FUNCTION NUMBER . . . . . . . . . . . . =',i10/,
234 & 5x,
'SCALE FACTOR FOR YIELD FUNCTION . . . . =',1pg20.13/,
235 & 5x,
'YIELD STRESS. . . . . . . . . . . . . . =',1pg20.13/,
236 & 5x,
'PLASTIC MODULUS. . . . . . . . . . . . =',1pg20.13/,
237 & 5x,
'EXPONENT. . . . . . . . . . . . . . . . =',1pg20.13///)
240 & 5x,
' DAMAGE PARAMETER USER LAW ',/,
241 & 5x,
' ---------------------- ',//)
243 & 5x,
'D CRITIQUE. . . . . . . . . . . . . . . =',1pg20.13/,
244 & 5x,
'P RUPTURE . . . . . . . . . . . . . . =',1pg20.13/,
245 & 5x,
'P SEUIL . . . . . . . . . . . . . . . . =',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)