30 1 NEL ,NUPARAM ,UPARAM ,NUVAR ,UVAR ,
31 2 TIME ,NGL ,IPG ,ILAY ,IPT ,
32 3 SIGNXX ,SIGNYY ,SIGNXY ,SIGNYZ ,SIGNZX ,
33 4 DPLA ,OFF ,FOFF ,DFMAX ,TDEL )
39#include "implicit_f.inc"
73 INTEGER ,
INTENT(IN) :: NEL,NUPARAM,NUVAR,IPG,ILAY,IPT
74 INTEGER ,
DIMENSION(NEL) ,
INTENT(IN) :: NGL
75 my_real ,
INTENT(IN) :: TIME
76 my_real ,
DIMENSION(NEL) ,
INTENT(IN) :: ,OFF,
77 . signxx,signyy,signxy,signyz,signzx
78 my_real,
DIMENSION(NUPARAM) ,
INTENT(IN) :: uparam
82 INTEGER ,
DIMENSION(NEL) ,
INTENT(INOUT) :: FOFF
83 my_real ,
DIMENSION(NEL) ,
INTENT(INOUT) :: DFMAX
84 my_real ,
DIMENSION(NEL) ,
INTENT(OUT) :: TDEL
85 my_real ,
DIMENSION(NEL,NUVAR) ,
INTENT(INOUT) :: UVAR
90 INTEGER ,
DIMENSION(NEL) :: INDX
91 my_real :: C1,C2,C3,C4,CM,CN,P,EPSF,SVM,ETA,XI
102 IF (off(i) == one .and. foff(i) == 1)
THEN
103 p = third*(signxx(i) + signyy(i))
104 svm = sqrt(signxx(i)*signxx(i)
105 . + signyy(i)*signyy(i) - signxx(i)*signyy(i)
106 . + three*signxy(i)*signxy(i))
108 eta = p /
max(em20,svm)
109 xi = -half*(twenty + seven)*eta*(eta**2 - third)
110 epsf = (c1*exp(-c2*eta))**cn
111 . - (c3*exp(-c4*eta))**cn
112 epsf = epsf *
max(zero,(one - xi**cm))**(one/cm)
113 epsf = ((c1*exp(-c2*eta))**cn - epsf)**(one/cn)
114 IF (epsf > zero) dfmax(i) = dfmax(i) + dpla(i
115 IF (dfmax(i) >= one)
THEN
126 dfmax(i) =
min(one,dfmax(i))
133 WRITE(iout, 2000) ngl(i),ipg,ilay,ipt
134 WRITE(istdo,2100) ngl(i),ipg,ilay,ipt,time
135#include "lockoff.inc"
139 2000
FORMAT(1x,
'FAILURE (WIERZBICKI) OF SHELL ELEMENT ',i10,1x,
',GAUSS PT',
140 . i2,1x,
',LAYER',i3,1x,
',INTEGRATION PT',i3)
141 2100
FORMAT(1x,
'FAILURE (WIERZBICKI) OF SHELL ELEMENT ',i10,1x,
',GAUSS PT',
142 . i2,1x,
',LAYER',i3,1x,
',INTEGRATION PT',i3,1x,
'AT TIME :',1pe12.4)
subroutine fail_wierzbicki_c(nel, nuparam, uparam, nuvar, uvar, time, ngl, ipg, ilay, ipt, signxx, signyy, signxy, signyz, signzx, dpla, off, foff, dfmax, tdel)