28 SUBROUTINE mjwl(PM ,MAT ,OFF ,SIG ,EINT ,
29 1 PSH ,P0 ,QOLD ,VOL ,BFRAC,
30 2 VOLN ,QNEW ,SOLD1 ,SOLD2 ,SOLD3,
31 3 DVOL ,NEL ,DF ,ABURN ,
32 4 ER1V ,ER2V ,WDR1V ,WDR2V , W1, AMU)
36#include "implicit_f.inc"
44 INTEGER MAT(MVSIZ),NEL
47 . OFF(*),SIG(,6),EINT(*),(*),VOL(*),BFRAC(*),VOLN(MVSIZ),QNEW(*),
49 . dvol(*),sold1(*),sold2(*),sold3(*), df(*), er1v(*), er2v(*), wdr1v(*), wdr2v(*), w1(*),
50 . aburn(mvsiz),alpha_unit,amu(*)
61 . EINC(MVSIZ) , ESPE(MVSIZ), W1DF(MVSIZ)
64 . volo(mvsiz),facm(mvsiz),pold(mvsiz),pnew(mvsiz),
65 . eadd, lambda,rr,rr2,a,m,n,bulk
71 pold(i)=third*(sold1(i)+sold2(i)+sold3(i))
72 einc(i)=dvol(i)*(pold(i)-psh(i)-qold(i)-qnew(i))
73 eint(i)=eint(i)+einc(i)
80 qopt = nint(pm(042,mat(1)))
82 tbegin = pm(161,mat(1))
89 alpha_unit = pm(168,mat(1))
98 IF(tt > tend .AND. aburn(i)==one)
THEN
101 ELSEIF (tt <= tbegin)
THEN
106 eint(i) = eint(i)+(lambda-aburn(i))*eadd*
max(em20,volo(i))
114 IF(tt > tend .AND. aburn(i)==one)
THEN
117 ELSEIF (tt <= tbegin)
THEN
121 lambda = (tt-tbegin)*rr
122 lambda =
min(one,lambda)
123 eint(i) = eint(i)+(lambda-aburn(i))*eadd*
max(em20,volo(i))
131 IF(tt > tend .AND. aburn(i)==one)
THEN
134 ELSEIF (tt <= tbegin)
THEN
138 lambda = half*rr*tt**2 - rr*tbegin*tt + rr2
139 lambda =
max(zero,
min(one,lambda))
140 eint(i) = eint(i)+(lambda-aburn(i))*eadd*
max(em20,volo(i))
148 IF(-pold(i)-psh(i) > zero )
THEN
149 lambda=aburn(i)+ dt1*a*exp( m*log(one+aburn(i)) )*exp(n*log(alpha_unit*(-pold(i)-psh(i))))
150 lambda =
max(lambda,zero)
151 lambda =
min(lambda,one)
152 eint(i) = eint(i)+(lambda-aburn(i))*eadd*
max(em20,volo(i))
160 espe(i)=eint(i)/
max(em20,volo(i))
161 w1df(i)=bfrac(i)*w1(i)/df(i)
162 facm(i)=bfrac(i)*(wdr1v(i)*er1v(i)+wdr2v(i)*er2v(i))
166 pnew(i)= - psh(i) + (one - bfrac(i)) * (p0(i) + bulk * amu(i)) +
167 . (facm(i)+(espe(i))*w1df(i))/(one +w1df(i)*dvol(i)/
max(em20,volo(i)))
172 pnew(i)=
max(zero - psh(i), pnew(i))*off(i)
176 einc(i)= einc(i)-(pnew(i) + psh(i))*dvol(i)
177 eint(i)=(eint(i)-(pnew(i) + psh(i))*dvol(i))/
max(em20,vol(i))
181 sig(i,1)=sig(i,1)*off(i)-pnew(i)
182 sig(i,2)=sig(i,2)*off(i)-pnew(i)
183 sig(i,3)=sig(i,3)*off(i)-pnew(i)
subroutine mjwl(pm, mat, off, sig, eint, psh, p0, qold, vol, bfrac, voln, qnew, sold1, sold2, sold3, dvol, nel, df, aburn, er1v, er2v, wdr1v, wdr2v, w1, amu)