31 . NEL ,NUPARAM,NIPARAM,FLAG_ZCFAC,ZCFAC ,SHF ,
32 . UPARAM ,IPARAM ,NPTTOT ,SSP ,NSENSOR,
33 . EPSXX ,EPSYY ,EPSXY ,EPSYZ ,EPSZX ,
34 . SIGOXX ,SIGOYY ,SIGOXY ,SIGOYZ ,SIGOZX ,
35 . SIGNXX ,SIGNYY ,SIGNXY ,SIGNYZ ,SIGNZX ,
44#include "implicit_f.inc"
57 INTEGER ,
INTENT(IN) :: NEL
58 INTEGER ,
INTENT(IN) :: NPTTOT
59 INTEGER ,
INTENT(IN) :: NUPARAM
60 INTEGER ,
INTENT(IN) :: NIPARAM
61 INTEGER ,
INTENT(IN) :: NSENSOR
62 LOGICAL ,
INTENT(IN) :: FLAG_ZCFAC
63 my_real ,
DIMENSION(MVSIZ,2) ,
INTENT(INOUT) :: zcfac
64 INTEGER ,
DIMENSION(NIPARAM) ,
INTENT(IN) :: IPARAM
65 my_real ,
DIMENSION(NUPARAM) ,
INTENT(IN) :: uparam
66 my_real ,
DIMENSION(NEL) ,
INTENT(IN) :: shf,
67 . epsxx,epsyy,epsxy,epsyz,epszx,sigoxx,sigoyy,sigoxy,sigoyz,sigozx
68 my_real ,
DIMENSION(NEL) ,
INTENT(OUT) :: ssp,
69 . signxx,signyy,signxy,signyz,signzx
70 my_real ,
DIMENSION(NEL,3) ,
INTENT(INOUT) :: sigi
71 TYPE (SENSOR_STR_) ,
DIMENSION(NSENSOR) ,
INTENT(IN) :: SENSOR_TAB
76 my_real :: e11,e22,nu12,nu21,g12,g23,g31,a11,a12,a22,rcomp,
77 . s,d,t,p1,p2,r,beta,zerostress,tstart
92 zerostress = uparam(14)
93 ssp(1:nel) = uparam(9)
97 signxx(i) = a11*epsxx(i) + a12*epsyy(i)
98 signyy(i) = a12*epsxx(i) + a22*epsyy(i)
99 signxy(i) = g12*epsxy(i)
100 signyz(i) = g23*epsyz(i)*shf(i)
101 signzx(i) = g31*epszx(i)*shf(i)
107 s = half*(signxx(i) + signyy(i))
108 d = half*(signxx(i) - signyy(i))
109 r = sqrt(signxy(i)**2 + d*d)
115 beta = half*((one-rcomp)*s/r + one+rcomp)
116 signxx(i) = beta*(signxx(i)-p2) + p2
117 signyy(i) = beta*(signyy(i)-p2) + p2
118 signxy(i) = beta*signxy(i)
121 signxx(i) = beta*signxx(i)
122 signyy(i) = beta*signyy(i)
123 signxy(i) = beta*signxy(i)
131 IF (zerostress /= zero)
THEN
132 IF (isens > 0) tstart = sensor_tab(isens)%TSTART
134 IF (tt <= tstart)
THEN
136 sigi(i,1) = signxx(i)
137 sigi(i,2) = signyy(i)
138 sigi(i,3) = signxy(i)
145 dsig = signxx(i) - sigoxx(i) - sigi(i,1)
146 IF (sigi(i,1) > zero .AND. dsig < zero)
THEN
147 sigi(i,1) =
max(zero,sigi(i,1) + zerostress*dsig)
148 ELSEIF (sigi(i,1) < zero .AND. dsig > zero)
THEN
149 sigi(i,1) =
min(zero,sigi(i,1) + zerostress*dsig)
151 dsig = signyy(i) - sigoyy(i) - sigi(i,2)
152 IF (sigi(i,2) > zero .AND. dsig < zero)
THEN
154 ELSEIF (sigi(i,2) < zero .AND. dsig > zero)
THEN
155 sigi(i,2) =
min(zero,sigi(i,2) + zerostress*dsig)
157 dsig = signxy(i) - sigoxy(i) - sigi(i,3)
158 IF (sigi(i,3) > zero .AND. dsig < zero)
THEN
159 sigi(i,3) =
max(zero,sigi(i,3)+zerostress*dsig)
160 ELSEIF (sigi(i,3) < zero .AND. dsig > zero)
THEN
161 sigi(i,3) =
min(zero,sigi(i,3) + zerostress*dsig)
163 signxx(i) = signxx(i) - sigi(i,1)
164 signyy(i) = signyy(i) - sigi(i,2)
165 signxy(i) = signxy(i) - sigi(i,3)
173 zcfac(i,1) = zcfac(i,1) + et(i) / npttot
174 zcfac(i,2) =
min(et(i),zcfac(i,2))
subroutine sigeps19c(nel, nuparam, niparam, flag_zcfac, zcfac, shf, uparam, iparam, npttot, ssp, nsensor, epsxx, epsyy, epsxy, epsyz, epszx, sigoxx, sigoyy, sigoxy, sigoyz, sigozx, signxx, signyy, signxy, signyz, signzx, sigi, sensor_tab)