35 . FX ,XK ,DX ,FXEP ,DXOLD ,
36 . DPX ,TF ,NPF ,XC ,OFF ,
37 . E ,DPX2 ,ANIM ,IANI ,POS ,
38 . XL0 ,DMN ,DMX ,DVX ,
39 . FF ,LSCALE ,EE ,GF3 ,IFUNC3,
41 . IECROU ,IFUNC ,IFV ,IFUNC2 ,IFUNC4 ,
49#include "implicit_f.inc"
61#include "tabsiz_c.inc"
65 type(python_),
intent(inout) :: PYTHON
66 INTEGER,
INTENT(IN) :: NPF(SNPC),IANI,NEL, NFT
67 INTEGER,
DIMENSION(MVSIZ),
INTENT(INOUT) :: IECROU,IFUNC,IFV,
68 . IFUNC2,IFUNC3,IFUNC4
70 my_real,
DIMENSION(MVSIZ),
INTENT(IN):: AK,B,XL0,XK,FF,LSCALE,DMN,
72 my_real,
DIMENSION(MVSIZ),
INTENT(INOUT) :: EPLA,DXOLD
73 my_real,
DIMENSION(MVSIZ),
INTENT(OUT) :: dvx
74 my_real,
DIMENSION(NEL) ,
INTENT(INOUT) :: fx,dx,dpx,fxep,
75 . e,dpx2, yield,xx_old
76 my_real,
INTENT(INOUT) :: pos(6,nel), anim(numelr*iani)
77 my_real,
INTENT(IN) :: tf(stf)
81 INTEGER,
DIMENSION(MVSIZ) :: JPOS , JLEN,JAD,JPOS2,
82 . jlen2,jpos3, jlen3,jad2,
85 . j2ad,jpos4, j3pos, j3len,j3ad
88 . JFUNC,JFUNC2,JDMP,JECROU(-1:11),J2DMP,,NP1,NP2,
89 . i, j, ii,
interp, k, func,fund,j1,j2func,j3func,j2k
91 my_real,
DIMENSION(MVSIZ) :: ddx,fold, gx, dxela, dyd,
92 . xx, xx2, xx3, yy, yy2, yy3,dydx,
93 . dydx2, dydx3, dydxv, dperm,fmax,
94 . dvxs,gf3,dydxv2,fmin,gx2,fy0,
95 . xfy0,ycut,xcut,xn3fy0,
96 . ul,fyield,dpl,yy22,xfyn1,an3y0,ddpx,
97 . xfyn33,xfyn11,dpx3,dpx22,xx22,
98 . edecal2,edecal3,ecrou,kx2,dkdx2,
101 . dvv, dfac, dt11, damp, damm,b1,xi1,xi2,yi1,yi2 ,
102 . s1,s2,t1c,t2c,x1,x2,y1,y2
104 LOGICAL :: ANY_PYTHON_FUNCTION
106 ANY_PYTHON_FUNCTION = .false.
108 IF(dt11==zero)dt11 = ep30
111 dxold(i)=dxold(i)/xl0(i)
113 dpx2(i)=dpx2(i)/xl0(i)
119 ddx(i)= (dx(i)-dxold(i))
121 dvxs(i)= dvx(i)*ff(i)
128 damp=dx(i)/
max(dmx(i),em15)
129 damm=dx(i)/
min(dmn(i),-em15)
130 anim(ii)=
max(anim(ii),damp,damm)
131 anim(ii)=
min(anim(ii),one)
157 jecrou(-1) = jecrou(-1) + 1
159 ELSEIF(iecrou(i)==0)
THEN
160 jecrou(0) = jecrou(0) + 1
162 ELSEIF(iecrou(i)==1)
THEN
163 jecrou(1) = jecrou(1) + 1
165 ELSEIF(iecrou(i)==2)
THEN
166 jecrou(2) = jecrou(2) + 1
168 ELSEIF(iecrou(i)==3)
THEN
169 jecrou(3) = jecrou(3) + 1
171 ELSEIF(iecrou(i)==4)
THEN
172 jecrou(4) = jecrou(4) + 1
174 ELSEIF(iecrou(i)==5)
THEN
175 jecrou(5) = jecrou(5) + 1
177 ELSEIF(iecrou(i)==6)
THEN
178 jecrou(6) = jecrou(6) + 1
180 ELSEIF(iecrou(i)==7)
THEN
181 jecrou(7) = jecrou(7) + 1
184 IF(ifv(i)/=0) jdmp = jdmp + 1
185 IF(ifunc3(i)/=0) j2dmp = j2dmp + 1
186 IF(ifunc4(i)/=0) j2k = j2k + 1
191 jpos(i) = nint(pos(1,i))
192 jpos2(i) = nint(pos(2,i))
193 jpos3(i) = nint(pos(3,i))
194 jfunc =
max(1,ifunc(i))
195 pyid = python_funct_id(nfunct,jfunc,npf)
197 jfunc =
max(1,ifunc(i))
198 jad(i) = npf(jfunc) / 2 + 1
199 jlen(i) = npf(jfunc+1) / 2 - jad(i) - jpos(i)
200 jlen3(i) = npf(jfunc+1) / 2 - jad(i) - jpos3(i)
202 any_python_function = .true.
207 jfunc2=
max(1,ifunc2(i))
208 pyid = python_funct_id(nfunct, jfunc2,npf)
210 jfunc2=
max(1,ifunc2(i))
211 jad2(i) = npf(jfunc2) / 2 + 1
212 jlen2(i) = npf(jfunc2+1) / 2 - jad2(i) - jpos2(i)
216 any_python_function = .true.
227 IF(jecrou(0)+jecrou(2)== nel)
THEN
231 ELSEIF(jecrou(0)+jecrou(2)>0)
THEN
233 IF(ifunc(i)/=0.AND.(iecrou(i)==0.OR.iecrou(i)==2))
THEN
242 IF(jecrou(1)+jecrou(3)== nel )
THEN
244 fx(i)=fxep(i)+xk(i)*ddx(i)
246 xx(i)=dpx(i)+fx(i)/xk(i)
248 xx(i)=-dpx(i)+fx(i)/xk(i)
251 ELSEIF(jecrou(1)+jecrou(3)>0)
THEN
253 IF(ifunc(i)/=0.AND.(iecrou(i)==1.OR.iecrou(i)==3))
THEN
254 fx(i)=fxep(i)+xk(i)*ddx(i)
256 xx(i)=dpx(i)+fx(i)/xk(i)
258 xx(i)=-dpx(i)+fx(i)/xk(i)
266 IF(jecrou(4)== nel )
THEN
272 ELSEIF(jecrou(4)>0)
THEN
274 IF(ifunc(i)/=0.AND.iecrou(i)==4)
THEN
286 IF(jecrou(5)== nel )
THEN
293 ELSEIF(dx(i)<zero)
THEN
301 ELSEIF(jecrou(5)>0)
THEN
303 IF(ifunc(i)/=0.AND.iecrou(i)==5)
THEN
309 ELSEIF(dx(i)<zero)
THEN
322 IF(any_python_function .AND. jecrou(6) > 0)
THEN
324 IF(ifunc2(i) < 0 )
THEN
327 CALL python_deriv_funct1d(python, fund, fxep(i
329 fx(i) = fxep(i) + an3y0(i) * ddx(i)
330 xx(i) = sign(abs(xx_old
331 xx(i) = xx(i) + ddx(i)
337 IF(jecrou(6)== nel)
THEN
341 np2 = (npf(fund+1)-npf(fund))/2
346 x2=tf(npf(fund)+k1+2)
347 y1=tf(npf(fund)+k1+1)
348 y2=tf(npf(fund)+k1+3)
349 IF((fxep(i)< y2.AND.fxep(i)>=y1))
THEN
350 an3y0(i)=(y2-y1)/ (x2-x1)
351 xn3fy0(i)=(fxep(i)-y1)/an3y0(i) + x1
355 IF (an3y0(i)== zero)
THEN
356 x1=tf(npf(fund)+(np2-2)*2)
357 x2=tf(npf(fund)+(np2-2)*2+2)
358 y1=tf(npf(fund)+(np2-2)*2+1)
359 y2=tf(npf(fund)+(np2-2)*2+3)
365 IF(fxep(i)>y2)an3y0(i)=(y2-y1)/ (x2-x1)
366 IF(fxep(i)<yi1)an3y0(i)=(yi2-yi1)/ (xi2-xi1)
368 fx(i)=fxep(i)+an3y0(i)*ddx(i)
369 xx(i)=sign(abs(xx_old(i)),fx(i))
373 ELSEIF(jecrou(6)>0)
THEN
375 IF(jlen(i) < 0) cycle
376 IF(ifunc(i) /= 0.AND.iecrou(i)== 6)
THEN
378 np2 = (npf(fund+1)-npf(fund))/2
383 x2=tf(npf(fund)+k1+2)
384 y1=tf(npf(fund)+k1+1)
385 y2=tf(npf(fund)+k1+3)
386 IF((fxep(i)< y2.AND.fxep(i)>=y1))
THEN
387 an3y0(i)=(y2-y1)/ (x2-x1)
388 xn3fy0(i)=(fxep(i)-y1)/an3y0(i) + x1
392 IF (an3y0(i)== zero)
THEN
393 x1=tf(npf(fund)+(np2-2)*2)
394 x2=tf(npf(fund)+(np2-2)*2+2)
395 y1=tf(npf(fund)+(np2-2)*2+1)
396 y2=tf(npf(fund)+(np2-2)*2+3)
402 IF(fxep(i)>y2)an3y0(i)=(y2-y1)/ (x2-x1)
403 IF(fxep(i)<yi1)an3y0(i)=(yi2-yi1)/ (xi2-xi1)
405 fx(i)=fxep(i)+an3y0(i)*ddx(i)
406 xx(i)=sign(abs(xx_old(i)),fx(i))
414 IF(jecrou(7)== nel)
THEN
420 ELSEIF(jecrou(7)>0)
THEN
422 IF(ifunc(i)/=0.AND.iecrou(i)==7)
THEN
433 xx(i) = xx(i) *lscale(i)
434 xx2(i) = xx2(i)*lscale(i)
435 xx3(i) = xx3(i)*lscale(i)
438 IF(any_python_function)
THEN
439 IF(
interp>=1)
CALL vinter_mixed(python, tf,jad,jpos,jlen,nel,xx,dydx,yy)
440 IF(
interp>=2)
CALL vinter_mixed(python, tf,jad2,jpos2,jlen2,nel,xx2,dydx2,yy2)
441 IF(
interp>=3)
CALL vinter_mixed(python, tf,jad ,jpos3,jlen3,nel,xx3,dydx3,yy3)
442 ELSEIF (iresp==1)
THEN
444 .
CALL vinter2dp(tf,jad ,jpos ,jlen ,nel,xx ,dydx ,yy)
446 .
CALL vinter2dp(tf,jad2,jpos2,jlen2,nel,xx2,dydx2,yy2)
448 .
CALL vinter2dp(tf,jad ,jpos3,jlen3,nel,xx3,dydx3,yy3)
451 .
CALL vinter2(tf,jad ,jpos ,jlen ,nel,xx ,dydx ,yy )
453 .
CALL vinter2(tf,jad2,jpos2,jlen2,nel,xx2,dydx2,yy2)
455 .
CALL vinter2(tf,jad ,jpos3,jlen3,nel,xx3,dydx3,yy3)
467 IF(jecrou(-1) == nel)
THEN
471 ELSEIF(jecrou(-1)>0)
THEN
481 IF (jecrou(8) == nel )
THEN
485 ELSEIF (jecrou(8) > 0)
THEN
487 IF (iecrou(i) == 8) fx(i)=yy(i)
493 IF(jecrou(0)== nel)
THEN
497 ELSEIF(jecrou(0)>0)
THEN
499 IF(ifunc(i)/=0.AND.iecrou(i)==0) fx(i)=yy(i)
505 IF(jecrou(1)== nel )
THEN
507 IF(fx(i)>=zero.AND.fx(i)>yy(i))
THEN
508 dpx(i)=dpx(i)+(fx(i)-yy(i))/xk(i)
510 ELSEIF(fx(i)<zero.AND.fx(i)<yy(i))
THEN
511 dpx(i)=dpx(i)+(yy(i)-fx(i))/xk(i)
516 ELSEIF(jecrou(1)>0)
THEN
518 IF(ifunc(i)/=0.AND.iecrou(i)==1)
THEN
519 IF(fx(i)>=zero.AND.fx(i)>yy(i))
THEN
520 dpx(i)=dpx(i)+(fx(i)-yy(i))/xk(i)
522 ELSEIF(fx(i)<zero.AND.fx(i)<yy(i))
THEN
523 dpx(i)=dpx(i)+(yy(i)-fx(i))/xk(i)
533 IF(jecrou(2)== nel )
THEN
536 fx(i) = xk(i) * (dx(i)-dpx(i))
538 fx(i) =
min(fx(i),fxep(i))
539 dpx(i) = dx(i) - fx(i) / xk(i)
540 ELSEIF(dx(i)<dpx2(i))
THEN
541 fx(i) = xk(i) * (dx(i)-dpx2(i))
543 fx(i) =
max(fx(i),fxep(i))
544 dpx2(i) = dx(i) - fx(i) / xk(i)
549 ELSEIF(jecrou(2)>0)
THEN
551 IF(ifunc(i)/=0.AND.iecrou(i)==2)
THEN
553 fx(i) = xk(i) * (dx(i)-dpx(i))
555 fx(i) =
min(fx(i),fxep(i))
556 dpx(i) = dx(i) - fx(i) / xk(i)
557 ELSEIF(dx(i)<dpx2(i))
THEN
558 fx(i) = xk(i) * (dx(i)-dpx2(i))
560 fx(i) =
max(fx(i),fxep(i))
561 dpx2(i) = dx(i) - fx(i) / xk(i)
571 IF(jecrou(3)== nel )
THEN
573 IF(fx(i)>=zero.AND.fx(i)>yy(i))
THEN
574 epla(i)=epla(i)+abs(yy(i)*(fx(i)-yy(i))/xk(i))
576 ELSEIF(fx(i)<zero.AND.fx(i)<yy(i))
THEN
577 epla(i)=epla(i)+abs(yy(i)*(yy(i)-fx(i))/xk(i))
582 ELSEIF(jecrou(3)>0)
THEN
584 IF(ifunc(i)/=0.AND.iecrou(i)==3)
THEN
585 IF(fx(i)>=zero.AND.fx(i)>yy(i))
THEN
586 epla(i)=epla(i)+abs(yy(i)*(fx(i)-yy(i))/xk(i))
588 ELSEIF(fx(i)<zero.AND.fx(i)<yy(i))
THEN
589 epla(i)=epla(i)+abs(yy(i)*(yy(i)-fx(i))/xk(i))
599 IF(jecrou(4)== nel )
THEN
601 fx(i) = fxep(i) + xk(i)*ddx(i)
614 dpx(i) = dx(i) - fx(i) / xk(i)
616 ELSEIF(jecrou(4)>0)
THEN
618 IF(ifunc(i)/=0.AND.iecrou(i)==4)
THEN
619 fx(i) = fxep(i) + xk(i)*ddx(i)
632 IF(ifunc(i)/=0.AND.iecrou(i)==4)
THEN
634 dpx(i) = dx(i) - fx(i) / xk(i)
643 IF(jecrou(5)== nel )
THEN
648 ELSEIF(dx(i)>zero)
THEN
649 dperm(i)=
max(yy2(i),zero)
651 IF(dx(i)>dperm(i).AND.yy3(i)/=zero)
THEN
652 fmax(i)=yy3(i)/lscale(i)
654 dperm(i)=
min(dperm(i),dpx(i)- fmax(i) / xk(i))
655 b1 = (dpx(i)-dperm(i))*xk(i)/fmax(i)
657 . ( (dx(i)-dperm(i))/(dpx(i)-dperm(i)) )**b1
658 fmax(i) = fmax(i)*(dx(i)-dperm(i))/(dpx(i)-dperm(i))
659 fx(i)=fxep(i)+xk(i)*ddx(i)
660 fx(i)=
max(fx(i),fmin(i),zero)
661 fx(i)=
min(fx(i),fmax(i),yy(i))
665 ELSEIF(dx(i)<dpx2(i))
THEN
668 ELSEIF(dx(i)<zero)
THEN
669 dperm(i)=
min(yy2(i),zero)
671 IF(dx(i)<dperm(i).AND.yy3(i)/=zero)
THEN
672 fmax(i)=yy3(i)/lscale(i)
674 dperm(i)=
max(dperm(i),dpx2(i)- fmax(i) / xk(i))
675 b1 = (dpx2(i)-dperm(i))*xk(i)/fmax(i)
677 . ( (-dx(i)+dperm(i)) / (-dpx2(i)+dperm(i)) )**b1
678 fmax(i) = fmax(i)*(dx(i)-dperm(i))/(dpx2(i)-dperm(i))
679 fx(i)=fxep(i)+xk(i)*ddx(i)
680 fx(i)=
min(fx(i),fmin(i),zero)
681 fx(i)=
max(fx(i),fmax(i),yy(i))
688 ELSEIF(jecrou(5)>0)
THEN
690 IF(ifunc(i)/=0.AND.iecrou(i)==5)
THEN
694 ELSEIF(dx(i)>zero)
THEN
695 dperm(i)=
max(yy2(i),zero)
696 IF(dx(i)>dperm(i).AND.yy3(i)/=zero)
THEN
697 fmax(i)=yy3(i)/lscale(i)
698 dperm(i)=
min(dperm(i),dpx(i)- fmax(i) / xk(i))
700 b1 = (dpx(i)-dperm(i))*xk(i)/fmax(i)
702 . ( (dx(i)-dperm(i))/(dpx(i)-dperm(i)) )**b1
703 fmax(i) = fmax(i)*(dx(i)-dperm(i))/(dpx(i)-dperm(i))
704 fx(i)=fxep(i)+xk(i)*ddx(i)
705 fx(i)=
max(fx(i),fmin(i),zero)
706 fx(i)=
min(fx(i),fmax(i),yy(i))
710 ELSEIF(dx(i)<dpx2(i))
THEN
713 ELSEIF(dx(i)<zero)
THEN
715 dperm(i)=
min(dperm(i),zero)
716 IF(dx(i)<dperm(i).AND.yy3(i)/=zero)
THEN
717 fmax(i)=yy3(i)/lscale(i)
718 dperm(i)=
max(dperm(i),dpx2(i)- fmax(i) / xk(i))
720 b1 = (dpx2(i)-dperm(i))*xk(i)/fmax(i)
722 . ( (-dx(i)+dperm(i))/(-dpx2(i)+dperm(i)) )**b1
723 fmax(i) = fmax(i)*(dx(i)-dperm(i))/(dpx2(i)-dperm(i))
724 fx(i)=fxep(i)+xk(i)*ddx(i)
725 fx(i)=
min(fx(i),fmin(i),zero)
726 fx(i)=
max(fx(i),fmax(i),yy(i))
738 IF(jecrou(6) == nel )
THEN
739 if(any_python_function)
then
740 CALL vinter_mixed(python, tf,jad,jpos,jlen,nel,xx,dydx,yy)
742 CALL vinter2(tf,jad ,jpos ,jlen ,nel ,xx ,dydx ,yy )
745 IF(fx(i)>= zero.AND.fx(i)>yield(i))
THEN
748 dpx(i)=dpx(i)+(fx(i)-yy(i))/an3y0(i)
749 dxela(i)=dx(i)-dpx(i)
753 xx_old(i) = xx_old(i) + abs(ddx(i))
755 ELSEIF(fx(i)< zero.AND.fx(i)< -yield(i))
THEN
758 dpx(i)=dpx(i)+(yy(i)-fx(i))/an3y0(i)
759 dxela(i)=dx(i)-dpx(i)
763 xx_old(i) = xx_old(i) + abs(ddx(i))
767 ELSEIF(jecrou(6)>0)
THEN
768 if(any_python_function)
then
769 CALL vinter_mixed(python, tf,jad,jpos,jlen,nel,xx,dydx,yy)
771 CALL vinter2(tf,jad ,jpos ,jlen ,nel ,xx ,dydx ,yy )
774 IF(ifunc(i)/= 0.AND.iecrou(i)== 6)
THEN
775 IF(fx(i)>= zero.AND.fx(i)>yield(i))
THEN
778 dpx(i)=dpx(i)+(fx(i)-yy(i))/an3y0(i)
779 dxela(i)=dx(i)-dpx(i)
783 xx_old(i) = xx_old(i) + abs(ddx(i))
785 ELSEIF(fx(i)< zero.AND.fx(i)< -yield(i))
THEN
788 dpx(i)=dpx(i)+(yy(i)-fx(i))/an3y0(i)
789 dxela(i)=dx(i)-dpx(i)
793 xx_old(i) = xx_old(i) + abs(ddx(i))
803 IF (jecrou(7)== nel )
THEN
805 fx(i) = fxep(i) + xk(i)*ddx(i)
806 IF (dx(i)>= dxold(i).AND.dx(i)>=0)
THEN
807 IF (fx(i)>yy(i)) fx(i) = yy(i)
808 ELSEIF(dx(i)< dxold(i).AND.dx(i)>=0)
THEN
809 IF (fx(i)<yy2(i))fx(i) = yy2(i)
810 ELSEIF(dx(i)>= dxold(i).AND.dx(i)<0)
THEN
811 IF(fx(i)> yy2(i))fx(i) = yy2(i)
812 ELSEIF(dx(i)< dxold(i).AND.dx(i)<0)
THEN
813 IF(fx(i)< yy(i))fx(i) = yy(i)
818 dpx(i) = dx(i) - fx(i) / xk(i)
820 ELSEIF (jecrou(7) > 0)
THEN
822 IF (ifunc(i)/=0 .AND. iecrou(i)==7)
THEN
823 fx(i) = fxep(i) + xk(i)*ddx(i)
824 IF (dx(i)>= dxold(i) .AND. dx(i)>=0)
THEN
825 IF (fx(i)>yy(i)) fx(i) = yy(i)
826 ELSEIF (dx(i)< dxold(i) .AND. dx(i)>= 0)
THEN
827 IF (fx(i) < yy2(i)) fx(i) = yy2(i)
828 ELSEIF (dx(i)>= dxold(i) .AND. dx(i)<0)
THEN
829 IF (fx(i)> yy2(i)) fx(i) = yy2(i)
830 ELSEIF (dx(i)< dxold(i) .AND. dx(i)<0)
THEN
831 IF (fx(i)< yy(i)) fx(i) = yy(i)
834 dpx(i) = dx(i) - fx(i) / xk(i)
841 IF(impl_s==0.OR.idyna>0)
THEN
845 pyid = python_funct_id(nfunct,jfunc,npf)
849 any_python_function = .true.
851 jpos(i) = nint(pos(4,i))
853 jad(i) = npf(jfunc) / 2 + 1
854 jlen(i) = npf(jfunc+1) / 2 - jad(i) - jpos(i)
858 IF(any_python_function)
THEN
859 CALL vinter_mixed(python, tf,jad,jpos,jlen,nel,dvxs,dydxv,gx)
861 CALL vinter2(tf,jad,jpos,jlen,nel ,dvxs,dydxv,gx)
871 j2func=
max(ifunc3(i),1)
872 pyid = python_funct_id(nfunct,j2func,npf)
873 IF(pyid > 0)
then ! python function
876 any_python_function = .true.
878 j2pos(i) = nint(pos(5,i))
879 j2func=
max(ifunc3(i),1)
880 j2ad(i) = npf(j2func) / 2 + 1
881 j2len(i) = npf(j2func+1) / 2 - j2ad(i) - j2pos(i)
884 IF(any_python_function)
THEN
885 CALL vinter_mixed(python, tf,j2ad,j2pos,j2len,nel,dvxs,dydxv2,gx2)
887 CALL vinter2(tf,j2ad,j2pos,j2len,nel,dvxs,dydxv2,gx2)
896 j3func =
max(ifunc4(i),1)
897 pyid = python_funct_id(nfunct,j3func,npf)
901 any_python_function = .true.
903 j3pos(i) = nint(pos(6,i))
904 j3func =
max(ifunc4(i),1)
905 j3ad(i) = npf(j3func) / 2 + 1
906 j3len(i) = npf(j3func+1) / 2 - j3ad(i) - j3pos(i)
910 CALL vinter_mixed(python, tf,j3ad,j3pos,j3len,nel,dvxs,dkdx2,kx2)
912 CALL vinter2(tf,j3ad,j3pos,j3len,nel,xx,dkdx2,kx2)
921 IF(ifunc4(i) == 0) kx2(i) = one
926 IF(ifv(i)==0) gx(i)=zero
931 IF(ifunc3(i)==0) gx2(i)=zero
941 dvv =
max(one,abs(dvx(i)/d(i)))
942 dfac = ak(i) + b(i) * log(dvv) + ee(i)*gx(i)
943 fx(i)= ( dfac*fx(i) + xc(i)*dvx(i) + gf3(i)*gx2(i) ) *off(i)
944 e(i) = e(i) + (dx(i)-dxold(i)) * (fx(i)+fold(i)) * half
948 fx(i)= fx(i) *ak(i)* off(i)
949 e(i) = e(i) + (dx(i)-dxold(i)) * (fx(i)+fold(i)) * half
954 dxold(i)=dxold(i)*xl0(i)
956 dpx2(i)=dpx2(i)*xl0(i)