30 1 NEL , NUPARAM, NUVAR , NFUNC , IFUNC , NPF ,
31 2 TF , TIME , TIMESTEP, UPARAM, RHO0 , RHO ,
33 4 EPSPXX , EPSPYY , EPSPZZ , EPSPXY, EPSPYZ, EPSPZX,
34 5 DEPSXX , DEPSYY , DEPSZZ , DEPSXY, DEPSYZ, DEPSZX,
35 6 EPSXX , EPSYY , EPSZZ , EPSXY , EPSYZ , EPSZX ,
36 7 SIGOXX , SIGOYY , SIGOZZ , SIGOXY, SIGOYZ, SIGOZX,
37 8 SIGNXX , SIGNYY , SIGNZZ , SIGNXY, SIGNYZ, SIGNZX,
38 9 SIGVXX , SIGVYY , SIGVZZ , SIGVXY, SIGVYZ, SIGVZX,
39 A SOUNDSP, VISCMAX, UVAR , OFF )
43#include "implicit_f.inc"
47 INTEGER NEL, NUPARAM, NUVAR
49 . TIME , TIMESTEP , UPARAM(NUPARAM),
50 . RHO (NEL), RHO0 (NEL), VOLUME(NEL), EINT(NEL),
51 . EPSPXX(NEL), EPSPYY(NEL), EPSPZZ(NEL),
52 . EPSPXY(NEL), EPSPYZ(NEL), EPSPZX(NEL),
53 . DEPSXX(NEL), DEPSYY(NEL), DEPSZZ(NEL),
54 . DEPSXY(NEL), DEPSYZ(NEL), DEPSZX(NEL),
55 . EPSXX (NEL), EPSYY (NEL)
57 . sigoxx(nel), sigoyy(nel), sigozz(nel),
58 . sigoxy(nel), sigoyz(nel), sigozx(nel)
63 . signxx(nel), signyy(nel), signzz(nel),
64 . signxy(nel), signyz(nel), signzx(nel),
65 . sigvxx(nel), sigvyy(nel), sigvzz(nel),
66 . sigvxy(nel), sigvyz(nel), sigvzx(nel),
67 . soundsp(nel), viscmax(nel)
71 my_real uvar(nel,nuvar), off(nel)
75 INTEGER NPF(*), NFUNC, IFUNC(NFUNC)
81 my_real :: bulk,bulk3,g_ins,g_inf,ge,ge2,gv,gv2,c1,c2,beta,p0,phi,
83 my_real ,
DIMENSION(NEL) :: gama,dpdgama,dp,
84 . depsm,epspm,em,depsvxx,depsvyy,depsvzz,depsvxy,depsvyz,depsvzx,
85 . dexx,deyy,dezz,dexy,deyz,dezx,depsdxx,depsdyy,depsdzz,
86 . depsdxy,depsdyz,depsdzx,ddexx,ddeyy,ddezz,ddexy,ddeyz,ddezx
100 c1 = one - exp(-beta*timestep)
105 gama(i) = rho0(i)/rho(i) - one + gama0
106 dpdgama(i)=-p0*(one-phi) / (one+gama(i)-phi)
107 depsm(i) = third *(depsxx(i)+depsyy(i)+depszz(i))
108 epspm(i) = third *(epspxx(i)+epspyy(i)+epspzz(i))
109 em(i) = third *(epsxx(i) +epsyy(i) +epszz(i) )
115 dexx(i) = epsxx(i)-em(i)
116 deyy(i) = epsyy(i)-em(i)
117 dezz(i) = epszz(i)-em(i)
122 ddexx(i) = depsxx(i)-depsm(i)
123 ddeyy(i) = depsyy(i)-depsm(i)
124 ddezz(i) = depszz(i)-depsm(i)
129 depsdxx(i) = epspxx(i)-epspm(i)
130 depsdyy(i) = epspyy(i)-epspm(i)
131 depsdzz(i) = epspzz(i)-epspm(i)
132 depsdxy(i) = epspxy(i)
133 depsdyz(i) = epspyz(i)
134 depsdzx(i) = epspzx(i)
139 depsvyy(i) = c1*(deyy(i)-uvar(i,2)) + c2*depsdyy(i)
140 depsvzz(i) = c1*(dezz(i)-uvar(i,3)) + c2*depsdzz(i)
141 depsvxy(i) = c1*(dexy(i)-uvar(i,4)) + c2*depsdxy(i)
142 depsvyz(i) = c1*(deyz(i)-uvar(i,5)) + c2*depsdyz(i)
143 depsvzx(i) = c1*(dezx(i)-uvar(i,6)) + c2*depsdzx(i)
146 dp(1:nel) = (bulk3 - dpdgama(1:nel)) * depsm(1:nel)
149 signxx(i) = sigoxx(i) + ge2*ddexx(i) - gv2*depsvxx(i) + dp(i)
150 signyy(i) = sigoyy(i) + ge2*ddeyy(i) - gv2*depsvyy(i) + dp(i)
151 signzz(i) = sigozz(i) + ge2*ddezz(i) - gv2*depsvzz(i)
152 signxy(i) = sigoxy(i) + ge *ddexy(i) - gv *depsvxy(i)
153 signyz(i) = sigoyz(i) + ge *ddeyz(i) - gv *depsvyz(i)
154 signzx(i) = sigozx(i) + ge *ddezx(i) - gv *depsvzx(i)
157 dp_drho = four_over_3*g_ins + bulk
158 soundsp(1:nel) = sqrt(dp_drho / rho0(1:nel))
161 uvar(i,1) = uvar(i,1) + depsvxx(i) + ddexx(i)
163 uvar(i,3) = uvar(i,3) + depsvzz(i) + ddezz(i)
164 uvar(i,4) = uvar(i,4) + depsvxy(i) + ddexy(i)
165 uvar(i,5) = uvar(i,5) + depsvyz(i) + ddeyz(i)
166 uvar(i,6) = uvar(i,6) + depsvzx(i) + ddezx(i)
subroutine sigeps34(nel, nuparam, nuvar, nfunc, ifunc, npf, tf, time, timestep, uparam, rho0, rho, volume, eint, epspxx, epspyy, epspzz, epspxy, epspyz, epspzx, depsxx, depsyy, depszz, depsxy, depsyz, depszx, epsxx, epsyy, epszz, epsxy, epsyz, epszx, sigoxx, sigoyy, sigozz, sigoxy, sigoyz, sigozx, signxx, signyy, signzz, signxy, signyz, signzx, sigvxx, sigvyy, sigvzz, sigvxy, sigvyz, sigvzx, soundsp, viscmax, uvar, off)