35 1 NEL ,NUVAR ,MFUNC ,KFUNC ,NPF ,
36 2 TF ,TIME ,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"
100 INTEGER,
INTENT(IN) :: NEL, NUVAR,IPLA,NVARTMP,INLOC
101 INTEGER,
INTENT(IN) :: IEOS
102 INTEGER ,
DIMENSION(NEL),
INTENT(IN) :: NGL,MAT
103 INTEGER ,
DIMENSION(NPROPMI,NUMMAT),
INTENT(IN) :: IPM
105 . TIME,TIMESTEP,UPARAM(*),
107 . EPSXX(NEL),EPSYY(NEL),EPSZZ(NEL),
108 . EPSXY(),EPSYZ(),EPSZX(NEL),
109 . DEPSXX(NEL),DEPSYY(NEL),DEPSZZ(NEL),
110 . DEPSXY(NEL),DEPSYZ(NEL),DEPSZX(NEL),
111 . sigoxx(nel),sigoyy(nel),sigozz(nel),
112 . sigoxy(nel),sigoyz(nel),sigozx(nel),
113 . epsp(nel),etse(nel),amu(nel),facyldi(nel),
114 . dmg(nel),planl(nel)
115 my_real,
DIMENSION(MVSIZ) ,
INTENT(IN) :: dpdm
120 . signxx(nel),signyy(nel),signzz(nel),
121 . signxy(nel),signyz(nel),signzx(nel),
122 . soundsp(nel),viscmax(nel),dpla1(nel),
123 . al_imp(nel),signor(mvsiz,6)
128 . uvar(nel,nuvar), off(nel), yld(nel),
130 INTEGER,
INTENT(INOUT) :: VARTMP(NEL,NVARTMP)
131 my_real,
DIMENSION(NEL),
INTENT(INOUT) :: SIGBXX,,SIGBZZ,SIGBXY,SIGBYZ,SIGBZX
135 INTEGER NPF(*), MFUNC, KFUNC(MFUNC)
136 my_real :: TF(*),FINTER
149 INTEGER I,J,K,J1,J2,,VP,II,NITER,IFAIL,NRATE,PFUN,IPFUN,
150 . IPFLAG,ISMOOTH,YLDCHECK,OPTE,IFUNCE,NINDX
151 INTEGER ILEN1(MVSIZ),IAD2(MVSIZ),ILEN2(MVSIZ),INDEX(MVSIZ),
152 . IFUNC(100),IAD1(MVSIZ), IADP(MVSIZ),ILENP(MVSIZ),
153 . INDX(MVSIZ),JJ(MVSIZ), IADP2(),ILENP2(MVSIZ)
154 INTEGER,
DIMENSION(MVSIZ) :: IPOS1,,IPOSPE,IPOSP,IPOSP2
156 . E11,NU,DAV,VM,R(MVSIZ),FAC,EPST,P,EPSP1,EPSP2,
157 . E1,E2,E3,E4,E5,E6,C,CC,D,Y,YP,E42,E52,E62,EPST2,
158 . C11,G11,G21,G31,EPSR1,DPLA,EPSF,HKIN,FISOKIN,
159 . DSXX,DSYY,DSZZ,DSXY,DSYZ,
160 . dszx,sigpxx,sigpyy,sigpxy,sigpyz,sigpzx,sigpzz,
alpha,
161 . epsr1dav,epsr1f,vm_1,g3h,norm_1,epsmax,ssp,
162 . einf,ce1,epsr2,svm,df,f
163 my_real :: fact(nel),
164 . bulk(mvsiz),g(mvsiz),g2(mvsiz),g3(mvsiz),
165 . y1(mvsiz),y2(mvsiz),h(mvsiz),dydx1(mvsiz),
166 . dydx2(mvsiz),fail(mvsiz),e(mvsiz),
167 . p0(mvsiz),pfac(mvsiz),pscale(mvsiz),rfac(mvsiz),
168 . pscale1(mvsiz),pla0(mvsiz), plam(mvsiz),
169 . dfdp(mvsiz),epstt(mvsiz),
170 . sigexx(mvsiz),sigeyy(mvsiz),sigezz(mvsiz),
171 . sigexy(mvsiz),sigeyz(mvsiz),sigezx(mvsiz),
172 . dydxe(mvsiz),plaold(mvsiz),
177 . plap(mvsiz),svm2(mvsiz),dpla_j(mvsiz),dpla_i(mvsiz),
178 . hi(mvsiz),escale12(mvsiz),
180 INTEGER :: NINDEX_PLA,NINDEX_VINTER
181 INTEGER,
DIMENSION(MVSIZ) :: INDEX_PLA,INDEX_VINTER
182 my_real,
DIMENSION(MVSIZ) :: TAB_LOC,Y1_LOC,DYDX1_LOC, Y2_LOC,DYDX2_LOC
188 nfunc = ipm(10,mat(1))
190 ifunc(j)= ipm(10+j,mat(1))
192 ipfun = ifunc(nfunc-1)
197 nrate = nint(uparam(1))
198 epsmax = uparam(6+2*nrate+1)
199 epsr1 = uparam(6+2*nrate+2)
200 epsr2 = uparam(6+2*nrate+3)
201 g21 = uparam(6+2*nrate+4)
202 g31 = uparam(6+2*nrate+5)
203 c11 = uparam(6+2*nrate+6)
204 ssp = uparam(6+2*nrate+7)
205 fisokin = uparam(6+2*nrate+8)
206 epsf = uparam(6+2*nrate+9)
207 pfun = nint(uparam(16+2*nrate))
208 opte = uparam(2*nrate+23)
209 einf = uparam(2*nrate+24)
210 ce1 = uparam(2*nrate+25)
211 vp = nint(uparam(2*nrate + 26))
212 ifail = nint(uparam(2*nrate + 27))
213 yldcheck = nint(uparam(2*nrate + 28))
214 ismooth = nint(uparam(2*nrate + 29))
216#include "vectorize.inc"
219 pscale(i) = uparam(17+2*nrate)
232 IF (fisokin > zero)
THEN
235#include "vectorize.inc"
237 sigoxx(i) = sigoxx(i) - sigbxx(i)
238 sigoyy(i) = sigoyy(i) - sigbyy(i)
239 sigozz(i) = sigozz(i) - sigbzz(i)
240 sigoxy(i) = sigoxy(i) - sigbxy(i)
241 sigoyz(i) = sigoyz(i) - sigbyz(i)
242 sigozx(i) = sigozx(i) - sigbzx(i)
249 ifunce = uparam( 2*nrate + 22)
251 IF(pla(i) > zero)
THEN
252 nindex_pla = nindex_pla + 1
253 index_pla(nindex_pla) = i
254 ipospe(nindex_pla) = vartmp(i,1)
255 iadp(nindex_pla) = npf(kfunc(ifunce)) / 2 + 1
256 ilenp(nindex_pla) = npf(kfunc(ifunce)+1) / 2 - iadp(nindex_pla) - ipospe(nindex_pla)
257 tab_loc(nindex_pla) = pla(i)
260 CALL vinter2(tf,iadp,ipospe,ilenp,nindex_pla,tab_loc,dydxe,escale12)
261 vartmp(index_pla(1:nindex_pla),1) = ipospe(1:nindex_pla)
262#include "vectorize.inc"
265 e(i) = escale12(ii)* e(i)
266 g(i) = half*e(i)/(one+nu)
269 bulk(i) = e(i)/three/(one - two*nu)
270 soundsp(i) = sqrt((bulk(i) + four_over_3*g(i))/rho0(i))
272 ELSEIF ( ce1 /= zero)
THEN
273#include "vectorize.inc"
275 IF(pla(i) > zero)
THEN
276 e(i) = e11-(e11-einf)*(one-exp(-ce1*pla(i)))
277 g(i) = half*e(i)/(one+nu)
280 bulk(i) = e(i)/three/(one - two*nu)
281 soundsp(i) = sqrt((bulk(i) + four_over_3*g(i))/rho0(i))
290 iadp(i) = npf(ipfun) / 2 + 1
291 ilenp(i) = npf(ipfun + 1) / 2 - iadp(i) - vartmp(i,2)
293 CALL vinter2(tf,iadp,vartmp(1:nel,2),ilenp,nel,pscale,dfdp,pfac)
294 pfac(1:nel) =
max(zero, pfac(1:nel))
298 IF (impl_s > 0) pscale1(1:nel)=pscale(1:nel) * ( bulk(1:nel) * amu(1:nel) )
303#include "vectorize.inc"
307 dav = (depsxx(i)+depsyy(i)+depszz(i))*third
309 p0(i) = -(sigoxx(i)+sigoyy(i)+sigozz(i))*third
312 pscale(i) = pscale(i)*p0(i)
315 signxx(i)=sigoxx(i)+p0(i)+g2(i)*(depsxx(i)-dav)
316 signyy(i)=sigoyy(i)+p0(i)+g2(i)*(depsyy(i)-dav)
317 signzz(i)=sigozz(i)+p0(i)+g2(i)*(depszz(i)-dav)
320 signxy(1:nel)=sigoxy(1:nel)+g(1:nel) *depsxy(1:nel)
321 signyz(1:nel)=sigoyz(1:nel)+g(1:nel) *depsyz(1:nel)
322 signzx(1:nel)=sigozx(1:nel)+g(1:nel) *depszx(1:nel)
323 sigexx(1:nel) = signxx(1:nel)
324 sigeyy(1:nel) = signyy(1:nel)
325 sigezz(1:nel) = signzz(1:nel)
326 sigexy(1:nel) = signxy(1:nel)
327 sigeyz(1:nel) = signyz(1:nel)
328 sigezx(1:nel) = signzx(1:nel)
329 viscmax(1:nel) = zero
337 epsr1f =
min(epsr1,epsf)
340 dav = (epsxx(i)+epsyy(i)+epszz(i)) * third
356 c = - half *(e1*e1 + e2*e2 + e3*e3) - e42
357 epst = sqrt(-c*third)
359 epsr1dav = epsr1f - dav
360 IF(epst+epst < epsr1dav)cycle
361 d = - e1*e2*e3 + e1*e52 + e2*e62 + e3*e42
368 y = (epst2 + c)* epst + d
372 IF(epst < epsr1dav)cycle
374 y = (epst2 + c)* epst + d
377 IF(epst < epsr1dav)cycle
379 y = (epst2 + c)* epst + d
382 IF(epst < epsr1dav)cycle
384 y = (epst2 + c)* epst + d
393 fail(i) =
max(em20,
min(one, (epsr2-epst)/(epsr2-epsr1) ))
394 dmg(i) = one -
max(zero,
min(one,(epsr2-epst)/(epsr2-epsr1)))
405 iad1(1:nel) = npf(ifunc(1)) / 2 + 1
406 ilen1(1:nel) = npf(ifunc(1)+1) / 2 - iad1(1:nel) - vartmp(1:nel,3)
408 CALL vinter(tf,iad1,vartmp(1:nel,3),ilen1,nel,pla,dydx1,y1)
410 yfac(1:nel,1) = uparam(6+nrate+1)*facyldi(1:nel)
411 fact(1:nel) = fail(1:nel) * pfac(1:nel) * yfac(1:nel,1)
412 h(1:nel) = dydx1(1:nel) * fact(1:nel)
414 IF (fisokin == zero)
THEN
415 yld(1:nel) = y1(1:nel) * fact(1:nel)
416 ELSE IF (fisokin == one)
THEN
417 yld(1:nel) = tf(npf(ifunc(1))+1) * fact(1:nel)
418 ELSE IF (fisokin > zero)
THEN
419 yld(1:nel) = ((one-fisokin)*y1(1:nel) + fisokin *tf(npf(ifunc(1))+1))*fact(1:nel)
426#include "vectorize.inc"
428 IF (epsp(i) >= uparam(6+j)) jj(i) = j
432 IF (ismooth == 2)
THEN
433#include "vectorize.inc"
435 epsp1 =
max(uparam(6+jj(i)), em20)
436 epsp2 = uparam(7+jj(i))
437 rfac(i) = log(
max(epsp(i),em20)/epsp1) / log(epsp2/epsp1)
440#include "vectorize.inc"
442 epsp1 = uparam(6+jj(i))
443 epsp2 = uparam(7+jj(i))
444 rfac(i) = (epsp(i) - epsp1) / (epsp2 - epsp1)
448#include "vectorize.inc"
452 ipos1(i) = vartmp(i,j1+2)
453 ipos2(i) = vartmp(i,j2+2)
454 yfac(i,1)= uparam(6+nrate+j1) * facyldi(i)
455 yfac(i,2)= uparam(6+nrate+j2) * facyldi(i)
457 iad1(1:nel) = npf(ifunc(jj(1:nel))) / 2 + 1
458 ilen1(1:nel) = npf(ifunc(jj(1:nel))+1) / 2 - iad1(1:nel) - ipos1(1:nel)
459 iad2(1:nel) = npf(ifunc(jj(1:nel)+1)) / 2 + 1
460 ilen2(1:nel) = npf(ifunc(jj(1:nel)+1)+1) / 2 - iad2(1:nel) - ipos2(1:nel)
462 CALL vinter(tf,iad1,ipos1,ilen1,nel,pla,dydx1,y1)
463 CALL vinter(tf,iad2,ipos2,ilen2,nel,pla,dydx2,y2)
468 vartmp(i,j1+2) = ipos1(i)
469 vartmp(i,j2+2) = ipos2(i)
472 IF (fisokin == zero)
THEN
473#include "vectorize.inc"
477 y1(i)= y1(i)*yfac(i,1)
478 y2(i)= y2(i)*yfac(i,2)
480 cc = fail(i)* pfac(i)
481 yld(i) = (y1(i) + fac*(y2(i)-y1(i))) * cc
482 dydx1(i)= dydx1(i)*yfac(i,1)
483 dydx2(i)= dydx2(i)*yfac(i,2)
484 h(i) = (dydx1(i) + fac*(dydx2(i)-dydx1(i))) * cc
487 ELSEIF (fisokin == one)
THEN
489#include "vectorize.inc"
494 cc = fail(i) * pfac(i)
495 dydx1(i)=dydx1(i)*yfac(i,1)
496 dydx2(i)=dydx2(i)*yfac(i,2)
497 h(i) = cc*(dydx1(i) + fac*(dydx2(i)-dydx1(i)))
498 y1(i)= tf(npf(ifunc(j1))+1)
499 y2(i)= tf(npf(ifunc(j2))+1)
500 y1(i)= y1(i)*yfac(i,1)
501 y2(i)= y2(i)*yfac(i,2)
502 yld(i) = cc*(y1(i) + fac*(y2(i)-y1(i)))
507#include "vectorize.inc"
511 y1(i) = y1(i)*yfac(i,1)
512 y2(i) = y2(i)*yfac(i,2)
514 yld(i) = fail(i)*(y1(i) + fac*(y2(i)-y1(i)))
515 yld(i) =
max(yld(i),em20)
516 dydx1(i)= dydx1(i)*yfac(i,1)
517 dydx2(i)= dydx2(i)*yfac(i,2)
518 h(i) = fail(i)*(dydx1(i) + fac*(dydx2(i)-dydx1(i)))
519 h(i) = h(i) * pfac(i)
521 y1(i)=tf(npf(ifunc(j1))+1)
522 y2(i)=tf(npf(ifunc(j2))+1)
524 y2(i)=y2(i)*yfac(i,2)
525 yld(i) = (one - fisokin) * yld(i)
526 . + fisokin * (fail(i)*(y1(i) + fac*(y2(i)-y1(i))))
532 IF (yldcheck == 1)
THEN
534 yld(i) =
max(yld(i), em20)
547 signxx(i)=signxx(i)*r(i)
548 signyy(i)=signyy(i)*r(i)
549 signzz(i)=signzz(i)*r(i)
550 signxy(i)=signxy(i)*r(i)
551 signyz(i)=signyz(i)*r(i)
552 signzx(i)=signzx(i)*r(i)
553 pla(i) = pla(i) + (one - r(i))*vm/
max(g3(i)+h(i),em20)
558 ELSEIF(ipla == 2)
THEN
561 vm = three*(half*(signxx(i)**2+signyy(i)**2+signzz(i)**2)
562 . + signxy(i)**2+signyz(i)**2+signzx(i)**2)
563 IF (vm > yld(i)*yld(i))
THEN
565 r(i) = yld(i)/
max(vm,em20)
566 signxx(i)=signxx(i)*r(i)
567 signyy(i)=signyy(i)*r(i)
568 signzz(i)=signzz(i)*r(i)
569 signxy(i)=signxy(i)*r(i)
570 signyz(i)=signyz(i)*r(i)
571 signzx(i)=signzx(i)*r(i)
572 pla(i)=pla(i) + (one-r(i))*vm/
max(g3(i),em20)
573 dpla1(i) = (one-r(i))*vm/
max(g3(i),em20)
577 ELSEIF(ipla == 1)
THEN
579 IF (impl_s == 0)
THEN
581 vm = three*(half*(signxx(i)**2+signyy(i)**2+signzz(i)**2)
582 . + signxy(i)**2+signyz(i)**2+signzx(i)**2)
583 IF (vm > yld(i)*yld(i))
THEN
585 r(i) = yld(i)/
max(vm,em20)
587 dpla =(one - r(i)) * vm/
max(g3(i)+h(i),em20)
589 yld(i) =
max(yld(i)+(one - fisokin)*dpla*h(i),zero)
590 r(i) =
min(one,yld(i) /
max(vm,em20))
594 signxx(i)=signxx(i)*r(i)
595 signyy(i)=signyy(i)*r(i)
596 signzz(i)=signzz(i)*r(i)
597 signxy(i)=signxy(i)*r(i)
598 signyz(i)=signyz(i)*r(i)
599 signzx(i)=signzx(i)*r(i)
610 IF (pfun > 0) ipflag = 1
614 iad1(i) = npf(ifunc(j1)) / 2 + 1
615 ilen1(i) = npf(ifunc(j1)+1) / 2 - iad1(i)
618 . signxy, signyz, signzx,
623 . fisokin, vartmp,pla0,
625 . ipflag, pfun, ipfun, iposp,
626 . nrate, npf, iadp, ilenp,
627 . pfac, pscale1, dfdp, fail,
629 . sigbxx,sigbyy,sigbzz,sigbxy,sigbyz,sigbzx)
642 yfac(i,1) = uparam(6+nrate+1)*facyldi(i)
643 yld(i) = yfac(i,1)*finter(ifunc(1) ,zero,npf,tf,dydx1(i))
645 yld(i) = yld(i)*
max(zero,pfac(i))
646 h(i) = h(i) *
max(zero,pfac(i))
662 svm2(i) = three*(half*(signxx(i)**2+signyy(i)**2+signzz(i)**2)
663 . + signxy(i)**2+signyz(i)**2+signzx(i)**2)
667 IF(svm2(i)>yld(i)*yld(i).AND.off(i)== one)
THEN
677 IF (fisokin == zero)
THEN
681#include "vectorize.inc"
684 svm_tab(i) = sqrt(svm2(i))
685 dpla_j(i) = uvar(i,1) + em09
695 IF (plap(i) >= uparam(6+j)) jj(i) = j
698 IF (ismooth == 2)
THEN
699#include "vectorize.inc"
702 epsp1 =
max(uparam(6+jj(i)), em20)
703 epsp2 = uparam(7+jj(i))
704 rfac(i) = log(
max(plap(i),em20)/epsp1) / log(epsp2/epsp1)
707#include "vectorize.inc"
710 epsp1 = uparam(6+jj(i))
711 epsp2 = uparam(7+jj(i))
712 rfac(i) = (plap(i) - epsp1) / (epsp2 - epsp1)
717#include "vectorize.inc"
720 nindex_vinter = nindex_vinter + 1
721 index_vinter(nindex_vinter) = i
724 iposp(nindex_vinter) = vartmp(i,j1+2)
725 iadp(nindex_vinter) = npf(ifunc(jj(i)) ) / 2 + 1
726 ilenp(nindex_vinter) = npf(ifunc(jj(i)) + 1) / 2 - iadp(nindex_vinter) - iposp(nindex_vinter)
727 iposp2(nindex_vinter) = vartmp(i,j2+2)
728 iadp2(nindex_vinter) = npf(ifunc(jj(i)+1)) / 2 + 1
729 ilenp2(nindex_vinter) = npf(ifunc(jj(i)+1) + 1) / 2 - iadp2(nindex_vinter) - iposp2(nindex_vinter)
730 tab_loc(nindex_vinter) = pla(i)
731 yfac(i,1) = uparam(6+nrate+j1) * facyldi(i)
732 yfac(i,2) = uparam(6+nrate+j2) * facyldi(i)
735 CALL vinter2(tf,iadp,iposp,ilenp,nindex_vinter,tab_loc,dydx1_loc,y1_loc)
736 CALL vinter2(tf,iadp2,iposp2,ilenp2,nindex_vinter,tab_loc,dydx2_loc,y2_loc)
738 DO ii=1,nindex_vinter
742 vartmp(i,j1+2) = iposp(ii)
743 vartmp(i,j2+2) = iposp2(ii)
745#include "vectorize.inc"
746 DO ii=1,nindex_vinter
750 dydx1(i)=dydx1_loc(ii)
751 dydx2(i)=dydx2_loc(ii)
754#include "vectorize.inc"
757 y1(i) = y1(i) * yfac(i,1)
758 y2(i) = y2(i) * yfac(i,2)
760 yld(i) = fail(i)*(y1(i) + fac*(y2(i)-y1(i)))
761 yld(i) =
max(yld(i),em20)
762 dydx1(i)=dydx1(i)*yfac(i,1)
763 dydx2(i)=dydx2(i)*yfac(i,2)
764 h(i) = fail(i)*(dydx1(i) + fac*(dydx2(i)-dydx1(i)))
765 yld(i) = yld(i)*
max(zero,pfac(i))
766 h(i) = h(i) *
max(zero,pfac(i))
767 dfsr(i) = h(i) +
max(zero,pfac(i))*fail(i)*(y2(i)-y1(i))/
768 . (uparam(7+jj(i))-uparam(6+jj(i))) /timestep
773#include "vectorize.inc"
776 dpla_i(i) = dpla_j(i)
777 pla(i) = plaold(i) + dpla_i(i)
778 plap(i) = dpla_i(i) / timestep
779 r(i) = yld(i)/(yld(i) +g3(i)*dpla_i(i))
780 svm = r(i)* svm_tab(i)
782 f = svm - yld(i) - g3(i) *dpla_i(i)
783 df = - g3(i) -dfsr(i)
784 df = sign(
max(abs(df),em20),df)
785 IF(dpla_i(i) > zero)
THEN
786 dpla_j(i)=
max( em10 ,dpla_i(i)-f/df)
793 pla(i) = plaold(i) + dpla_j(i)
794 plap(i) = dpla_j(i) / timestep
800 IF(plap(i) >= uparam(6+j)) jj(i) = j
803 IF (ismooth == 2)
THEN
804#include "vectorize.inc"
806 epsp1 =
max(uparam(6+jj(i)), em20)
807 epsp2 = uparam(7+jj(i))
808 rfac(i) = log(
max(plap(i),em20)/epsp1) / log(epsp2/epsp1)
811#include "vectorize.inc"
814 epsp1 = uparam(6+jj(i))
815 epsp2 = uparam(7+jj(i))
816 rfac(i) = (plap(i) - epsp1) / (epsp2 - epsp1)
821#include "vectorize.inc"
825 index_vinter(nindex_vinter) = i
828 iposp(nindex_vinter) = vartmp(i,j1+2)
829 iadp(nindex_vinter) = npf(ifunc(jj(i)) ) / 2 + 1
830 ilenp(nindex_vinter) = npf(ifunc(jj(i)) + 1) / 2 - iadp(nindex_vinter) - iposp(nindex_vinter)
831 iposp2(nindex_vinter) = vartmp(i,j2+2)
832 iadp2(nindex_vinter) = npf(ifunc(jj(i)+1)) / 2 + 1
833 ilenp2(nindex_vinter) = npf(ifunc(jj(i)+1) + 1) / 2 - iadp2(nindex_vinter) - iposp2(nindex_vinter)
834 tab_loc(nindex_vinter) = pla(i)
835 yfac(i,1)=uparam(6+nrate+j1)*facyldi(i)
836 yfac(i,2)=uparam(6+nrate+j2)*facyldi(i)
839 CALL vinter2(tf,iadp,iposp,ilenp,nindex_vinter,tab_loc,dydx1_loc,y1_loc)
840 CALL vinter2(tf,iadp2,iposp2,ilenp2,nindex_vinter,tab_loc
842 DO ii=1,nindex_vinter
846 vartmp(i,j1+2) = iposp(ii)
847 vartmp(i,j2+2) = iposp2(ii)
849#include "vectorize.inc"
850 DO ii=1,nindex_vinter
854 dydx1(i)=dydx1_loc(ii)
855 dydx2(i)=dydx2_loc(ii)
858#include "vectorize.inc"
863 y1(i) = yfac(i,1) * y1(i)
864 y2(i) = yfac(i,2) * y2(i)
866 yld(i)= fail(i)*(y1(i) + fac*(y2(i)-y1(i)))
867 yld(i) =
max(yld(i),em20)
868 yld(i) = yld(i)*
max(zero,pfac(i))
869 dydx1(i)=dydx1(i)*yfac(i,1)
870 dydx2(i)=dydx2(i)*yfac(i,2)
871 h(i) = fail(i)*(dydx1(i) + fac*(dydx2(i)-dydx1(i)))
872 h(i) = h(i) *
max(zero,pfac(i))
873 dfsr(i)= h(i)+
max(zero,pfac(i))*fail(i)*(y2(i)-y1(i))
874 . /(uparam(7+jj(i))-uparam(6+jj(i))) /timestep
878#include "vectorize.inc"
881 pla(i) = plaold(i) + dpla_i(i)
882 plap(i) = dpla_i(i) / timestep
883 signxx(i) = signxx(i)*r(i)
884 signyy(i) = signyy(i)*r(i)
885 signzz(i) = signzz(i)*r(i)
886 signxy(i) = signxy(i)*r(i)
887 signyz(i) = signyz(i)*r(i)
888 signzx(i) = signzx(i)*r(i)
890 uvar(i,1) = dpla_i(i)
895 ELSEIF (fisokin == one )
THEN
899#include "vectorize.inc"
902 svm_tab(i) = sqrt(svm2(i))
903 dpla_j(i) = uvar(i,1) + em09
910#include "vectorize.inc"
913 IF (plap(i) >= uparam(6+j)) jj(i) = j
917 IF (ismooth == 2)
THEN
918#include "vectorize.inc"
921 epsp1 =
max(uparam(6+jj(i)), em20)
922 epsp2 = uparam(7+jj(i))
923 rfac(i) = log(
max(plap(i),em20)/epsp1) / log(epsp2/epsp1)
926#include "vectorize.inc"
929 epsp1 = uparam(6+jj(i))
930 epsp2 = uparam(7+jj(i))
931 rfac(i) = (plap(i) - epsp1) / (epsp2 - epsp1)
936#include "vectorize.inc"
939 nindex_vinter = nindex_vinter + 1
940 index_vinter(nindex_vinter) = i
943 iposp(nindex_vinter) = vartmp(i,j1+2)
944 iadp(nindex_vinter) = npf(ifunc(jj(i)) ) / 2 + 1
945 ilenp(nindex_vinter) = npf(ifunc(jj(i)) + 1) / 2 - iadp(nindex_vinter) - iposp(nindex_vinter)
946 iposp2(nindex_vinter) = vartmp(i,j2+2)
947 iadp2(nindex_vinter) = npf(ifunc(jj(i)+1)) / 2 + 1
948 ilenp2(nindex_vinter) = npf(ifunc(jj(i)+1) + 1) / 2 - iadp2(nindex_vinter) - iposp2(nindex_vinter
949 tab_loc(nindex_vinter) = pla(i)
950 yfac(i,1)=uparam(6+nrate+j1)*facyldi(i)
951 yfac(i,2)=uparam(6+nrate+j2)*facyldi(i)
954 CALL vinter2(tf,iadp,iposp,ilenp,nindex_vinter,tab_loc,dydx1_loc,y1_loc)
955 CALL vinter2(tf,iadp2,iposp2,ilenp2,nindex_vinter,tab_loc,dydx2_loc,y2_loc)
957 DO ii=1,nindex_vinter
961 vartmp(i,j1+2) = iposp(ii)
962 vartmp(i,j2+2) = iposp2(ii)
964#include "vectorize.inc"
965 DO ii=1,nindex_vinter
969 dydx1(i)=dydx1_loc(ii)
970 dydx2(i)=dydx2_loc(ii)
973#include "vectorize.inc"
979 y1(i) = yfac(i,1)*y1(i)
980 y2(i) = yfac(i,2)*y2(i)
982 yld(i)= fail(i)*(y1(i) + fac*(y2(i)-y1(i)))
984 dydx1(i)=dydx1(i)*yfac(i,1)
985 dydx2(i)=dydx2(i)*yfac(i,2)
986 h(i) = fail(i)*(dydx1(i) + fac*(dydx2(i)-dydx1(i)))
987 h(i) = h(i) *
max(zero,pfac(i))
988 hi(i) = h(i)*(one-fisokin)
990 coef(i) = (y2(i)-y1(i))/(uparam(6+j2)-uparam(6+j1)) /timestep
991 dfsr(i) = h(i)+ coef(i)
992 dfsr(i) = dfsr(i) * (one-fisokin)*
max(zero,pfac(i))
994 y1(i)=tf(npf(ifunc(j1))+1)
995 y2(i)=tf(npf(ifunc(j2))+1)
996 y1(i)= y1(i)*yfac(i,1)
997 y2(i)= y2(i)*yfac(i,2)
998 coef(i) =
max(zero,pfac(i))*fisokin * fail(i)*(y2(i)-y1(i))
999 . /(uparam(6+j2)-uparam(6+j1)) /timestep
1000 yld(i) = (one-fisokin) * yld(i) +
1001 . fisokin * (fail(i)*(y1(i) + fac*(y2(i)-y1(i))))
1002 yld(i) =
max(yld(i),em20)
1003 yld(i) = yld(i) *
max(zero,pfac(i))
1009#include "vectorize.inc"
1013 dpla_i(i) = dpla_j(i)
1014 pla(i) = plaold(i) + dpla_i(i)
1015 plap(i) = dpla_i(i) / timestep
1016 r(i) = yld(i)/(yld(i) +(g3(i)+fisokin*h(i))*dpla_i(i))
1017 svm = r(i)* svm_tab(i)
1018 f = svm - yld(i) - (g3(i)+fisokin*h(i)) *dpla_i(i)
1019 df =-(g3(i)+fisokin*h(i)) - (dfsr(i) + coef(i) )
1020 df = sign(
max(abs(df),em20),df)
1021 IF(dpla_i(i) > zero)
THEN
1022 dpla_j(i)=
max( em10 ,dpla_i(i)-f/df)
1029 pla(i) = plaold(i) + dpla_j(i)
1030 plap(i) = dpla_j(i) / timestep
1034#include "vectorize.inc"
1037 IF(plap(i) >= uparam
1041 IF (ismooth == 2)
THEN
1042#include "vectorize.inc"
1045 epsp1 =
max(uparam(6+jj(i)), em20)
1047 rfac(i) = log(
max(plap(i),em20)/epsp1)
1050#include "vectorize.inc"
1053 epsp1 = uparam(6+jj(i))
1054 epsp2 = uparam(7+jj(i))
1055 rfac(i) = (plap(i) - epsp1) / (epsp2 - epsp1)
1060#include "vectorize.inc"
1063 nindex_vinter = nindex_vinter + 1
1064 index_vinter(nindex_vinter) = i
1067 iposp(nindex_vinter) = vartmp(i,j1+2)
1068 iadp(nindex_vinter) = npf(ifunc(jj(i)) ) / 2 + 1
1069 ilenp(nindex_vinter) = npf(ifunc(jj(i)) + 1) / 2 - iadp(nindex_vinter) - iposp(nindex_vinter)
1070 iposp2(nindex_vinter) = vartmp(i,j2+2)
1071 iadp2(nindex_vinter) = npf(ifunc(jj(i)+1)) / 2 + 1
1072 ilenp2(nindex_vinter) = npf(ifunc(jj(i)+1) + 1) / 2 - iadp2(nindex_vinter) - iposp2(nindex_vinter)
1073 tab_loc(nindex_vinter) = pla(i)
1074 yfac(i,1)=uparam(6+nrate+j1)*facyldi(i)
1075 yfac(i,2)=uparam(6+nrate+j2)*facyldi(i)
1078 CALL vinter2(tf,iadp,iposp,ilenp,nindex_vinter,tab_loc,dydx1_loc,y1_loc)
1079 CALL vinter2(tf,iadp2,iposp2,ilenp2,nindex_vinter,tab_loc,dydx2_loc,y2_loc)
1081 DO ii=1,nindex_vinter
1082 i = index_vinter(ii)
1085 vartmp(i,j1+2) = iposp(ii)
1086 vartmp(i,j2+2) = iposp2(ii)
1088#include "vectorize.inc"
1089 DO ii=1,nindex_vinter
1090 i = index_vinter(ii)
1093 dydx1(i)=dydx1_loc(ii)
1094 dydx2(i)=dydx2_loc(ii)
1097#include "vectorize.inc"
1103 y1(i) = yfac(i,1) * y1(i)
1104 y2(i) = yfac(i,2) * y2(i)
1106 yld(i)= fail(i)*(y1(i) + fac*(y2(i)-y1(i)))
1107 dydx1(i)=dydx1(i)*yfac(i,1)
1108 dydx2(i)=dydx2(i)*yfac(i,2)
1109 h(i) = fail(i)*(dydx1(i) + fac*(dydx2(i)-dydx1(i)))
1110 h(i) = h(i) *
max(zero,pfac(i))
1111 hi(i) = h(i)*(one-fisokin)
1112 dfsr(i) = hi(i)+
max(zero,pfac(i))* (one-fisokin)*(y2(i)-y1(i))
1113 . / (uparam(7+jj(i))-uparam(6+jj(i))) /timestep
1114 y1(i)=tf(npf(ifunc(j1))+1)
1115 y2(i)=tf(npf(ifunc(j2))+1)
1116 y1(i)=y1(i)*yfac(i,1)
1117 y2(i)=y2(i)*yfac(i,2)
1118 coef(i) =
max(zero,pfac(i))*fisokin * fail(i)*(y2(i)-y1(i))
1119 . / (uparam(6+j2)-uparam(6+j1)) /timestep
1120 yld(i) = (one-fisokin) * yld(i)
1121 . + fisokin * (fail(i)*(y1(i) + fac*(y2(i)-y1(i))))
1122 yld(i) =
max(yld(i),em20)
1123 yld(i) = yld(i) *
max(zero,pfac(i))
1127#include "vectorize.inc"
1130 pla(i) = plaold(i) + dpla_i(i)
1131 plap(i) = dpla_i(i) / timestep
1132 signxx(i) = signxx(i)*r(i)
1133 signyy(i) = signyy(i)*r(i)
1134 signzz(i) = signzz(i)*r(i)
1135 signxy(i) = signxy(i)*r(i)
1136 signyz(i) = signyz(i)*r(i)
1137 signzx(i) = signzx(i)*r(i)
1138 dpla1(i) = dpla_i(i)
1139 uvar(i,1) = dpla_i(i)
1146#include "vectorize.inc"
1149 svm_tab(i) = sqrt(svm2(i))
1150 dpla_j(i) = uvar(i,1) + em09
1158#include "vectorize.inc"
1161 IF(plap(i) >= uparam(6+j)) jj(i) = j
1165 IF (ismooth == 2)
THEN
1166#include "vectorize.inc"
1169 epsp1 =
max(uparam(6+jj(i)), em20)
1170 epsp2 = uparam(7+jj(i))
1171 rfac(i) = log(
max(plap(i),em20)/epsp1) / log(epsp2/epsp1)
1174#include "vectorize.inc"
1177 epsp1 = uparam(6+jj(i))
1178 epsp2 = uparam(7+jj(i))
1179 rfac(i) = (plap(i) - epsp1) / (epsp2 - epsp1)
1182! ------------------------
1184#include "vectorize.inc"
1187 nindex_vinter = nindex_vinter + 1
1188 index_vinter(nindex_vinter) = i
1191 iposp(nindex_vinter) = vartmp(i,j1+2)
1192 iadp(nindex_vinter) = npf(ifunc(jj(i)) ) / 2 + 1
1193 ilenp(nindex_vinter) = npf(ifunc(jj(i)) + 1) / 2 - iadp(nindex_vinter) - iposp(nindex_vinter)
1194 iposp2(nindex_vinter) = vartmp(i,j2+2)
1195 iadp2(nindex_vinter) = npf(ifunc(jj(i)+1)) / 2 + 1
1196 ilenp2(nindex_vinter) = npf(ifunc(jj(i)+1) + 1) / 2 - iadp2(nindex_vinter) - iposp2(nindex_vinter)
1197 tab_loc(nindex_vinter) = pla(i)
1198 yfac(i,1)=uparam(6+nrate+j1)*facyldi(i)
1199 yfac(i,2)=uparam(6+nrate+j2)*facyldi(i)
1202 CALL vinter2(tf,iadp,iposp,ilenp,nindex_vinter,tab_loc,dydx1_loc,y1_loc)
1203 CALL vinter2(tf,iadp2,iposp2,ilenp2,nindex_vinter,tab_loc,dydx2_loc,y2_loc)
1205 DO ii=1,nindex_vinter
1206 i = index_vinter(ii)
1209 vartmp(i,j1+2) = iposp(ii)
1210 vartmp(i,j2+2) = iposp2(ii)
1212#include "vectorize.inc"
1213 DO ii=1,nindex_vinter
1214 i = index_vinter(ii)
1217 dydx1(i)=dydx1_loc(ii)
1218 dydx2(i)=dydx2_loc(ii)
1221#include "vectorize.inc"
1227 y1(i) = yfac(i,1) * y1(i)
1228 y2(i) = yfac(i,2) * y2(i)
1230 yld(i)= fail(i)*(y1(i) + fac*(y2(i)-y1(i)))
1232 dydx1(i)=dydx1(i)*yfac(i,1)
1233 dydx2(i)=dydx2(i)*yfac(i,2)
1234 h(i) = fail(i)*(dydx1(i) + fac*(dydx2(i)-dydx1(i)))
1235 h(i) = h(i) *
max(zero,pfac(i))
1236 hi(i) = h(i)*(one-fisokin)
1238 coef(i) = (y2(i)-y1(i))/(uparam(6+j2)-uparam(6+j1)) /timestep
1239 dfsr(i) = h(i)+ coef(i)
1240 dfsr(i) = dfsr(i) * (one-fisokin)*
max(zero,pfac(i))
1242 y1(i)=tf(npf(ifunc(j1))+1)
1243 y2(i)=tf(npf(ifunc(j2))+1)
1244 y1(i)= y1(i)*yfac(i,1)
1245 y2(i)= y2(i)*yfac(i,2)
1246 coef(i) =
max(zero,pfac(i))*fisokin * fail(i)*(y2(i)-y1(i))
1247 . /(uparam(6+j2)-uparam(6+j1)) /timestep
1248 yld(i) = (one-fisokin) * yld(i) +
1249 . fisokin * (fail(i)*(y1(i) + fac*(y2(i)-y1(i))))
1250 yld(i) =
max(yld(i),em20)
1251 yld(i) = yld(i)*
max(zero,pfac(i))
1257#include "vectorize.inc"
1261 dpla_i(i) = dpla_j(i)
1262 pla(i) = plaold(i) + dpla_i(i)
1263 plap(i) = dpla_i(i) / timestep
1264 r(i) = yld(i)/(yld(i) +(g3
1265 svm = r(i)* svm_tab(i)
1266 f = svm - yld(i) - (g3(i)+fisokin*h(i)) *dpla_i(i)
1267 df =-(g3(i)+fisokin*h(i)) - (dfsr(i) + coef(i))
1268 df = sign(
max(abs(df),em20),df)
1269 IF(dpla_i(i) > zero)
THEN
1270 dpla_j(i)=
max( em10 ,dpla_i(i)-f/df)
1277 pla(i) = plaold(i) + dpla_j(i)
1278 plap(i) = dpla_j(i) / timestep
1282#include "vectorize.inc"
1285 IF(plap(i) >= uparam(6+j)) jj(i) = j
1289 IF (ismooth == 2)
THEN
1290#include "vectorize.inc"
1293 epsp1 =
max(uparam(6+jj(i)), em20)
1295 rfac(i) = log(
max(plap(i),em20)/epsp1) / log(epsp2/epsp1)
1298#include "vectorize.inc"
1301 epsp1 = uparam(6+jj(i))
1302 epsp2 = uparam(7+jj(i))
1303 rfac(i) = (plap(i) - epsp1) / (epsp2 - epsp1)
1308#include "vectorize.inc"
1311 nindex_vinter = nindex_vinter + 1
1312 index_vinter(nindex_vinter) = i
1315 iposp(nindex_vinter) = vartmp(i,j1+2)
1316 iadp(nindex_vinter) = npf(ifunc(jj(i)) ) / 2 + 1
1318 iposp2(nindex_vinter) = vartmp(i,j2+2)
1319 iadp2(nindex_vinter) = npf(ifunc(jj(i)+1)) / 2 + 1
1320 ilenp2(nindex_vinter) = npf(ifunc(jj(i)+1) + 1) / 2 - iadp2(nindex_vinter) - iposp2(nindex_vinter)
1321 tab_loc(nindex_vinter) = pla(i)
1322 yfac(i,1)=uparam(6+nrate+j1)*facyldi
1323 yfac(i,2)=uparam(6+nrate+j2)*facyldi(i)
1326 CALL vinter2(tf,iadp,iposp,ilenp,nindex_vinter,tab_loc,dydx1_loc,y1_loc)
1327 CALL vinter2(tf,iadp2,iposp2,ilenp2,nindex_vinter,tab_loc,dydx2_loc,y2_loc)
1329 DO ii=1,nindex_vinter
1330 i = index_vinter(ii)
1333 vartmp(i,j1+2) = iposp(ii)
1334 vartmp(i,j2+2) = iposp2(ii)
1336#include "vectorize.inc"
1337 DO ii=1,nindex_vinter
1338 i = index_vinter(ii)
1341 dydx1(i)=dydx1_loc(ii)
1342 dydx2(i)=dydx2_loc(ii)
1344! ------------------------
1345#include "vectorize.inc"
1351 y1(i) = yfac(i,1) * y1(i)
1352 y2(i) = yfac(i,2) * y2(i)
1354 yld(i)= fail(i)*(y1(i) + fac*(y2(i)-y1(i)))
1355 dydx1(i)=dydx1(i)*yfac(i,1)
1356 dydx2(i)=dydx2(i)*yfac(i,2)
1357 h(i) = fail(i)*(dydx1(i) + fac*(dydx2(i)-dydx1(i)))
1358 h(i) = h(i) *
max(zero,pfac(i))
1359 hi(i)= h(i)*(one-fisokin)
1360 dfsr(i) = hi(i)+
max(zero,pfac(i))* (one-fisokin)*(y2(i)-y1(i))
1361 . /(uparam(7+jj(i))-uparam(6+jj(i))) /timestep
1362 y1(i)=tf(npf(ifunc(j1))+1)
1363 y2(i)=tf(npf(ifunc(j2))+1)
1364 y1(i)=y1(i)*yfac(i,1)
1365 y2(i)=y2(i)*yfac(i,2)
1366 coef(i) =
max(zero,pfac(i))*fisokin * fail(i)*(y2(i)-y1(i))
1367 . /(uparam(6+j2)-uparam(6+j1)) /timestep
1368 yld(i) = (one-fisokin) * yld(i) +
1369 . fisokin * (fail(i)*(y1(i) + fac*(y2(i)-y1(i))))
1370 yld(i) =
max(yld(i),em20)
1371 yld(i) = yld(i) *
max(zero,pfac(i))
1374#include "vectorize.inc"
1377 pla(i) = plaold(i) + dpla_i(i)
1378 plap(i) = dpla_i(i) / timestep
1379 signxx(i) = signxx(i)*r(i)
1380 signyy(i) = signyy(i)*r(i)
1381 signzz(i) = signzz(i)*r(i)
1382 signxy(i) = signxy(i)*r(i)
1383 signyz(i) = signyz(i)*r(i)
1384 signzx(i) = signzx(i)*r(i)
1385 dpla1(i) = dpla_i(i)
1386 uvar(i,1) = dpla_i(i)
1395 IF (ipla /= 1 .OR. impl_s <= 0)
THEN
1397 IF (fisokin == one )
THEN
1398#include "vectorize.inc"
1400 dsxx = sigexx(i) - signxx(i)
1401 dsyy = sigeyy(i) - signyy(i)
1402 dszz = sigezz(i) - signzz(i)
1403 dsxy = sigexy(i) - signxy(i)
1404 dsyz = sigeyz(i) - signyz(i)
1405 dszx = sigezx(i) - signzx(i)
1407 hkin = two_third*fisokin*h(i)
1408 alpha = hkin/(g2(i)+hkin)
1417 sigbxx(i) = sigbxx(i) + sigpxx
1418 sigbyy(i) = sigbyy(i) + sigpyy
1419 sigbzz(i) = sigbzz(i) + sigpzz
1420 sigbxy(i) = sigbxy(i) + sigpxy
1421 sigbyz(i) = sigbyz(i) + sigpyz
1422 sigbzx(i) = sigbzx(i) + sigpzx
1425 signxx(i) = signxx(i) + sigbxx(i)
1426 signyy(i) = signyy(i) + sigbyy(i)
1427 signzz(i) = signzz(i) + sigbzz(i)
1428 signxy(i) = signxy(i) + sigbxy(i)
1429 signyz(i) = signyz(i) + sigbyz(i)
1430 signzx(i) = signzx(i) + sigbzx(i)
1433 ELSEIF (fisokin > zero)
THEN
1434#include "vectorize.inc"
1436 dsxx = sigexx(i) - signxx(i)
1437 dsyy = sigeyy(i) - signyy(i)
1438 dszz = sigezz(i) - signzz(i)
1439 dsxy = sigexy(i) - signxy(i)
1440 dsyz = sigeyz(i) - signyz(i)
1441 dszx = sigezx(i) - signzx(i)
1443 hkin = two_third*fisokin*h(i)
1444 alpha = hkin/(g2(i)+hkin)
1453 sigbxx(i) = sigbxx(i) + sigpxx
1454 sigbyy(i) = sigbyy(i) + sigpyy
1455 sigbzz(i) = sigbzz(i) + sigpzz
1456 sigbxy(i) = sigbxy(i) + sigpxy
1457 sigbyz(i) = sigbyz(i) + sigpyz
1458 sigbzx(i) = sigbzx(i) + sigpzx
1461 signxx(i) = signxx(i) + sigbxx(i)
1462 signyy(i) = signyy(i) + sigbyy(i)
1463 signzz(i) = signzz(i) + sigbzz(i)
1464 signxy(i) = signxy(i) + sigbxy(i)
1465 signyz(i) = signyz(i) + sigbyz(i)
1466 signzx(i) = signzx(i) + sigbzx(i)
1474 p = bulk(i) * amu(i)
1475 signxx(i) = signxx(i) - p
1476 signyy(i) = signyy(i) - p
1477 signzz(i) = signzz(i) - p
1484 soundsp(i) = sqrt((dpdm(i) + four*g(i)/three)/rho0(i))
1489 IF (impl_s > 0)
THEN
1495 IF(dpla1(i) > 0) etse(i)= h(i)/g2(i)
1498 IF (dpla1(i) > zero)
THEN
1502 vm =half*(sigexx(i)**2+sigeyy(i)**2+sigezz(i)**2)
1503 . +sigexy(i)**2+sigeyz(i)**2+sigezx(i)**2
1504 vm_1 =one/sqrt(three*vm)
1506 r(i) =
max(zero,one-g3h*dpla1(i)*vm_1)
1509 norm_1=g3(i)*vm_1*sqrt(r(i)/g3h)
1511 signor(i,1)=sigexx(i)*norm_1
1512 signor(i,2)=sigeyy(i)*norm_1
1513 signor(i,3)=sigezz(i)*norm_1
1514 signor(i,4)=sigexy(i)*norm_1
1515 signor(i,5)=sigeyz(i)*norm_1
1516 signor(i,6)=sigezx(i)*norm_1
1519 al_imp(i)= one - g3(i)*dpla1(i)*vm_1
1527 IF (off(i) < em01) off(i) = zero
1528 IF (off(i) < one) off(i) = off(i)*four_over_5
1533 IF (ifail == 2)
THEN
1536 IF (epsmax < ep20) dmg(i) =
max(dmg(i),planl(i)/epsmax)
1537 IF ((planl(i) > epsmax .OR. epstt(i) > epsf) .AND. off(i) == one)
THEN
1545 IF (epsmax < ep20) dmg(i) =
max(dmg(i),pla(i)/epsmax)
1546 IF ((pla(i) > epsmax .OR. epstt(i) > epsf) .AND. off(i) == one)
THEN
1556 IF (epsmax < ep20) dmg(i) = planl(i)/epsmax
1557 IF (planl(i) > epsmax .AND. off(i) == one)
THEN
1565 IF (epsmax < ep20) dmg(i) = pla(i)/epsmax
1566 IF (pla(i) > epsmax .AND. off(i) == one)
THEN
1574 IF (nindx > 0 .AND. imconv == 1)
THEN
1576#include "lockon.inc"
1577 WRITE(iout, 1000) ngl(indx(j))
1578 WRITE(istdo,1100) ngl(indx(j)),tt
1579#include "lockoff.inc"
1584 1000
FORMAT(1x,
'RUPTURE OF SOLID ELEMENT NUMBER ',i10)
1585 1100
FORMAT(1x,
'RUPTURE OF SOLID ELEMENT NUMBER ',i10,
' AT TIME :',g11.4)