REAL X1, X2, DX, TOL

       EXTERNAL F

 

       X1 = -2.0

       X2 = 2.0

       DX = 0.125

       TOL = 5.E-5

       CALL SEARCH(X1, X2, DX, TOL, F)

       END

 

       SUBROUTINE SEARCH(XN, XX, DX, TOL, F)

       REAL XN, XX, DX, TOL, X1, X2, SECANT

       EXTERNAL F

 

       X1 = XN

100    X2 = X1 + DX

       IF (F(X1) * F(X2) .LT. 0.0) THEN

         PRINT 1, SECANT(X1, X1+DX, TOL, F)

1        FORMAT(1X, 'A ROOT IS ', F8.5)

       ENDIF

       X1 = X2

       IF (X1 .LT. XX) GOTO 100

       END

 

       REAL FUNCTION F(X)

       REAL X

       F = X*(X*X-3.0)+1.0

       END