39 . MAT_ID ,FAIL_ID ,IRUPT ,
40 . LSUBMODEL,UNITAB ,UNIT_ID )
55#include "implicit_f.inc"
63 INTEGER ,
INTENT(IN) :: FAIL_ID
64 INTEGER ,
INTENT(IN) :: MAT_ID
65 INTEGER ,
INTENT(IN) :: UNIT_ID
66 INTEGER ,
INTENT(IN) :: IRUPT
67 TYPE (UNIT_TYPE_) ,
INTENT(IN) :: UNITAB
68 TYPE (SUBMODEL_DATA),
INTENT(IN) :: LSUBMODEL(*)
69 TYPE (FAIL_PARAM_) ,
INTENT(INOUT) :: FAIL
73 INTEGER :: ISHELL,ISOLID,IRFUN,FUNC_ID,FUNC_ID2,S_FLAG,,FAILIP
74 my_real :: RF1,RF2,EPSP1,EPSP2,SCALE_EL,PTHKF,
75 . el_ref,scale_temp,fscal_unit,unit_t
76 LOGICAL :: IS_AVAILABLE,IS_ENCRYPTED
78 is_encrypted = .false.
79 is_available = .false.
91 unit_t = unitab%FAC_T(unit_id)
98 CALL hm_get_floatv (
'Epsilon_t1',rf1 ,is_available,lsubmodel,unitab)
99 CALL hm_get_floatv (
'Epsilon_t2',rf2 ,is_available,lsubmodel,unitab)
100 CALL hm_get_intv (
'fct_ID' ,irfun ,is_available,lsubmodel)
101 CALL hm_get_floatv (
'Epsilon_f1',epsp1 ,is_available,lsubmodel,unitab)
102 CALL hm_get_floatv (
'Epsilon_f2',epsp2 ,is_available,lsubmodel,unitab)
103 CALL hm_get_intv (
'S_Flag' ,s_flag,is_available,lsubmodel)
104 CALL hm_get_intv (
'FAILIP' ,failip ,is_available,lsubmodel)
105 IF (failip == 0) failip = 1
107 IF (s_flag == 2 .or. s_flag == 3 .or. s_flag == 12 .or. s_flag == 13 .or.
108 . s_flag == 22 .or. s_flag == 23)
THEN
109 CALL hm_get_intv (
'fct_IDel' ,func_id ,is_available,lsubmodel)
110 CALL hm_get_floatv (
'Fscale_el',scale_el,is_available,lsubmodel,unitab)
111 CALL hm_get_floatv (
'EI_ref' ,el_ref ,is_available,lsubmodel,unitab)
113 CALL hm_get_intv (
'fct_IDt' ,func_id2 ,is_available,lsubmodel)
114 CALL hm_get_floatv (
'FscaleT',scale_temp,is_available,lsubmodel,unitab)
118 IF (scale_el == zero) scale_el = one*fscal_unit
121 IF (el_ref == zero) el_ref = one *fscal_unit
124 IF (s_flag == 0) s_flag = 1
125 IF (s_flag == 11 .or. s_flag == 12 .or. s_flag == 13)
THEN
128 ELSEIF (s_flag == 21 .or. s_flag == 22 .or. s_flag == 23)
THEN
135 IF (scale_temp == zero) scale_temp = one
136 IF (scale_el == zero) scale_el = one
137 IF (el_ref == zero) el_ref = one
138 IF (rf1 <= zero) rf1 = ep20
139 IF (rf2 <= zero) rf2 = two*ep20
142 CALL ancmsg(msgid=617, msgtype=msgerror, anmode=aninfo_blind_1,
147 fail%KEYWORD =
'TENS_STRAIN'
149 fail%FAIL_ID = fail_id
158 ALLOCATE (fail%UPARAM(fail%NUPARAM))
159 ALLOCATE (fail%IPARAM(fail%NIPARAM))
160 ALLOCATE (fail%IFUNC (fail%NFUNC))
161 ALLOCATE (fail%TABLE (fail%NTABLE))
165 fail%UPARAM(3) = epsp1
166 fail%UPARAM(4) = epsp2
167 fail%UPARAM(5) = scale_el
168 fail%UPARAM(6) = el_ref
169 fail%UPARAM(7) = scale_temp
170 fail%UPARAM(8) = s_flag
171 fail%UPARAM(9) = unit_t
172 fail%UPARAM(10)= strdef
173 fail%UPARAM(11)= failip
175 fail%IFUNC(1) = irfun
176 fail%IFUNC(2) = func_id
177 fail%IFUNC(3) = func_id2
182 WRITE(iout, 1100) rf1,rf2,irfun,strdef,failip
183 IF (epsp1 > zero .OR. epsp2 > zero)
THEN
184 WRITE(iout, 2000)epsp1,epsp2
186 IF (s_flag == 2)
WRITE(iout, 2900)
187 IF (s_flag == 3)
WRITE(iout, 2950)
188 WRITE(iout, 3000) func_id,scale_el,el_ref,func_id2,scale_temp
189 IF (fail_id > zero)
THEN
190 WRITE(iout, 4000) fail_id
196 & 5x,40h crypted
DATA in failure model /,
197 & 5x,40h -----------------------------
199 & 5x,40h tension strain failure model /,
200 & 5x,40h ------------------------ /,
201 & 5x,
'MAXIMUM TENSION STRAIN 1. . . . . . . . . . . . . . . . =',e12.4/
202 & 5x,
'MAXIMUM TENSION STRAIN 2. . . . . . . . . . . . . . . . =',e12.4/
203 & 5x,
'MAXIMUM STRAINS SCALING FUNCTION. . . . . . . . . . . . =',i10/
204 & 5x,
'FAILURE STRAIN INPUT TYPE . . . . . . . . . . . . . . . =',i10/
205 & 5x,
' =1 (STRAIN MEASURE DEFINED IN PROPERTY) ',/
206 & 5x,
' =2 (ENGINEERING STRAIN) . . . . . . . . ',/
207 & 5x,
' =3 (TRUE STRAIN). . . . . . . . . . . . ',/
208 & 5x,
'NUMBER OF FAILED INTG. POINTS PRIOR TO ELEM DELETION .=',i10/)
210 & 5x,
'MAXIMUM FIRST PRINCIPAL STRAIN FOR ELEMENT DELETION . . =',e12.4/
211 & 5x,
'MAXIMUM SECOND PRINCIPAL STRAIN FOR ELEMENT DELETION. . =',e12.4/)
213 & 5x,
'EQUIVALENT STRAIN METHOD USED '/)
215 & 5x,
'FIRST PRINCIPAL STRAIN METHOD USED '/)
217 & 5x,
'ELEMENT LENGTH REGULARIZATION USED: ',/
218 & 5x,
'REGULARIZATION FUNCTION . . . . . . . . . . . . . . . . =',i10/
219 & 5x,
'EL SCALING FACTOR . . . . . . . . . . . . . . . . . . . =',e12.4/
220 & 5x,
'REFERENCE ELEMENT LENGTH. . . . . . . . . . . . . . . . =',e12.4/
221 & 5x,
'TEMPERATURE FUNCTION. . . . . . . . . . . . . . . . . . =',i10/
222 & 5x,
'TEMP SCALING FACTOR . . . . . . . . . . . . . . . . . . =',e12.4/)
224 & 5x,'fail_id . . . . . . . . . . . . . . . . . . . . . . . . =
',I10/)
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)