29 . (nel ,sigd ,vol ,epseq , vfrac ,
30 . deps ,uparam ,volume ,eint , plas ,
43#include "implicit_f.inc"
51 INTEGER,
INTENT(IN) :: NEL
52 my_real,
INTENT(IN) :: pfrac,deps(6,nel),vol(nel),uparam(*),volume(nel),pext,de(nel)
53 my_real,
INTENT(INOUT) :: sigd(6,nel),pold(nel),eint(nel),epseq(nel),plas(nel)
58 my_real :: gg,a0,a1,a2,amax,tmelt,thetl,amumx,sigmx
61 my_real,
intent(in) :: vfrac(nel)
63 my_real :: t1(nel), t2(nel), t3(nel), t4(nel), t5(nel), t6(nel)
65 my_real :: bulk(nel), bulk2(nel), g(nel), g43(nel), g0(nel), g2(nel)
86 bulk(1:nel) = uparam(21)
87 bulk2(1:nel) = uparam(21)
101 sigdo(1:6,i) = sigd(1:6,i)
103 IF(vfrac(i) > two*em02)
THEN
104 t1(i) = t1(i) + g2(i)* (deps(1,i)-de(i))*fact
105 t2(i) = t2(i) + g2(i)* (deps(2,i)-de(i))*fact
106 t3(i) = t3(i) + g2(i)* (deps(3,i)-de(i))*fact
107 t4(i) = t4(i) + g(i) * deps(4,i)*fact
108 t5(i) = t5(i) + g(i) * deps(5,i)*fact
109 t6(i) = t6(i) + g(i) * deps(6,i)*fact
112 j2(i)=half*(t1(i)**2+t2(i)**2+t3(i)**2)+t4(i)**2+t5(i)**2+t6(i)**2
115 g0(i) =a0+a1*ptot+a2*ptot*ptot
116 g0(i)=
min(amax,g0(i))
117 g0(i)=
max(zero,g0(i))
118 IF(ptot <= pstar)g0(i)=zero
119 IF(pold(i) < pfrac)g0(i)=zero
120 yield2(i)=j2(i)-g0(i)
123 if(vfrac(i) > two*em02)
then
127 IF(yield2(i) > zero)
THEN
128 r = sqrt(three*g0(i))/(vm+ em14)
129 dpla = (one - r)*vm /
max(three*g(i),em15)
130 plas(i) = plas(i) + dpla
131 epseq(i) = epseq(i)+ dpla
138 sigd(1,i) = t1(i) * r
139 sigd(2,i) = t2(i) * r
140 sigd(3,i) = t3(i) * r
141 sigd(4,i) = t4(i) * r
142 sigd(5,i) = t5(i) * r
143 sigd(6,i) = t6(i) * r
145 vol_avg = half*(vfrac(i)*volume(i)+vol(i))
147 . ( (sigdo(1,i)+sigd(1,i)) * deps(1,i)
148 . + (sigdo(2,i)+sigd(2,i)) * deps(2,i)
149 . + (sigdo(3,i)+sigd(3,i)) * deps(3,i)
150 . + (sigdo(4,i)+sigd(4,i)) * deps(4,i)
151 . + (sigdo(5,i)+sigd(5,i)) * deps(5,i)
152 . + (sigdo(6,i)+sigd(6,i)) * deps(6,i))
153 eint(i) = eint(i) + einc
154 elseif(vfrac(i) < em02)
then
164 r = (vfrac(i)-em02)*hundred
165 plas(i) = r * plas(i)
166 if(yield2(i) > zero)
then
167 r = r * sqrt(three*g0(i))/(vm+ em14)
169 if(g0(i) == zero) r = zero
173 sigd(1,i) = sigd(1,i) * r
174 sigd(2,i) = sigd(2,i) * r
175 sigd(3,i) = sigd(3,i) * r
176 sigd(4,i) = sigd(4,i) * r
177 sigd(5,i) = sigd(5,i) * r
178 sigd(6,i) = sigd(6,i) * r
subroutine dprag51(nel, sigd, vol, epseq, vfrac, deps, uparam, volume, eint, plas, pfrac, pold, pext, de)