Files
piscal/dataassim/math/numrec/f77_sources/midpnt.for
T
2016-02-03 18:52:05 +00:00

26 lines
547 B
Fortran

SUBROUTINE midpnt(func,a,b,s,n)
INTEGER n
REAL a,b,s,func
EXTERNAL func
INTEGER it,j
REAL ddel,del,sum,tnm,x
if (n.eq.1) then
s=(b-a)*func(0.5*(a+b))
else
it=3**(n-2)
tnm=it
del=(b-a)/(3.*tnm)
ddel=del+del
x=a+0.5*del
sum=0.
do 11 j=1,it
sum=sum+func(x)
x=x+ddel
sum=sum+func(x)
x=x+del
11 continue
s=(s+(b-a)*sum/tnm)/3.
endif
return
END