40 . FAIL ,MAT_ID ,FAIL_ID ,IRUPT ,
41 . TITR ,LSUBMODEL,UNITAB )
62#include "implicit_f.inc"
71 INTEGER ,
INTENT(IN) :: FAIL_ID
72 INTEGER ,
INTENT(IN) :: MAT_ID
73 INTEGER ,
INTENT(IN) :: IRUPT
74 CHARACTER(LEN=NCHARTITLE) ,
INTENT(IN) :: TITR
77 TYPE(fail_param_) ,
INTENT(INOUT) :: FAIL
81 INTEGER :: MFLAG,SFLAG,REG_FUNC,ICOUP,,NUVAR,NUPARAM,FAILIP
82 my_real :: C1,C2,C3,C4,C5,E1,E2,E3,E4,PTHK,INST,REF_LEN
85 my_real :: xmin,ymin,dcrit,exp
86 LOGICAL :: IS_AVAILABLE,IS_ENCRYPTED
88 is_encrypted = .false.
89 is_available = .false.
106 CALL hm_get_intv (
'FAILIP' ,failip ,is_available,lsubmodel)
107 IF (failip == 0) failip = 1
108 CALL hm_get_floatv (
'P_thickfail' ,pthk ,is_available,lsubmodel,unitab)
109 CALL hm_get_intv (
'M_Flag' ,mflag ,is_available,lsubmodel)
110 CALL hm_get_intv (
'S_Flag' ,sflag ,is_available,lsubmodel)
111 CALL hm_get_floatv (
'Inst_start' ,inst ,is_available,lsubmodel,unitab)
112 CALL hm_get_intv (
'fct_IDel' ,reg_func ,is_available,lsubmodel)
113 CALL hm_get_floatv (
'EI_ref' ,ref_len ,is_available,lsubmodel,unitab)
114 IF (reg_func > 0 .AND. ref_len == zero)
THEN
116 ref_len = one*ref_siz_unit
130 CALL hm_get_intv (
'ICOUP' ,icoup ,is_available,lsubmodel)
131 CALL hm_get_floatv (
'DCRIT' ,dcrit ,is_available,lsubmodel,unitab)
132 CALL hm_get_floatv (
'EXP' ,exp ,is_available,lsubmodel,unitab)
136 pthk =
min(pthk, one)
137 pthk =
max(pthk,-one)
138 IF (pthk == zero) pthk = em06
141 IF (sflag == 0) sflag = 2
171 CALL biquad_coefficients(c1,c2,c3,c4,c5,mflag,x_1,x_2,e1,e2,e3,e4)
174 IF (sflag == 3 .AND. inst <= zero)
THEN
175 CALL ancmsg(msgid=3042, msgtype=msgwarning, anmode=aninfo_blind_1,
179 ELSEIF (sflag == 3 .AND. inst >= c4)
THEN
180 CALL ancmsg(msgid=3043, msgtype=msgwarning, anmode=aninfo_blind_1,
187 dcrit =
min(dcrit,one)
188 dcrit =
max(dcrit,zero)
190 IF (exp == zero) exp = one
191 IF (dcrit /= zero .AND. icoup == 0) icoup = 1
192 IF (sflag /= 3 .AND. icoup == 2)
THEN
193 CALL ancmsg(msgid=3044, msgtype=msgwarning, anmode=aninfo_blind_1,
200 xmin = -x_1(1)/(two*x_1(2))
201 ymin = x_1(2)*(xmin**2) + x_1(1)*xmin + c2
202 IF (ymin < zero)
THEN
203 CALL ancmsg(msgid=3004, msgtype=msgwarning, anmode=aninfo_blind_1,
209 xmin = -x_2(2)/(two*x_2(3))
210 ymin = x_2(3)*(xmin**2) + x_2(2)*xmin + x_2(1)
211 IF (ymin < zero)
THEN
212 CALL ancmsg(msgid=3005, msgtype=msgwarning, anmode=aninfo_blind_1,
220 IF (reg_func == 0)
THEN
223 IF (nperturb /= 0) nuvar = 8
227 IF (nperturb /= 0) nuvar = 9
230 fail%KEYWORD =
'BIQUAD'
232 fail%FAIL_ID = fail_id
233 fail%NUPARAM = nuparam
242 ALLOCATE (fail%UPARAM(fail%NUPARAM))
243 ALLOCATE (fail%IPARAM(fail%NIPARAM))
244 ALLOCATE (fail%IFUNC (fail%NFUNC))
245 ALLOCATE (fail%TABLE (fail%NTABLE))
247 IF (nfunc == 1) fail%IFUNC(1) =
250 fail%UPARAM(2) = x_1(1)
251 fail%UPARAM(3) = x_1(2)
252 fail%UPARAM(4) = x_2(1)
253 fail%UPARAM(5) = x_2(2)
254 fail%UPARAM(6) = x_2(3)
255 fail%UPARAM(7) = pthk
258 fail%UPARAM(10) = mflag
259 fail%UPARAM(11) = sflag
260 fail%UPARAM(12) = inst
261 fail%UPARAM(13) = ref_len
262 fail%UPARAM(14) = icoup
263 fail%UPARAM(15) = dcrit
264 fail%UPARAM(16) = exp
267 IF (is_encrypted)
THEN
268 WRITE(iout,
'(5X,A,//)')
'CONFIDENTIAL DATA'
271 IF (mflag /= 0)
WRITE(iout, 1100) mflag
272 WRITE(iout,1200) c1,c2,c3,c4,c5
273 WRITE(iout,1300) x_1(2),x_1(1),c2
274 WRITE(iout,1400) x_2(3),x_2(2),x_2(1)
275 WRITE(iout,1500) sflag
276 IF (sflag == 3)
WRITE(iout,1600) inst
277 IF (reg_func > 0)
WRITE(iout, 1700) reg_func,ref_len
279 WRITE(iout,1800) icoup,dcrit,exp
281 WRITE(iout, 1900) pthk,failip
288 & 5x,
'-----------------------------------------------',/,
289 & 5x,
' BIQUADRATIC FAILURE MODEL ',/,
290 & 5x,
'-----------------------------------------------',/)
292 & 5x,
'MATERIAL PARAMETER SELECTOR M-FLAG. . . . . . .=',i10/,
293 & 5x,
' = 1 : MILD STEEL ',/,
294 & 5x,
' = 2 : HSS STEEL ',/,
295 & 5x,
' = 3 : UHSS STEEL ',/,
296 & 5x,
' = 4 : ALUMINUM AA5182 ',/,
297 & 5x,
' = 5 : ALUMINUM AA6082-T6 ',/,
298 & 5x,
' = 6 : PLASTIC PA6GF30 ',/,
299 & 5x,
' = 7 : PLASTIC PP T40 ',/,
300 & 5x,' = 99: user defined strain ratio
',/)
302 & 5X,'plastic strains at failure:
',/,
303 & 5X,'---------------------------
',/,
304 & 5X,'c1(simple compression). . . . . . . . . . . .=
',1PG20.13,/
305 & 5X,'c2(shear) . . . . . . . . . . . . . . . . . .=
',1PG20.13,/
306 & 5X,'c3(simple tension). . . . . . . . . . . . . .=
',1PG20.13,/
307 & 5X,'c4(plane strain). . . . . . . . . . . . . . .=
',1PG20.13,/
308 & 5X,'c5(biaxial tension) . . . . . . . . . . . . .=
',1PG20.13,/)
310 & 5X,'coefficients of first parabola:
',/,
311 & 5X,'------------------------------
',/,
312 & 5X,'a. . . . . . . . . . . . . . . . . . . . . . .=
',1PG20.13,/
313 & 5X,'b. . . . . . . . . . . . . . . . . . . . . . .=
',1PG20.13,/
314 & 5X,'c. . . . . . . . . . . . . . . . . . . . . . .=
',1PG20.13,/)
316 & 5X,'coefficients of
second parabola:
',/,
317 & 5X,'--------------------------------
',/,
318 & 5X,'d. . . . . . . . . . . . . . . . . . . . . . .=
',1PG20.13,/
319 & 5X,'e. . . . . . . . . . . . . . . . . . . . . . .=
',1PG20.13,/
320 & 5X,'f. . . . . . . . . . . . . . . . . . . . . . .=
',1PG20.13,/)
322 & 5X,'specific behavior flag s-flag. . . . . . . . .=
',I10,/
323 & 5X,' = 1: two quadratic functions
',/,
324 & 5X,' = 2: plane strain
VALUE is
the global minimum
',/,
325 & 5X,' = 3: plane strain is global minimum + instability necking(shells only)
',/)
327 & 5X,'instability strain(shells only) . . . . . . .=
',1PG20.13,/)
329 & 5X,'element length regularization:
',/,
330 & 5X,'------------------------------
',/,
331 & 5X,'regularization
FUNCTION id . . . . . . . . . .=
',I10,/
332 & 5X,'referenze element length . . . . . . . . . . .=
',1PG20.13,/)
334 & 5X,'stress softening:
',/,
335 & 5X,'-----------------
',/,
336 & 5X,'coupling method flag icoup . . . . . . . . . .=
',I10,/,
337 & 5X,' = 1: classical coupling using critical damage
',/,
338 & 5X,' = 2: necking instability coupling (SHELLS ONLY)
',/,
339 & 5X,'damage critical value dcrit (IF ICOUP = 1) . .=
',1PG20.13,/,
340 & 5X,'stress softening exponent exp. . . . . . . . .=
',1PG20.13,/)
342 & 5X,'element deletion:
',/,
343 & 5X,'-----------------
',/,
344 & 5X,'shell element deletion parameter pthickfail. .=',1pg20.13,/
345 & 5x,
' > 0.0: FRACTION OF FAILED THICKNESS ',/,
346 & 5x,
' < 0.0: FRACTION OF FAILED INTG. POINTS ',/,
347 & 5x,
'NUMBER OF FAILED INTG. POINTS PRIOR TO ELEM DELETION .=',i10/)
349 & 5x,
'-----------------------------------------------',/)
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)