40 . LSUBMODEL ,MTAG ,UNITAB ,IPM ,PM,
41 . MAT_ID ,TITR ,MATPARAM )
65#include "implicit_f.inc"
74 TYPE (UNIT_TYPE_),
INTENT(IN) ::UNITAB
75 INTEGER,
INTENT(IN) :: MAT_ID
76 INTEGER,
DIMENSION(NPROPMI) ,
INTENT(INOUT) :: IPM
77 CHARACTER(LEN=NCHARTITLE) ,
INTENT(IN) :: TITR
78 my_real,
DIMENSION(NPROPM) ,
INTENT(INOUT) :: pm
81 TYPE(matparam_struct_) ,
INTENT(INOUT) :: MATPARAM
85 LOGICAL :: IS_AVAILABLE,IS_ENCRYPTED
86 INTEGER :: I,ILAW,IFUNC
87 my_real :: rho0,rhor,e,nu,a0,a1,a2,amx,c1,fac_y,pmin,pext,bunl,xmumx,e0,g,pstar,delta,fscal_unit
90 is_encrypted = .false.
91 is_available = .false.
97 CALL hm_get_floatv(
'MAT_RHO' ,rho0 ,is_available, lsubmodel, unitab)
98 CALL hm_get_floatv(
'Refer_Rho' ,rhor ,is_available, lsubmodel, unitab)
99 CALL hm_get_floatv(
'MAT_E' ,e ,is_available, lsubmodel, unitab)
100 CALL hm_get_floatv(
'MAT_NU' ,nu ,is_available, lsubmodel, unitab)
101 CALL hm_get_floatv(
'MAT_A0' ,a0 ,is_available, lsubmodel, unitab)
102 CALL hm_get_floatv(
'MAT_A1' ,a1 ,is_available, lsubmodel, unitab)
103 CALL hm_get_floatv(
'MAT_A2' ,a2 ,is_available, lsubmodel, unitab)
104 CALL hm_get_floatv(
'MAT_AMAX' ,amx ,is_available, lsubmodel, unitab)
105 CALL hm_get_intv (
'FUN_A1' ,ifunc ,is_available,lsubmodel)
106 CALL hm_get_floatv(
'MAT_BULK' ,c1 ,is_available, lsubmodel, unitab)
107 CALL hm_get_floatv(
'PFscale' ,fac_y ,is_available, lsubmodel, unitab)
108 CALL hm_get_floatv(
'MAT_PC' ,pmin ,is_available, lsubmodel, unitab)
109 CALL hm_get_floatv(
'PEXT' ,pext ,is_available, lsubmodel, unitab)
110 CALL hm_get_floatv(
'MAT_K_UNLOAD' ,bunl ,is_available, lsubmodel, unitab)
111 CALL hm_get_floatv(
'MAT_SIG' ,xmumx ,is_available, lsubmodel, unitab)
114 IF (rhor==zero) rhor=rho0
119 IF(pmin==zero) pmin =-infinity
121 IF(bunl==zero) bunl = c1
122 IF(amx==zero) amx = ep20
123 IF(xmumx == zero)xmumx=ep20
125 IF(a1 < zero .AND. a2 == zero)
THEN
126 chain=
'INVERTED YIELD SURFACE. CHECK A1 SIGN. '
127 CALL ancmsg(msgid=829, msgtype=msgwarning, anmode=aninfo, i1=21, i2=mat_id, c1=
'WARNING', c2=titr, c3=chain)
131 chain=
'UNTYPICAL YIELD SURFACE. CHECK A2 SIGN. '
132 CALL ancmsg(msgid=829, msgtype=msgwarning, anmode=aninfo, i1=21, i2=mat_id, c1=
'WARNING', c2=titr, c3=chain)
136 chain=
'TENSILE BULK MODULUS IS LOWER OR EQUAL TO 0. '
137 CALL ancmsg(msgid=829, msgtype=msgerror, anmode=aninfo, i1=21, i2=mat_id, c1=
'ERROR', c2=titr, c3=chain)
141 chain=
'UNLOADING BULK MODULUS HAS NO USER VALUE. IT IS SET TO C1'
143 CALL ancmsg(msgid=829, msgtype=msgwarning, anmode=aninfo, i1=21, i2=mat_id, c1=
'WARNING', c2=titr, c3=chain)
146 IF(a2==zero.AND.a1/=zero)
THEN
149 delta = a1*a1-four*a0*a2
151 IF(delta >= zero)
THEN
153 pstar = (-a1+delta)/two/a2
157 chain=
'YIELD SURFACE HAS NO ROOT. '
158 CALL ancmsg(msgid=829, msgtype=msgwarning, anmode=aninfo, i1=21, i2=mat_id, c1=
'WARNING', c2=titr, c3=chain)
164 IF (fac_y == zero) fac_y = one*fscal_unit
189 pm(105) = two*g/(c1+four_over_3*g)
191 WRITE(iout,1100) trim(titr),mat_id,21
193 IF (is_encrypted)
THEN
194 WRITE(iout,
'(5X,A,//)')
'CONFIDENTIAL DATA'
196 WRITE(iout,1200) rho0,rhor
197 WRITE(iout,1300)e,nu,g
198 WRITE(iout,1400)a0,a1,a2,amx
199 WRITE(iout,1500)ifunc,fac_y,c1,bunl,xmumx,pmin,pext,pstar
229 & 5x,40h soil & concrete ,/,
230 & 5x,40h ---------------
233 & 5x,
'MATERIAL NUMBER . . . . . . . . . . . .=',i10/,
234 & 5x,
'MATERIAL LAW. . . . . . . . . . . . . .=',i10/)
236 & 5x,
'INITIAL DENSITY . . . . . . . . . . . .=',1pg20.
237 & 5x,
'REFERENCE DENSITY . . . . . . . . . .=',1pg20.13/)
239 & 5x,40hyoung
'S MODULUS . . . . . . . . . . . .=,E12.4/,
240 & 5X,40HPOISSON's ratio . . . . . . . . . . . .=,e12.4/,
241 & 5x,40hshear modulus . . . . . . . . . . . . .=,e12.4//)
243 & 5x,40hyield coefficient a0. . . . . . . . . .=,e12.4/,
244 & 5x,40hyield coefficient a1. . . . . . . . . .=,e12.4/,
245 & 5x,40hyield coefficient a2. . . . . . . . . .=,e12.4/,
246 & 5x,40ha-
max . . . . . . . . . . . . . . . . .=,e12.4//)
248 & 5x,40hpressure
FUNCTION number. . . . . . . .=,i8/,
249 & 5x,40hpressure
FUNCTION scale factor. . . . .=,e12.4/,
250 & 5x,40htensile bulk. . . . . . . . . . . . . .=,e12.4/,
251 & 5x,40hunloading bulk. . . . . . . . . . . . .=,e12.4/,
252 & 5x,40hmax volumic compression . . . . . . . .=,e12.4/,
253 & 5x,40hfracture pressure . . . . . . . . . . .=,e12.4/,
254 & 5x,40hexternal pressure . . . . . . . . . . .=,e12.4/,
255 & 5x,40hyield surface pressure root . . . . . .=,e12.4//)
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)