|
GBTOlib: library for evaluation of molecular integrals in mixed Gaussian / B-spline basis 111
|
Functions/Subroutines | |
| subroutine, public | cfp_bfqad (f, t, bcoef, n, k, id, x1, x2, tol, quad, ierr, work) |
| subroutine, public | cfp_bsqad (f, t, bcoef, n, k, id, x1, x2, tol, quad, ierr, work) |
| subroutine, public | cfp_bfqro (f, t, bcoef, n, kk, id, x1, x2, tol, quad, ierr, work) |
Contains routines for integration of a b-spline with an arbitrary user-defined function. The function is defined using the function_1d class. See function_integration module for details on how this is used.
| subroutine, public quadrature_module_gbl::cfp_bfqad | ( | class(function_1d) | f, |
| real(kind=cfp), dimension(:), intent(in) | t, | ||
| real(kind=cfp), dimension(:), intent(in) | bcoef, | ||
| integer | n, | ||
| integer | k, | ||
| integer | id, | ||
| real(kind=cfp) | x1, | ||
| real(kind=cfp) | x2, | ||
| real(kind=cfp) | tol, | ||
| real(kind=cfp) | quad, | ||
| integer | ierr, | ||
| real(kind=cfp), dimension(:) | work ) |
!> Compute the integral of a product of a function and a !> derivative of a K-th order B-spline: !>
\[ \int_{x_{1}}^{x_{2}} dr B(r)f(r) \]
!>AUTHOR Amos, D. E., (SNLA) !>DESCRIPTION !> !> Abstract **** a double precision routine **** !> !> cfp_bfqad computes the integral on (X1,X2) of a product of a !> function F and the ID-th derivative of a K-th order B-spline, !> using the B-representation (T,BCOEF,N,K). (X1,X2) must be a !> subinterval of T(K) .LE. X .LE. T(N+1). An integration rou- !> tine, DBSGQ8 (a modification of GAUS8), integrates the product !> on subintervals of (X1,X2) formed by included (distinct) knots !> !> The maximum number of significant digits obtainable in !> DBSQAD is the smaller of 18 and the number of digits !> carried in double precision arithmetic. !> !> Description of Arguments !> Input F,T,BCOEF,X1,X2,TOL are double precision !>
| [in] | F | !> Function of one argument for the integrand BF(X)=F(X)*BVALU(T,BCOEF,N,K,ID,X,INBV,WORK) !> |
| [in] | T | !> Knot array of length N+K !> |
| [in] | BCOEF | !> Coefficient array of length N !> |
| [in] | N | !> Length of coefficient array !> |
| [in] | K | !> Order of B-spline, K .GE. 1 !> |
| [in] | ID | !> Order of the spline derivative, 0 .LE. ID .LE. K-1. ID=0 gives the spline function !> |
| [in] | X1,X2 | !> End points of quadrature interval in T(K) .LE. X .LE. T(N+1) !> |
| [in] | TOL | !> Desired accuracy for the quadrature, suggest 10.*DTOL .LT. TOL .LE. .1 where DTOL is the maximum of 1.0D-18 and double precision unit roundoff for the machine = F1MACH(4) !> |
| [out] | QUAD | \( \int_{x_{1}}^{x_{2}} dr B(r)f(r) \) !> Integral of BF(X) on (X1,X2) !> |
| [out] | IERR | !> A status code !> IERR=1 normal return !> 2 some quadrature on (X1,X2) does not meet the requested tolerance. !> |
| [in,out] | WORK | !> Work vector of length 3*K !> !> !> Error Conditions !> Improper input is a fatal error !> Some quadrature fails to meet the requested tolerance !> !>***REFERENCES D. E. Amos, Quadrature subroutines for splines and !> B-splines, Report SAND79-1825, Sandia Laboratories, !> December 1979. !>***ROUTINES CALLED F1MACH, DBSGQ8, INTRV, XERMSG !> |

| subroutine, public quadrature_module_gbl::cfp_bfqro | ( | class(function_1d) | f, |
| real(kind=cfp), dimension(:), intent(in) | t, | ||
| real(kind=cfp), dimension(:), intent(in) | bcoef, | ||
| integer | n, | ||
| integer | kk, | ||
| integer | id, | ||
| real(kind=cfp) | x1, | ||
| real(kind=cfp) | x2, | ||
| real(kind=cfp) | tol, | ||
| real(kind=cfp) | quad, | ||
| integer | ierr, | ||
| real(kind=cfp), dimension(:), intent(inout) | work ) |

| subroutine, public quadrature_module_gbl::cfp_bsqad | ( | class(function_1d) | f, |
| real(kind=cfp), dimension(:), intent(in) | t, | ||
| real(kind=cfp), dimension(:), intent(in) | bcoef, | ||
| integer | n, | ||
| integer | k, | ||
| integer | id, | ||
| real(kind=cfp) | x1, | ||
| real(kind=cfp) | x2, | ||
| real(kind=cfp) | tol, | ||
| real(kind=cfp) | quad, | ||
| integer | ierr, | ||
| real(kind=cfp), dimension(:) | work ) |
!>***BEGIN PROLOGUE cfp_bsqad !>***PURPOSE Compute the integral of a product of a function and a square of the !> derivative of a K-th order B-spline. !>***LIBRARY SLATEC !>***CATEGORY H2A2A1, E3, K6 !>***TYPE REAL(kind=cfp) (BFQAD-S, cfp_bsqad-D) !>***KEYWORDS INTEGRAL OF B-SPLINE, QUADRATURE !>***AUTHOR Amos, D. E., (SNLA) !>***DESCRIPTION !> !> Abstract **** a double precision routine **** !> !> cfp_bsqad computes the integral on (X1,X2) of a product of a !> function F and the ID-th derivative of a K-th order B-spline, !> using the B-representation (T,BCOEF,N,K). (X1,X2) must be a !> subinterval of T(K) .LE. X .LE. T(N+1). An integration rou- !> tine, DBSGQ8 (a modification of GAUS8), integrates the product !> on subintervals of (X1,X2) formed by included (distinct) knots !> !> The maximum number of significant digits obtainable in !> DBSQAD is the smaller of 18 and the number of digits !> carried in double precision arithmetic. !> !> Description of Arguments !> Input F,T,BCOEF,X1,X2,TOL are double precision !> F - function of one argument for the integrand BF(X)=F(X)*BVALU(T,BCOEF,N,K,ID,X,INBV,WORK) !> T - knot array of length N+K !> BCOEF - coefficient array of length N !> N - length of coefficient array !> K - order of B-spline, K .GE. 1 !> ID - order of the spline derivative, 0 .LE. ID .LE. K-1 !> ID=0 gives the spline function !> X1,X2 - end points of quadrature interval in !> T(K) .LE. X .LE. T(N+1) !> TOL - desired accuracy for the quadrature, suggest !> 10.*DTOL .LT. TOL .LE. .1 where DTOL is the maximum !> of 1.0D-18 and double precision unit roundoff for !> the machine = F1MACH(4) !> !> Output QUAD,WORK are double precision !> QUAD - integral of BF(X) on (X1,X2) !> IERR - a status code !> IERR=1 normal return !> 2 some quadrature on (X1,X2) does not meet !> the requested tolerance. !> WORK - work vector of length 3*K !> !> Error Conditions !> Improper input is a fatal error !> Some quadrature fails to meet the requested tolerance !> !>***REFERENCES D. E. Amos, Quadrature subroutines for splines and !> B-splines, Report SAND79-1825, Sandia Laboratories, !> December 1979. !>***ROUTINES CALLED F1MACH, DBSGQ8, INTRV, XERMSG !>***REVISION HISTORY (YYMMDD) !> 800901 DATE WRITTEN !> 890531 Changed all specific intrinsics to generic. (WRB) !> 890531 REVISION DATE from Version 3.2 !> 891214 Prologue converted to Version 4.0 format. (BAB) !> 900315 CALLs to XERROR changed to CALLs to XERMSG. (THJ) !> 900326 Removed duplicate information from DESCRIPTION section. !> (WRB) !> 920501 Reformatted the REFERENCES section. (WRB) !>***END PROLOGUE cfp_bsqad !> !>
