37 1 NEL, NUPARAM, NUVAR, MFUNC,
38 2 KFUNC, NPF, NPT0, IPT,
39 3 IFLAG, TF, TIME, TIMESTEP,
40 4 UPARAM, RHO0, AREA, EINT,
41 5 THKLY, EPSPXX, EPSPYY, EPSPXY,
42 6 EPSPYZ, EPSPZX, DEPSXX, DEPSYY,
43 7 DEPSXY, DEPSYZ, DEPSZX, EPSXX,
44 8 EPSYY, EPSXY, EPSYZ, EPSZX,
45 9 SIGOXX, SIGOYY, SIGOXY, SIGOYZ,
46 A SIGOZX, SIGNXX, SIGNYY, SIGNXY,
47 B SIGNYZ, SIGNZX, SIGVXX, SIGVYY,
48 C SIGVXY, SIGVYZ, SIGVZX, SOUNDSP,
49 D VISCMAX, THK, PLA, UVAR,
52 G YLD, TEMP, DIE, COEF,
53 H SHF, EPSP, TABLE, ITHK,
54 I NVARTMP, VARTMP, EPSTHTOT,JTHE,
55 J IDT_THERM,THEACCFACT)
63#include "implicit_f.inc"
115#include "param_c.inc"
116#include "com01_c.inc"
117#include "scr18_c.inc"
121 INTEGER,
INTENT(IN) :: JTHE
122 INTEGER,
INTENT(IN) :: IDT_THERM
123 INTEGER NEL, NUPARAM, NUVAR,NVARTMP, NPT0, IPT,IFLAG(*),
124 . NGL(NEL),MAT(NEL),IPM(NPROPMI,*),ITHK
125 my_real ,
intent(in) :: THEACCFACT
126 my_real TIME,TIMESTEP,UPARAM(*),
127 . AREA(NEL),RHO0(NEL),EINT(NEL,2),
128 . THKLY(NEL),PLA(NEL),
129 . EPSPXX(NEL),EPSPYY(NEL),
130 . EPSPXY(NEL),EPSPYZ(NEL),EPSPZX(NEL),
131 . DEPSXX(NEL),DEPSYY(NEL),
132 . DEPSXY(NEL),DEPSYZ(NEL),DEPSZX(NEL),
133 . EPSXX(NEL) ,EPSYY(NEL) ,
134 . EPSXY(NEL) ,EPSYZ(NEL) ,EPSZX(NEL) ,
136 . SIGOXY(NEL),SIGOYZ(NEL),SIGOZX(NEL),
137 . PM(NPROPM,*),GS(*),VOL(NEL) ,TEMP(NEL),
138 . DIE(NEL),COEF(NEL), (NEL) ,EPSTHTOT (NEL)
143 . signxx(nel),signyy(nel),
144 . signxy(nel),signyz(nel),signzx(nel),
145 . sigvxx(nel),sigvyy(nel),
146 . sigvxy(nel),sigvyz(nel),sigvzx(nel),
147 . soundsp(nel),viscmax(nel),etse(nel)
152 . uvar(nel,nuvar),epsp(nel),
153 . off(nel),thk(nel),yld(nel)
154 INTEGER :: VARTMP(NEL,NVARTMP)
156 TYPE(TTABLE) TABLE(*)
160 INTEGER NPF(*), MFUNC, KFUNC(MFUNC)
161 my_real finter ,tf(*)
173 INTEGER II,ITER,NITER,I,J,K,NRATE(NEL),J1,J2,N,NINDX,IADBUF,NINDXGLOB,NINDXLOC,
174 . NMAX,INDEX(NEL),K2,ITERK2,NPFG(2),ITABLE(5),
175 . efunc,ifunc(5),iterk,flag,ntab,heatflag,heatoption,
176 . niheat,nicool,flag_loc ,local,flag_tr_strain,flag_tr_kinetics
177 INTEGER,
DIMENSION(NEL) :: INDXLOC,INDXGLOB
180 . cun ,cdeux,ctrois,efac,
181 . alambda,blambda,ceps,peps,
182 . yscale(5),teta2,teta3,teta4,teta5,qr2,qr3,qr4,pp,
183 . alfa1,alfa2,t2,t3,t4,t5,t1,voli,xfac(5),rscale(5),
184 .
alpha,tref,ae1,ae3,bs,ms,gsize,nu,fcfer,fcper,fcbai,fg,
185 . rhnew,fgrain,kper,hfctn,kbain,xeq2,
186 . xeq4,lat1,lat2,hfp,hb,hm,vol0,tini,unitt,
187 . tgz(12), heatflag1,
188 . conv,huitcent,sspshell,sspsol,qptt,slope,
189 . tau1, tau3,dxrho,dydxr,nu_1_nu,dsvm,den,fac,
190 . gfac_f,phi_f,psi_f,cr_f,cf,gfac_p,phi_p,psi_p,cr_p,cp,
191 . gfac_b,phi_b,psi_b,cr_b,cb,phi_m,psi_m,n_m
192 . normxx,normyy,normxy,normzz,ddlam,dfdsig_dsig,dpla_dlam,ddep
194 . e(nel),rbulk(nel),g2(nel),deth12(nel),
195 . lamda(nel),dydxgz(nel),dydxe(nel),
196 . frac1(nel),frac2(nel),frac3(nel) ,frac4(nel),
197 . frac5(nel),totfrac(nel),totfracold(nel) ,soxx(nel) ,
198 . gz(nel) ,treo(nel) ,sigom(nel),soyy(nel),sozz(nel),
199 . dydx1(nel),dydx2(nel) ,dydx3(nel),
200 . dydx4(nel),dydx5(nel) ,yield(nel),
201 . y1(nel) ,y2(nel),y3(nel),y4(nel),y5(nel),svm(nel),
202 . eoxx(nel),eoyy(nel),eozz(nel),
203 . eoxy(nel),eoyz(nel),eozx(nel),
205 . epsoxx(nel),epsoyy(nel),epsozz(nel),epsoxy(nel),
206 . depszz(nel),epszz(nel),
207 . dpla(nel) ,snorm(nel),seff(nel),sigozz(nel),
208 . signzz(nel),sigm(nel) ,sxx(nel),syy(nel),szz(nel),
210 . deplyy(nel),deplzz(nel),deplxy(nel),
211 . dpla1(nel),dpla2(nel),dpla3(nel),dpla4(nel),dpla5(nel),
212 . pla1(nel) ,pla2(nel) ,pla3(nel) ,pla4(nel) ,pla5(nel),
213 . depselzz(nel),depsplzz(nel),depsim1(nel),depsi(nel),
214 . depsip1(nel),sigzim1(nel),sigi(nel),
215 . volold(nel),rh(nel),de12(nel),yldold(nel),
216 . depselozz(nel),depsplozz(nel),
217 . svmi(nel),trdepsth(nel),svmim1(nel),svmtr(nel),trdeps,
218 . depsthxx(nel),depsthyy(nel),depsthzz(nel),depsth(nel),
219 . x1(nel),x2(nel),x3(nel),x4(nel),x5(nel),hard(nel),
220 . gold(nel),svmtest(nel),
221 . eplxx(nel),eplyy(nel),eplzz(nel) ,eplxy(nel),
222 . eeloxx(nel),eeloyy(nel),depstr(nel) ,
223 . eeloxy(nel),eelozz(nel),normdev(nel) ,
224 . xgama(nel),tempmin(nel),vr(nel),h(nel),tempo(nel),
225 . zeq(nel), tau(nel),
226 . rho_a(nel),rho_f(nel),rho_p(nel),rho_b(nel),rho_m(nel),rho_n(nel)
227 my_real,
DIMENSION(NEL) ::
228 . psi2 ,psi3,psi4,psi5,phi2,phi3,phi4 ,phi5 ,faccs,tempel,
229 . lnf2,lnf3,lnf4,lnf5,a1, a2,g,p,fct,df,dpxx,dpyy,dpxy,dpzz,
230 . svmo,depsvol,dexx,deyy,dezz,hfct,a,b,c,dh,
231 . gsig,dgsig,esf,desf,r,pold,sxy,logz,logzm1
234 .
DIMENSION(NEL,3) :: xx5,xx1,xx2,xx3,xx4
236 INTEGER,
DIMENSION(NEL,3) :: IPOS1,IPOS2,IPOS3,IPOS4,IPOS5
241 NTAB = ipm(226,mat(1))
244 itable(i) = ipm(226+i,mat(1))
245 xfac(i) = uparam(58+i)
253 yscale(j)=uparam(9+j)
277 IF (idt_therm == 1)
THEN
328 tgz(j-58+12)=uparam(j)
331 heatoption = uparam(58 + ntab + 1)
332 tau1 = uparam(58 + ntab + 2)
333 tau3 = uparam(58 + ntab + 3)
334 flag_loc = uparam(58 + ntab + 4)
336 flag_tr_strain = uparam(58 + ntab + 5)
337 flag_tr_kinetics = uparam(58 + ntab + 6)
338 rscale(1) = uparam(58 + ntab + 7)
339 rscale(2) = uparam(58 + ntab + 8)
340 rscale(3) = uparam(58 + ntab + 9)
341 rscale(4) = uparam(58 + ntab +10)
342 rscale(5) = uparam(58 + ntab +11)
344 heatflag = heatoption
345 IF(heatoption == 2)
THEN
346 heatflag1 = finter(kfunc(2),time,npf,tf,slope)
347 heatflag = int(heatflag1)
352 qptt=four+three*(em01+em02)
357 cun = third/(one-two*nu)
358 cdeux = half/(one+nu)
359 ctrois = nu/(one+nu)/(one-two*nu)
362 IF (time == zero)
THEN
366 IF(heatflag == 1)
THEN
372 uvar(i,8) = uparam(45)
373 uvar(i,1) = uparam(45)
375 IF(jthe==-1) uvar(i,8) =temp(i)
384 CALL table_vinterp(table(itable(1)),nel,nel,ipos1,xx1,y1,dydx1)
403 tempmin(i) = uvar(i,1)
406 IF(kfunc(1) > zero)
THEN
408 e(i) = finter(kfunc(1),tempel(i),npf,tf,dydxe(i))
414 a1(i) = e(i)/(one-nu*nu)
416 g(i) = e(i)*half/(one+nu)
429 totfracold(i) = frac2(i)+frac3(i)+frac4(i)+frac5(i)
452 IF (heatflag == 1)
THEN
462 IF(flag_loc == 2)
THEN
463 IF (heatflag == 1)
THEN
465 IF(tempel(i)>= uvar(i,8).AND.frac2(i)>zero)
THEN
468 zeq(i) =
min( one ,
max( zero, zeq(i)))
469 tau(i) =
max( tau3,
min( tau1, tau(i)))
470 frac1(i) = uvar(i,2) +
max(zero,(zeq(i) - uvar(i,2)) ) * timestep*theaccfact / tau(i)
471 frac2(i) = one - frac1(i) - frac3(i)- frac4(i)- frac5(i)
472 tempmin(i) = uvar(i,8)
479 IF (tempel(i)<= 1073.0 .AND. uvar(i,26)==zero)
THEN
483 IF (tempel(i)<= 773.0 .AND. uvar(i,16)==zero)
THEN
488 IF (flag_tr_kinetics == 2)
THEN
489 CALL phasekinetic2(nel,time,tempel,tempo,tempmin,ae1,ae3,bs,ms,fcfer,fcper,
490 . fcbai,fgrain,frac1,frac2,frac3,frac4,frac5,x2,x3,x4,x5,
491 . gfac_f,phi_f,psi_f,cr_f,cf,gfac_p,phi_p,psi_p,cr_p,cp,
492 . gfac_b,phi_b,psi_b,cr_b,cb,phi_m,psi_m,n_m,fgfer,fgper,fgbai,
493 . qr2,qr3,qr4,kper,kbain,
alpha,xeq2,xeq4,xgama,totfracold,timestep,nicool,
496 CALL kirkaldykinetics(nel,time,tempel,tempmin,ae1,ae3,bs,ms,fcfer,fcper,
497 . fcbai,fgrain,frac1,frac2,frac3,frac4,frac5,x2,x3,x4,x5,qr2,
498 . qr3,qr4,kper,kbain,
alpha,xeq2,xeq4,xgama,totfracold,timestep,nicool,
504 IF(tempel(i)>= uvar(i,8).AND.frac2(i)>zero)
THEN
505 zeq(i) = (tempel(i)-ae1)/(ae3-ae1)
506 tau(i) = tau1 + zeq(i) * ( tau3 - tau1)
507 zeq(i) =
min( one ,
max( zero, zeq(i)))
508 tau(i) =
max( tau3,
min( tau1, tau(i)))
509 frac1(i) = uvar(i,2) +
max(zero,(zeq(i) - uvar(i,2)) ) * timestep*theaccfact / tau(i)
510 frac2(i) = one - frac1(i) - frac3(i)- frac4(i)- frac5(i)
511 tempmin(i) = uvar(i,8)
515 IF (tempel(i)<= 1073.0 .AND. uvar(i,26)==zero)then
519 IF (tempel(i)<= 773.0 .AND. uvar(i,16)==zero)then
526 IF (flag_tr_kinetics == 2)
THEN
528 . fcbai,fgrain,frac1,frac2,frac3
529 . gfac_f,phi_f,psi_f,cr_f,cf,gfac_p,phi_p,psi_p,cr_p,cp,
530 . gfac_b,phi_b,psi_b,cr_b,cb,phi_m,psi_m,n_m,fgfer,fgper,fgbai,
531 . qr2,qr3,qr4,kper,kbain,
alpha,xeq2,xeq4,xgama,totfracold,timestep,nicool,
535 . fcbai,fgrain,frac1,frac2,frac3,frac4,frac5,x2,x3,x4,x5,qr2,
536 . qr3,qr4,kper,kbain,
alpha,xeq2,xeq4,xgama,totfracold,timestep,nicool,
543 IF(tempo(i)<=tempmin(i))tempmin(i)=tempo(i)
544 uvar(i,1) = tempmin(i)
550 ipos1(i,1) = vartmp(i,1)
551 ipos1(i,2) = vartmp(i,2)
552 ipos1(i,3) = vartmp(i,3)
554 ipos2(i,1) = vartmp(i,4)
555 ipos2(i,2) = vartmp(i,5)
556 ipos2(i,3) = vartmp(i,6)
558 ipos3(i,1) = vartmp(i,7)
559 ipos3(i,2) = vartmp(i,8)
560 ipos3(i,3) = vartmp(i,9)
562 ipos4(i,1) = vartmp(i,10)
563 ipos4(i,2) = vartmp(i,11)
564 ipos4(i,3) = vartmp(i,12)
566 ipos5(i,1) = vartmp(i,13)
568 ipos5(i,3) = vartmp(i,15)
572 xx1(i,3)=epsp(i)*xfac(1)
576 xx2(i,3)=epsp(i)*xfac(2)
580 xx3(i,3)=epsp(i)*xfac(3)
584 xx4(i,3)=epsp(i)*xfac(4)
588 xx5(i,3)=epsp(i)*xfac(5)
591 CALL table_vinterp(table(itable(1)),nel,nel,ipos1,xx1,y1,dydx1)
592 CALL table_vinterp(table(itable(2)),nel,nel,ipos2,xx2,y2,dydx2)
593 CALL table_vinterp(table(itable(3)),nel,nel,ipos3,xx3,y3,dydx3)
594 CALL table_vinterp(table(itable(4)),nel,nel,ipos4,xx4,y4,dydx4)
595 CALL table_vinterp(table(itable(5)),nel,nel,ipos5,xx5,y5,dydx5)
597 y1(i)=y1(i)*yscale(1)
598 y2(i)=y2(i)*yscale(2)
599 y3(i)=y3(i)*yscale(3)
600 y4(i)=y4(i)*yscale(4)
601 y5(i)=y5(i)*yscale(5)
603 dydx1(i)=dydx1(i)*yscale(1)
604 dydx2(i)=dydx2(i)*yscale(2)
605 dydx3(i)=dydx3(i)*yscale(3)
606 dydx4(i)=dydx4(i)*yscale(4)
607 dydx5(i)=dydx5(i)*yscale(5)
609 yld(i)=
max(em20,y1(i)*frac1(i)+y2(i)*frac2(i)+
610 . y3(i)*frac3(i)+y4(i)*frac4(i)+y5(i)*frac5(i))
612 y1ini(i) =
max(em20,y1(i))
613 vartmp(i,1) = ipos1(i,1)
614 vartmp(i,2) = ipos1(i,2)
615 vartmp(i,3) = ipos1(i,3)
617 vartmp(i,4) = ipos2(i,1)
618 vartmp(i,5) = ipos2(i,2)
619 vartmp(i,6) = ipos2(i,3)
621 vartmp(i,7) = ipos3(i,1)
622 vartmp(i,8) = ipos3(i,2)
623 vartmp(i,9) = ipos3(i,3)
625 vartmp(i,10) = ipos4(i,1)
626 vartmp(i,11) = ipos4(i,2)
627 vartmp(i,12) = ipos4(i,3)
629 vartmp(i,13) = ipos5(i,1)
630 vartmp(i,14) = ipos5(i,2)
631 vartmp(i,15) = ipos5(i,3)
636 IF(ceps/=zero.AND.peps/=zero)
THEN
639 faccs(i)=one+ (epsp(i)/ceps)**(one/peps)
640 yld(i)= yld(i)*faccs(i)
650 totfrac(i) = frac2(i)+frac3(i)+frac4(i)+frac5(i)
651 depsth(i) = (frac1(i)*alfa1+totfrac(i)*alfa2)*(tempel(i)-uvar(i,8))
652 trdepsth(i) = three*depsth(i)
653 uvar(i,38) = uvar(i,38) + depsth(i)
656 IF(flag_tr_strain == 2)
THEN
661 rho_a(i) = finter(kfunc(3),tempel(i),npf,tf,dydxr)*rscale(1)
662 rho_f(i) = finter(kfunc(4),tempel(i),npf,tf,dydxr)*rscale(2)
663 rho_p(i) = finter(kfunc(5),tempel(i),npf,tf,dydxr)*rscale(3)
664 rho_b(i) = finter(kfunc(6),tempel(i),npf,tf,dydxr)*rscale
665 rho_m(i) = finter(kfunc(7),tempel(i),npf,tf,dydxr)*rscale(5)
666 dxrho = (frac1(i) - uvar(i,2)) * rho_a(i) +
667 . (frac2(i) - uvar(i,3)) * rho_f(i) +
668 . (frac3(i) - uvar(i,4)) * rho_p(i) +
669 . (frac4(i) - uvar(i,5)) * rho_b(i) +
670 . (frac5(i) - uvar(i,6)) * rho_m(i)
671 rho_n(i) = frac1(i)*rho_a(i) + frac2(i)*rho_f(i) + frac3(i)*rho_p(i) + frac4(i)*rho_b(i) + frac5(i)*rho_m(i)
673 IF(totfrac(i) > zero.AND.totfrac(i)< one)
674 . depstr(i) = third*dxrho/(rho0(i) + rho_n(i)-uvar(i,43))
680 IF (tempel(i)<ms ) deth12(i)=six*em03
682 IF(totfrac(i) > zero.AND.totfrac(i)< one)
683 . depstr(i) = deth12(i) * (totfrac(i)-totfracold(i))
688 depsxx(i) = depsxx(i) - depsth(i) - depstr(i)
689 depsyy(i) = depsyy(i) - depsth(i) - depstr(i)
691 IF (timestep /=zero)
THEN
693 epspxx(i) = depsxx(i) /timestep
694 epspyy(i) = depsyy(i) /timestep
698 gz(i) = finter(1, totfrac(i),npfg,tgz,dydxgz(i))
702 IF (off(i)== one )
THEN
707 IF(frac2(i)>uvar(i,3).AND. uvar(i,3) > zero) lnf2(i) = log(frac2(i)/uvar(i,3) )
708 IF(frac3(i)>uvar(i,4).AND. uvar(i,4) > zero) lnf3(i) = log(frac3(i)/uvar(i,4) )
709 IF(frac4(i)>uvar(i,5).AND. uvar(i,5) > zero) lnf4(i) = log(frac4(i)/uvar(i,5) )
710 IF(frac5(i)>uvar(i,6).AND. uvar(i,6) > zero) lnf5(i) = log(frac5(i)/uvar(i,6) )
718 signxx(i) = sigoxx(i) + a1(i)*depsxx(i) + a2(i)*depsyy(i)
719 signyy(i) = sigoyy(i) + a1(i)*depsyy(i) + a2(i)*depsxx(i)
720 signxy(i) = sigoxy(i) + depsxy(i)*g(i)
721 signyz(i) = sigoyz(i) + depsyz(i)*gs(i)
722 signzx(i) = sigozx(i) + depszx(i)*gs(i)
724 p(i) = -(signxx(i) + signyy(i)) * third
726 sxx(i) = signxx(i) + p(i)
727 syy(i) = signyy(i) + p(i)
729 dezz(i) = -nu_1_nu * (depsxx(i) + depsyy(i)) + depsth(i) + depstr(i)
730 svm(i) = sqrt(three_half*(sxx(i)**2 + syy(i)**2 + szz(i)**2) + three*signxy(i)**2)
732 normdev(i) = sqrt(sxx(i)* sxx(i)
735 soundsp(i) = sqrt(a1(i)/rho0(i))
736 pold(i) = -(sigoxx(i)+sigoyy(i)) * third
738 soyy(i) = sigoyy(i)+pold(i)
740 svmo(i) = sqrt(three_half*(soxx(i)**2 + soyy(i)**2 + sozz(i)**2) + three*sigoxy(i)**2)
749 IF ( svm(i) < yld(i) .AND. off(i) == one
750 . .AND.totfrac(i)>totfracold(i).AND. normdev(i)> em10
751 . .AND.totfrac(i)< one .AND. svm(i)>svmo(i))
THEN !.AND.heatflag==0
754 nindxloc = nindxloc + 1
755 indxloc(nindxloc) = i
759 IF (svm(i) > yld(i) .AND. off(i) == one)
THEN
762 nindxglob = nindxglob + 1
763 indxglob(nindxglob) = i
768 IF (nindxglob > 0)
THEN
771 IF (uvar(i,3)/=zero)
THEN
772 psi2(i) =
max(zero,(lnf2(i)*(teta2*pla1(i)-pla2(i)))/(one+lnf2(i)) )
773 phi2(i) =(one+teta2*lnf2(i))/(one+lnf2(i))
775 IF (uvar(i,4)/=zero)
THEN
776 psi3(i) =
max(zero,(lnf3(i)*(teta3*pla1(i)-pla3(i)))/(one+lnf3(i)) )
777 phi3(i) =(one+teta3*lnf3(i))/(one+lnf3(i))
779 IF (uvar(i,5)/=zero)
THEN
780 psi4(i) =
max(zero, (lnf4(i)*(teta4*pla1(i)-pla4(i)))/(one+lnf4(i)) )
781 phi4(i) =(one+teta4*lnf4(i))/(one+lnf4(i))
783 IF (uvar(i,6)/=zero)
THEN
784 psi5(i) =
max(zero,(lnf5(i)*(teta5*pla1(i)-pla5
785 phi5(i) = (one+teta5*lnf5(i))/(one+lnf5(i))
791 fct(i) = svm(i) - yld(i)
794 normyy = three_half * syy(i) /svm(i)
795 normzz = three_half * szz(i) /svm(i)
796 normxy = two * three_half * signxy(i) /svm(i)
798 df(i) = normxx * (a1(i)*normxx + a2(i)*normyy)
799 . + normyy * (a1(i)*normyy + a2(i)*normxx)
800 . + normxy * normxy * g(i)
805 dfdsig_dsig = signxx(i) * normxx
806 . + signyy(i) * normyy
807 . + signxy(i) * normxy
808 dpla_dlam = dfdsig_dsig / yld(i)
812 dpxx(i) = ddlam * normxx
813 dpyy(i) = ddlam * normyy
814 dpzz(i) = ddlam * normzz
815 dpxy(i) = ddlam * normxy
816 dezz(i)= dezz(i) + nu_1_nu*(dpxx
818 signxx(i) = signxx(i) - (a1(i)*dpxx(i) + a2(i)*dpyy(i))
819 signyy(i) = signyy(i) - (a1(i)*dpyy(i) + a2(i)*dpxx(i))
820 signxy(i) = signxy(i) - dpxy(i)*g(i)
821 p(i) = -(signxx(i) + signyy(i)) * third
823 sxx(i) = signxx(i) + p(i)
824 syy(i) = signyy(i) + p(i)
826 svm(i) = sqrt(three_half*(sxx(i)**2 + syy(i)**2 + szz(i)**2) + three*signxy(i)**2)
829 ddep = ddlam*dpla_dlam
830 dpla(i) =
max(zero, dpla(i) + ddep )
833 dpla1(i)= dpla1(i) + ddep
834 IF (uvar(i,3)>zero)
THEN
835 dpla2(i)= dpla1(i) *phi2(i) + psi2(i)
837 IF (uvar(i,4)>zero)
THEN
838 dpla3(i)= dpla1(i) *phi3(i) + psi3(i)
840 IF (uvar(i,5)>zero)
THEN
841 dpla4(i)= dpla1(i) *phi4(i) + psi4(i)
843 IF (uvar(i,6)>zero)
THEN
844 dpla5(i)= dpla1(i) *phi5(i) + psi5(i)
846 pla1(i)= uvar(i,17) + dpla1(i)
847 pla2(i)= uvar(i,18) + dpla2(i)
848 pla3(i)= uvar(i,19) + dpla3(i)
849 pla4(i)= uvar(i,20) + dpla4(i)
850 pla5(i)= uvar(i,21) + dpla5(i)
855 ipos1(i,1) = vartmp(i,1)
856 ipos1(i,2) = vartmp(i,2)
857 ipos1(i,3) = vartmp(i,3)
859 ipos2(i,1) = vartmp(i,4)
860 ipos2(i,2) = vartmp(i,5)
861 ipos2(i,3) = vartmp(i,6)
863 ipos3(i,1) = vartmp(i,7)
864 ipos3(i,2) = vartmp(i,8)
865 ipos3(i,3) = vartmp(i,9)
867 ipos4(i,1) = vartmp(i,10)
868 ipos4(i,2) = vartmp(i,11)
869 ipos4(i,3) = vartmp(i,12)
871 ipos5(i,1) = vartmp(i,13)
872 ipos5(i,2) = vartmp(i,14)
873 ipos5(i,3) = vartmp(i,15)
882 CALL table_vinterp(table(itable(1)),nel,nel,ipos1,xx1,y1,dydx1)
883 CALL table_vinterp(table(itable(2)),nel,nel,ipos2,xx2,y2,dydx2)
884 CALL table_vinterp(table(itable(3)),nel,nel,ipos3,xx3,y3,dydx3)
885 CALL table_vinterp(table(itable(4)),nel,nel,ipos4,xx4,y4,dydx4)
886 CALL table_vinterp(table(itable(5)),nel,nel,ipos5,xx5,y5,dydx5)
889 y1(i)=y1(i)*yscale(1)
890 y2(i)=y2(i)*yscale(2)
891 y3(i)=y3(i)*yscale(3)
892 y4(i)=y4(i)*yscale(4)
893 y5(i)=y5(i)*yscale(5)
894 dydx1(i)=dydx1(i)*yscale(1)
895 dydx2(i)=dydx2(i)*yscale(2)
896 dydx3(i)=dydx3(i)*yscale(3)
897 dydx4(i)=dydx4(i)*yscale(4)
898 dydx5(i)=dydx5(i)*yscale(5)
901 yld(i)=
max(em20, y1(i)*frac1(i)+
906 yld(i)= yld(i)*faccs(i)
908 vartmp(i,1) = ipos1(i,1)
909 vartmp(i,2) = ipos1(i,2)
910 vartmp(i,3) = ipos1(i,3)
912 vartmp(i,4) = ipos2(i,1)
913 vartmp(i,5) = ipos2(i,2)
914 vartmp(i,6) = ipos2(i,3)
916 vartmp(i,7) = ipos3(i,1)
917 vartmp(i,8) = ipos3(i,2)
918 vartmp(i,9) = ipos3(i,3)
920 vartmp(i,10) = ipos4(i,1)
921 vartmp(i,11) = ipos4(i,2)
922 vartmp(i,12) = ipos4(i,3)
924 vartmp(i,13) = ipos5(i,1)
925 vartmp(i,14) = ipos5(i,2)
926 vartmp(i,15) = ipos5(i,3)
931 pla(i) = pla(i)+
max(dpla1(i), zero)
938 IF (nindxloc > 0)
THEN
943 IF (uvar(i,3)/=zero)
THEN
944 psi2(i) =
max(zero,(lnf2
945 phi2(i) = teta2*lnf2(i)/(one+lnf2(i))
947 IF (uvar(i,4)/=zero)
THEN
948 psi3(i) =
max(zero,(lnf3(i)*(teta3*pla1(i)))/(one+lnf3(i)) )
949 phi3(i) = teta3*lnf3(i)/(one+lnf3(i))
951 IF (uvar(i,5)/=zero)
THEN
952 psi4(i) =
max(zero, (lnf4(i)*(teta4*pla1(i)))/(one+lnf4(i)) )
953 phi4(i) = teta4*lnf4(i)/(one+lnf4(i))
955 IF (uvar(i,6)/=zero)
THEN
956 psi5(i) =
max(zero,(lnf5(i)*(teta5*pla1(i)))/(one+lnf5(i)) )
957 phi5(i) = teta5*lnf5(i)/(one+lnf5(i))
959 IF (totfrac(i) > zero)
THEN
960 logz(i) = log(totfrac(i))
962 IF ( totfracold(i)>zero)
THEN
963 logzm1(i) = log( totfracold(i))
966 a(i) = (one - totfrac(i))* gz(i) / e(i)
967 b(i) = two * (alfa1 -alfa2)* (tempel(i)-tempo(i) ) *totfrac(i)*logz(i)
968 c(i) = two*deth12(i)*abs((totfrac(i)*(one-logz(i))- totfracold(i)*(one-logzm1(i))))
970 hfct(i) = one +
max(zero,seven_half*(svmo(i)/yld(i)-half) )
971 dpla(i) = a(i) * ( svm(i) - svmo(i) ) + b(i) + c(i) *hfct(i)
972 gsig(i) = one/( one + three * (g(i) / y1(i)) * dpla(i) )
974 normxx = three_half * soxx(i) /y1(i)
975 normyy = three_half * soyy(i) /y1(i)
976 normzz = three_half * sozz(i) /y1(i)
977 normxy = two * three_half * sigoxy(i) /y1(i)
979 dpxx(i) = dpla(i) * normxx
980 dpyy(i) = dpla(i) * normyy
981 dpzz(i) = dpla(i) * normzz
982 dpxy(i) = dpla(i) * normxy
984 signxx(i) = signxx(i) - (a1(i)*dpxx(i) + a2(i)*dpyy(i))
985 signyy(i) = signyy(i) - (a1(i)*dpyy(i) + a2(i)*dpxx(i))
986 signxy(i) = signxy(i) - dpxy(i)*g(i)
987 p(i) = -(signxx(i) + signyy(i)) * third
989 sxx(i) = signxx(i) + p(i)
990 syy(i) = signyy(i) + p(i)
992 svm(i) = sqrt(three_half*(sxx(i)**2 + syy(i)**2 + szz(i)**2) + three*signxy(i)**2)
993 dezz(i)= dezz(i) + nu_1_nu*(dpxx(i) + dpyy(i)) + dpzz(i)
998 dpla1(i)= dpla(i)/(one - totfrac(i))
999 IF (uvar(i,3)>zero)
THEN
1000 dpla2(i)= dpla1(i) *phi2(i) + psi2(i)
1002 IF (uvar(i,4)>zero)
THEN
1003 dpla3(i)= dpla1(i) *phi3(i) + psi3(i)
1005 IF (uvar(i,5)>zero)
THEN
1006 dpla4(i)= dpla1(i) *phi4(i) + psi4(i)
1008 IF (uvar(i,6)>zero)
THEN
1009 dpla5(i)= dpla1(i) *phi5(i) + psi5(i)
1011 pla1(i)= uvar(i,17) + dpla1(i)
1012 pla2(i)= uvar(i,18) + dpla2(i)
1013 pla3(i)= uvar(i,19) + dpla3(i)
1014 pla4(i)= uvar(i,20) + dpla4(i)
1024 ipos1(i,1) = vartmp(i,1)
1025 ipos1(i,2) = vartmp(i,2)
1026 ipos1(i,3) = vartmp(i,3)
1028 ipos2(i,1) = vartmp(i,4)
1029 ipos2(i,2) = vartmp(i,5)
1030 ipos2(i,3) = vartmp(i,6)
1032 ipos3(i,1) = vartmp(i,7)
1033 ipos3(i,2) = vartmp(i,8)
1034 ipos3(i,3) = vartmp(i,9)
1036 ipos4(i,1) = vartmp(i,10)
1037 ipos4(i,2) = vartmp(i,11)
1038 ipos4(i,3) = vartmp(i,12)
1040 ipos5(i,1) = vartmp(i,13)
1041 ipos5(i,2) = vartmp(i,14)
1042 ipos5(i,3) = vartmp(i,15)
1046 CALL table_vinterp(table(itable(1)),nel,nel,ipos1,xx1,y1,dydx1)
1047 CALL table_vinterp(table(itable(2)),nel,nel,ipos2,xx2,y2,dydx2)
1048 CALL table_vinterp(table(itable(3)),nel,nel,ipos3,xx3,y3,dydx3)
1049 CALL table_vinterp(table(itable(4)),nel,nel,ipos4,xx4,y4,dydx4)
1050 CALL table_vinterp(table(itable(5)),nel,nel,ipos5,xx5,y5,dydx5)
1053 y1(i)=y1(i)*yscale(1)
1054 y2(i)=y2(i)*yscale(2)
1055 y3(i)=y3(i)*yscale(3)
1056 y4(i)=y4(i)*yscale(4)
1057 y5(i)=y5(i)*yscale(5)
1058 dydx1(i)=dydx1(i)*yscale(1)
1059 dydx2(i)=dydx2(i)*yscale(2)
1060 dydx3(i)=dydx3(i)*yscale(3)
1061 dydx4(i)=dydx4(i)*yscale(4)
1062 dydx5(i)=dydx5(i)*yscale(5)
1065 yld(i)=
max(em20, y1(i)*frac1(i)+
1070 yld(i)= yld(i)*faccs(i)
1075 vartmp(i,1) = ipos1(i,1)
1076 vartmp(i,2) = ipos1(i,2)
1077 vartmp(i,3) = ipos1(i,3)
1079 vartmp(i,4) = ipos2(i,1)
1080 vartmp(i,5) = ipos2(i,2)
1081 vartmp(i,6) = ipos2(i,3)
1083 vartmp(i,7) = ipos3(i,1)
1084 vartmp(i,8) = ipos3(i,2)
1085 vartmp(i,9) = ipos3(i,3)
1087 vartmp(i,10) = ipos4(i,1)
1088 vartmp(i,11) = ipos4(i,2)
1089 vartmp(i,12) = ipos4(i,3)
1091 vartmp(i,13) = ipos5(i,1)
1092 vartmp(i,14) = ipos5(i,2)
1093 vartmp(i,15) = ipos5(i,3)
1100 IF (off(i) == one )
THEN
1101 uvar(i,8) = tempel(i)
1103 uvar(i,17)= uvar(i,17) +
max(dpla1(i), zero)
1104 uvar(i,18)= uvar(i,18) +
max(dpla2(i), zero)
1105 uvar(i,19)= uvar(i,19) +
max(dpla3(i), zero)
1106 uvar(i,20)= uvar(i,20) +
max(dpla4(i), zero)
1107 uvar(i,21)= uvar(i,21) +
max(dpla5(i), zero)
1108 IF(uvar(i,15)<svm(i)) uvar(i,15)=svm(i)
1109 IF(uvar(i,34)>tempel(i))uvar(i,34)=tempel(i)
1111 uvar(i,23)= frac2(i)/xeq2
1112 uvar(i,24)= frac3(i)/(one-xeq2) !x3(i)
1113 uvar(i,25)= frac4(i)
1114 uvar(i,44)= frac5(i)/
max(em20,xgama(i))
1121 uvar(i,10)= xgama(i)
1124 epsthtot(i) = uvar(i,38)
1126 IF (dpla(i)>zero)
THEN
1129 etse(i)=h(i)/(h(i)+e(i))
1135 thk(i) = thk(i) + dezz(i)*thkly(i)*off(i)
1138 IF (alfa1/= zero .OR. alfa2 /= zero)
THEN
1144 IF(heatflag == 0)
THEN
1146 IF (off(i) == one )
THEN
1147 IF (tempel(i)<ms.AND.tempel(i)<= uvar(i,8) .AND. tempel(i)<=1073.0)
THEN
1150 IF (uvar(i,16) >uvar(i,26))
THEN
1151 vr(i) = (uvar(i,27)-uvar(i,33))*unitt/(uvar(i,16)-uvar(i,26))
1152 hard(i)= (frac2(i)+frac3(i))*hfp*log10(vr(i))+frac4(i)*hb+frac5(i)*hm
1156 voli = thkly(i)*area(i)
1157 die(i) =die(i)+ (lat2*(frac5(i)-uvar(i,6)) +
1158 . lat1*(frac2(i)-uvar(i,3)
1159 . + frac3(i)-uvar(i,4)
1160 . + frac4(i)-uvar(i,5) ) ) *voli