30 1 NEL ,NUPARAM ,NUVAR ,UPARAM ,UVAR ,
31 2 TIME ,NGL ,IPG ,ILAY ,IPT ,
32 3 SIGNXX ,SIGNYY ,SIGNXY ,SIGNYZ ,SIGNZX ,
33 4 DPLA ,FOFF ,DFMAX ,TDEL )
39#include "implicit_f.inc"
74 INTEGER ,
INTENT(IN) :: NEL,NUPARAM,NUVAR,IPG,ILAY,IPT
75 INTEGER ,
DIMENSION(NEL) ,
INTENT(IN) :: NGL
76 my_real ,
INTENT(IN) :: TIME
77 my_real ,
DIMENSION(NEL) ,
INTENT(IN) :: DPLA,
78 . signxx,signyy,signxy,signyz,signzx
79 my_real,
DIMENSION(NUPARAM) ,
INTENT(IN) :: uparam
83 INTEGER ,
DIMENSION(NEL) ,
INTENT(INOUT) :: FOFF
84 my_real ,
DIMENSION(NEL) ,
INTENT(INOUT) :: DFMAX
85 my_real ,
DIMENSION(NEL) ,
INTENT(OUT) :: TDEL
86 my_real ,
DIMENSION(NEL,NUVAR) ,
INTENT(INOUT) :: UVAR
91 INTEGER ,
DIMENSION(NEL) :: INDX
92 my_real :: AL,BE,PC,DC,P,W1,,SS,S1,S2,S3,SS0,SS1,SS2,SIG1,SIG2,
102 IF (foff(i) == 1)
THEN
103 ss1 = half*(signxx(i) + signyy(i))
104 ss2 = half*(signxx(i) - signyy(i))
105 ss0 = sqrt(ss2**2 + signxy(i)**2)
109 IF (sig2 > sig1)
THEN
113 p = third*(signxx(i) + signyy(i))
118 IF (sig2 > zero)
THEN
121 ELSEIF (sig1 < zero)
THEN
124 ELSEIF (sig1 /= zero)
THEN
132 w1 =
max(em20,(two - a))**be
134 w2 = (
max(em20,one/w2))**al
135 uvar(i,1) = uvar(i,1) + w1*w2*dpla(i)
136 IF (uvar(i,1) >= dc)
THEN
147 dfmax(i) =
min(one,
max(dfmax(i),uvar(i,1)/dc))
154 WRITE(iout, 2000) ngl(i),ipg,ilay,ipt
155 WRITE(istdo,2100) ngl(i),ipg,ilay,ipt,time
156#include "lockoff.inc"
160 2000
FORMAT(1x,
'FAILURE (WILKINS) OF SHELL ELEMENT ',i10,1x,
',GAUSS PT',
161 . i2,1x,
',LAYER',i3,1x,
',INTEGRATION PT',i3)
162 2100
FORMAT(1x,
'FAILURE (WILKINS) OF SHELL ELEMENT ',i10,1x,
',GAUSS PT',
163 . i2,1x,
',LAYER',i3,1x,
',INTEGRATION PT',i3,1x,
'AT TIME :',1pe12.4)
subroutine fail_wilkins_c(nel, nuparam, nuvar, uparam, uvar, time, ngl, ipg, ilay, ipt, signxx, signyy, signxy, signyz, signzx, dpla, foff, dfmax, tdel)