31 1 NEL ,NUPARAM,NUVAR ,NFUNC ,IFUNC ,
32 2 NPF , TF ,TIME ,TIMESTEP,UPARAM ,
34 4 EPSPXX ,EPSPYY ,EPSPXY ,EPSPYZ ,EPSPZX ,
35 5 DEPSXX ,DEPSYY ,DEPSXY ,DEPSYZ ,DEPSZX ,
36 6 EPSXX ,EPSYY ,EPSXY ,EPSYZ ,EPSZX ,
37 7 SIGOXX ,SIGOYY ,SIGOXY ,SIGOYZ ,SIGOZX ,
38 8 SIGNXX ,SIGNYY ,SIGNXY ,SIGNYZ ,SIGNZX ,
39 A SOUNDSP,THK ,UVAR ,OFF )
43#include "implicit_f.inc"
47 INTEGER :: NEL,NUPARAM, NUVAR
48 my_real :: TIME,TIMESTEP
49 my_real :: UPARAM(NUPARAM)
50 my_real ,
DIMENSION(NEL) ::
52 . EPSPXX, EPSPYY,EPSPXY, EPSPYZ, EPSPZX,
53 . DEPSXX, DEPSYY, DEPSXY, DEPSYZ, DEPSZX,
54 . EPSXX , EPSYY , EPSXY , EPSYZ , EPSZX,
55 . SIGOXX, SIGOYY,SIGOXY, SIGOYZ, SIGOZX,
60 my_real ,
DIMENSION(NEL) ,
INTENT(OUT) :: soundsp,
61 . signxx,signyy,signxy,signyz,signzx
65 my_real :: uvar(nel,nuvar), off(nel)
69 INTEGER NPF(*), NFUNC, IFUNC(NFUNC)
80 my_real :: BULK,BULK3,G_INS,G_INF,GE,GE2,GV,GV2,C1,C2,BETA,
81 . aa, bb, dav, p, trace, h0(6),h(6),
alpha,dp_drho,cc2
82 my_real ,
DIMENSION(NEL) ::
83 . depsm,depszz, signzz, sigozz, depsdxx,depsdyy,depsdzz, dp,
84 . dexx,deyy,dezz,dexy,deyz,dezx,ddexx,ddeyy,ddezz,ddexy,ddeyz,
85 . ddezx,depsdxy,depsdyz,depsdzx,epspm,
86 . depsvxx,depsvyy,depsvzz,depsvxy,depsvyz,depsvzx,em,epsm ,epszz,
98 c1 = one - exp(-beta*timestep)
101 cc2 = gv2*(c1 + c2/
max(em20,timestep))
109 aa = gv2*c1*(dezz(i) - h(3)) + third*(ge2 - cc2 - bulk3)*(depsxx(i) + depsyy(i))
110 bb = two_third*ge2 + bulk - two_third*cc2
112 ddezz(i) = two_third*depszz
113 dezz(i) = uvar(i,7) + ddezz(i)
114 epszz(i) = three_half*dezz(i) + half*(epsxx(i)+ epsyy(i))
115 epspzz(i) = depszz(i)/
max(em20,timestep)
117 depsm(i) = third *(depsxx(i)+depsyy(i)+depszz(i))
119 em(i) = third *(epsxx(i) +epsyy(i) +epszz(i) )
122 thk(i) = thk(i) + depszz(i)*thkly(i)*off(i)
128 dexx(i) = epsxx(i)-em(i)
129 deyy(i) = epsyy(i)-em(i)
130 dezz(i) = epszz(i)-em(i)
135 ddexx(i) = depsxx(i)-depsm(i)
136 ddeyy(i) = depsyy(i)-depsm(i)
137 ddezz(i) = depszz(i)-depsm(i)
142 depsdxx(i) = epspxx(i)-epspm(i)
143 depsdyy(i) = epspyy(i)-epspm(i)
144 depsdzz(i) = epspzz(i)-epspm(i)
145 depsdxy(i) = epspxy(i)
146 depsdyz(i) = epspyz(i)
147 depsdzx(i) = epspzx(i)
151 depsvxx(i) = c1*(dexx(i)-uvar(i,1)) + c2*depsdxx(i)
152 depsvyy(i) = c1*(deyy(i)-uvar(i,2)) + c2*depsdyy(i)
153 depsvzz(i) = c1*(dezz(i)-uvar(i,3)) + c2*depsdzz(i)
154 depsvxy(i) = c1*(dexy(i)-uvar(i,4)) + c2*depsdxy(i)
155 depsvyz(i) = c1*(deyz(i)-uvar(i,5)) + c2*depsdyz(i)
156 depsvzx(i) = c1*(dezx(i)-uvar(i,6)) + c2*depsdzx(i)
159 dp(1:nel) = bulk3 * depsm(1:nel)
162 signxx(i) = sigoxx(i) + ge2*ddexx(i) - gv2*depsvxx(i) + dp(i)
163 signyy(i) = sigoyy(i) + ge2*ddeyy(i) - gv2*depsvyy(i) + dp(i)
165 signxy(i) = sigoxy(i) + ge *ddexy(i) - gv *depsvxy
166 signyz(i) = sigoyz(i) + ge *ddeyz(i) - gv *depsvyz(i)
167 signzx(i) = sigozx(i) + ge *ddezx(i) - gv *depsvzx(i)
170 dp_drho = four_over_3*g_ins + bulk
171 soundsp(1:nel) = sqrt(dp_drho / rho0(1:nel))
174 uvar(i,1) = uvar(i,1) + depsvxx(i) + ddexx(i)
175 uvar(i,2) = uvar(i,2) + depsvyy(i) + ddeyy(i)
176 uvar(i,3) = uvar(i,3) + depsvzz(i) + ddezz(i)
177 uvar(i,4) = uvar(i,4) + depsvxy(i) + ddexy(i)
178 uvar(i,5) = uvar(i,5) + depsvyz(i) + ddeyz(i)
179 uvar(i,6) = uvar(i,6) + depsvzx(i) + ddezx(i)
subroutine sigeps34c(nel, nuparam, nuvar, nfunc, ifunc, npf, tf, time, timestep, uparam, rho0, thkly, gs, 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, soundsp, thk, uvar, off)