28 SUBROUTINE m22cplr(JFT ,JLT ,EZZ ,OFF ,EPSEQ ,
29 2 IPLA ,GS ,YLD ,A1 ,CA ,
30 3 CB ,CN ,YMAX ,NU ,DPLA ,
31 4 EPCHK ,YOUNG ,CC ,EPDR ,EPSL ,
32 5 HL ,YM ,YLDL ,ALPE ,ICC ,
33 6 DEPSXX ,DEPSYY ,DEPSXY ,DEPSYZ ,DEPSZX,
34 7 SIGOXX ,SIGOYY ,SIGOXY ,SIGOYZ ,SIGOZX,
35 8 SIGNXX ,SIGNYY ,SIGNXY ,SIGNYZ ,SIGNZX,
40#include "implicit_f.inc"
48 INTEGER JFT,JLT,IPLA,NEL
51 . EZZ(*),OFF(*),EPSEQ(*),GS(*),DPLA(*)
53 . YLD(MVSIZ),A1(MVSIZ),NU(MVSIZ),YMAX(MVSIZ),
54 . CN(MVSIZ),YOUNG(MVSIZ),EPCHK(MVSIZ),CC(MVSIZ),EPDR(MVSIZ),
55 . EPSL(MVSIZ),HL(MVSIZ),YM(MVSIZ),YLDL(MVSIZ),ALPE(MVSIZ),
56 . ca(mvsiz),cb(mvsiz),
57 . sigoxx(nel),sigoyy(nel),sigoxy(nel),sigoyz(nel),sigozx(nel),
58 . signxx(nel),signyy(nel),signxy(nel),signyz(nel),signzx(nel),
59 . depsxx(mvsiz),depsyy(mvsiz),depsxy(mvsiz),depsyz(mvsiz),depszx(mvsiz)
64 INTEGER I,J,N,NINDX,INDEX(MVSIZ),NMAX
67 . A(MVSIZ),B(MVSIZ),DPLA_I(MVSIZ),DPLA_J(MVSIZ),DR(MVSIZ),
68 . h(mvsiz),nu1(mvsiz),nu2(mvsiz),p(mvsiz),q(mvsiz),
69 . svm(mvsiz),dk(mvsiz),ff(mvsiz),g(mvsiz),
70 . plaef(mvsiz),plaxx(mvsiz),playy(mvsiz),plaxy(mvsiz),
71 . epmax(mvsiz),depsl,alpei,gi,a1i,a2i,epsp,s11,s22,s12,
72 . s1s2,s122,vm2,pla_i,yld_i,f,df,p2,q2,nnu1,
73 . nnu2,nu3,nu4,nu5,nu6,r,umr,aa,bb,c,ee,sigz,pp,qq
86#include "vectorize.inc"
88 yld(i) = (ca(i)+cb(i)*epseq(i)**cn(i))
90 depsl =
max(zero,epseq(i)-epsl(i))
91 yld(i) =
min(yld(i),yldl(i)+hl(i)*depsl)
92 yld(i) =
max(yld(i),em30)
93 alpei =
min(one,yld(i)/(yld(i)+ym(i)*depsl))
94 alpei =
max(em30,alpei)
96 gi = half*young(i)/(one +nu(i))
98 a1i = young(i)/(one -nu(i)**2)
99 alpe(i) =
max(alpe(i),a1i/a1(i))
101 signxx(i)= signxx(i)+a1i*depsxx(i)+a2i*depsyy(i)
102 signyy(i)= signyy(i)+a2i*depsxx(i)+a1i*depsyy(i)
103 signxy(i)= signxy(i)+gi *depsxy(i)
104 signyz(i)= signyz(i)+alpei*gs(i)*depsyz(i)
105 signzx(i)= signzx(i)+alpei*gs(i)*depszx(i)
110#include "vectorize.inc"
112 svm(i) = sqrt(signxx(i)*signxx(i)
113 . +signyy(i)*signyy(i)
114 . -signxx(i)*signyy(i)
115 . + three*signxy(i)*signxy(i))
121 epsp =
max( abs(depsxx(i)), abs(depsyy(i)), half*abs(depsxy(i)))
122 epsp =
max(epsp,epdr(i))
123 yld(i)= yld(i)*(one +cc(i) * log(epsp/epdr(i)))
124 IF (icc(i) == 2) yld(i) =
min(yld(i),ymax(i))
131#include "vectorize.inc"
133 dk(i) =
min(one,yld(i)/
max(svm(i),em30))
134 signxx(i) = signxx(i)*dk(i)
135 signyy(i) = signyy(i)*dk(i)
136 signxy(i) = signxy(i)*dk(i)
137 dpla(i) = off(i) *
max(zero,(svm(i)-yld(i))/young(i))
138 s1 = half*(signxx(i)+signyy(i))
139 ezz(i) = dpla(i) * s1 /yld(i)
140 epseq(i) = epseq(i) + dpla(i)
141 epchk(i) =
max(epseq(i),epchk(i))
144 ELSEIF (ipla == 1
THEN
148#include "vectorize.inc"
150 s1 = signxx(i) + signyy(i)
151 s2 = signxx(i) - signyy(i)
154 b(i) = three_over_4*s2*s2 + three*s3*s3
155 svm(i) = sqrt(a(i) + b(i))
164 IF (svm(i) > yld(i) .AND. off(i) == one)
THEN
170 IF (nindx == 0)
GOTO 800
174#include "vectorize.inc"
177 nu1(i) = one/(one-nu(i))
178 nu2(i) = one/(one+nu(i))
179 h(i) = cn(i)*cb(i)*exp((cn(i)-one)*log(epseq(i)+small))
180 IF (yld(i) >= ymax(i)) h(i) = zero
181 dpla_j(i) = (svm(i)-yld(i))/(three*g(i)+h(i))
185#include "vectorize.inc"
188 dpla_i(i) = dpla_j(i)
190 pla_i = epseq(i)+dpla_i(i)
191 yld_i =
min(ymax(i),ca(i)+cb(i)*pla_i**cn(i))
192 dr(i) = half*young(i)*dpla_i(i)/yld_i
193 p(i) = one/(one+dr(i)*nu1(i))
194 q(i) = one/(one+three*dr(i)*nu2(i))
197 f = a(i)*p2+b(i)*q2-yld_i*yld_i
198 df = -(a(i)*nu1(i)*p2*p(i)+three*b(i)*nu2(i)*q2*q(i))
199 . *(young(i)-two*dr(i)*h(i))/yld_i
201 IF (dpla_i(i) > zero)
THEN
202 dpla_j(i) =
max(zero,dpla_i(i)-f/df)
211#include
"vectorize.inc"
215 epseq(i)= epseq(i) + dpla_i(i)
216 epchk(i)=
max(epseq(i),epchk(i))
217 s1 = (signxx(i)+signyy(i))*p(i)
218 s2 = (signxx(i)-signyy(i))*q(i)
219 signxx(i) = half*(s1+s2)
220 signyy(i) = half*(s1-s2)
221 signxy(i) = signxy(i)*q(i)
222 ezz(i) = dr(i)*s1/young(i)
224 ELSEIF (ipla == 2)
THEN
231#include "vectorize.inc"
233 pp = -(signxx(i)+signyy(i))*third
241 nnu1 = nu(i) / (one - nu(i))
243 nu4 = one + nnu2 + nnu1
244 nu6 = half - nnu2 + half*nnu1
246 aa = p2*nu4 + three*(s122 - s1s2)
250 c = c - yld(i)*yld(i)
251 r =
min(one,(-bb+ sqrt(
max(zero,bb*bb-aa*c)))/
max(aa ,em20))
254 signxx(i) = signxx(i)*r - qq
255 signyy(i) = signyy(i)*r - qq
257 dpla(i) = off(i)*sqrt(vm2)*umr/(three*g(i))
258 s1 = half*(signxx(i)+signyy(i))
259 ezz(i) = dpla(i) * s1 / yld(i)
260 epseq(i) = epseq(i) + dpla(i)
261 epchk(i) =
max(epseq(i),epchk(i))
268 IF (alpe(i) < zep999)
THEN
269 r = one - young(i)*dpla(i)/
max(em20,yld(i))
271 signyz(i) = signyz(i)*r
272 signzx(i) = signzx(i)*r
subroutine m22cplr(jft, jlt, ezz, off, epseq, ipla, gs, yld, a1, ca, cb, cn, ymax, nu, dpla, epchk, young, cc, epdr, epsl, hl, ym, yldl, alpe, icc, depsxx, depsyy, depsxy, depsyz, depszx, sigoxx, sigoyy, sigoxy, sigoyz, sigozx, signxx, signyy, signxy, signyz, signzx, nel)