42 . NUVAR ,IFUNC ,MAXFUNC ,NFUNC , PARMAT ,
43 . UNITAB ,MAT_ID ,TITR ,MTAG , LSUBMODEL,
73#include "implicit_f.inc"
82 TYPE (UNIT_TYPE_),
INTENT(IN) ::UNITAB
83 my_real,
INTENT(INOUT) :: PM(NPROPM),PARMAT(100),UPARAM(MAXUPARAM)
84 INTEGER,
INTENT(INOUT) :: IPM(NPROPMI),ISRATE,IFUNC(MAXFUNC)
87 INTEGER,
INTENT(IN) :: MAT_ID
88 CHARACTER(LEN=NCHARTITLE) ,
INTENT(IN) :: TITR
90 TYPE(matparam_struct_) ,
INTENT(INOUT) :: MATPARAM
94 INTEGER I,J,NRATE,NPS,IR0
96 . E,NU,G,C1,EPSMAX,EPSR1,EPSR2,RATE(11),YFAC(11),
97 . r0,r45,r90,r,h,fisokin,m,
99 INTEGER IFUNCE, OPTE, NUM_FUNC,NUMCURVES
100 my_real :: RHO0, RHOR, ASRATE
101 LOGICAL :: IS_AVAILABLE,IS_ENCRYPTED
105 is_encrypted = .false.
106 is_available = .false.
119 CALL hm_get_floatv(
'MAT_RHO' ,rho0 ,is_available, lsubmodel, unitab)
121 CALL hm_get_floatv(
'MAT_E' ,e ,is_available, lsubmodel, unitab)
122 CALL hm_get_floatv(
'MAT_NU' ,nu ,is_available, lsubmodel, unitab)
124 CALL hm_get_intv (
'Yr_fun' ,ifunce ,is_available, lsubmodel)
125 CALL hm_get_floatv(
'MAT_EFIB' ,einf ,is_available, lsubmodel, unitab)
126 CALL hm_get_floatv(
'MAT_C' ,ce ,is_available, lsubmodel, unitab)
128 CALL hm_get_floatv(
'MAT_R00' ,r0 ,is_available, lsubmodel, unitab)
129 CALL hm_get_floatv(
'MAT_R45' ,r45 ,is_available, lsubmodel, unitab)
130 CALL hm_get_floatv(
'MAT_R90' ,r90 ,is_available, lsubmodel, unitab
131 CALL hm_get_floatv(
'MAT_CHARD' ,fisokin ,is_available, lsubmodel, unitab)
132 CALL hm_get_intv (
'MAT_Iyield' ,ir0 ,is_available, lsubmodel)
134 CALL hm_get_floatv(
'MAT_EPS' ,epsmax ,is_available, lsubmodel, unitab)
135 CALL hm_get_floatv(
'MAT_EPST1' ,epsr1 ,is_available, lsubmodel, unitab)
136 CALL hm_get_floatv(
'MAT_EPST2' ,epsr2 ,is_available, lsubmodel, unitab)
137 CALL hm_get_floatv(
'Fcut' ,asrate ,is_available, lsubmodel, unitab)
138 CALL hm_get_intv (
'Fsmooth' ,israte ,is_available, lsubmodel)
142 CALL hm_get_intv (
'NUM_CURVES' ,numcurves ,is_available, lsubmodel)
155 IF(ifunc(i)/=0) nrate = i
166 IF(r0 ==zero) r0 = one
167 IF(r45==zero) r45 = one
168 IF(r90==zero) r90 = one
169 IF(epsr1==zero)epsr1=infinity
170 IF(epsr2==zero)epsr2=two*infinity
172 IF(yfac(i)==zero) yfac(i)=one * fac_pres
176 ! filtering frequency
177 IF (asrate /= zero)
THEN
182 IF (israte /= 0)
THEN
183 asrate = 10000.0d0*unitab%FAC_T_WORK
197 ELSEIF (rate(1) == 0)
THEN
211 uparam(3)=e/(one-nu*nu)
212 uparam(4)=nu*uparam(3)
216 r=(r0+r45+r45+r90)*fourth
219 uparam(7)=h*(one+one/r0)
220 uparam(8)=h*(one+one/r90)
222 uparam(10)=(r45*two + one)*(uparam(7)+uparam(8)-uparam(9))
224 uparam(8)=uparam(8)/uparam(7)
225 uparam(9)=uparam(9)/uparam(7)
226 uparam(10)=uparam(10)/uparam(7)
231 uparam(j+nps)=rate(j)
234 uparam(j+nps+num_func)=yfac(j)
236 uparam(nps+2*num_func+1)=epsmax
237 uparam(nps+2*num_func+2)=epsr1
239 uparam(nps+2*num_func+4)=two*g
240 uparam(nps+2*num_func+5)=three*g
241 c1=e/three/(one - two*nu)
242 uparam(nps+2*num_func+6)=c1
243 uparam(nps+2*num_func+7)=c1+ four_over_3*g
244 IF (fisokin>one.OR.fisokin<zero)
THEN
251 uparam(nps+2*num_func+8)=fisokin
255 IF (ifunce > 0 )opte = 1
257 ifunc(nfunc) = ifunce
258 uparam(nps+2*num_func+9) = nfunc
259 uparam(nps+2*num_func+10) = opte
260 uparam(nps+2*num_func+11) = einf
261 uparam(nps+2*num_func+12) = ce
263 nuparam = nps+2*num_func+12
277 WRITE(iout,1001) trim(titr),mat_id,43
280 WRITE(iout,
'(5X,A,//)')
'CONFIDENTIAL DATA'
282 WRITE(iout,1002) rho0
283 WRITE(iout,1100)e,nu,g,r0,r45,r90,fisokin
284 IF (ir0 >0)
WRITE(iout,1110)
285 WRITE(iout,1300)epsmax,epsr1,epsr2,ifunce,einf,ce
286 WRITE(iout,1400)israte,asrate
287 WRITE(iout,1200)(ifunc(j),yfac(j),rate(j),j=1,num_func)
293 & 5x,40h
tabulated hill orthotropic plasticity,/,
294 & 5x,40h ------------------------------------- /)
297 & 5x,
'MATERIAL NUMBER . . . . . . . . . . . .=',i10/,
298 & 5x,
'MATERIAL LAW. . . . . . . . . . . . . .=',i10/)
300 & 5x,
'INITIAL DENSITY . . . . . . . . . . . .=',1pg20.13/)
302 & 5x,
'YOUNG MODULUS . . . . . . . . . . . . .=',1pg20.13/
303 & 5x,
'POISSON RATIO . . . . . . . . . . . . .=',1pg20.13/
304 & 5x,
'SHEAR MODULUS . . . . . . . . . . . . .=',1pg20.13/
305 & 5x,
'LANKFORD COEFFICIENT R00. . . . . . . .=',1pg20.13/
306 & 5x,
'LANKFORD COEFFICIENT R45. . . . . . . .=',1pg20.13/
307 & 5x,
'LANKFORD COEFFICIENT R90. . . . . . . .=',1pg20.13/
308 & 5x,
'ISO-KINEMATIC HARDENING FACTOR. . . . .=',1pg20.13)
310 & 5x,
'YIELD STRESS IS SUPPOSSD IN ORTHOTROPIC DIR. 1 '/)
312 & 5x,
'YIELD STRESS FUNCTION NUMBER. . . . . .=',i10/
313 & 5x,
'YIELD SCALE FACTOR. . . . . . . . . . .=',1pg20.13/
314 & 5x,
'STRAIN RATE . . . . . . . . . . . . . .=',1pg20.13)
316 & 5x,
'MAXIMUM PLASTIC STRAIN. . . . . . . . .=',1pg20.13/
317 & 5x,
'TENSILE FAILURE STRAIN 1. . . . . . . .=',1pg20.13/
318 & 5x,
'TENSILE FAILURE STRAIN 2. . . . . . . .=',1pg20.13/
319 & 5x,
'YOUNG MODULUS SCALE FACTOR FUNCTION . .=',i10/
320 & 5x,
'YOUNG MODULUS EINF. . . . . . . . . . .=',1pg20.13/
321 & 5x,
'PARAMETER CE. . . . . . . . . . . . . .=',1pg20.13)
323 & 5x,
'STRAIN RATE FILTERING FLAG . . . . . .=',i10/
324 & 5x,
'STRAIN RATE CUTTING FREQUENCY . . . . .=',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)