34 2 RHO, QOLD, VOL, STIFN,
37 5 VOLGP, DELTAX, RHO0, DVOL,
39 7 NGL, GEO, PID, EPSEQ,
40 8 DT2T, NELTST, ITYPTST, IPLA,
41 9 OFFG, DPLA, EPSP, TSTAR,
42 A ETSE, MSSA, DMELS, BUFLY,
43 B SSP, ITY, NPT, JTUR,
52#include "implicit_f.inc"
66 INTEGER,
INTENT(IN) :: ITY
67 INTEGER,
INTENT(IN) :: NPT
68 INTEGER,
INTENT(IN) :: JTUR
69 INTEGER,
INTENT(IN) :: JTHE
70 INTEGER,
INTENT(IN) :: JSMS
71 INTEGER MAT(MVSIZ),NC(8,),NGL(MVSIZ),PID(MVSIZ)
72 INTEGER NEL,NELTST,ITYPTST,IPLA
75 . PM(NPROPM,*),OFF(MVSIZ),SIG(NEL,6),EINT(NEL),(MVSIZ),
76 . RHO(NEL),QOLD(NEL),VOL(NEL) ,STIFN(*),EPSEQ(*),
77 . D1(MVSIZ,*) , D2(MVSIZ,*) ,
78 . d3(mvsiz,*) , d4(mvsiz,*) ,
79 . d5(mvsiz,*) , d6(mvsiz,*) ,
80 . vnew(mvsiz), rho0(mvsiz), dvol(mvsiz), volgp(mvsiz,*),
82 . dpla(*),epsp(*),tstar(*),etse(*), mssa(*), dmels(*), ssp(mvsiz)
83 TYPE (BUF_LAY_),
TARGET :: BUFLY
87 INTEGER ,J,II,IPT,JPT,NPIF,MX,JJ(6)
91 . SOLD1(MVSIZ), SOLD2(MVSIZ), SOLD3(MVSIZ),
92 . SOLD4(MVSIZ), SOLD5(MVSIZ), SOLD6(),
93 . G(MVSIZ) , C1 , P(MVSIZ) ,
94 . G1(MVSIZ) , G2(MVSIZ), AJ2(MVSIZ), QH(MVSIZ),
95 . df(mvsiz) , amu(mvsiz) , einc(mvsiz), epd(mvsiz) ,
96 . dpdm(mvsiz), pnew(mvsiz) , ak(mvsiz),
97 . ca(mvsiz),cc, cn, epxo(mvsiz),
98 . epmx, thetl(mvsiz), epdr, t(mvsiz),
100 . epif,tm,mt, scale, dta, dav,rhocpi,
101 . ca_1,cb_1,sigmx_1,cmx_1,z3_1,z4_1,cp_1,t_1
103 .
DIMENSION(:),
POINTER :: sigp, epla
104 TYPE(l_bufel_) ,
POINTER :: LBUF
118 irty = nint(pm(50,mx))
128 IF (rhocpi > zero) rhocpi = one / rhocpi
133 g(i) =pm(22,mx)*off(i)
152 p(i) =-third*(sig(i,1)+sig(i,2)+sig(i,3))
169 dpdm(i)=onep333*g(i)+c1
170 ssp(i)=sqrt(abs(dpdm(i))/rho0(i))
177 2 vis, vis, stifn, eint,
179 4 dvol, vd2, deltax, vis,
180 5 qold, ssp, mat, nc,
181 6 ngl, geo, pid, dt2t,
182 7 neltst, ityptst, offg, mssa,
183 8 dmels, nel, ity, jtur,
196 lbuf => bufly%LBUF(1,1,ipt)
197 sigp => bufly%LBUF(1,1,ipt)%SIG(1:nel*6)
198 epla => bufly%LBUF(1,1,ipt)%PLA(1:nel)
202 dav=one-dvol(i)/vnew(i)
203 sold1(i)=sigp(jj(1)+i)*dav
204 sold2(i)=sigp(jj(2)+i)*dav
205 sold3(i)=sigp(jj(3)+i)*dav
206 sold4(i)=sigp(jj(4)+i)*dav
207 sold5(i)=sigp(jj(5)+i)*dav
208 sold6(i)=sigp(jj(6)+i)*dav
214 dav=-third*(d1(i,ipt)+d2(i,ipt)+d3(i,ipt))
215 sigp(jj(1)+i)=sigp(jj(1)+i)+p(i)+g2(i)*(d1(i,ipt)+dav)
216 sigp(jj(2)+i)=sigp(jj(2)+i)+p(i)+g2(i)*(d2(i,ipt)+dav)
217 sigp(jj(3)+i)=sigp(jj(3)+i)+p(i)+g2(i)*(d3(i,ipt)+dav)
218 sigp(jj(4)+i)=sigp(jj(4)+i) +g1(i)* d4(i,ipt)
219 sigp(jj(5)+i)=sigp(jj(5)+i) +g1(i)* d5(i,ipt)
220 sigp(jj(6)+i)=sigp(jj(6)+i) +g1(i)* d6(i,ipt)
224 aj2(i)=half*(sigp(jj(1)+i)**2+sigp(jj(2)+i)**2+sigp(jj(3)+i)**2)
225 . +sigp(jj(4)+i)**2+sigp(jj(5)+i)**2+sigp(jj(6)+i)**2
226 aj2(i)=sqrt(three*aj2(i))
235 .
max( abs(d1(i,ipt)), abs(d2(i,ipt)), abs(d3(i,ipt
236 . half*abs(d4(i,ipt)),half*abs(d5(i,ipt)),half*abs(d6(i,ipt)))
237 epd(i)=
max(epd(i),em15)
239 epd(i)= log(epd(i)/epdr)
244 tstar(i)=
min(one,
max(zero,(t(i)-t_1)/(tm-t_1)))
245 epd(i)=
max(zero,epd(i))
246 epd(i)= (one + cc * epd(i))*(one - tstar(i)**mt)
247 IF(icc==1)sigmx(i)= sigmx(i)*epd(i)
248 t(i) = t(i) + eint(i)/
max(em15,vol(i))*rhocpi
250 ELSEIF(npif==nel)
THEN
252 epd(i)= cc*exp((-z3_1+z4_1 * epd(i)
253 IF(icc==1)sigmx(i)= sigmx(i) + epd(i)
254 ca(i) = ca(i) + epd(i)
255 t(i) = t(i) + cp_1*eint(i)/
max(em15,vol(i))
269 ak(i)= ca(i)+cb_1*epla(i)
272 IF(epla(i)>zero)
THEN
273 ak(i)=ca(i)+cb_1*epla(i)**cn
275 qh(i)= (cb_1*cn*epla(i)**(cn-one))*epd(i)
277 qh(i)= (cb_1*cn/epla(i)**(one - cn))*epd(i)
284 ak(i)=
min(ak(i)*epd(i),sigmx(i))
285 IF(epla(i)>epmx)ak(i)=zero
291 scale=
min(one,ak(i)/
max(aj2(i),em15))
292 sigp(jj(1)+i)=scale*sigp(jj(1)+i)
293 sigp(jj(2)+i)=scale*sigp(jj(2)+i)
294 sigp(jj(3)+i)=scale*sigp(jj(3)+i)
295 sigp(jj(4)+i)=scale*sigp(jj(4)+i)
296 sigp(jj(5)+i)=scale*sigp(jj(5)+i)
297 sigp(jj(6)+i)=scale*sigp(jj(6)+i)
298 epla(i)=epla(i)+(one-scale)*aj2(i)
299 . /
max(three*g(i)+qh(i),em15)
300 dpla(ii) =(one-scale)*aj2(i)/
max(three*g(i)+qh(i),em15)
305 scale=
min(one,ak(i)/
max(aj2(i),em15))
306 sigp(jj(1)+i)=scale*sigp(jj(1)+i)
307 sigp(jj(2)+i)=scale*sigp(jj(2)+i)
308 sigp(jj(3)+i)=scale*sigp(jj(3)+i)
309 sigp(jj(4)+i)=scale*sigp(jj(4)+i)
310 sigp(jj(5)+i)=scale*sigp(jj(5)+i)
311 sigp(jj(6)+i)=scale*sigp(jj(6)+i)
312 epla(i)=epla(i)+(one -scale)*aj2(i)
313 . /
max(three*g(i),em15)
314 dpla(ii) = (one -scale)*aj2(i)/
max(three*g(i),em15)
319 scale=
min(one,ak(i)/
max(aj2(i),em15))
321 dpla(ii)=(one -scale)*aj2(i)/
max(three*g(i)+qh(i),em15)
323 ak(i)=ak(i)+dpla(ii)*qh(i)
324 scale=
min(one,ak(i)/
max(aj2(i),em15))
325 sigp(jj(1)+i)=scale*sigp(jj(1)+i)
326 sigp(jj(2)+i)=scale*sigp(jj(2)+i)
327 sigp(jj(3)+i)=scale*sigp(jj(3)+i)
328 sigp(jj(4)+i)=scale*sigp(jj(4)+i)
329 sigp(jj(5)+i)=scale*sigp(jj(5)+i)
330 sigp(jj(6)+i)=scale*sigp(jj(6)+i)
331 epla(i)=epla(i)+dpla(ii)
338 sigp(jj(1)+i)=(sigp(jj(1)+i)-pnew(i))*off(i)
339 sigp(jj(2)+i)=(sigp(jj(2)+i)-pnew(i))*off(i)
340 sigp(jj(3)+i)=(sigp(jj(3)+i)-pnew(i))*off(i)
341 sigp(jj(4)+i)= sigp(jj(4)+i) *off(i)
342 sigp(jj(5)+i)= sigp(jj(5)+i) *off(i)
343 sigp(jj(6)+i)= sigp(jj(6)+i) *off(i)
349 dav=volgp(i,ipt)*off(i)*dta
350 eint(i)=eint(i)+dav*(d1(i,ipt)*(sold1(i)+sigp(jj(1)+i))+
351 + d2(i,ipt)*(sold2(i)+sigp(jj(2)+i))+
352 + d3(i,ipt)*(sold3(i)+sigp(jj(3)+i))+
353 + d4(i,ipt)*(sold4(i)+sigp(jj(4)+i))+
354 + d5(i,ipt)*(sold5(i)+sigp(jj(5)+i))+
355 + d6(i,ipt)*(sold6(i)+sigp(jj(6)+i)))
361 sig(i,1)=sig(i,1)+one_over_8*sigp(jj(1)+i)
362 sig(i,2)=sig(i,2)+one_over_8*sigp(jj(2)+i)
363 sig(i,3)=sig(i,3)+one_over_8*sigp(jj(3)+i)
364 sig(i,4)=sig(i,4)+one_over_8*sigp(jj(4)+i)
365 sig(i,5)=sig(i,5)+one_over_8*sigp(jj(5)+i)
366 sig(i,6)=sig(i,6)+one_over_8*sigp(jj(6)+i)
367 epseq(i)=epseq(i)+one_over_8*epla(i)
373 eint(i)=eint(i)/
max(em15,vol(i))
379 IF(dpla(ii)>0) etse(i)= qh(i)/g2(i)
subroutine m2law8(pm, off, sig, eint, rho, qold, vol, stifn, nel, d1, d2, d3, d4, d5, d6, vnew, volgp, deltax, rho0, dvol, vd2, vis, mat, nc, ngl, geo, pid, epseq, dt2t, neltst, ityptst, ipla, offg, dpla, epsp, tstar, etse, mssa, dmels, bufly, ssp, ity, npt, jtur, jthe, jsms)