38 . FAIL ,MAT_ID ,FAIL_ID ,IRUPT ,NLOC_MOD ,
39 . TITR ,LSUBMODEL,UNITAB )
56#include "implicit_f.inc"
64 INTEGER ,
INTENT(IN) :: FAIL_ID
65 INTEGER ,
INTENT(IN) :: MAT_ID
66 INTEGER ,
INTENT(IN) :: IRUPT
67 CHARACTER(LEN=NCHARTITLE) ,
INTENT(IN) :: TITR
70 INTEGER ,
INTENT(INOUT) :: NLOC_MOD
71 TYPE(fail_param_) ,
INTENT(INOUT) :: FAIL ! failure model data structure
76 my_real :: Q1,Q2,Q3,EPN,AS,KW,FC,FR,F0,RLEN,HKHI,LE_MAX
77 LOGICAL :: IS_AVAILABLE,IS_ENCRYPTED
81 is_encrypted = .false.
82 is_available = .false.
89 CALL hm_get_floatv (
'FAIL_q1' ,q1 ,is_available,lsubmodel,unitab)
90 CALL hm_get_floatv (
'FAIL_q2' ,q2 ,is_available,lsubmodel,unitab)
91 CALL hm_get_intv (
'FAIL_Iloc' ,iloc ,is_available,lsubmodel)
93 CALL hm_get_floatv (
'FAIL_eps_strain',epn ,is_available,lsubmodel,unitab
94 CALL hm_get_floatv (
'FAIL_As' ,as ,is_available,lsubmodel,unitab)
95 CALL hm_get_floatv (
'FAIL_Kw' ,kw ,is_available,lsubmodel,unitab)
97 CALL hm_get_floatv (
'FAIL_Fc' ,fc ,is_available,lsubmodel,unitab)
98 CALL hm_get_floatv (
'FAIL_Fr' ,fr ,is_available,lsubmodel,unitab)
99 CALL hm_get_floatv (
'FAIL_F0' ,f0 ,is_available,lsubmodel,unitab)
101 CALL hm_get_floatv (
'FAIL_RLen' ,rlen ,is_available,lsubmodel,unitab)
102 CALL hm_get_floatv (
'FAIL_Hchi' ,hkhi ,is_available,lsubmodel,unitab)
103 CALL hm_get_floatv (
'FAIL_Le_max' ,le_max ,is_available,lsubmodel,unitab)
106 IF (q1 == zero) q1 = three_half
107 IF (q2 == zero) q2 = one
115 IF (fc == zero) fc = infinity
116 IF (fr == zero) fr = two*infinity
119 CALL ancmsg(msgid=1747,msgtype=msgerror,
120 . anmode=aninfo_blind_1,i1=mat_id,c1=titr)
124 CALL ancmsg(msgid=1748,msgtype=msgwarning,
125 . anmode=aninfo_blind_1,i1=mat_id,c1=titr)
132 IF (iloc == 0) iloc = 1
136 IF (le_max > zero)
THEN
148 fail%KEYWORD =
'GURSON'
150 fail%FAIL_ID = fail_id
158 ALLOCATE (fail%UPARAM(fail%NUPARAM))
159 ALLOCATE (fail%IPARAM(fail%NIPARAM))
160 ALLOCATE (fail%IFUNC (fail%NFUNC))
161 ALLOCATE (fail%TABLE (fail%NTABLE))
163 fail%UPARAM(1) = nloc_mod
173 fail%UPARAM(11)= rlen
176 IF (is_encrypted)
THEN
177 WRITE(iout,
'(5X,A,//)')
'CONFIDENTIAL DATA'
179 WRITE(iout, 1100) q1,q2,epn,as,kw,f0,fc,fr,iloc
180 IF (iloc > 1)
WRITE(iout, 1200) rlen,le_max
181 IF (iloc == 2)
WRITE(iout, 1300) hkhi
187 & 5x,40h gurson ductile damage model /,
188 & 5x,40h ------------------------------------ /,
189 & 5x,
'Q1 GURSON COEFFICIENT. . . . . . . . . . . . . . . =',1pg20.13/
190 & 5x,
'Q2 GURSON COEFFICIENT. . . . . . . . . . . . . . . =',1pg20.13/
191 & 5x,
'NUCLEATION PLASTIC STRAIN. . . . . . . . . . . . . =',1pg20.13/
192 & 5x,
'AS NUCLEATION SLOPE. . . . . . . . . . . . . . . . =',1pg20.13/
193 & 5x,
'SHEAR DAMAGE COEFFICIENT . . . . . . . . . . . . . =',1pg20.13/
195 & 5x,
'INITIAL VOID VOLUME FRACTION . . . . . . . . . . . =',1pg20.13/
196 & 5x,
'CRITICAL VOID VOLUME FRACTION. . . . . . . . . . . =',1pg20.13/
197 & 5x,
'RUPTURE VOID VOLUME FRACTION . . . . . . . . . . . =',1pg20.13/
198 & 5x,
'NON LOCAL PLASTIC STRAIN REGULARIZATION FLAG . . . =',i3/
199 & 5x,
' ILOC=1 LOCAL DAMAGE MODEL '/
200 & 5x,
' ILOC=2 NON LOCAL MICROMORPHIC MODEL '/
201 & 5x,
' ILOC=3 NON LOCAL PEERLING MODEL ')
203 & 5x,
'NON-LOCAL REGULARIZATION LENGTH. . . . . . . . . . =',1pg20.13/
204 & 5x,
'CONVERGENCE ELEMENT LENGTH TARGET. . . . . . . . . =',1pg20.13/)
206 & 5x,
'PENALTY PARAMETER FOR NONLOCAL MICROMORPHIC METHOD ='
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)