41 . NUVAR ,IFUNC ,MAXFUNC ,NFUNC ,PARMAT ,
42 . UNITAB ,MAT_ID ,TITR ,MTAG ,LSUBMODEL,
43 . PM ,NVARTMP ,MATPARAM )
61#include "implicit_f.inc"
70 INTEGER,
INTENT(IN) :: MAT_ID,MAXFUNC,MAXUPARAM
71 TYPE (UNIT_TYPE_) ,
INTENT(IN) :: UNITAB
72 TYPE(SUBMODEL_DATA) ,
DIMENSION(*) ,
INTENT(IN) :: LSUBMODEL
73 CHARACTER(LEN=NCHARTITLE) ,
INTENT(IN) :: TITR
74 INTEGER ,
DIMENSION(MAXFUNC) ,
INTENT(INOUT) :: IFUNC
75 my_real ,
DIMENSION(NPROPM) ,
INTENT(INOUT) :: pm
76 my_real ,
DIMENSION(100) ,
INTENT(INOUT) :: parmat
77 my_real ,
DIMENSION(MAXUPARAM) ,
INTENT(INOUT) :: uparam
78 INTEGER ,
INTENT(INOUT) :: NFUNC,NUVAR,NVARTMP,NUPARAM,ISRATE,IMATVIS
80 TYPE(matparam_struct_) ,
INTENT(INOUT) :: MATPARAM
84 INTEGER :: OPTE,OPTR,FUNCID,ILAW,Iplas
85 my_real :: YOUNG,YIELD,BSAT,MYU,BYU,HYU,CYU,RSAT,
88 . r00,r45,r90,cst,cstt,p1,p2,p3,p4,n3,mexp,c1_kh
89 LOGICAL :: IS_AVAILABLE,IS_ENCRYPTED
93 is_encrypted = .false.
94 is_available = .false.
101 CALL hm_get_floatv(
'MAT_RHO' ,rho0 ,is_available, lsubmodel, unitab)
103 CALL hm_get_floatv(
'MAT_E' ,young ,is_available, lsubmodel, unitab)
104 CALL hm_get_floatv(
'MAT_NU' ,nu ,is_available, lsubmodel, unitab)
106 CALL hm_get_floatv(
'MAT_SIGY' ,yield ,is_available, lsubmodel, unitab)
107 CALL hm_get_floatv(
'MAT_BSAT' ,byu ,is_available, lsubmodel, unitab)
108 CALL hm_get_floatv(
'MAT_HARD' ,cyu ,is_available, lsubmodel, unitab)
109 CALL hm_get_floatv(
'MAT_HYST' ,hyu ,is_available, lsubmodel, unitab)
110 CALL hm_get_floatv(
'MAT_B' ,bsat ,is_available, lsubmodel, unitab)
112 CALL hm_get_floatv(
'MAT_M' ,myu ,is_available, lsubmodel, unitab)
113 CALL hm_get_floatv(
'MAT_RSAT' ,rsat ,is_available, lsubmodel, unitab)
114 CALL hm_get_intv (
'MAT_OptR' ,optr ,is_available, lsubmodel)
115 CALL hm_get_floatv(
'C1' ,cst ,is_available, lsubmodel, unitab)
116 CALL hm_get_floatv(
'C2' ,cstt ,is_available, lsubmodel, unitab)
118 CALL hm_get_floatv(
'MAT_R00' ,r00 ,is_available, lsubmodel, unitab)
119 CALL hm_get_floatv(
'MAT_R45' ,r45 ,is_available, lsubmodel, unitab)
120 CALL hm_get_floatv(
'MAT_R90' ,r90 ,is_available, lsubmodel, unitab)
121 CALL hm_get_floatv(
'MAT_MEXP' ,mexp ,is_available, lsubmodel, unitab)
122 CALL hm_get_intv (
'MAT_IPLAS' ,iplas ,is_available, lsubmodel)
124 CALL hm_get_intv (
'MAT_fct_IDE',funcid ,is_available
125 CALL hm_get_floatv(
'MAT_EA' ,einf ,is_available, lsubmodel, unitab)
126 CALL hm_get_floatv(
'MAT_CE' ,coe ,is_available, lsubmodel, unitab)
127 CALL hm_get_floatv(
'MAT_C1KH' ,c1_kh ,is_available, lsubmodel, unitab)
128 !========== default values=============
133 IF (funcid > 0 ) opte = 1
134 IF (r00 == zero) r00 = one
135 IF (r45 == zero) r45 = one
136 IF (r90 == zero) r90 = one
137 IF (iplas == 0) iplas = 1
138 IF (nu < zero .OR. nu >= half)
THEN
141 . anmode=aninfo_blind_2,
146 IF ((hyu < zero).OR.(hyu > one))
THEN
149 . anmode=aninfo_blind_2,
154 IF (c1_kh <= cyu) c1_kh = cyu
158 p1 = r00*(one+r90)/r90/(one+r00)
160 p3 = (r00+r90)*(two*r45+one)/r90/(one+r00)
161 p4 = r00/r90/(one+r00)
164 ELSEIF (iplas == 2)
THEN
166 IF ((mexp > zero).AND.(mexp < two))
THEN
174 IF (mexp == zero) mexp = six
175 p1 = two - two*sqrt((r00/(one
177 p3 = sqrt((r00/(one+r00))*((one+r90)/r90))
179 CALL calculp2(p1,p2,p3,p4,mexp,r45)
200 IF (bsat < yield)
THEN
203 . msgtype=msgwarning,
232 parmat(1) = young/three/(one - two*nu)
237 parmat(17) = (one - two*nu)/(one - nu)
260 WRITE(iout,
'(5X,A,//)')
'CONFIDENTIAL DATA'
263 WRITE(iout,1001) trim(titr),mat_id,ilaw
264 WRITE(iout,1002) rho0
265 WRITE(iout,1100) young,nu,funcid,einf,coe
266 WRITE(iout,1200) yield,byu,cyu,hyu,bsat,c1_kh
267 WRITE(iout,1300) myu,rsat,optr
268 WRITE(iout,1400) iplas,r00,r45,r90,cst,cstt
269 IF (iplas == 2)
WRITE(iout,1500) p1,p2,p3,p4,mexp
273 & (5x,
' YOSHIDA-UEMORI MATERIAL LAW ',/
274 & 5x,
' --------------------------- ',//)
277 & 5x,
'MATERIAL NUMBER. . . . . . . . . . . . =',i10/,
278 & 5x,
'MATERIAL LAW . . . . . . . . . . . . . =',i10/)
280 & 5x,
'INITIAL DENSITY . . . . . . . . . . . . . . . =',1pg20.13/)
282 & 5x,
'YOUNG''S MODULUS . . . . . . . . . . . . . . =',1pg20.13/
283 & 5x,
'POISSON''S RATIO . . . . . . . . . . . . . . =',1pg20.13/
284 & 5x,
'YOUNG MODULUS EVOLUTION FUNCTION . . . . . . =',i10/
285 & 5x,
'MATERIAL PARAMETER (EINF ). . . . . . . . . . =',1pg20.13/
286 & 5x,
'MATERIAL PARAMETER (COE ). . . . . . . . . . =',1pg20.13)
288 & 5x,
'YIELD STRESS (YIELD). . . . . . . . . . . . . =',1pg20.13/
289 & 5x,
'MATERIAL PARAMETER (BYU ) . . . . . . . . . . =',1pg20.13/
290 & 5x,
'MATERIAL PARAMETER (CYU ). . . . . . . . . . =',1pg20.13/
291 & 5x,
'MATERIAL PARAMETER (HYU ). . . . . . . . . . =',1pg20.13/
292 & 5x,
'MATERIAL PARAMETER (BSAT ) . . . . . . . . . =',1pg20.13/
293 & 5x,
'MATERIAL PARAMETER (C1_KH ) . . . . . . . . =',1pg20.13)
295 & 5x,
'MATERIAL PARAMETER (MYU ). . . . . . . . . . =',1pg20.13/
296 & 5x,
'MATERIAL PARAMETER (RSAT ). . . . . . . . . . =',1pg20.13/
297 & 5x,
'FLAG ISOTROPIC HARDENING FUNC (OPTR) . . . . =',i10)
299 & 5x,
'PLASTIC CRITERION FLAG . . . . . . . . . . . =',i10/
300 & 5x,
' Icrit=1 HILL 1948 CRITERION'/
301 & 5x,
' Icrit=2 BARLAT 1989 CRITERION'/
302 & 5x,
'LANKFORD COEFFICIENT R00. . . . . . . . . . . =',1pg20.13/
303 & 5x,
'LANKFORD COEFFICIENT R45. . . . . . . . . . . =',1pg20.13/
304 & 5x,
'LANKFORD COEFFICIENT R90. . . . . . . . . . . =',1pg20.13/
305 & 5x,
'MATERIAL PARAMETER (CST). . . . . . . . . . . =',1pg20.13/
306 & 5x,
'MATERIAL PARAMETER (CSTT) . . . . . . . . . . =',1pg20.13/)
308 & 5x,
'BARLAT PARAMETER A. . . . . . . . . . . . . . =',1pg20.13/
309 & 5x,
'BARLAT PARAMETER C. . . . . . . . . . . . . . =',1pg20.13/
310 & 5x,
'BARLAT PARAMETER H. . . . . . . . . . . . . . =',1pg20.13/
311 & 5x,
'BARLAT PARAMETER P. . . . . . . . . . . . . . =',1pg20.13/
312 & 5x,
'BARLAT EXPONENT M. . . . . . . . . . . . . . =',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)