37 . MAT_ID ,FAIL_ID ,IRUPT ,UNIT_ID,
38 . LSUBMODEL,UNITAB ,FAIL_TAG )
54#include "implicit_f.inc"
62 INTEGER ,
INTENT(IN) :: FAIL_ID
63 INTEGER ,
INTENT(IN) :: MAT_ID
64 INTEGER ,
INTENT(IN) :: UNIT_ID
65 INTEGER ,
INTENT(IN) :: IRUPT
66 TYPE (UNIT_TYPE_) ,
INTENT(IN) :: UNITAB
67 TYPE (SUBMODEL_DATA),
INTENT(IN) :: LSUBMODEL(*)
68 TYPE (FAIL_PARAM_) ,
INTENT(INOUT) :: FAIL
69 TYPE (FAIL_TAG_) ,
INTENT(INOUT) :: FAIL_TAG
73 INTEGER :: IFUNN,IFUNT,IFAIL,IFAILS,IFAILE,ISOLID,NFAIL,ISYM,IUNIT,IFLAGUNIT
74 my_real :: MAXDN,MAXDT,EXPN,EXPT,FACN,FACT,ASCALE,MAXEI,MAXEN,MAXET,NN,NT,
75 . dtime,dsoft,areascale, unit_t
77 LOGICAL :: IS_AVAILABLE,IS_ENCRYPTED
79 is_encrypted = .false.
80 is_available = .false.
89 CALL hm_get_floatv (
'Epsilon_maxN',maxdn ,is_available,lsubmodel,unitab)
90 CALL hm_get_floatv (
'Exponent_N' ,expn ,is_available,lsubmodel,unitab)
91 CALL hm_get_floatv (
'Alpha_N' ,facn ,is_available,lsubmodel,unitab)
92 CALL hm_get_intv (
'R_fct_ID_N' ,ifunn ,is_available,lsubmodel)
93 CALL hm_get_intv (
'Ifail' ,ifail ,is_available,lsubmodel)
94 CALL hm_get_intv (
'Ifail_so' ,isolid,is_available,lsubmodel)
95 CALL hm_get_intv (
'ISYM' ,isym ,is_available,lsubmodel)
97 CALL hm_get_floatv (
'Epsilon_maxT',maxdt ,is_available,lsubmodel,unitab)
98 CALL hm_get_floatv (
'Exponent_T' ,expt ,is_available,lsubmodel,unitab)
100 CALL hm_get_intv (
'R_fct_ID_T' ,ifunt ,is_available
102 CALL hm_get_floatv (
'EI_max' ,maxei ,is_available,lsubmodel,unitab)
103 CALL hm_get_floatv (
'EN_max' ,maxen ,is_available,lsubmodel,unitab)
104 CALL hm_get_floatv (
'ET_max' ,maxet ,is_available,lsubmodel,unitab)
105 CALL hm_get_floatv (
'N_n' ,nn ,is_available,lsubmodel,unitab)
106 CALL hm_get_floatv (
'N_t' ,nt ,is_available,lsubmodel,unitab)
108 CALL hm_get_floatv (
'T_max' ,dtime ,is_available,lsubmodel,unitab)
109 CALL hm_get_floatv (
'N_soft' ,dsoft ,is_available,lsubmodel,unitab)
110 CALL hm_get_floatv (
'AREA_scale' ,areascale ,is_available,lsubmodel,unitab)
113 IF (isolid == 0)
THEN
115 ELSE IF (isolid == 2)
THEN
118 IF (maxdn == zero) maxdn = infinity
119 IF (maxdt == zero) maxdt = infinity
120 IF (maxei == zero) maxei = infinity
121 IF (maxen == zero) maxen = infinity
122 IF (maxet == zero) maxet = infinity
123 IF (facn == zero) facn = one
124 IF (fact == zero) fact = one
125 IF (expn == zero) expn = one
126 IF (expt == zero) expt = one
127 IF (nn == zero) nn = one
128 IF (nt == zero) nt = one
140 IF (maxdn < infinity .OR. maxdt < infinity) ifails = ifail + 1
141 IF (maxei < infinity) ifaile = ifaile + 1
142 IF (maxen < infinity .OR. maxet < infinity) ifaile = ifaile + 2
144 IF (unit_id > 0)
THEN
145 unit_t = unitab%FAC_T(unit_id)
149 ascale = one / unit_t
151 fail%KEYWORD =
'CONNECT'
153 fail%FAIL_ID = fail_id
161 ALLOCATE (fail%UPARAM(fail%NUPARAM))
162 ALLOCATE (fail%IPARAM(fail%NIPARAM))
163 ALLOCATE (fail%IFUNC (fail%NFUNC))
164 ALLOCATE (fail%TABLE (fail%NTABLE))
167 fail_tag%LF_DAMMX = fail_tag%LF_DAMMX + fail%NMOD
168 ALLOCATE (fail%MODE(fail%NMOD))
169 fail%MODE(1) =
"Normal direction displ. damage"
170 fail%MODE(2) =
"Shear plane displ. damage"
171 fail%MODE(3) =
"Displacement based damage"
172 fail%MODE(4) =
"Normal direction ener. damage"
173 fail%MODE(5) =
"Shear plane ener. damage"
174 fail%MODE(6) =
"Total energy damage"
175 fail%MODE(7)
"Energy based damage"
177 fail%UPARAM(1) = maxdn
178 fail%UPARAM(2) = maxdt
179 fail%UPARAM(3) = expn
180 fail%UPARAM(4) = expt
181 fail%UPARAM(5) = facn
182 fail%UPARAM(6) = fact
183 fail%UPARAM(7) = ascale
184 fail%UPARAM(8) = ifails
185 fail%UPARAM(9) = ifaile
186 fail%UPARAM(10) = nfail
187 fail%UPARAM(11) = maxei
188 fail%UPARAM(12) = maxen
189 fail%UPARAM(13) = maxet
192 fail%UPARAM(16) = dtime
193 fail%UPARAM(17) = dsoft
194 fail%UPARAM(18) = isym
195 fail%UPARAM(19) = areascale
197 fail%IFUNC(1) = ifunn
198 fail%IFUNC(2) = ifunt
200 IF (is_encrypted)
THEN
203 WRITE(iout, 1100) maxdn,maxdt,expn,expt,ifail,isolid,isym,
204 . ifunn,ifunt,facn,fact,
205 . maxei,maxen,maxet,nn,nt,dtime,dsoft,areascale
210 & 5x,
' CRYPTED DATA IN FAILURE MODEL '/,
211 & 5x,
' ----------------------------- '/)
213 & 5x,
' SOLID CONNECTION RUPTURE MODEL ',/
214 & 5x,
' ------------------------------ ',/
215 & 5x,
'Max deformation in normal direction . . . . . . . =',e16.9/
216 & 5x,
'Max deformation in tangent direction . . . . . . . =',e16.9/
217 & 5x,
'Deformation exponent in normal direction . . . . . =',e16.9/
218 & 5x,
'Deformation exponent in tangent direction. . . . . =',e16.9/
219 & 5x,
'Multi-directional rupture flag . . =',i10/
220 & 5x,
'Integration point rupture flag . . =',i10/
221 & 5x,
'Rupture deactivation flag in compression . . =',i10/
222 & 5x,
'Strain rate scale function in normal direction . . =',i10/
223 & 5x,
'Strain rate scale function in tangent direction. . =',i10
224 & 5x,
'Function scale factor in normal direction . . . . =',e16.9/
225 & 5x,
'Function scale factor in tangent direction . . . . =',e16.9/
226 & 5x,
'Maximum total internal energy . . . . . . . . . =',e16.9/
227 & 5x,
'Maximum energy in normal direction . . . . . =',e16.9/
228 & 5x,
'Maximum energy in tangent direction . . . . . =',e16.9/
229 & 5x,
'Energy exponent in normal direction . . . . . =',e16.9/
230 & 5x,
'Energy exponent in tangent direction . . . . . =',e16.9/
231 & 5x,
'Damage duration parameter . . . . . . . . . . =',e16.9/
232 & 5x,
'Damage softening parameter . . . . . . . . . . =',e16.9/
233 & 5x,
'Element deformation parameter . . . . . . . . . . =',e16.9/)