36 3 D6, NEL, RHO, BPRELD,
37 4 EINT, QOLD, VOL0, STIFN,
38 5 DT2T, NELTST, ITYPTST, OFFG,
39 6 GEO, PID, MUMAX, NGL,
40 7 SSP, DVOL, AIRE, VNEW,
41 8 VD2, DELTAX, VIS, PNEW,
42 9 PSH, QNEW, SSP_EQ, SOLD1,
43 A SOLD2, SOLD3, SOLD4, SOLD5,
44 B SOLD6, MSSA, DMELS, CONDE,
45 C AMU, VOL_AVG, DTEL, G_DT,
46 D OFF, IPM, RHOREF, RHOSP,
47 E VOL0DP, ISMSTR, JSPH, JTUR,
48 F ITY, JTHE, JSMS, NPG ,
57#include "implicit_f.inc"
71 INTEGER,
INTENT(IN) :: JSMS
72 INTEGER,
INTENT(IN) :: JTUR
73 INTEGER,
INTENT(IN) :: ITY
74 INTEGER,
INTENT(IN) :: JTHE
75 INTEGER,
INTENT(IN) ::
76 INTEGER,
INTENT(IN) :: JSPH,NPG
80 . PM(NPROPM,*), SIG(NEL,6), RHO(MVSIZ)
83INTEGER NELTST,ITYPTST,PID(*),G_DT
84 INTEGER MAT(*),NGL(*),IPM(NPROPMI,*)
92 . vnew(*), vd2(*), deltax(*), ssp(*), aire(*), vis(*),
93 . psh(*), pnew(*),qnew(*) ,ssp_eq(*), dvol(*),
94 . sold1(*), sold2(*), sold3(*), sold4(*), sold5(*), sold6(*),
95 . mssa(*), dmels(*),conde(*),amu(*),vol_avg(*),
dtel(*),
97 DOUBLE PRECISION VOL0DP(*)
98 type (glob_therm_) ,
intent(inout) :: glob_therm
104 . reduc ,reduc1 , t1, t2 , ee, nu, ggt, treps, p, tp
106 . c1(mvsiz), lmbd(mvsiz), gg(mvsiz),
107 . rho0(mvsiz), rho0_1,c1_1
111 . e1, e2, e3, e4, e5, e6, einc,
112 . bid1, bid2, bid3, dta, ym, dpdmp
118 t1 = bpreld(i,1)+zep4*(bpreld(i,2)-bpreld(i,1))
119 t2 = bpreld(i,1)+zep7*(bpreld(i,2)-bpreld(i,1))
123 reduc =
min(reduc1*(one-tp/(t2-t1))+tp/(t2-t1), one)
129 ee = pm(20, mx)*reduc
130 gg(i) = pm(22, mx)*reduc
132 lmbd(i) = dt1*ee*nu/((one+nu)*(one-two*nu))
137 ssp(i)=sqrt((onep333*pm(22, mx)+c1_1)/rho0(i))
142 1 pm, off, rho, bid1,
143 2 bid2, ssp, bid3, stifn,
144 3 dt2t, neltst, ityptst, aire,
145 4 offg, geo, pid, vnew,
146 5 vd2, deltax, vis, d1,
148 7 mat, ngl, qnew, ssp_eq,
149 8 vol0, mssa, dmels, ibid,
150 9 facq0, conde,
dtel, g_dt,
151 a ipm, rhoref, rhosp, nel,
152 b ity, ismstr, jtur, jthe,
153 c jsms, npg , glob_therm)
156 1 pm, off, rho, bid1,
157 2 bid2, bid3, stifn, dt2t,
158 3 neltst, ityptst, offg, geo,
159 4 pid, mumax, ssp, vnew,
160 5 vd2, deltax, vis, d1,
162 7 mat, ngl, qnew, ssp_eq,
163 8 g_dt,
dtel, nel, ity,
170 pnew(i) = c1(i)*amu(i)
171 treps = d1(i)+d2(i)+d3(i)
173 sig(i,1) = sig(i,1)+two*ggt*d1(i)+lmbd(i)*treps
174 sig(i,2) = sig(i,2)+two*ggt*d2(i)+lmbd(i)*treps
175 sig(i,3) = sig(i,3)+two*ggt*d3(i)+lmbd(i)*treps
176 sig(i,4) = sig(i,4)+ggt*d4(i)
177 sig(i,5) = sig(i,5)+ggt*d5(i)
178 sig(i,6) = sig(i,6)+ggt*d6(i)
191 IF(tt >= (bpreld(i,2)-two*dt1))
THEN
192 p = -third*(sig(i,1)+sig(i,2)+sig(i,3))
193 rho(i)=rho0_1*(one+p/c1_1)
200 IF(tt >= (bpreld(i,2)-two*dt1))
THEN
201 p = -third*(sig(i,1)+sig(i,2)+sig(i,3))
202 rho(i)=rho0_1*(one+p/c1_1)
203 vol0dp(i) = vol0(i)*(one+p/c1_1)
208 ELSEIF(ismstr==2)
THEN
211 IF(offg(i) > one)
THEN
212 IF(tt >= (bpreld(i,2)-two*dt1))
THEN
213 p = -third*(sig(i,1)+sig(i,2)+sig(i,3))
214 rho(i)=rho0_1*(one+p/c1_1)
219 p = -third*(sig(i,1)+sig(i,2)+sig(i,3))
220 vol0(i) = vnew(i)*(one+p/c1_1)
221 rho(i) = rho0_1*vol0(i)/vnew(i)
228 IF(offg(i) > one)
THEN
229 IF(tt >= (bpreld(i,2)-two*dt1))
THEN
230 p = -third*(sig(i,1)+sig(i,2)+sig(i,3))
231 rho(i) = rho0_1*(one+p/c1_1)
232 vol0dp(i) = vol0(i)*(one+p/c1_1)
236 p = -third*(sig(i,1)+sig(i,2)+sig(i,3))
237 vol0(i) = vnew(i)*(one+p/c1_1)
240 rho(i) = rho0_1*vol0(i)/vnew(i)
244 ELSEIF(ismstr<=4)
THEN
247 p = -third*(sig(i,1)+sig(i,2)+sig(i,3))
248 vol0(i)=vnew(i)*(one+p/c1_1)
249 rho(i)= rho0_1*vol0(i)/vnew(i)
254 p = -third*(sig(i,1)+sig(i,2)+sig(i,3))
255 vol0(i) = vnew(i)*(one+p/c1_1)
256 rho(i) = rho0_1*vol0(i)/vnew(i)
264 e1=d1(i)*(sold1(i)+sig(i,1))
265 e2=d2(i)*(sold2(i)+sig(i,2))
266 e3=d3(i)*(sold3(i)+sig(i,3))
267 e4=d4(i)*(sold4(i)+sig(i,4))
268 e5=d5(i)*(sold5(i)+sig(i,5))
269 e6=d6(i)*(sold6(i)+sig(i,6))
271 eint(i)=(eint(i)+einc*off(i)) /
max(em15,vol0(i))
subroutine mdtsph(pm, off, rho, rk, t, re, sti, dt2t, neltst, ityptst, offg, geo, pid, mumax, ssp, vol, vd2, deltax, vis, d1, d2, d3, pnew, psh, mat, ngl, qvis, ssp_eq, g_dt, dtsph, nel, ity, jtur, jthe)
subroutine mqviscb(pm, off, rho, rk, temp, ssp, re, sti, dt2t, neltst, ityptst, aire, offg, geo, pid, vol, vd2, deltax, vis, d1, d2, d3, pnew, psh, mat, ngl, qvis, ssp_eq, vol0, mssa, dmels, igeo, facq0, conde, dtel, g_dt, ipm, rhoref, rhosp, nel, ity, ismstr, jtur, jthe, jsms, npg, glob_therm)
subroutine sboltlaw(pm, sig, mat, d1, d2, d3, d4, d5, d6, nel, rho, bpreld, eint, qold, vol0, stifn, dt2t, neltst, ityptst, offg, geo, pid, mumax, ngl, ssp, dvol, aire, vnew, vd2, deltax, vis, pnew, psh, qnew, ssp_eq, sold1, sold2, sold3, sold4, sold5, sold6, mssa, dmels, conde, amu, vol_avg, dtel, g_dt, off, ipm, rhoref, rhosp, vol0dp, ismstr, jsph, jtur, ity, jthe, jsms, npg, glob_therm)