37 1 NEL , NUPARAM, NUVAR , NFUNC , IFUNC , NPF ,
38 2 TF , TIME , TIMESTEP, UPARAM, RHO0 , RHO ,
40 4 EPSPXX , EPSPYY , EPSPZZ , EPSPXY, EPSPYZ, EPSPZX,
41 5 DEPSXX , DEPSYY , DEPSZZ , DEPSXY, DEPSYZ, DEPSZX,
42 6 EPSXX , EPSYY , EPSZZ , EPSXY , EPSYZ , EPSZX ,
43 7 SIGOXX , SIGOYY , SIGOZZ , SIGOXY, SIGOYZ, SIGOZX,
44 8 SIGNXX , SIGNYY , SIGNZZ , SIGNXY, SIGNYZ, SIGNZX,
45 9 SIGVXX , SIGVYY , SIGVZZ , SIGVXY, SIGVYZ, SIGVZX,
46 A SOUNDSP, VISCMAX, UVAR , OFF ,
47 B ISMSTR , MFXX , MFXY , MFXZ , MFYX ,
48 C MFYY , MFYZ , MFZX , MFZY , MFZZ , ET ,
53#include "implicit_f.inc"
63 INTEGER NEL, NUPARAM, NUVAR,ISMSTR,IHET
66 . TIME , TIMESTEP , UPARAM(NUPARAM),
67 . RHO (NEL), RHO0 (NEL), VOLUME(NEL), EINT(NEL),
68 . EPSPXX(NEL), EPSPYY(NEL), EPSPZZ(NEL),
69 . EPSPXY(NEL), EPSPYZ(NEL), EPSPZX(NEL),
70 . DEPSXX(NEL), DEPSYY(NEL), DEPSZZ(NEL),
71 . DEPSXY(NEL), DEPSYZ(NEL), DEPSZX(NEL),
72 . EPSXX (NEL), EPSYY (NEL), EPSZZ (NEL),
73 . EPSXY (NEL), EPSYZ (NEL), EPSZX (NEL),
74 . SIGOXX(NEL), SIGOYY(NEL), SIGOZZ(NEL),
75 . SIGOXY(NEL), SIGOYZ(NEL), SIGOZX(NEL),
76 . mfxx(nel) , mfxy(nel), mfxz(nel),
77 . mfyx(nel) , mfyy(nel), mfyz(nel),
78 . mfzx(nel) , mfzy(nel), mfzz(nel),offg(nel)
83 . signxx(nel), signyy(nel), signzz(nel),
84 . signxy(nel), signyz(nel), signzx(nel),
85 . sigvxx(nel), sigvyy(nel), sigvzz(nel),
86 . sigvxy(nel), sigvyz(nel), sigvzx(nel),
87 . soundsp(nel), viscmax(nel),
88 . den1,den2,den3,den1d,den2d,
89 . den3d,old1,old2,old3,old4,old5,old6,et(*),epsd(nel)
94 . uvar(nel,nuvar), off(nel)
98 INTEGER NPF(*), NFUNC, IFUNC(NFUNC)
105 INTEGER MFUNC,IUNLOAD
107 INTEGER I,J,L,N,M,MDIR,NROT
108 INTEGER K(MVSIZ,3),K1(MVSIZ,3),KF(MVSIZ,3)
109 INTEGER KF1(MVSIZ,3),(MVSIZ,3)
110 INTEGER IFLAG,ITOTAL,IMSTA
111 INTEGER NFUNC1,NFUNCUL,NFUNCP,NPCURVE,KCOMPAIR
112 INTEGER KRECOVER,KDECAY
113 LOGICAL TOTAL,UNCHANGED,JACOBI,UNLOADING
115 INTEGER II,JJ,KEN,IDEAC
118 . strain(mvsiz,3),rate(mvsiz,3),ratem(mvsiz),
121 . dsigma(mvsiz,3),decay,tensioncut,
122 . amin,amax,tolerance,lamda,efinal,epsfin,efactor,
123 . a(3,3),sn(3,3),earj(3),
124 . psc(mvsiz,3),ear(mvsiz,3),
125 . ebr(mvsiz,3),ecr(mvsiz,3),
126 . psn(mvsiz,3),ean(mvsiz,3),
127 . ebn(mvsiz,3),ecn(mvsiz,3),
129 . dpra(3,3),dprao(3,3),dprad(3,3),
130 . av(mvsiz,6),earv(mvsiz,3),dirprv(mvsiz,3,3),
131 . sigprv(mvsiz,3),ei(mvsiz),
132 . e0,vt,vc,rv,kkk,ggg,
133 . beta,hyster,ratedamp,theta,
134 . p0,relaxp,maxpres,phi,gamma,
135 . pair(mvsiz),volumer(mvsiz),
139 . psn1(mvsiz,3),psn2(mvsiz,3),
140 . edot0(mvsiz,3),edots(mvsiz,3),
141 . edotl(mvsiz,3),edotu(mvsiz,3),
142 . exponas,exponbs,funload,runload,
143 . e12(mvsiz),e23(mvsiz),e31(mvsiz),
144 . a11(mvsiz),a12(mvsiz),a13(mvsiz),a22(mvsiz),
145 . a23(mvsiz),a33(mvsiz),detc(mvsiz),
146 . v12(mvsiz),v23(mvsiz),v31(mvsiz),
147 . d11(mvsiz),d12(mvsiz),d44(mvsiz),
149 . huge,small,tiny,shift,pscale
151 . ar1(6),dar1(6),ar2(6),dar2
152 . tmp0,tmp1,tmp2,tmp3,tmp4,tmp5,tmp6,ad(3,3),
154 . tmp0p,tmp1p,tmp2p,tmp3p,tmp4p,tmp5p,tmp6p, dti,iemax,efac(mvsiz),
155 . ratio, pui,pui_1,pui_2,eymin,eymax,eyav
174 ratedamp = uparam(10)
175 krecover = uparam(11)
180 kcompair = uparam(14)
200 tensioncut= uparam(27)
205 viscosity = uparam(31)
206 tolerance = uparam(32)
216 edot(i) =uparam(nuparam-nfunc1+i)
217 alpha(i)=uparam(nuparam-nfunc1*2+i)
226 IF(itotal==2.OR.itotal==3) total=.false.
227 IF (ismstr>=10.AND.ismstr>=12) total=.true.
304 IF (krecover==2)
THEN
310 uvar(i,32)=
max(uvar(i,32),eint(i))
316 IF(eint(i)/=uvar(i,32))
THEN
317 IF( (eint(i)/uvar(i,32))>zero )
THEN
318 pui = exp( beta*log( eint(i)/uvar(i,32) ) )
325 efac(i) =(one-hyster)*( one- pui )
342 av(i,4)=epsxy(i)*half
344 av(i,6)=epszx(i)*half
349 av(i,4)=depsxy(i)*half
350 av(i,5)=depsyz(i)*half
351 av(i,6)=depszx(i)*half
368 dirprv(i,n,j)=dpra(n,j)
387 dprao(l,n)=uvar(i,16+m)
394 dpra(n,j)=dirprv(i,n,j)
401 CALL checkaxes(dprao,dpra,amin,amax,unchanged,tolerance)
402 IF(.NOT.unchanged)
THEN
407 IF(n==l) sn(n,l)= uvar(i,n+3*(m-1))
414 CALL dreh(sn,dprao,ii,jj,ken)
420 CALL dreh(sn,dpra ,ii,jj,ken)
423 uvar(i,n+3*(m-1)) = sn(n,n)
427 IF (beta>tiny.AND.krecover/=2)
THEN
432 IF(n==l) sn(n,l)= uvar(i,n+3*(m-1)+25)
438 CALL dreh(sn,dprao ,ii,jj,ken)
443 CALL dreh(sn,dpra ,ii,jj,ken)
446 uvar(i,n+3*(m-1)+25) = sn(n,n)
478 ear(i,1)= sign(one,epsxx(i)+epsyy(i)+epszz(i))*sqrt(
479 & (epsxx(i)-epsyy(i))**2+
480 & (epsyy(i)-epszz(i))**2+
481 & (epszz(i)-epsxx(i))**2+
482 & two*(epsxy(i)**2+epsyz(i)**2+epszx(i)**2))/sqrt(two)
484 ecr(i,1)= sign(one,depsxx(i)+depsyy(i)+depszz(i))*sqrt(
485 & (depsxx(i)-depsyy(i))**2+
486 & (depsyy(i)-depszz(i))**2+
487 & (depszz(i)-depsxx(i))**2+
488 & ((depsxy(i))**2+(depsyz(i))**2+(depszx(i))**2))
495 IF(ismstr==10.OR.ismstr==12)
THEN
497 IF(off(i)==zero )
THEN
505 IF(timestep<=zero)
THEN
514 IF ((ismstr==10.OR.ismstr==12).AND.ideac==0.AND.offg(i) <=one)
THEN
515 ecr(i,j)=sqrt(ear(i,j)+one)-uvar(i,j)
517 ecr(i,j)=ear(i,j)-uvar(i,j)
520 ear(i,j)=ecr(i,j)+uvar(i,j)
522 ebr(i,j)=ecr(i,j)*dti
528 IF(ismstr==0.OR.ismstr==2.OR.ismstr==4)
THEN
529 el(i,j)=exp(ear(i,j))
532 ebn(i,j)=ebr(i,j)*el(i,j)
533 ecn(i,j)=el(i,j)*(one-exp(-ecr(i,j)))
534 ELSEIF(ismstr==10.OR.ismstr==12)
THEN
535 IF (offg(i) <=one)
THEN
536 el(i,j)=sqrt(ear(i,j)+one)
550 ebn(i,j)=uvar(i,j+6)+(ebn(i,j)-uvar(i,j+6))*ratedamp
559 volumer(i)=el(i,1)*el(i,2)*el(i,3)
564 IF (kcompair==1.AND.volumer(i)<one)
THEN
565 npcurve=ifunc(nfuncp)
566 IF (volumer(i)-phi>small)
THEN
568 pair(i)=-finter(npcurve,volumer(i),npf,tf,df)
569 pair(i)=pair(i)*pscale
571 pair(i)=p0*(volumer(i)-one)/(volumer(i)-phi)
577 pair(i)=exp(-relaxp*time)*
max(pair(i),-maxpres)
579 ELSEIF (kcompair==2.AND.volumer(i)<one)
THEN
580 npcurve=ifunc(nfuncp)
581 pair(i)=-finter(npcurve,volumer(i),npf,tf,df)
596 strain(i,j)=-ean(i,j)
597 rate(i,j)=abs(ebn(i,j))
600 IF((ean(i,j)<zero.AND.ebn(i,j)>zero).OR.
601 & (ean(i,j)>zero.AND.ebn(i,j)<zero))unloading=.true.
603 psn1(i,j)=-
alpha(1)*finter(ifunc(1),strain(i,j),npf,tf,df)
610 IF(edot0(i,j)<edot(1)) edot0(i,j)=edot(1)
611 IF(unloading.AND.iunload/=0)
THEN
614 IF (abs(runload-edot(1))<em20)
THEN
616 & (finter(ifunc(nfuncul),strain(i,j),npf,tf,df1))
620 edotu(i,j)=edot0(i,j)
622 edotl(i,j)=
max(runload,edots(i,j))
624 IF(edotu(i,j)<edots(i,j))edotu(i,j)=edots(i,j)
625 IF(edotu(i,j)>edotl(i,j))edotu(i,j)=edotl(i,j)
628 & finter(ifunc(1),strain(i,j),npf,tf,df1)
629 eyn(i,j)=
alpha(1)*df1
631 & (finter(ifunc(nfuncul),strain(i,j),npf,tf,df2))
633 ratio = (
min(one,(edotu(i,j)-edots(i,j))/
634 & (
max(tiny,edotl(i,j)-edots(i,j)))))
637 pui_1 = exp( exponas*log(ratio) )
642 psn(i,j)=psn2(i,j)+(psn1(i,j)-psn2(i,j))*
643 & exp( exponbs*log( one - pui_1 ) )
661 IF(abs(edotu(i,j)-edots(i,j))>tiny.AND.
662 & abs(psn(i,j)-psn1(i,j))>tiny)visc(i,j)=
663 & abs((psn(i,j)-psn1(i,j))/(edotu(i,j)-edots(i,j)))
665 visc(i,j)=
min(visc(i,j),viscosity)
666 psn(i,j)=psn1(i,j)-visc(i,j)*(edotu(i,j)-edots(i,j))
671 IF(unloading) kun(i,j)=nfunc1
677 & finter(ifunc(kun(i,j)+1),strain(i,j)+shift,npf,tf,df)
686 IF(edot0(i,j)<=edot(l
GOTO 10
694 psn2(i,j)=-
alpha(k(i,j))*
695 & finter(ifunc(kf(i,j)),strain(i,j)+shift,npf
698 edotl(i,j)=edot(k(i,j))
699 edots(i,j)=edot(k1(i,j))
700 psn1(i,j)=-
alpha(k1(i,j))*
701 & finter(ifunc(kf1(i,j)),strain(i,j)+shift,npf,tf,df1)
703 eyn(i,j)=
alpha(l)*df2
705 eyn(i,j)=
alpha(k1(i,j))*df1
708 ratio = (
min(one,(edot0(i,j)-edots(i,j))/
709 & (
max(tiny,edotl(i,j)-edots(i,j)))))
711 pui_1 = exp( exponas*log(ratio) )
716 psn(i,j)=psn2(i,j)+(psn1(i,j)-psn2(i,j))*
717 & exp(exponbs*log(one - pui_1 ) )
729 IF(abs(edot0(i,j)-edots(i,j))>tiny.AND.
730 & abs(psn(i,j)-psn1(i,j))>tiny)visc(i,j)=
731 & abs((psn(i,j)-psn1(i,j))/(edot0(i,j)-edots(i,j)))
733 visc(i,j)=
min(visc(i,j),viscosity)
734 psn(i,j)=psn1(i,j)-visc(i,j)*(edot0(i,j)-edots(i,j))
748 IF(ean(i,j)<zero)
THEN
750 IF(krecover==0.AND.ecn(i,j)<zero)
751 & uvar(i,j+25)=uvar(i,j+25)+abs(ecn(i,j))
753 IF(krecover==1)uvar(i,j+25)=uvar(i,j+25)-ecn(i,j)
754 IF(ebn(i,j)<zero)
THEN
755 decay =
min(one,hyster*(one-exp(-beta*uvar(i,j+25))))
759 IF (krecover==2) decay = efac(i)
762 & psn(i,j)=psn(i,j)*(one-decay)
764 IF(kdecay==1.AND.ecn(i,j)<zero)
765 & psn(i,j)=psn(i,j)*(one-decay)
767 IF(kdecay==2.AND.ecn(i,j)>zero)
768 & psn(i,j)=psn(i,j)*(one-decay)
771 dsigma(i,j)=psn(i,j)-uvar(i,j+3)
776 IF(abs(ecn(i,j))>tiny)
THEN
777 eyn(i,j)=abs(dsigma(i,j)/ecn(i,j))
786 IF(sign(one,(ebn(i,j)/(uvar(i,j+6)+tiny)))/=one)
787 & eyn(i,j)=uvar(i,j+9)
791 eyn(i,j)=eyn(i,j)*theta
796 IF(itotal==0.OR.itotal==2)
THEN
799 IF(ean(i,j)>=zero)
THEN
801 tmp1=exp(-lamda*(volumer(i)-1.+epsfin))
802 ei(i)=efinal+(e0-efinal)*(1-tmp1)
803 tmp2=lamda*(efinal-e0)*tmp1
804 eyn(i,j)=
max(ei(i),tmp2)
806 psn(i,j)=ei(i)*ean(i,j)
808 psn(i,j)=uvar(i,j+3)+ei(i)*ecn(i,j)
810 uvar(i,j+12)=vt/ei(i)
814 IF (krecover==2)
THEN
816 IF(ean(i,j)>=zero)
THEN
819 IF(kdecay==0) psn(i,j)=psn(i,j)*(one-decay)
821 IF(kdecay==1.AND.ecn(i,j)<zero)
822 & psn(i,j)=psn(i,j)*(one-decay)
824 IF(kdecay==2.AND.ecn(i,j)>zero)
825 & psn(i,j)=psn(i,j)*(one-decay)
829 ELSEIF(itotal==-1)
THEN
834 ei(i)=
max(uvar(i,10),uvar(i,11),uvar(i,12))
836 psn(i,j)=ei(i)*ean(i,j)
837 uvar(i,j+12)=vt/ei(i)
840 ELSEIF(itotal==-2)
THEN
843 IF(ean(i,j)>zero)
THEN
845 ei(i)=
max(uvar(i,10),uvar(i,11),uvar(i,12))
847 psn(i,j)=uvar(i,j+3)+ei(i)*ecn(i,j)
848 uvar(i,j+12)=vt/ei(i)
858 sigmax(i)=-(
min(psn(i,1),psn(i,2),psn(i,3))-
859 .
max(psn(i,1),psn(i,2),psn(i,3)))
863 esecant(i,j)=0.4*abs(psn(i,j))/
max(tiny,abs(strain(i,j)))
864 IF (esecant(i,j)<=sigmax(i))
THEN
865 tmp1=0.2*(sigmax(i)-esecant(i,j))
866 psn(i,j)=psn(i,j)+tmp1*ean(i,j)
867 eyn(i,j)=
max(eyn(i,j),(one+tmp1)*esecant(i,j))
873 IF ((ismstr==10.OR.ismstr==12).AND.ideac==0)
THEN
876 tmp0=
max(eyn(i,j),uvar(i,j+9))
877 IF (offg(i) <=one)
THEN
878 uvar(i,j )=sqrt(ear(i,j)+one)
892 tmp0=
max(eyn(i,j),uvar(i,j+9))
904 epsd(i)=
max(abs(ebn(i,1)),abs(ebn(i,2)),abs(ebn(i,3)))
911 d11(i)=emax(i)*(one-vt)/(one+vt)/(one-two*vt)
912 d12(i)=emax(i)*vt/(one+vt)/(one-two*vt)
913 d44(i)=emax(i)/two/(one+vt)
917 signxx(i)=d11(i)*epsxx(i)+d12(i)*epsyy(i)+d12(i)*epszz(i)
918 signyy(i)=d12(i)*epsxx(i)+d11(i)*epsyy(i)+d12(i)*epszz(i)
919 signzz(i)=d12(i)*epsxx(i)+d12(i)*epsyy(i)+d11(i)*epszz(i)
920 signxy(i)=d44(i)*epsxy(i)
921 signyz(i)=d44(i)*epsyz(i)
922 signzx(i)=d44(i)*epszx(i)
923 soundsp(i) = sqrt(d11(i)/rho0(i))
926 & d11(i)*depsxx(i)+d12(i)*depsyy(i)+d12(i)*depszz(i)
928 & d12(i)*depsxx(i)+d11(i)*depsyy(i)+d12(i)*depszz(i)
930 & d12(i)*depsxx(i)+d12(i)*depsyy(i)+d11(i)*depszz(i)
931 signxy(i)=sigoxy(i)+d44(i)*depsxy(i)
932 signyz(i)=sigoyz(i)+d44(i)*depsyz(i)
933 signzx(i)=sigozx(i)+d44(i)*depszx(i)
934 soundsp(i) = sqrt(d11(i)/rho0(i))
943 IF(vt+vc<=two*tiny)
THEN
949 psc(i,1)=eyn(i,1)*ecn(i,1)
950 psc(i,2)=eyn(i,2)*ecn(i,2)
951 psc(i,3)=eyn(i,3)*ecn(i,3)
954 e12(i)=(ean(i,1)+ean(i,2))/two
955 e23(i)=(ean(i,2)+ean(i,3))/two
956 e31(i)=(ean(i,3)+ean(i,1))/two
957 v12(i)=vc+(vt-vc)*(one-exp(-rv*abs(e12(i))))*
958 & (sign(one,e12(i))+one)/two
959 v23(i)=vc+(vt-vc)*(one-exp(-rv*abs(e23(i
960 & (sign(one,e23(i))+one)/two
961 v31(i)=vc+(vt-vc)*(one-exp(-rv*abs(e31(i))))*
962 & (sign(one,e31(i))+one)/two
964 detc(i)=one-v23(i)*v23(i)-v31(i)*v31(i)-v12(i)*v12(i)-
965 & two*v12(i)*v31(i)*v23(i)
966 a11(i)=(one-v23(i)*v23(i))
967 a12(i)=(v12(i)+v23(i)*v31(i))
968 a13(i)=(v31(i)+v23(i)*v12(i))
969 a22(i)=(one-v31(i)*v31(i))
970 a23(i)=(v23(i)+v31(i)*v12(i))
971 a33(i)=(one-v12(i)*v12(i))
972 psc(i,1)=(a11(i)*psn(i,1)+a12(i)*psn(i,2)+a13(i)*psn(i,3))/
974 psc(i,2)=(a12(i)*psn(i,1)+a22(i)*psn(i,2)+a23(i)*psn(i,3))/
976 psc(i,3)=(a13(i)*psn(i,1)+a23(i)*psn(i,2)+a33(i)*psn(i,3))/
979 uvar(i,13)=theta*v23(i)/ei(i)+(one-theta)*uvar(i,13)
980 uvar(i,14)=theta*v31(i)/ei(i)+(one-theta)*uvar(i,14)
981 uvar(i,15)=theta*v12(i)/ei(i)+(one-theta)*uvar(i,15)
982 detc(i)=one/(eyn(i,1)*eyn(i,2)*eyn(i,3))-
983 & uvar(i,13)*uvar(i,13)/eyn(i,1)-
984 & uvar(i,14)*uvar(i,14)/eyn(i,2)-
985 & uvar(i,15)*uvar(i,15)/eyn(i,3)-
986 & 2*uvar(i,13)*uvar(i,14)*uvar(i,15)
987 a11(i)=one/(eyn(i,2)*eyn(i,3))-uvar(i,13)*uvar(i,13)
988 a12(i)=uvar(i,15)/eyn(i,3)+uvar
989 a13(i)=uvar(i,14)/eyn(i,2)+uvar(i,13)*uvar(i,15)
990 a22(i)=one/(eyn(i,1)*eyn(i,3))-uvar(i,14)*uvar(i,14)
991 a23(i)=uvar(i,13)/eyn(i,1)+uvar(i,14)*uvar(i,15)
992 a33(i)=one/(eyn(i,1)*eyn(i,2))-uvar(i,15)*uvar(i,15)
994 psc(i,1)=((a11(i)*ecn(i,1)+a12(i)*ecn(i,2)+a13(i)*ecn
996 psc(i,2)=((a12(i)*ecn(i,1)+a22(i)*ecn
998 psc(i,3)=((a13(i)*ecn(i,1)+a23(i)*ecn(i,2)+a33(i)*ecn
1004 IF(off(i)==zero.OR.psn(i,j)>abs(tensioncut))
THEN
1013 IF(ismstr==0.OR.ismstr==2.OR.ismstr==4)
THEN
1015 den1=el(i,2)*el(i,3)
1016 den2=el(i,3)*el(i,1)
1018 psc(i,1)=psc(i,1)/den1
1019 psc(i,2)=psc(i,2)/den2
1020 psc(i,3)=psc(i,3)/den3
1021 eyn(i,1)=eyn(i,1)/den1
1022 eyn(i,2)=eyn(i,2)/den2
1023 eyn(i,3)=eyn(i,3)/den3
1024 ELSEIF(ismstr==10.OR.(ismstr==12.AND.offg(i)<=one))
THEN
1026 den1=el(i,1)/volumer(i)
1027 den2=el(i,2)/volumer(i)
1028 den3=el(i,3)/volumer(i)
1029 psc(i,1)=psc(i,1)*den1
1030 psc(i,2)=psc(i,2)*den2
1031 psc(i,3)=psc(i,3)*den3
1032 eyn(i,1)=eyn(i,1)*den1
1033 eyn(i,2)=eyn(i,2)*den2
1034 eyn(i,3)=eyn(i,3)*den3
1037 IF (kcompair==2)
THEN
1040 tmp3=
min(el(i,1),el(i,2),el(i,3))
1041 IF (tmp0<one.AND.tmp3<one
1042 & .AND.tmp3>tmp0.AND.abs(tmp0-tmp3)>em6)
THEN
1043 IF(volumer(i)>zero)
THEN
1044 tmp2=exp((1./3.)*log(volumer(i)))-volumer(i)
1048 tmp4=(tmp3-tmp0)/tmp2
1056 sigprv(i,j)=psc(i,j)+aa(i)*(pair(i)-psc(i,j))
1062 sigprv(i,j)=psc(i,j)+pair(i)
1068 signxx(i) = dirprv(i,1,1)*dirprv(i,1,1)*sigprv(i,1)
1069 & + dirprv(i,1,2)*dirprv(i,1,2)*sigprv(i,2)
1070 & + dirprv(i,1,3)*dirprv(i,1,3)*sigprv(i,3)
1071 signyy(i) = dirprv(i,2,2)*dirprv(i,2,2)*sigprv(i,2)
1072 & + dirprv(i,2,3)*dirprv(i,2,3)*sigprv(i,3)
1073 & + dirprv(i,2,1)*dirprv(i,2,1)*sigprv(i,1)
1074 signzz(i) = dirprv(i,3,3)*dirprv(i,3,3)*sigprv(i,3)
1075 & + dirprv(i,3,1)*dirprv(i,3,1)*sigprv(i,1)
1076 & + dirprv(i,3,2)*dirprv(i,3,2)*sigprv(i,2)
1077 signxy(i) = dirprv(i,1,1)*dirprv(i,2,1)*sigprv(i,1)
1078 & + dirprv(i,1,2)*dirprv(i,2,2)*sigprv(i,2)
1079 & + dirprv(i,1,3)*dirprv(i,2,3)*sigprv(i,3)
1080 signyz(i) = dirprv(i,2,2)*dirprv(i,3,2)*sigprv(i,2)
1081 & + dirprv(i,2,3)*dirprv(i,3,3)*sigprv(i,3)
1082 & + dirprv(i,2,1)*dirprv(i,3,1)*sigprv(i,1)
1083 signzx(i) = dirprv(i,3,3)*dirprv(i,1,3)*sigprv(i,3)
1084 & + dirprv(i,3,1)*dirprv(i,1,1)*sigprv(i,1)
1085 & + dirprv(i,3,2)*dirprv(i,1,2)*sigprv(i,2)
1092 signyy(i)=signyy(i)+sigoyy(i)
1093 signzz(i)=signzz(i)+sigozz(i)
1094 signxy(i)=signxy(i)+sigoxy(i)
1095 signyz(i)=signyz(i)+sigoyz(i)
1096 signzx(i)=signzx(i)+sigozx(i)
1102 emax(i)=
max(ei(i),eyn(i,1),eyn(i,2),eyn(i,3))
1108 epsxy(i) = dirprv(i,1,1)*dirprv(i,2,1)*ean(i,1)
1109 & + dirprv(i,1,2)*dirprv(i,2,2)*ean(i,2)
1110 & + dirprv(i,1,3)*dirprv(i,2,3)*ean(i,3)
1111 epsyz(i) = dirprv(i,2,2)*dirprv(i,3,2)*ean(i,2)
1112 & + dirprv(i,2,3)*dirprv(i,3,3)*ean(i,3)
1113 & + dirprv(i,2,1)*dirprv(i,3,1)*ean(i,1)
1114 epszx(i) = dirprv(i,3,3)*dirprv(i,1,3)*ean(i,3)
1115 & + dirprv(i,3,1)*dirprv(i,1,1)*ean(i,1)
1116 & + dirprv(i,3,2)*dirprv(i,1,2)*ean(i,2)
1119 esecant(i,1)=0.5*abs(signxy(i))/
max(tiny,abs(epsxy(i)))
1120 esecant(i,2)=0.5*abs(signyz(i))/
max(tiny,abs(epsyz(i)))
1121 esecant(i,3)=0.5*abs(signzx(i))/
max(tiny,abs(epszx(i)))
1122 sigmax(i)=
max(0.5*ei(i),sigmax(i))
1123 IF (esecant(i,1)<=sigmax(i))
THEN
1124 tmp1=0.1*(sigmax(i)-esecant(i,1))
1125 signxy(i)=signxy(i)+tmp1*epsxy(i)
1127 IF (esecant(i,2)<=sigmax(i))
THEN
1128 tmp1=0.1*(sigmax(i)-esecant(i,2))
1129 signyz(i)=signyz(i)+tmp1*epsyz(i)
1131 IF (esecant(i,3)<=sigmax(i))
THEN
1132 tmp1=0.1*(sigmax(i)-esecant(i,3))
1133 signzx(i)=signzx(i)+tmp1*epszx(i)
1138 kkk=emax(i)/(three*(one-two*
max(vc,vt)))
1139 ggg=emax(i)/(two*(one+
max(vc,vt)))
1140 soundsp(i)=sqrt((kkk+four_over_3*ggg)/rho0(i))
1141 viscmax(i)=
max(visc(i,1),visc(i,2),visc(i,3))
1144 IF (impl_s > 0 .OR. ihet > 1)
THEN
1148 emax(i)=
max(ei(i),eyn(i,1),eyn(i,2),eyn(i,3))
1152 eymin=
min(eyn(i,1),eyn(i,2),eyn(i,3))
1153 eyav = third*(eyn(i,1)+eyn(i,2)+eyn(i,3))
1154 et(i)= eymin/emax(i)
1157 IF (time==zero)
THEN
1158 tmp1=-
alpha(1)*finter(ifunc(1),em20,npf,tf,df)
1159 tmp2 =
alpha(1)*df/e0
1161 uvar(1:nel,33) = -one
1163 uvar(1:nel,33) =et(1:nel)
1165 ELSEIF (nel>0.AND.uvar(1,33)<zero)
THEN
1169 et(1:nel)=tmp1*et(1:nel)+(one-tmp1)*uvar(1:nel,33)
1170 uvar(1:nel,33) =et(1:nel)