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
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
172 fail%UPARAM(10)= f0 ! initial void volume fraction
173 fail%UPARAM(11)= rlen
174 fail%UPARAM(12)= hkhi
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
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 =',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)