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

21 lines
515 B
Fortran

SUBROUTINE qsimp(func,a,b,s)
INTEGER JMAX
REAL a,b,func,s,EPS
EXTERNAL func
PARAMETER (EPS=1.e-6, JMAX=20)
CU USES trapzd
INTEGER j
REAL os,ost,st
ost=-1.e30
os= -1.e30
do 11 j=1,JMAX
call trapzd(func,a,b,st,j)
s=(4.*st-ost)/3.
if (abs(s-os).lt.EPS*abs(os)) return
if (s.eq.0..and.os.eq.0..and.j.gt.6) return
os=s
ost=st
11 continue
pause 'too many steps in qsimp'
END