29 1 NEL , NUPARAM, NUVAR ,NPT0 , ILAYER ,
30 2 TIME , TIMESTEP, UPARAM, RHO0 ,
31 3 AREA , EINT , THKLYL,
32 4 EPSPXX , EPSPYY , EPSPXY, EPSPYZ, EPSPZX,
33 5 DEPSXX , DEPSYY , DEPSXY, DEPSYZ, DEPSZX,
34 6 EPSXX , EPSYY , EPSXY , EPSYZ , EPSZX ,
35 7 SIGOXX , SIGOYY , SIGOXY, SIGOYZ, SIGOZX,
36 8 SIGNXX , SIGNYY , SIGNXY, SIGNYZ, SIGNZX,
37 9 SIGVXX , SIGVYY , SIGVXY, SIGVYZ, SIGVZX,
38 A SOUNDSP, VISCMAX, THKN , UVAR , NGL ,
43#include "implicit_f.inc"
52 INTEGER NEL,NUPARAM,NUVAR,ISMSTR,NPT0,ILAYER
56 . (*),THKN(NEL),THKLYL(),
57 . RHO0(NEL),AREA(NEL),EINT(NEL,2),GS(NEL),
58 . EPSPXX(NEL),EPSPYY(NEL),(NEL),EPSPYZ(NEL),EPSPZX(NEL),
59 . DEPSXX(NEL),DEPSYY(NEL)
61 . SIGOXX(NEL),SIGOYY(NEL),SIGOXY(NEL),SIGOYZ(NEL),SIGOZX(NEL)
66 . signxx(nel),signyy(nel),signxy(nel),signyz(nel),signzx(nel),
67 . sigvxx(nel),sigvyy(nel),sigvxy(nel),sigvyz(nel),sigvzx(nel),
68 . soundsp(nel),viscmax(nel)
72 my_real :: uvar(nel,nuvar), off(nel)
76 INTEGER :: ,J,K,ITER,NORDER
77 my_real :: NU,RBULK,TENSCUT,GMAX,RVT,,SUMDWDL,PARTP,EMAX,A11
79 . MU(5),AL(5),EVMA1(NEL,5),EVMA2(NEL,5),EVMA3(NEL,5),EVM(NEL,3),
80 . EIGV(NEL,3,2),TRAV(NEL),ROOTV(NEL),EVV(NEL,3),EV(NEL,3),
81 . RHO(NEL),DEZZ(NEL),DWDL(3),DDWDDL(3),RV(NEL),T(NEL,3),
82 . EPSZZ(NEL),SV(NEL,3),
83 . h30(100),h31(nel,100),h1(100),h10(100),
84 . h2(100),h20(100),h12(100),h120(100),
85 . cd1(nel),cd2(nel),cd12(nel),cd10(nel),
86 . cd20(nel),cd120(nel), dc3ev3(nel),c31(nel),c30(nel),kt3(nel)
101 norder = nint(uparam(18))
105 gmax = gmax + mu(i)*al(i)
108 IF (time == zero .AND. isigi == 0)
THEN
118 trav(i) = epsxx(i)+epsyy(i)
119 rootv(i) = sqrt((epsxx(i)-epsyy(i))*(epsxx(i)-epsyy(i))
120 . + epsxy(i)*epsxy(i))
121 evv(i,1) = half*(trav(i)+rootv(i))
122 evv(i,2) = half*(trav(i)-rootv(i))
127 IF(abs(evv(i,2)-evv(i,1))<em10)
THEN
135 eigv(i,1,1) = (epsxx(i)-evv(i,2)) /rootv(i)
136 eigv(i,2,1) = (epsyy(i)-evv(i,2)) /rootv(i)
137 eigv(i,1,2) = (evv(i,1)-epsxx(i)) /rootv(i)
138 eigv(i,2,2) = (evv(i,1)-epsyy(i)) /rootv(i)
139 eigv(i,3,1) = (half*epsxy(i)) /rootv(i)
140 eigv(i,3,2) =-(half*epsxy(i)) /rootv(i)
144 IF (ismstr == 1 .OR. ismstr == 3 .OR. ismstr == 11)
THEN
146 ev(i,1)=evv(i,1)+ one
147 ev(i,2)=evv(i,2)+ one
150 ELSEIF(ismstr == 10)
THEN
152 ev(i,1)=sqrt(evv(i,1)+ one)
153 ev(i,2)=sqrt(evv(i,2)+ one)
154 ev(i,3)=one/ev(i,1)/ev(i,2)
158 ev(i,1)=exp(evv(i,1))
159 ev(i,2)=exp(evv(i,2))
169 rv(i) = ev(i,1)*ev(i,2)*ev(i,3)
173 rvt = exp((-third)*log(rv(i)))
177 evm(i,1) = ev(i,1)*rvt
178 evm(i,2) = ev(i,2)*rvt
179 evm(i,3) = ev(i,3)*rvt
186 IF(evm(i,1)>zero)
THEN
188 evma1(i,j) = mu(j) * exp(al(j)*log(evm(i,1)))
195 IF(evm(i,2)>zero)
THEN
197 evma2(i,j) = mu(j) * exp(al(j)*log(evm(i,2)))
204 IF(evm(i,3)>zero)
THEN
206 evma3(i,j) = mu(j) * exp(al(j)*log(evm(i,3)))
217 dwdl(1) = evma1(i,1)+evma1(i,2)+evma1(i,3)+evma1(i,4)+evma1(i,5)
218 dwdl(2) = evma2(i,1)+evma2(i,2)+evma2(i,3)+evma2(i,4)+evma2(i,5)
219 dwdl(3) = evma3(i,1)+evma3(i,2)+evma3(i,3)+evma3(i,
220 sumdwdl = (dwdl(1)+dwdl(2)+dwdl(3))* third
221 partp = rbulk*(rv(i)- one)
224 t(i,1) = (dwdl(1) - sumdwdl) / rv(i) + partp
225 t(i,2) = (dwdl(2) - sumdwdl) / rv(i) + partp
226 t(i,3) = (dwdl(3) - sumdwdl) / rv(i) + partp
229 kt3(i) = -third*(evma1(i,1)+evma1(i,2)+evma1(i,3)+evma1(i,4)+evma1(i,5))
230 . -third*(evma2(i,1)+evma2(i,2)+evma2(i,3)+evma2
231 . +two_third*(evma3(i,1)+evma3(i,2)+evma3(i,3)+evma3(i,4)+evma3(i,5))
232 kt3(i) =-ev(i,1)*ev(i,2)*kt3(i)/(rv(i)**2) + rbulk*ev(i,1)*ev(i,2)
234 . +(one_over_9*(al(1)*evma1(i,1)+al(2)*evma1(i,2)+al(3)*evma1(i,3)
235 . + al(4)*evma1(i,4)+al(5)*evma1(i,5)
236 . + al(1)*evma2(i,1)+al(2)*evma2(i,2) + al(3)*evma2(i,3)
237 . + al(4)*evma2(i,4)+al(5)*evma2(i,5)
238 . + four*(al(1)*evma3(i,1) + al(2)*evma3(i,2)
240 . + al(4)*evma3(i,4)+al(5)*evma3(i,5))))/ev(i,3)/rv(i)
242 ev(i,3) = ev(i,3) - t(i,3)/kt3(i)
243 rv(i) = ev(i,1)*ev(i,2)*ev(i,3)
257 IF (off(i) /= zero .AND.
258 . (t(i,1) > abs(tenscut) .OR. t(i,2) > abs(tenscut)))
THEN
274 IF (ismstr == 1 .OR. ismstr == 3 .OR. ismstr == 11)
THEN
276 epszz(i) =ev(i,3) - one
279 ELSEIF (ismstr == 10)
THEN
281 epszz(i) =ev(i,3) - one
286 epszz(i) =log(ev(i,3))
291 rv(i) = ev(i,1)*ev(i,2)*ev(i,3)
292 dezz(i) =-nu/(one-nu)*(depsxx(i)+depsyy(i))
293 signxx(i) =eigv(i,1,1)*t(i,1)+eigv(i,1,2)*t(i,2) + sv(i,1)/rv(i)
294 signyy(i) =eigv(i,2,1)*t(i,1)+eigv(i,2,2)*t(i,2) + sv(i,2)/rv(i)
295 signxy(i) =eigv(i,3,1)*t(i,1)+eigv(i,3,2)*t(i,2) + sv(i,3)/rv(i)
297 signyz(i) = sigoyz(i)+gs(i)*depsyz(i)
298 signzx(i) = sigozx(i)+gs(i)*depszx(i)
299 rho(i) = rho0(i)/rv(i)
300 thkn(i) = thkn(i) + dezz(i)*thklyl(i)*off(i)
303 emax = gmax*(one + nu)
304 a11 = emax/(one - nu**2)
305 soundsp(i)= sqrt(a11/rho0(i))
subroutine sigeps69c(nel, nuparam, nuvar, npt0, ilayer, time, timestep, uparam, rho0, area, eint, thklyl, epspxx, epspyy, epspxy, epspyz, epspzx, depsxx, depsyy, depsxy, depsyz, depszx, epsxx, epsyy, epsxy, epsyz, epszx, sigoxx, sigoyy, sigoxy, sigoyz, sigozx, signxx, signyy, signxy, signyz, signzx, sigvxx, sigvyy, sigvxy, sigvyz, sigvzx, soundsp, viscmax, thkn, uvar, ngl, off, ismstr, gs)