program rombm c c -- numerical integration by the romberg method c integer out real sum, upper, lower, tol, sumt external f common /inout/ out data lower/0.1/, upper/1.0/, tol/1.0e-5/ c out = 6 sumt = 0.0 write(out, 101) 10 call romber(lower, upper, tol, sum, f) upper = lower lower = 0.1 * upper sumt = sumt + sum write(out, 102) sum, sumt, lower, upper if (abs(sum) .gt. tol) goto 10 stop 101 format(/' new area total area lower upper limits') 102 format(1x, 0pf9.6, f12.5, 1p2e11.1) end function f(x) c f = 1.0 / sqrt(x) return end