40 . NUVAR ,IFUNC ,MAXFUNC ,NFUNC , PARMAT ,
41 . UNITAB ,MAT_ID ,TITR ,MTAG , LSUBMODEL,
42 . ITABLE ,MAXTABL ,NTABLE ,PM ,IPM ,
72#include "implicit_f.inc"
81 TYPE (UNIT_TYPE_),
INTENT(IN) ::UNITAB
82 my_real,
INTENT(INOUT) :: PM(NPROPM),PARMAT(100),UPARAM(MAXUPARAM)
83 INTEGER,
INTENT(INOUT) :: IPM(NPROPMI),ISRATE,IFUNC(MAXFUNC),NFUNC,MAXFUNC,MAXUPARAM,NUPARAM, NUVAR,IMATVIS
84 . ,NTABLE,ITABLE(MAXTABL)
86 INTEGER,
INTENT(IN) :: MAT_ID,MAXTABL
87 CHARACTER(LEN=NCHARTITLE) ,
INTENT(IN) :: TITR
90 TYPE(matparam_struct_) ,
INTENT(INOUT) :: MATPARAM
94 INTEGER I,J,NRATE,NPS,IR0,ILAW
96 . E,NU,G,C1,EPSMAX,EPSR1,EPSR2,X2FAC,YFAC,
97 . S11Y,S22Y,S33Y,S12Y,S23Y,S31Y,
98 . fisokin,m,fac_l,fac_t,fac_m,fac_c,
99 . t0, rhocp, ff, gg, hh, ll, mm, nn, fcut,
100 . einf,ce,fac_pres,fac_strain_rate
101 INTEGER IFUNCE, OPTE, NUM_FUNC
102 my_real :: RHO0, RHOR
103 LOGICAL :: IS_AVAILABLE,IS_ENCRYPTED
107 is_encrypted = .false.
108 is_available = .false.
124 CALL hm_get_floatv(
'MAT_E' ,e ,is_available, lsubmodel, unitab)
125 CALL hm_get_floatv(
'MAT_NU' ,nu ,is_available, lsubmodel, unitab)
126 CALL hm_get_floatv(
'MAT_EPS' ,epsmax ,is_available, lsubmodel, unitab)
127 CALL hm_get_floatv(
'MAT_EPST1' ,epsr1 ,is_available, lsubmodel, unitab)
128 CALL hm_get_floatv(
'MAT_EPST2' ,epsr2 ,is_available, lsubmodel, unitab)
130 CALL hm_get_intv (
'Yr_fun' ,ifunce ,is_available, lsubmodel)
131 CALL hm_get_floatv(
'MAT_EFIB' ,einf ,is_available, lsubmodel, unitab)
132 CALL hm_get_floatv(
'MAT_C' ,ce ,is_available, lsubmodel, unitab
134 CALL hm_get_intv (
'Fsmooth' ,israte ,is_available, lsubmodel)
135 CALL hm_get_floatv(
'MAT_HARD' ,fisokin ,is_available, lsubmodel, unitab)
136 CALL hm_get_floatv(
'Fcut' ,fcut ,is_available, lsubmodel, unitab)
138 CALL hm_get_floatv(
'MAT_SIGT1' ,s11y ,is_available, lsubmodel, unitab)
139 CALL hm_get_floatv(
'MAT_SIGT2' ,s22y ,is_available, lsubmodel, unitab)
140 CALL hm_get_floatv(
'MAT_SIGT3' ,s33y ,is_available, lsubmodel, unitab)
142 CALL hm_get_floatv(
'MAT_SIGYT1' ,s12y ,is_available, lsubmodel, unitab)
143 CALL hm_get_floatv(
'MAT_SIGYT2' ,s23y ,is_available, lsubmodel, unitab)
144 CALL hm_get_floatv(
'MAT_SIGYT3' ,s31y ,is_available, lsubmodel, unitab)
146 CALL hm_get_intv (
'FUN_A1' ,itable(1) ,is_available, lsubmodel)
147 CALL hm_get_floatv(
'MAT_FScale' ,yfac ,is_available, lsubmodel, unitab)
148 CALL hm_get_floatv(
'MAT_PScale' ,x2fac ,is_available, lsubmodel, unitab)
151 CALL hm_get_floatv(
'MAT_SPHEAT' ,rhocp ,is_available, lsubmodel, unitab)
154 CALL hm_get_floatv_dim(
'MAT_PScale' ,fac_strain_rate ,is_available, lsubmodel, unitab)
160 IF(yfac == zero)yfac=fac_pres
161 IF(x2fac == zero)x2fac=fac_strain_rate
165 IF(epsmax == zero) epsmax=infinity
166 IF(epsr1 == zero) epsr1=infinity
167 IF(epsr2 == zero) epsr2=two*infinity
168 IF(t0 == zero) t0=twohundred93
173 uparam(3)=e/(one-nu*nu)
174 uparam(4)=nu*uparam(3)
180 IF (s11y <= zero)
THEN
188 IF (s22y <= zero)
THEN
196 IF (s33y <= zero)
THEN
204 IF (s12y <= zero)
THEN
212 IF (s23y <= zero)
THEN
220 IF (s31y <= zero)
THEN
229 ff=half*(one/s22y**2+one/s33y**2-one/s11y**2)
230 gg=half*(one/s11y**2+one/s33y**2-one/s22y**2)
231 hh=half*(one/s11y**2+one/s22y**2-one/s33y**2)
248 c1=e/three/(one - two*nu)
250 uparam(21)=c1+ four_over_3*g
259 IF (ifunce > 0 )opte = 1
261 ifunc(nfunc) = ifunce
279 parmat(17) = (one - two*nu)/(one - nu)
282 matparam%HEAT_FLAG = 1
290 WRITE(iout,1001) trim(titr),mat_id,ilaw
293 WRITE(iout,
'(5X,A,//)')
'CONFIDENTIAL DATA'
296 WRITE(iout,1100)e,nu,g,s11y,s22y,s33y,s12y,s23y,s31y,fisokin,
298 WRITE(iout,1300)epsmax,epsr1,epsr2
299 WRITE(iout,1200)itable(1),x2fac,yfac
300 WRITE(iout,1400)t0,rhocp,ifunce,einf,ce
306 & 5x,50h
tabulated hill orthotropic plasticity
for solids,/,
307 & 5x,50h ------------------------------------------------,//)
310 & 5x,
'MATERIAL NUMBER . . . . . . . . . . . .=',i10/,
311 & 5x,
'MATERIAL LAW. . . . . . . . . . . . . .=',i10/)
313 & 5x,
'INITIAL DENSITY . . . . . . . . . . . .=',1pg20.13/)
315 & 5x,
'YOUNG MODULUS . . . . . . . . . . . . .=',1pg20.13/
316 & 5x,
'POISSON RATIO . . . . . . . . . . . . .=',1pg20.13/
317 & 5x,
'SHEAR MODULUS . . . . . . . . . . . . .=',1pg20.13/
318 & 5x,
'YIELD IN DIRECTION 1. . . . . . . . . .=',1pg20.13/
319 & 5x,
'YIELD IN DIRECTION 2. . . . . . . . . .=',1pg20.13/
320 & 5x,
'YIELD IN DIRECTION 3. . . . . . . . . .=',1pg20.13/
321 & 5x,
'YIELD IN SHEAR DIRECTION 12 . . . . . .=',1pg20.13/
322 & 5x,
'YIELD IN SHEAR DIRECTION 23 . . . . . .=',1pg20.13/
323 & 5x,
'YIELD IN SHEAR DIRECTION 31 . . . . . .=',1pg20.13/
324 & 5x,
'ISO-KINEMATIC HARDENNING FACTOR . . . .=',1pg20.13/
325 & 5x,
'SMOOTH STRAIN RATE OPTION . . . . . . .=',i10/
326 & 5x,
'STRAIN RATE CUTTING FREQUENCY . . . . .=',1pg20.13/)
328 & 5x,
'YIELD STRESS TABLE NUMBER . . . . . . .=',i10/
329 & 5x,
'2ND ENTRY (STRAIN RATE) SCALE FACTOR. .=',1pg20.13/
330 & 5x,
'YIELD SCALE FACTOR. . . . . . . . . . .=',1pg20.13)
332 & 5x,
'MAXIMUM PLASTIC STRAIN. . . . . . . . .=',1pg20.13/
333 & 5x,
'TENSILE FAILURE STRAIN 1. . . . . . . .=',1pg20.13/
334 & 5x,
'TENSILE FAILURE STRAIN 2. . . . . . . .=',1pg20.13)
336 & 5x,
'INITIAL TEMPERATURE . . . . . . . . . .=',1pg20.13/
337 & 5x,
'HEAT CAPACITY PER VOLUME UNIT . . . . .=',1pg20.13/
338 & 5x,
'YOUNG MODULUS SCALE FACTOR FUNCTION . .=',i10/
339 & 5x,
'YOUNG MODULUS EINF. . . . . . . . . . .=',1pg20.13/
340 & 5x,
'PARAMETER CE. . . . . . . . . . . . . .=',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)