implicit real(a-h,o-z) real func, a, b, h, s, t, sumo, sume parameter(a=0.0, b=2.0) real*8 ffunc, aa, bb, hh, ss, tt, ssumo, ssume, pi parameter(aa=0.0d0, bb=2.0d0) integer m func(t) = sqrt(4.0-t**2) ffunc(tt) = sqrt(4.0d0-tt**2) c pi = atan(1.0d0)*4.0d0 c write(6,'(3x,a,7x,a,9x,a,7x,a,2x,a)') $ 'Num.', 'Single','Double','Single-Double','Single-Exact' do j = 1, 20 m = 2**j c h = (b-a)/m sumo = 0.0 sume = 0.0 c do i = 1 , m/2-1 sumo = sumo + func(a+h*(2*i-1)) sume = sume + func(a+h*(2*i)) end do sumo = sumo + func(b-h) s = ( func(a) + func(b) + 4.0*sumo + 2.0*sume )*h/3.0 c hh = (bb-aa)/m ssumo = 0.0d0 ssume = 0.0d0 c do i = 1 , m/2-1 ssumo = ssumo + ffunc(aa+hh*(2*i-1)) ssume = ssume + ffunc(aa+hh*(2*i)) end do ssumo = ssumo + ffunc(bb-hh) ss = ( ffunc(a) + ffunc(b) + 4.0d0*ssumo + 2.0d0*ssume )*hh $ /3.0d0 c write(6,'(i8,f15.7,f15.7,f15.7,f15.7)') $ m, s, ss, s-ss, s-pi end do c end