c PROGRAM TO FIND A ROOT OF f(x) = 0 USING VANILLA NEWTON's METHOD
program newt
implicit none
real xold,tol
real xnew
real ff,ffprime,fold,fpold
integer iter,itstart,itend
c THE INITIAL GUESS FOR THE ROOT IS xold
c FIND ROOT TO WITHIN A TOLERANCE tol
c THE FUNCTIONS f(x),f'(x) ARE DEFINED IN A SUBROUTINES GIVING ff,ffprime
c DO A MAXIMUM OF itend ITERATIONS
itstart=1
itend=50
c ENTER INITIAL GUESS, called xold, and TOL
c IF |ff(xold)| < tol THEN xold IS A GOOD APPROXIMATION OF THE ROOT
C MAIN ITERATION LOOP
do iter=itstart,itend
c DEFINE f(xold) and f'(xold)
c AVOID DIVIDING BY 0
c GET THE NEW ITERATE xnew BY THE NEWTON FORMULA
c CHECK IF ff(xnew) IS A ROOT
c PUT xold INTO xnew
enddo
999 stop
end
c****6****************************************************************72
real function ff(x)
c THIS FUNCTION SUBROUTINE COMPUTES THE VALUE OF f AT A POINT x
c DEFINE ff
return
end
c****6****************************************************************72
real function ffprime(x)
c THIS FUNCTION SUBROUTINE COMPUTES THE VALUE OF f' AT A POINT x
c DEFINE ffprime
return
end