33 1 NEL ,NUPARAM ,NUVAR ,TIME ,TIMESTEP ,UPARAM ,
34 2 SIGNXX ,SIGNYY ,SIGNZZ ,SIGNXY ,SIGNYZ ,SIGNZX ,
35 3 NGL ,DPLA ,UVAR ,OFF ,DFMAX ,TDELE )
39#include "implicit_f.inc"
46 INTEGER NEL, NUPARAM, NUVAR,NGL(NEL)
47 my_real TIME,TIMESTEP,UPARAM(*),
48 . SIGNXX(NEL),SIGNYY(NEL),SIGNZZ(NEL),
49 . signxy(nel),signyz(nel),signzx(nel),uvar(nel,nuvar),
50 . dpla(nel),off(nel),dfmax(nel),tdele(nel)
54 INTEGER I,J,INDX(MVSIZ),NINDX
56 . P,triaxs,SVM,SXX,SYY,SZZ,EPS_CR,F_RTCL
66 IF (off(i) < em01) off(i) = zero
67 IF (off(i) < one .AND. off(i) > zero) off(i) = off(i)*four_over_5
82 p = third*(signxx(i) + signyy(i) + signzz(i))
86 svm = half*(sxx**2 + syy**2 + szz**2)
87 . + signxy(i)**2 + signzx(i)**2 + signyz(i)**2
89 triaxs = p/
max(em20,svm)
90 IF (triaxs > one) triaxs = one
91 IF (triaxs < -one) triaxs = -one
94 IF (triaxs < -third)
THEN
96 ELSEIF ((triaxs >= -third).AND.(triaxs < third))
THEN
97 f_rtcl = two*((one+triaxs*sqrt(twelve-twenty7*(triaxs**2)))/
98 . (three*triaxs+sqrt(twelve-twenty7*(triaxs**2))))
100 f_rtcl = exp(-half)*exp(three_half*triaxs)
104 dfmax(i) = dfmax(i) + f_rtcl*dpla(i)/
max(eps_cr,em6)
105 dfmax(i) =
min(one,dfmax(i))
108 IF (dfmax(i) >= one .AND. off(i) == one)
THEN
122 WRITE(iout, 1000) ngl(i),time
123 WRITE(istdo,1100) ngl(i),time
124#include "lockoff.inc"
128 1000
FORMAT(1x,
'DELETE SOLID ELEMENT NUMBER (RTCL) el#',i10,
129 .
' AT TIME :',1pe12.4)
130 1100
FORMAT(1x,
'DELETE SOLID ELEMENT NUMBER (RTCL) el#',i10,
131 .
' AT TIME :',1pe12.4)
subroutine fail_rtcl_s(nel, nuparam, nuvar, time, timestep, uparam, signxx, signyy, signzz, signxy, signyz, signzx, ngl, dpla, uvar, off, dfmax, tdele)