33 1 NEL ,NUPARAM,NUVAR ,
34 2 TIME ,TIMESTEP ,UPARAM ,NGL ,
35 3 SIGNXX ,SIGNYY ,SIGNZZ ,SIGNXY ,SIGNYZ ,SIGNZX ,
36 4 UVAR ,OFF ,DFMAX ,TDELE )
40#include "implicit_f.inc"
90 INTEGER NEL, NUPARAM, NUVAR,NGL(NEL)
92 . TIME,TIMESTEP,UPARAM(*),
93 . SIGNXX(NEL),SIGNYY(NEL),SIGNZZ(NEL),
94 . signxy(nel),signyz(nel),signzx(nel)
103 my_real uvar(nel,nuvar), off(nel),dfmax(nel),tdele(nel)
107 INTEGER I,J,IDEL,IDEV,IFLAG,INDX(MVSIZ),IADBUF,NINDX,
108 . NINDEX,INDEX(MVSIZ),IFAIL,IR,JJ
110 . TBA,TBK,SIGR,SVM,SCALE,SXX,SYY,SZZ,
112 . epst2, a, cc1, b, y ,yp, d, e42, e52, c, e62,p,sigmax
118 iflag = int(uparam(5))
132 IF(off(i)<0.1) off(i)=0.0
133 IF(off(i)<1.0) off(i)=off(i)*0.8
144 IF(iflag==1.AND.off(i)==1.)
THEN
148 p = third*(signxx(i) + signyy(i) + signzz(i))
164 c = - half * (e1*e1 + e2*e2 + e3*e3) - e42 - e52 - e62
165 d = - e1*e2*e3 + e1*e52 + e2*e62 + e3*e42
169 epst2 = sigmax * sigmax
170 y = (epst2 + c)* sigmax + d
172 sigmax = 1.75 * sigmax
173 epst2 = sigmax * sigmax
174 y = (epst2 + c)* sigmax + d
176 IF(yp/=zero)sigmax = sigmax - y/yp
177 epst2 = sigmax * sigmax
178 y = (epst2 + c)* sigmax + d
180 IF(yp/=zero)sigmax = sigmax - y/yp
181 epst2 = sigmax * sigmax
182 y = (epst2 + c)* sigmax + d
184 IF(yp/=zero)sigmax = sigmax - y/yp
185 epst2 = sigmax * sigmax
186 y = (epst2 + c)* sigmax + d
188 IF(yp/=zero)sigmax = sigmax - y/yp
192 . uvar(i,1)=uvar(i,1) + timestep*(sigmax - sigr)**tba
194 IF (uvar(i,1)>tbk)
THEN
202 IF(nindx>0.AND.imconv==1)
THEN
206 WRITE(istdo,1000)ngl(i)
207 WRITE(iout,1100)ngl(i),time
208#include "lockoff.inc"
218 IF(iflag==2.AND.off(i)==1.)
THEN
219 IF(uvar(i,1)<tbk)
THEN
220 p = third*(signxx(i) + signyy(i) + signzz(i))
236 c = - half * (e1*e1 + e2*e2 + e3*e3) - e42 - e52 - e62
237 d = - e1*e2*e3 + e1*e52 + e2*e62 + e3*e42
241 epst2 = sigmax * sigmax
242 y = (epst2 + c)* sigmax + d
244 sigmax = 1.75 * sigmax
245 epst2 = sigmax * sigmax
246 y = (epst2 + c)* sigmax + d
248 IF(yp/=zero)sigmax = sigmax - y/yp
249 epst2 = sigmax * sigmax
250 y = (epst2 + c)* sigmax + d
252 IF(yp/=zero)sigmax = sigmax - y/yp
253 epst2 = sigmax * sigmax
254 y = (epst2 + c)* sigmax + d
256 IF(yp/=zero)sigmax = sigmax - y/yp
257 epst2 = sigmax * sigmax
258 y = (epst2 + c)* sigmax + d
260 IF(yp/=zero)sigmax = sigmax - y/yp
264 . uvar(i,1)=uvar(i,1) + timestep*(sigmax - sigr)**tba
266 IF(uvar(i,1)>tbk)
THEN
278 p= third*(signxx(i) + signyy(i) + signzz(i))
288 IF(nindx>0.AND.imconv==1)
THEN
292 WRITE(iout, 2000) ngl(i)
293 WRITE(istdo,2100) ngl(i),time
294#include "lockoff.inc"
300 dfmax(i)=
min(one,
max(dfmax(i),uvar(i,1)/tbk))
303 1000
FORMAT(1x,
'DELETE SOLID ELEMENT NUMBER ',i10)
304 1100
FORMAT(1x,
'DELETE SOLID ELEMENT NUMBER ',i10,
305 .
' AT TIME :',1pe20.13)
307 2000
FORMAT(1x,
' DEVIATORIC STRESS WILL BE VANISHED',i10
308 2100
FORMAT(1x,
' DEVIATORIC STRESS WILL BE VANISHED',i10,
309 .
' AT TIME :',1pe20.13)
subroutine fail_tbutcher_s(nel, nuparam, nuvar, time, timestep, uparam, ngl, signxx, signyy, signzz, signxy, signyz, signzx, uvar, off, dfmax, tdele)