

(3.2), discussed in the preceding section.CMAIN PROGRAM FOR TRYING OUT BISECTION ROUTINEINTEGER IFLAGREAL A,B,ERROR,XIEXTERNAL FFA = 1.B = 2.CALL BISECT ( FF, A, B, 1.E-6, IFLAG )IF (IFLAG. 0.) THENA = XMFA = FMELSEB = XMEND IFGO TO 6ENDThe following program makes use of this subroutine to find the root ofEq.

XM) THENIFLAG = 1RETURNEND IFFM = F(XM)CHOOSE NEW INTERVALIF (FA*FM. XTOL)RETURNXM = (A+B)/2.CHECK FOR UNREASONABLE ERROR REQUIREMENTIF (XM + ERROR. 0.) THENIFLAG = -1PRINT 601,A,BFORMAT('F(X) IS OF SAME SIGN AT THE TWO ENDPOINTS',2E15.7)601RETURNEND IFCCCCERROR = ABS(B-A)DO WHILE ERROR.

INTEGER IFLAGERROR,FA,FM,XMREAL A,B,F,XTOL,FA = F(A)IF (FA+F(B). Cc****** M E T H O D ******C THE BISECTION ALGORITHM 3.1 IS USED, IN WHICH THE INTERVAL KNOWN TOC CONTAIN A ZERO IS REPEATEDLY HALVED. XTOLCC= l, TERMINATION SINCE ABS(A-B)/2 IS SO SMALL THAT ADDITIONTO (A+B)/2 MAKES NO DIFFERENCE. 82THE SOLUTION OF NONLINEAR EQUATIONSC IFLAG AN INTEGER,= -1, FAILURE SINCE F HAS SAME SIGN AT INPUT POINTS A AND BC= 0, TERMINATION SINCE ABS(A-B)/2. NAME MUST APPEAR IN ANCE X T E R N A L STATEMENT IN THE CALLING PROGRAM.C A,B ENDPOINTS OF THE INTERVAL WHEREIN A ZERO IS SOUGHT.C XTOL DESIRED LENGTH OF OUTPUT INTERVAL.C****** O U T P U T ******C A,B ENDPOINTS OF INTERVAL KNOWN TO CONTAIN A ZERO OF F. In this section, we discuss some of the manypossible ways of terminating iteration in a reasonable way and givetranslations of Algorithms 3.1 and 3.3, into FORTRAN.FORTRAN SUBROUTINE FOR THE BISECTIONALGORITHM 3.1SUBROUTINE BISECT ( F, A, B, XTOL, IFLAG )C****** I N P U T ******C F NAME OF FUNCTION WHOSE ZERO IS SOUGHT.
