30 SUBROUTINE m10law(PM ,OFF ,SIG ,EINT ,RHO ,
31 2 EPSQ ,EPXE ,VOL ,MAT ,SSP ,
32 3 DVOL ,VNEW ,D1 ,D2 ,D3 ,
33 4 D4 ,D5 ,D6 ,SOLD1 ,SOLD2 ,
34 5 SOLD3 ,SOLD4 ,SOLD5 ,SOLD6 ,SIGY ,
35 6 DEFP ,PNEW ,PSH ,MU_NEW ,SEQ_OUTPUT,
36 7 NEL ,DPDM ,DPLA ,MU_BAK)
62#include "implicit_f.inc"
71 INTEGER,
INTENT(IN) :: NEL
72 INTEGER,
INTENT(IN) :: MAT(NEL)
73 my_real PM(NPROPM,*), SIG(NEL,6), MU_OLD(NEL), EPXE(NEL), EINT(NEL), RHO(NEL), VOL(NEL),SEQ_OUTPUT(NEL)
74 my_real,
INTENT(INOUT) :: PNEW(NEL)
75 my_real,
INTENT(INOUT) :: PSH(NEL)
76 my_real,
INTENT(IN) :: OFF()
77 my_real,
INTENT(INOUT) :: dpla(nel)
78 my_real,
INTENT(INOUT) :: epsq(nel)
79 my_real,
INTENT(INOUT) :: mu_bak(nel)
80 my_real vnew(nel), ssp(nel), sigy(nel),defp(nel),
81 . d1(nel), d2(nel), d3(nel), d4(nel), d5(nel), d6(nel),
82 . dvol(nel), mu_new(nel),
83 . sold1(nel), sold2(nel), sold3(nel),
84 . sold4(nel), sold5(nel), sold6(nel),
90 my_real T1(NEL), T2(NEL), T3(NEL), T4(NEL),
91 . T5(NEL), T6(NEL), POLD(NEL), P(NEL), PNE1(NEL),
92 . G(NEL), BULK(NEL), A0(NEL), A1(NEL),
93 . A2(NEL), AMX(NEL), AJ2(NEL), G0(NEL), GG(NEL),
94 . MU2(NEL), SVRT(NEL), RATIO(NEL),
95 . yield2(nel), g43(nel),
96 . rho0(nel),ptot,pstar(nel),
97 . g43_1,c0_1,c1_1,c2_1,c3_1,
98 . bulk_1,bulk2_1,mu_max_1,psh_1,
99 . pstar_1,a0_1,a1_1,a2_1,amx_1,
111 g43_1 = onep333*pm(22,mx)
137 pold(i)=-third*(sig(i,1)+sig(i,2)+sig(i,3))
138 svrt(i)= third*(d1(i)+d2(i)+d3(i))
139 mu2(i) = mu_new(i) *
max(zero,mu_new(i))
146 t1(i)=sig(i,1)+pold(i)
147 t2(i)=sig(i,2)+pold(i)
148 t3(i)=sig(i,3)+pold(i)
158 dpdm(i) = g43(i) + dpdm(i)
159 ssp(i) = sqrt(abs(dpdm(i))/rho0(i))
166 t1(i)=t1(i)+gg(i)*(d1(i)-svrt(i))
167 t2(i)=t2(i)+gg(i)*(d2(i)-svrt(i))
169 t4(i)=t4(i)+g(i)*d4(i)
170 t5(i)=t5(i)+g(i)*d5(i)
171 t6(i)=t6(i)+g(i)*d6(i)
178 aj2(i)= half*(t1(i)**2+t2(i)**2+t3(i)**2)+t4(i)**2+t5(i)**2+t6(i)**2
179 ptot = pnew(i)+psh(i)
180 g0(i) = a0(i)+a1(i)*ptot+a2(i)*ptot*ptot
181 g0(i) =
min(amx(i),g0(i))
182 g0(i) =
max(zero,g0(i))
183 IF(pnew(i)<=pfrac)g0(i)=zero
184 IF(ptot <= pstar(i))g0(i)=zero
185 yield2(i)=aj2(i)-g0(i)
190 !----------------------------------------------------------------
193 IF(yield2(i)<=zero .AND. g0(i)>zero)
THEN
196 ratio(i)=sqrt(g0(i)/(aj2(i)+ em14))
204 sig(i,1)=ratio(i)*t1(i)*off(i)
205 sig(i,2)=ratio(i)*t2(i)*off(i)
206 sig(i,3)=ratio(i)*t3(i)*off(i)
207 sig(i,4)=ratio(i)*t4(i)*off(i)
208 sig(i,5)=ratio(i)*t5(i)*off(i)
209 sig(i,6)=ratio(i)*t6(i)*off(i)
210 dpla(i) = (one -ratio(i))*sqrt(three*abs(aj2(i)))*dt1 /
max(em20,three*g(i))
218 epxe(i) = epxe(i) + dpla(i)
subroutine m10law(pm, off, sig, eint, rho, epsq, epxe, vol, mat, ssp, dvol, vnew, d1, d2, d3, d4, d5, d6, sold1, sold2, sold3, sold4, sold5, sold6, sigy, defp, pnew, psh, mu_new, seq_output, nel, dpdm, dpla, mu_bak)