avint Subroutine

public subroutine avint(ftab, xtab, ntab, a_in, b_in, result)


AVINT estimates the integral of unevenly spaced data.

Discussion:

The method uses overlapping parabolas and smoothing.

Modified:

30 October 2000
4 January 2008, A. Bodas-Salcedo. Error control for XTAB taken out of
                loop to allow vectorization.

Reference:

Philip Davis and Philip Rabinowitz,
Methods of Numerical Integration,
Blaisdell Publishing, 1967.

P E Hennion,
Algorithm 77,
Interpolation, Differentiation and Integration,
Communications of the Association for Computing Machinery,
Volume 5, page 96, 1962.

Parameters:

Input, real ( kind = 8 ) FTAB(NTAB), the function values,
FTAB(I) = F(XTAB(I)).

Input, real ( kind = 8 ) XTAB(NTAB), the abscissas at which the
function values are given.  The XTAB's must be distinct
and in ascending order.

Input, integer NTAB, the number of entries in FTAB and
XTAB.  NTAB must be at least 3.

Input, real ( kind = 8 ) A, the lower limit of integration.  A should
be, but need not be, near one endpoint of the interval
(X(1), X(NTAB)).

Input, real ( kind = 8 ) B, the upper limit of integration.  B should
be, but need not be, near one endpoint of the interval
(X(1), X(NTAB)).

Output, real ( kind = 8 ) RESULT, the approximate value of the integral.

Arguments

Type IntentOptional Attributes Name
real(kind=KR8), intent(in) :: ftab(ntab)
real(kind=KR8), intent(in) :: xtab(ntab)
integer, intent(in) :: ntab
real(kind=KR8), intent(in) :: a_in
real(kind=KR8), intent(in) :: b_in
real(kind=KR8), intent(out) :: result

Called by

proc~~avint~~CalledByGraph proc~avint avint proc~zeff zeff proc~zeff->proc~avint proc~zeff~3 zeff proc~zeff~3->proc~avint proc~zeff~2 zeff proc~zeff~2->proc~avint proc~path_integral path_integral proc~path_integral->proc~avint proc~zeff~4 zeff proc~zeff~4->proc~avint proc~radar_simulator radar_simulator proc~radar_simulator->proc~zeff proc~radar_simulator->proc~path_integral proc~quickbeam_optics~2 quickbeam_optics proc~quickbeam_optics~2->proc~path_integral proc~quickbeam_optics~2->proc~zeff~4 proc~quickbeam_optics quickbeam_optics proc~quickbeam_optics->proc~zeff~2 proc~quickbeam_optics->proc~path_integral proc~radar_simulator~2 radar_simulator proc~radar_simulator~2->proc~zeff proc~radar_simulator~2->proc~path_integral proc~subsample_and_optics subsample_and_optics proc~subsample_and_optics->proc~quickbeam_optics proc~subsample_and_optics~2 subsample_and_optics proc~subsample_and_optics~2->proc~quickbeam_optics proc~lmdz_cosp_interface lmdz_cosp_interface proc~lmdz_cosp_interface->proc~subsample_and_optics proc~lmdz_cosp_interface~2 lmdz_cosp_interface proc~lmdz_cosp_interface~2->proc~subsample_and_optics proc~physiq physiq proc~physiq->proc~lmdz_cosp_interface proc~physiq~2 physiq proc~physiq~2->proc~lmdz_cosp_interface proc~old_lmdz1d old_lmdz1d proc~old_lmdz1d->proc~physiq proc~call_physiq call_physiq proc~call_physiq->proc~physiq proc~call_physiq~2 call_physiq proc~call_physiq~2->proc~physiq proc~scm scm proc~scm->proc~physiq program~lmdz1d lmdz1d program~lmdz1d->proc~old_lmdz1d program~lmdz1d->proc~scm proc~calfis calfis proc~calfis->proc~call_physiq proc~leapfrog leapfrog proc~leapfrog->proc~calfis program~gcm~2 gcm program~gcm~2->proc~leapfrog

Contents