SUBROUTINE ITER8(I,K,X,XM1,Y,YM1,YREF,DX,ID,TOL) ER=Y-YREF IF(K.GT.29) GO TO 4 K=K+1 IF(K.EQ.2) GO TO 2 IF(ABS(ER).LT.TOL) GO TO 3 DY=Y-YM1 IF(ABS(DY).LT..1E-10) GO TO 6 C------2ND OR GREATER CYCLE DX=(XM1-X)*ER/DY YM1=Y XM1=X RETURN C------EXIT IF THE FUNCTION HAS NOT CHANGED 6 TB=10.*TOL IF(ABS(ER).LE. TB) GO TO 3 WRITE(5,7) I,X,XM1,Y,YM1,ER 7 FORMAT(' NO CHANGE IN THE ',I2,'TH LOOP',/,5(2X,E12.5)) ID=-1 RETURN C------EXIT IF NOT CONVERGED AFTER 30 CYCLES 4 WRITE(5,5) I,X,XM1,Y,YM1,ER 5 FORMAT(' LONG ',I2,'TH LOOP',/,5(2X,E12.5)) C------NORMAL EXIT 3 ID=1 RETURN C------FIRST CYCLE 2 YM1=Y XM1=X DX=-X*ER/(8.*ABS(Y)) RETURN END