28 SUBROUTINE m10law(PM ,OFF ,SIG ,EINT ,RHO ,
29 2 EPSQ ,EPXE ,VOL ,MAT ,SSP ,
30 3 DVOL ,VNEW ,D1 ,D2 ,D3 ,
31 4 D4 ,D5 ,D6 ,SOLD1 ,SOLD2 ,
32 5 SOLD3 ,SOLD4 ,SOLD5 ,SOLD6 ,SIGY ,
33 6 DEFP ,PNEW ,PSH ,MU_NEW ,SEQ_OUTPUT,
34 7 NEL ,DPDM ,DPLA ,MU_BAK)
60#include "implicit_f.inc"
69 INTEGER,
INTENT(IN) :: NEL
70 INTEGER,
INTENT(IN) :: MAT(NEL)
71 my_real PM(,*), SIG(NEL,6), EPXE(NEL), EINT(NEL), RHO(NEL), (NEL),SEQ_OUTPUT(NEL)
72 my_real,
INTENT(INOUT) :: PNEW(NEL)
73 my_real,
INTENT(INOUT) :: PSH(NEL)
74 my_real,
INTENT(IN) :: (NEL)
75 my_real,
INTENT(INOUT) :: dpla(nel)
76 my_real,
INTENT(INOUT) :: epsq(nel)
77 my_real,
INTENT(INOUT) :: mu_bak(nel)
78 my_real vnew(nel), ssp(nel), sigy(nel),defp(nel),
79 . d1(nel), d2(nel), d3(nel), d4(nel), d5(nel), d6(nel),
80 . dvol(nel), mu_new(nel),
81 . sold1(nel), sold2(nel), sold3(nel),
82 . sold4(nel), sold5(nel), sold6(nel),
88 my_real T1(NEL), T2(NEL), T3(NEL), T4(NEL),
89 . T5(), T6(NEL), POLD(NEL),
90 . G(NEL), A0(NEL), A1(NEL),
91 . (NEL), AMX(NEL), AJ2(NEL)
94 . rho0(nel),ptot,pstar(nel),
97 . pstar_1,a0_1,a1_1,a2_1,amx_1,
106 g43_1 = onep333*pm(22,mx)
128 !----------------------------------------------------------------
132 pold(i)=-third*(sig(i,1)+sig(i,2)+sig(i,3))
133 svrt(i)= third*(d1(i)+d2(i)+d3(i))
134 mu2(i) = mu_new(i) *
max(zero,mu_new(i))
141 t1(i)=sig(i,1)+pold(i)
142 t2(i)=sig(i,2)+pold(i)
143 t3(i)=sig(i,3)+pold(i)
153 dpdm(i) = g43(i) + dpdm(i)
154 ssp(i) = sqrt(abs(dpdm(i))/rho0(i))
161 t1(i)=t1(i)+gg(i)*(d1(i)-svrt(i))
162 t2(i)=t2(i)+gg(i)*(d2(i)-svrt(i))
163 t3(i)=t3(i)+gg(i)*(d3(i)-svrt(i))
164 t4(i)=t4(i)+g(i)*d4(i)
165 t5(i)=t5(i)+g(i)*d5(i)
166 t6(i)=t6(i)+g(i)*d6(i)
173 aj2(i)= half*(t1(i)**2+t2(i)**2+t3(i)**2)+t4(i)**2+t5(i)**2+t6(i)**2
174 ptot = pnew(i)+psh(i)
175 g0(i) = a0(i)+a1(i)*ptot+a2(i)*ptot*ptot
176 g0(i) =
min(amx(i),g0(i))
177 g0(i) =
max(zero,g0(i))
178 IF(pnew(i)<=pfrac)g0(i)=zero
179 IF(ptot <= pstar(i))g0(i)=zero
180 yield2(i)=aj2(i)-g0(i)
188 IF(yield2(i)<=zero .AND. g0(i)>zero)
THEN
191 ratio(i)=sqrt(g0(i)/(aj2(i)+ em14))
199 sig(i,1)=ratio(i)*t1(i)*off(i)
200 sig(i,2)=ratio(i)*t2(i)*off(i)
201 sig(i,3)=ratio(i)*t3(i)*off(i)
202 sig(i,4)=ratio(i)*t4(i)*off(i)
203 sig(i,5)=ratio(i)*t5(i)*off(i)
204 sig(i,6)=ratio(i)*t6(i)*off(i)
205 dpla(i) = (one -ratio(i))*sqrt(three*abs(aj2(i)))*dt1 /
max(em20,three*g(i))
213 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)