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
96 . E,NU,G,C1,EPSMAX,EPSR1,EPSR2,X2FAC,YFAC,
97 . S11Y,S22Y,S33Y,S12Y,S23Y,S31Y,
99 . t0, rhocp, ff, gg, hh, ll, mm, nn, fcut,
100 . einf,ce,fac_pres,fac_strain_rate
102 my_real :: RHO0, RHOR
103 LOGICAL :: IS_AVAILABLE,IS_ENCRYPTED
107 is_encrypted = .false.
108 is_available = .false.
122 CALL hm_get_floatv(
'MAT_RHO' ,rho0 ,is_available, lsubmodel, unitab)
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
128 CALL hm_get_floatv(
'MAT_EPST2' ,epsr2 ,is_available, lsubmodel, unitab)
130 CALL hm_get_intv (
'Yr_fun' ,ifunce ,is_available, lsubmodel)
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)
150 CALL hm_get_floatv(
'T_Initial' ,t0 ,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) ! == TWO*G/(C1+FOUR_OVER_3*G)
281 ! activate heat source calculation in material
282 MATPARAM%HEAT_FLAG = 1
285 CALL INIT_MAT_KEYWORD(MATPARAM,"ORTHOTROPIC")
287 ! Properties compatibility
288 CALL INIT_MAT_KEYWORD(MATPARAM,"SOLID_ORTHOTROPIC")
290 WRITE(IOUT,1001) TRIM(TITR),MAT_ID,ILAW
293 WRITE(IOUT,'(5x
')'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)