29 . NEL ,NGL ,NUPARAM ,UPARAM ,
30 . TIME ,TSTAR ,SVM ,PRESSURE ,
31 . DPLA ,EPSD ,OFF ,DFMAX ,
38#include "implicit_f.inc"
46 INTEGER ,
INTENT(IN) :: NEL
47 INTEGER ,
INTENT(IN) :: NUPARAM
48 INTEGER ,
INTENT(IN) :: IOUT
49 INTEGER ,
INTENT(IN) :: ISTDO
50 INTEGER ,
DIMENSION(NEL) ,
INTENT(IN) :: NGL
52 my_real ,
DIMENSION(NUPARAM) ,
INTENT(IN) :: uparam
53 my_real ,
DIMENSION(NEL) ,
INTENT(IN) :: dpla
54 my_real ,
DIMENSION(NEL) ,
INTENT(IN) :: svm
55 my_real ,
DIMENSION(NEL) ,
INTENT(IN) :: pressure
56 my_real ,
DIMENSION(NEL) ,
INTENT(IN) :: epsd
57 my_real ,
DIMENSION(NEL) ,
INTENT(IN) :: tstar
58 my_real ,
DIMENSION(NEL) ,
INTENT(INOUT) :: off
59 my_real ,
DIMENSION(NEL) ,
INTENT(INOUT) :: dfmax
60 my_real ,
DIMENSION(NEL) ,
INTENT(INOUT) :: tdel
65 INTEGER ,
DIMENSION(NEL) :: INDX
66 my_real :: D1,D2,D3,D4,D5,EPSD0,EPSF,EPSF_MIN
78 IF (off(i) == one .and. dpla(i) > zero)
THEN
79 epsf = d3 * pressure(i) /
max(em20, svm(i))
80 epsf = d1 + d2 * exp(epsf)
81 IF (d4 /= zero) epsf = epsf * (one + d4*log(
max(one,epsd(i)/epsd0)))
82 IF (d5 /= zero) epsf = epsf * (one + d5*tstar(i))
83 epsf =
max(epsf,epsf_min)
84 IF (epsf > zero) dfmax(i) = dfmax(i) + dpla(i) / epsf
85 IF (dfmax(i) >= one)
THEN
99 WRITE(iout, 1000) ngl(i),time
100 WRITE(istdo,1000) ngl(i),time
101#include "lockoff.inc"
105 1000
FORMAT(5x,
'FAILURE (JC) OF BEAM ELEMENT ',i10,1x,
'AT TIME :',1pe12.4)
subroutine fail_johnson_b(nel, ngl, nuparam, uparam, time, tstar, svm, pressure, dpla, epsd, off, dfmax, tdel, iout, istdo)