41 . MAT_ID ,FAIL_ID ,IRUPT ,IXFEM ,
58#include "implicit_f.inc"
66 INTEGER ,
INTENT(IN) :: FAIL_ID
67 INTEGER ,
INTENT(IN) :: MAT_ID
68 INTEGER ,
INTENT(IN) :: IRUPT
69 TYPE() ,
INTENT(IN) :: UNITAB
71 INTEGER ,
INTENT(INOUT) :: IXFEM
72 TYPE (FAIL_PARAM_) ,
INTENT(INOUT) :: FAIL
76 INTEGER :: ,IFAIL_SH,ISOLID,NRATE,IFUN_SIZE,IFUN_TEMP
77 my_real :: P_THICK,SCALE_TEMP,SCALE_EL,EL_REF,DCRIT,DD,DN,DADV,
79 INTEGER ,
PARAMETER :: MAXFUNC = 100
80 integer,
DIMENSION(MAXFUNC) :: ifunc
81 my_real,
DIMENSION(MAXFUNC) :: yfac,rate
83 LOGICAL :: IS_AVAILABLE,IS_ENCRYPTED
85 is_encrypted = .false.
86 is_available = .false.
96 CALL hm_get_intv (
'Ifail_sh' ,ifail_sh ,is_available,lsubmodel)
98 CALL hm_get_intv (
'N_rate' ,nrate ,is_available,lsubmodel)
99 CALL hm_get_floatv (
'P_THICK' ,p_thick ,is_available,lsubmodel,unitab)
100 CALL hm_get_intv (
'Ixfem' ,ixfem ,is_available,lsubmodel)
102 CALL hm_get_floatv (
'Dcrit' ,dcrit ,is_available,lsubmodel,unitab)
105 CALL hm_get_floatv (
'Dadv' ,dadv ,is_available,lsubmodel,unitab)
113 CALL hm_get_intv (
'fct_IDel' ,ifun_size ,is_available,lsubmodel)
114 CALL hm_get_floatv (
'Fscale_el' ,scale_el ,is_available,lsubmodel,unitab)
118 CALL hm_get_floatv (
'FscaleT' ,scale_temp ,is_available,lsubmodel,unitab)
122 IF (dcrit == zero) dcrit = one
123 IF (dadv == zero) dadv = dcrit
124 IF (dadv > dcrit)
THEN
126 CALL ancmsg(msgid=974, msgtype=msgwarning, anmode=aninfo,
129 IF (el_ref == zero)
THEN
131 el_ref = one*fscal_unit
133 IF (dd == one ) dd = 0.999
134 IF (dn == zero) dn = one
135 IF (ifail_sh == 0) ifail_sh = 1
136 IF (isolid == 0) isolid = 1
137 IF (ixfem /= 1 .AND. ixfem /= 2) ixfem = 0
138 IF (ixfem > 0) isolid = 0
139 IF (scale_el == zero) scale_el = one
140 IF (scale_temp == zero) scale_temp = one
142 IF (p_thick == one) p_thick = p_thick - em06
144 IF (p_thick > zero .and. ifail_sh > 1)
THEN
146 ELSEIF (ifail_sh == 1)
THEN
148 ELSEIF (ifail_sh == 2)
THEN
154 fail%KEYWORD =
'FAIL_TAB'
156 fail%FAIL_ID = fail_id
157 fail%NUPARAM = 11 + nrate * 2
160 fail%NFUNC = nrate + 2
165 ALLOCATE (fail%UPARAM(fail%NUPARAM))
166 ALLOCATE (fail%IPARAM(fail%NIPARAM))
167 ALLOCATE (fail%IFUNC (fail%NFUNC))
168 ALLOCATE (fail%TABLE (fail%NTABLE))
170 fail%UPARAM(1) = isolid
171 fail%UPARAM(2) = ifail_sh
173 fail%UPARAM(4) = dcrit
176 fail%UPARAM(7) = scale_temp
177 fail%UPARAM(8) = scale_el
178 fail%UPARAM(9) = el_ref
179 fail%UPARAM(10)= ixfem
180 fail%UPARAM(11)= dadv
182 fail%UPARAM(11 + i) = yfac(i)
183 fail%UPARAM(11 + i + nrate) = rate(i)
186 fail%IFUNC(1:nrate) = ifunc(1:nrate)
187 fail%IFUNC(nrate+1) = ifun_size
188 fail%IFUNC(nrate+2) = ifun_temp
190 IF (is_encrypted)
THEN
191 WRITE(iout,
'(5X,A,//)')
'CONFIDENTIAL DATA'
193 WRITE(iout, 1000) fail_id
194 WRITE(iout, 1001)(fail%IFUNC(i),yfac(i),rate(i),i=1,nrate)
195 WRITE(iout, 1002) ixfem,dadv,fail%UPARAM(3)
196 WRITE(iout, 1003) dcrit,dd,dn
197 WRITE(iout, 1004) ifun_size,scale_temp,ifun_temp,scale_el,el_ref
200 IF(ifail_sh == 1)
THEN
202 ELSEIF (ifail_sh == 2)
THEN
204 ELSEIF (ifail_sh == 3)
THEN
207 ELSE IF (ixfem == 1)
THEN
211 IF (isolid == 1)
THEN
213 ELSEIF(isolid == 2)
THEN
222 & 5x,
'TABULATED FAILURE CRITERIA WITH DAMAGE',//,
223 & 5x,
'FAILURE MODEL ID. . . . . . . . . . . . . . .=',i10/
224 & 5x,
'FAILURE STRAIN FUNCTIONS : ')
226 & 5x,
' YIELD STRESS FUNCTION NUMBER. . . . . .=',i10/
227 & 5x,
' YIELD SCALE FACTOR. . . . . . . . . . .=',1pg20.13/
228 & 5x,
' STRAIN RATE . . . . . . . . . . . . . .=',1pg20.13)
230 & 5x,
'FLAG XFEM. . . . . . . .. . . . . . . . . . .=',i10/
231 & 5x,
'CRITICAL ADVANCEMENT VALUE . . . . . . . . .=',e12.4/
232 & 5x,
'PER HUNDRED OF SHELL THICKNESS FAILURE . . . . .=',e12.4)
234 & 5x,
'CRITICAL DAMAGE VALUE . . . . . . . . . . . .=',e12.4/
235 & 5x,
'DAMAGE PARAMETER D. . . . . . . . . . . . . .=',e12.4/
236 & 5x,
'DAMAGE PARAMETER N. . . . . . . . . . . . . .=',e12.4)
238 & 5x,
'TEMPERATURE SCALE FUNCTION. . . . . . . . . .=',i10/
239 & 5x,
'SCALE FACTOR OF TEMPERATURE FUNCTION. . . . .=',e12.4/
240 & 5x,
'ELEMENT LENGTH FUNCTION . . . . . . . . . . .=',i10/
241 & 5x,
'SCALE FACTOR OF LENGTH FUNCTION . . . . . . .=',e12.4/
242 & 5x,
'REFERENCE ELEMENT LENGTH. . . . . . . . . . .=',e12.4/
243 & 5x,
'REGULARIZATION FLAG . . . . . . . . . . . . .=',i10/
244 & 5x,
'FAILURE OPTION:')
246 & 5x,
' SHELL ELEMENT DELETION AFTER FAILURE OF ONE LAYER')
248 & 5x,
' STRESS TENSOR IN SHELL LAYER SET TO ZERO AFTER FAILURE')
250 & 5x,
' SHELL ELEMENT DELETION AFTER FAILURE OF ALL LAYERS')
252 & 5x,
' SHELL ELEMENT CRACKING AFTER FAILURE')
254 & 5x,
' SOLID ELEMENT DELETION AFTER FAILURE')
256 & 5x,
' DEVIATORIC STRESS IN SOLID WILL VANISH AFTER FAILURE')
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)