33 1 NEL0 ,NUPARAM,NUVAR ,MFUNC ,KFUNC ,
34 2 NPF ,NPT0 ,IPT ,IFLAG ,
35 2 TF ,TIME ,TIMESTEP,UPARAM ,RHO0 ,
36 3 AREA ,EINT ,THKLY ,ISRATE ,ASRATE ,
37 4 EPSPXX ,EPSPYY ,EPSPXY ,EPSPYZ ,EPSPZX ,
38 5 DEPSXX ,DEPSYY ,DEPSXY ,DEPSYZ ,DEPSZX ,
39 6 EPSXX ,EPSYY ,EPSXY ,EPSYZ ,EPSZX ,
40 7 SIGOXX ,SIGOYY ,SIGOXY ,SIGOYZ ,SIGOZX ,
41 8 SIGNXX ,SIGNYY ,SIGNXY ,SIGNYZ ,SIGNZX ,
42 9 SIGVXX ,SIGVYY ,SIGVXY ,SIGVYZ ,SIGVZX ,
43 A SOUNDSP,VISCMAX,THK ,PLA ,UVAR ,
44 B OFF ,NGL ,IPM ,MAT ,ETSE ,
45 C GS ,YLD ,EPSD_PG ,EPSP ,DPLA_I ,
46 D SHF ,INLOC ,DPLANL ,LOFF )
50#include "implicit_f.inc"
106#include "param_c.inc"
107#include "com01_c.inc"
112 INTEGER NEL0, NUPARAM, NUVAR, NPT0, IPT,IFLAG(*),
113 . NGL(NEL0),MAT(NEL0),ISRATE,IPM(NPROPMI,*),INLOC
114 my_real ,
INTENT(IN) :: ASRATE
115 my_real ,
DIMENSION(NEL0) ,
INTENT(IN) :: EPSD_PG
116 my_real ,
DIMENSION(NEL0) ,
INTENT(INOUT) :: EPSP
117 my_real TIME,TIMESTEP,UPARAM(*),
118 . AREA(NEL0),RHO0(NEL0),EINT(NEL0,2),
119 . THKLY(NEL0),PLA(NEL0),
120 . EPSPXX(NEL0),EPSPYY(NEL0),
121 . EPSPXY(NEL0),EPSPYZ(NEL0),EPSPZX(NEL0),
122 . (NEL0),DEPSYY(NEL0),
123 . DEPSXY(NEL0),(NEL0),DEPSZX(NEL0),
124 . EPSXX(NEL0) ,EPSYY(NEL0) ,
125 . EPSXY(NEL0) ,EPSYZ(NEL0) ,EPSZX(NEL0) ,
126 . sigoxx(nel0),sigoyy(nel0),
127 . sigoxy(nel0),sigoyz(nel0),sigozx(nel0),
128 . gs(*) ,shf(nel0), dplanl(nel0)
129 my_real,
DIMENSION(NEL0),
INTENT(IN) :: loff
134 . signxx(nel0),signyy(nel0),
135 . signxy(nel0),signyz(nel0),signzx(nel0),
136 . sigvxx(nel0),sigvyy(nel0),
137 . sigvxy(nel0),sigvyz(nel0),sigvzx(nel0),
138 . soundsp(nel0),viscmax(nel0),etse(nel0),
143 my_real uvar(nel0,nuvar), off(nel0),thk(nel0),yld(nel0)
147 INTEGER NPF(*), MFUNC, KFUNC(MFUNC)
148 my_real FINTER ,TF(*)
160 INTEGER I,J,NRATE(MVSIZ),J1(MVSIZ),J2(MVSIZ),N,NINDX,NMAX,IADBUF,NFUNC,
161 . iad1(mvsiz),ipos1(mvsiz),ilen1(mvsiz),
162 . iad2(mvsiz),ipos2(mvsiz),ilen2(mvsiz),
163 . iad3(mvsiz),ipos3(mvsiz),ilen3(mvsiz),
164 . iad4(mvsiz),ipos4(mvsiz),ilen4(mvsiz),
165 . jj(mvsiz),index(mvsiz),ifunc(mvsiz,100),nratem,
166 . nrate1,ifunc1(100),iadbufv(mvsiz),nfuncv(mvsiz),
167 . nfuncm, j3(mvsiz), j4(mvsiz), nn, index1,mopte,meinf,mce,ifunce
169 . e(mvsiz),a1(mvsiz),a2(mvsiz),g(mvsiz),g3(mvsiz),
170 . dydx1(mvsiz),dydx2(mvsiz),rate(mvsiz,4),svm(mvsiz),
171 . y1(mvsiz),y2(mvsiz),dr(mvsiz),
172 . yfac(mvsiz,4),nnu1(mvsiz),nu1(mvsiz),
173 . nu2(mvsiz),nu3(mvsiz),nu4(mvsiz),nu5(mvsiz),nu6(mvsiz),
174 . aa(mvsiz),bb(mvsiz),dpla_j(mvsiz),
175 . pp(mvsiz),qq(mvsiz),fail(mvsiz),svmo(mvsiz),h(mvsiz),
176 . epsmax(mvsiz),epsr1(mvsiz),epsr2(mvsiz),fisokin(mvsiz),
177 . sigexx(mvsiz),sigeyy(mvsiz),sigexy(mvsiz),
178 . hk(mvsiz),nu(mvsiz),y3(mvsiz),y4(mvsiz),
179 . dydx3(mvsiz),dydx4(mvsiz),einf(mvsiz),
180 . ce(mvsiz),escale(mvsiz),e0(mvsiz),dydxe(mvsiz)
182 . r,umr,a,b,c,amu,s11,s22,s12,p,p2,fac,dezz,
183 . sigz,s1,s2,s3,dpla,vm2,epst,nnu2,ce1, einf1,
184 . err,f,df,pla_i,q2,yld_i,sigpxx,sigpyy,sigpxy,
186 . e1,a11,a21,g1,g31,nnu11,nu11,nu21,nu31,nu41,nu51,nu61,
187 . epsmax1,epsr11,epsr21,fisokin1,
188 . dsxx,dsyy,dsxy,dexx,deyy,dexy,nux, x(mvsiz)
190 . me, ma1, ma2, mg, mnu,
191 . mepsmax,mepsr1,mepsr2,mfisokin,
192 . y11(mvsiz), y22(mvsiz), y33(mvsiz), y44(mvsiz), y(mvsiz),yp(mvsiz),
193 . x1(mvsiz), x2(mvsiz), x3(mvsiz), x4(mvsiz)
194 INTEGER JST(+1), IC, MNRATE, OPTE1,OPTE(MVSIZ)
200 nfunc = ipm(10,mat(1))
202 ifunc1(j)=ipm(10+j,mat(1))
205 iadbuf = ipm(7,mat(1)) - 1
206 e1 = uparam(iadbuf+2)
207 a11 = uparam(iadbuf+3)
208 a21 = uparam(iadbuf+4)
209 g1 = uparam(iadbuf+5)
211 nux = uparam(iadbuf+6)
212 nrate1 = nint(uparam(iadbuf+1))
213 epsmax1=uparam(iadbuf+6+2*nrate1+1)
215 opte1 = uparam(iadbuf+2*nrate1 + 18)
216 einf1 = uparam(iadbuf+2*nrate1 + 19)
217 ce1 = uparam(iadbuf+2*nrate1 + 20)
227 ifunce = uparam(iadbuf+2*nrate1 + 17)
229 IF(pla(i) > zero)
THEN
230 escale(i) = finter(kfunc(ifunce),pla(i),npf,tf,dydxe(i))
234 IF(pla(i) > zero)
THEN
236 a1(i) = e(i)/(one - nux*nux)
238 g(i) = half*e(i)/(one+nux)
240 gs(i) = g(i) * shf(i)
243 ELSEIF ( ce1 /= zero)
THEN
245 IF(pla(i) > zero)
THEN
246 e(i) = e1-(e1-einf1)*(one-exp(-ce1*pla(i)))
247 a1(i) = e(i)/(one - nux*nux)
249 g(i) = half*e(i)/(one+nux)
251 gs(i) = g(i) * shf(i)
256 IF(tf(npf(ifunc1(1)+1)-1)==zero)
THEN
257 epsmax1=tf(npf(ifunc1(1)+1)-2)
263 nnu11 = nux / (one - nux)
265 nu11 = one/(one - nux)
266 nu21 = one/(one + nux)
268 nu41 = one + nnu2 + nnu11
269 nu51 = one + nnu2 - two*nnu11
270 nu61 = half - nnu2 + half*nnu11
272 epsr11 =uparam(iadbuf+6+2*nrate1+2)
273 epsr21 =uparam(iadbuf+6+2*nrate1+3)
274 fisokin1=uparam(iadbuf+6+2*nrate1+8)
295! sigoxx(i) = sigoxx(i) - uvar(i,2)
303 signxx(i)=sigoxx(i) - uvar(i,2) +a1(i)*depsxx(i)+a2(i)*depsyy(i)
304 signyy(i)=sigoyy(i) - uvar(i,3) +a2(i)*depsxx(i)+a1(i)*depsyy(i)
305 signxy(i)=sigoxy(i) - uvar(i,4) +g(i) *depsxy(i)
306 signyz(i)=sigoyz(i)+gs(i) *depsyz(i)
307 signzx(i)=sigozx(i)+gs(i) *depszx(i)
308 sigexx(i) = signxx(i)
309 sigeyy(i) = signyy(i)
310 sigexy(i) = signxy(i)
312 soundsp(i) = sqrt(a1(i)/rho0(i))
320 epsp(i) = half*( abs(epspxx(i)+epspyy(i))
321 . + sqrt( (epspxx(i)-epspyy(i))*(epspxx(i)-epspyy(i))
322 . + epspxy(i)*epspxy(i) ) )
324 epsp(i) = asrate*epsd_pg(i) + (one-asrate)*epsp(i)
330 epst = half*( epsxx(i)+epsyy(i)
331 . + sqrt( (epsxx(i)-epsyy(i))*(epsxx(i)-epsyy(i))
332 . + epsxy(i)*epsxy(i) ) )
333 fail(i) =
max(zero,
min(one,(epsr21-epst)/(epsr21-epsr11)))
342 iadbuf = ipm(7,mat(1)) - 1
346 IF(epsp(i)>=uparam(iadbuf+6+j)) jj(i) = j
349#include "vectorize.inc"
356 ELSEIF(jj(i)==(nrate1-1))
THEN
368#include "vectorize.inc"
370 rate(i,1)=uparam(iadbuf + 6 + j1(i) )
371 rate(i,2)=uparam(iadbuf + 6 + j2(i) )
372 rate(i,3)=uparam(iadbuf + 6 + j3(i) )
373 rate(i,4)=uparam(iadbuf + 6 + j4(i) )
374 yfac(i,1)=uparam(iadbuf + 6 + nrate1 + j1(i) )
375 yfac(i,2)=uparam(iadbuf + 6 + nrate1 + j2(i) )
376 yfac(i,3)=uparam(iadbuf + 6 + nrate1 + j3(i) )
377 yfac(i,4)=uparam(iadbuf + 6 + nrate1 + j4(i)
380#include "vectorize.inc"
387 ELSEIF(jj(i)==(nrate1-1))
THEN
399#include "vectorize.inc"
401 ipos1(i) = nint(uvar(i,j1(i)+4))
402 iad1(i) = npf(ifunc1(j1(i))) / 2 + 1
403 ilen1(i) = npf(ifunc1(j1(i))+1) / 2 - iad1(i) - ipos1(i)
404 ipos2(i) = nint(uvar(i,j2(i)+4))
405 iad2(i) = npf(ifunc1(j2(i))) / 2 + 1
406 ilen2(i) = npf(ifunc1(j2(i))+1) / 2 - iad2(i) - ipos2(i)
407 ipos3(i) = nint(uvar(i,j3(i)+4))
408 iad3(i) = npf(ifunc1(j3(i))) / 2 + 1
409 ilen3(i) = npf(ifunc1(j3(i))+1) / 2 - iad3(i) - ipos3(i)
410 ipos4(i) = nint(uvar(i,j4(i)+4))
411 iad4(i) = npf(ifunc1(j4(i))) / 2 + 1
412 ilen4(i) = npf(ifunc1(j4(i))+1) / 2 - iad4(i) - ipos4(i)
415 CALL vinter(tf,iad1,ipos1,ilen1,nel0,pla,dydx1,y1)
416 CALL vinter(tf,iad2,ipos2,ilen2,nel0,pla,dydx2,y2)
417 CALL vinter(tf,iad3,ipos3,ilen3,nel0,pla,dydx3,y3
418 CALL vinter(tf,iad4,ipos4,ilen4,nel0,pla,dydx4,y4)
421 IF (fisokin1==0.)
THEN
422! ------------------------
423#include "vectorize.inc"
430 dydx1(i)= dydx1(i)*yfac(i,1)
431 dydx2(i) = dydx2(i)*yfac(i,2)
432 fac = (epsp(i) - rate(i,1))/(rate(i,2) - rate(i,1))
433 h(i) = fail(i)*(dydx1(i) + fac*(dydx2(i)-dydx1(i)))
434 ELSEIF(jj(i)==(nrate1-1))
THEN
439 dydx3(i) = dydx3(i)*yfac(i,3)
440 dydx4(i) = dydx4(i)*yfac(i,4)
441 fac = (epsp(i) - rate(i,3))/(rate(i,4) - rate(i,3))
442 h(i) = fail(i)*(dydx3(i) + fac*(dydx4(i)-dydx3(i)))
448 dydx2(i) = dydx2(i)*yfac(i,2)
449 dydx3(i) = dydx3(i)*yfac(i,3)
450 fac = (epsp(i) - rate(i,2))/(rate(i,3) - rate(i,2))
451 h(i) = fail(i)*(dydx2(i) + fac*(dydx3(i)-dydx2(i)))
455 uvar(i,j1(i)+4) = ipos1(i)
456 uvar(i,j2(i)+4) = ipos2(i)
457 uvar(i,j3(i)+4) = ipos3(i)
458 uvar(i,j4(i)+4) = ipos4(i)
460 x1(1:nel0) = rate(1:nel0,1)
461 x2(1:nel0) = rate(1:nel0,2)
462 x3(1:nel0) = rate(1:nel0,3)
463 x4(1:nel0) = rate(1:nel0,4)
464 x(1:nel0) = epsp(1:nel0)
465 y11(1:nel0) = y1(1:nel0)*yfac(1:nel0,1)
466 y22(1:nel0) = y2(1:nel0)*yfac(1:nel0,2)
467 y33(1:nel0) = y3(1:nel0)*yfac(1:nel0,3)
468 y44(1:nel0) = y4(1:nel0)*yfac(1:nel0,4)
471 yld(1:nel0) = fail(1:nel0)*y(1:nel0)
472 yld(1:nel0) =
max(yld(1:nel0),em20)
474 ELSEIF (fisokin1==one)
THEN
475#include
"vectorize.inc"
482 dydx1(i)= dydx1(i)*yfac(i,1)
483 dydx2(i) = dydx2(i)*yfac(i,2)
484 fac = (epsp(i) - rate(i,1))/(rate(i,2) - rate(i,1))
485 h(i) = fail(i)*(dydx1(i) + fac*(dydx2(i)-dydx1(i)))
486 ELSEIF(jj(i)==(nrate1-1))
THEN
491 dydx3(i) = dydx3(i)*yfac(i,3)
492 dydx4(i) = dydx4(i)*yfac(i,4)
493 fac = (epsp(i) - rate(i,3))/(rate(i,4) - rate(i,3))
494 h(i) = fail(i)*(dydx3(i) + fac*(dydx4(i)-dydx3(i)))
500 dydx2(i) = dydx2(i)*yfac(i,2)
501 dydx3(i) = dydx3(i)*yfac(i,3)
502 fac = (epsp(i) - rate(i,2))/(rate(i,3) - rate(i,2))
503 h(i) = fail(i)*(dydx2(i) + fac*(dydx3(i)-dydx2(i)))
507 uvar(i,j1(i)+4) = ipos1(i)
508 uvar(i,j2(i)+4) = ipos2(i)
509 uvar(i,j3(i)+4) = ipos3(i)
510 uvar(i,j4(i)+4) = ipos4(i)
513 y11(1:nel0)=tf(npf(ifunc1(j1(1:nel0)))+1)*yfac(1:nel0,1)
514 y22(1:nel0)=tf(npf(ifunc1(j2(1:nel0)))+1)*yfac(1:nel0,2)
515 y33(1:nel0)=tf(npf(ifunc1(j3(1:nel0)))+1)*yfac(1:nel0,3)
516 y44(1:nel0)=tf(npf(ifunc1(j4(1:nel0)))+1)*yfac(1:nel0,4)
517 x1(1:nel0) = rate(1:nel0,1)
518 x2(1:nel0) = rate(1:nel0,2)
519 x3(1:nel0) = rate(1:nel0,3)
520 x4(1:nel0) = rate(1:nel0,4)
521 x(1:nel0) = epsp(1:nel0)
524 yld(1:nel0) = fail(1:nel0)*y(1:nel0)
526#include "vectorize.inc"
533 dydx1(i)= dydx1(i)*yfac
534 dydx2(i) = dydx2(i)*yfac(i,2)
535 fac = (epsp(i) - rate(i,1))/(rate(i,2) - rate(i,1))
536 h(i) = fail(i)*(dydx1(i) + fac*(dydx2(i)-dydx1(i)))
537 ELSEIF(jj(i)==(nrate1-1))
THEN
542 dydx3(i) = dydx3(i)*yfac(i,3)
543 dydx4(i) = dydx4(i)*yfac(i,4)
544 fac = (epsp(i) - rate(i,3))/(rate(i,4) - rate(i,3))
545 h(i) = fail(i)*(dydx3(i) + fac*(dydx4(i)-dydx3(i)))
551 dydx2(i) = dydx2(i)*yfac(i,2)
552 dydx3(i) = dydx3(i)*yfac(i,3)
553 fac = (epsp(i) - rate(i,2))/(rate(i,3) - rate(i,2))
554 h(i) = fail(i)*(dydx2(i) + fac*(dydx3(i)-dydx2(i)))
557 x1(1:nel0) = rate(1:nel0,1)
558 x2(1:nel0) = rate(1:nel0,2)
559 x3(1:nel0) = rate(1:nel0,3)
560 x4(1:nel0) = rate(1:nel0,4)
561 x(1:nel0) = epsp(1:nel0)
562 y11(1:nel0) = y1(1:nel0)*yfac(1:nel0,1)
563 y22(1:nel0) = y2(1:nel0)*yfac(1:nel0,2)
564 y33(1:nel0) = y3(1:nel0)*yfac(1:nel0,3)
565 y44(1:nel0) = y4(1:nel0)*yfac(1:nel0,4)
568 yld(1:nel0) = fail(1:nel0)*y(1:nel0)
569 yld(1:nel0) =
max(yld(1:nel0),em20)
572 uvar(i,j1(i)+4) = ipos1(i)
573 uvar(i,j2(i)+4) = ipos2(i)
574 uvar(i,j3(i)+4) = ipos3(i)
575 uvar(i,j4(i)+4) = ipos4(i)
578 y11(1:nel0)=tf(npf(ifunc1(j1(1:nel0)))+1)*yfac(1:nel0,1)
579 y22(1:nel0)=tf(npf(ifunc1(j2(1:nel0)))+1)*yfac(1:nel0,2)
580 y33(1:nel0)=tf(npf(ifunc1(j3(1:nel0)))+1)*yfac(1:nel0,3)
581 y44(1:nel0)=tf(npf(ifunc1(j4(1:nel0)))+1)*yfac(1:nel0,4)
584 yld(1:nel0) = (one -fisokin1) * yld(1:nel0) + fisokin1 * (fail(1:nel0)*y(1:nel0))
593 svm(i)=sqrt(signxx(i)*signxx(i)
594 . +signyy(i)*signyy(i)
595 . -signxx(i)*signyy(i)
596 . + three*signxy(i)*signxy(i))
597 r =
min(one,yld(i)/
max(em20,svm(i)))
598 signxx(i)=signxx(i)*r
599 signyy(i)=signyy(i)*r
600 signxy(i)=signxy(i)*r
602 dpla_i(i) = off(i)*svm(i)*umr/(g3(i)+h(i))
603 pla(i) = pla(i) + dpla_i(i)
604 s1=half*(signxx(i)+signyy(i))
606 dezz = dpla_i(i) * half*(signxx(i)+signyy(i)) / yld(i)
607 dezz=-(depsxx(i)+depsyy(i))*nnu11-nu31*dezz
608 thk(i) = thk(i) + dezz*thkly(i)*off(i)
610 IF(r<one) etse(i)= h(i)/(h(i)+e(i))
613 ELSEIF(iflag(1)==1)
THEN
618 h(i) =
max(zero,h(i))
619 s1=signxx(i)+signyy(i)
620 s2=signxx(i)-signyy(i)
623 bb(i)=three_over_4*s2*s2+three*s3*s3
624 svm(i)=sqrt(aa(i)+bb(i))
626 dezz = -(depsxx(i)+depsyy(i))*nnu11
627 thk(i) = thk(i) + dezz*thkly(i)*off(i)
635 IF(svm(i)>yld(i).AND.off(i)==one)
THEN
645#include "vectorize.inc"
648 dpla_j(i)=(svm(i)-yld(i))/(g3(i)+h(i))
649 etse(i)= h(i)/(h(i)+e(i))
650 hk(i) = h(i)*(one-fisokin1)
654#include "vectorize.inc"
658 yld_i =yld(i)+hk(i)*dpla_i(i)
659 dr(i) =half*e(i)*dpla_i(i)/yld_i
660 pp(i) =one/(one + dr(i)*nu11)
661 qq(i) =one/(one + three*dr(i)*nu21)
664 f =aa(i)*p2+bb(i)*q2-yld_i*yld_i
665 df =-(aa(i)*nu11*p2*pp(i)+ three*bb(i)*nu21*q2*qq(i))
666 . *(e(i)- two*dr(i)*hk(i))/yld_i
668 df = sign(
max(abs(df),em20),df)
669 IF(dpla_i(i)>zero)
THEN
670 dpla_j(i)=
max(zero,dpla_i
679#include "vectorize.inc"
682 pla(i) = pla(i) + dpla_i(i)
683 s1=(signxx(i)+signyy(i))*pp(i)
684 s2=(signxx(i)-signyy(i))*qq(i)
685 signxx(i)=half*(s1+s2)
686 signyy(i)=half*(s1-s2)
687 signxy(i)=signxy(i)*qq(i)
689 dezz = - nu31*dr(i)*s1/e(i)
690 thk(i) = thk(i) + dezz*thkly(i)*off(i)
695 ELSEIF(iflag(1)==2)
THEN
701 p = -(signxx(i)+signyy(i))*third
708 vm2= three*(s12*s12 - s11*s22)
712 c = p2*nu51 - yld(i)*yld(i)
713 r =
min(one,(-b + sqrt(
max(zero,b*b-a*c)))/
max(a ,em20))
714 signxx(i) = s11*r - p
715 signyy(i) = s22*r - p
719 signxx(i) = signxx(i) + sigz
720 signyy(i) = signyy(i) + sigz
722 dpla_i(i) = off(i)*svm(i)*umr/(g3(i)+h(i))
723 pla(i) = pla(i) + dpla_i(i)
725 dezz = dpla_i(i) * half*(signxx(i)+signyy(i)) / yld(i)
726 dezz=-(depsxx(i)+depsyy(i))*nnu11-nu31*dezz
727 thk(i) = thk(i) + dezz*thkly(i)*off(i)
729 IF(r<one) etse(i)= h(i)/(h(i)+e(i))
734 IF(pla(i)>epsmax1.AND.off(i)==one)off(i)=four_over_5
740 IF (fisokin1/=zero)
THEN
742 dsxx = sigexx(i) - signxx(i)
743 dsyy = sigeyy(i) - signyy(i)
744 dsxy = sigexy(i) - signxy(i)
745 dexx = (dsxx - nux*dsyy)
746 deyy = (dsyy - nux*dsxx)
747 dexy = two*(one + nux)*dsxy
748 alpha = fisokin1*h(i)/(e(i)+h(i))/three
749 sigpxx =
alpha*(four*dexx + two*deyy)
750 sigpyy =
alpha*(four*deyy + two*dexx)
752 signxx(i) = signxx(i) + uvar(i,2)
753 signyy(i) = signyy(i) + uvar(i,3)
754 signxy(i) = signxy(i) + uvar(i,4)
755 uvar(i,2) = uvar(i,2) + sigpxx
756 uvar(i,3) = uvar(i,3) + sigpyy
757 uvar(i,4) = uvar(i,4) + sigpxy
765 IF (loff(i) == one)
THEN
766 svm(i) = sqrt(signxx(i)*signxx(i)
767 . + signyy(i)*signyy(i)
768 . - signxx(i)*signyy(i)
769 . + three*signxy(i)*signxy(i))
770 dezz =
max(dplanl(i),zero)*half*(signxx(i)+signyy(i))/
max(svm(i),em20)
771 dezz = -nux*((signxx(i)-sigoxx(i)+signyy(i)-sigoyy(i))/e1) - dezz
772 thk(i) = thk(i) + dezz*thkly(i)*off(i)