33 1 NEL , NUPARAM, NUVAR , NFUNC , IFUNC , NPF ,
34 2 TF , TIME , TIMESTEP, UPARAM , RHO0 , RHO ,
36 4 EPSPXX , EPSPYY , EPSPZZ , EPSPXY , EPSPYZ , EPSPZX ,
37 5 DEPSXX , DEPSYY , DEPSZZ , DEPSXY , DEPSYZ , DEPSZX ,
38 6 EPSXX , EPSYY , EPSZZ , EPSXY , EPSYZ , EPSZX ,
39 7 SIGOXX , SIGOYY , SIGOZZ , SIGOXY , SIGOYZ , SIGOZX ,
40 8 SIGNXX , SIGNYY , SIGNZZ , SIGNXY , SIGNYZ , SIGNZX ,
41 9 SIGVXX , SIGVYY , SIGVZZ , SIGVXY , SIGVYZ , SIGVZX ,
42 A SOUNDSP, VISCMAX, UVAR , OFF , WXXDT , WYYDT ,
43 B WZZDT , ISMSTR , MFXX , MFXY , MFXZ , MFYX ,
44 C MFYY , MFYZ , MFZX , MFZY , MFZZ , ET ,
45 D IHET , NUVARV , UVARV , OFFG , EPSTH3 , IEXPAN )
49#include "implicit_f.inc"
63 INTEGER :: NEL,NUPARAM,NUVAR,ISMSTR,IHET,NUVARV,IEXPAN
65 . TIME , TIMESTEP , UPARAM(NUPARAM),
66 . RHO (NEL), RHO0 (NEL), VOLUME(), EINT(NEL),
67 . EPSPXX(NEL), EPSPYY(NEL), (NEL),
68 . EPSPXY(NEL), EPSPYZ(NEL), EPSPZX(NEL),
69 . DEPSXX(NEL), DEPSYY(NEL), DEPSZZ(NEL),
70 . DEPSXY(NEL), DEPSYZ(NEL), DEPSZX(NEL),
71 . EPSXX (NEL), EPSYY (NEL), EPSZZ (NEL),
72 . EPSXY (NEL), EPSYZ (NEL), EPSZX (NEL),
73 . SIGOXX(NEL), SIGOYY(NEL), SIGOZZ(NEL),
74 . SIGOXY(NEL), SIGOYZ(NEL), SIGOZX(NEL),
75 . MFXX(NEL) , MFXY(NEL), MFXZ(NEL),
76 . mfyx(nel) , mfyy(nel), mfyz(nel),
77 . mfzx(nel) , mfzy(nel), mfzz(nel),
78 . wzzdt(nel),wyydt(nel),wxxdt(nel),offg(nel),
84 . signxx(nel), signyy(nel), signzz(nel),
85 . signxy(nel), signyz(nel), signzx(nel),
86 . sigvxx(nel), sigvyy(nel), sigvzz(nel),
87 . sigvxy(nel), sigvyz(nel), sigvzx(nel),
88 . soundsp(nel), viscmax(nel), et(nel)
93 . uvar(nel,nuvar), off(nel), uvarv(*)
98 INTEGER (*), NFUNC, IFUNC(NFUNC)
99 my_real FINTER,FINTTE,TF(*),FINT2V
100 EXTERNAL FINTER,FINTTE
104 INTEGER I,J,K,KFP,NORDRE,II,NPRONY
106 . tenscut,gmax,fscale,rvt,sumdwdl,efac,dwdrv,rbulk,dpdmu,amax,eti(mvsiz),eth
108 . evv(mvsiz,3),ev(mvsiz,3),evm1(mvsiz),evm2(mvsiz),evm3(mvsiz),p(mvsiz),
109 . mu(5),al(5),dwdl(3),t(mvsiz,3),rv(mvsiz),av(mvsiz,6),dirprv(mvsiz,3,3)
111 . h0(100),h(100),c0(mvsiz,6),c1(mvsiz,6),aa,sv(mvsiz,6),
112 . cc,fac,invdt,fft(3),p_fac(nel),nu_1,amin,lam_al(3),gtmax(nel)
113 my_real,
DIMENSION(NEL,3) :: cii
114 DOUBLE PRECISION AMAX1
130 nordre = nint(uparam(18))
136 gmax = gmax + mu(i)*al(i)
143 av(i,4)=epsxy(i) * half
144 av(i,5)=epsyz(i) * half
145 av(i,6)=epszx(i) * half
155 IF (ismstr == 1 .OR. ismstr == 3 )
THEN
157 ev(i,1)=evv(i,1)+ one
158 ev(i,2)=evv(i,2)+ one
159 ev(i,3)=evv(i,3)+ one
161 ELSEIF(ismstr==10.OR.ismstr==12)
THEN
163 IF(offg(i)<=one)
THEN
164 ev(i,1)=sqrt(evv(i,1)+ one)
165 ev(i,2)=sqrt(evv(i,2)+ one)
166 ev(i,3)=sqrt(evv(i,3)+ one)
168 ev(i,1)=evv(i,1)+ one
169 ev(i,2)=evv(i,2)+ one
170 ev(i,3)=evv(i,3)+ one
175 ev(i,1)=exp(evv(i,1))
176 ev(i,2)=exp(evv(i,2))
177 ev(i,3)=exp(evv(i,3))
181 IF (impl_s > 0 .OR. ihet > 1)
THEN
189 IF((al(k)-one)==zero)
THEN
190 eti(i) = eti(i) + mu(k)*al(k)
192 eti(i) = eti(i) + mu(k)*al(k)*exp((al(k)-one)*log(amax))
197 et(1:nel) =
max(eti(1:nel),et(1:nel))
200 et(i) =
max(one,et(i)/gmax)
205 IF (rbulk > 24*gmax)
THEN
206 nu_1 = fourty*(half-(3*rbulk-gmax)/(6*rbulk+gmax))
208 amin =
min(ev(i,1),ev(i,2),ev(i,3))
209 IF (amin<zep2) p_fac(i) =
max(one,nu_1/
max(em20,amin))
214 rv(i) = ev(i,1)*ev(i,2)*ev(i,3)
217 IF(iexpan > 0.AND.(ismstr==10.OR.ismstr==11.OR.ismstr==12))
THEN
219 rv(i)= rv(i)-epsth3(i)
227 rvt = exp((-third)*log(rv(i)))
231 evm1(i) = ev(i,1)*rvt
232 evm2(i) = ev(i,2)*rvt
233 evm3(i) = ev(i,3)*rvt
236 p(i) = rbulk*fscale*finter(kfp,rv
246 cii(1:nel,1:3) = zero
248 IF (mu(ii)*al(ii) /= zero)
THEN
250 lam_al(1) = exp(al(ii)*log(evm1(i)))
251 lam_al(2) = exp(al(ii)*log(evm2(i)))
252 lam_al(3) = exp(al(ii)*log(evm3(i)))
253 amax = third*(lam_al(1)+lam_al(2)+lam_al(3))
254 cii(i,1:3) = cii(i,1:3) + mu(ii)*al(ii)*(lam_al(1:3)+amax)
259 amax1 = 0.81*half/gmax
261 amax = amax1*
max(cii(i,1),cii(i,2),cii(i,3))
262 eti(i) =
max(one,amax)
263 gtmax(i) = gmax*eti(i)
271 IF(evm1(i)>zero)
THEN
273 dwdl(1) = dwdl(1) + mu(k)*exp(al(k)*log(evm1(i)))
275 dwdl(1) = dwdl(1) + mu(k)
278 IF(evm2(i)>zero)
THEN
280 dwdl(2) = dwdl(2) + mu(k)*exp(al(k)*log(evm2(i)))
282 dwdl(2) = dwdl(2) + mu(k)
285 IF(evm3(i)>zero)
THEN
287 dwdl(3) = dwdl(3) + mu(k)*exp(al(k)*log(evm3(i)))
289 dwdl(3) = dwdl(3) + mu(k)
293 dwdrv = p(i)*(rv(i)- one)
294 sumdwdl =(dwdl(1)+dwdl(2)+dwdl(3))* third
297 t(i,1) = (dwdl(1)-(sumdwdl))/rv(i) + dwdrv
298 t(i,2) = (dwdl(2)-(sumdwdl))/rv(i) + dwdrv
299 t(i,3) = (dwdl(3)-(sumdwdl))/rv(i) + dwdrv
305 IF (off(i) /= zero .AND.
306 . (t(i,1) > abs(tenscut) .OR. t(i,2) > abs(tenscut)))
THEN
315 signxx(i) = dirprv(i,1,1)*dirprv(i,1,1)*t(i,1)
316 . + dirprv(i,1,2)*dirprv(i,1,2)*t(i,2)
317 . + dirprv(i,1,3)*dirprv(i,1,3)*t(i,3)
318 signyy(i) = dirprv(i,2,2)*dirprv(i,2,2)*t(i,2)
319 . + dirprv(i,2,3)*dirprv(i,2,3)*t(i,3)
320 . + dirprv(i,2,1)*dirprv(i,2,1)*t(i,1)
321 signzz(i) = dirprv(i,3,3)*dirprv(i,3,3)*t(i,3)
322 . + dirprv(i,3,1)*dirprv(i,3,1)*t(i,1)
323 . + dirprv(i,3,2)*dirprv(i,3,2)*t(i,2)
324 signxy(i) = dirprv(i,1,1)*dirprv(i,2,1)*t(i,1)
325 . + dirprv(i,1,2)*dirprv(i,2,2)*t(i,2)
326 . + dirprv(i,1,3)*dirprv(i,2,3)*t(i,3)
327 signyz(i) = dirprv(i,2,2)*dirprv(i,3,2)*t(i,2)
328 . + dirprv(i,2,3)*dirprv(i,3,3)*t(i,3)
329 . + dirprv(i,2,1)*dirprv(i,3,1)*t(i,1)
330 signzx(i) = dirprv(i,3,3)*dirprv(i,1,3)*t(i,3)
331 . + dirprv(i,3,1)*dirprv(i,1,1)*t(i,1)
332 . + dirprv(i,3,2)*dirprv(i,1,2)*t(i,2)
337 soundsp(i) = sqrt((two_third*gtmax(i)+p(i))/rho(i))
subroutine mulaw(lft, llt, nft, mtn, jcvt, pm, off, sig, eint, rho, vol, strain, gama, uvar, bufmat, tf, npf, imat, ngl, nuvar, nvartmp, vartmp, geo, pid, epsd, wxx, wyy, wzz, jsph, ssp, voln, vis, d1, d2, d3, d4, d5, d6, dvol, sold1, sold2, sold3, sold4, sold5, sold6, rx, ry, rz, sx, sy, sz, tx, ty, tz, ismstr, mfxx, mfxy, mfxz, mfyx, mfyy, mfyz, mfzx, mfzy, mfzz, ipm, isorth, nel, matparam)
subroutine sigeps33(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)
subroutine sigeps69(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, wxxdt, wyydt, wzzdt, ismstr, mfxx, mfxy, mfxz, mfyx, mfyy, mfyz, mfzx, mfzy, mfzz, et, ihet, nuvarv, uvarv, offg, epsth3, iexpan)