32 1 NEL ,NUPARAM ,NUVAR ,UPARAM ,UVAR ,
33 2 TIME ,NGL ,IPG ,ILAY ,IPTT ,
34 3 SIGNXX ,SIGNYY ,SIGNXY ,SIGNYZ ,SIGNZX ,
35 4 DPLA ,EPSP ,TSTAR ,OFF ,FOFF ,
46#include "implicit_f.inc"
52#include "vect01_c.inc"
82 INTEGER,
INTENT(IN) :: NEL,NUPARAM,NUVAR,IPG,ILAY,IPTT
83 INTEGER ,
DIMENSION(NEL),
INTENT(IN) :: NGL
84 my_real,
INTENT(IN) :: TIME
85 my_real ,
DIMENSION(NUPARAM),
INTENT(IN) :: UPARAM
86 my_real ,
DIMENSION(NEL),
INTENT(IN) :: DPLA,EPSP,TSTAR,OFF,
87 . signxx,signyy,signxy,signyz,signzx
91 INTEGER ,
DIMENSION(NEL),
INTENT(INOUT) :: FOFF
92 my_real ,
DIMENSION(NEL),
INTENT(INOUT) :: DFMAX
93 my_real ,
DIMENSION(NEL),
INTENT(OUT) :: TDEL
94 my_real,
DIMENSION(NEL,NUVAR),
INTENT(INOUT) :: UVAR
99 INTEGER ,
DIMENSION(NEL) :: INDX
100 my_real :: D1,D2,D3,D4,D5,EPSP0,P,,SVM,EPSF_MIN
109 epsf_min = uparam(12)
112 IF (off(i) == one .and. foff(i) == 1 .and. dpla(i) > zero)
THEN
113 p = third*(signxx(i) + signyy(i))
114 svm = sqrt(signxx(i)*signxx(i) + signyy(i)*signyy(i)
115 . - signxx(i)*signyy(i) + three*signxy(i)*signxy(i))
116 epsf = d3*p/
max(em20,svm)
117 epsf = (d1 + d2*exp(epsf))
118 IF(d4/=zero) epsf = epsf * (one + d4*log(
max(one,epsp(i)/epsp0)))
119 IF(d5/=zero) epsf = epsf * (one + d5*tstar(i))
120 epsf =
max(epsf,epsf_min)
121 IF (epsf > zero) dfmax(i) = dfmax(i) + dpla(i)/epsf
122 IF (dfmax(i) >= one)
THEN
135 WRITE(iout, 2000) ngl(i),ipg,ilay,iptt
136 WRITE(istdo,2100) ngl(i),ipg,ilay,iptt,time
137#include "lockoff.inc"
144 dfmax(i) =
min(one,dfmax(i))
147 2000
FORMAT(1x,
'FAILURE (JC) OF SHELL ELEMENT ',i10,1x,
',GAUSS PT',i2,1x,
',LAYER',i3,
148 . 1x,
',INTEGRATION PT',i3)
149 2100
FORMAT(1x,
'FAILURE (JC) OF SHELL ELEMENT ',i10,1x,
',GAUSS PT',i2,1x,
',LAYER',i3,
150 . 1x,
',INTEGRATION PT',i3,1x,
'AT TIME :',1pe12.4)
subroutine fail_johnson_c(nel, nuparam, nuvar, uparam, uvar, time, ngl, ipg, ilay, iptt, signxx, signyy, signxy, signyz, signzx, dpla, epsp, tstar, off, foff, dfmax, tdel)