32 1 NEL ,NUPARAM ,NUVAR ,UPARAM ,UVAR ,
33 2 TIME ,NPF ,TF ,NFUNC ,IFUNC ,
34 3 NGL ,IPG ,ILAY ,IPT ,HARDM ,
35 4 SIGNXX ,SIGNYY ,SIGNXY ,SIGNYZ ,SIGNZX ,
36 5 OFF ,FOFF ,DFMAX ,TDEL ,LF_DAMMX )
42#include "implicit_f.inc"
75 INTEGER ,
INTENT(IN) :: NEL,NFUNC,NUPARAM,NUVAR,IPG,ILAY,IPT,LF_DAMMX
76 INTEGER,
DIMENSION(NFUNC),
INTENT(IN) :: IFUNC
77 INTEGER ,
DIMENSION(NEL) ,
INTENT(IN) :: NGL
78 my_real ,
INTENT(IN) :: TIME
79 my_real ,
DIMENSION(NEL) ,
INTENT(IN) :: OFF,HARDM,
80 . signxx,signyy,signxy,signyz,signzx
81 my_real,
DIMENSION(NUPARAM) ,
INTENT(IN) :: uparam
85 INTEGER ,
DIMENSION(NEL) ,
INTENT(INOUT) :: FOFF
86 my_real ,
DIMENSION(NEL) ,
INTENT(OUT) :: tdel
87 my_real ,
DIMENSION(NEL,NUVAR) ,
INTENT(INOUT) :: uvar
88 my_real ,
DIMENSION(NEL,LF_DAMMX),
INTENT(INOUT) :: dfmax
105 INTEGER :: I,J,NINDX,CHECK
106 INTEGER ,
DIMENSION(NEL) :: INDX
107 my_real :: S1,,SS,S12,DYDX1,,S2DYDX1,SIGSR,SIG3D
108 my_real ,
DIMENSION(NEL) :: SIG1,SIG2,LAMBDANXT
118 IF (off(i) == zero)
THEN
127 IF (off(i) == one .and. foff(i) == 1)
THEN
129 s1 = half*(signxx(i) + signyy(i))
130 s2 = half*(signxx(i) - signyy(i))
131 sig1(i) = s1 + sqrt(s2**2 + s12**2)
132 ss = s1 - sqrt(s2**2 + s12**2)
135 IF(ss >= sig1(i))
THEN
140 IF (sig2(i)/=zero)
THEN
142 IF ((ss < -one .AND. ss < zero) .OR.
143 . (sig1(i) < zero .AND. sig2(i) < zero))
THEN
150 sig1(i) = sig1(i)/
max(hardm(i),em20)
151 sig2(i) = sig2(i)/
max(hardm(i),em20)
152 IF (check == 1 )
THEN
154 sigsr = finter(ifunc(1),sig2(i),npf,tf,dydx1)
155 sig3d = finter(ifunc(2),sig2(i),npf,tf,dydx2)
156 IF(sigsr < abs(sig2(i)).AND.sig3d < abs(sig2(i)))
THEN
158 ELSEIF(sigsr < abs(sig2(i)))
THEN
160 lambdanxt(i) = one + ((sig1(i) - sigsr)/(sig3d - sigsr))
163 lambdanxt(i) = one + ((sig1(i) - sigsr)/(sig3d - sigsr))
165 lambdanxt(i) =
max(lambdanxt(i),zero)
166 lambdanxt(i) =
min(lambdanxt(i),two)
175 IF (off(i) == one .and. foff(i) == 1)
THEN
176 IF (lambdanxt(i) >= two)
THEN
189 WRITE(iout, 2000) ngl(i),ipt,lambdanxt(i)
190 WRITE(istdo,2100) ngl(i),ipt,time,lambdanxt(i)
191#include "lockoff.inc"
198 dfmax(i,2) =
max(dfmax(i,2),lambdanxt(i))
201 dfmax(i,1) =
min(one, dfmax(i,2)/two)
204 2000
FORMAT(1x,
'(NXT FAILURE) FOR SHELL ELEMENT ',i10,1x,
206 . 1x,
'WITH FAILURE FACTOR :',1pe20.13)
207 2100
FORMAT(1x,
'(NXT FAILURE) FOR SHELL ELEMENT',i10,1x,
209 . 1x,
'AT TIME :',1pe20.13/,
210 . 1x,
'WITH FAILURE FACTOR :',1pe20.13)
subroutine fail_nxt_c(nel, nuparam, nuvar, uparam, uvar, time, npf, tf, nfunc, ifunc, ngl, ipg, ilay, ipt, hardm, signxx, signyy, signxy, signyz, signzx, off, foff, dfmax, tdel, lf_dammx)