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

21 lines
587 B
Fortran

SUBROUTINE qromb(func,a,b,ss)
INTEGER JMAX,JMAXP,K,KM
REAL a,b,func,ss,EPS
EXTERNAL func
PARAMETER (EPS=1.e-6, JMAX=20, JMAXP=JMAX+1, K=5, KM=K-1)
CU USES polint,trapzd
INTEGER j
REAL dss,h(JMAXP),s(JMAXP)
h(1)=1.
do 11 j=1,JMAX
call trapzd(func,a,b,s(j),j)
if (j.ge.K) then
call polint(h(j-KM),s(j-KM),K,0.,ss,dss)
if (abs(dss).le.EPS*abs(ss)) return
endif
s(j+1)=s(j)
h(j+1)=0.25*h(j)
11 continue
pause 'too many steps in qromb'
END