35 2 RHO, QOLD, VOL, STIFN,
38 5 VOLGP, DELTAX, RHO0, DVOL,
40 7 NGL, GEO, PID, EPSEQ,
41 8 DT2T, NELTST, ITYPTST, IPLA,
42 9 OFFG, DPLA, EPSP, TSTAR,
43 A ETSE, MSSA, DMELS, BUFLY,
44 B SSP, ITY, NPT, JTUR,
54#include "implicit_f.inc"
68 INTEGER,
INTENT(IN) :: ITY
69 INTEGER,
INTENT(IN) :: NPT
70 INTEGER,
INTENT(IN) :: JTUR
71 INTEGER,
INTENT(IN) :: JTHE
72 INTEGER,
INTENT(IN) :: JSMS
73 INTEGER MAT(MVSIZ),NC(8,MVSIZ),NGL(MVSIZ),PID(MVSIZ)
74 INTEGER NEL,NELTST,ITYPTST,IPLA
77 . PM(NPROPM,*),OFF(MVSIZ),SIG(NEL,6),EINT(NEL),DELTAX(MVSIZ),
78 . RHO(NEL),QOLD(NEL),VOL(NEL) ,STIFN(*),EPSEQ(*),
79 . D1(MVSIZ,*) , D2(MVSIZ,*) ,
80 . d3(mvsiz,*) , d4(mvsiz,*) ,
81 . d5(mvsiz,*) , d6(mvsiz,*) ,
82 . vnew(mvsiz), rho0(mvsiz), dvol(mvsiz), volgp(mvsiz,*),
83 . vd2(mvsiz) , vis(mvsiz),geo(npropg,*), dt2t, offg(*),
84 . dpla(*),epsp(*),tstar(*),etse(*), mssa(*), dmels
85 TYPE (BUF_LAY_),
TARGET :: BUFLY
86 type (matparam_struct_) ,
intent(in) :: mat_param
90 INTEGER I,J,II,IPT,JPT,MX,JJ(6)
94 . SOLD1(MVSIZ), SOLD2(MVSIZ), (MVSIZ),
95 . SOLD4(MVSIZ), SOLD5(MVSIZ), SOLD6(MVSIZ),
96 . G(MVSIZ) , C1 , P(MVSIZ) ,
97 . g1(mvsiz) , g2(mvsiz), aj2(mvsiz), qh(mvsiz),
98 . df(mvsiz) , amu(mvsiz) , einc(mvsiz), epd(mvsiz) ,
99 . dpdm(mvsiz), pnew(mvsiz) , ak(mvsiz),
100 . ca(mvsiz),cc, cn, epmx, epdr, t(mvsiz),
102 . tm,mt, scale, dta, dav,rhocpi,
103 . ca_1,cb_1,sigmx_1,z3_1,z4_1,t_1
105 .
DIMENSION(:),
POINTER :: sigp, epla
106 TYPE(l_bufel_) ,
POINTER ::
111 iform = mat_param%iparam(1)
112 icc = mat_param%iparam(2)
116 ca_1 = mat_param%uparam(1)
117 cb_1 = mat_param%uparam(2)
118 cn = mat_param%uparam(3)
119 epmx = mat_param%uparam(4)
120 sigmx_1=mat_param%uparam(5)
121 cc = mat_param%uparam(6)
122 epdr = mat_param%uparam(7)
124 z3_1 = mat_param%uparam(10)
125 z4_1 = mat_param%uparam(11)
126 rhocpi = mat_param%therm%rhocp
127 IF (rhocpi > zero) rhocpi = one / rhocpi
128 t_1 = mat_param%therm%tref
129 tm = mat_param%therm%tmelt
132 g(i) = mat_param%shear * off(i)
150 p(i) =-third*(sig(i,1)+sig(i,2)+sig(i,3))
167 dpdm(i)=onep333*g(i)+c1
168 ssp(i)=sqrt(abs(dpdm(i))/rho0(i))
175 2 vis, vis, stifn, eint,
177 4 dvol, vd2, deltax, vis,
178 5 qold, ssp, mat, nc,
179 6 ngl, geo, pid, dt2t,
180 7 neltst, ityptst, offg, mssa,
181 8 dmels, nel, ity, jtur,
194 lbuf => bufly%LBUF(1,1,ipt)
195 sigp => bufly%LBUF(1,1,ipt)%SIG(1:nel*6)
196 epla => bufly%LBUF(1,1,ipt)%PLA(1:nel)
200 dav=one-dvol(i)/vnew(i)
201 sold1(i)=sigp(jj(1)+i)*dav
202 sold2(i)=sigp(jj(2)+i)*dav
203 sold3(i)=sigp(jj(3)+i)*dav
204 sold4(i)=sigp(jj(4)+i)*dav
205 sold5(i)=sigp(jj(5)+i)*dav
206 sold6(i)=sigp(jj(6)+i)*dav
212 dav=-third*(d1(i,ipt)+d2(i,ipt)+d3(i,ipt))
213 sigp(jj(1)+i)=sigp(jj(1)+i)+p(i)+g2(i)*(d1(i,ipt)+dav)
214 sigp(jj(2)+i)=sigp(jj(2)+i)+p(i)+g2(i)*(d2(i,ipt)+dav)
215 sigp(jj(3)+i)=sigp(jj(3)+i)+p(i)+g2(i)*(d3(i,ipt)+dav)
216 sigp(jj(4)+i)=sigp(jj(4)+i) +g1(i)* d4(i,ipt)
217 sigp(jj(5)+i)=sigp(jj(5)+i) +g1(i)* d5(i,ipt)
218 sigp(jj(6)+i)=sigp(jj(6)+i) +g1(i)* d6(i,ipt)
222 aj2(i)=half*(sigp(jj(1)+i)**2+sigp(jj(2)+i)**2+sigp(jj(3)+i)**2)
223 . +sigp(jj(4)+i)**2+sigp(jj(5)+i)**2+sigp(jj(6)+i)**2
224 aj2(i)=sqrt(three*aj2(i))
233 .
max( abs(d1(i,ipt)), abs(d2(i,ipt)), abs(d3(i,ipt)),
234 . half*abs(d4(i,ipt)),half*abs(d5(i,ipt)),half*abs(d6(i,ipt)))
235 epd(i)=
max(epd(i),em15)
237 epd(i)= log(epd(i)/epdr)
241 epd(i)= cc*exp((-z3_1+z4_1 * epd(i))*t(i))
242 IF(icc==1)sigmx(i)= sigmx(i) + epd(i)
243 ca(i) = ca(i) + epd(i)
244 t(i) = t(i) + rhocpi*eint(i)/
max(em15,vol(i))
250 tstar(i)=
min(one,
max(zero,(t(i)-t_1)/(tm-t_1)))
251 epd(i)=
max(zero,epd(i))
252 epd(i)= (one + cc * epd(i))*(one - tstar(i)**mt)
253 IF(icc==1)sigmx(i)= sigmx(i)*epd(i)
254 t(i) = t(i) + eint(i)/
max(em15,vol(i))*rhocpi
267 ak(i)= ca(i)+cb_1*epla(i)
270 IF(epla(i)>zero)
THEN
271 ak(i)=ca(i)+cb_1*epla(i)**cn
273 qh(i)= (cb_1*cn*epla(i)**(cn-one))*epd(i)
275 qh(i)= (cb_1*cn/epla(i)**(one - cn))*epd(i)
282 ak(i)=
min(ak(i)*epd(i),sigmx(i))
283 IF(epla(i)>epmx)ak(i)=zero
289 scale=
min(one,ak(i)/
max(aj2(i),em15))
290 sigp(jj(1)+i)=scale*sigp(jj(1)+i)
291 sigp(jj(2)+i)=scale*sigp(jj(2)+i)
292 sigp(jj(3)+i)=scale*sigp(jj(3)+i)
293 sigp(jj(4)+i)=scale*sigp(jj(4)+i)
294 sigp(jj(5)+i)=scale*sigp(jj(5)+i)
295 sigp(jj(6)+i)=scale*sigp(jj(6)+i)
296 epla(i)=epla(i)+(one-scale)*aj2(i)
297 . /
max(three*g(i)+qh(i),em15)
298 dpla(ii) =(one-scale)*aj2(i)/
max(three*g(i)+qh(i),em15)
303 scale=
min(one,ak(i)/
max(aj2(i),em15))
304 sigp(jj(1)+i)=scale*sigp(jj(1)+i)
305 sigp(jj(2)+i)=scale*sigp(jj(2)+i)
306 sigp(jj(3)+i)=scale*sigp(jj(3)+i)
307 sigp(jj(4)+i)=scale*sigp(jj(4)+i)
308 sigp(jj(5)+i)=scale*sigp(jj(5)+i)
309 sigp(jj(6)+i)=scale*sigp(jj(6)+i)
310 epla(i)=epla(i)+(one -scale)*aj2(i)
311 . /
max(three*g(i),em15)
312 dpla(ii) = (one -scale)*aj2(i)/
max(three*g(i),em15)
317 scale=
min(one,ak(i)/
max(aj2(i),em15))
319 dpla(ii)=(one -scale)*aj2(i)/
max(three*g(i)+qh(i),em15)
321 ak(i)=ak(i)+dpla(ii)*qh(i)
322 scale=
min(one,ak(i)/
max(aj2(i),em15))
323 sigp(jj(1)+i)=scale*sigp(jj(1)+i)
324 sigp(jj(2)+i)=scale*sigp(jj(2)+i)
325 sigp(jj(3)+i)=scale*sigp(jj(3)+i)
326 sigp(jj(4)+i)=scale*sigp(jj(4)+i)
327 sigp(jj(5)+i)=scale*sigp(jj(5)+i)
328 sigp(jj(6)+i)=scale*sigp(jj(6)+i)
329 epla(i)=epla(i)+dpla(ii)
336 sigp(jj(1)+i)=(sigp(jj(1)+i)-pnew(i))*off(i)
337 sigp(jj(2)+i)=(sigp(jj(2)+i)-pnew(i))*off(i)
338 sigp(jj(3)+i)=(sigp(jj(3)+i)-pnew(i))*off(i)
339 sigp(jj(4)+i)= sigp(jj(4)+i) *off(i)
340 sigp(jj(5)+i)= sigp(jj(5)+i) *off(i)
341 sigp(jj(6)+i)= sigp(jj(6)+i) *off(i)
347 dav=volgp(i,ipt)*off(i)*dta
348 eint(i)=eint(i)+dav*(d1(i,ipt)*(sold1(i)+sigp(jj(1)+i))+
349 + d2(i,ipt)*(sold2(i)+sigp(jj(2)+i))+
350 + d3(i,ipt)*(sold3(i)+sigp(jj(3)+i))+
351 + d4(i,ipt)*(sold4(i)+sigp(jj(4)+i))+
352 + d5(i,ipt)*(sold5(i)+sigp(jj(5)+i))+
353 + d6(i,ipt)*(sold6(i)+sigp(jj(6)+i)))
359 sig(i,1)=sig(i,1)+one_over_8*sigp(jj(1)+i)
360 sig(i,2)=sig(i,2)+one_over_8*sigp(jj(2)+i)
361 sig(i,3)=sig(i,3)+one_over_8*sigp(jj(3)+i)
362 sig(i,4)=sig(i,4)+one_over_8*sigp(jj(4)+i)
363 sig(i,5)=sig(i,5)+one_over_8*sigp(jj(5)+i)
364 sig(i,6)=sig(i,6)+one_over_8*sigp(jj(6)+i)
365 epseq(i)=epseq(i)+one_over_8*epla(i)
371 eint(i)=eint(i)/
max(em15,vol(i))
subroutine m2law8(mat_param, 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)