c subroutine to do simpson intergration subroutine simpn( a, b, ain ) implicit real*8 (a-h,p-z) real*8 a, b, f11, f22, dx, ai1, ai2, ain integer in,icount data derr /1.0e-4/ c initilize in = ain dx = b - a icount = 0 f11 = 0.0d0 f22 = 0.0d0 ia2 = 0.0d0 f1 = funcn( a) f2 = funcn( b) fend = f1 + f2 100 continue dx2 = dx dx = 0.5d0*dx x = a + dx f11 = 0.0d0 200 continue f11 = f11 + funcn( x) x = x + dx2 if ( x .lt. b) go to 200 ai1 = (fend + 2.0D0*f22 + 4.0D0*f11)*dx dai = ai2 - ai1 ai2 = ai1 icount = icount + 1 f22 = f11 + f22 if ( dabs(dai/ai2) .gt. derr .and .icount .le. 10) go to 100 if ( icount .le. in) go to 100 ain = (ai2 - dai/15.0d0)/3.0d0 return end