32 1 NEL ,NUVAR ,TIME ,TIMESTEP ,
34 3 OFF ,SIGNYZ0 ,SIGNXZ0,SIGNZZ ,UVAR ,
35 4 OFFI ,REDUC ,COUNT ,SIGNYZ ,SIGNXZ )
43#include "implicit_f.inc"
85 INTEGER , NUVAR,NGL(*),IPLY
88 . SIGNYZ0(*),SIGNXZ0(*),SIGNYZ(*),SIGNXZ(*),
89 . offi(*),count(*),reduc(*)
90 TYPE (FAIL_PARAM_) ,
INTENT(IN) :: FAIL
99 my_real uvar(nel,nuvar), off(nel)
104 . I,J,IDEL,IDEL_L,IFLAG(MVSIZ),INDX(MVSIZ),NINDX,
108 . k1(mvsiz),k2(mvsiz),k3(mvsiz),k(mvsiz),
109 . a(mvsiz),gama1(mvsiz),gama2(mvsiz),
110 . y0(mvsiz),yc(mvsiz),tmax(mvsiz),fac,
111 . dam, yd1,yd2,yd3,cc,delta,w,yd,sig, dam0
116 IF (off(i)== zero) cycle
117 k1(i) = fail%UPARAM(1)
118 k2(i) = fail%UPARAM(2)
119 k3(i) = fail%UPARAM(3)
120 gama1(i) = fail%UPARAM(4)
121 gama2(i) = fail%UPARAM(5)
122 y0(i) = fail%UPARAM(6)
123 yc(i) = fail%UPARAM(7)
124 k(i) = fail%UPARAM(8)
125 a(i) = fail%UPARAM(9)
126 reduc(i) = fail%UPARAM(13)
134 IF (time == zero)
THEN
146 IF (off(i) == one )
THEN
148 IF(uvar(i,1) < one)
THEN
154 sig = half*(signzz(i) + abs(signzz(i)))
155 yd3 = k3(i)*(one - dam)**2
156 yd3 = half*sig*sig/
max(yd3, em20)
157 yd3 =
max(yd3, uvar(i,2))
163 yd2 = k2(i)*(one - dam)**2
164 yd2 = half*sig*sig/
max(yd2, em20)
165 yd2 =
max(yd2, uvar(i,3))
171 yd1 = k1(i)*(one - dam)**2
172 yd1 = half*sig*sig/
max(yd1, em20)
173 yd1 =
max(yd1, uvar(i,4))
178 yd = yd3 + gama1(i)*yd1 + gama2(i)*yd2
179 delta = sqrt(yd) - y0(i)
181 w = delta /(yc(i) - y0(i))
183 cc = half*(cc + abs(cc))
184 fac = k(i)*timestep(i)/a(i)
185 dam = dam + fac*(one - exp(-a(i)*cc))
191 IF( signzz(i) > zero )
192 . signzz(i) = signzz(i) *
max((one - dam),reduc(i))
193 signyz0(i) = signyz0(i)*
max((one - dam),reduc(i))
194 signxz0(i) = signxz0(i)*
max((one - dam),reduc(i))
196 IF(dam0 == zero .AND. dam > zero)
THEN
205 count(i) = count(i) + one
206 IF(int(count(i)) == 4)
THEN
208 WRITE(iout, 1300) ngl(i),iply,time
209 WRITE(istdo,1300) ngl(i),iply, time
225 WRITE(iout, 1100) ngl(i),iply,time
226 WRITE(istdo,1100) ngl(i),iply, time
227#include
"lockoff.inc"
235 WRITE(iout, 1200) ngl(i),iply,time
236 WRITE(istdo,1200) ngl(i),iply, time
237#include "lockoff.inc"
242 1100
FORMAT(1x,
'DAMAGE INITIATION OF SHELL #',i10,1x,
243 .
'INTERPLY ', i10, 1x,
244 .
'AT TIME # ',1pe20.13)
245 1200
FORMAT(1x,
'DELAMINATION OF SHELL #',i10,1x,
246 .
'INTERPLY ', i10, 1x,
247 .
'AT TIME # ',1pe20.13)
248 1300
FORMAT(1x,
'FULL DELAMINATION OF SHELL #',i10,1x,
249 .
'INTERPLY', i10,1x,
'AT TIME # ',1pe20.13)
subroutine delamination(elbuf_str, mat_param, jft, jlt, ir, is, npt, mat_iply, ipm, pm, bufmat, npf, tf, dt1c, ngl, off, th_iply, del_ply, sig, offi, a11, for, mom, ply_f, thk0, shf, exz, eyz, area, pid, geo, ssp, posly, thkly, kxx, kyy, kxy, dexz, deyz, eint, gstr, nel, nummat)
subroutine delm01law(fail, nel, nuvar, time, timestep, ngl, iply, off, signyz0, signxz0, signzz, uvar, offi, reduc, count, signyz, signxz)