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 :: IFAIL_SH,ISOLID,IBRIT
73 my_real :: TBA,TBK,SIGR,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)
88 CALL HM_GET_INTV ('iduct
' ,IBRIT ,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,UNITAB)
92 CALL HM_GET_FLOATV ('b_tbutcher_xfemtbutc
',BRIT_C ,IS_AVAILABLE,LSUBMODEL,UNITAB)
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.AND.
IF(IXFEM /= 1 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//)