38 . MAT_ID ,FAIL_ID ,IRUPT ,IXFEM ,
54#include "implicit_f.inc"
62 INTEGER ,
INTENT(IN) :: FAIL_ID
63 INTEGER ,
INTENT(IN) :: MAT_ID
64 INTEGER ,
INTENT(IN) :: IRUPT
65 TYPE (UNIT_TYPE_) ,
INTENT(IN) :: UNITAB
66 TYPE (SUBMODEL_DATA),
INTENT(IN) :: LSUBMODEL(*)
67 INTEGER ,
INTENT(INOUT) :: IXFEM
68 TYPE (FAIL_PARAM_) ,
INTENT(INOUT) :: FAIL
72 INTEGER :: ,ISOLID,IBRIT
73 my_real :: TBA,TBK,SIGR,FAC_L,FAC_T,FAC_M,FAC_C,BRIT_B,BRIT_C,DADV,PTHKF
74 LOGICAL :: IS_AVAILABLE,IS_ENCRYPTED
78 is_encrypted = .false.
79 is_available = .false.
83 CALL hm_get_floatv (
'Lambda' ,tba ,is_available,lsubmodel,unitab
85 CALL hm_get_floatv (
'Sigma_r' ,sigr ,is_available,lsubmodel,unitab)
86 CALL hm_get_intv (
'Ifail_sh' ,ifail_sh ,is_available,lsubmodel)
87 CALL hm_get_intv (
'Ifail_so' ,isolid ,is_available,lsubmodel)
89 CALL hm_get_intv (
'Ixfem' ,ixfem ,is_available,lsubmodel
91 CALL hm_get_floatv (
'a_TBUTCHER_XFEMTBUTC',brit_b ,is_available,lsubmodel
92 CALL hm_get_floatv (
'b_TBUTCHER_XFEMTBUTC',brit_c ,is_available,lsubmodel
93 CALL hm_get_floatv (
'Dadv' ,dadv ,is_available,lsubmodel,unitab
95 IF (dadv == zero) dadv=zep85
98 CALL ancmsg(msgid=1049, msgtype=msgwarning, anmode=aninfo,
102 IF(ifail_sh==0)ifail_sh=1
103 IF(isolid==0)isolid= 1
105 IF(ixfem /= 1 .AND. ixfem /= 2)ixfem = 0
106 IF(ixfem > 0)isolid = 0
107 IF(ixfem == 0)ibrit = 0
108 IF(sigr <= zero)sigr=ep30
109 IF(tbk <= zero)tbk=ep30
111 IF (ifail_sh == 1)
THEN
113 ELSEIF (ifail_sh == 2)
THEN
117 fail%KEYWORD =
'TULER-BUTCHER'
119 fail%FAIL_ID = fail_id
128 ALLOCATE (fail%UPARAM(fail%NUPARAM
129 ALLOCATE (fail%IPARAM(fail%NIPARAM))
130 ALLOCATE (fail%IFUNC (fail%NFUNC))
131 ALLOCATE (fail%TABLE (fail%NTABLE))
135 fail%UPARAM(3) = sigr
136 fail%UPARAM(4) = ifail_sh
137 fail%UPARAM(5) = isolid
138 fail%UPARAM(6) = ibrit
139 fail%UPARAM(7) = ixfem
140 fail%UPARAM(8) = brit_b
141 fail%UPARAM(9) = brit_c
142 fail%UPARAM(10)= dadv
147 WRITE(iout,'(5x,a,//)
')'confidential data
'
153 WRITE(IOUT, 1000)TBA,TBK,SIGR,IXFEM
156 ELSEIF(IFAIL_SH==2)THEN
160 WRITE(IOUT, 1010)TBA,TBK,SIGR,IXFEM,IBRIT,BRIT_B,BRIT_C,DADV
166 IF(IXFEM == 0)THEN ! XFEM yet not available for solids
169 ELSEIF(ISOLID==2)THEN
176 & 5X,40H TULER BUTCHER DAMAGE PARAMETER /,
177 & 5X,40H ----------------------------- /,
178 & 5X,40HEXPONENT LAMBDA . . . . . . . . . . . .=,E12.4/,
179 & 5X,40HDAMAGE INTEGRAL K. . . . . . . . . . .=,E12.4/,
180 & 5X,40HFRACTURE STRESS . . . . . . . . . . . .=,E12.4/,
181 & 5X,40HXFEM FAILURE FLAG . . . . . . . . . . .=,I10//)
183 & 5X,' shell element deletion after failure
')
185 & 5X,' solid element deletion after failure
')
187 & 5X,' stress tensor in shell layer set to zero after failure
')
189 & 5X,' shell element cracking after failure
')
191 & 5X,' deviatoric stress in solid will vanish after failure
')
193 & 5X,40H XFEM TULER BUTCHER DAMAGE PARAMETER /,
194 & 5X,40H ----------------------------- /,
195 & 5X,40HEXPONENT LAMBDA . . . . . . . . . . . .=,E12.4/,
196 & 5X,40HDAMAGE INTEGRAL K. . . . . . . . . . .=,E12.4/,
197 & 5X,40HFRACTURE STRESS . . . . . . . . . . . .=,E12.4/,
198 & 5X,40HXFEM FAILURE FLAG . . . . . . . . . . .=,I10/,
199 & 5X,40HDUCTILE/BRITTLE FAILURE FLAG . . . . .=,I10/,
200 & 5X,40HBRITTLE FRACTURE EXPONENT A . . . . . =,E12.4/,
201 & 5X,40HBRITTLE FRACTURE EXPONENT B . . . . . =,E12.4/,
202 & 5X,40HCRITICAL ADVANCEMENT COEFFICIENT . . . =,E12.4//)
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)