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,NFUNC,NUVAR,NUPARAM,FAILIP
82 my_real :: C1,C2,C3,C4,C5,E1,E2,E3,E4,PTHK,INST,,REF_SIZ_UNIT
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)
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 IF(x_1(2) .ne. zero)
then
201 xmin = -x_1(1)/(two*x_1(2))
202 ymin = x_1(2)*(xmin**2) + x_1(1)*xmin + c2
203 IF (ymin < zero)
THEN
204 CALL ancmsg(msgid=3004, msgtype=msgwarning, anmode=aninfo_blind_1,
210 IF (sflag == 1 .and. x_2(3) .ne. 0)
THEN
211 xmin = -x_2(2)/(two*x_2(3))
212 ymin = x_2(3)*(xmin**2) + x_2(2)*xmin + x_2(1)
213 IF (ymin < zero)
THEN
214 CALL ancmsg(msgid=3005, msgtype=msgwarning, anmode=aninfo_blind_1,
222 IF (reg_func == 0)
THEN
225 IF (nperturb /= 0) nuvar = 8
229 IF (nperturb /= 0) nuvar = 9
232 fail%KEYWORD =
'BIQUAD'
234 fail%FAIL_ID = fail_id
235 fail%NUPARAM = nuparam
244 ALLOCATE (fail%UPARAM(fail%NUPARAM))
245 ALLOCATE (fail%IPARAM(fail%NIPARAM))
246 ALLOCATE (fail%IFUNC (fail%NFUNC))
247 ALLOCATE (fail%TABLE (fail%NTABLE))
249 IF (nfunc == 1) fail%IFUNC(1) = reg_func
252 fail%UPARAM(2) = x_1(1)
253 fail%UPARAM(3) = x_1(2)
254 fail%UPARAM(4) = x_2(1)
255 fail%UPARAM(5) = x_2(2)
256 fail%UPARAM(6) = x_2(3)
257 fail%UPARAM(7) = pthk
260 fail%UPARAM(10) = mflag
261 fail%UPARAM(11) = sflag
262 fail%UPARAM(12) = inst
263 fail%UPARAM(13) = ref_len
264 fail%UPARAM(14) = icoup
265 fail%UPARAM(15) = dcrit
266 fail%UPARAM(16) = exp
267 fail%UPARAM(17)= failip
269 IF (is_encrypted)
THEN
270 WRITE(iout,
'(5X,A,//)')
'CONFIDENTIAL DATA'
273 IF (mflag /= 0)
WRITE(iout, 1100) mflag
274 WRITE(iout,1200) c1,c2,c3,c4,c5
275 WRITE(iout,1300) x_1(2),x_1(1),c2
276 WRITE(iout,1400) x_2(3),x_2(2),x_2(1)
277 WRITE(iout,1500) sflag
278 IF (sflag == 3)
WRITE(iout,1600) inst
279 IF (reg_func > 0)
WRITE(iout, 1700) reg_func,ref_len
281 WRITE(iout,1800) icoup,dcrit,exp
283 WRITE(iout, 1900) pthk,failip
290 & 5x,
'-----------------------------------------------',/,
291 & 5x,
' BIQUADRATIC FAILURE MODEL ',/,
292 & 5x,
'-----------------------------------------------',/)
294 & 5x,
'MATERIAL PARAMETER SELECTOR M-FLAG. . . . . . .=',i10/,
295 & 5x,
' = 1 : MILD STEEL ',/,
296 & 5x,
' = 2 : HSS STEEL ',/,
297 & 5x,
' = 3 : UHSS STEEL '
298 & 5x,
' = 4 : ALUMINUM AA5182 ',/,
299 & 5x,
' = 5 : ALUMINUM AA6082-T6 ',/,
300 & 5x,
' = 6 : PLASTIC PA6GF30 ',/,
301 & 5x,
' = 7 : PLASTIC PP T40 ',/,
302 & 5x,
' = 99: USER DEFINED STRAIN RATIO ',/)
304 & 5x,
'PLASTIC STRAINS AT FAILURE: ',/,
305 & 5x,
'--------------------------- ',/,
306 & 5x,
'C1 (SIMPLE COMPRESSION). . . . . . . . . . . .=',1pg20.13,/
307 & 5x,
'C2 (SHEAR) . . . . . . . . . . . . . . . . . .=',1pg20.13,/
308 & 5x,
'C3 (SIMPLE TENSION). . . . . . . . . . . . . .=',1pg20.13,/
309 & 5x,
'C4 (PLANE STRAIN). . . . . . . . . . . . . . .=',1pg20.13,/
310 & 5x,
'C5 (BIAXIAL TENSION) . . . . . . . . . . . . .=',1pg20.13,/)
312 & 5x,
'COEFFICIENTS OF FIRST PARABOLA: ',/,
313 & 5x,
'------------------------------ ',/,
314 & 5x,
'A. . . . . . . . . . . . . . . . . . . . . . .=',1pg20.13,/
315 & 5x,
'B. . . . . . . . . . . . . . . . . . . . . . .=',1pg20.13,/
316 & 5x,
'C. . . . . . . . . . . . . . . . . . . . . . .=',1pg20.13,/)
318 & 5x,
'COEFFICIENTS OF SECOND PARABOLA: ',/,
319 & 5x,
'-------------------------------- ',/,
320 & 5x,
'D. . . . . . . . . . . . . . . . . . . . . . .=',1pg20.13,/
321 & 5x,
'E. . . . . . . . . . . . . . . . . . . . . . .=',1pg20.13,/
322 & 5x,
'F. . . . . . . . . . . . . . . . . . . . . . .=',1pg20.13,/)
324 & 5x,'specific behavior flag s-flag. . . . . . . . .=
',I10,/
325 & 5X,' = 1: two quadratic functions
',/,
326 & 5X,' = 2: plane strain
VALUE is
the global minimum
',/,
327 & 5X,' = 3: plane strain is global minimum + instability necking(shells only)
',/)
329 & 5X,'instability strain(shells only) . . . . . . .=
',1PG20.13,/)
331 & 5X,'element length regularization:
',/,
332 & 5X,'------------------------------
',/,
333 & 5X,'regularization
FUNCTION id . . . . . . . . . .=
',I10,/
334 & 5X,'referenze element length . . . . . . . . . . .=
',1PG20.13,/)
336 & 5X,'stress softening:
',/,
337 & 5X,'-----------------
',/,
338 & 5X,'coupling method flag icoup . . . . . . . . . .=
',I10,/,
339 & 5X,' = 1: classical coupling using critical damage
',/,
340 & 5X,' = 2: necking instability coupling (SHELLS ONLY)
',/,
341 & 5X,'damage critical value dcrit (IF ICOUP = 1) . .=
',1PG20.13,/,
342 & 5X,'stress softening exponent exp. . . . . . . . .=
',1PG20.13,/)
344 & 5X,'element deletion:
',/,
345 & 5X,'-----------------
',/,
346 & 5X,'shell element
',1PG20.13,/
347 & 5X,' > 0.0: fraction
',/,
348 & 5X,' < 0.0: fraction of failed intg. points
',/,
349 & 5X,'number of failed intg. points prior to elem deletion .=
',I10/)
351 & 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)