38 . FAIL ,MAT_ID ,FAIL_ID ,IRUPT ,
54#include "implicit_f.inc"
62 INTEGER ,
INTENT(IN) :: FAIL_ID
63 INTEGER ,
INTENT(IN) :: MAT_ID
64 INTEGER ,
INTENT(IN) :: IRUPT
67 TYPE(fail_param_) ,
INTENT(INOUT) :: FAIL
71 INTEGER :: NUM,DEN,ORDI,COMP_DIR,IDEL,NUPARAM,NUVAR,NFUNC
72 INTEGER ,
PARAMETER :: = 2
73 INTEGER ,
DIMENSION(NSIZE) ::
74 my_real :: vol_strain,max_comp_strain,ratio,el_ref,el_ref_unit
75 LOGICAL :: IS_AVAILABLE,
79 is_encrypted = .false.
80 is_available = .false.
120 CALL hm_get_intv (
'Fct_Ratio' ,ifunc(1) ,is_available,lsubmodel)
121 CALL hm_get_intv (
'NUM' ,num ,is_available,lsubmodel)
122 CALL hm_get_intv (
'DEN' ,den ,is_available,lsubmodel)
123 CALL hm_get_intv (
'ORDI' ,ordi ,is_available,lsubmodel)
124 IF (ordi == 0) ordi = 1
125 CALL hm_get_floatv (
'Vol_strain' ,vol_strain ,is_available,lsubmodel,unitab)
126 CALL hm_get_intv (
'Fct_Elsize' ,ifunc(2) ,is_available,lsubmodel)
127 CALL hm_get_floatv (
'EL_REF' ,el_ref ,is_available,lsubmodel,unitab)
128 IF ((el_ref == zero).AND.(ifunc(2) > 0))
THEN
130 el_ref = one*el_ref_unit
135 CALL hm_get_intv (
'Comp_dir' ,comp_dir ,is_available,lsubmodel)
136 CALL hm_get_intv (
'IDEL' ,idel ,is_available,lsubmodel)
137 CALL hm_get_floatv (
'Max_Comp_Strain',max_comp_strain ,is_available,lsubmodel,unitab)
138 IF (max_comp_strain == zero) max_comp_strain = infinity
139 CALL hm_get_floatv (
'Ratio' ,ratio ,is_available,lsubmodel,unitab)
140 IF (ratio == zero) ratio = one
145 IF (ifunc(2) > 0)
THEN
155 fail%KEYWORD =
'SAHRAEI'
157 fail%FAIL_ID = fail_id
158 fail%NUPARAM = nuparam
165 ALLOCATE (fail%UPARAM(fail%NUPARAM))
166 ALLOCATE (fail%IPARAM(fail%NIPARAM))
167 ALLOCATE (fail%IFUNC (fail%NFUNC))
168 ALLOCATE (fail%TABLE (fail%NTABLE))
170 fail%IFUNC(1:nfunc) = ifunc(1:nfunc)
172 fail%UPARAM(1) = vol_strain
175 fail%UPARAM(4) = ordi
176 IF (comp_dir == zero)
THEN
177 fail%UPARAM(5) = zero
179 fail%UPARAM(5) = comp_dir
181 fail%UPARAM(6) = max_comp_strain
182 fail%UPARAM(7) = ratio
183 fail%UPARAM(8) = idel
184 fail%UPARAM(9) = el_ref
188 IF (is_encrypted)
THEN
189 WRITE (iout,
'(5X,A,//)')
'CONFIDENTIAL DATA'
191 WRITE (iout, 1000) ifunc(1),vol_strain
192 WRITE (iout, 2000) num,den,ordi
193 IF (ifunc(2) > 0)
THEN
194 WRITE (iout, 3000) ifunc(2),el_ref
196 IF (comp_dir /= zero)
THEN
197 WRITE (iout, 4000) comp_dir, idel, max_comp_strain, ratio
204 & 5x,
' SAHRAEI LOCAL ELECTRIC BATTERY FAILURE ',/,
205 & 5x,
' -------------------------------------- ',/,
206 & 5x,
'STRAIN RATIO FUNCTION ID . . . . . . . . . . . . .=',i10/,
207 & 5x,
'VOLUMETRIC STRAIN LIMIT. . . . . . . . . . . . . .=',1pg20.13/)
209 & 5x,
'NUMERATOR FLAG FOR STRAIN RATIO. . . . . . . . . .=',i10/,
210 & 5x,
'DENOMINATOR FLAG FOR STRAIN RATIO. . . . . . . . .=',i10/,
211 & 5x,
'FAILURE ORDINATE FOR FAILURE LIMIT . . . . . . . .=',i10/)
213 & 5x,
'ELEMENT SIZE REGULARIZATION FUNCTION ID. . . . . .=',i10/,
214 & 5x,
'ELEMENT REFERENCE SIZE . . . . . . . . . . . . . .=',1pg20.13/)
216 & 5x,
'NORMAL IN-PLANE COMPRESSION DIRECTION. . . . . . .=',i10/,
217 & 5x,
'FLAG FOR ELEMENT DELETION IN COMPRESSION . . . . .=',i10/,
218 & 5x,
'IN-PLANE COMPRESSION FAILURE STRAIN . . . . . . .=',1pg20.13/,
219 & 5x,
'RATIO FOR IN-PLANE 2ND DIRECTION FAILURE STRAIN . =',1pg20.13/)