32 1 NEL ,NUVAR ,TIME ,TIMESTEP ,
34 3 OFF ,SIGNYZ ,SIGNXZ ,SIGNZZ ,DU ,
35 4 UVAR , OFFI ,REDUC,COUNT)
43#include "implicit_f.inc"
92 INTEGER NEL, NUPARAM, NUVAR,NGL(*),
95 . TIME,TIMESTEP(*),(*),
96 . signyz(*),signxz(*), du(3,mvsiz),offi(*),reduc(*),count(*)
97 TYPE (FAIL_PARAM_) ,
INTENT(IN) :: FAIL
101 my_real uvar(nel,nuvar), off(nel)
106 . I,J,IDEL,IDEL_L,IFLAG(MVSIZ),INDX(MVSIZ),NINDX,
107 . NINDEX,INDEX(MVSIZ),JST(MVSIZ),IR,JJ
109 . gic(mvsiz),giic(mvsiz),k(mvsiz),eta(mvsiz),
110 . d0(mvsiz),ds0(mvsiz), cc1,cc2,deltaf,delta0,dam,
111 . dshear,d3,beta,b,lam,d
116 IF (off(i)==zero) cycle
117 gic(i) = fail%UPARAM(1)
118 giic(i) = fail%UPARAM(2)
119 eta(i) = fail%UPARAM(3)
120 k(i) = fail%UPARAM(4)
121 d0(i) = fail%UPARAM(5)
122 ds0(i) = fail%UPARAM(6)
123 reduc(i) = fail%UPARAM(7)
150 IF(off(i) == one )
THEN
152 IF(uvar(i,1) < one)
THEN
155 dshear = sqrt(du(1,i)**2 + du(2,i)**2)
156 d3 = half*(du(3,i) + abs(du(3,i)))
157 d = sqrt(d3**2 + dshear**2)
158 beta = dshear/
max((dshear + d3),em20)
159 IF(d3 == zero) beta = one
160 b = beta**2 / (one + two*beta**2 - two*beta)
164 delta0 = sqrt(cc1 + (ds0(i)**2 - cc1)*cc2)
165 deltaf = gic(i) + (giic(i) - gic(i))*cc2
166 deltaf= two*deltaf/
max(k(i)*delta0, em20)
171 lam = lam/(deltaf - dam*(deltaf - delta0) )
176 dam = deltaf*(d - delta0)
177 cc1 = d*(deltaf - delta0)
178 dam = dam/
max(em20, cc1)
183 signxz(i) = signxz(i)*
max((one - dam),reduc(i))
184 signyz(i) = signyz(i)*
max((one - dam),reduc(i))
185 IF(d3 > zero)signzz(i)=signzz(i)*
max((one - dam),reduc(i))
191 count(i) = count(i) + one
192 IF(int(count(i)) == 4)
THEN
194 WRITE(iout, 1300) ngl(i),iply,time
195 WRITE(istdo,1300) ngl(i),iply, time
214 WRITE(iout, 1200) ngl(i),iply,time
215 WRITE(istdo,1200) ngl(i),iply, time
216#include "lockoff.inc"
221 1200
FORMAT(1x,
'DELAMINATION OF SHELL #',i10,1x,
222 .
'INTERPLY ', i10, 1x,
223 .
'AT TIME # ',1pe20.13)
225 1300
FORMAT(1x,
'FULL DELAMINATION OF SHELL #',i10,1x,
226 .
'INTERPLY', i10,1x,
'AT TIME # ',1pe20.13)
subroutine delm02law(fail, nel, nuvar, time, timestep, ngl, iply, off, signyz, signxz, signzz, du, uvar, offi, reduc, count)