c cnewton1.f c c
```      program newton
c
c   Use a Newton iteration to solve the equation
c
c   John Mahaffy  2/14/95
c
c     x**3+x-10=0
c
c    x    -     current approximation to the solution
c    f(x) -     x**3+x-10
c    dfdx    -  derivative of f with respect to x
c    xo    -    previous guess for solution
c    eps   -    convergence criterion
c    dx    -    change in solution approximation
c    it    -    number of iterations
c    itmax -    maximum number of iterations
c
c
implicit none
real x,f,dfdx,xo,eps,fx,dx,abs
integer it,itmax
c
c
c     Now start executable fortran statements
c
eps=1.e-5
itmax=10
print *,'What is your initial guess for the solution?'
read *, x
xo= x*(1+10.*eps)
it=0
c
do while (abs(x-xo).gt.eps*abs(x).and.it.le.itmax)
c                ^^^^^^^^^^^^^^^^^^^^^
it=it+1
xo=x
fx=f(xo,dfdx)
c             ^^^^^^^
c                ^  This area between the parentheses is often refered to as the
c                ^  calling sequence, and contains arguments passed as input to
c                ^  the function and passed back as output from the function
c
dx = -fx/dfdx
x=xo+dx
print *, ' x = ',x,',  f(x) = ',fx, ', dx = ',dx
c
end do
c
stop
end
function f(x,deriv)
c                ^^^^^^^
c                ^  These are the "dummy" arguments of the function.  They need not be the
c                ^  same variable names as those appearing in the calling sequence
c                ^  where the function is referenced.  However the number of arguments
c                ^  here should match the number in the reference to the function.
c                ^  It is also very important to match the data types between corresponding
c                ^  arguments here and in the calling sequence.
c
c   Evaluate the function f(x)=x**3+x-10
c   also return the derivative of the function
c
implicit none
real f,x,deriv
c
c   John Mahaffy  2/14/95
c
c   Function arguments can receive data from the line of the program calling
c   the function, but can also pass data back to the program using the function.
c   Documentation of arguements should clearly delimit those receiving input for
c   the function from those transmitting output.
c
c   INPUT
c
c   x   -   independent variable
c
c   OUTPUT
c
c   f     -   value of the function
c   deriv -   derivative of the function with respect to x
c
deriv=3*x**2+1
f=x**3+x-10
return
c
end
c
c```
c c