35 1 NEL ,NUVAR ,MFUNC ,KFUNC ,NPF ,TF ,
36 2 TIMESTEP,UPARAM ,RHO0 ,
37 4 DEPSXX ,DEPSYY ,DEPSZZ ,DEPSXY ,DEPSYZ ,DEPSZX ,
38 5 EPSXX ,EPSYY ,EPSZZ ,EPSXY ,EPSYZ ,EPSZX ,
39 6 SIGOXX ,SIGOYY ,SIGOZZ ,SIGOXY ,SIGOYZ ,SIGOZX ,
40 7 SIGNXX ,SIGNYY ,SIGNZZ ,SIGNXY ,SIGNYZ ,SIGNZX ,
41 8 SOUNDSP,VISCMAX,UVAR ,OFF ,NGL ,IEOS ,
42 9 IPM ,MAT ,EPSP ,IPLA ,YLD ,PLA ,
43 A DPLA1 ,ETSE ,AL_IMP ,SIGNOR ,AMU ,DPDM ,
44 B FACYLDI,NVARTMP,VARTMP ,DMG ,INLOC ,PLANL ,
45 C SIGBXX ,SIGBYY ,SIGBZZ ,SIGBXY ,SIGBYZ ,SIGBZX )
49#include "implicit_f.inc"
99 INTEGER,
INTENT(IN) :: NEL, NUVAR,IPLA,NVARTMP,INLOC
100 INTEGER,
INTENT(IN) :: IEOS
101 INTEGER ,
DIMENSION(NEL),
INTENT(IN) :: NGL,MAT
102 INTEGER ,
DIMENSION(NPROPMI,NUMMAT),
INTENT(IN) :: IPM
103 my_real :: TIMESTEP,UPARAM(*),RHO0(NEL),
104 . EPSXX(NEL),EPSYY(NEL),EPSZZ(NEL),
105 . EPSXY(NEL),EPSYZ(NEL),EPSZX(NEL),
106 . DEPSXX(NEL),DEPSYY(NEL),DEPSZZ(NEL),
107 . DEPSXY(NEL),DEPSYZ(NEL),DEPSZX(NEL),
108 . SIGOXX(NEL),SIGOYY(NEL),SIGOZZ(NEL),
109 . SIGOXY(NEL),SIGOYZ(NEL),SIGOZX(NEL),
110 . epsp(nel),etse(nel),amu(nel),facyldi(nel),
111 . dmg(nel),planl(nel)
112 my_real,
DIMENSION(MVSIZ) ,
INTENT(IN) :: dpdm
117 . signxx(nel),signyy(nel),signzz(nel),
118 . signxy(nel),signyz(nel),signzx(nel),
119 . soundsp(nel),viscmax(nel),dpla1(nel),
120 . al_imp(nel),signor(mvsiz,6)
125 . uvar(nel,nuvar), off(nel
127 INTEGER,
INTENT(INOUT) :: VARTMP(NEL,NVARTMP)
128 my_real,
DIMENSION(NEL),
INTENT(INOUT) :: SIGBXX,SIGBYY,SIGBZZ,SIGBXY,SIGBYZ,SIGBZX
132 INTEGER NPF(*), MFUNC, KFUNC(MFUNC)
133 my_real :: TF(*),FINTER
146 INTEGER I,J,K,J1,J2,NFUNC,VP,II,NITER,IFAIL,NRATE,PFUN,IPFUN,
147 . IPFLAG,ISMOOTH,YLDCHECK,OPTE,IFUNCE,NINDX
148 INTEGER ILEN1(MVSIZ),IAD2(MVSIZ),ILEN2(MVSIZ),INDEX(MVSIZ),
149 . IFUNC(100),IAD1(MVSIZ), IADP(MVSIZ),ILENP(MVSIZ),
150 . INDX(MVSIZ),JJ(MVSIZ), IADP2(MVSIZ),ILENP2(MVSIZ)
151 INTEGER,
DIMENSION(MVSIZ) :: IPOS1,IPOS2,IPOSPE,IPOSP,IPOSP2
153 . E11,NU,DAV,VM,R(MVSIZ),FAC,EPST,P,EPSP1,EPSP2,
154 . E1,E2,E3,E4,E5,E6,C,CC,D,Y,YP,E42,E52,E62,EPST2,
155 . C11,G11,G21,G31,EPSR1,DPLA,EPSF,HKIN,FISOKIN,
156 . DSXX,DSYY,DSZZ,DSXY,DSYZ,
157 . dszx,sigpxx,sigpyy,sigpxy,sigpyz,sigpzx,sigpzz,
alpha,
158 . epsr1dav,epsr1f,vm_1,g3h,norm_1,epsmax,ssp,
159 . einf,ce1,epsr2,svm,df,f
160 my_real :: fact(nel),
161 . bulk(mvsiz),g(mvsiz),g2(mvsiz),g3(mvsiz),
162 . y1(mvsiz),y2(mvsiz),h(mvsiz),dydx1(mvsiz),
163 . dydx2(mvsiz),fail(mvsiz),e(mvsiz),
164 . p0(mvsiz),pfac(mvsiz),pscale(mvsiz),rfac(mvsiz),
165 . pscale1(mvsiz),pla0(mvsiz), plam(mvsiz),
166 . dfdp(mvsiz),epstt(mvsiz),
167 . sigexx(mvsiz),sigeyy(mvsiz),sigezz(mvsiz),
168 . sigexy(mvsiz),sigeyz(mvsiz),sigezx(mvsiz),
169 . dydxe(mvsiz),plaold(mvsiz),
174 . plap(mvsiz),svm2(mvsiz),dpla_j(mvsiz),dpla_i(mvsiz),
175 . hi(mvsiz),escale12(mvsiz),
177 INTEGER :: NINDEX_PLA,NINDEX_VINTER
178 INTEGER,
DIMENSION(MVSIZ) :: INDEX_PLA,INDEX_VINTER
179 my_real,
DIMENSION(MVSIZ) :: TAB_LOC,Y1_LOC,DYDX1_LOC, Y2_LOC,DYDX2_LOC
185 nfunc = ipm(10,mat(1))
187 ifunc(j)= ipm(10+j,mat(1))
189 ipfun = ifunc(nfunc-1)
194 nrate = nint(uparam(1))
195 epsmax = uparam(6+2*nrate+1)
197 epsr2 = uparam(6+2*nrate+3)
198 g21 = uparam(6+2*nrate+4)
199 g31 = uparam(6+2*nrate+5)
200 c11 = uparam(6+2*nrate+6)
201 ssp = uparam(6+2*nrate+7)
202 fisokin = uparam(6+2*nrate+8)
203 epsf = uparam(6+2*nrate+9)
204 pfun = nint(uparam(16+2*nrate))
205 opte = uparam(2*nrate+23)
206 einf = uparam(2*nrate+24)
207 ce1 = uparam(2*nrate+25)
208 vp = nint(uparam(2*nrate + 26))
209 ifail = nint(uparam(2*nrate + 27))
210 yldcheck = nint(uparam(2*nrate + 28))
211 ismooth = nint(uparam(2*nrate + 29))
213#include "vectorize.inc"
216 pscale(i) = uparam(17+2*nrate)
229 IF (fisokin > zero)
THEN
232#include "vectorize.inc"
234 sigoxx(i) = sigoxx(i) - sigbxx(i)
235 sigoyy(i) = sigoyy(i) - sigbyy(i)
236 sigozz(i) = sigozz(i) - sigbzz(i)
237 sigoxy(i) = sigoxy(i) - sigbxy(i)
238 sigoyz(i) = sigoyz(i) - sigbyz(i)
239 sigozx(i) = sigozx(i) - sigbzx(i)
246 ifunce = uparam( 2*nrate + 22)
248 IF(pla(i) > zero)
THEN
249 nindex_pla = nindex_pla + 1
250 index_pla(nindex_pla) = i
251 ipospe(nindex_pla) = vartmp(i,1)
252 iadp(nindex_pla) = npf(kfunc(ifunce)) / 2 + 1
253 ilenp(nindex_pla) = npf(kfunc(ifunce)+1) / 2 - iadp(nindex_pla) - ipospe(nindex_pla)
254 tab_loc(nindex_pla) = pla(i)
257 CALL vinter2(tf,iadp,ipospe,ilenp,nindex_pla,tab_loc,dydxe,escale12)
258 vartmp(index_pla(1:nindex_pla),1) = ipospe(1:nindex_pla)
259#include "vectorize.inc"
262 e(i) = escale12(ii)* e(i)
263 g(i) = half*e(i)/(one+nu)
266 bulk(i) = e(i)/three/(one - two*nu)
267 soundsp(i) = sqrt((bulk(i) + four_over_3*g(i))/rho0(i))
269 ELSEIF ( ce1 /= zero)
THEN
270#include "vectorize.inc"
272 IF(pla(i) > zero)
THEN
273 e(i) = e11-(e11-einf)*(one-exp(-ce1*pla(i)))
274 g(i) = half*e(i)/(one+nu)
277 bulk(i) = e(i)/three/(one - two*nu)
278 soundsp(i) = sqrt((bulk(i) + four_over_3*g(i))/rho0(i))
287 iadp(i) = npf(ipfun) / 2 + 1
288 ilenp(i) = npf(ipfun + 1) / 2 - iadp(i) - vartmp(i,2)
290 CALL vinter2(tf,iadp,vartmp(1:nel,2),ilenp,nel,pscale,dfdp,pfac)
291 pfac(1:nel) =
max(zero, pfac(1:nel))
295 IF (impl_s > 0) pscale1(1:nel)=pscale(1:nel) * ( bulk(1:nel) * amu(1:nel) )
300#include "vectorize.inc"
304 dav = (depsxx(i)+depsyy(i)+depszz(i))*third
306 p0(i) = -(sigoxx(i)+sigoyy(i)+sigozz(i))*third
309 pscale(i) = pscale(i)*p0(i)
312 signxx(i)=sigoxx(i)+p0(i)+g2(i)*(depsxx(i)-dav)
313 signyy(i)=sigoyy(i)+p0(i)+g2(i)*(depsyy(i)-dav)
314 signzz(i)=sigozz(i)+p0(i)+g2(i)*(depszz(i)-dav)
317 signxy(1:nel)=sigoxy(1:nel)+g(1:nel) *depsxy(1:nel)
318 signyz(1:nel)=sigoyz(1:nel)+g(1:nel) *depsyz(1:nel)
319 signzx(1:nel)=sigozx(1:nel)+g(1:nel) *depszx(1:nel)
320 sigexx(1:nel) = signxx(1:nel)
321 sigeyy(1:nel) = signyy(1:nel)
322 sigezz(1:nel) = signzz(1:nel)
323 sigexy(1:nel) = signxy(1:nel)
324 sigeyz(1:nel) = signyz(1:nel)
325 sigezx(1:nel) = signzx(1:nel)
326 viscmax(1:nel) = zero
334 epsr1f =
min(epsr1,epsf)
337 dav = (epsxx(i)+epsyy(i)+epszz(i)) * third
353 c = - half *(e1*e1 + e2*e2
354 epst = sqrt(-c*third)
356 epsr1dav = epsr1f - dav
357 IF(epst+epst < epsr1dav)cycle
358 d = - e1*e2*e3 + e1*e52 + e2*e62 + e3*e42
365 y = (epst2 + c)* epst + d
369 IF(epst < epsr1dav)cycle
371 y = (epst2 + c)* epst + d
374 IF(epst < epsr1dav)cycle
376 y = (epst2 + c)* epst + d
379 IF(epst < epsr1dav)cycle
381 y = (epst2 + c)* epst + d
390 fail(i) =
max(em20,
min(one, (epsr2-epst)/(epsr2-epsr1) ))
391 dmg(i) = one -
max(zero,
min(one,(epsr2-epst)/(epsr2-epsr1)))
402 iad1(1:nel) = npf(ifunc(1)) / 2 + 1
403 ilen1(1:nel) = npf(ifunc(1)+1) / 2 - iad1(1:nel) - vartmp(1:nel,3)
405 CALL vinter(tf,iad1,vartmp(1:nel,3),ilen1,nel,pla,dydx1,y1)
407 yfac(1:nel,1) = uparam(6+nrate+1)*facyldi(1:nel)
408 fact(1:nel) = fail(1:nel) * pfac(1:nel) * yfac(1:nel,1)
409 h(1:nel) = dydx1(1:nel) * fact(1:nel)
411 IF (fisokin == zero)
THEN
412 yld(1:nel) = y1(1:nel) * fact
413 ELSE IF (fisokin == one)
THEN
414 yld(1:nel) = tf(npf(ifunc(1))+1) * fact(1:nel)
415 ELSE IF (fisokin > zero)
THEN
416 yld(1:nel) = ((one-fisokin)*y1(1:nel) + fisokin *tf(npf(ifunc(1))+1))*fact(1:nel)
423#include "vectorize.inc"
425 IF (epsp(i) >= uparam(6+j)) jj(i) = j
429 IF (ismooth == 2)
THEN
430#include "vectorize.inc"
432 epsp1 =
max(uparam(6+jj(i)), em20)
433 epsp2 = uparam(7+jj(i))
434 rfac(i) = log(
max(epsp(i),em20)/epsp1) / log(epsp2/epsp1)
437#include "vectorize.inc"
439 epsp1 = uparam(6+jj(i))
440 epsp2 = uparam(7+jj(i))
441 rfac(i) = (epsp(i) - epsp1) / (epsp2 - epsp1)
445#include "vectorize.inc"
449 ipos1(i) = vartmp(i,j1+2)
450 ipos2(i) = vartmp(i,j2+2)
451 yfac(i,1)= uparam(6+nrate+j1) * facyldi(i)
452 yfac(i,2)= uparam(6+nrate+j2) * facyldi(i)
454 iad1(1:nel) = npf(ifunc(jj(1:nel))) / 2 + 1
455 ilen1(1:nel) = npf(ifunc(jj(1:nel))+1) / 2 - iad1(1:nel) - ipos1(1:nel)
456 iad2(1:nel) = npf(ifunc(jj(1:nel)+1)) / 2 + 1
457 ilen2(1:nel) = npf(ifunc(jj(1:nel)+1)+1) / 2 - iad2(1:nel) - ipos2(1:nel)
459 CALL vinter(tf,iad1,ipos1,ilen1,nel,pla,dydx1,y1)
460 CALL vinter(tf,iad2,ipos2,ilen2,nel,pla,dydx2,y2)
465 vartmp(i,j1+2) = ipos1(i)
466 vartmp(i,j2+2) = ipos2(i)
469 IF (fisokin == zero)
THEN
470#include "vectorize.inc"
474 y1(i)= y1(i)*yfac(i,1)
475 y2(i)= y2(i)*yfac(i,2)
477 cc = fail(i)* pfac(i)
478 yld(i) = (y1(i) + fac*(y2(i)-y1(i))) * cc
479 dydx1(i)= dydx1(i)*yfac(i,1)
480 dydx2(i)= dydx2(i)*yfac(i,2)
481 h(i) = (dydx1(i) + fac*(dydx2(i)-dydx1(i))) * cc
484 ELSEIF (fisokin == one)
THEN
486#include "vectorize.inc"
491 cc = fail(i) * pfac(i)
492 dydx1(i)=dydx1(i)*yfac(i,1)
493 dydx2(i)=dydx2(i)*yfac(i,2)
494 h(i) = cc*(dydx1(i) + fac*(dydx2(i)-dydx1(i)))
495 y1(i)= tf(npf(ifunc(j1))+1)
496 y2(i)= tf(npf(ifunc(j2))+1)
497 y1(i)= y1(i)*yfac(i,1)
498 y2(i)= y2(i)*yfac(i,2)
499 yld(i) = cc*(y1(i) + fac*(y2(i)-y1(i)))
504#include "vectorize.inc"
508 y1(i) = y1(i)*yfac(i,1)
509 y2(i) = y2(i)*yfac(i,2)
511 yld(i) = fail(i)*(y1(i) + fac*(y2(i)-y1(i)))
512 yld(i) =
max(yld(i),em20)
513 dydx1(i)= dydx1(i)*yfac(i,1)
514 dydx2(i)= dydx2(i)*yfac(i,2)
515 h(i) = fail(i)*(dydx1(i) + fac*(dydx2(i)-dydx1(i)))
516 h(i) = h(i) * pfac(i)
518 y1(i)=tf(npf(ifunc(j1))+1)
519 y2(i)=tf(npf(ifunc(j2))+1)
520 y1(i)=y1(i)*yfac(i,1)
521 y2(i)=y2(i)*yfac(i,2)
522 yld(i) = (one - fisokin) * yld(i)
523 . + fisokin * (fail(i)*(y1(i) + fac*(y2(i)-y1(i))))
524 yld(i) = yld(i) * pfac(i)
529 IF (yldcheck == 1)
THEN
531 yld(i) =
max(yld(i), em20)
539 vm =three*(half*(signxx(i)**2+signyy(i)**2+signzz(i)**2)
540 . + signxy(i)**2+signyz(i)**2+signzx(i)**2)
541 IF(vm > yld(i)*yld(i))
THEN
543 r(i) = yld(i)/
max(vm,em20)
544 signxx(i)=signxx(i)*r(i)
545 signyy(i)=signyy(i)*r(i)
546 signzz(i)=signzz(i)*r(i)
547 signxy(i)=signxy(i)*r(i)
548 signyz(i)=signyz(i)*r(i)
549 signzx(i)=signzx(i)*r(i)
550 pla(i) = pla(i) + (one - r(i))*vm/
max(g3(i)+h(i),em20)
551 dpla1(i) = (one - r(i))*vm/
max(g3(i)+h(i),em20)
555 ELSEIF(ipla == 2)
THEN
558 vm = three*(half*(signxx(i)**2+signyy(i)**2+signzz(i)**2)
559 . + signxy(i)**2+signyz(i)**2+signzx(i)**2)
560 IF (vm > yld(i)*yld(i))
THEN
562 r(i) = yld(i)/
max(vm,em20)
563 signxx(i)=signxx(i)*r(i)
564 signyy(i)=signyy(i)*r(i)
565 signzz(i)=signzz(i)*r(i)
566 signxy(i)=signxy(i)*r(i)
567 signyz(i)=signyz(i)*r(i)
568 signzx(i)=signzx(i)*r(i)
569 pla(i)=pla(i) + (one-r(i))*vm/
max(g3(i),em20)
570 dpla1(i) = (one-r(i))*vm/
max(g3(i),em20)
574 ELSEIF(ipla == 1)
THEN
576 IF (impl_s == 0)
THEN
578 vm = three*(half*(signxx(i)**2+signyy(i)**2+signzz(i)**2)
579 . + signxy(i)**2+signyz(i)**2+signzx(i)**2)
580 IF (vm > yld(i)*yld(i))
THEN
582 r(i) = yld(i)/
max(vm,em20)
584 dpla =(one - r(i)) * vm/
max(g3(i)+h(i),em20)
586 yld(i) =
max(yld(i)+(one - fisokin)*dpla*h(i),zero)
587 r(i) =
min(one,yld(i) /
max(vm,em20))
591 signxx(i)=signxx(i)*r(i)
592 signyy(i)=signyy(i)*r(i)
593 signzz(i)=signzz(i)*r(i)
594 signxy(i)=signxy(i)*r(i)
595 signyz(i)=signyz(i)*r(i)
596 signzx(i)=signzx(i)*r(i)
607 IF (pfun > 0) ipflag = 1
611 iad1(i) = npf(ifunc(j1)) / 2 + 1
612 ilen1(i) = npf(ifunc(j1)+1) / 2 - iad1(i)
615 . signxy, signyz, signzx,
620 . fisokin, vartmp,pla0,
622 . ipflag, pfun, ipfun, iposp,
623 . nrate, npf, iadp, ilenp,
624 . pfac, pscale1, dfdp, fail,
626 . sigbxx,sigbyy,sigbzz,sigbxy,sigbyz,sigbzx)
646 svm2(i) = three*(half*(signxx(i)**2+signyy(i)**2+signzz(i)**2)
647 . + signxy(i)**2+signyz(i)**2+signzx(i)**2)
651 IF(svm2(i)>yld(i)*yld(i).AND.off(i)== one)
THEN
661 IF (fisokin == zero)
THEN
665#include "vectorize.inc"
668 svm_tab(i) = sqrt(svm2(i))
669 dpla_j(i) = uvar(i,1) + em09
679 IF (plap(i) >= uparam(6+j)) jj(i) = j
682 IF (ismooth == 2)
THEN
683#include "vectorize.inc"
686 epsp1 =
max(uparam(6+jj(i)), em20)
687 epsp2 = uparam(7+jj(i))
688 rfac(i) = log(
max(plap(i),em20)/epsp1) / log(epsp2/epsp1)
691#include "vectorize.inc"
694 epsp1 = uparam(6+jj(i))
695 epsp2 = uparam(7+jj(i))
696 rfac(i) = (plap(i) - epsp1) / (epsp2 - epsp1)
701#include "vectorize.inc"
704 nindex_vinter = nindex_vinter + 1
705 index_vinter(nindex_vinter) = i
708 iposp(nindex_vinter) = vartmp(i,j1+2)
709 iadp(nindex_vinter) = npf(ifunc(jj(i)) ) / 2 + 1
710 ilenp(nindex_vinter) = npf(ifunc(jj(i)) + 1) / 2 - iadp(nindex_vinter) - iposp(nindex_vinter)
711 iposp2(nindex_vinter) = vartmp(i,j2+2)
712 iadp2(nindex_vinter) = npf(ifunc(jj(i)+1)) / 2 + 1
713 ilenp2(nindex_vinter) = npf(ifunc(jj(i)+1) + 1) / 2 - iadp2(nindex_vinter) - iposp2(nindex_vinter)
714 tab_loc(nindex_vinter) = pla(i)
715 yfac(i,1) = uparam(6+nrate+j1) * facyldi(i)
716 yfac(i,2) = uparam(6+nrate+j2) * facyldi(i)
719 CALL vinter2(tf,iadp,iposp,ilenp,nindex_vinter,tab_loc,dydx1_loc,y1_loc)
720 CALL vinter2(tf,iadp2,iposp2,ilenp2,nindex_vinter,tab_loc,dydx2_loc,y2_loc)
722 DO ii=1,nindex_vinter
726 vartmp(i,j1+2) = iposp(ii)
727 vartmp(i,j2+2) = iposp2(ii)
729#include "vectorize.inc"
730 DO ii=1,nindex_vinter
734 dydx1(i)=dydx1_loc(ii)
735 dydx2(i)=dydx2_loc(ii)
738#include "vectorize.inc"
741 y1(i) = y1(i) * yfac(i,1)
742 y2(i) = y2(i) * yfac(i,2)
744 yld(i) = fail(i)*(y1(i) + fac*(y2(i)-y1(i)))
745 yld(i) =
max(yld(i),em20)
746 dydx1(i)=dydx1(i)*yfac(i,1)
747 dydx2(i)=dydx2(i)*yfac(i,2)
748 h(i) = fail(i)*(dydx1(i) + fac*(dydx2(i)-dydx1(i)))
749 yld(i) = yld(i)*
max(zero,pfac(i))
750 h(i) = h(i) *
max(zero,pfac(i))
751 dfsr(i) = h(i) +
max(zero,pfac(i))*fail(i)*(y2(i)-y1(i))/
752 . (uparam(7+jj(i))-uparam(6+jj(i))) /timestep
757#include "vectorize.inc"
760 dpla_i(i) = dpla_j(i)
761 pla(i) = plaold(i) + dpla_i(i)
762 plap(i) = dpla_i(i) / timestep
763 r(i) = yld(i)/(yld(i) +g3(i)*dpla_i(i))
764 svm = r(i)* svm_tab(i)
766 f = svm - yld(i) - g3(i) *dpla_i(i)
767 df = - g3(i) -dfsr(i)
768 df = sign(
max(abs(df),em20),df)
769 IF(dpla_i(i) > zero)
THEN
770 dpla_j(i)=
max( em10 ,dpla_i(i)-f/df)
777 pla(i) = plaold(i) + dpla_j(i)
778 plap(i) = dpla_j(i) / timestep
784 IF(plap(i) >= uparam(6+j)) jj(i) = j
787 IF (ismooth == 2)
THEN
788#include "vectorize.inc"
790 epsp1 =
max(uparam(6+jj(i)), em20)
791 epsp2 = uparam(7+jj(i))
792 rfac(i) = log(
max(plap(i),em20)/epsp1) / log(epsp2/epsp1)
795#include "vectorize.inc"
798 epsp1 = uparam(6+jj(i))
799 epsp2 = uparam(7+jj(i))
800 rfac(i) = (plap(i) - epsp1) / (epsp2 - epsp1)
805#include "vectorize.inc"
808 nindex_vinter = nindex_vinter + 1
809 index_vinter(nindex_vinter) = i
812 iposp(nindex_vinter) = vartmp(i,j1+2)
813 iadp(nindex_vinter) = npf(ifunc(jj(i)) ) / 2 + 1
814 ilenp(nindex_vinter) = npf(ifunc(jj(i)) + 1) / 2 - iadp(nindex_vinter) - iposp(nindex_vinter)
815 iposp2(nindex_vinter) = vartmp(i,j2+2)
816 iadp2(nindex_vinter) = npf(ifunc(jj(i)+1)) / 2 + 1
817 ilenp2(nindex_vinter) = npf(ifunc(jj(i)+1) + 1) / 2 - iadp2(nindex_vinter) - iposp2(nindex_vinter)
818 tab_loc(nindex_vinter) = pla(i)
819 yfac(i,1)=uparam(6+nrate+j1)*facyldi(i)
820 yfac(i,2)=uparam(6+nrate+j2)*facyldi(i)
823 CALL vinter2(tf,iadp,iposp,ilenp,nindex_vinter,tab_loc,dydx1_loc,y1_loc)
824 CALL vinter2(tf,iadp2,iposp2,ilenp2,nindex_vinter,tab_loc,dydx2_loc,y2_loc)
826 DO ii=1,nindex_vinter
830 vartmp(i,j1+2) = iposp(ii)
831 vartmp(i,j2+2) = iposp2(ii)
833#include "vectorize.inc"
834 DO ii=1,nindex_vinter
838 dydx1(i)=dydx1_loc(ii)
839 dydx2(i)=dydx2_loc(ii)
842#include "vectorize.inc"
847 y1(i) = yfac(i,1) * y1(i)
848 y2(i) = yfac(i,2) * y2(i)
850 yld(i)= fail(i)*(y1(i) + fac*(y2(i)-y1(i)))
851 yld(i) =
max(yld(i),em20)
852 yld(i) = yld(i)*
max(zero,pfac(i))
853 dydx1(i)=dydx1(i)*yfac(i,1)
854 dydx2(i)=dydx2(i)*yfac(i,2)
855 h(i) = fail(i)*(dydx1(i) + fac*(dydx2(i)-dydx1(i)))
856 h(i) = h(i) *
max(zero,pfac(i))
857 dfsr(i)= h(i)+
max(zero,pfac(i))*fail(i)*(y2(i)-y1(i))
858 . /(uparam(7+jj(i))-uparam(6+jj(i))) /timestep
862#include "vectorize.inc"
865 pla(i) = plaold(i) + dpla_i(i)
866 plap(i) = dpla_i(i) / timestep
867 signxx(i) = signxx(i)*r(i)
868 signyy(i) = signyy(i)*r(i)
869 signzz(i) = signzz(i)*r(i)
870 signxy(i) = signxy(i)*r(i)
871 signyz(i) = signyz(i)*r(i)
872 signzx(i) = signzx(i)*r(i)
874 uvar(i,1) = dpla_i(i)
879 ELSEIF (fisokin == one )
THEN
883#include "vectorize.inc"
886 svm_tab(i) = sqrt(svm2(i))
887 dpla_j(i) = uvar(i,1) + em09
894#include "vectorize.inc"
897 IF (plap(i) >= uparam(6+j)) jj(i) = j
901 IF (ismooth == 2)
THEN
902#include "vectorize.inc"
905 epsp1 =
max(uparam(6+jj(i)), em20)
906 epsp2 = uparam(7+jj(i))
907 rfac(i) = log(
max(plap(i),em20)/epsp1) / log(epsp2/epsp1)
910#include "vectorize.inc"
913 epsp1 = uparam(6+jj(i))
914 epsp2 = uparam(7+jj(i))
915 rfac(i) = (plap(i) - epsp1) / (epsp2 - epsp1)
920#include "vectorize.inc"
923 nindex_vinter = nindex_vinter + 1
924 index_vinter(nindex_vinter) = i
927 iposp(nindex_vinter) = vartmp(i,j1+2)
928 iadp(nindex_vinter) = npf(ifunc(jj(i)) ) / 2 + 1
929 ilenp(nindex_vinter) = npf(ifunc(jj(i)) + 1) / 2 - iadp(nindex_vinter) - iposp(nindex_vinter)
930 iposp2(nindex_vinter) = vartmp(i,j2+2)
931 iadp2(nindex_vinter) = npf(ifunc(jj(i)+1)) / 2 + 1
932 ilenp2(nindex_vinter) = npf(ifunc(jj(i)+1) + 1) / 2 - iadp2(nindex_vinter) - iposp2(nindex_vinter)
933 tab_loc(nindex_vinter) = pla(i)
934 yfac(i,1)=uparam(6+nrate+j1)*facyldi(i)
935 yfac(i,2)=uparam(6+nrate+j2)*facyldi(i)
938 CALL vinter2(tf,iadp,iposp,ilenp,nindex_vinter,tab_loc,dydx1_loc,y1_loc)
939 CALL vinter2(tf,iadp2,iposp2,ilenp2,nindex_vinter,tab_loc,dydx2_loc,y2_loc)
941 DO ii=1,nindex_vinter
945 vartmp(i,j1+2) = iposp(ii)
946 vartmp(i,j2+2) = iposp2(ii)
948#include "vectorize.inc"
949 DO ii=1,nindex_vinter
953 dydx1(i)=dydx1_loc(ii)
954 dydx2(i)=dydx2_loc(ii)
957#include "vectorize.inc"
963 y1(i) = yfac(i,1)*y1(i)
964 y2(i) = yfac(i,2)*y2(i)
966 yld(i)= fail(i)*(y1(i) + fac*(y2(i)-y1(i)))
968 dydx1(i)=dydx1(i)*yfac(i,1)
969 dydx2(i)=dydx2(i)*yfac(i,2)
970 h(i) = fail(i)*(dydx1(i) + fac*(dydx2(i)-dydx1(i)))
971 h(i) = h(i) *
max(zero,pfac(i))
972 hi(i) = h(i)*(one-fisokin)
974 coef(i) = (y2(i)-y1(i))/(uparam(6+j2)-uparam(6+j1)) /timestep
975 dfsr(i) = h(i)+ coef(i)
976 dfsr(i) = dfsr(i) * (one-fisokin)*
max(zero,pfac(i))
978 y1(i)=tf(npf(ifunc(j1))+1)
979 y2(i)=tf(npf(ifunc(j2))+1)
980 y1(i)= y1(i)*yfac(i,1)
981 y2(i)= y2(i)*yfac(i,2)
982 coef(i) =
max(zero,pfac(i))*fisokin * fail(i)*(y2(i)-y1(i))
983 . /(uparam(6+j2)-uparam(6+j1)) /timestep
984 yld(i) = (one-fisokin) * yld(i) +
985 . fisokin * (fail(i)*(y1(i) + fac*(y2(i)-y1(i))))
986 yld(i) =
max(yld(i),em20)
987 yld(i) = yld(i) *
max(zero,pfac(i))
993#include "vectorize.inc"
997 dpla_i(i) = dpla_j(i)
998 pla(i) = plaold(i) + dpla_i(i)
999 plap(i) = dpla_i(i) / timestep
1000 r(i) = yld(i)/(yld(i) +(g3(i)+fisokin*h(i))*dpla_i(i))
1001 svm = r(i)* svm_tab(i)
1002 f = svm - yld(i) - (g3(i)+fisokin*h(i)) *dpla_i(i)
1003 df =-(g3(i)+fisokin*h(i)) - (dfsr(i) + coef(i) )
1004 df = sign(
max(abs(df),em20),df)
1005 IF(dpla_i(i) > zero)
THEN
1006 dpla_j(i)=
max( em10 ,dpla_i(i)-f/df)
1013 pla(i) = plaold(i) + dpla_j(i)
1014 plap(i) = dpla_j(i) / timestep
1018#include "vectorize.inc"
1021 IF(plap(i) >= uparam(6+j)) jj(i) = j
1025 IF (ismooth == 2)
THEN
1026#include "vectorize.inc"
1029 epsp1 =
max(uparam(6+jj(i)), em20)
1030 epsp2 = uparam(7+jj(i))
1031 rfac(i) = log(
max(plap(i),em20)/epsp1) / log(epsp2/epsp1)
1034#include "vectorize.inc"
1037 epsp1 = uparam(6+jj(i))
1038 epsp2 = uparam(7+jj(i))
1039 rfac(i) = (plap(i) - epsp1) / (epsp2 - epsp1)
1044#include "vectorize.inc"
1047 nindex_vinter = nindex_vinter + 1
1048 index_vinter(nindex_vinter) = i
1051 iposp(nindex_vinter) = vartmp(i,j1+2)
1052 iadp(nindex_vinter) = npf(ifunc(jj(i)) ) / 2 + 1
1053 ilenp(nindex_vinter) = npf(ifunc(jj(i)) + 1) / 2 - iadp(nindex_vinter) - iposp(nindex_vinter)
1054 iposp2(nindex_vinter) = vartmp(i,j2+2)
1055 iadp2(nindex_vinter) = npf(ifunc(jj(i)+1)) / 2 + 1
1056 ilenp2(nindex_vinter) = npf(ifunc(jj(i)+1) + 1) / 2 - iadp2(nindex_vinter) - iposp2(nindex_vinter)
1057 tab_loc(nindex_vinter) = pla(i)
1058 yfac(i,1)=uparam(6+nrate+j1)*facyldi(i)
1059 yfac(i,2)=uparam(6+nrate+j2)*facyldi(i)
1062 CALL vinter2(tf,iadp,iposp,ilenp,nindex_vinter,tab_loc,dydx1_loc,y1_loc)
1063 CALL vinter2(tf,iadp2,iposp2,ilenp2,nindex_vinter,tab_loc,dydx2_loc,y2_loc)
1065 DO ii=1,nindex_vinter
1066 i = index_vinter(ii)
1069 vartmp(i,j1+2) = iposp(ii)
1070 vartmp(i,j2+2) = iposp2(ii)
1072#include "vectorize.inc"
1073 DO ii=1,nindex_vinter
1077 dydx1(i)=dydx1_loc(ii)
1078 dydx2(i)=dydx2_loc(ii)
1081#include "vectorize.inc"
1087 y1(i) = yfac(i,1) * y1(i)
1088 y2(i) = yfac(i,2) * y2(i)
1090 yld(i)= fail(i)*(y1(i) + fac*(y2(i)-y1(i)))
1091 dydx1(i)=dydx1(i)*yfac(i,1)
1092 dydx2(i)=dydx2(i)*yfac(i,2)
1093 h(i) = fail(i)*(dydx1(i) + fac*(dydx2(i)-dydx1(i)))
1094 h(i) = h(i) *
max(zero,pfac(i))
1095 hi(i) = h(i)*(one-fisokin)
1096 dfsr(i) = hi(i)+
max(zero,pfac(i))* (one-fisokin)*(y2(i)-y1(i))
1097 . / (uparam(7+jj(i))-uparam(6+jj(i))) /timestep
1098 y1(i)=tf(npf(ifunc(j1))+1)
1099 y2(i)=tf(npf(ifunc(j2))+1)
1100 y1(i)=y1(i)*yfac(i,1)
1101 y2(i)=y2(i)*yfac(i,2)
1102 coef(i) =
max(zero,pfac(i))*fisokin * fail(i)*(y2(i)-y1(i))
1103 . / (uparam(6+j2)-uparam(6+j1)) /timestep
1104 yld(i) = (one-fisokin) * yld(i)
1105 . + fisokin * (fail(i)*(y1(i) + fac*(y2(i)-y1(i))))
1106 yld(i) =
max(yld(i),em20)
1107 yld(i) = yld(i) *
max(zero,pfac(i))
1111#include "vectorize.inc"
1114 pla(i) = plaold(i) + dpla_i(i)
1115 plap(i) = dpla_i(i) / timestep
1116 signxx(i) = signxx(i)*r(i)
1117 signyy(i) = signyy(i)*r(i)
1118 signzz(i) = signzz(i)*r(i)
1119 signxy(i) = signxy(i)*r(i)
1120 signyz(i) = signyz(i)*r(i)
1121 signzx(i) = signzx(i)*r(i)
1122 dpla1(i) = dpla_i(i)
1123 uvar(i,1) = dpla_i(i)
1130#include "vectorize.inc"
1133 svm_tab(i) = sqrt(svm2(i))
1134 dpla_j(i) = uvar(i,1) + em09
1142#include "vectorize.inc"
1145 IF(plap(i) >= uparam(6+j)) jj(i) = j
1149 IF (ismooth == 2)
THEN
1150#include "vectorize.inc"
1153 epsp1 =
max(uparam(6+jj(i)), em20)
1154 epsp2 = uparam(7+jj(i))
1155 rfac(i) = log(
max(plap(i),em20)/epsp1) / log(epsp2/epsp1)
1158#include "vectorize.inc"
1161 epsp1 = uparam(6+jj(i))
1162 epsp2 = uparam(7+jj(i))
1163 rfac(i) = (plap(i) - epsp1) / (epsp2 - epsp1)
1168#include "vectorize.inc"
1171 nindex_vinter = nindex_vinter + 1
1172 index_vinter(nindex_vinter) = i
1175 iposp(nindex_vinter) = vartmp(i,j1+2)
1176 iadp(nindex_vinter) = npf(ifunc(jj(i)) ) / 2 + 1
1177 ilenp(nindex_vinter) = npf(ifunc(jj(i)) + 1) / 2 - iadp(nindex_vinter) - iposp(nindex_vinter)
1178 iposp2(nindex_vinter) = vartmp(i,j2+2)
1179 iadp2(nindex_vinter) = npf(ifunc(jj(i)+1)) / 2 + 1
1180 ilenp2(nindex_vinter) = npf(ifunc(jj(i)+1) + 1) / 2 - iadp2(nindex_vinter) - iposp2(nindex_vinter)
1181 tab_loc(nindex_vinter) = pla(i)
1182 yfac(i,1)=uparam(6+nrate+j1)*facyldi(i)
1183 yfac(i,2)=uparam(6+nrate+j2)*facyldi(i)
1186 CALL vinter2(tf,iadp,iposp,ilenp,nindex_vinter,tab_loc,dydx1_loc,y1_loc)
1187 CALL vinter2(tf,iadp2,iposp2,ilenp2,nindex_vinter,tab_loc,dydx2_loc,y2_loc)
1189 DO ii=1,nindex_vinter
1190 i = index_vinter(ii)
1193 vartmp(i,j1+2) = iposp(ii)
1194 vartmp(i,j2+2) = iposp2(ii)
1196#include "vectorize.inc"
1197 DO ii=1,nindex_vinter
1198 i = index_vinter(ii)
1201 dydx1(i)=dydx1_loc(ii)
1202 dydx2(i)=dydx2_loc(ii)
1205#include "vectorize.inc"
1211 y1(i) = yfac(i,1) * y1(i)
1212 y2(i) = yfac(i,2) * y2(i)
1214 yld(i)= fail(i)*(y1(i) + fac*(y2(i)-y1(i)))
1216 dydx1(i)=dydx1(i)*yfac(i,1)
1217 dydx2(i)=dydx2(i)*yfac(i,2)
1218 h(i) = fail(i)*(dydx1(i) + fac*(dydx2(i)-dydx1(i)))
1219 h(i) = h(i) *
max(zero,pfac(i))
1220 hi(i) = h(i)*(one-fisokin)
1222 coef(i) = (y2(i)-y1(i))/(uparam(6+j2)-uparam(6+j1)) /timestep
1223 dfsr(i) = h(i)+ coef(i)
1224 dfsr(i) = dfsr(i) * (one-fisokin)*
max(zero,pfac(i))
1226 y1(i)=tf(npf(ifunc(j1))+1)
1227 y2(i)=tf(npf(ifunc(j2))+1)
1228 y1(i)= y1(i)*yfac(i,1)
1229 y2(i)= y2(i)*yfac(i,2)
1230 coef(i) =
max(zero,pfac(i))*fisokin * fail(i)*(y2(i)-y1(i))
1231 . /(uparam(6+j2)-uparam(6+j1)) /timestep
1232 yld(i) = (one-fisokin) * yld(i) +
1233 . fisokin * (fail(i)*(y1(i) + fac*(y2(i)-y1(i))))
1234 yld(i) =
max(yld(i),em20)
1235 yld(i) = yld(i)*
max(zero,pfac(i))
1241#include "vectorize.inc"
1245 dpla_i(i) = dpla_j(i)
1246 pla(i) = plaold(i) + dpla_i(i)
1247 plap(i) = dpla_i(i) / timestep
1248 r(i) = yld(i)/(yld(i) +(g3(i)+fisokin*h(i))*dpla_i(i))
1249 svm = r(i)* svm_tab(i)
1250 f = svm - yld(i) - (g3(i)+fisokin*h(i)) *dpla_i(i)
1251 df =-(g3(i)+fisokin*h(i)) - (dfsr(i) + coef(i))
1252 df = sign(
max(abs(df),em20),df)
1253 IF(dpla_i(i) > zero)
THEN
1254 dpla_j(i)=
max( em10 ,dpla_i(i)-f/df)
1261 pla(i) = plaold(i) + dpla_j(i)
1262 plap(i) = dpla_j(i) / timestep
1266#include "vectorize.inc"
1269 IF(plap(i) >= uparam(6+j)) jj(i) = j
1273 IF (ismooth == 2)
THEN
1274#include "vectorize.inc"
1277 epsp1 =
max(uparam(6+jj(i)), em20)
1278 epsp2 = uparam(7+jj(i))
1279 rfac(i) = log(
max(plap(i),em20)/epsp1) / log(epsp2/epsp1)
1282#include "vectorize.inc"
1285 epsp1 = uparam(6+jj(i))
1286 epsp2 = uparam(7+jj(i))
1287 rfac(i) = (plap(i) - epsp1) / (epsp2 - epsp1)
1292#include "vectorize.inc"
1295 nindex_vinter = nindex_vinter + 1
1296 index_vinter(nindex_vinter) = i
1299 iposp(nindex_vinter) = vartmp(i,j1+2)
1300 iadp(nindex_vinter) = npf(ifunc(jj(i)) ) / 2 + 1
1301 ilenp(nindex_vinter) = npf(ifunc(jj(i)) + 1) / 2 - iadp
1302 iposp2(nindex_vinter) = vartmp(i,j2+2)
1303 iadp2(nindex_vinter) = npf(ifunc
1304 ilenp2(nindex_vinter) = npf(ifunc(jj(i)+1) + 1) / 2 - iadp2(nindex_vinter) - iposp2(nindex_vinter)
1305 tab_loc(nindex_vinter) = pla(i)
1306 yfac(i,1)=uparam(6+nrate+j1)*facyldi(i)
1307 yfac(i,2)=uparam(6+nrate+j2)*facyldi(i)
1310 CALL vinter2(tf,iadp,iposp,ilenp,nindex_vinter,tab_loc,dydx1_loc,y1_loc)
1311 CALL vinter2(tf,iadp2,iposp2,ilenp2,nindex_vinter,tab_loc,dydx2_loc,y2_loc)
1313 DO ii=1,nindex_vinter
1314 i = index_vinter(ii)
1317 vartmp(i,j1+2) = iposp(ii)
1318 vartmp(i,j2+2) = iposp2(ii)
1320#include "vectorize.inc"
1321 DO ii=1,nindex_vinter
1322 i = index_vinter(ii)
1325 dydx1(i)=dydx1_loc(ii)
1326 dydx2(i)=dydx2_loc(ii)
1329#include "vectorize.inc"
1335 y1(i) = yfac(i,1) * y1(i)
1336 y2(i) = yfac(i,2) * y2(i)
1338 yld(i)= fail(i)*(y1(i) + fac*(y2(i)-y1(i)))
1339 dydx1(i)=dydx1(i)*yfac(i,1)
1340 dydx2(i)=dydx2(i)*yfac(i,2)
1341 h(i) = fail(i)*(dydx1(i) + fac*(dydx2(i)-dydx1(i)))
1342 h(i) = h(i) *
max(zero,pfac(i))
1343 hi(i)= h(i)*(one-fisokin)
1344 dfsr(i) = hi(i)+
max(zero,pfac(i))* (one-fisokin)*(y2(i)-y1(i))
1345 . /(uparam(7+jj(i))-uparam(6+jj(i))) /timestep
1346 y1(i)=tf(npf(ifunc(j1))+1)
1347 y2(i)=tf(npf(ifunc(j2))+1)
1348 y1(i)=y1(i)*yfac(i,1)
1349 y2(i)=y2(i)*yfac(i,2)
1350 coef(i) =
max(zero,pfac(i))*fisokin * fail(i)*(y2(i)-y1(i
1351 . /(uparam(6+j2)-uparam(6+j1)) /timestep
1352 yld(i) = (one-fisokin) * yld(i) +
1353 . fisokin * (fail(i)*(y1(i) + fac*(y2(i)-y1(i))))
1354 yld(i) =
max(yld(i),em20)
1355 yld(i) = yld(i) *
max(zero,pfac(i))
1358#include "vectorize.inc"
1361 pla(i) = plaold(i) + dpla_i(i)
1362 plap(i) = dpla_i(i) / timestep
1363 signxx(i) = signxx(i)*r(i)
1364 signyy(i) = signyy(i)*r(i)
1365 signzz(i) = signzz(i)*r(i)
1366 signxy(i) = signxy(i)*r(i)
1367 signyz(i) = signyz(i)*r(i)
1368 signzx(i) = signzx(i)*r(i)
1369 dpla1(i) = dpla_i(i)
1370 uvar(i,1) = dpla_i(i)
1379 IF (ipla /= 1 .OR. impl_s <= 0)
THEN
1381 IF (fisokin == one )
THEN
1382#include "vectorize.inc"
1384 dsxx = sigexx(i) - signxx(i)
1385 dsyy = sigeyy(i) - signyy(i)
1386 dszz = sigezz(i) - signzz(i)
1387 dsxy = sigexy(i) - signxy(i)
1388 dsyz = sigeyz(i) - signyz(i)
1389 dszx = sigezx(i) - signzx(i)
1391 hkin = two_third*fisokin*h(i)
1392 alpha = hkin/(g2(i)+hkin)
1401 sigbxx(i) = sigbxx(i) + sigpxx
1402 sigbyy(i) = sigbyy(i) + sigpyy
1403 sigbzz(i) = sigbzz(i) + sigpzz
1404 sigbxy(i) = sigbxy(i) + sigpxy
1405 sigbyz(i) = sigbyz(i) + sigpyz
1406 sigbzx(i) = sigbzx(i) + sigpzx
1409 signxx(i) = signxx(i) + sigbxx(i)
1410 signyy(i) = signyy(i) + sigbyy(i)
1411 signzz(i) = signzz(i) + sigbzz(i)
1412 signxy(i) = signxy(i) + sigbxy(i)
1413 signyz(i) = signyz(i) + sigbyz(i)
1414 signzx(i) = signzx(i) + sigbzx(i)
1417 ELSEIF (fisokin > zero)
THEN
1418#include "vectorize.inc"
1420 dsxx = sigexx(i) - signxx(i)
1421 dsyy = sigeyy(i) - signyy(i)
1422 dszz = sigezz(i) - signzz(i)
1423 dsxy = sigexy(i) - signxy(i)
1424 dsyz = sigeyz(i) - signyz(i)
1425 dszx = sigezx(i) - signzx(i)
1427 hkin = two_third*fisokin*h(i)
1428 alpha = hkin/(g2(i)+hkin)
1437 sigbxx(i) = sigbxx(i) + sigpxx
1438 sigbyy(i) = sigbyy(i) + sigpyy
1439 sigbzz(i) = sigbzz(i) + sigpzz
1440 sigbxy(i) = sigbxy(i) + sigpxy
1441 sigbyz(i) = sigbyz(i) + sigpyz
1442 sigbzx(i) = sigbzx(i) + sigpzx
1445 signxx(i) = signxx(i) + sigbxx(i)
1446 signyy(i) = signyy(i) + sigbyy(i)
1447 signzz(i) = signzz(i) + sigbzz(i)
1448 signxy(i) = signxy(i) + sigbxy(i)
1449 signyz(i) = signyz(i) + sigbyz(i)
1450 signzx(i) = signzx(i) + sigbzx(i)
1458 p = bulk(i) * amu(i)
1459 signxx(i) = signxx(i) - p
1460 signyy(i) = signyy(i) - p
1461 signzz(i) = signzz(i) - p
1468 soundsp(i) = sqrt((dpdm(i) + four*g(i)/three)/rho0(i))
1473 IF (impl_s > 0)
THEN
1479 IF(dpla1(i) > 0) etse(i)= h(i)/g2(i)
1482 IF (dpla1(i) > zero)
THEN
1486 vm =half*(sigexx(i)**2+sigeyy(i)**2+sigezz(i)**2)
1487 . +sigexy(i)**2+sigeyz(i)**2+sigezx(i)**2
1488 vm_1 =one/sqrt(three*vm)
1490 r(i) =
max(zero,one-g3h*dpla1(i)*vm_1)
1493 norm_1=g3(i)*vm_1*sqrt(r(i)/g3h)
1495 signor(i,1)=sigexx(i)*norm_1
1496 signor(i,2)=sigeyy(i)*norm_1
1497 signor(i,3)=sigezz(i)*norm_1
1498 signor(i,4)=sigexy(i)*norm_1
1499 signor(i,5)=sigeyz(i)*norm_1
1500 signor(i,6)=sigezx(i)*norm_1
1503 al_imp(i)= one - g3(i)*dpla1(i)*vm_1
1511 IF (off(i) < em01) off(i) = zero
1512 IF (off(i) < one) off(i) = off(i)*four_over_5
1517 IF (ifail == 2)
THEN
1520 IF (epsmax < ep20) dmg(i) =
max(dmg(i),planl(i)/epsmax)
1521 IF ((planl(i) > epsmax .OR. epstt(i) > epsf) .AND. off(i) == one)
THEN
1529 IF (epsmax < ep20) dmg(i) =
max(dmg(i),pla(i)/epsmax)
1530 IF ((pla(i) > epsmax .OR. epstt(i) > epsf) .AND. off(i) == one)
THEN
1540 IF (epsmax < ep20) dmg(i) = planl(i)/epsmax
1541 IF (planl(i) > epsmax
THEN
1549 IF (epsmax < ep20) dmg(i) = pla(i)/epsmax
1550 IF (pla(i) > epsmax .AND. off(i) == one)
THEN
1558 IF (nindx > 0 .AND. imconv == 1)
THEN
1560#include "lockon.inc"
1561 WRITE(iout, 1000) ngl(indx(j))
1562 WRITE(istdo,1100) ngl(indx(j)),tt
1563#include "lockoff.inc"
1568 1000
FORMAT(1x,
'RUPTURE OF SOLID ELEMENT NUMBER ',i10)
1569 1100
FORMAT(1x,
'RUPTURE OF SOLID ELEMENT NUMBER ',i10,
' AT TIME :',g11.4)