https://www.cdslab.org/paramonte/fortran/2
Current view: top level - main - pm_quadPack.F90 (source / functions) Hit Total Coverage
Test: ParaMonte 2.0.0 :: Serial Fortran - Code Coverage Report Lines: 0 1 0.0 %
Date: 2024-04-08 03:18:57 Functions: 0 10 0.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
       2             : !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
       3             : !!!!                                                                                                                            !!!!
       4             : !!!!    ParaMonte: Parallel Monte Carlo and Machine Learning Library.                                                           !!!!
       5             : !!!!                                                                                                                            !!!!
       6             : !!!!    Copyright (C) 2012-present, The Computational Data Science Lab                                                          !!!!
       7             : !!!!                                                                                                                            !!!!
       8             : !!!!    This file is part of the ParaMonte library.                                                                             !!!!
       9             : !!!!                                                                                                                            !!!!
      10             : !!!!    LICENSE                                                                                                                 !!!!
      11             : !!!!                                                                                                                            !!!!
      12             : !!!!       https://github.com/cdslaborg/paramonte/blob/main/LICENSE.md                                                          !!!!
      13             : !!!!                                                                                                                            !!!!
      14             : !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
      15             : !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
      16             : 
      17             : !>  \brief
      18             : !>  This module contains classes and procedures for non-adaptive and adaptive global numerical quadrature and Cauchy Principal Value
      19             : !>  of 1D functions with various types of singularities and points of difficulties via the Gauss-Kronrod and Clenshaw-Curtis quadrature formulae.<br>
      20             : !>
      21             : !>  \details
      22             : !>
      23             : !>  The algorithms of this module significantly extend the original routines of the venerable QuadPack library in FORTRAN77.<br>
      24             : !>
      25             : !>  Usage guidelines
      26             : !>  ----------------
      27             : !>
      28             : !>  **Question**<br>
      29             : !>  Is there a hassle-free simple nimble reliable numerical integrator that I can use as the first try?<br>
      30             : !>  **Answer:**<br>
      31             : !>  **YES**, as described below.<br>
      32             : !>
      33             : !>  <ol>
      34             : !>      <li>    The generic interface [isFailedQuad](@ref pm_quadPack::isFailedQuad)
      35             : !>              offers simple highly flexible set of routines for globally adaptive numerical integration of arbitrary 1D
      36             : !>              functions with varying degrees of difficulties (including Cauchy-type singularities) within the domain of integration.<br>
      37             : !>              The procedures of this generic interface rely on a fixed Gauss-Kronrod quadrature rule (10-12) to carry out the integration.<br>
      38             : !>      <li>    If you need specific or custom Gauss-Kronrod quadrature rules other than the default offered by [isFailedQuad](@ref pm_quadPack::isFailedQuad)
      39             : !>              or if the integration is going to be carried out many many times throughout the program (making absolute performance and thrifty memory management critical),
      40             : !>              use the less flexible but more performant interface [getQuadErr](@ref pm_quadPack::getQuadErr).<br>
      41             : !>      <li>    If you prefer to compute the integral by a fixed Gauss-Kronrod quadrature rule without any error estimates,
      42             : !>              or with estimating error by applying progressively higher order Gauss-Kronrod quadrature rules,
      43             : !>              then use the procedures under the generic interface [getQuadGK](@ref pm_quadPack::getQuadGK).<br>
      44             : !>              In this case, any **error estimate** for the integration must be obtained manually by the user
      45             : !>              by computing the integral via progressively higher order Gauss-Kronrod quadrature rules until
      46             : !>              the desired accuracy is achieved.<br>
      47             : !>  </ol>
      48             : !>
      49             : !>  Background
      50             : !>  ----------
      51             : !>
      52             : !>  **Gaussian Quadrature** is an approximation of the definite integral of a function,
      53             : !>  usually stated as a weighted sum of function values at specified points within the integration domain.<br>
      54             : !>  An \f$n\f$-point Gaussian quadrature rule, named after **Carl Friedrich Gauss**, is a quadrature rule constructed
      55             : !>  to yield an **exact result** for **polynomials** of degree \f$2n − 1\f$ or less by a suitable choice of the nodes \f$x_i\f$ and weights \f$w_i\f$ for \f$i = \{1, \ldots, n\}\f$.<br>
      56             : !>  The modern formulation using orthogonal polynomials was developed by **Carl Gustav Jacobi** in 1826.<br>
      57             : !>  The most common domain of integration for such a rule is taken as \f$[−1, 1]\f$, so the rule is stated as
      58             : !>  \f{equation}{
      59             : !>      \large
      60             : !>      \int_{-1}^{+1} f(x) \mathrm{d}x \approx \sum_{i = 1}^{n} w_i f(x_i) ~,
      61             : !>  \f}
      62             : !>  which is exact for a polynomial of degree \f$2n − 1\f$ or less. This exact rule is known as the **Gauss-Legendre quadrature rule**.<br>
      63             : !>  The integration of polynomials is trivial and is rarely done via numerical methods.<br>
      64             : !>  However, transcendental and numerically defined functions are frequently integrated via Gaussian quadrature, and the defining problem becomes how to estimate the remainder.<br>
      65             : !>  The Gauss-Legendre quadrature rule will only be an accurate approximation to the integral above **if** \f$f(x)\f$ is well-approximated by a polynomial of degree \f$2n − 1\f$ or less on \f$[−1, 1]\f$.<br>
      66             : !>  The Gauss-Legendre quadrature rule is typically not used for integrable functions with endpoint singularities.<br>
      67             : !>  The key to the Gaussian quadrature is the derivation of the nodes and weights for which established formulae exist (e.g., [setNodeWeightGK](@ref pm_quadPack::setNodeWeightGK)).<br>
      68             : !>  It is possible to compute a Gaussian quadrature of order \f$n\f$ and another of order (e.g., \f$2n+1\f$) and use the difference as an error estimate.<br>
      69             : !>  However, this is not optimal, as the zeros of the Legendre polynomials (i.e., the nodes of Gaussian quadrature) are never the same for different orders.<br>
      70             : !>  This requires \f$3n + 1\f$ function evaluations to be performed.<br>
      71             : !>
      72             : !>  Gauss-Kronrod quadrature
      73             : !>  ------------------------
      74             : !>
      75             : !>  The error estimation challenge mentioned above limits the direct application of the Gauss-Legendre quadrature to integration problems.<br>
      76             : !>  Higher order Gauss-Legendre quadrature (corresponding to higher numbers of nodes and weights) does not necessarily overlap with the lower-order nodes.<br>
      77             : !>  This means that the lower-order calculations of \f$f(x)\f$ cannot be used in subsequent higher-order Gauss-Legendre quadrature, which has two consequences,<br>
      78             : !>  <ol>
      79             : !>      <li>    difficulty in estimating the integration error,<br>
      80             : !>      <li>    wasting of computational power due to non-overlapping of the lower and higher order Gauss-Legendre quadrature.<br>
      81             : !>  </ol>
      82             : !>
      83             : !>  The **Gauss-Kronrod quadrature** is an extension of Gaussian quadrature, enabling the use of lower-order nodes and computations in higher-order quadrature.<br>
      84             : !>  Kronrod (1964) considered the problem of how to interleave nodes into a Gauss-Legendre quadrature in such a way that all previous function evaluations can be reused,
      85             : !>  while increasing the order of polynomials that can be integrated exactly.<br>
      86             : !>  Kronrod discovered that one could integrate polynomials of degree \f$3n + 1\f$ by adding \f$n + 1\f$ nodes (computed from the zeros of the Legendre-Stieltjes polynomials)
      87             : !>  to a Gaussian quadrature of order \f$n\f$.<br>
      88             : !>  Later, Patterson (1968, 1969) showed how to compute continued extensions of this kind (e.g., [setNodeWeightGK](@ref pm_quadPack::setNodeWeightGK)).<br>
      89             : !>  This allows an a posteriori error estimate to be provided while still preserving exponential convergence.<br>
      90             : !>  This error estimate is, however, frequently pessimistic. This is particularly true when the estimated error is smaller than \f$1.25 \times 10^{-6}\f$
      91             : !>  meaning that the integration result is generally much more accurate than what is understood from the error estimate.<br>
      92             : !>
      93             : !>  The Gauss-Kronrod is a powerful driver in Adaptive Global Quadrature methods (e.g., as implemented in [getQuadGK](@ref pm_quadPack::getQuadGK)).<br>
      94             : !>
      95             : !>  Clenshaw-Curtis quadrature
      96             : !>  --------------------------
      97             : !>
      98             : !>  The **Clenshaw-Curtis quadrature** (Clenshaw and Curtis (1960)) handles the numerical computation of
      99             : !>  the integral of a function \f$f(x)\f$ over a finite interval, with weight function \f$w = 1\f$.<br>
     100             : !>  The idea of Clenshaw-Curtis integration is to approximate \f$f(x)\f$ by a truncated Chebyshev polynomials expansion, which can be integrated exactly.<br>
     101             : !>
     102             : !>  For functions with a slowly convergent Chebyshev series expansion, use of the Clenshaw-Curtis method is not advisable.<br>
     103             : !>  However, there is a possibility to retain the advantage of the computational ease of the Clenshaw-Curtis method while
     104             : !>  extending its practical applicability to functions with slowly convergent Chebyshev expansions.<br>
     105             : !>  This is accomplished by transferring the difficult part of the integrand, which causes the slow rate
     106             : !>  of convergence of the Chebyshev series (e.g. a rapidly varying factor), into a weight function.<br>
     107             : !>  Even certain singular weight functions, becoming infinite somewhere in the integration interval, can be treated successfully by this technique.<br>
     108             : !>  This is makes the Clenshaw-Curtis quadrature rules particularly suitable for computing the
     109             : !>  [Cauchy Principal Value](https://en.wikipedia.org/wiki/Cauchy_principal_value)
     110             : !>  of arbitrary functions when combined with the Gauss-Kronrod rules.<br>
     111             : !>
     112             : !>  \see
     113             : !>  [Robert Piessens et al., 1983, QuadPack: A Subroutine Package for Automatic Integration](https://www.google.com/books/edition/Quadpack/ctL6CAAAQBAJ?hl=en&gbpv=1&pg=PP1&printsec=frontcover)<br>
     114             : !>  [Laurie, 1997, Calculation of gauss-kronrod quadrature rules](https://www.ams.org/mcom/1997-66-219/S0025-5718-97-00861-2/S0025-5718-97-00861-2.pdf).<br>
     115             : !>  [Kronrod, 1965, Nodes and weights of quadrature formulas](https://api.semanticscholar.org/CorpusID:123027420).<br>
     116             : !>  Numerical Recipes in Fortran by Press et al., 1992, p. 154<br>
     117             : !>  [QuadPack2](https://github.com/jacobwilliams/quadpack): A modernization of the original venerable QuadPack library by Jacob Williams<br>
     118             : !>  QuadPack FORTRAN77 and Fortran90 version by John Burkardt<br>
     119             : !>  QuadPack by the GNU Scientific Library<br>
     120             : !>
     121             : !>  \warning
     122             : !>  The predefined Gauss-Kronrod rules of this modules are accurate up to 100 significant digits.<br>
     123             : !>  While this is likely more than enough precision for the next few decades, reaching this precision limit is unavoidable.<br>
     124             : !>  To avoid potential loss of precision and inaccurate integrations, the procedures of this library contain a runtime check
     125             : !>  to ensure the requested integration precision is within the limits of the precision of the constants of this library.<br>
     126             : !>  Note that this limitation only exists with predefined Gauss-Kronrod rules of this library.<br>
     127             : !>  The generic interface [setNodeWeightGK](@ref pm_quadPack::setNodeWeightGK) can be always
     128             : !>  used at any distant future, for example, the year [one million and a half](https://youtu.be/cdNnlfZgnY8),
     129             : !>  to compute the Gauss-Kronrod rules for subsequent usage by the integrators of this module.<br>
     130             : !>
     131             : !>  \test
     132             : !>  [test_pm_quadPack](@ref test_pm_quadPack)<br>
     133             : !>
     134             : !>  \finmain
     135             : !>
     136             : !>  \author
     137             : !>  \AmirShahmoradi, September 1, 2017, 12:00 AM, Institute for Computational Engineering and Sciences (ICES), The University of Texas at Austin
     138             : 
     139             : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     140             : 
     141             : module pm_quadPack
     142             : 
     143             :     use pm_kind, only: SK, IK, LK, RKH, RKB
     144             :     use pm_mathConst, only: ninf, ninf_type
     145             :     use pm_mathConst, only: pinf, pinf_type
     146             : 
     147             :     implicit none
     148             : 
     149             :     character(*, SK), parameter :: MODULE_NAME = "@pm_quadPack"
     150             : 
     151             : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     152             : 
     153             :     !>  \brief
     154             :     !>  This is the derived type for constructing objects that signify the computation of the Cauchy Principal Value of arbitrary function
     155             :     !>  whose Cauchy singularities is stored in the `cs` components of the objects of this type.<br>
     156             :     !>
     157             :     !>  \details
     158             :     !>  The Cauchy type of singularity represented by this derived type has the form,
     159             :     !>  \f{equation}{
     160             :     !>      \frac{1}{(x - c)} ~,~ x \in (\ms{lb}, \ms{ub}) ~,~ \ms{lb} < 0 < \ms{ub}
     161             :     !>  \f}
     162             :     !>  where \f$(\ms{lb}, \ms{ub})\f$ represent the integration bounds.<br>
     163             :     !>
     164             :     !>  Objects of this derived type can be passed to the primary integrators of the parent modules of this derived type:<br>
     165             :     !>  <ol>
     166             :     !>      <li>    [getQuadErr](@ref pm_quadPack::getQuadErr)<br>
     167             :     !>      <li>    [isFailedQuad](@ref pm_quadPack::isFailedQuad)<br>
     168             :     !>  </ol>
     169             :     !>
     170             :     !>  \interface{wcauchy_type}
     171             :     !>  \code{.F90}
     172             :     !>
     173             :     !>      use pm_quadPack, only: wcauchy_type
     174             :     !>      type(wcauchy_type) :: wcauchy
     175             :     !>
     176             :     !>      wcauchy = wcauchy_type(cs)
     177             :     !>
     178             :     !>  \endcode
     179             :     !>
     180             :     !>  \pure
     181             :     !>
     182             :     !>  \see
     183             :     !>  [getQuadErr](@ref pm_quadPack::getQuadErr).<br>
     184             :     !>  [isFailedQuad](@ref pm_quadPack::isFailedQuad).<br>
     185             :     !>
     186             :     !>  \test
     187             :     !>  [test_pm_quadPack](@ref test_pm_quadPack)
     188             :     !>
     189             :     !>  \finmain{wcauchy_type}
     190             :     !>
     191             :     !>  \author
     192             :     !>  \AmirShahmoradi, Oct 16, 2009, 11:14 AM, Michigan
     193             :     type     :: wcauchy_type
     194             :         real(RKH) :: cs !<  \public The scalar component of type `real` of kind \RKH (the highest (precision) real kind available in the ParaMonte library, representing the point of singularity in the Cauchy weight of an integrand function: \f$\frac{1}{x - \ms{cs}}\f$.<br>
     195             :     end type
     196             : 
     197             :     !>  \brief
     198             :     !>  Return an object of type [wcauchy_type](@ref pm_quadPack::wcauchy_type) containing the Cauchy singularity of a weight of the form,
     199             :     !>  \f{equation}{
     200             :     !>      \frac{1}{(x - c)} ~,~ x \in (\ms{lb}, \ms{ub}) ~,~ \ms{lb} < 0 < \ms{ub}
     201             :     !>  \f}
     202             :     !>  where \f$(\ms{lb}, \ms{ub})\f$ represent the integration bounds.<br>
     203             :     !>
     204             :     !>  \devnote
     205             :     !>  This generic interface exists because of the lack of support for PDTs in gfortran,
     206             :     !>  requiring the derived type [wcauchy_type](@ref pm_quadPack::wcauchy_type) to have `cs` component with the highest precision.<br>
     207             :     !>
     208             :     !>  \param[in]  cs  :   The input scalar of type `real` of kind \RKALL, containing the Cauchy singularity.<br>
     209             :     !>
     210             :     !>  \return
     211             :     !>  `wcauchy`       :   The output scalar object of type [wcauchy_type](@ref pm_quadPack::wcauchy_type) containing the Cauchy singularity.<br>
     212             :     !>
     213             :     !>  \interface{constructWcauchy}
     214             :     !>  \code{.F90}
     215             :     !>
     216             :     !>      use pm_quadPack, only: wcauchy_type
     217             :     !>      type(wcauchy_type) :: wcauchy
     218             :     !>
     219             :     !>      wcauchy = wcauchy_type(cs)
     220             :     !>
     221             :     !>  \endcode
     222             :     !>
     223             :     !>  \pure
     224             :     !>
     225             :     !>  \see
     226             :     !>  [getQuadErr](@ref pm_quadPack::getQuadErr)<br>
     227             :     !>  [isFailedQuad](@ref pm_quadPack::isFailedQuad)<br>
     228             :     !>  [wcauchy_type](@ref pm_quadPack::wcauchy_type)<br>
     229             :     !>
     230             :     !>  \test
     231             :     !>  [test_pm_quadPack](@ref test_pm_quadPack)<br>
     232             :     !>
     233             :     !>  \finmain{constructWcauchy}
     234             :     !>
     235             :     !>  \author
     236             :     !>  \AmirShahmoradi, Oct 16, 2009, 11:14 AM, Michigan
     237             :     interface wcauchy_type
     238             : 
     239             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     240             : 
     241             : #if RK5_ENABLED
     242             :     PURE elemental module function constructWcauchy_RK5(cs) result(wcauchy)
     243             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
     244             :         !DEC$ ATTRIBUTES DLLEXPORT :: constructWcauchy_RK5
     245             : #endif
     246             :         use pm_kind, only: RKC => RK5
     247             :         real(RKC)       , intent(in)            :: cs
     248             :         type(wcauchy_type)                      :: wcauchy
     249             :     end function
     250             : #endif
     251             : 
     252             : #if RK4_ENABLED
     253             :     PURE elemental module function constructWcauchy_RK4(cs) result(wcauchy)
     254             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
     255             :         !DEC$ ATTRIBUTES DLLEXPORT :: constructWcauchy_RK4
     256             : #endif
     257             :         use pm_kind, only: RKC => RK4
     258             :         real(RKC)       , intent(in)            :: cs
     259             :         type(wcauchy_type)                      :: wcauchy
     260             :     end function
     261             : #endif
     262             : 
     263             : #if RK3_ENABLED
     264             :     PURE elemental module function constructWcauchy_RK3(cs) result(wcauchy)
     265             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
     266             :         !DEC$ ATTRIBUTES DLLEXPORT :: constructWcauchy_RK3
     267             : #endif
     268             :         use pm_kind, only: RKC => RK3
     269             :         real(RKC)       , intent(in)            :: cs
     270             :         type(wcauchy_type)                      :: wcauchy
     271             :     end function
     272             : #endif
     273             : 
     274             : #if RK2_ENABLED
     275             :     PURE elemental module function constructWcauchy_RK2(cs) result(wcauchy)
     276             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
     277             :         !DEC$ ATTRIBUTES DLLEXPORT :: constructWcauchy_RK2
     278             : #endif
     279             :         use pm_kind, only: RKC => RK2
     280             :         real(RKC)       , intent(in)            :: cs
     281             :         type(wcauchy_type)                      :: wcauchy
     282             :     end function
     283             : #endif
     284             : 
     285             : #if RK1_ENABLED
     286             :     PURE elemental module function constructWcauchy_RK1(cs) result(wcauchy)
     287             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
     288             :         !DEC$ ATTRIBUTES DLLEXPORT :: constructWcauchy_RK1
     289             : #endif
     290             :         use pm_kind, only: RKC => RK1
     291             :         real(RKC)       , intent(in)            :: cs
     292             :         type(wcauchy_type)                      :: wcauchy
     293             :     end function
     294             : #endif
     295             : 
     296             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     297             : 
     298             :     end interface
     299             : 
     300             : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     301             : 
     302             :     !>  \brief
     303             :     !>  This is the derived type for constructing objects that signify the computation of the integral an arbitrary Sine-weighted function.
     304             :     !>
     305             :     !>  \details
     306             :     !>  The specified weight via this derive type has the form,
     307             :     !>  \f{equation}{
     308             :     !>      \sin(\omega x) ~,
     309             :     !>  \f}
     310             :     !>  that is used to signify the computation of the computation of the (Fourier transform) integral of the form:<br>
     311             :     !>  \f{equation}{
     312             :     !>      \int^{\ms{ub}}_{\ms{lb}} \sin(\omega x) f(x) dx
     313             :     !>  \f}
     314             :     !>  where \f$\omega\f$ and \f$f(x)\f$ are user-specified.<br>
     315             :     !>
     316             :     !>  Objects of this derived type can be passed to the primary integrators of the parent modules of this derived type:<br>
     317             :     !>  <ol>
     318             :     !>      <li>    [getQuadErr](@ref pm_quadPack::getQuadErr)<br>
     319             :     !>      <li>    [isFailedQuad](@ref pm_quadPack::isFailedQuad)<br>
     320             :     !>  </ol>
     321             :     !>
     322             :     !>  \interface{wsin_type}
     323             :     !>  \code{.F90}
     324             :     !>
     325             :     !>      use pm_quadPack, only: wsin_type
     326             :     !>      type(wsin_type) :: wsin_type
     327             :     !>
     328             :     !>      wsin = wsin_type(omega)
     329             :     !>
     330             :     !>  \endcode
     331             :     !>
     332             :     !>  \pure
     333             :     !>
     334             :     !>  \see
     335             :     !>  [getQuadErr](@ref pm_quadPack::getQuadErr).<br>
     336             :     !>  [isFailedQuad](@ref pm_quadPack::isFailedQuad).<br>
     337             :     !>
     338             :     !>  \test
     339             :     !>  [test_pm_quadPack](@ref test_pm_quadPack)
     340             :     !>
     341             :     !>  \finmain{wsin_type}
     342             :     !>
     343             :     !>  \author
     344             :     !>  \AmirShahmoradi, Oct 16, 2009, 11:14 AM, Michigan
     345             :     type     :: wsin_type
     346             :         real(RKH) :: omega  !<  \public The scalar component of type `real` of kind \RKH (the highest (precision) real kind available in the ParaMonte library, representing the frequency coefficient of the weight.<br>
     347             :     end type
     348             : 
     349             :     !>  \brief
     350             :     !>  Return an object of type [wsin_type](@ref pm_quadPack::wsin_type) containing the frequency of the Sine weight of a Fourier transform integration.<br>
     351             :     !>
     352             :     !>  \devnote
     353             :     !>  This generic interface exists because of the lack of support for PDTs in gfortran,
     354             :     !>  requiring the derived type [wsin_type](@ref pm_quadPack::wsin_type) to have `omega` component with the highest precision.<br>
     355             :     !>
     356             :     !>  \param[in]  omega   :   The input scalar or array of arbitrary rank of type `real` of kind \RKALL,
     357             :     !>                          containing the angular frequency of the oscillatory Sine weight in the
     358             :     !>                          integrand whose integral is to be computed.
     359             :     !>
     360             :     !>  \return
     361             :     !>  `wsin`              :   The scalar or array of the same shape as `omega` of type `Sin_type` that uniquely
     362             :     !>                          determines the type and kind of the Sine weight to be used in the integrand.
     363             :     !>
     364             :     !>  \interface{constructWsin}
     365             :     !>  \code{.F90}
     366             :     !>
     367             :     !>      use pm_quadPack, only: wsin_type
     368             :     !>      type(wsin_type) :: wsin
     369             :     !>
     370             :     !>      wsin = wsin_type(omega)
     371             :     !>      print *, wsin%omega
     372             :     !>
     373             :     !>  \endcode
     374             :     !>
     375             :     !>  \pure
     376             :     !>
     377             :     !>  \see
     378             :     !>  [getQuadErr](@ref pm_quadPack::getQuadErr)<br>
     379             :     !>  [isFailedQuad](@ref pm_quadPack::isFailedQuad)<br>
     380             :     !>  [wsin_type](@ref pm_quadPack::wsin_type)<br>
     381             :     !>
     382             :     !>  \test
     383             :     !>  [test_pm_quadPack](@ref test_pm_quadPack)<br>
     384             :     !>
     385             :     !>  \finmain{constructWsin}
     386             :     !>
     387             :     !>  \author
     388             :     !>  \AmirShahmoradi, Oct 16, 2009, 11:14 AM, Michigan
     389             :     interface wsin_type
     390             : 
     391             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     392             : 
     393             : #if RK5_ENABLED
     394             :     PURE elemental module function constructWsin_RK5(omega) result(wsin)
     395             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
     396             :         !DEC$ ATTRIBUTES DLLEXPORT :: constructWsin_RK5
     397             : #endif
     398             :         use pm_kind, only: RKC => RK5
     399             :         real(RKC)       , intent(in)            :: omega
     400             :         type(wsin_type)                         :: wsin
     401             :     end function
     402             : #endif
     403             : 
     404             : #if RK4_ENABLED
     405             :     PURE elemental module function constructWsin_RK4(omega) result(wsin)
     406             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
     407             :         !DEC$ ATTRIBUTES DLLEXPORT :: constructWsin_RK4
     408             : #endif
     409             :         use pm_kind, only: RKC => RK4
     410             :         real(RKC)       , intent(in)            :: omega
     411             :         type(wsin_type)                         :: wsin
     412             :     end function
     413             : #endif
     414             : 
     415             : #if RK3_ENABLED
     416             :     PURE elemental module function constructWsin_RK3(omega) result(wsin)
     417             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
     418             :         !DEC$ ATTRIBUTES DLLEXPORT :: constructWsin_RK3
     419             : #endif
     420             :         use pm_kind, only: RKC => RK3
     421             :         real(RKC)       , intent(in)            :: omega
     422             :         type(wsin_type)                         :: wsin
     423             :     end function
     424             : #endif
     425             : 
     426             : #if RK2_ENABLED
     427             :     PURE elemental module function constructWsin_RK2(omega) result(wsin)
     428             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
     429             :         !DEC$ ATTRIBUTES DLLEXPORT :: constructWsin_RK2
     430             : #endif
     431             :         use pm_kind, only: RKC => RK2
     432             :         real(RKC)       , intent(in)            :: omega
     433             :         type(wsin_type)                         :: wsin
     434             :     end function
     435             : #endif
     436             : 
     437             : #if RK1_ENABLED
     438             :     PURE elemental module function constructWsin_RK1(omega) result(wsin)
     439             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
     440             :         !DEC$ ATTRIBUTES DLLEXPORT :: constructWsin_RK1
     441             : #endif
     442             :         use pm_kind, only: RKC => RK1
     443             :         real(RKC)       , intent(in)            :: omega
     444             :         type(wsin_type)                         :: wsin
     445             :     end function
     446             : #endif
     447             : 
     448             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     449             : 
     450             :     end interface
     451             : 
     452             : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     453             : 
     454             :     !>  \brief
     455             :     !>  This is the derived type for constructing objects that signify the computation of the integral an arbitrary Cose-weighted function.
     456             :     !>
     457             :     !>  \details
     458             :     !>  The specified weight via this derive type has the form,
     459             :     !>  \f{equation}{
     460             :     !>      \cos(\omega x) ~,
     461             :     !>  \f}
     462             :     !>  that is used to signify the computation of the computation of the (Fourier transform) integral of the form:<br>
     463             :     !>  \f{equation}{
     464             :     !>      \int^{\ms{ub}}_{\ms{lb}} \cos(\omega x) f(x) dx
     465             :     !>  \f}
     466             :     !>  where \f$\omega\f$ and \f$f(x)\f$ are user-specified.<br>
     467             :     !>
     468             :     !>  Objects of this derived type can be passed to the primary integrators of the parent modules of this derived type:<br>
     469             :     !>  <ol>
     470             :     !>      <li>    [getQuadErr](@ref pm_quadPack::getQuadErr)<br>
     471             :     !>      <li>    [isFailedQuad](@ref pm_quadPack::isFailedQuad)<br>
     472             :     !>  </ol>
     473             :     !>
     474             :     !>  \interface{wcos_type}
     475             :     !>  \code{.F90}
     476             :     !>
     477             :     !>      use pm_quadPack, only: wcos_type
     478             :     !>      type(wcos_type) :: wcos_type
     479             :     !>
     480             :     !>      wcos = wcos_type(omega)
     481             :     !>
     482             :     !>  \endcode
     483             :     !>
     484             :     !>  \pure
     485             :     !>
     486             :     !>  \see
     487             :     !>  [getQuadErr](@ref pm_quadPack::getQuadErr).<br>
     488             :     !>  [isFailedQuad](@ref pm_quadPack::isFailedQuad).<br>
     489             :     !>
     490             :     !>  \test
     491             :     !>  [test_pm_quadPack](@ref test_pm_quadPack)
     492             :     !>
     493             :     !>  \finmain{wcos_type}
     494             :     !>
     495             :     !>  \author
     496             :     !>  \AmirShahmoradi, Oct 16, 2009, 11:14 AM, Michigan
     497             :     type     :: wcos_type
     498             :         real(RKH) :: omega  !<  \public The scalar component of type `real` of kind \RKH (the highest (precision) real kind available in the ParaMonte library, representing the frequency coefficient of the weight.<br>
     499             :     end type
     500             : 
     501             :     !>  \brief
     502             :     !>  Return an object of type [wcos_type](@ref pm_quadPack::wcos_type) containing the frequency of the Cose weight of a Fourier transform integration.<br>
     503             :     !>
     504             :     !>  \devnote
     505             :     !>  This generic interface exists because of the lack of support for PDTs in gfortran,
     506             :     !>  requiring the derived type [wcos_type](@ref pm_quadPack::wcos_type) to have `omega` component with the highest precision.<br>
     507             :     !>
     508             :     !>  \param[in]  omega   :   The input scalar or array of arbitrary rank of type `real` of kind \RKALL,
     509             :     !>                          containing the angular frequency of the oscillatory Cosine weight in the
     510             :     !>                          integrand whose integral is to be computed.
     511             :     !>
     512             :     !>  \return
     513             :     !>  `wcos`              :   The scalar or array of the same shape as `omega` of type `Sin_type` that uniquely
     514             :     !>                          determines the type and kind of the Cosine weight to be used in the integrand.
     515             :     !>
     516             :     !>  \interface{constructWcos}
     517             :     !>  \code{.F90}
     518             :     !>
     519             :     !>      use pm_quadPack, only: wcos_type
     520             :     !>      type(wcos_type) :: wcos
     521             :     !>
     522             :     !>      wcos = wcos_type(omega)
     523             :     !>      print *, wcos%omega
     524             :     !>
     525             :     !>  \endcode
     526             :     !>
     527             :     !>  \pure
     528             :     !>
     529             :     !>  \see
     530             :     !>  [getQuadErr](@ref pm_quadPack::getQuadErr)<br>
     531             :     !>  [isFailedQuad](@ref pm_quadPack::isFailedQuad)<br>
     532             :     !>  [wcos_type](@ref pm_quadPack::wcos_type)<br>
     533             :     !>
     534             :     !>  \test
     535             :     !>  [test_pm_quadPack](@ref test_pm_quadPack)<br>
     536             :     !>
     537             :     !>  \finmain{constructWcos}
     538             :     !>
     539             :     !>  \author
     540             :     !>  \AmirShahmoradi, Oct 16, 2009, 11:14 AM, Michigan
     541             :     interface wcos_type
     542             : 
     543             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     544             : 
     545             : #if RK5_ENABLED
     546             :     PURE elemental module function constructWcos_RK5(omega) result(wcos)
     547             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
     548             :         !DEC$ ATTRIBUTES DLLEXPORT :: constructWcos_RK5
     549             : #endif
     550             :         use pm_kind, only: RKC => RK5
     551             :         real(RKC)       , intent(in)            :: omega
     552             :         type(wcos_type)                         :: wcos
     553             :     end function
     554             : #endif
     555             : 
     556             : #if RK4_ENABLED
     557             :     PURE elemental module function constructWcos_RK4(omega) result(wcos)
     558             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
     559             :         !DEC$ ATTRIBUTES DLLEXPORT :: constructWcos_RK4
     560             : #endif
     561             :         use pm_kind, only: RKC => RK4
     562             :         real(RKC)       , intent(in)            :: omega
     563             :         type(wcos_type)                         :: wcos
     564             :     end function
     565             : #endif
     566             : 
     567             : #if RK3_ENABLED
     568             :     PURE elemental module function constructWcos_RK3(omega) result(wcos)
     569             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
     570             :         !DEC$ ATTRIBUTES DLLEXPORT :: constructWcos_RK3
     571             : #endif
     572             :         use pm_kind, only: RKC => RK3
     573             :         real(RKC)       , intent(in)            :: omega
     574             :         type(wcos_type)                         :: wcos
     575             :     end function
     576             : #endif
     577             : 
     578             : #if RK2_ENABLED
     579             :     PURE elemental module function constructWcos_RK2(omega) result(wcos)
     580             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
     581             :         !DEC$ ATTRIBUTES DLLEXPORT :: constructWcos_RK2
     582             : #endif
     583             :         use pm_kind, only: RKC => RK2
     584             :         real(RKC)       , intent(in)            :: omega
     585             :         type(wcos_type)                         :: wcos
     586             :     end function
     587             : #endif
     588             : 
     589             : #if RK1_ENABLED
     590             :     PURE elemental module function constructWcos_RK1(omega) result(wcos)
     591             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
     592             :         !DEC$ ATTRIBUTES DLLEXPORT :: constructWcos_RK1
     593             : #endif
     594             :         use pm_kind, only: RKC => RK1
     595             :         real(RKC)       , intent(in)            :: omega
     596             :         type(wcos_type)                         :: wcos
     597             :     end function
     598             : #endif
     599             : 
     600             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     601             : 
     602             :     end interface
     603             : 
     604             : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     605             : 
     606             :     !>  \brief
     607             :     !>  This is the indicator type for generating instances of objects that indicate the use of 7-point Gauss-Legendre quadrature with 15-point Kronrod
     608             :     !>  extension formulae as the drivers in the (Adaptive) Global Gauss-Kronrod Quadrature of [getQuadGK](@ref pm_quadPack::getQuadGK).
     609             :     !>
     610             :     !>  \details
     611             :     !>  This is an empty derived type that exists solely for generating unique objects that are distinguishable
     612             :     !>  as input arguments to procedures under the generic interface [getQuadGK](@ref pm_quadPack::getQuadGK).
     613             :     !>
     614             :     !>  \interface{GK15_type}
     615             :     !>  \code{.F90}
     616             :     !>
     617             :     !>      use pm_quadPack, only: GK15_type
     618             :     !>      type(GK15_type) :: GK15
     619             :     !>
     620             :     !>  \endcode
     621             :     !>
     622             :     !>  \see
     623             :     !>  [GK15_type](@ref pm_quadPack::GK15_type)<br>
     624             :     !>  [GK21_type](@ref pm_quadPack::GK21_type)<br>
     625             :     !>  [GK31_type](@ref pm_quadPack::GK31_type)<br>
     626             :     !>  [GK41_type](@ref pm_quadPack::GK41_type)<br>
     627             :     !>  [GK51_type](@ref pm_quadPack::GK51_type)<br>
     628             :     !>  [GK61_type](@ref pm_quadPack::GK61_type)<br>
     629             :     !>  [getQuadGK](@ref pm_quadPack::getQuadGK)<br>
     630             :     !>  [getQuadErr](@ref pm_quadPack::getQuadErr)<br>
     631             :     !>
     632             :     !>  \example{GK15_type}
     633             :     !>  \include{lineno} example/pm_quadPack/GK15/main.F90
     634             :     !>  \compilef{GK15_type}
     635             :     !>  \output{GK15_type}
     636             :     !>  \include{lineno} example/pm_quadPack/GK15/main.out.F90
     637             :     !>
     638             :     !>  \test
     639             :     !>  [test_pm_quadPack](@ref test_pm_quadPack)
     640             :     !>
     641             :     !>  \finmain{GK15_type}
     642             :     !>
     643             :     !>  \author
     644             :     !>  \AmirShahmoradi, September 1, 2017, 12:00 AM, Institute for Computational Engineering and Sciences (ICES), The University of Texas at Austin
     645             :     type :: GK15_type
     646             :     end type
     647             : 
     648             :     !>  \brief
     649             :     !>  The scalar constant object of type [GK15_type](@ref pm_quadPack::GK15_type) that indicates the use of 7-point Gauss-Legendre quadrature
     650             :     !>  with 15-point Kronrod extension formulae as the drivers in the (Adaptive) Global Gauss-Kronrod Quadrature of [getQuadGK](@ref pm_quadPack::getQuadGK).
     651             :     !>
     652             :     !>  \see
     653             :     !>  [GK15](@ref pm_quadPack::GK15)<br>
     654             :     !>  [GK21](@ref pm_quadPack::GK21)<br>
     655             :     !>  [GK31](@ref pm_quadPack::GK31)<br>
     656             :     !>  [GK41](@ref pm_quadPack::GK41)<br>
     657             :     !>  [GK51](@ref pm_quadPack::GK51)<br>
     658             :     !>  [GK61](@ref pm_quadPack::GK61)<br>
     659             :     !>  [getQuadGK](@ref pm_quadPack::getQuadGK)<br>
     660             :     !>
     661             :     !>  \example{GK15}
     662             :     !>  \include{lineno} example/pm_quadPack/GK15/main.F90
     663             :     !>  \compilef{GK15}
     664             :     !>  \output{GK15}
     665             :     !>  \include{lineno} example/pm_quadPack/GK15/main.out.F90
     666             :     !>
     667             :     !>  \test
     668             :     !>  [test_pm_quadPack](@ref test_pm_quadPack)
     669             :     !>
     670             :     !>  \finmain{GK15}
     671             :     !>
     672             :     !>  \author
     673             :     !>  \AmirShahmoradi, September 1, 2017, 12:00 AM, Institute for Computational Engineering and Sciences (ICES), The University of Texas at Austin
     674             :     type(GK15_type) , parameter :: GK15 = GK15_type()
     675             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
     676             :     !DIR$ ATTRIBUTES DLLEXPORT :: GK15
     677             : #endif
     678             : 
     679             :     !>  \brief
     680             :     !>  A vector of type `real` of the highest-precision kind available by the processor,
     681             :     !>  containing the abscissas of the 7-points Gauss quadrature rule.
     682             :     !>
     683             :     !>  \see
     684             :     !>  [nodeG7](@ref pm_quadPack::nodeG7)<br>
     685             :     !>  [nodeK15](@ref pm_quadPack::nodeK15)<br>
     686             :     !>  [weightG7](@ref pm_quadPack::weightG7)<br>
     687             :     !>  [weightG15](@ref pm_quadPack::weightG15)<br>
     688             :     !>  [getQuadGK](@ref pm_quadPack::getQuadGK)<br>
     689             :     !>  [getQuadErr](@ref pm_quadPack::getQuadErr)<br>
     690             :     !>
     691             :     !>  \test
     692             :     !>  [test_pm_quadPack](@ref test_pm_quadPack)
     693             :     !>
     694             :     !>  \finmain{nodeG7}
     695             :     !>
     696             :     !>  \author
     697             :     !>  \AmirShahmoradi, September 1, 2017, 12:00 AM, Institute for Computational Engineering and Sciences (ICES), The University of Texas at Austin
     698             :     real(RKB)   , parameter :: nodeG7(4) = &
     699             :     [ 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00_RKB &
     700             :     , 4.0584515137739716690660641207696146334738201409937012638704325179466381322612565532831268972774658776528675866604802e-01_RKB &
     701             :     , 7.4153118559939443986386477328078840707414764714139026011995535196742987467218051379282683236686324705969251809311201e-01_RKB &
     702             :     , 9.4910791234275852452618968404785126240077093767061778354876910391306333035484014080573077002792572414430073966699522e-01_RKB ]
     703             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
     704             :     !DIR$ ATTRIBUTES DLLEXPORT :: nodeG7
     705             : #endif
     706             : 
     707             :     !>  \brief
     708             :     !>  A vector of type `real` of the highest-precision kind available by the processor,
     709             :     !>  containing the weights of the 7-points Gauss quadrature rule.
     710             :     !>
     711             :     !>  \see
     712             :     !>  [nodeG7](@ref pm_quadPack::nodeG7)<br>
     713             :     !>  [nodeK15](@ref pm_quadPack::nodeK15)<br>
     714             :     !>  [weightG7](@ref pm_quadPack::weightG7)<br>
     715             :     !>  [weightG15](@ref pm_quadPack::weightG15)<br>
     716             :     !>  [getQuadGK](@ref pm_quadPack::getQuadGK)<br>
     717             :     !>  [getQuadErr](@ref pm_quadPack::getQuadErr)<br>
     718             :     !>
     719             :     !>  \test
     720             :     !>  [test_pm_quadPack](@ref test_pm_quadPack)
     721             :     !>
     722             :     !>  \finmain{weightG7}
     723             :     !>
     724             :     !>  \author
     725             :     !>  \AmirShahmoradi, September 1, 2017, 12:00 AM, Institute for Computational Engineering and Sciences (ICES), The University of Texas at Austin
     726             :     real(RKB)   , parameter :: weightG7(4) = &
     727             :     [ 4.1795918367346938775510204081632653061224489795918367346938775510204081632653061224489795918367346938775510204081633e-01_RKB &
     728             :     , 3.8183005050511894495036977548897513387836508353386273475108345103070554643412970834868465934404480145031467176458536e-01_RKB &
     729             :     , 2.7970539148927666790146777142377958248692506522659876453701403269361881043056267681324094290119761876632337521337205e-01_RKB &
     730             :     , 1.2948496616886969327061143267908201832858740225994666397720863872465523497204230871562541816292084508948440200163443e-01_RKB ]
     731             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
     732             :     !DIR$ ATTRIBUTES DLLEXPORT :: weightG7
     733             : #endif
     734             : 
     735             :     !>  \brief
     736             :     !>  A vector of type `real` of the highest-precision kind available by the processor,
     737             :     !>  containing the abscissas of the 15-points Kronrod extension to the 7-points Gauss quadrature rule.
     738             :     !>
     739             :     !>  \see
     740             :     !>  [nodeG7](@ref pm_quadPack::nodeG7)<br>
     741             :     !>  [nodeK15](@ref pm_quadPack::nodeK15)<br>
     742             :     !>  [weightG7](@ref pm_quadPack::weightG7)<br>
     743             :     !>  [weightG15](@ref pm_quadPack::weightG15)<br>
     744             :     !>  [getQuadGK](@ref pm_quadPack::getQuadGK)<br>
     745             :     !>  [getQuadErr](@ref pm_quadPack::getQuadErr)<br>
     746             :     !>
     747             :     !>  \test
     748             :     !>  [test_pm_quadPack](@ref test_pm_quadPack)
     749             :     !>
     750             :     !>  \finmain{nodeK15}
     751             :     !>
     752             :     !>  \author
     753             :     !>  \AmirShahmoradi, September 1, 2017, 12:00 AM, Institute for Computational Engineering and Sciences (ICES), The University of Texas at Austin
     754             :     real(RKB)   , parameter :: nodeK15(8) = &
     755             :     [ 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00_RKB &
     756             :     , 2.0778495500789846760068940377324491347978440714517064971384573461986693844943520226910343227183698530560857645062738e-01_RKB &
     757             :     , 4.0584515137739716690660641207696146334738201409937012638704325179466381322612565532831268972774658776528675866604802e-01_RKB &
     758             :     , 5.8608723546769113029414483825872959843678075060436095130499289319880373607444407464511674498935942098956811555121368e-01_RKB &
     759             :     , 7.4153118559939443986386477328078840707414764714139026011995535196742987467218051379282683236686324705969251809311201e-01_RKB &
     760             :     , 8.6486442335976907278971278864092620121097230707408814860145771276706770813259572103585847859604590541475281326027862e-01_RKB &
     761             :     , 9.4910791234275852452618968404785126240077093767061778354876910391306333035484014080573077002792572414430073966699522e-01_RKB &
     762             :     , 9.9145537112081263920685469752632851664204433837033470129108741357244173934653407235924503509626841760744349505339308e-01_RKB ]
     763             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
     764             :     !DIR$ ATTRIBUTES DLLEXPORT :: nodeK15
     765             : #endif
     766             : 
     767             :     !>  \brief
     768             :     !>  A vector of type `real` of the highest-precision kind available by the processor,
     769             :     !>  containing the weights of the 15-points Kronrod extension to the 7-points Gauss quadrature rule.
     770             :     !>
     771             :     !>  \see
     772             :     !>  [nodeG7](@ref pm_quadPack::nodeG7)<br>
     773             :     !>  [nodeK15](@ref pm_quadPack::nodeK15)<br>
     774             :     !>  [weightG7](@ref pm_quadPack::weightG7)<br>
     775             :     !>  [weightG15](@ref pm_quadPack::weightG15)<br>
     776             :     !>  [getQuadGK](@ref pm_quadPack::getQuadGK)<br>
     777             :     !>  [getQuadErr](@ref pm_quadPack::getQuadErr)<br>
     778             :     !>
     779             :     !>  \test
     780             :     !>  [test_pm_quadPack](@ref test_pm_quadPack)
     781             :     !>
     782             :     !>  \finmain{weightK15}
     783             :     !>
     784             :     !>  \author
     785             :     !>  \AmirShahmoradi, September 1, 2017, 12:00 AM, Institute for Computational Engineering and Sciences (ICES), The University of Texas at Austin
     786             :     real(RKB)   , parameter :: weightK15(8) = &
     787             :     [ 2.0948214108472782801299917489171426369776208022370431671299800656137515132325648616816908211675949102392971459688215e-01_RKB &
     788             :     , 2.0443294007529889241416199923464908471651760418071835742447095312045467698546598879348374292009347554167803659293064e-01_RKB &
     789             :     , 1.9035057806478540991325640242101368282607807545535835588544088036744058072410212679605964605106377593834568683551139e-01_RKB &
     790             :     , 1.6900472663926790282658342659855028410624490030294424149734006755695680921619029112936702403855359908156070095656537e-01_RKB &
     791             :     , 1.4065325971552591874518959051023792039988975724799857556174546893312708093090950408097379122415555910759700350860143e-01_RKB &
     792             :     , 1.0479001032225018383987632254151801744375665421383061189339065133963746321576289524167571627509311333949422518201492e-01_RKB &
     793             :     , 6.3092092629978553290700663189204286665071157211550707113605545146983997477964874928199170264504441995865872491871943e-02_RKB &
     794             :     , 2.2935322010529224963732008058969591993560811275746992267507430254711815787976075946156368168156289483493617134063245e-02_RKB ]
     795             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
     796             :     !DIR$ ATTRIBUTES DLLEXPORT :: weightK15
     797             : #endif
     798             : 
     799             : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     800             : 
     801             :     !>  \brief
     802             :     !>  This is the indicator type for generating instances of objects that indicate the use of 10-point Gauss-Legendre quadrature with 11-point Kronrod
     803             :     !>  extension formulae as the drivers in the (Adaptive) Global Gauss-Kronrod Quadrature of [getQuadGK](@ref pm_quadPack::getQuadGK).
     804             :     !>
     805             :     !>  \details
     806             :     !>  This is an empty derived type that exists solely for generating unique objects that are distinguishable
     807             :     !>  as input arguments to procedures under the generic interface [getQuadGK](@ref pm_quadPack::getQuadGK).
     808             :     !>
     809             :     !>  \interface{GK21_type}
     810             :     !>  \code{.F90}
     811             :     !>
     812             :     !>      use pm_quadPack, only: GK21_type
     813             :     !>      type(GK21_type) :: GK21
     814             :     !>
     815             :     !>  \endcode
     816             :     !>
     817             :     !>  \see
     818             :     !>  [GK15_type](@ref pm_quadPack::GK15_type)<br>
     819             :     !>  [GK21_type](@ref pm_quadPack::GK21_type)<br>
     820             :     !>  [GK31_type](@ref pm_quadPack::GK31_type)<br>
     821             :     !>  [GK41_type](@ref pm_quadPack::GK41_type)<br>
     822             :     !>  [GK51_type](@ref pm_quadPack::GK51_type)<br>
     823             :     !>  [GK61_type](@ref pm_quadPack::GK61_type)<br>
     824             :     !>  [getQuadGK](@ref pm_quadPack::getQuadGK)<br>
     825             :     !>  [getQuadErr](@ref pm_quadPack::getQuadErr)<br>
     826             :     !>
     827             :     !>  \example{GK21_type}
     828             :     !>  \include{lineno} example/pm_quadPack/GK21/main.F90
     829             :     !>  \compilef{GK21_type}
     830             :     !>  \output{GK21_type}
     831             :     !>  \include{lineno} example/pm_quadPack/GK21/main.out.F90
     832             :     !>
     833             :     !>  \test
     834             :     !>  [test_pm_quadPack](@ref test_pm_quadPack)
     835             :     !>
     836             :     !>  \finmain{GK21_type}
     837             :     !>
     838             :     !>  \author
     839             :     !>  \AmirShahmoradi, September 1, 2017, 12:00 AM, Institute for Computational Engineering and Sciences (ICES), The University of Texas at Austin
     840             :     type :: GK21_type
     841             :     end type
     842             : 
     843             :     !>  \brief
     844             :     !>  The scalar constant object of type [GK21_type](@ref pm_quadPack::GK21_type) that indicates the use of 10-point Gauss-Legendre quadrature
     845             :     !>  with 21-point Kronrod extension formulae as the drivers in the (Adaptive) Global Gauss-Kronrod Quadrature of [getQuadGK](@ref pm_quadPack::getQuadGK).
     846             :     !>
     847             :     !>  \see
     848             :     !>  [GK15](@ref pm_quadPack::GK15)<br>
     849             :     !>  [GK21](@ref pm_quadPack::GK21)<br>
     850             :     !>  [GK31](@ref pm_quadPack::GK31)<br>
     851             :     !>  [GK41](@ref pm_quadPack::GK41)<br>
     852             :     !>  [GK51](@ref pm_quadPack::GK51)<br>
     853             :     !>  [GK61](@ref pm_quadPack::GK61)<br>
     854             :     !>  [getQuadGK](@ref pm_quadPack::getQuadGK)<br>
     855             :     !>  [getQuadErr](@ref pm_quadPack::getQuadErr)<br>
     856             :     !>
     857             :     !>  \example{GK21}
     858             :     !>  \include{lineno} example/pm_quadPack/GK21/main.F90
     859             :     !>  \compilef{GK21}
     860             :     !>  \output{GK21}
     861             :     !>  \include{lineno} example/pm_quadPack/GK21/main.out.F90
     862             :     !>
     863             :     !>  \test
     864             :     !>  [test_pm_quadPack](@ref test_pm_quadPack)
     865             :     !>
     866             :     !>  \finmain{GK21}
     867             :     !>
     868             :     !>  \author
     869             :     !>  \AmirShahmoradi, September 1, 2017, 12:00 AM, Institute for Computational Engineering and Sciences (ICES), The University of Texas at Austin
     870             :     type(GK21_type) , parameter :: GK21 = GK21_type()
     871             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
     872             :     !DIR$ ATTRIBUTES DLLEXPORT :: GK21
     873             : #endif
     874             : 
     875             :     !>  \brief
     876             :     !>  A vector of type `real` of the highest-precision kind available by the processor,
     877             :     !>  containing the abscissas of the 10-points Gauss quadrature rule.
     878             :     !>
     879             :     !>  \see
     880             :     !>  [nodeG10](@ref pm_quadPack::nodeG10)<br>
     881             :     !>  [nodeK21](@ref pm_quadPack::nodeK21)<br>
     882             :     !>  [weightG10](@ref pm_quadPack::weightG10)<br>
     883             :     !>  [weightK21](@ref pm_quadPack::weightK21)<br>
     884             :     !>  [getQuadGK](@ref pm_quadPack::getQuadGK)<br>
     885             :     !>  [getQuadErr](@ref pm_quadPack::getQuadErr)<br>
     886             :     !>
     887             :     !>  \test
     888             :     !>  [test_pm_quadPack](@ref test_pm_quadPack)
     889             :     !>
     890             :     !>  \finmain{nodeG10}
     891             :     !>
     892             :     !>  \author
     893             :     !>  \AmirShahmoradi, September 1, 2017, 12:00 AM, Institute for Computational Engineering and Sciences (ICES), The University of Texas at Austin
     894             :     real(RKB)   , parameter :: nodeG10(5) = &
     895             :     [ 1.4887433898163121088482600112971998461756485942069169570798925351590361735566852137117762979946369123003116080525534e-01_RKB &
     896             :     , 4.3339539412924719079926594316578416220007183765624649650270151314376698907770350122510275795011772122368293504099894e-01_RKB &
     897             :     , 6.7940956829902440623432736511487357576929471183480946766481718895255857539507492461507857357048037949983390204739932e-01_RKB &
     898             :     , 8.6506336668898451073209668842349304852754301496533045252195973184537475513805556135679072894604577069440463108641177e-01_RKB &
     899             :     , 9.7390652851717172007796401208445205342826994669238211923121206669659520323463615962572356495626855625823304251877421e-01_RKB ]
     900             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
     901             :     !DIR$ ATTRIBUTES DLLEXPORT :: nodeG10
     902             : #endif
     903             : 
     904             :     !>  \brief
     905             :     !>  A vector of type `real` of the highest-precision kind available by the processor,
     906             :     !>  containing the weights of the 10-points Gauss quadrature rule.
     907             :     !>
     908             :     !>  \see
     909             :     !>  [nodeG10](@ref pm_quadPack::nodeG10)<br>
     910             :     !>  [nodeK21](@ref pm_quadPack::nodeK21)<br>
     911             :     !>  [weightG10](@ref pm_quadPack::weightG10)<br>
     912             :     !>  [weightK21](@ref pm_quadPack::weightK21)<br>
     913             :     !>  [getQuadGK](@ref pm_quadPack::getQuadGK)<br>
     914             :     !>  [getQuadErr](@ref pm_quadPack::getQuadErr)<br>
     915             :     !>
     916             :     !>  \test
     917             :     !>  [test_pm_quadPack](@ref test_pm_quadPack)
     918             :     !>
     919             :     !>  \finmain{weightG10}
     920             :     !>
     921             :     !>  \author
     922             :     !>  \AmirShahmoradi, September 1, 2017, 12:00 AM, Institute for Computational Engineering and Sciences (ICES), The University of Texas at Austin
     923             :     real(RKB)   , parameter :: weightG10(5) = &
     924             :     [ 2.9552422471475287017389299465133832942104671702685360135430802975599593821715232927035659579375421672271716440125256e-01_RKB &
     925             :     , 2.6926671930999635509122692156946935285975993846088379580056327624215343231917927676422663670925276075559581145036870e-01_RKB &
     926             :     , 2.1908636251598204399553493422816319245877187052267708988095654363519991065295128124268399317720219278659121687281289e-01_RKB &
     927             :     , 1.4945134915058059314577633965769733240255663966942736783547726875323865472663001094594726463473195191400575256104544e-01_RKB &
     928             :     , 6.6671344308688137593568809893331792857864834320158145128694881613412064084087101776785509685058877821090054714520419e-02_RKB ]
     929             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
     930             :     !DIR$ ATTRIBUTES DLLEXPORT :: weightG10
     931             : #endif
     932             : 
     933             :     !>  \brief
     934             :     !>  A vector of type `real` of the highest-precision kind available by the processor,
     935             :     !>  containing the abscissas of the 21-points Kronrod extension to the 10-points Gauss quadrature rule.
     936             :     !>
     937             :     !>  \see
     938             :     !>  [nodeG10](@ref pm_quadPack::nodeG10)<br>
     939             :     !>  [nodeK21](@ref pm_quadPack::nodeK21)<br>
     940             :     !>  [weightG10](@ref pm_quadPack::weightG10)<br>
     941             :     !>  [weightK21](@ref pm_quadPack::weightK21)<br>
     942             :     !>  [getQuadGK](@ref pm_quadPack::getQuadGK)<br>
     943             :     !>  [getQuadErr](@ref pm_quadPack::getQuadErr)<br>
     944             :     !>
     945             :     !>  \test
     946             :     !>  [test_pm_quadPack](@ref test_pm_quadPack)
     947             :     !>
     948             :     !>  \finmain{nodeK21}
     949             :     !>
     950             :     !>  \author
     951             :     !>  \AmirShahmoradi, September 1, 2017, 12:00 AM, Institute for Computational Engineering and Sciences (ICES), The University of Texas at Austin
     952             :     real(RKB)   , parameter :: nodeK21(11) = &
     953             :     [ 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00_RKB &
     954             :     , 1.4887433898163121088482600112971998461756485942069169570798925351590361735566852137117762979946369123003116080525534e-01_RKB &
     955             :     , 2.9439286270146019813112660310386556616268662515695791864888229172724611166332737888445523178268237359119185139299872e-01_RKB &
     956             :     , 4.3339539412924719079926594316578416220007183765624649650270151314376698907770350122510275795011772122368293504099894e-01_RKB &
     957             :     , 5.6275713466860468333900009927269414084301388194196695886034621458779266353216327549712087854169992422106448211158815e-01_RKB &
     958             :     , 6.7940956829902440623432736511487357576929471183480946766481718895255857539507492461507857357048037949983390204739932e-01_RKB &
     959             :     , 7.8081772658641689706371757834504237716340752029815717974694859999505607982761420654526977234238996241110129779403362e-01_RKB &
     960             :     , 8.6506336668898451073209668842349304852754301496533045252195973184537475513805556135679072894604577069440463108641177e-01_RKB &
     961             :     , 9.3015749135570822600120718005950834622516790998193924230349406866828415983091673055011194572851007884702013619684320e-01_RKB &
     962             :     , 9.7390652851717172007796401208445205342826994669238211923121206669659520323463615962572356495626855625823304251877421e-01_RKB &
     963             :     , 9.9565716302580808073552728068900284792126058721947892436337916111757023046774867357152325996912076724298149077812671e-01_RKB ]
     964             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
     965             :     !DIR$ ATTRIBUTES DLLEXPORT :: nodeK21
     966             : #endif
     967             : 
     968             :     !>  \brief
     969             :     !>  A vector of type `real` of the highest-precision kind available by the processor,
     970             :     !>  containing the weights of the 21-points Kronrod extension to the 10-points Gauss quadrature rule.
     971             :     !>
     972             :     !>  \see
     973             :     !>  [nodeG10](@ref pm_quadPack::nodeG10)<br>
     974             :     !>  [nodeK21](@ref pm_quadPack::nodeK21)<br>
     975             :     !>  [weightG10](@ref pm_quadPack::weightG10)<br>
     976             :     !>  [weightK21](@ref pm_quadPack::weightK21)<br>
     977             :     !>  [getQuadGK](@ref pm_quadPack::getQuadGK)<br>
     978             :     !>  [getQuadErr](@ref pm_quadPack::getQuadErr)<br>
     979             :     !>
     980             :     !>  \test
     981             :     !>  [test_pm_quadPack](@ref test_pm_quadPack)
     982             :     !>
     983             :     !>  \finmain{weightK21}
     984             :     !>
     985             :     !>  \author
     986             :     !>  \AmirShahmoradi, September 1, 2017, 12:00 AM, Institute for Computational Engineering and Sciences (ICES), The University of Texas at Austin
     987             :     real(RKB)   , parameter :: weightK21(11) = &
     988             :     [ 1.4944555400291690566493646838982120374523631668747280383560851873698964478511841925721030705689540264726493367634340e-01_RKB &
     989             :     , 1.4773910490133849137484151597206804552373162548520660451819195439885993016735696405732703959182882254268727823258502e-01_RKB &
     990             :     , 1.4277593857706008079709427313871706088597905653190555560741004743970770449909340027811131706283756428281146832304737e-01_RKB &
     991             :     , 1.3470921731147332592805400177170683276099191300855971406636668491320291400121282036676953159488271772384389604997640e-01_RKB &
     992             :     , 1.2349197626206585107795810983107415951230034952864832764467994120974054238975454689681538622363738230836484113389878e-01_RKB &
     993             :     , 1.0938715880229764189921059032580496027181329983434522007819675829826550372891432168683899432674553842507906611591517e-01_RKB &
     994             :     , 9.3125454583697605535065465083366344390018828880760031970085038760177735672200775237414123061615827474831165614953012e-02_RKB &
     995             :     , 7.5039674810919952767043140916190009395219382000910088173697048048430404342858495178813808730646554086856929327903059e-02_RKB &
     996             :     , 5.4755896574351996031381300244580176373721114058333557524432615804784098927818975325116301569003298086458722055550981e-02_RKB &
     997             :     , 3.2558162307964727478818972459389760617388939845662609571537504232714121820165498692381607605384626494546068817765276e-02_RKB &
     998             :     , 1.1694638867371874278064396062192048396217332481931888927598147525622222058064992651806736704969967250888097490233242e-02_RKB ]
     999             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    1000             :     !DIR$ ATTRIBUTES DLLEXPORT :: weightK21
    1001             : #endif
    1002             : 
    1003             : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1004             : 
    1005             :     !>  \brief
    1006             :     !>  This is the indicator type for generating instances of objects that indicate the use of 15-point Gauss-Legendre quadrature with 31-point Kronrod
    1007             :     !>  extension formulae as the drivers in the (Adaptive) Global Gauss-Kronrod Quadrature of [getQuadGK](@ref pm_quadPack::getQuadGK).
    1008             :     !>
    1009             :     !>  \details
    1010             :     !>  This is an empty derived type that exists solely for generating unique objects that are distinguishable
    1011             :     !>  as input arguments to procedures under the generic interface [getQuadGK](@ref pm_quadPack::getQuadGK).
    1012             :     !>
    1013             :     !>  \interface{GK31_type}
    1014             :     !>  \code{.F90}
    1015             :     !>
    1016             :     !>      use pm_quadPack, only: GK31_type
    1017             :     !>      type(GK31_type) :: GK31
    1018             :     !>
    1019             :     !>  \endcode
    1020             :     !>
    1021             :     !>  \see
    1022             :     !>  [GK15_type](@ref pm_quadPack::GK15_type)<br>
    1023             :     !>  [GK21_type](@ref pm_quadPack::GK21_type)<br>
    1024             :     !>  [GK31_type](@ref pm_quadPack::GK31_type)<br>
    1025             :     !>  [GK41_type](@ref pm_quadPack::GK41_type)<br>
    1026             :     !>  [GK51_type](@ref pm_quadPack::GK51_type)<br>
    1027             :     !>  [GK61_type](@ref pm_quadPack::GK61_type)<br>
    1028             :     !>  [getQuadGK](@ref pm_quadPack::getQuadGK)<br>
    1029             :     !>  [getQuadErr](@ref pm_quadPack::getQuadErr)<br>
    1030             :     !>
    1031             :     !>  \example{GK31_type}
    1032             :     !>  \include{lineno} example/pm_quadPack/GK31/main.F90
    1033             :     !>  \compilef{GK31_type}
    1034             :     !>  \output{GK31_type}
    1035             :     !>  \include{lineno} example/pm_quadPack/GK31/main.out.F90
    1036             :     !>
    1037             :     !>  \test
    1038             :     !>  [test_pm_quadPack](@ref test_pm_quadPack)
    1039             :     !>
    1040             :     !>  \finmain{GK31_type}
    1041             :     !>
    1042             :     !>  \author
    1043             :     !>  \AmirShahmoradi, September 1, 2017, 12:00 AM, Institute for Computational Engineering and Sciences (ICES), The University of Texas at Austin
    1044             :     type :: GK31_type
    1045             :     end type
    1046             : 
    1047             :     !>  \brief
    1048             :     !>  The scalar constant object of type [GK31_type](@ref pm_quadPack::GK31_type) that indicates the use of 15-point Gauss-Legendre quadrature
    1049             :     !>  with 31-point Kronrod extension formulae as the drivers in the (Adaptive) Global Gauss-Kronrod Quadrature of [getQuadGK](@ref pm_quadPack::getQuadGK).
    1050             :     !>
    1051             :     !>  \see
    1052             :     !>  [GK15](@ref pm_quadPack::GK15)<br>
    1053             :     !>  [GK21](@ref pm_quadPack::GK21)<br>
    1054             :     !>  [GK31](@ref pm_quadPack::GK31)<br>
    1055             :     !>  [GK41](@ref pm_quadPack::GK41)<br>
    1056             :     !>  [GK51](@ref pm_quadPack::GK51)<br>
    1057             :     !>  [GK61](@ref pm_quadPack::GK61)<br>
    1058             :     !>  [getQuadGK](@ref pm_quadPack::getQuadGK)<br>
    1059             :     !>  [getQuadErr](@ref pm_quadPack::getQuadErr)<br>
    1060             :     !>
    1061             :     !>  \example{GK31}
    1062             :     !>  \include{lineno} example/pm_quadPack/GK31/main.F90
    1063             :     !>  \compilef{GK31}
    1064             :     !>  \output{GK31}
    1065             :     !>  \include{lineno} example/pm_quadPack/GK31/main.out.F90
    1066             :     !>
    1067             :     !>  \test
    1068             :     !>  [test_pm_quadPack](@ref test_pm_quadPack)
    1069             :     !>
    1070             :     !>  \finmain{GK31}
    1071             :     !>
    1072             :     !>  \author
    1073             :     !>  \AmirShahmoradi, September 1, 2017, 12:00 AM, Institute for Computational Engineering and Sciences (ICES), The University of Texas at Austin
    1074             :     type(GK31_type) , parameter :: GK31 = GK31_type()
    1075             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    1076             :     !DIR$ ATTRIBUTES DLLEXPORT :: GK31
    1077             : #endif
    1078             : 
    1079             :     !>  \brief
    1080             :     !>  A vector of type `real` of the highest-precision kind available by the processor,
    1081             :     !>  containing the abscissas of the 15-points Gauss quadrature rule.
    1082             :     !>
    1083             :     !>  \see
    1084             :     !>  [nodeG15](@ref pm_quadPack::nodeG15)<br>
    1085             :     !>  [nodeK31](@ref pm_quadPack::nodeK31)<br>
    1086             :     !>  [weightG15](@ref pm_quadPack::weightG15)<br>
    1087             :     !>  [weightK31](@ref pm_quadPack::weightK31)<br>
    1088             :     !>  [getQuadGK](@ref pm_quadPack::getQuadGK)<br>
    1089             :     !>  [getQuadErr](@ref pm_quadPack::getQuadErr)<br>
    1090             :     !>
    1091             :     !>  \test
    1092             :     !>  [test_pm_quadPack](@ref test_pm_quadPack)
    1093             :     !>
    1094             :     !>  \finmain{nodeG15}
    1095             :     !>
    1096             :     !>  \author
    1097             :     !>  \AmirShahmoradi, September 1, 2017, 12:00 AM, Institute for Computational Engineering and Sciences (ICES), The University of Texas at Austin
    1098             :     real(RKB)   , parameter :: nodeG15(8) = &
    1099             :     [ 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00_RKB &
    1100             :     , 2.0119409399743452230062830339459620781283645446263767961594972460994823900302018760183625806752105908967902257386509e-01_RKB &
    1101             :     , 3.9415134707756336989720737098104546836275277615869825503116534395160895778696141797549711416165976202589352169635648e-01_RKB &
    1102             :     , 5.7097217260853884753722673725391064123838639628274960485326541705419537986975857948341462856982614477912646497026257e-01_RKB &
    1103             :     , 7.2441773136017004741618605461393800963089929458410256355142342070412378167792521899610109760313432626923598549381925e-01_RKB &
    1104             :     , 8.4820658341042721620064832077421685136625617473699263409572755876067507517414548519760771975082148085090373835713340e-01_RKB &
    1105             :     , 9.3727339240070590430775894771020947124399627351530445790136307635020297379704552795054758617426808659746824044603157e-01_RKB &
    1106             :     , 9.8799251802048542848956571858661258114697281712376148999999751558738843736901942471272205036831914497667516843990079e-01_RKB ]
    1107             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    1108             :     !DIR$ ATTRIBUTES DLLEXPORT :: nodeG15
    1109             : #endif
    1110             : 
    1111             :     !>  \brief
    1112             :     !>  A vector of type `real` of the highest-precision kind available by the processor,
    1113             :     !>  containing the weights of the 15-points Gauss quadrature rule.
    1114             :     !>
    1115             :     !>  \see
    1116             :     !>  [nodeG15](@ref pm_quadPack::nodeG15)<br>
    1117             :     !>  [nodeK31](@ref pm_quadPack::nodeK31)<br>
    1118             :     !>  [weightG15](@ref pm_quadPack::weightG15)<br>
    1119             :     !>  [weightK31](@ref pm_quadPack::weightK31)<br>
    1120             :     !>  [getQuadGK](@ref pm_quadPack::getQuadGK)<br>
    1121             :     !>  [getQuadErr](@ref pm_quadPack::getQuadErr)<br>
    1122             :     !>
    1123             :     !>  \test
    1124             :     !>  [test_pm_quadPack](@ref test_pm_quadPack)
    1125             :     !>
    1126             :     !>  \finmain{weightG15}
    1127             :     !>
    1128             :     !>  \author
    1129             :     !>  \AmirShahmoradi, September 1, 2017, 12:00 AM, Institute for Computational Engineering and Sciences (ICES), The University of Texas at Austin
    1130             :     real(RKB)   , parameter :: weightG15(8) = &
    1131             :     [ 2.0257824192556127288062019996751931483866215800947735679670411605143539875474607409339344071278803213535148267082999e-01_RKB &
    1132             :     , 1.9843148532711157645611832644383932481869255995754199348473792792912479753343426813331499916481782320766020854889310e-01_RKB &
    1133             :     , 1.8616100001556221102680056186642282450622601227792840281549572731001325550269916061894976888609932360539977709001384e-01_RKB &
    1134             :     , 1.6626920581699393355320086048120881113090018009841290732186519056355356321227851771070517429241553621484461540657185e-01_RKB &
    1135             :     , 1.3957067792615431444780479451102832252085027531551124320239112863108844454190781168076825736357133363814908889327664e-01_RKB &
    1136             :     , 1.0715922046717193501186954668586930341554371575810198068702238912187799485231579972568585713760862404439808767837506e-01_RKB &
    1137             :     , 7.0366047488108124709267416450667338466708032754330719825907292914387055512874237044840452066693939219355489858595041e-02_RKB &
    1138             :     , 3.0753241996117268354628393577204417721748144833434074264228285504237189467117168039038770732399404002516991188859473e-02_RKB ]
    1139             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    1140             :     !DIR$ ATTRIBUTES DLLEXPORT ::
    1141             : #endif
    1142             : 
    1143             :     !>  \brief
    1144             :     !>  A vector of type `real` of the highest-precision kind available by the processor,
    1145             :     !>  containing the abscissas of the 31-points Kronrod extension to the 15-points Gauss quadrature rule.
    1146             :     !>
    1147             :     !>  \see
    1148             :     !>  [nodeG15](@ref pm_quadPack::nodeG15)<br>
    1149             :     !>  [nodeK31](@ref pm_quadPack::nodeK31)<br>
    1150             :     !>  [weightG15](@ref pm_quadPack::weightG15)<br>
    1151             :     !>  [weightK31](@ref pm_quadPack::weightK31)<br>
    1152             :     !>  [getQuadGK](@ref pm_quadPack::getQuadGK)<br>
    1153             :     !>  [getQuadErr](@ref pm_quadPack::getQuadErr)<br>
    1154             :     !>
    1155             :     !>  \test
    1156             :     !>  [test_pm_quadPack](@ref test_pm_quadPack)
    1157             :     !>
    1158             :     !>  \finmain{nodeK31}
    1159             :     !>
    1160             :     !>  \author
    1161             :     !>  \AmirShahmoradi, September 1, 2017, 12:00 AM, Institute for Computational Engineering and Sciences (ICES), The University of Texas at Austin
    1162             :     real(RKB)   , parameter :: nodeK31(16) = &
    1163             :     [ 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00_RKB &
    1164             :     , 1.0114206691871749902707423144739233878745105740164180495800189504151097862454083050931321451540380998341273193681967e-01_RKB &
    1165             :     , 2.0119409399743452230062830339459620781283645446263767961594972460994823900302018760183625806752105908967902257386509e-01_RKB &
    1166             :     , 2.9918000715316881216678002426638896266160338274382080184125545738918081102513884467602322020157243563662094470221235e-01_RKB &
    1167             :     , 3.9415134707756336989720737098104546836275277615869825503116534395160895778696141797549711416165976202589352169635648e-01_RKB &
    1168             :     , 4.8508186364023968069365574023235061286633893089407312129367943604080239955167155974371848690848595275551258416303565e-01_RKB &
    1169             :     , 5.7097217260853884753722673725391064123838639628274960485326541705419537986975857948341462856982614477912646497026257e-01_RKB &
    1170             :     , 6.5099674129741697053373589531327469254694822609259966708966160576093305841043840794460394747228060367236079289132544e-01_RKB &
    1171             :     , 7.2441773136017004741618605461393800963089929458410256355142342070412378167792521899610109760313432626923598549381925e-01_RKB &
    1172             :     , 7.9041850144246593296764929481794734686214051995697617332365280643308302974631807059994738664225445530963711137343440e-01_RKB &
    1173             :     , 8.4820658341042721620064832077421685136625617473699263409572755876067507517414548519760771975082148085090373835713340e-01_RKB &
    1174             :     , 8.9726453234408190088250965645449588283177871149442786763972687601078537721473771221195399661919716123038835639691946e-01_RKB &
    1175             :     , 9.3727339240070590430775894771020947124399627351530445790136307635020297379704552795054758617426808659746824044603157e-01_RKB &
    1176             :     , 9.6773907567913913425734797878433722528335733730013163797468062226335804249452174804319385048203118506304424717089291e-01_RKB &
    1177             :     , 9.8799251802048542848956571858661258114697281712376148999999751558738843736901942471272205036831914497667516843990079e-01_RKB &
    1178             :     , 9.9800229869339706028517284015227120907340644231555723034839427970683348682837134566648979907760125278631896777136104e-01_RKB ]
    1179             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    1180             :     !DIR$ ATTRIBUTES DLLEXPORT :: nodeK31
    1181             : #endif
    1182             : 
    1183             :     !>  \brief
    1184             :     !>  A vector of type `real` of the highest-precision kind available by the processor,
    1185             :     !>  containing the weights of the 31-points Kronrod extension to the 15-points Gauss quadrature rule.
    1186             :     !>
    1187             :     !>  \see
    1188             :     !>  [nodeG15](@ref pm_quadPack::nodeG15)<br>
    1189             :     !>  [nodeK31](@ref pm_quadPack::nodeK31)<br>
    1190             :     !>  [weightG15](@ref pm_quadPack::weightG15)<br>
    1191             :     !>  [weightK31](@ref pm_quadPack::weightK31)<br>
    1192             :     !>  [getQuadGK](@ref pm_quadPack::getQuadGK)<br>
    1193             :     !>  [getQuadErr](@ref pm_quadPack::getQuadErr)<br>
    1194             :     !>
    1195             :     !>  \test
    1196             :     !>  [test_pm_quadPack](@ref test_pm_quadPack)
    1197             :     !>
    1198             :     !>  \finmain{weightK31}
    1199             :     !>
    1200             :     !>  \author
    1201             :     !>  \AmirShahmoradi, September 1, 2017, 12:00 AM, Institute for Computational Engineering and Sciences (ICES), The University of Texas at Austin
    1202             :     real(RKB)   , parameter :: weightK31(16) = &
    1203             :     [ 1.0133000701479154901737479276749254677092627259659629246734858372174107615774696665932418050683956749891773195816338e-01_RKB &
    1204             :     , 1.0076984552387559504494666261756972191634838013536373069278929029488122760822761077475060185965408326901925180106227e-01_RKB &
    1205             :     , 9.9173598721791959332393173484603131059567260816713281734860095693651563064308745717056680128223790739026832596087552e-02_RKB &
    1206             :     , 9.6642726983623678505179907627589335136656568630495198973407668882934392359962841826511402504664592185391687490319950e-02_RKB &
    1207             :     , 9.3126598170825321225486872747345718561927881321317330560285879189052002874531855060114908990458716740695847509343865e-02_RKB &
    1208             :     , 8.8564443056211770647275443693774303212266732690655967817996052574877144544749814260718837576325109922207832119243346e-02_RKB &
    1209             :     , 8.3080502823133021038289247286103789601554188253368717607281604875233630643885056057630789228337088859687986285569521e-02_RKB &
    1210             :     , 7.6849680757720378894432777482659006722109101167947000584089097112470821092034084418224731527690291913686588446455555e-02_RKB &
    1211             :     , 6.9854121318728258709520077099147475786045435140671549698798093177992675624987998849748628778570667518643649536771245e-02_RKB &
    1212             :     , 6.2009567800670640285139230960802932190400004210329723569147829395618376206272317333030584268303808639229575334680414e-02_RKB &
    1213             :     , 5.3481524690928087265343147239430296771554760947116739813222888752727413616259625439714812475198987513183153639571249e-02_RKB &
    1214             :     , 4.4589751324764876608227299373279690223256649667921096570980823211805450700059906366455036418897149593261561551176267e-02_RKB &
    1215             :     , 3.5346360791375846222037948478360048122630678992420820868148023340902501837247680978434662724296810081131106317333086e-02_RKB &
    1216             :     , 2.5460847326715320186874001019653359397271745046864640508377984982400903447009185267605205778819712848080691366407461e-02_RKB &
    1217             :     , 1.5007947329316122538374763075807268094639436437387634979291759700896494746154334398961710227490402528151677469993935e-02_RKB &
    1218             :     , 5.3774798729233489877920514301276498183080402431284197876486169536848635554354599213793172596490038991436925569025913e-03_RKB ]
    1219             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    1220             :     !DIR$ ATTRIBUTES DLLEXPORT :: weightK31
    1221             : #endif
    1222             : 
    1223             : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1224             : 
    1225             :     !>  \brief
    1226             :     !>  This is the indicator type for generating instances of objects that indicate the use of 20-point Gauss-Legendre quadrature with 41-point Kronrod
    1227             :     !>  extension formulae as the drivers in the (Adaptive) Global Gauss-Kronrod Quadrature of [getQuadGK](@ref pm_quadPack::getQuadGK).
    1228             :     !>
    1229             :     !>  \details
    1230             :     !>  This is an empty derived type that exists solely for generating unique objects that are distinguishable
    1231             :     !>  as input arguments to procedures under the generic interface [getQuadGK](@ref pm_quadPack::getQuadGK).
    1232             :     !>
    1233             :     !>  \interface{GK41_type}
    1234             :     !>  \code{.F90}
    1235             :     !>
    1236             :     !>      use pm_quadPack, only: GK41_type
    1237             :     !>      type(GK41_type) :: GK41
    1238             :     !>
    1239             :     !>  \endcode
    1240             :     !>
    1241             :     !>  \see
    1242             :     !>  [GK15_type](@ref pm_quadPack::GK15_type)<br>
    1243             :     !>  [GK21_type](@ref pm_quadPack::GK21_type)<br>
    1244             :     !>  [GK31_type](@ref pm_quadPack::GK31_type)<br>
    1245             :     !>  [GK41_type](@ref pm_quadPack::GK41_type)<br>
    1246             :     !>  [GK51_type](@ref pm_quadPack::GK51_type)<br>
    1247             :     !>  [GK61_type](@ref pm_quadPack::GK61_type)<br>
    1248             :     !>  [getQuadGK](@ref pm_quadPack::getQuadGK)<br>
    1249             :     !>  [getQuadErr](@ref pm_quadPack::getQuadErr)<br>
    1250             :     !>
    1251             :     !>  \example{GK41_type}
    1252             :     !>  \include{lineno} example/pm_quadPack/GK41/main.F90
    1253             :     !>  \compilef{GK41_type}
    1254             :     !>  \output{GK41_type}
    1255             :     !>  \include{lineno} example/pm_quadPack/GK41/main.out.F90
    1256             :     !>
    1257             :     !>  \test
    1258             :     !>  [test_pm_quadPack](@ref test_pm_quadPack)
    1259             :     !>
    1260             :     !>  \finmain{GK41_type}
    1261             :     !>
    1262             :     !>  \author
    1263             :     !>  \AmirShahmoradi, September 1, 2017, 12:00 AM, Institute for Computational Engineering and Sciences (ICES), The University of Texas at Austin
    1264             :     type :: GK41_type
    1265             :     end type
    1266             : 
    1267             :     !>  \brief
    1268             :     !>  The scalar constant object of type [GK41_type](@ref pm_quadPack::GK41_type) that indicates the use of 20-point Gauss-Legendre quadrature
    1269             :     !>  with 41-point Kronrod extension formulae as the drivers in the (Adaptive) Global Gauss-Kronrod Quadrature of [getQuadGK](@ref pm_quadPack::getQuadGK).
    1270             :     !>
    1271             :     !>  \see
    1272             :     !>  [GK15](@ref pm_quadPack::GK15)<br>
    1273             :     !>  [GK21](@ref pm_quadPack::GK21)<br>
    1274             :     !>  [GK31](@ref pm_quadPack::GK31)<br>
    1275             :     !>  [GK41](@ref pm_quadPack::GK41)<br>
    1276             :     !>  [GK51](@ref pm_quadPack::GK51)<br>
    1277             :     !>  [GK61](@ref pm_quadPack::GK61)<br>
    1278             :     !>  [getQuadGK](@ref pm_quadPack::getQuadGK)<br>
    1279             :     !>  [getQuadErr](@ref pm_quadPack::getQuadErr)<br>
    1280             :     !>
    1281             :     !>  \example{GK41}
    1282             :     !>  \include{lineno} example/pm_quadPack/GK41/main.F90
    1283             :     !>  \compilef{GK41}
    1284             :     !>  \output{GK41}
    1285             :     !>  \include{lineno} example/pm_quadPack/GK41/main.out.F90
    1286             :     !>
    1287             :     !>  \test
    1288             :     !>  [test_pm_quadPack](@ref test_pm_quadPack)
    1289             :     !>
    1290             :     !>  \finmain{GK41}
    1291             :     !>
    1292             :     !>  \author
    1293             :     !>  \AmirShahmoradi, September 1, 2017, 12:00 AM, Institute for Computational Engineering and Sciences (ICES), The University of Texas at Austin
    1294             :     type(GK41_type) , parameter :: GK41 = GK41_type()
    1295             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    1296             :     !DIR$ ATTRIBUTES DLLEXPORT :: GK41
    1297             : #endif
    1298             : 
    1299             :     !>  \brief
    1300             :     !>  A vector of type `real` of the highest-precision kind available by the processor,
    1301             :     !>  containing the abscissas of the 21-points Gauss quadrature rule.
    1302             :     !>
    1303             :     !>  \see
    1304             :     !>  [nodeG20](@ref pm_quadPack::nodeG20)<br>
    1305             :     !>  [nodeK41](@ref pm_quadPack::nodeK41)<br>
    1306             :     !>  [weightG20](@ref pm_quadPack::weightG20)<br>
    1307             :     !>  [weightK41](@ref pm_quadPack::weightK41)<br>
    1308             :     !>  [getQuadGK](@ref pm_quadPack::getQuadGK)<br>
    1309             :     !>  [getQuadErr](@ref pm_quadPack::getQuadErr)<br>
    1310             :     !>
    1311             :     !>  \test
    1312             :     !>  [test_pm_quadPack](@ref test_pm_quadPack)
    1313             :     !>
    1314             :     !>  \finmain{nodeG20}
    1315             :     !>
    1316             :     !>  \author
    1317             :     !>  \AmirShahmoradi, September 1, 2017, 12:00 AM, Institute for Computational Engineering and Sciences (ICES), The University of Texas at Austin
    1318             :     real(RKB)   , parameter :: nodeG20(10) = &
    1319             :     [ 7.6526521133497333754640409398838211004796266813497500804795244384256342048336978241545114181556215606998505646364133e-02_RKB &
    1320             :     , 2.2778585114164507808049619536857462474308893768292747231463573920717134186355582779495212519096870803177373131560430e-01_RKB &
    1321             :     , 3.7370608871541956067254817702492723739574632170568271182794861351564576437305952789589568363453337894476772208852815e-01_RKB &
    1322             :     , 5.1086700195082709800436405095525099842549132920242683347234861989473497039076572814403168305086777919832943068843526e-01_RKB &
    1323             :     , 6.3605368072651502545283669622628593674338911679936846393944662254654126258543013255870319549576130658211710937772596e-01_RKB &
    1324             :     , 7.4633190646015079261430507035564159031073067956917644413954590606853535503815506468110411362064752061238490065167656e-01_RKB &
    1325             :     , 8.3911697182221882339452906170152068532962936506563737325249272553286109399932480991922934056595764922060422035306914e-01_RKB &
    1326             :     , 9.1223442825132590586775244120329811304918479742369177479588221915807089120871907893644472619292138737876039175464603e-01_RKB &
    1327             :     , 9.6397192727791379126766613119727722191206032780618885606353759389204158078438305698001812525596471563131043491596423e-01_RKB &
    1328             :     , 9.9312859918509492478612238847132027822264713090165589614818413121798471762775378083944940249657220927472894034724419e-01_RKB ]
    1329             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    1330             :     !DIR$ ATTRIBUTES DLLEXPORT :: nodeG20
    1331             : #endif
    1332             : 
    1333             :     !>  \brief
    1334             :     !>  A vector of type `real` of the highest-precision kind available by the processor,
    1335             :     !>  containing the weights of the 20-points Gauss quadrature rule.
    1336             :     !>
    1337             :     !>  \see
    1338             :     !>  [nodeG20](@ref pm_quadPack::nodeG20)<br>
    1339             :     !>  [nodeK41](@ref pm_quadPack::nodeK41)<br>
    1340             :     !>  [weightG20](@ref pm_quadPack::weightG20)<br>
    1341             :     !>  [weightK41](@ref pm_quadPack::weightK41)<br>
    1342             :     !>  [getQuadGK](@ref pm_quadPack::getQuadGK)<br>
    1343             :     !>  [getQuadErr](@ref pm_quadPack::getQuadErr)<br>
    1344             :     !>
    1345             :     !>  \test
    1346             :     !>  [test_pm_quadPack](@ref test_pm_quadPack)
    1347             :     !>
    1348             :     !>  \finmain{weightG20}
    1349             :     !>
    1350             :     !>  \author
    1351             :     !>  \AmirShahmoradi, September 1, 2017, 12:00 AM, Institute for Computational Engineering and Sciences (ICES), The University of Texas at Austin
    1352             :     real(RKB)   , parameter :: weightG20(10) = &
    1353             :     [ 1.5275338713072585069808433195509759349194864511237859727470104981759745316273778153557248783650390593544001842813788e-01_RKB &
    1354             :     , 1.4917298647260374678782873700196943669267990408136831649621121780984442259558678069396132603521048105170913854567338e-01_RKB &
    1355             :     , 1.4209610931838205132929832506716493303451541339202030333736708298382808749793436761694922428320058260133068573666201e-01_RKB &
    1356             :     , 1.3168863844917662689849449974816313491611051114698352699643649370885435642948093314355797518397262924510598005463625e-01_RKB &
    1357             :     , 1.1819453196151841731237737771138228700504121954896877544688995202017474835051151630572868782581901744606267543092317e-01_RKB &
    1358             :     , 1.0193011981724043503675013548034987616669165602339255626197161619685232202539434647534931576947985821375859035525483e-01_RKB &
    1359             :     , 8.3276741576704748724758143222046206100177828583163290744882060785693082894079419471375190843790839349096116111932764e-02_RKB &
    1360             :     , 6.2672048334109063569506535187041606351601076578436364099584345437974811033665678644563766056832203512603253399592073e-02_RKB &
    1361             :     , 4.0601429800386941331039952274932109879090639989951536817606854561832296750987328295538920623044384976189825709675075e-02_RKB &
    1362             :     , 1.7614007139152118311861962351852816362143105543336732524349326677348419259621847817403105542146097668703716227512570e-02_RKB ]
    1363             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    1364             :     !DIR$ ATTRIBUTES DLLEXPORT :: weightG20
    1365             : #endif
    1366             : 
    1367             :     !>  \brief
    1368             :     !>  A vector of type `real` of the highest-precision kind available by the processor,
    1369             :     !>  containing the abscissas of the 41-points Kronrod extension to the 20-points Gauss quadrature rule.
    1370             :     !>
    1371             :     !>  \see
    1372             :     !>  [nodeG20](@ref pm_quadPack::nodeG20)<br>
    1373             :     !>  [nodeK41](@ref pm_quadPack::nodeK41)<br>
    1374             :     !>  [weightG20](@ref pm_quadPack::weightG20)<br>
    1375             :     !>  [weightK41](@ref pm_quadPack::weightK41)<br>
    1376             :     !>  [getQuadGK](@ref pm_quadPack::getQuadGK)<br>
    1377             :     !>  [getQuadErr](@ref pm_quadPack::getQuadErr)<br>
    1378             :     !>
    1379             :     !>  \test
    1380             :     !>  [test_pm_quadPack](@ref test_pm_quadPack)
    1381             :     !>
    1382             :     !>  \finmain{nodeK41}
    1383             :     !>
    1384             :     !>  \author
    1385             :     !>  \AmirShahmoradi, September 1, 2017, 12:00 AM, Institute for Computational Engineering and Sciences (ICES), The University of Texas at Austin
    1386             :     real(RKB)   , parameter :: nodeK41(21) = &
    1387             :     [ 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00_RKB &
    1388             :     , 7.6526521133497333754640409398838211004796266813497500804795244384256342048336978241545114181556215606998505646364133e-02_RKB &
    1389             :     , 1.5260546524092267550522024102267752791167622481841730660174156703809133685751696356987995886397049724808931527012542e-01_RKB &
    1390             :     , 2.2778585114164507808049619536857462474308893768292747231463573920717134186355582779495212519096870803177373131560430e-01_RKB &
    1391             :     , 3.0162786811491300432055535685859226061539650501373092456926374427956957435978384116066498234762220215751079886015902e-01_RKB &
    1392             :     , 3.7370608871541956067254817702492723739574632170568271182794861351564576437305952789589568363453337894476772208852815e-01_RKB &
    1393             :     , 4.4359317523872510319999221349264010784010101082300309613315028346299543059315258601993479156987847429893626854030516e-01_RKB &
    1394             :     , 5.1086700195082709800436405095525099842549132920242683347234861989473497039076572814403168305086777919832943068843526e-01_RKB &
    1395             :     , 5.7514044681971031534294603658642513281381264014771682537415885495717468074720062012357788489049470208285175093670561e-01_RKB &
    1396             :     , 6.3605368072651502545283669622628593674338911679936846393944662254654126258543013255870319549576130658211710937772596e-01_RKB &
    1397             :     , 6.9323765633475138480549071184593153338642585141021417904687378454301191710739219011546672416325022748282227809465165e-01_RKB &
    1398             :     , 7.4633190646015079261430507035564159031073067956917644413954590606853535503815506468110411362064752061238490065167656e-01_RKB &
    1399             :     , 7.9504142883755119835063883327278794295938959911578029703855163894322697871710382866701777890251824617748545658564370e-01_RKB &
    1400             :     , 8.3911697182221882339452906170152068532962936506563737325249272553286109399932480991922934056595764922060422035306914e-01_RKB &
    1401             :     , 8.7827681125228197607744299511307846671124526828251164853898086998248145904743220740840261624245683876748360309079747e-01_RKB &
    1402             :     , 9.1223442825132590586775244120329811304918479742369177479588221915807089120871907893644472619292138737876039175464603e-01_RKB &
    1403             :     , 9.4082263383175475351998272221244338027429557377965291059536839973186796006557571220888218676776618448841584569497535e-01_RKB &
    1404             :     , 9.6397192727791379126766613119727722191206032780618885606353759389204158078438305698001812525596471563131043491596423e-01_RKB &
    1405             :     , 9.8150787745025025919334299472021694456725093981023759869077533318793098857465723460898060491887511355706497739384103e-01_RKB &
    1406             :     , 9.9312859918509492478612238847132027822264713090165589614818413121798471762775378083944940249657220927472894034724419e-01_RKB &
    1407             :     , 9.9885903158827766383831557654586300999957020432629666866666860339324411793311982967839129772854179884971700274369367e-01_RKB ]
    1408             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    1409             :     !DIR$ ATTRIBUTES DLLEXPORT :: nodeK41
    1410             : #endif
    1411             : 
    1412             :     !>  \brief
    1413             :     !>  A vector of type `real` of the highest-precision kind available by the processor,
    1414             :     !>  containing the weights of the 41-points Kronrod extension to the 20-points Gauss quadrature rule.
    1415             :     !>
    1416             :     !>  \see
    1417             :     !>  [nodeG20](@ref pm_quadPack::nodeG20)<br>
    1418             :     !>  [nodeK41](@ref pm_quadPack::nodeK41)<br>
    1419             :     !>  [weightG20](@ref pm_quadPack::weightG20)<br>
    1420             :     !>  [weightK41](@ref pm_quadPack::weightK41)<br>
    1421             :     !>  [getQuadGK](@ref pm_quadPack::getQuadGK)<br>
    1422             :     !>  [getQuadErr](@ref pm_quadPack::getQuadErr)<br>
    1423             :     !>
    1424             :     !>  \test
    1425             :     !>  [test_pm_quadPack](@ref test_pm_quadPack)
    1426             :     !>
    1427             :     !>  \finmain{weightK41}
    1428             :     !>
    1429             :     !>  \author
    1430             :     !>  \AmirShahmoradi, September 1, 2017, 12:00 AM, Institute for Computational Engineering and Sciences (ICES), The University of Texas at Austin
    1431             :     real(RKB)   , parameter :: weightK41(21) = &
    1432             :     [ 7.6600711917999656445049901530101740827932500628670118055485349620314721456712029449597396569857880493210849110825276e-02_RKB &
    1433             :     , 7.6377867672080736705502835038061001800801036764945996714946431116936745542061941050008345047482501253320401746334511e-02_RKB &
    1434             :     , 7.5704497684556674659542775376616558263363155900414326194855223272348838596099414841886740468379707283366777797425290e-02_RKB &
    1435             :     , 7.4582875400499188986581418362487528616116493572092273080047040726969899567887364227664202642942357104526915332274625e-02_RKB &
    1436             :     , 7.3030690332786667495189417658913112760626845234552742380174250771849743831660040966804802312464527721645765620253776e-02_RKB &
    1437             :     , 7.1054423553444068305790361723210167412912159322210143921628270586407381879789525901086146473278095159807542174985045e-02_RKB &
    1438             :     , 6.8648672928521619345623411885367801715489704958239860400434264173923806029589970941711224257967651039544669425313433e-02_RKB &
    1439             :     , 6.5834597133618422111563556969397943147223506343381443709751749639944420314384296347503523810096842402960802728781816e-02_RKB &
    1440             :     , 6.2653237554781168025870122174254980585819744698897886186553324157100424088919284503451596742588386343548162830898103e-02_RKB &
    1441             :     , 5.9111400880639572374967220648594217136419365977042191748388047204015262840407696611508732839851952697839735487615776e-02_RKB &
    1442             :     , 5.5195105348285994744832372419777329194753456228153116909812131213177827707884692917845453999535518818940813085110223e-02_RKB &
    1443             :     , 5.0944573923728691932707670050344948664836365809262579747517140086119113476866735641054822574173198900379392130050979e-02_RKB &
    1444             :     , 4.6434821867497674720231880926107516842127071007077929289994127933243222585938804392953931185146446072587020288747981e-02_RKB &
    1445             :     , 4.1668873327973686263788305936894738043960843153010324860966353235271889596379726462208702081068715463576895020003842e-02_RKB &
    1446             :     , 3.6600169758200798030557240707211008487453496747498001651070009441973280061489266074044986901436324295513243878212345e-02_RKB &
    1447             :     , 3.1287306777032798958543119323800737887769280362813337359554598005322423266047996771926031069705049476071896145456496e-02_RKB &
    1448             :     , 2.5882133604951158834505067096153142999479118048674944526997797755374306421629440393392427198869345793286369198147609e-02_RKB &
    1449             :     , 2.0388373461266523598010231432754705122838627940185929365371868214433006532030353671253640300679157504987977281782909e-02_RKB &
    1450             :     , 1.4626169256971252983787960308868356163881050162249770342103474631076960029748751959380482484308382288261238476948520e-02_RKB &
    1451             :     , 8.6002698556429421986617879501023472521289227667077976622450602031426535362696437838448828009554532025301579670206091e-03_RKB &
    1452             :     , 3.0735837185205315012182932460309874880335046882543449198461628212114333665590378156706265241414469306987988292234740e-03_RKB ]
    1453             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    1454             :     !DIR$ ATTRIBUTES DLLEXPORT :: weightK41
    1455             : #endif
    1456             : 
    1457             : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1458             : 
    1459             :     !>  \brief
    1460             :     !>  This is the indicator type for generating instances of objects that indicate the use of 25-point Gauss-Legendre quadrature with 51-point Kronrod
    1461             :     !>  extension formulae as the drivers in the (Adaptive) Global Gauss-Kronrod Quadrature of [getQuadGK](@ref pm_quadPack::getQuadGK).
    1462             :     !>
    1463             :     !>  \details
    1464             :     !>  This is an empty derived type that exists solely for generating unique objects that are distinguishable
    1465             :     !>  as input arguments to procedures under the generic interface [getQuadGK](@ref pm_quadPack::getQuadGK).
    1466             :     !>
    1467             :     !>  \interface{GK51_type}
    1468             :     !>  \code{.F90}
    1469             :     !>
    1470             :     !>      use pm_quadPack, only: GK51_type
    1471             :     !>      type(GK51_type) :: GK51
    1472             :     !>
    1473             :     !>  \endcode
    1474             :     !>
    1475             :     !>  \see
    1476             :     !>  [GK15_type](@ref pm_quadPack::GK15_type)<br>
    1477             :     !>  [GK21_type](@ref pm_quadPack::GK21_type)<br>
    1478             :     !>  [GK31_type](@ref pm_quadPack::GK31_type)<br>
    1479             :     !>  [GK41_type](@ref pm_quadPack::GK41_type)<br>
    1480             :     !>  [GK51_type](@ref pm_quadPack::GK51_type)<br>
    1481             :     !>  [GK61_type](@ref pm_quadPack::GK61_type)<br>
    1482             :     !>  [getQuadGK](@ref pm_quadPack::getQuadGK)<br>
    1483             :     !>  [getQuadErr](@ref pm_quadPack::getQuadErr)<br>
    1484             :     !>
    1485             :     !>  \example{GK51_type}
    1486             :     !>  \include{lineno} example/pm_quadPack/GK51/main.F90
    1487             :     !>  \compilef{GK51_type}
    1488             :     !>  \output{GK51_type}
    1489             :     !>  \include{lineno} example/pm_quadPack/GK51/main.out.F90
    1490             :     !>
    1491             :     !>  \test
    1492             :     !>  [test_pm_quadPack](@ref test_pm_quadPack)
    1493             :     !>
    1494             :     !>  \finmain{GK51_type}
    1495             :     !>
    1496             :     !>  \author
    1497             :     !>  \AmirShahmoradi, September 1, 2017, 12:00 AM, Institute for Computational Engineering and Sciences (ICES), The University of Texas at Austin
    1498             :     type :: GK51_type
    1499             :     end type
    1500             : 
    1501             :     !>  \brief
    1502             :     !>  The scalar constant object of type [GK51_type](@ref pm_quadPack::GK51_type) that indicates the use of 25-point Gauss-Legendre quadrature
    1503             :     !>  with 51-point Kronrod extension formulae as the drivers in the (Adaptive) Global Gauss-Kronrod Quadrature of [getQuadGK](@ref pm_quadPack::getQuadGK).
    1504             :     !>
    1505             :     !>  \see
    1506             :     !>  [GK15](@ref pm_quadPack::GK15)<br>
    1507             :     !>  [GK21](@ref pm_quadPack::GK21)<br>
    1508             :     !>  [GK31](@ref pm_quadPack::GK31)<br>
    1509             :     !>  [GK41](@ref pm_quadPack::GK41)<br>
    1510             :     !>  [GK51](@ref pm_quadPack::GK51)<br>
    1511             :     !>  [GK61](@ref pm_quadPack::GK61)<br>
    1512             :     !>  [getQuadGK](@ref pm_quadPack::getQuadGK)<br>
    1513             :     !>  [getQuadErr](@ref pm_quadPack::getQuadErr)<br>
    1514             :     !>
    1515             :     !>  \example{GK51}
    1516             :     !>  \include{lineno} example/pm_quadPack/GK51/main.F90
    1517             :     !>  \compilef{GK51}
    1518             :     !>  \output{GK51}
    1519             :     !>  \include{lineno} example/pm_quadPack/GK51/main.out.F90
    1520             :     !>
    1521             :     !>  \test
    1522             :     !>  [test_pm_quadPack](@ref test_pm_quadPack)
    1523             :     !>
    1524             :     !>  \finmain{GK51}
    1525             :     !>
    1526             :     !>  \author
    1527             :     !>  \AmirShahmoradi, September 1, 2017, 12:00 AM, Institute for Computational Engineering and Sciences (ICES), The University of Texas at Austin
    1528             :     type(GK51_type) , parameter :: GK51 = GK51_type()
    1529             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    1530             :     !DIR$ ATTRIBUTES DLLEXPORT :: GK51
    1531             : #endif
    1532             : 
    1533             :     !>  \brief
    1534             :     !>  A vector of type `real` of the highest-precision kind available by the processor,
    1535             :     !>  containing the abscissas of the 25-points Gauss quadrature rule.
    1536             :     !>
    1537             :     !>  \see
    1538             :     !>  [nodeG25](@ref pm_quadPack::nodeG25)<br>
    1539             :     !>  [nodeK51](@ref pm_quadPack::nodeK51)<br>
    1540             :     !>  [weightG25](@ref pm_quadPack::weightG25)<br>
    1541             :     !>  [weightK51](@ref pm_quadPack::weightK51)<br>
    1542             :     !>  [getQuadGK](@ref pm_quadPack::getQuadGK)<br>
    1543             :     !>  [getQuadErr](@ref pm_quadPack::getQuadErr)<br>
    1544             :     !>
    1545             :     !>  \test
    1546             :     !>  [test_pm_quadPack](@ref test_pm_quadPack)
    1547             :     !>
    1548             :     !>  \finmain{nodeG25}
    1549             :     !>
    1550             :     !>  \author
    1551             :     !>  \AmirShahmoradi, September 1, 2017, 12:00 AM, Institute for Computational Engineering and Sciences (ICES), The University of Texas at Austin
    1552             :     real(RKB)   , parameter :: nodeG25(13) = &
    1553             :     [ 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00_RKB &
    1554             :     , 1.2286469261071039638735981880803680553220534604978373842389353789270883496885841582643884994633105537597765980412320e-01_RKB &
    1555             :     , 2.4386688372098843204519036279745158640563315632598447642113565325038747278585595067977636776325034060327548499765742e-01_RKB &
    1556             :     , 3.6117230580938783773582173012764066742207834704337506979457877784674538239569654860329531506093761400789294612122812e-01_RKB &
    1557             :     , 4.7300273144571496052218211500919204133181773846162729090723082769560327584128603010315684778279363544192787010704498e-01_RKB &
    1558             :     , 5.7766293024122296772368984161265406739573503929151825664548350776102301275263202227671659646579649084013116066120581e-01_RKB &
    1559             :     , 6.7356636847346836448512063324762217588341672807274931705965696177828773684928421158196368568030932194044282149314388e-01_RKB &
    1560             :     , 7.5925926303735763057728286520436097638752201889833412091838973544501862882026240760763679724185230331463919586229073e-01_RKB &
    1561             :     , 8.3344262876083400142102110869356956946096411382352078602086471546171813247709012525322973947759168107133491065937347e-01_RKB &
    1562             :     , 8.9499199787827536885104200678280495417455484975358390306170168295917151090119945137118600693039178162093726882638296e-01_RKB &
    1563             :     , 9.4297457122897433941401116965847053190520157060899014192745249713729532254404926130890521815127348327109666786665572e-01_RKB &
    1564             :     , 9.7666392145951751149831538647959406774537055531440674467098742731616386753588055389644670948300617866819865983054648e-01_RKB &
    1565             :     , 9.9555696979049809790878494689390161725756264940480817121080493113293348134372793448728802635294700756868258870429256e-01_RKB ]
    1566             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    1567             :     !DIR$ ATTRIBUTES DLLEXPORT :: nodeG25
    1568             : #endif
    1569             : 
    1570             :     !>  \brief
    1571             :     !>  A vector of type `real` of the highest-precision kind available by the processor,
    1572             :     !>  containing the weights of the 25-points Gauss quadrature rule.
    1573             :     !>
    1574             :     !>  \see
    1575             :     !>  [nodeG25](@ref pm_quadPack::nodeG25)<br>
    1576             :     !>  [nodeK51](@ref pm_quadPack::nodeK51)<br>
    1577             :     !>  [weightG25](@ref pm_quadPack::weightG25)<br>
    1578             :     !>  [weightK51](@ref pm_quadPack::weightK51)<br>
    1579             :     !>  [getQuadGK](@ref pm_quadPack::getQuadGK)<br>
    1580             :     !>  [getQuadErr](@ref pm_quadPack::getQuadErr)<br>
    1581             :     !>
    1582             :     !>  \test
    1583             :     !>  [test_pm_quadPack](@ref test_pm_quadPack)
    1584             :     !>
    1585             :     !>  \finmain{weightG25}
    1586             :     !>
    1587             :     !>  \author
    1588             :     !>  \AmirShahmoradi, September 1, 2017, 12:00 AM, Institute for Computational Engineering and Sciences (ICES), The University of Texas at Austin
    1589             :     real(RKB)   , parameter :: weightG25(13) = &
    1590             :     [ 1.2317605372671545120390287307905014243823362751815166539135219731691200794926142128460112517504958377310054583945994e-01_RKB &
    1591             :     , 1.2224244299031004168895951894585150583505924756305904090758008223203896721918010243033540891078906637115620156845304e-01_RKB &
    1592             :     , 1.1945576353578477222817812651290104739017670141372642551958788133518409022018773502442869720975271321374348568426235e-01_RKB &
    1593             :     , 1.1485825914571164833932554586955580864093619166818014959151499003148279667112542256534429898558156273250513652351744e-01_RKB &
    1594             :     , 1.0851962447426365311609395705011661934007758798672201615649430734883929279360844269339768350029654172135832773427565e-01_RKB &
    1595             :     , 1.0053594906705064420220689039268582698846609452814190706986904199941294815904602968195565620373258211755226681206658e-01_RKB &
    1596             :     , 9.1028261982963649811497220702891653380992558959334310970483768967017384678410526902484398142953718885872521590850372e-02_RKB &
    1597             :     , 8.0140700335001018013234959669111302290225732853675893716201462973612828934801289559457377714225318048243957479325813e-02_RKB &
    1598             :     , 6.8038333812356917207187185656707968554709494354636562615071226410003654051711473106651522969481873733098761760660898e-02_RKB &
    1599             :     , 5.4904695975835191925936891540473324160109985553111349048508498244593774678436511895711924079433444763756746828817613e-02_RKB &
    1600             :     , 4.0939156701306312655623487711645953660845783364104346504698414899297432880215512770478971055110424130123527015425511e-02_RKB &
    1601             :     , 2.6354986615032137261901815295299144935963281703322468755366165783870934008879499371529821528172928890350362464605104e-02_RKB &
    1602             :     , 1.1393798501026287947902964113234773603320526292909696448948061116189891729766743355923677112945033505688431618009664e-02_RKB ]
    1603             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    1604             :     !DIR$ ATTRIBUTES DLLEXPORT :: weightG25
    1605             : #endif
    1606             : 
    1607             :     !>  \brief
    1608             :     !>  A vector of type `real` of the highest-precision kind available by the processor,
    1609             :     !>  containing the abscissas of the 51-points Kronrod extension to the 25-points Gauss quadrature rule.
    1610             :     !>
    1611             :     !>  \see
    1612             :     !>  [nodeG25](@ref pm_quadPack::nodeG25)<br>
    1613             :     !>  [nodeK51](@ref pm_quadPack::nodeK51)<br>
    1614             :     !>  [weightG25](@ref pm_quadPack::weightG25)<br>
    1615             :     !>  [weightK51](@ref pm_quadPack::weightK51)<br>
    1616             :     !>  [getQuadGK](@ref pm_quadPack::getQuadGK)<br>
    1617             :     !>  [getQuadErr](@ref pm_quadPack::getQuadErr)<br>
    1618             :     !>
    1619             :     !>  \test
    1620             :     !>  [test_pm_quadPack](@ref test_pm_quadPack)
    1621             :     !>
    1622             :     !>  \finmain{nodeK51}
    1623             :     !>
    1624             :     !>  \author
    1625             :     !>  \AmirShahmoradi, September 1, 2017, 12:00 AM, Institute for Computational Engineering and Sciences (ICES), The University of Texas at Austin
    1626             :     real(RKB)   , parameter :: nodeK51(26) = &
    1627             :     [ 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00_RKB &
    1628             :     , 6.1544483005685078886546392366796631281724348039823545274305431751687279361558658545141048781022691067898008423227288e-02_RKB &
    1629             :     , 1.2286469261071039638735981880803680553220534604978373842389353789270883496885841582643884994633105537597765980412320e-01_RKB &
    1630             :     , 1.8371893942104889201596988875952841578528447834990555215034512653236752851109815617651867160645591242103823539931527e-01_RKB &
    1631             :     , 2.4386688372098843204519036279745158640563315632598447642113565325038747278585595067977636776325034060327548499765742e-01_RKB &
    1632             :     , 3.0308953893110783016747890998033932920041937876655194685731578452573120372337209717349617882111662416355753711853559e-01_RKB &
    1633             :     , 3.6117230580938783773582173012764066742207834704337506979457877784674538239569654860329531506093761400789294612122812e-01_RKB &
    1634             :     , 4.1788538219303774885181439459457248709336998140069528034955785068796932076966599548717224205109797297615032607570119e-01_RKB &
    1635             :     , 4.7300273144571496052218211500919204133181773846162729090723082769560327584128603010315684778279363544192787010704498e-01_RKB &
    1636             :     , 5.2632528433471918259962377815801017803683252320191114313002425180471455022502695302371008520604638341970901082293650e-01_RKB &
    1637             :     , 5.7766293024122296772368984161265406739573503929151825664548350776102301275263202227671659646579649084013116066120581e-01_RKB &
    1638             :     , 6.2681009901031741278812268162451788101954628995068510806525222008437260184181183053045236423845198752346149030569920e-01_RKB &
    1639             :     , 6.7356636847346836448512063324762217588341672807274931705965696177828773684928421158196368568030932194044282149314388e-01_RKB &
    1640             :     , 7.1776640681308438818665407977329778059771167555515582423493486823991612820974965089522905953765860328116692570706602e-01_RKB &
    1641             :     , 7.5925926303735763057728286520436097638752201889833412091838973544501862882026240760763679724185230331463919586229073e-01_RKB &
    1642             :     , 7.9787379799850005941041090499430656940863230009338267661706934499488650817643824077118950314443984031474353711531825e-01_RKB &
    1643             :     , 8.3344262876083400142102110869356956946096411382352078602086471546171813247709012525322973947759168107133491065937347e-01_RKB &
    1644             :     , 8.6584706529327559544899696958834008820284409402823690293965213246691432948180280120756708738064779055576005302835351e-01_RKB &
    1645             :     , 8.9499199787827536885104200678280495417455484975358390306170168295917151090119945137118600693039178162093726882638296e-01_RKB &
    1646             :     , 9.2074711528170156174634608454633063157457035996277199700642836501131385042631212407808952281702820179915510491592339e-01_RKB &
    1647             :     , 9.4297457122897433941401116965847053190520157060899014192745249713729532254404926130890521815127348327109666786665572e-01_RKB &
    1648             :     , 9.6161498642584251241813003366016724169212642963709676666624520141292893281185666917636407790823210892689040877316178e-01_RKB &
    1649             :     , 9.7666392145951751149831538647959406774537055531440674467098742731616386753588055389644670948300617866819865983054648e-01_RKB &
    1650             :     , 9.8803579453407724763733101457740622707248415209160748131449972199405186821347293686245404742032360498210710718706868e-01_RKB &
    1651             :     , 9.9555696979049809790878494689390161725756264940480817121080493113293348134372793448728802635294700756868258870429256e-01_RKB &
    1652             :     , 9.9926210499260983419345748654034059370452496042279618586228697762904524428167719073818746102238075978747461480736921e-01_RKB ]
    1653             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    1654             :     !DIR$ ATTRIBUTES DLLEXPORT :: nodeK51
    1655             : #endif
    1656             : 
    1657             :     !>  \brief
    1658             :     !>  A vector of type `real` of the highest-precision kind available by the processor,
    1659             :     !>  containing the weights of the 51-points Kronrod extension to the 25-points Gauss quadrature rule.
    1660             :     !>
    1661             :     !>  \see
    1662             :     !>  [nodeG25](@ref pm_quadPack::nodeG25)<br>
    1663             :     !>  [nodeK51](@ref pm_quadPack::nodeK51)<br>
    1664             :     !>  [weightG25](@ref pm_quadPack::weightG25)<br>
    1665             :     !>  [weightK51](@ref pm_quadPack::weightK51)<br>
    1666             :     !>  [getQuadGK](@ref pm_quadPack::getQuadGK)<br>
    1667             :     !>  [getQuadErr](@ref pm_quadPack::getQuadErr)<br>
    1668             :     !>
    1669             :     !>  \test
    1670             :     !>  [test_pm_quadPack](@ref test_pm_quadPack)
    1671             :     !>
    1672             :     !>  \finmain{weightK51}
    1673             :     !>
    1674             :     !>  \author
    1675             :     !>  \AmirShahmoradi, September 1, 2017, 12:00 AM, Institute for Computational Engineering and Sciences (ICES), The University of Texas at Austin
    1676             :     real(RKB)   , parameter :: weightK51(26) = &
    1677             :     [ 6.1580818067832935078759824240064553190436936903140808056908996403358367244202623293256774502185186717703954810463664e-02_RKB &
    1678             :     , 6.1471189871425316661544131965264177586537962876885022711111683500151700796198726558483367566537422877227096643444043e-02_RKB &
    1679             :     , 6.1128509717053048305859030416292711922678552321960938357322028070390133769952032831204895569347757809858568165047769e-02_RKB &
    1680             :     , 6.0539455376045862945360267517565427162312365710457079923487043144554747810689514408013582515489930908693681447570811e-02_RKB &
    1681             :     , 5.9720340324174059979099291932561853835363045476189975483372207816149988460708299020779612375010639778624011960832019e-02_RKB &
    1682             :     , 5.8689680022394207961974175856787764139795646254828315293243700305012569486054157617049685031506591863121580010947248e-02_RKB &
    1683             :     , 5.7437116361567832853582693939506471994832856823896682976509412313367495727224381199978598247737089593472710899482737e-02_RKB &
    1684             :     , 5.5950811220412317308240686382747346820271035112771802428932791066115158268338607019365831655460314732208940609352540e-02_RKB &
    1685             :     , 5.4251129888545490144543370459875606826076838441263383072163293312936923476650934130242315028422047795830492882862973e-02_RKB &
    1686             :     , 5.2362885806407475864366712137872714887351550723707596350905793656046659248541276597504566497990926306481919129870507e-02_RKB &
    1687             :     , 5.0277679080715671963325259433440084440587630604775975142050968279743014641141402310302584542633557037153607386127936e-02_RKB &
    1688             :     , 4.7982537138836713906392255756914754983592207423271169651235865196757913880334117810235517477328110033499422471098658e-02_RKB &
    1689             :     , 4.5502913049921788909870584752660393043707768935695327316724254392794299567957035458208970599641697203261236226745020e-02_RKB &
    1690             :     , 4.2872845020170049476895792439495161101999504199883328877919242515738957655253932048951366960802592343905647433925806e-02_RKB &
    1691             :     , 4.0083825504032382074839284467075646401410549266591308713115878386835777315058451955614116158949614066927183232852042e-02_RKB &
    1692             :     , 3.7116271483415543560330625367619875995997802688047764805628702762773009669395760582294525748583875707140577080663373e-02_RKB &
    1693             :     , 3.4002130274329337836748795229551203225670528250050443083264193121524339063344855010257660547708022429300203676502386e-02_RKB &
    1694             :     , 3.0792300167387488891109020215228585600877162393292487644544830559965388047996492709248618249084851477787538356572832e-02_RKB &
    1695             :     , 2.7475317587851737802948455517811078614796013288710603199613621069727810352835469926107822047433566792405123805901196e-02_RKB &
    1696             :     , 2.4009945606953216220092489164881081392931528209659330290734972342536012282191913069778658241972047765300060007037359e-02_RKB &
    1697             :     , 2.0435371145882835456568292235938973678758006097668937220074531550163622566841885855957623103354443247806459277197725e-02_RKB &
    1698             :     , 1.6847817709128298231516667536336315840402654624706139411175769276842182270078960078544597372646532637619276509222462e-02_RKB &
    1699             :     , 1.3236229195571674813656405846976238077578084997863654732213860488560614587634395544002156258192582265590155862296710e-02_RKB &
    1700             :     , 9.4739733861741516072077105236553238716453268483726334971394029603529306140359023187904705754719643032594360138998941e-03_RKB &
    1701             :     , 5.5619321353567137580402369010655220701769295496290984052961210793810038857581724171021610100708799763006942755331129e-03_RKB &
    1702             :     , 1.9873838923303159265078518828434098894299804282505973837653346298985629336820118753523093675303476883723992297810124e-03_RKB ]
    1703             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    1704             :     !DIR$ ATTRIBUTES DLLEXPORT :: weightK51
    1705             : #endif
    1706             : 
    1707             : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1708             : 
    1709             :     !>  \brief
    1710             :     !>  This is the indicator type for generating instances of objects that indicate the use of 30-point Gauss-Legendre quadrature with 61-point Kronrod
    1711             :     !>  extension formulae as the drivers in the (Adaptive) Global Gauss-Kronrod Quadrature of [getQuadGK](@ref pm_quadPack::getQuadGK).
    1712             :     !>
    1713             :     !>  \details
    1714             :     !>  This is an empty derived type that exists solely for generating unique objects that are distinguishable
    1715             :     !>  as input arguments to procedures under the generic interface [getQuadGK](@ref pm_quadPack::getQuadGK).
    1716             :     !>
    1717             :     !>  \interface{GK61_type}
    1718             :     !>  \code{.F90}
    1719             :     !>
    1720             :     !>      use pm_quadPack, only: GK61_type
    1721             :     !>      type(GK61_type) :: GK61
    1722             :     !>
    1723             :     !>  \endcode
    1724             :     !>
    1725             :     !>  \see
    1726             :     !>  [GK15_type](@ref pm_quadPack::GK15_type)<br>
    1727             :     !>  [GK21_type](@ref pm_quadPack::GK21_type)<br>
    1728             :     !>  [GK31_type](@ref pm_quadPack::GK31_type)<br>
    1729             :     !>  [GK41_type](@ref pm_quadPack::GK41_type)<br>
    1730             :     !>  [GK51_type](@ref pm_quadPack::GK51_type)<br>
    1731             :     !>  [GK61_type](@ref pm_quadPack::GK61_type)<br>
    1732             :     !>  [getQuadGK](@ref pm_quadPack::getQuadGK)<br>
    1733             :     !>  [getQuadErr](@ref pm_quadPack::getQuadErr)<br>
    1734             :     !>
    1735             :     !>  \example{GK61_type}
    1736             :     !>  \include{lineno} example/pm_quadPack/GK61/main.F90
    1737             :     !>  \compilef{GK61_type}
    1738             :     !>  \output{GK61_type}
    1739             :     !>  \include{lineno} example/pm_quadPack/GK61/main.out.F90
    1740             :     !>
    1741             :     !>  \test
    1742             :     !>  [test_pm_quadPack](@ref test_pm_quadPack)
    1743             :     !>
    1744             :     !>  \finmain{GK61_type}
    1745             :     !>
    1746             :     !>  \author
    1747             :     !>  \AmirShahmoradi, September 1, 2017, 12:00 AM, Institute for Computational Engineering and Sciences (ICES), The University of Texas at Austin
    1748             :     type :: GK61_type
    1749             :     end type
    1750             : 
    1751             :     !>  \brief
    1752             :     !>  The scalar constant object of type [GK61_type](@ref pm_quadPack::GK61_type) that indicates the use of 30-point Gauss-Legendre quadrature
    1753             :     !>  with 61-point Kronrod extension formulae as the drivers in the (Adaptive) Global Gauss-Kronrod Quadrature of [getQuadGK](@ref pm_quadPack::getQuadGK).
    1754             :     !>
    1755             :     !>  \see
    1756             :     !>  [GK15](@ref pm_quadPack::GK15)<br>
    1757             :     !>  [GK21](@ref pm_quadPack::GK21)<br>
    1758             :     !>  [GK31](@ref pm_quadPack::GK31)<br>
    1759             :     !>  [GK41](@ref pm_quadPack::GK41)<br>
    1760             :     !>  [GK51](@ref pm_quadPack::GK51)<br>
    1761             :     !>  [GK61](@ref pm_quadPack::GK61)<br>
    1762             :     !>  [getQuadGK](@ref pm_quadPack::getQuadGK)<br>
    1763             :     !>  [getQuadErr](@ref pm_quadPack::getQuadErr)<br>
    1764             :     !>
    1765             :     !>  \example{GK61}
    1766             :     !>  \include{lineno} example/pm_quadPack/GK61/main.F90
    1767             :     !>  \compilef{GK61}
    1768             :     !>  \output{GK61}
    1769             :     !>  \include{lineno} example/pm_quadPack/GK61/main.out.F90
    1770             :     !>
    1771             :     !>  \test
    1772             :     !>  [test_pm_quadPack](@ref test_pm_quadPack)
    1773             :     !>
    1774             :     !>  \finmain{GK61}
    1775             :     !>
    1776             :     !>  \author
    1777             :     !>  \AmirShahmoradi, September 1, 2017, 12:00 AM, Institute for Computational Engineering and Sciences (ICES), The University of Texas at Austin
    1778             :     type(GK61_type) , parameter :: GK61 = GK61_type()
    1779             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    1780             :     !DIR$ ATTRIBUTES DLLEXPORT :: GK61
    1781             : #endif
    1782             : 
    1783             :     !>  \brief
    1784             :     !>  A vector of type `real` of the highest-precision kind available by the processor,
    1785             :     !>  containing the abscissas of the 30-points Gauss quadrature rule.
    1786             :     !>
    1787             :     !>  \see
    1788             :     !>  [nodeG30](@ref pm_quadPack::nodeG30)<br>
    1789             :     !>  [nodeK61](@ref pm_quadPack::nodeK61)<br>
    1790             :     !>  [weightG30](@ref pm_quadPack::weightG30)<br>
    1791             :     !>  [weightK61](@ref pm_quadPack::weightK61)<br>
    1792             :     !>  [getQuadGK](@ref pm_quadPack::getQuadGK)<br>
    1793             :     !>  [getQuadErr](@ref pm_quadPack::getQuadErr)<br>
    1794             :     !>
    1795             :     !>  \test
    1796             :     !>  [test_pm_quadPack](@ref test_pm_quadPack)
    1797             :     !>
    1798             :     !>  \finmain{nodeG30}
    1799             :     !>
    1800             :     !>  \author
    1801             :     !>  \AmirShahmoradi, September 1, 2017, 12:00 AM, Institute for Computational Engineering and Sciences (ICES), The University of Texas at Austin
    1802             :     real(RKB)   , parameter :: nodeG30(15) = &
    1803             :     [ 5.1471842555317695833025213166722573749141453666569564255160843987964755210427109055870090707285485841217089963590678e-02_RKB &
    1804             :     , 1.5386991360858354696379467274325592041855197124433846171896298291578714851081610139692310651074078557990111754952062e-01_RKB &
    1805             :     , 2.5463692616788984643980512981780510788278930330251842616428597508896353156907880290636628138423620257595521678255758e-01_RKB &
    1806             :     , 3.5270472553087811347103720708937386065363100802142562659418446890026941623319107866436039675211352945165817827083104e-01_RKB &
    1807             :     , 4.4703376953808917678060990032285400016240759386142440975447738172761535172858420700400688872124189834257262048739699e-01_RKB &
    1808             :     , 5.3662414814201989926416979331107279416417800693029710545274348291201490861897837863114116009718990258091585830703557e-01_RKB &
    1809             :     , 6.2052618298924286114047755643118929920736469282952813259505117012433531497488911774115258445532782106478789996137481e-01_RKB &
    1810             :     , 6.9785049479331579693229238802664006838235380065395465637972284673997672124315996069538163644008904690545069439941341e-01_RKB &
    1811             :     , 7.6777743210482619491797734097450313169488361723290845320649438736515857017299504505260960258623968420224697596501719e-01_RKB &
    1812             :     , 8.2956576238276839744289811973250191643906869617034167880695298345365650658958163508295244350814016004371545455777732e-01_RKB &
    1813             :     , 8.8256053579205268154311646253022559005668914714648423206832605312161626269519165572921583828573210485349058106849548e-01_RKB &
    1814             :     , 9.2620004742927432587932427708047400408647453682532906091103713367942299565110232681677288015055886244486106298320068e-01_RKB &
    1815             :     , 9.6002186496830751221687102558179766293035921740392339948566167242493995770706842922718944370380002378239172677454384e-01_RKB &
    1816             :     , 9.8366812327974720997003258160566280194031785470971136351718001015114429536479104370207597166035471368057762560137209e-01_RKB &
    1817             :     , 9.9689348407464954027163005091869528334088203811775079010809429780238769521016374081588201955806171741257405095963817e-01_RKB ]
    1818             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    1819             :     !DIR$ ATTRIBUTES DLLEXPORT :: nodeG30
    1820             : #endif
    1821             : 
    1822             :     !>  \brief
    1823             :     !>  A vector of type `real` of the highest-precision kind available by the processor,
    1824             :     !>  containing the weights of the 30-points Gauss quadrature rule.
    1825             :     !>
    1826             :     !>  \see
    1827             :     !>  [nodeG30](@ref pm_quadPack::nodeG30)<br>
    1828             :     !>  [nodeK61](@ref pm_quadPack::nodeK61)<br>
    1829             :     !>  [weightG30](@ref pm_quadPack::weightG30)<br>
    1830             :     !>  [weightK61](@ref pm_quadPack::weightK61)<br>
    1831             :     !>  [getQuadGK](@ref pm_quadPack::getQuadGK)<br>
    1832             :     !>  [getQuadErr](@ref pm_quadPack::getQuadErr)<br>
    1833             :     !>
    1834             :     !>  \test
    1835             :     !>  [test_pm_quadPack](@ref test_pm_quadPack)
    1836             :     !>
    1837             :     !>  \finmain{weightG30}
    1838             :     !>
    1839             :     !>  \author
    1840             :     !>  \AmirShahmoradi, September 1, 2017, 12:00 AM, Institute for Computational Engineering and Sciences (ICES), The University of Texas at Austin
    1841             :     real(RKB)   , parameter :: weightG30(15) = &
    1842             :     [ 1.0285265289355884034128563670541504386837555706492822258631898667601623865660942939262884632188870916503815852709086e-01_RKB &
    1843             :     , 1.0176238974840550459642895216855404463270628948712684086426094541964251360531767494547599781978391198881693385887696e-01_RKB &
    1844             :     , 9.9593420586795267062780282103569476529869263666704277221365146183946660389908809018092299289324184705373523229592037e-02_RKB &
    1845             :     , 9.6368737174644259639468626351809865096406461430160245912994275732837534742003123724951247818104195363343093583583429e-02_RKB &
    1846             :     , 9.2122522237786128717632707087618767196913234418234107527675047001973047070094168298464052916811907158954949394100501e-02_RKB &
    1847             :     , 8.6899787201082979802387530715125702576753328743545344012222129882153582254261494247955033509639105330215477601953921e-02_RKB &
    1848             :     , 8.0755895229420215354694938460529730875892803708439299890258593706051180567026345604212402769217808080749416147400962e-02_RKB &
    1849             :     , 7.3755974737705206268243850022190734153770526037049438941269182374599399314635211710401352716638183270192254236882630e-02_RKB &
    1850             :     , 6.5974229882180495128128515115962361237442953656660378967031516042143672466094179365819913911598737439478205808271237e-02_RKB &
    1851             :     , 5.7493156217619066481721689402056128797120670721763134548715799003232147409954376925211999650950125355559974348279846e-02_RKB &
    1852             :     , 4.8402672830594052902938140422807517815271809197372736345191936791805425677102152797767439563562263454374645955072007e-02_RKB &
    1853             :     , 3.8799192569627049596801936446347692033200976766395352107732789705946970952769793919055026279035105656340228558382274e-02_RKB &
    1854             :     , 2.8784707883323369349719179611292043639588894546287496474180122608145988940013933101730206711484171554940392262251283e-02_RKB &
    1855             :     , 1.8466468311090959142302131912047269096206533968181403371298365514585599521307973654080519029675417955638095832046164e-02_RKB &
    1856             :     , 7.9681924961666056154658834746736224504806965871517212294851633569200384329013332941536616922861735209846506562158817e-03_RKB ]
    1857             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    1858             :     !DIR$ ATTRIBUTES DLLEXPORT :: weightG30
    1859             : #endif
    1860             : 
    1861             :     !>  \brief
    1862             :     !>  A vector of type `real` of the highest-precision kind available by the processor,
    1863             :     !>  containing the abscissas of the 61-points Kronrod extension to the 30-points Gauss quadrature rule.
    1864             :     !>
    1865             :     !>  \see
    1866             :     !>  [nodeG30](@ref pm_quadPack::nodeG30)<br>
    1867             :     !>  [nodeK61](@ref pm_quadPack::nodeK61)<br>
    1868             :     !>  [weightG30](@ref pm_quadPack::weightG30)<br>
    1869             :     !>  [weightK61](@ref pm_quadPack::weightK61)<br>
    1870             :     !>  [getQuadGK](@ref pm_quadPack::getQuadGK)<br>
    1871             :     !>  [getQuadErr](@ref pm_quadPack::getQuadErr)<br>
    1872             :     !>
    1873             :     !>  \test
    1874             :     !>  [test_pm_quadPack](@ref test_pm_quadPack)
    1875             :     !>
    1876             :     !>  \finmain{nodeK61}
    1877             :     !>
    1878             :     !>  \author
    1879             :     !>  \AmirShahmoradi, September 1, 2017, 12:00 AM, Institute for Computational Engineering and Sciences (ICES), The University of Texas at Austin
    1880             :     real(RKB)   , parameter :: nodeK61(31) = &
    1881             :     [ 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00_RKB &
    1882             :     , 5.1471842555317695833025213166722573749141453666569564255160843987964755210427109055870090707285485841217089963590678e-02_RKB &
    1883             :     , 1.0280693796673703014709675131800059247190133296515840552101946914632788253917872738234797140786490207720254922664913e-01_RKB &
    1884             :     , 1.5386991360858354696379467274325592041855197124433846171896298291578714851081610139692310651074078557990111754952062e-01_RKB &
    1885             :     , 2.0452511668230989143895767100202470952410426459556377447604465028350321894663245495592565235317147819577892124850607e-01_RKB &
    1886             :     , 2.5463692616788984643980512981780510788278930330251842616428597508896353156907880290636628138423620257595521678255758e-01_RKB &
    1887             :     , 3.0407320227362507737267710719925655353115778980946272844421536998312150442387767304001423699909778588529370119457430e-01_RKB &
    1888             :     , 3.5270472553087811347103720708937386065363100802142562659418446890026941623319107866436039675211352945165817827083104e-01_RKB &
    1889             :     , 4.0040125483039439253547621154266063361104593297078395983186610656429170689311759061175527015710247383961903284673474e-01_RKB &
    1890             :     , 4.4703376953808917678060990032285400016240759386142440975447738172761535172858420700400688872124189834257262048739699e-01_RKB &
    1891             :     , 4.9248046786177857499369306120770879564426564096318697026073340982988422546396352776837047452262025983265531109327026e-01_RKB &
    1892             :     , 5.3662414814201989926416979331107279416417800693029710545274348291201490861897837863114116009718990258091585830703557e-01_RKB &
    1893             :     , 5.7934523582636169175602493217254049590705158881215289208126016612312833567812241903809970751783808208940322061083509e-01_RKB &
    1894             :     , 6.2052618298924286114047755643118929920736469282952813259505117012433531497488911774115258445532782106478789996137481e-01_RKB &
    1895             :     , 6.6006106412662696137005366814927075303835037480883390955067197339904937499734522076788020517029688190998858739703079e-01_RKB &
    1896             :     , 6.9785049479331579693229238802664006838235380065395465637972284673997672124315996069538163644008904690545069439941341e-01_RKB &
    1897             :     , 7.3379006245322680472617113136952764566938172775468549208701399518300016463613325382024664531597318795933262446521430e-01_RKB &
    1898             :     , 7.6777743210482619491797734097450313169488361723290845320649438736515857017299504505260960258623968420224697596501719e-01_RKB &
    1899             :     , 7.9972783582183908301366894232268324073569842937778450923647349548686662567326007229195202524185356472023967927713548e-01_RKB &
    1900             :     , 8.2956576238276839744289811973250191643906869617034167880695298345365650658958163508295244350814016004371545455777732e-01_RKB &
    1901             :     , 8.5720523354606109895865851065894385682080017062359612850504551739119887225712932688031120704657195642614071367390794e-01_RKB &
    1902             :     , 8.8256053579205268154311646253022559005668914714648423206832605312161626269519165572921583828573210485349058106849548e-01_RKB &
    1903             :     , 9.0557330769990779854652255892595831956897536366222841356404766397803760239449631913585074426842574155323901785046522e-01_RKB &
    1904             :     , 9.2620004742927432587932427708047400408647453682532906091103713367942299565110232681677288015055886244486106298320068e-01_RKB &
    1905             :     , 9.4437444474855997941583132403743912158564371496498093181748940139520917000657342753448871376849848523800667868447591e-01_RKB &
    1906             :     , 9.6002186496830751221687102558179766293035921740392339948566167242493995770706842922718944370380002378239172677454384e-01_RKB &
    1907             :     , 9.7311632250112626837469386842370688488763796428343933853755850185624118958166838288308561708261486365954975485787212e-01_RKB &
    1908             :     , 9.8366812327974720997003258160566280194031785470971136351718001015114429536479104370207597166035471368057762560137209e-01_RKB &
    1909             :     , 9.9163099687040459485862836610948572485050033374616325510019923349807489603260796605556191495843575227494654783755353e-01_RKB &
    1910             :     , 9.9689348407464954027163005091869528334088203811775079010809429780238769521016374081588201955806171741257405095963817e-01_RKB &
    1911             :     , 9.9948441005049063757132589570581081946887394701850801923632642830748016674843587830656468823145435723317885056396548e-01_RKB ]
    1912             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    1913             :     !DIR$ ATTRIBUTES DLLEXPORT :: nodeK61
    1914             : #endif
    1915             : 
    1916             :     !>  \brief
    1917             :     !>  A vector of type `real` of the highest-precision kind available by the processor,
    1918             :     !>  containing the weights of the 61-points Kronrod extension to the 30-points Gauss quadrature rule.
    1919             :     !>
    1920             :     !>  \see
    1921             :     !>  [nodeG30](@ref pm_quadPack::nodeG30)<br>
    1922             :     !>  [nodeK61](@ref pm_quadPack::nodeK61)<br>
    1923             :     !>  [weightG30](@ref pm_quadPack::weightG30)<br>
    1924             :     !>  [weightK61](@ref pm_quadPack::weightK61)<br>
    1925             :     !>  [getQuadGK](@ref pm_quadPack::getQuadGK)<br>
    1926             :     !>  [getQuadErr](@ref pm_quadPack::getQuadErr)<br>
    1927             :     !>
    1928             :     !>  \test
    1929             :     !>  [test_pm_quadPack](@ref test_pm_quadPack)
    1930             :     !>
    1931             :     !>  \finmain{weightK61}
    1932             :     !>
    1933             :     !>  \author
    1934             :     !>  \AmirShahmoradi, September 1, 2017, 12:00 AM, Institute for Computational Engineering and Sciences (ICES), The University of Texas at Austin
    1935             :     real(RKB)   , parameter :: weightK61(31) = &
    1936             :     [ 5.1494729429451567558340433647099307532736880396464168074637323362474083844397567724480716864880173808112573901197920e-02_RKB &
    1937             :     , 5.1426128537459025933862879215781259829552034862395987263855824172761589259406892072066110681184224608133314131500422e-02_RKB &
    1938             :     , 5.1221547849258772170656282604944208251146952425246327553509056805511015401279553971190412722969308620984161625812560e-02_RKB &
    1939             :     , 5.0881795898749606492297473049804691853384914260919239920771942080972542646780575571132056254070929858650733836163479e-02_RKB &
    1940             :     , 5.0405921402782346840893085653585028902197018251622233664243959211066713308635283713447747907973700791599900911248852e-02_RKB &
    1941             :     , 4.9795683427074206357811569379942328539209602813696108951047392842948482646220377655098341924089250200477846596263918e-02_RKB &
    1942             :     , 4.9055434555029778887528165367238173605887405295296569579490717901328215644590555247522873065246297467067324397612445e-02_RKB &
    1943             :     , 4.8185861757087129140779492298304592605799236108429800057373350872433793583969368428942672063270298939865425225579922e-02_RKB &
    1944             :     , 4.7185546569299153945261478181099486482884807300628457194141861551725533289490897029020276525603515502104799540544222e-02_RKB &
    1945             :     , 4.6059238271006988116271735559373580594692875571824924004732379492293604006446052672252973438978639166425766841417488e-02_RKB &
    1946             :     , 4.4814800133162663192355551616723243757431392796373009889680201194063503947907899189061064792111919040540351834527742e-02_RKB &
    1947             :     , 4.3452539701356069316831728117073258074603308631703168064888805495738640839573863333942084117196541456054957383622173e-02_RKB &
    1948             :     , 4.1969810215164246147147541285969757790088656718992374820388720323852655511200365790379948462006156953358103259681948e-02_RKB &
    1949             :     , 4.0374538951535959111995279752468114216126062126030255633998289613810846761059740961836828802959573901107306640876603e-02_RKB &
    1950             :     , 3.8678945624727592950348651532281050250923629821553846790376130679337402056620700554139109487533759557982632153728099e-02_RKB &
    1951             :     , 3.6882364651821229223911065617135967736955164781030337670005198584196134970154169862584193360751243227989492571664973e-02_RKB &
    1952             :     , 3.4979338028060024137499670731467875097226912794818719972208457232177786702008744219498470603846784465175225933802357e-02_RKB &
    1953             :     , 3.2981447057483726031814191016853927510599291213858385714519347641452316582381008804994515341969205985818543200837577e-02_RKB &
    1954             :     , 3.0907257562387762472884252943092272635270458523807153426840486964022086189874056947717446328187131273807982629114591e-02_RKB &
    1955             :     , 2.8754048765041292843978785354334211144679160542074930035102280759132174815469834227854660515366003136772757344886331e-02_RKB &
    1956             :     , 2.6509954882333101610601709335075414366517579522748565770867438338472138903658077617652522759934474895733739329287706e-02_RKB &
    1957             :     , 2.4191162078080601365686370725232026760391377828182462432228943562944885267501070688006470962871743661192935455117297e-02_RKB &
    1958             :     , 2.1828035821609192297167485738338993401507296056834912773630422358720439403382559079356058602393879803560534375378340e-02_RKB &
    1959             :     , 1.9414141193942381173408951050128455851421014191431525770276066536497179079025540486072726114628763606440143557769099e-02_RKB &
    1960             :     , 1.6920889189053272627572289420322092368566703783835191139883410840546679978551861043620089451681146020853650713611444e-02_RKB &
    1961             :     , 1.4369729507045804812451432443580010195841899895001505873565899403000198662495821906144274682894222591414503342336172e-02_RKB &
    1962             :     , 1.1823015253496341742232898853250592896264406250607818326302431548265365155855182739401700032519141448997853772603766e-02_RKB &
    1963             :     , 9.2732796595177634284411468920243604212700249381931076964956469143626665557434385492325784596343112153704094886248672e-03_RKB &
    1964             :     , 6.6307039159312921733198263697501681336283882177812585973955597357837568277731921327731815844512598157843672104469554e-03_RKB &
    1965             :     , 3.8904611270998840512672018445155032785151429848864649214200101281144733676455451061226273655941038347210163533085954e-03_RKB &
    1966             :     , 1.3890136986770076245515912267596996810488412919632724534411055332301367130989865366956251556423820479579333920310978e-03_RKB ]
    1967             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    1968             :     !DIR$ ATTRIBUTES DLLEXPORT :: weightK61
    1969             : #endif
    1970             : 
    1971             : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1972             : 
    1973             :     !>  \brief
    1974             :     !>  Return the Kronrod \f$2n + 1\f$ nodes and weights of the extension to the \f$n\f$-point Gauss-Legendre quadrature,
    1975             :     !>  as well as the \f$n\f$-point Gauss-Legendre weights.
    1976             :     !>
    1977             :     !>  \details
    1978             :     !>  The abscissas and weights for both the Gauss and Kronrod rules are computed for integration over the interval \f$[-1,+1]\f$.<br>
    1979             :     !>  Also, only the nonnegative abscissas are computed because the quadrature formulae is symmetric with respect to the origin.<br>
    1980             :     !>  See the documentation of [pm_quadPack](@ref pm_quadPack) for more details on the Gauss-Kronrod quadrature.<br>
    1981             :     !>
    1982             :     !>  \param[in]  order   :   The input scalar `integer` of default kind \IK containing the Number of Points in the Gauss quadrature rule.<br>
    1983             :     !>                          (**optional**. If present, then the rest of the (output vector) arguments must be all `allocatable`.)
    1984             :     !>  \param[out] nodeK   :   The output `contiguous` or `allocatable` vector of size `(1 : n + 1)` of type `real` of kind \RKALL, containing the Gauss-Kronrod nodes (abscissas).<br>
    1985             :     !>                          <ol>
    1986             :     !>                              <li>    If the input argument `order` is present, then `Node` must be an `allocatable` vector that will be reallocated to `order+1` on output.<br>
    1987             :     !>                              <li>    If the input argument `order` is missing, then `Node` must be a  `contiguous`  vector of size `order + 1`, where `order` is the desired number of points in the Gauss rule.<br>
    1988             :     !>                          </ol>
    1989             :     !>  \param[out] weightK :   The output `contiguous` or `allocatable` vector of the same type, kind, and size as `nodeK` containing the Gauss-Kronrod optimal extension weights.<br>
    1990             :     !>                          <ol>
    1991             :     !>                              <li>    If the input argument `order` is present, then `weightK` must be an `allocatable` vector that will be reallocated to `order+1` on output.<br>
    1992             :     !>                              <li>    If the input argument `order` is missing, then `weightK` must be a  `contiguous`  vector of size `order + 1`, where `order` is the desired number of points in the Gauss rule.<br>
    1993             :     !>                          </ol>
    1994             :     !>  \param[out] weightG :   The output `contiguous` or `allocatable` vector of size `(size(nodeK) / 2)`, of the same type and kind as `nodeK` containing the Gauss-Legendre weights.<br>
    1995             :     !>                          By definition, the elements of `weightG(:)` correspond to the node elements `nodeK(2::2)`.<br>
    1996             :     !>                          <ol>
    1997             :     !>                              <li>    If the input argument `order` is present, then `weightG` must be an `allocatable` vector that will be reallocated to `(order+1)/2` on output.<br>
    1998             :     !>                              <li>    If the input argument `order` is missing, then `weightG` must be a  `contiguous`  vector of size `order + 1`, where `order` is the desired number of points in the Gauss rule.<br>
    1999             :     !>                          </ol>
    2000             :     !>
    2001             :     !>  \interface{setNodeWeightGK}
    2002             :     !>  \code{.F90}
    2003             :     !>
    2004             :     !>      use pm_quadPack, only: setNodeWeightGK
    2005             :     !>
    2006             :     !>      call setNodeWeightGK(nodeK, weightK, weightG)
    2007             :     !>
    2008             :     !>  \endcode
    2009             :     !>
    2010             :     !>  \warning
    2011             :     !>  The number of points \f$n\f$ in the Gauss quadrature rule is determined from the size of the specified `nodeK` argument as `n = size(nodeK) - 1`.<br>
    2012             :     !>  As such, the sizes of `weightK` and `weightG` must be `size(nodeK) - 1` and `size(nodeK) / 2` respectively.<br>
    2013             :     !>  \vericons
    2014             :     !>
    2015             :     !>  \impure
    2016             :     !>
    2017             :     !>  \see
    2018             :     !>  [Robert Piessens, Maria Branders, 1974, A Note on the Optimal Addition of Abscissas to Quadrature Formulas of Gauss and Lobatto, Mathematics of Computation, 28, 125, 135-139](https://www.ams.org/journals/mcom/1974-28-125/S0025-5718-1974-0343552-5/S0025-5718-1974-0343552-5.pdf).<br>
    2019             :     !>  [Laurie, 1997, Calculation of gauss-kronrod quadrature rules](https://www.ams.org/mcom/1997-66-219/S0025-5718-97-00861-2/S0025-5718-97-00861-2.pdf).<br>
    2020             :     !>  [Kronrod, 1965, Nodes and weights of quadrature formulas](https://api.semanticscholar.org/CorpusID:123027420).<br>
    2021             :     !>  [FORTRAN90 version by John Burkardt](https://people.sc.fsu.edu/~jburkardt/m_src/kronrod/kronrod.html).<br>
    2022             :     !>
    2023             :     !>  \example{setNodeWeightGK}
    2024             :     !>  \include{lineno} example/pm_quadPack/setNodeWeightGK/main.F90
    2025             :     !>  \compilef{setNodeWeightGK}
    2026             :     !>  \output{setNodeWeightGK}
    2027             :     !>  \include{lineno} example/pm_quadPack/setNodeWeightGK/main.out.F90
    2028             :     !>
    2029             :     !>  \test
    2030             :     !>  [test_pm_quadPack](@ref test_pm_quadPack)
    2031             :     !>
    2032             :     !>  \finmain{setNodeWeightGK}
    2033             :     !>
    2034             :     !>  \author
    2035             :     !>  \AmirShahmoradi, Oct 16, 2009, 11:14 AM, Michigan
    2036             :     interface setNodeWeightGK
    2037             : 
    2038             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2039             : 
    2040             : #if RK5_ENABLED
    2041             :     PURE module subroutine setNodeWeightGKFixed_RK5(nodeK, weightK, weightG)
    2042             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    2043             :         !DEC$ ATTRIBUTES DLLEXPORT :: setNodeWeightGKFixed_RK5
    2044             : #endif
    2045             :         use pm_kind, only: RKC => RK5
    2046             :         real(RKC)   , intent(out)   , contiguous    :: nodeK(:), weightG(:), weightK(:)
    2047             :     end subroutine
    2048             : #endif
    2049             : 
    2050             : #if RK4_ENABLED
    2051             :     PURE module subroutine setNodeWeightGKFixed_RK4(nodeK, weightK, weightG)
    2052             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    2053             :         !DEC$ ATTRIBUTES DLLEXPORT :: setNodeWeightGKFixed_RK4
    2054             : #endif
    2055             :         use pm_kind, only: RKC => RK4
    2056             :         real(RKC)   , intent(out)   , contiguous    :: nodeK(:), weightG(:), weightK(:)
    2057             :     end subroutine
    2058             : #endif
    2059             : 
    2060             : #if RK3_ENABLED
    2061             :     PURE module subroutine setNodeWeightGKFixed_RK3(nodeK, weightK, weightG)
    2062             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    2063             :         !DEC$ ATTRIBUTES DLLEXPORT :: setNodeWeightGKFixed_RK3
    2064             : #endif
    2065             :         use pm_kind, only: RKC => RK3
    2066             :         real(RKC)   , intent(out)   , contiguous    :: nodeK(:), weightG(:), weightK(:)
    2067             :     end subroutine
    2068             : #endif
    2069             : 
    2070             : #if RK2_ENABLED
    2071             :     PURE module subroutine setNodeWeightGKFixed_RK2(nodeK, weightK, weightG)
    2072             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    2073             :         !DEC$ ATTRIBUTES DLLEXPORT :: setNodeWeightGKFixed_RK2
    2074             : #endif
    2075             :         use pm_kind, only: RKC => RK2
    2076             :         real(RKC)   , intent(out)   , contiguous    :: nodeK(:), weightG(:), weightK(:)
    2077             :     end subroutine
    2078             : #endif
    2079             : 
    2080             : #if RK1_ENABLED
    2081             :     PURE module subroutine setNodeWeightGKFixed_RK1(nodeK, weightK, weightG)
    2082             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    2083             :         !DEC$ ATTRIBUTES DLLEXPORT :: setNodeWeightGKFixed_RK1
    2084             : #endif
    2085             :         use pm_kind, only: RKC => RK1
    2086             :         real(RKC)   , intent(out)   , contiguous    :: nodeK(:), weightG(:), weightK(:)
    2087             :     end subroutine
    2088             : #endif
    2089             : 
    2090             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2091             : 
    2092             : #if RK5_ENABLED
    2093             :     PURE module subroutine setNodeWeightGKAlloc_RK5(order, nodeK, weightK, weightG)
    2094             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    2095             :         !DEC$ ATTRIBUTES DLLEXPORT :: setNodeWeightGKAlloc_RK5
    2096             : #endif
    2097             :         use pm_kind, only: RKC => RK5
    2098             :         integer(IK) , intent(in)                    :: order
    2099             :         real(RKC)   , intent(out)   , allocatable   :: nodeK(:), weightG(:), weightK(:)
    2100             :     end subroutine
    2101             : #endif
    2102             : 
    2103             : #if RK4_ENABLED
    2104             :     PURE module subroutine setNodeWeightGKAlloc_RK4(order, nodeK, weightK, weightG)
    2105             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    2106             :         !DEC$ ATTRIBUTES DLLEXPORT :: setNodeWeightGKAlloc_RK4
    2107             : #endif
    2108             :         use pm_kind, only: RKC => RK4
    2109             :         integer(IK) , intent(in)                    :: order
    2110             :         real(RKC)   , intent(out)   , allocatable   :: nodeK(:), weightG(:), weightK(:)
    2111             :     end subroutine
    2112             : #endif
    2113             : 
    2114             : #if RK3_ENABLED
    2115             :     PURE module subroutine setNodeWeightGKAlloc_RK3(order, nodeK, weightK, weightG)
    2116             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    2117             :         !DEC$ ATTRIBUTES DLLEXPORT :: setNodeWeightGKAlloc_RK3
    2118             : #endif
    2119             :         use pm_kind, only: RKC => RK3
    2120             :         integer(IK) , intent(in)                    :: order
    2121             :         real(RKC)   , intent(out)   , allocatable   :: nodeK(:), weightG(:), weightK(:)
    2122             :     end subroutine
    2123             : #endif
    2124             : 
    2125             : #if RK2_ENABLED
    2126             :     PURE module subroutine setNodeWeightGKAlloc_RK2(order, nodeK, weightK, weightG)
    2127             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    2128             :         !DEC$ ATTRIBUTES DLLEXPORT :: setNodeWeightGKAlloc_RK2
    2129             : #endif
    2130             :         use pm_kind, only: RKC => RK2
    2131             :         integer(IK) , intent(in)                    :: order
    2132             :         real(RKC)   , intent(out)   , allocatable   :: nodeK(:), weightG(:), weightK(:)
    2133             :     end subroutine
    2134             : #endif
    2135             : 
    2136             : #if RK1_ENABLED
    2137             :     PURE module subroutine setNodeWeightGKAlloc_RK1(order, nodeK, weightK, weightG)
    2138             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    2139             :         !DEC$ ATTRIBUTES DLLEXPORT :: setNodeWeightGKAlloc_RK1
    2140             : #endif
    2141             :         use pm_kind, only: RKC => RK1
    2142             :         integer(IK) , intent(in)                    :: order
    2143             :         real(RKC)   , intent(out)   , allocatable   :: nodeK(:), weightG(:), weightK(:)
    2144             :     end subroutine
    2145             : #endif
    2146             : 
    2147             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2148             : 
    2149             :     end interface
    2150             : 
    2151             : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2152             : 
    2153             :     ! Naming convention: getQuadGKDFU, getQuadGKDPU, getQuadGKDNU, getQuadGKDBU
    2154             :     ! G: Gauss rule,
    2155             :     ! K: Kronrod rule,
    2156             :     ! D: default method,
    2157             :     ! F: finite integration limits,
    2158             :     ! P: Positive integration limit,
    2159             :     ! N: Negative integration limit,
    2160             :     ! B: Both negative and positive integration limits,
    2161             : 
    2162             :     !>  \brief
    2163             :     !>  Compute the 1D integral of the input scalar integrand `getFunc` on the finite or infinite interval `[a, b]`
    2164             :     !>  and estimate its absolute error via the requested **non-adaptive** Gauss-Kronrod (GK) extension rule.
    2165             :     !>
    2166             :     !>  \param      getFunc         :   The input function to be integrated (i.e., the integrand).
    2167             :     !>                                      -#  On entry, it must take an input scalar of the same type and kind as `abserr`.<br>
    2168             :     !>                                      -#  On exit, it must generate an input scalar of the same type and kind as `abserr`, representing the corresponding function value.<br>
    2169             :     !>                                  The following illustrates the general interface of `getFunc`:
    2170             :     !>                                  \code{.F90}
    2171             :     !>
    2172             :     !>                                      function getFunc(x) result(func)
    2173             :     !>                                          use pm_kind, only: RK => RKC
    2174             :     !>                                          real(RK)    , intent(in)    :: x
    2175             :     !>                                          real(RK)                    :: func
    2176             :     !>                                      end function
    2177             :     !>
    2178             :     !>                                  \endcode
    2179             :     !>                                  where `RKC` refers to any desired `real` kind supported by the processor that is desired for the output `abserr`.<br>
    2180             :     !>  \param[in]  lb              :   The input scalar argument that can be either,<br>
    2181             :     !>                                  <ul>
    2182             :     !>                                      <li>    a value of type `real` of the same kind as the kind for the output `abserr`, representing the lower limit of integration, or<br>
    2183             :     !>                                      <li>    the constant [ninf](@ref pm_mathConst::ninf), representing negative infinity (\f$-\infty\f$) as the lower limit of integration.<br>
    2184             :     !>                                  </ul>
    2185             :     !>  \param[in]  ub              :   The input scalar argument that can be either,<br>
    2186             :     !>                                  <ul>
    2187             :     !>                                      <li>    a value of type `real` of the same kind as the kind for the output `abserr`, representing the upper limit of integration, or<br>
    2188             :     !>                                      <li>    the constant [pinf](@ref pm_mathConst::pinf), representing positive infinity (\f$+\infty\f$) as the upper limit of integration.<br>
    2189             :     !>                                  </ul>
    2190             :     !>  \param[out] qrule           :   The input scalar constant argument that can be either,<br>
    2191             :     !>                                  <ul>
    2192             :     !>                                      <li>    [GK15](@ref pm_quadPack::GK15) of type [GK15_type](@ref pm_quadPack::GK15_type), or<br>
    2193             :     !>                                      <li>    [GK21](@ref pm_quadPack::GK21) of type [GK21_type](@ref pm_quadPack::GK21_type), or<br>
    2194             :     !>                                      <li>    [GK31](@ref pm_quadPack::GK31) of type [GK31_type](@ref pm_quadPack::GK31_type), or<br>
    2195             :     !>                                      <li>    [GK41](@ref pm_quadPack::GK41) of type [GK41_type](@ref pm_quadPack::GK41_type), or<br>
    2196             :     !>                                      <li>    [GK51](@ref pm_quadPack::GK51) of type [GK51_type](@ref pm_quadPack::GK51_type), or<br>
    2197             :     !>                                      <li>    [GK61](@ref pm_quadPack::GK61) of type [GK61_type](@ref pm_quadPack::GK61_type).<br>
    2198             :     !>                                  </ul>
    2199             :     !>                                  The specified objects are empty and merely serve to differentiate the multitude of orders of Gauss-Kronrod quadrature rules.<br>
    2200             :     !>                                  For example, specifying [GK15](@ref pm_quadPack::GK15) dictates the use of 15-points Gauss-Kronrod quadrature rules for computing the integral and estimating its error.<br>
    2201             :     !>                                  (**optional**. It can be present <b>if and only if</b> `nodeK`, `weightK` and `weightG` optional input arguments are missing.)
    2202             :     !>  \param[in]  nodeK           :   The input `contiguous` vector argument of the same type and kind as `abserr`, of size \f$n + 1\f$, where \f$n\f$ is the number of points in the Gauss rule to be used for the integration.<br>
    2203             :     !>                                  It contains the nodes of the \f$n\f$-points Gauss-Legendre quadrature rule and its \f$n+1\f$-points Kronrod extension rule.<br>
    2204             :     !>                                  The procedures under the generic interface [setNodeWeightGK](@ref pm_quadPack::setNodeWeightGK) return this vector.<br>
    2205             :     !>                                  (**optional**. It can be present <b>if and only if</b> `weightK` and `weightG` optional input arguments are present and `qrule` is missing.)
    2206             :     !>  \param[in]  weightK         :   The input `contiguous` vector argument of the same type and kind as `abserr`, of size \f$n + 1\f$, where \f$n\f$ is the number of points in the Gauss rule to be used for the integration.<br>
    2207             :     !>                                  It contains the Kronrod optimal extension weights for the \f$2n+1\f$-points Gauss-Legendre-Kronrod quadrature method.<br>
    2208             :     !>                                  The procedures under the generic interface [setNodeWeightGK](@ref pm_quadPack::setNodeWeightGK) return this vector.<br>
    2209             :     !>                                  (**optional**. It can be present <b>if and only if</b> `nodeK` and `weightG` optional input arguments are present and `qrule` is missing.)
    2210             :     !>  \param[in]  weightG         :   The input `contiguous` vector argument of the same type and kind as `abserr`, of size \f$(n + 1)/2\f$, where \f$n\f$ is the number of points in the Gauss rule to be used for the integration.<br>
    2211             :     !>                                  It contains the weights for the \f$n\f$-points Gauss-Legendre quadrature method.<br>
    2212             :     !>                                  The procedures under the generic interface [setNodeWeightGK](@ref pm_quadPack::setNodeWeightGK) return this vector.<br>
    2213             :     !>                                  (**optional**. It can be present <b>if and only if</b> `nodeK` and `weightK` optional input arguments are present and `qrule` is missing.)
    2214             :     !>  \param[out] abserr          :   The output scalar argument of type `real` of kind \RKALL, representing the estimated absolute error in the resulting integral.<br>
    2215             :     !>  \param[out] intAbsFunc      :   The output scalar argument of the same type and kind as `abserr`, representing the integral of the absolute value of the input integrand function `getFunc()` over the specified range `[lb, ub]`.<br>
    2216             :     !>                                  This output is not of primary use to the end users, but is required for computation of global error and the stopping rule in Global Adaptive Quadrature algorithms.<br>
    2217             :     !>  \param[out] smoothness      :   The output scalar argument of the same type and kind as `abserr`, representing a measure of the smoothness of the input integrand function `getFunc()` over the specified range `[lb, ub]`.<br>
    2218             :     !>                                  This output is not of primary use to the end users, but is required for computation of global error and the stopping rule in Global Adaptive Quadrature algorithms.<br>
    2219             :     !>
    2220             :     !>  \return
    2221             :     !>  `quadGK`                    :   The output scalar of the same type and kind as the output `abserr`, containing the integral of the specified integrand `getFunc()` over the specified range `[lb, ub]`.
    2222             :     !>
    2223             :     !>  \interface{getQuadGK}
    2224             :     !>  \code{.F90}
    2225             :     !>
    2226             :     !>      use pm_quadPack, only: getQuadGK
    2227             :     !>
    2228             :     !>      quadGK = getQuadGK(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness)
    2229             :     !>      quadGK = getQuadGK(getFunc, lb, ub, nodeK, weightK, weightG, abserr, intAbsFunc, smoothness)
    2230             :     !>
    2231             :     !>  \endcode
    2232             :     !>
    2233             :     !>  \warning
    2234             :     !>  The condition `lb < ub` must hold for the corresponding procedure argument.<br>
    2235             :     !>  Also, the conditions `size(nodeK) == size(weightK)` and `ssize(weightG) == size(nodeK) / 2` must hold for the corresponding procedure arguments, if present.<br>
    2236             :     !>  \vericons
    2237             :     !>
    2238             :     !>  \warning
    2239             :     !>  If the target function contains points of difficulties, singularities, or discontinuities,
    2240             :     !>  user must ensure the abscissas of the specified Gauss-Kronrod rule do not match such points.<br>
    2241             :     !>  Particularly, computing an integrand at its singularities can lead to undefined values that can lead
    2242             :     !>  to unexpected **segmentation fault** or propagation of `NaN` values within the computational flow
    2243             :     !>  or other strange errors that can be extremely difficult to debug.<br>
    2244             :     !>  A simple check can be added within the target integrand implementations to ensure no such difficulty point matches an input value at which the function must be evaluated.<br>
    2245             :     !>  Alternatively, one should consider using the adaptive integration routines [isFailedQuad](@ref pm_quadPack::isFailedQuad) or [getQuadErr](@ref pm_quadPack::getQuadErr)
    2246             :     !>  while setting their input `help` arguments to the points of difficulties of the integrand.<br>
    2247             :     !>
    2248             :     !>  \impure
    2249             :     !>
    2250             :     !>  \see
    2251             :     !>  [Robert Piessens, Maria Branders, 1974, A Note on the Optimal Addition of Abscissas to Quadrature Formulas of Gauss and Lobatto, Mathematics of Computation, 28, 125, 135-139](https://www.ams.org/journals/mcom/1974-28-125/S0025-5718-1974-0343552-5/S0025-5718-1974-0343552-5.pdf).<br>
    2252             :     !>  [Laurie, 1997, Calculation of gauss-kronrod quadrature rules](https://www.ams.org/mcom/1997-66-219/S0025-5718-97-00861-2/S0025-5718-97-00861-2.pdf).<br>
    2253             :     !>  [Kronrod, 1965, Nodes and weights of quadrature formulas](https://api.semanticscholar.org/CorpusID:123027420).<br>
    2254             :     !>  [FORTRAN90 version by John Burkardt](https://people.sc.fsu.edu/~jburkardt/m_src/kronrod/kronrod.html).<br>
    2255             :     !>
    2256             :     !>  \example
    2257             :     !>  \include{lineno} example/pm_quadPack/getQuadGK/main.F90
    2258             :     !>  \compilef
    2259             :     !>  \output
    2260             :     !>  \include{lineno} example/pm_quadPack/getQuadGK/main.out.F90
    2261             :     !>
    2262             :     !>  \test
    2263             :     !>  [test_pm_quadPack](@ref test_pm_quadPack)
    2264             :     !>
    2265             :     !>  \finmain{getQuadGK}
    2266             :     !>
    2267             :     !>  \author
    2268             :     !>  \AmirShahmoradi, Oct 16, 2009, 11:14 AM, Michigan
    2269             : 
    2270             :     ! GK15
    2271             : 
    2272             :     interface getQuadGK
    2273             : 
    2274             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2275             : 
    2276             : #if RK5_ENABLED
    2277             :     module function getQuadGK15_FF_RK5(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    2278             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    2279             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK15_FF_RK5
    2280             : #endif
    2281             :         use pm_kind, only: RKC => RK5
    2282             :         procedure(real(RKC))                            :: getFunc
    2283             :         real(RKC)       , intent(in)                    :: lb
    2284             :         real(RKC)       , intent(in)                    :: ub
    2285             :         type(GK15_type) , intent(in)                    :: qrule
    2286             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    2287             :         real(RKC)                                       :: quadGK
    2288             :     end function
    2289             : #endif
    2290             : 
    2291             : #if RK4_ENABLED
    2292             :     module function getQuadGK15_FF_RK4(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    2293             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    2294             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK15_FF_RK4
    2295             : #endif
    2296             :         use pm_kind, only: RKC => RK4
    2297             :         procedure(real(RKC))                            :: getFunc
    2298             :         real(RKC)       , intent(in)                    :: lb
    2299             :         real(RKC)       , intent(in)                    :: ub
    2300             :         type(GK15_type) , intent(in)                    :: qrule
    2301             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    2302             :         real(RKC)                                       :: quadGK
    2303             :     end function
    2304             : #endif
    2305             : 
    2306             : #if RK3_ENABLED
    2307             :     module function getQuadGK15_FF_RK3(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    2308             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    2309             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK15_FF_RK3
    2310             : #endif
    2311             :         use pm_kind, only: RKC => RK3
    2312             :         procedure(real(RKC))                            :: getFunc
    2313             :         real(RKC)       , intent(in)                    :: lb
    2314             :         real(RKC)       , intent(in)                    :: ub
    2315             :         type(GK15_type) , intent(in)                    :: qrule
    2316             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    2317             :         real(RKC)                                       :: quadGK
    2318             :     end function
    2319             : #endif
    2320             : 
    2321             : #if RK2_ENABLED
    2322             :     module function getQuadGK15_FF_RK2(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    2323             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    2324             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK15_FF_RK2
    2325             : #endif
    2326             :         use pm_kind, only: RKC => RK2
    2327             :         procedure(real(RKC))                            :: getFunc
    2328             :         real(RKC)       , intent(in)                    :: lb
    2329             :         real(RKC)       , intent(in)                    :: ub
    2330             :         type(GK15_type) , intent(in)                    :: qrule
    2331             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    2332             :         real(RKC)                                       :: quadGK
    2333             :     end function
    2334             : #endif
    2335             : 
    2336             : #if RK1_ENABLED
    2337             :     module function getQuadGK15_FF_RK1(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    2338             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    2339             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK15_FF_RK1
    2340             : #endif
    2341             :         use pm_kind, only: RKC => RK1
    2342             :         procedure(real(RKC))                            :: getFunc
    2343             :         real(RKC)       , intent(in)                    :: lb
    2344             :         real(RKC)       , intent(in)                    :: ub
    2345             :         type(GK15_type) , intent(in)                    :: qrule
    2346             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    2347             :         real(RKC)                                       :: quadGK
    2348             :     end function
    2349             : #endif
    2350             : 
    2351             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2352             : 
    2353             : #if RK5_ENABLED
    2354             :     module function getQuadGK15_FI_RK5(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    2355             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    2356             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK15_FI_RK5
    2357             : #endif
    2358             :         use pm_kind, only: RKC => RK5
    2359             :         procedure(real(RKC))                            :: getFunc
    2360             :         real(RKC)       , intent(in)                    :: lb
    2361             :         type(pinf_type) , intent(in)                    :: ub
    2362             :         type(GK15_type) , intent(in)                    :: qrule
    2363             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    2364             :         real(RKC)                                       :: quadGK
    2365             :     end function
    2366             : #endif
    2367             : 
    2368             : #if RK4_ENABLED
    2369             :     module function getQuadGK15_FI_RK4(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    2370             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    2371             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK15_FI_RK4
    2372             : #endif
    2373             :         use pm_kind, only: RKC => RK4
    2374             :         procedure(real(RKC))                            :: getFunc
    2375             :         real(RKC)       , intent(in)                    :: lb
    2376             :         type(pinf_type) , intent(in)                    :: ub
    2377             :         type(GK15_type) , intent(in)                    :: qrule
    2378             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    2379             :         real(RKC)                                       :: quadGK
    2380             :     end function
    2381             : #endif
    2382             : 
    2383             : #if RK3_ENABLED
    2384             :     module function getQuadGK15_FI_RK3(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    2385             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    2386             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK15_FI_RK3
    2387             : #endif
    2388             :         use pm_kind, only: RKC => RK3
    2389             :         procedure(real(RKC))                            :: getFunc
    2390             :         real(RKC)       , intent(in)                    :: lb
    2391             :         type(pinf_type) , intent(in)                    :: ub
    2392             :         type(GK15_type) , intent(in)                    :: qrule
    2393             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    2394             :         real(RKC)                                       :: quadGK
    2395             :     end function
    2396             : #endif
    2397             : 
    2398             : #if RK2_ENABLED
    2399             :     module function getQuadGK15_FI_RK2(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    2400             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    2401             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK15_FI_RK2
    2402             : #endif
    2403             :         use pm_kind, only: RKC => RK2
    2404             :         procedure(real(RKC))                            :: getFunc
    2405             :         real(RKC)       , intent(in)                    :: lb
    2406             :         type(pinf_type) , intent(in)                    :: ub
    2407             :         type(GK15_type) , intent(in)                    :: qrule
    2408             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    2409             :         real(RKC)                                       :: quadGK
    2410             :     end function
    2411             : #endif
    2412             : 
    2413             : #if RK1_ENABLED
    2414             :     module function getQuadGK15_FI_RK1(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    2415             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    2416             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK15_FI_RK1
    2417             : #endif
    2418             :         use pm_kind, only: RKC => RK1
    2419             :         procedure(real(RKC))                            :: getFunc
    2420             :         real(RKC)       , intent(in)                    :: lb
    2421             :         type(pinf_type) , intent(in)                    :: ub
    2422             :         type(GK15_type) , intent(in)                    :: qrule
    2423             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    2424             :         real(RKC)                                       :: quadGK
    2425             :     end function
    2426             : #endif
    2427             : 
    2428             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2429             : 
    2430             : #if RK5_ENABLED
    2431             :     module function getQuadGK15_IF_RK5(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    2432             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    2433             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK15_IF_RK5
    2434             : #endif
    2435             :         use pm_kind, only: RKC => RK5
    2436             :         procedure(real(RKC))                            :: getFunc
    2437             :         type(ninf_type) , intent(in)                    :: lb
    2438             :         real(RKC)       , intent(in)                    :: ub
    2439             :         type(GK15_type) , intent(in)                    :: qrule
    2440             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    2441             :         real(RKC)                                       :: quadGK
    2442             :     end function
    2443             : #endif
    2444             : 
    2445             : #if RK4_ENABLED
    2446             :     module function getQuadGK15_IF_RK4(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    2447             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    2448             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK15_IF_RK4
    2449             : #endif
    2450             :         use pm_kind, only: RKC => RK4
    2451             :         procedure(real(RKC))                            :: getFunc
    2452             :         type(ninf_type) , intent(in)                    :: lb
    2453             :         real(RKC)       , intent(in)                    :: ub
    2454             :         type(GK15_type) , intent(in)                    :: qrule
    2455             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    2456             :         real(RKC)                                       :: quadGK
    2457             :     end function
    2458             : #endif
    2459             : 
    2460             : #if RK3_ENABLED
    2461             :     module function getQuadGK15_IF_RK3(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    2462             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    2463             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK15_IF_RK3
    2464             : #endif
    2465             :         use pm_kind, only: RKC => RK3
    2466             :         procedure(real(RKC))                            :: getFunc
    2467             :         type(ninf_type) , intent(in)                    :: lb
    2468             :         real(RKC)       , intent(in)                    :: ub
    2469             :         type(GK15_type) , intent(in)                    :: qrule
    2470             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    2471             :         real(RKC)                                       :: quadGK
    2472             :     end function
    2473             : #endif
    2474             : 
    2475             : #if RK2_ENABLED
    2476             :     module function getQuadGK15_IF_RK2(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    2477             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    2478             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK15_IF_RK2
    2479             : #endif
    2480             :         use pm_kind, only: RKC => RK2
    2481             :         procedure(real(RKC))                            :: getFunc
    2482             :         type(ninf_type) , intent(in)                    :: lb
    2483             :         real(RKC)       , intent(in)                    :: ub
    2484             :         type(GK15_type) , intent(in)                    :: qrule
    2485             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    2486             :         real(RKC)                                       :: quadGK
    2487             :     end function
    2488             : #endif
    2489             : 
    2490             : #if RK1_ENABLED
    2491             :     module function getQuadGK15_IF_RK1(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    2492             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    2493             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK15_IF_RK1
    2494             : #endif
    2495             :         use pm_kind, only: RKC => RK1
    2496             :         procedure(real(RKC))                            :: getFunc
    2497             :         type(ninf_type) , intent(in)                    :: lb
    2498             :         real(RKC)       , intent(in)                    :: ub
    2499             :         type(GK15_type) , intent(in)                    :: qrule
    2500             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    2501             :         real(RKC)                                       :: quadGK
    2502             :     end function
    2503             : #endif
    2504             : 
    2505             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2506             : 
    2507             : #if RK5_ENABLED
    2508             :     module function getQuadGK15_II_RK5(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    2509             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    2510             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK15_II_RK5
    2511             : #endif
    2512             :         use pm_kind, only: RKC => RK5
    2513             :         procedure(real(RKC))                            :: getFunc
    2514             :         type(ninf_type) , intent(in)                    :: lb
    2515             :         type(pinf_type) , intent(in)                    :: ub
    2516             :         type(GK15_type) , intent(in)                    :: qrule
    2517             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    2518             :         real(RKC)                                       :: quadGK
    2519             :     end function
    2520             : #endif
    2521             : 
    2522             : #if RK4_ENABLED
    2523             :     module function getQuadGK15_II_RK4(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    2524             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    2525             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK15_II_RK4
    2526             : #endif
    2527             :         use pm_kind, only: RKC => RK4
    2528             :         procedure(real(RKC))                            :: getFunc
    2529             :         type(ninf_type) , intent(in)                    :: lb
    2530             :         type(pinf_type) , intent(in)                    :: ub
    2531             :         type(GK15_type) , intent(in)                    :: qrule
    2532             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    2533             :         real(RKC)                                       :: quadGK
    2534             :     end function
    2535             : #endif
    2536             : 
    2537             : #if RK3_ENABLED
    2538             :     module function getQuadGK15_II_RK3(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    2539             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    2540             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK15_II_RK3
    2541             : #endif
    2542             :         use pm_kind, only: RKC => RK3
    2543             :         procedure(real(RKC))                            :: getFunc
    2544             :         type(ninf_type) , intent(in)                    :: lb
    2545             :         type(pinf_type) , intent(in)                    :: ub
    2546             :         type(GK15_type) , intent(in)                    :: qrule
    2547             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    2548             :         real(RKC)                                       :: quadGK
    2549             :     end function
    2550             : #endif
    2551             : 
    2552             : #if RK2_ENABLED
    2553             :     module function getQuadGK15_II_RK2(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    2554             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    2555             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK15_II_RK2
    2556             : #endif
    2557             :         use pm_kind, only: RKC => RK2
    2558             :         procedure(real(RKC))                            :: getFunc
    2559             :         type(ninf_type) , intent(in)                    :: lb
    2560             :         type(pinf_type) , intent(in)                    :: ub
    2561             :         type(GK15_type) , intent(in)                    :: qrule
    2562             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    2563             :         real(RKC)                                       :: quadGK
    2564             :     end function
    2565             : #endif
    2566             : 
    2567             : #if RK1_ENABLED
    2568             :     module function getQuadGK15_II_RK1(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    2569             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    2570             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK15_II_RK1
    2571             : #endif
    2572             :         use pm_kind, only: RKC => RK1
    2573             :         procedure(real(RKC))                            :: getFunc
    2574             :         type(ninf_type) , intent(in)                    :: lb
    2575             :         type(pinf_type) , intent(in)                    :: ub
    2576             :         type(GK15_type) , intent(in)                    :: qrule
    2577             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    2578             :         real(RKC)                                       :: quadGK
    2579             :     end function
    2580             : #endif
    2581             : 
    2582             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2583             : 
    2584             :     end interface
    2585             : 
    2586             :     ! GK21
    2587             : 
    2588             :     interface getQuadGK
    2589             : 
    2590             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2591             : 
    2592             : #if RK5_ENABLED
    2593             :     module function getQuadGK21_FF_RK5(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    2594             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    2595             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK21_FF_RK5
    2596             : #endif
    2597             :         use pm_kind, only: RKC => RK5
    2598             :         procedure(real(RKC))                            :: getFunc
    2599             :         real(RKC)       , intent(in)                    :: lb
    2600             :         real(RKC)       , intent(in)                    :: ub
    2601             :         type(GK21_type) , intent(in)                    :: qrule
    2602             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    2603             :         real(RKC)                                       :: quadGK
    2604             :     end function
    2605             : #endif
    2606             : 
    2607             : #if RK4_ENABLED
    2608             :     module function getQuadGK21_FF_RK4(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    2609             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    2610             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK21_FF_RK4
    2611             : #endif
    2612             :         use pm_kind, only: RKC => RK4
    2613             :         procedure(real(RKC))                            :: getFunc
    2614             :         real(RKC)       , intent(in)                    :: lb
    2615             :         real(RKC)       , intent(in)                    :: ub
    2616             :         type(GK21_type) , intent(in)                    :: qrule
    2617             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    2618             :         real(RKC)                                       :: quadGK
    2619             :     end function
    2620             : #endif
    2621             : 
    2622             : #if RK3_ENABLED
    2623             :     module function getQuadGK21_FF_RK3(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    2624             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    2625             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK21_FF_RK3
    2626             : #endif
    2627             :         use pm_kind, only: RKC => RK3
    2628             :         procedure(real(RKC))                            :: getFunc
    2629             :         real(RKC)       , intent(in)                    :: lb
    2630             :         real(RKC)       , intent(in)                    :: ub
    2631             :         type(GK21_type) , intent(in)                    :: qrule
    2632             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    2633             :         real(RKC)                                       :: quadGK
    2634             :     end function
    2635             : #endif
    2636             : 
    2637             : #if RK2_ENABLED
    2638             :     module function getQuadGK21_FF_RK2(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    2639             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    2640             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK21_FF_RK2
    2641             : #endif
    2642             :         use pm_kind, only: RKC => RK2
    2643             :         procedure(real(RKC))                            :: getFunc
    2644             :         real(RKC)       , intent(in)                    :: lb
    2645             :         real(RKC)       , intent(in)                    :: ub
    2646             :         type(GK21_type) , intent(in)                    :: qrule
    2647             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    2648             :         real(RKC)                                       :: quadGK
    2649             :     end function
    2650             : #endif
    2651             : 
    2652             : #if RK1_ENABLED
    2653             :     module function getQuadGK21_FF_RK1(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    2654             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    2655             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK21_FF_RK1
    2656             : #endif
    2657             :         use pm_kind, only: RKC => RK1
    2658             :         procedure(real(RKC))                            :: getFunc
    2659             :         real(RKC)       , intent(in)                    :: lb
    2660             :         real(RKC)       , intent(in)                    :: ub
    2661             :         type(GK21_type) , intent(in)                    :: qrule
    2662             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    2663             :         real(RKC)                                       :: quadGK
    2664             :     end function
    2665             : #endif
    2666             : 
    2667             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2668             : 
    2669             : #if RK5_ENABLED
    2670             :     module function getQuadGK21_FI_RK5(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    2671             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    2672             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK21_FI_RK5
    2673             : #endif
    2674             :         use pm_kind, only: RKC => RK5
    2675             :         procedure(real(RKC))                            :: getFunc
    2676             :         real(RKC)       , intent(in)                    :: lb
    2677             :         type(pinf_type) , intent(in)                    :: ub
    2678             :         type(GK21_type) , intent(in)                    :: qrule
    2679             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    2680             :         real(RKC)                                       :: quadGK
    2681             :     end function
    2682             : #endif
    2683             : 
    2684             : #if RK4_ENABLED
    2685             :     module function getQuadGK21_FI_RK4(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    2686             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    2687             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK21_FI_RK4
    2688             : #endif
    2689             :         use pm_kind, only: RKC => RK4
    2690             :         procedure(real(RKC))                            :: getFunc
    2691             :         real(RKC)       , intent(in)                    :: lb
    2692             :         type(pinf_type) , intent(in)                    :: ub
    2693             :         type(GK21_type) , intent(in)                    :: qrule
    2694             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    2695             :         real(RKC)                                       :: quadGK
    2696             :     end function
    2697             : #endif
    2698             : 
    2699             : #if RK3_ENABLED
    2700             :     module function getQuadGK21_FI_RK3(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    2701             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    2702             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK21_FI_RK3
    2703             : #endif
    2704             :         use pm_kind, only: RKC => RK3
    2705             :         procedure(real(RKC))                            :: getFunc
    2706             :         real(RKC)       , intent(in)                    :: lb
    2707             :         type(pinf_type) , intent(in)                    :: ub
    2708             :         type(GK21_type) , intent(in)                    :: qrule
    2709             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    2710             :         real(RKC)                                       :: quadGK
    2711             :     end function
    2712             : #endif
    2713             : 
    2714             : #if RK2_ENABLED
    2715             :     module function getQuadGK21_FI_RK2(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    2716             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    2717             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK21_FI_RK2
    2718             : #endif
    2719             :         use pm_kind, only: RKC => RK2
    2720             :         procedure(real(RKC))                            :: getFunc
    2721             :         real(RKC)       , intent(in)                    :: lb
    2722             :         type(pinf_type) , intent(in)                    :: ub
    2723             :         type(GK21_type) , intent(in)                    :: qrule
    2724             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    2725             :         real(RKC)                                       :: quadGK
    2726             :     end function
    2727             : #endif
    2728             : 
    2729             : #if RK1_ENABLED
    2730             :     module function getQuadGK21_FI_RK1(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    2731             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    2732             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK21_FI_RK1
    2733             : #endif
    2734             :         use pm_kind, only: RKC => RK1
    2735             :         procedure(real(RKC))                            :: getFunc
    2736             :         real(RKC)       , intent(in)                    :: lb
    2737             :         type(pinf_type) , intent(in)                    :: ub
    2738             :         type(GK21_type) , intent(in)                    :: qrule
    2739             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    2740             :         real(RKC)                                       :: quadGK
    2741             :     end function
    2742             : #endif
    2743             : 
    2744             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2745             : 
    2746             : #if RK5_ENABLED
    2747             :     module function getQuadGK21_IF_RK5(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    2748             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    2749             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK21_IF_RK5
    2750             : #endif
    2751             :         use pm_kind, only: RKC => RK5
    2752             :         procedure(real(RKC))                            :: getFunc
    2753             :         type(ninf_type) , intent(in)                    :: lb
    2754             :         real(RKC)       , intent(in)                    :: ub
    2755             :         type(GK21_type) , intent(in)                    :: qrule
    2756             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    2757             :         real(RKC)                                       :: quadGK
    2758             :     end function
    2759             : #endif
    2760             : 
    2761             : #if RK4_ENABLED
    2762             :     module function getQuadGK21_IF_RK4(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    2763             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    2764             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK21_IF_RK4
    2765             : #endif
    2766             :         use pm_kind, only: RKC => RK4
    2767             :         procedure(real(RKC))                            :: getFunc
    2768             :         type(ninf_type) , intent(in)                    :: lb
    2769             :         real(RKC)       , intent(in)                    :: ub
    2770             :         type(GK21_type) , intent(in)                    :: qrule
    2771             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    2772             :         real(RKC)                                       :: quadGK
    2773             :     end function
    2774             : #endif
    2775             : 
    2776             : #if RK3_ENABLED
    2777             :     module function getQuadGK21_IF_RK3(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    2778             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    2779             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK21_IF_RK3
    2780             : #endif
    2781             :         use pm_kind, only: RKC => RK3
    2782             :         procedure(real(RKC))                            :: getFunc
    2783             :         type(ninf_type) , intent(in)                    :: lb
    2784             :         real(RKC)       , intent(in)                    :: ub
    2785             :         type(GK21_type) , intent(in)                    :: qrule
    2786             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    2787             :         real(RKC)                                       :: quadGK
    2788             :     end function
    2789             : #endif
    2790             : 
    2791             : #if RK2_ENABLED
    2792             :     module function getQuadGK21_IF_RK2(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    2793             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    2794             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK21_IF_RK2
    2795             : #endif
    2796             :         use pm_kind, only: RKC => RK2
    2797             :         procedure(real(RKC))                            :: getFunc
    2798             :         type(ninf_type) , intent(in)                    :: lb
    2799             :         real(RKC)       , intent(in)                    :: ub
    2800             :         type(GK21_type) , intent(in)                    :: qrule
    2801             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    2802             :         real(RKC)                                       :: quadGK
    2803             :     end function
    2804             : #endif
    2805             : 
    2806             : #if RK1_ENABLED
    2807             :     module function getQuadGK21_IF_RK1(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    2808             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    2809             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK21_IF_RK1
    2810             : #endif
    2811             :         use pm_kind, only: RKC => RK1
    2812             :         procedure(real(RKC))                            :: getFunc
    2813             :         type(ninf_type) , intent(in)                    :: lb
    2814             :         real(RKC)       , intent(in)                    :: ub
    2815             :         type(GK21_type) , intent(in)                    :: qrule
    2816             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    2817             :         real(RKC)                                       :: quadGK
    2818             :     end function
    2819             : #endif
    2820             : 
    2821             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2822             : 
    2823             : #if RK5_ENABLED
    2824             :     module function getQuadGK21_II_RK5(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    2825             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    2826             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK21_II_RK5
    2827             : #endif
    2828             :         use pm_kind, only: RKC => RK5
    2829             :         procedure(real(RKC))                            :: getFunc
    2830             :         type(ninf_type) , intent(in)                    :: lb
    2831             :         type(pinf_type) , intent(in)                    :: ub
    2832             :         type(GK21_type) , intent(in)                    :: qrule
    2833             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    2834             :         real(RKC)                                       :: quadGK
    2835             :     end function
    2836             : #endif
    2837             : 
    2838             : #if RK4_ENABLED
    2839             :     module function getQuadGK21_II_RK4(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    2840             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    2841             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK21_II_RK4
    2842             : #endif
    2843             :         use pm_kind, only: RKC => RK4
    2844             :         procedure(real(RKC))                            :: getFunc
    2845             :         type(ninf_type) , intent(in)                    :: lb
    2846             :         type(pinf_type) , intent(in)                    :: ub
    2847             :         type(GK21_type) , intent(in)                    :: qrule
    2848             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    2849             :         real(RKC)                                       :: quadGK
    2850             :     end function
    2851             : #endif
    2852             : 
    2853             : #if RK3_ENABLED
    2854             :     module function getQuadGK21_II_RK3(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    2855             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    2856             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK21_II_RK3
    2857             : #endif
    2858             :         use pm_kind, only: RKC => RK3
    2859             :         procedure(real(RKC))                            :: getFunc
    2860             :         type(ninf_type) , intent(in)                    :: lb
    2861             :         type(pinf_type) , intent(in)                    :: ub
    2862             :         type(GK21_type) , intent(in)                    :: qrule
    2863             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    2864             :         real(RKC)                                       :: quadGK
    2865             :     end function
    2866             : #endif
    2867             : 
    2868             : #if RK2_ENABLED
    2869             :     module function getQuadGK21_II_RK2(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    2870             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    2871             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK21_II_RK2
    2872             : #endif
    2873             :         use pm_kind, only: RKC => RK2
    2874             :         procedure(real(RKC))                            :: getFunc
    2875             :         type(ninf_type) , intent(in)                    :: lb
    2876             :         type(pinf_type) , intent(in)                    :: ub
    2877             :         type(GK21_type) , intent(in)                    :: qrule
    2878             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    2879             :         real(RKC)                                       :: quadGK
    2880             :     end function
    2881             : #endif
    2882             : 
    2883             : #if RK1_ENABLED
    2884             :     module function getQuadGK21_II_RK1(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    2885             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    2886             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK21_II_RK1
    2887             : #endif
    2888             :         use pm_kind, only: RKC => RK1
    2889             :         procedure(real(RKC))                            :: getFunc
    2890             :         type(ninf_type) , intent(in)                    :: lb
    2891             :         type(pinf_type) , intent(in)                    :: ub
    2892             :         type(GK21_type) , intent(in)                    :: qrule
    2893             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    2894             :         real(RKC)                                       :: quadGK
    2895             :     end function
    2896             : #endif
    2897             : 
    2898             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2899             : 
    2900             :     end interface
    2901             : 
    2902             :     ! GK31
    2903             : 
    2904             :     interface getQuadGK
    2905             : 
    2906             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2907             : 
    2908             : #if RK5_ENABLED
    2909             :     module function getQuadGK31_FF_RK5(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    2910             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    2911             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK31_FF_RK5
    2912             : #endif
    2913             :         use pm_kind, only: RKC => RK5
    2914             :         procedure(real(RKC))                            :: getFunc
    2915             :         real(RKC)       , intent(in)                    :: lb
    2916             :         real(RKC)       , intent(in)                    :: ub
    2917             :         type(GK31_type) , intent(in)                    :: qrule
    2918             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    2919             :         real(RKC)                                       :: quadGK
    2920             :     end function
    2921             : #endif
    2922             : 
    2923             : #if RK4_ENABLED
    2924             :     module function getQuadGK31_FF_RK4(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    2925             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    2926             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK31_FF_RK4
    2927             : #endif
    2928             :         use pm_kind, only: RKC => RK4
    2929             :         procedure(real(RKC))                            :: getFunc
    2930             :         real(RKC)       , intent(in)                    :: lb
    2931             :         real(RKC)       , intent(in)                    :: ub
    2932             :         type(GK31_type) , intent(in)                    :: qrule
    2933             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    2934             :         real(RKC)                                       :: quadGK
    2935             :     end function
    2936             : #endif
    2937             : 
    2938             : #if RK3_ENABLED
    2939             :     module function getQuadGK31_FF_RK3(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    2940             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    2941             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK31_FF_RK3
    2942             : #endif
    2943             :         use pm_kind, only: RKC => RK3
    2944             :         procedure(real(RKC))                            :: getFunc
    2945             :         real(RKC)       , intent(in)                    :: lb
    2946             :         real(RKC)       , intent(in)                    :: ub
    2947             :         type(GK31_type) , intent(in)                    :: qrule
    2948             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    2949             :         real(RKC)                                       :: quadGK
    2950             :     end function
    2951             : #endif
    2952             : 
    2953             : #if RK2_ENABLED
    2954             :     module function getQuadGK31_FF_RK2(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    2955             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    2956             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK31_FF_RK2
    2957             : #endif
    2958             :         use pm_kind, only: RKC => RK2
    2959             :         procedure(real(RKC))                            :: getFunc
    2960             :         real(RKC)       , intent(in)                    :: lb
    2961             :         real(RKC)       , intent(in)                    :: ub
    2962             :         type(GK31_type) , intent(in)                    :: qrule
    2963             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    2964             :         real(RKC)                                       :: quadGK
    2965             :     end function
    2966             : #endif
    2967             : 
    2968             : #if RK1_ENABLED
    2969             :     module function getQuadGK31_FF_RK1(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    2970             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    2971             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK31_FF_RK1
    2972             : #endif
    2973             :         use pm_kind, only: RKC => RK1
    2974             :         procedure(real(RKC))                            :: getFunc
    2975             :         real(RKC)       , intent(in)                    :: lb
    2976             :         real(RKC)       , intent(in)                    :: ub
    2977             :         type(GK31_type) , intent(in)                    :: qrule
    2978             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    2979             :         real(RKC)                                       :: quadGK
    2980             :     end function
    2981             : #endif
    2982             : 
    2983             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2984             : 
    2985             : #if RK5_ENABLED
    2986             :     module function getQuadGK31_FI_RK5(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    2987             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    2988             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK31_FI_RK5
    2989             : #endif
    2990             :         use pm_kind, only: RKC => RK5
    2991             :         procedure(real(RKC))                            :: getFunc
    2992             :         real(RKC)       , intent(in)                    :: lb
    2993             :         type(pinf_type) , intent(in)                    :: ub
    2994             :         type(GK31_type) , intent(in)                    :: qrule
    2995             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    2996             :         real(RKC)                                       :: quadGK
    2997             :     end function
    2998             : #endif
    2999             : 
    3000             : #if RK4_ENABLED
    3001             :     module function getQuadGK31_FI_RK4(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    3002             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    3003             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK31_FI_RK4
    3004             : #endif
    3005             :         use pm_kind, only: RKC => RK4
    3006             :         procedure(real(RKC))                            :: getFunc
    3007             :         real(RKC)       , intent(in)                    :: lb
    3008             :         type(pinf_type) , intent(in)                    :: ub
    3009             :         type(GK31_type) , intent(in)                    :: qrule
    3010             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    3011             :         real(RKC)                                       :: quadGK
    3012             :     end function
    3013             : #endif
    3014             : 
    3015             : #if RK3_ENABLED
    3016             :     module function getQuadGK31_FI_RK3(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    3017             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    3018             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK31_FI_RK3
    3019             : #endif
    3020             :         use pm_kind, only: RKC => RK3
    3021             :         procedure(real(RKC))                            :: getFunc
    3022             :         real(RKC)       , intent(in)                    :: lb
    3023             :         type(pinf_type) , intent(in)                    :: ub
    3024             :         type(GK31_type) , intent(in)                    :: qrule
    3025             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    3026             :         real(RKC)                                       :: quadGK
    3027             :     end function
    3028             : #endif
    3029             : 
    3030             : #if RK2_ENABLED
    3031             :     module function getQuadGK31_FI_RK2(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    3032             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    3033             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK31_FI_RK2
    3034             : #endif
    3035             :         use pm_kind, only: RKC => RK2
    3036             :         procedure(real(RKC))                            :: getFunc
    3037             :         real(RKC)       , intent(in)                    :: lb
    3038             :         type(pinf_type) , intent(in)                    :: ub
    3039             :         type(GK31_type) , intent(in)                    :: qrule
    3040             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    3041             :         real(RKC)                                       :: quadGK
    3042             :     end function
    3043             : #endif
    3044             : 
    3045             : #if RK1_ENABLED
    3046             :     module function getQuadGK31_FI_RK1(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    3047             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    3048             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK31_FI_RK1
    3049             : #endif
    3050             :         use pm_kind, only: RKC => RK1
    3051             :         procedure(real(RKC))                            :: getFunc
    3052             :         real(RKC)       , intent(in)                    :: lb
    3053             :         type(pinf_type) , intent(in)                    :: ub
    3054             :         type(GK31_type) , intent(in)                    :: qrule
    3055             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    3056             :         real(RKC)                                       :: quadGK
    3057             :     end function
    3058             : #endif
    3059             : 
    3060             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3061             : 
    3062             : #if RK5_ENABLED
    3063             :     module function getQuadGK31_IF_RK5(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    3064             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    3065             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK31_IF_RK5
    3066             : #endif
    3067             :         use pm_kind, only: RKC => RK5
    3068             :         procedure(real(RKC))                            :: getFunc
    3069             :         type(ninf_type) , intent(in)                    :: lb
    3070             :         real(RKC)       , intent(in)                    :: ub
    3071             :         type(GK31_type) , intent(in)                    :: qrule
    3072             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    3073             :         real(RKC)                                       :: quadGK
    3074             :     end function
    3075             : #endif
    3076             : 
    3077             : #if RK4_ENABLED
    3078             :     module function getQuadGK31_IF_RK4(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    3079             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    3080             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK31_IF_RK4
    3081             : #endif
    3082             :         use pm_kind, only: RKC => RK4
    3083             :         procedure(real(RKC))                            :: getFunc
    3084             :         type(ninf_type) , intent(in)                    :: lb
    3085             :         real(RKC)       , intent(in)                    :: ub
    3086             :         type(GK31_type) , intent(in)                    :: qrule
    3087             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    3088             :         real(RKC)                                       :: quadGK
    3089             :     end function
    3090             : #endif
    3091             : 
    3092             : #if RK3_ENABLED
    3093             :     module function getQuadGK31_IF_RK3(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    3094             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    3095             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK31_IF_RK3
    3096             : #endif
    3097             :         use pm_kind, only: RKC => RK3
    3098             :         procedure(real(RKC))                            :: getFunc
    3099             :         type(ninf_type) , intent(in)                    :: lb
    3100             :         real(RKC)       , intent(in)                    :: ub
    3101             :         type(GK31_type) , intent(in)                    :: qrule
    3102             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    3103             :         real(RKC)                                       :: quadGK
    3104             :     end function
    3105             : #endif
    3106             : 
    3107             : #if RK2_ENABLED
    3108             :     module function getQuadGK31_IF_RK2(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    3109             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    3110             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK31_IF_RK2
    3111             : #endif
    3112             :         use pm_kind, only: RKC => RK2
    3113             :         procedure(real(RKC))                            :: getFunc
    3114             :         type(ninf_type) , intent(in)                    :: lb
    3115             :         real(RKC)       , intent(in)                    :: ub
    3116             :         type(GK31_type) , intent(in)                    :: qrule
    3117             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    3118             :         real(RKC)                                       :: quadGK
    3119             :     end function
    3120             : #endif
    3121             : 
    3122             : #if RK1_ENABLED
    3123             :     module function getQuadGK31_IF_RK1(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    3124             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    3125             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK31_IF_RK1
    3126             : #endif
    3127             :         use pm_kind, only: RKC => RK1
    3128             :         procedure(real(RKC))                            :: getFunc
    3129             :         type(ninf_type) , intent(in)                    :: lb
    3130             :         real(RKC)       , intent(in)                    :: ub
    3131             :         type(GK31_type) , intent(in)                    :: qrule
    3132             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    3133             :         real(RKC)                                       :: quadGK
    3134             :     end function
    3135             : #endif
    3136             : 
    3137             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3138             : 
    3139             : #if RK5_ENABLED
    3140             :     module function getQuadGK31_II_RK5(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    3141             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    3142             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK31_II_RK5
    3143             : #endif
    3144             :         use pm_kind, only: RKC => RK5
    3145             :         procedure(real(RKC))                            :: getFunc
    3146             :         type(ninf_type) , intent(in)                    :: lb
    3147             :         type(pinf_type) , intent(in)                    :: ub
    3148             :         type(GK31_type) , intent(in)                    :: qrule
    3149             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    3150             :         real(RKC)                                       :: quadGK
    3151             :     end function
    3152             : #endif
    3153             : 
    3154             : #if RK4_ENABLED
    3155             :     module function getQuadGK31_II_RK4(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    3156             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    3157             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK31_II_RK4
    3158             : #endif
    3159             :         use pm_kind, only: RKC => RK4
    3160             :         procedure(real(RKC))                            :: getFunc
    3161             :         type(ninf_type) , intent(in)                    :: lb
    3162             :         type(pinf_type) , intent(in)                    :: ub
    3163             :         type(GK31_type) , intent(in)                    :: qrule
    3164             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    3165             :         real(RKC)                                       :: quadGK
    3166             :     end function
    3167             : #endif
    3168             : 
    3169             : #if RK3_ENABLED
    3170             :     module function getQuadGK31_II_RK3(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    3171             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    3172             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK31_II_RK3
    3173             : #endif
    3174             :         use pm_kind, only: RKC => RK3
    3175             :         procedure(real(RKC))                            :: getFunc
    3176             :         type(ninf_type) , intent(in)                    :: lb
    3177             :         type(pinf_type) , intent(in)                    :: ub
    3178             :         type(GK31_type) , intent(in)                    :: qrule
    3179             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    3180             :         real(RKC)                                       :: quadGK
    3181             :     end function
    3182             : #endif
    3183             : 
    3184             : #if RK2_ENABLED
    3185             :     module function getQuadGK31_II_RK2(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    3186             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    3187             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK31_II_RK2
    3188             : #endif
    3189             :         use pm_kind, only: RKC => RK2
    3190             :         procedure(real(RKC))                            :: getFunc
    3191             :         type(ninf_type) , intent(in)                    :: lb
    3192             :         type(pinf_type) , intent(in)                    :: ub
    3193             :         type(GK31_type) , intent(in)                    :: qrule
    3194             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    3195             :         real(RKC)                                       :: quadGK
    3196             :     end function
    3197             : #endif
    3198             : 
    3199             : #if RK1_ENABLED
    3200             :     module function getQuadGK31_II_RK1(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    3201             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    3202             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK31_II_RK1
    3203             : #endif
    3204             :         use pm_kind, only: RKC => RK1
    3205             :         procedure(real(RKC))                            :: getFunc
    3206             :         type(ninf_type) , intent(in)                    :: lb
    3207             :         type(pinf_type) , intent(in)                    :: ub
    3208             :         type(GK31_type) , intent(in)                    :: qrule
    3209             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    3210             :         real(RKC)                                       :: quadGK
    3211             :     end function
    3212             : #endif
    3213             : 
    3214             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3215             : 
    3216             :     end interface
    3217             : 
    3218             :     ! GK41
    3219             : 
    3220             :     interface getQuadGK
    3221             : 
    3222             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3223             : 
    3224             : #if RK5_ENABLED
    3225             :     module function getQuadGK41_FF_RK5(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    3226             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    3227             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK41_FF_RK5
    3228             : #endif
    3229             :         use pm_kind, only: RKC => RK5
    3230             :         procedure(real(RKC))                            :: getFunc
    3231             :         real(RKC)       , intent(in)                    :: lb
    3232             :         real(RKC)       , intent(in)                    :: ub
    3233             :         type(GK41_type) , intent(in)                    :: qrule
    3234             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    3235             :         real(RKC)                                       :: quadGK
    3236             :     end function
    3237             : #endif
    3238             : 
    3239             : #if RK4_ENABLED
    3240             :     module function getQuadGK41_FF_RK4(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    3241             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    3242             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK41_FF_RK4
    3243             : #endif
    3244             :         use pm_kind, only: RKC => RK4
    3245             :         procedure(real(RKC))                            :: getFunc
    3246             :         real(RKC)       , intent(in)                    :: lb
    3247             :         real(RKC)       , intent(in)                    :: ub
    3248             :         type(GK41_type) , intent(in)                    :: qrule
    3249             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    3250             :         real(RKC)                                       :: quadGK
    3251             :     end function
    3252             : #endif
    3253             : 
    3254             : #if RK3_ENABLED
    3255             :     module function getQuadGK41_FF_RK3(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    3256             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    3257             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK41_FF_RK3
    3258             : #endif
    3259             :         use pm_kind, only: RKC => RK3
    3260             :         procedure(real(RKC))                            :: getFunc
    3261             :         real(RKC)       , intent(in)                    :: lb
    3262             :         real(RKC)       , intent(in)                    :: ub
    3263             :         type(GK41_type) , intent(in)                    :: qrule
    3264             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    3265             :         real(RKC)                                       :: quadGK
    3266             :     end function
    3267             : #endif
    3268             : 
    3269             : #if RK2_ENABLED
    3270             :     module function getQuadGK41_FF_RK2(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    3271             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    3272             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK41_FF_RK2
    3273             : #endif
    3274             :         use pm_kind, only: RKC => RK2
    3275             :         procedure(real(RKC))                            :: getFunc
    3276             :         real(RKC)       , intent(in)                    :: lb
    3277             :         real(RKC)       , intent(in)                    :: ub
    3278             :         type(GK41_type) , intent(in)                    :: qrule
    3279             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    3280             :         real(RKC)                                       :: quadGK
    3281             :     end function
    3282             : #endif
    3283             : 
    3284             : #if RK1_ENABLED
    3285             :     module function getQuadGK41_FF_RK1(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    3286             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    3287             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK41_FF_RK1
    3288             : #endif
    3289             :         use pm_kind, only: RKC => RK1
    3290             :         procedure(real(RKC))                            :: getFunc
    3291             :         real(RKC)       , intent(in)                    :: lb
    3292             :         real(RKC)       , intent(in)                    :: ub
    3293             :         type(GK41_type) , intent(in)                    :: qrule
    3294             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    3295             :         real(RKC)                                       :: quadGK
    3296             :     end function
    3297             : #endif
    3298             : 
    3299             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3300             : 
    3301             : #if RK5_ENABLED
    3302             :     module function getQuadGK41_FI_RK5(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    3303             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    3304             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK41_FI_RK5
    3305             : #endif
    3306             :         use pm_kind, only: RKC => RK5
    3307             :         procedure(real(RKC))                            :: getFunc
    3308             :         real(RKC)       , intent(in)                    :: lb
    3309             :         type(pinf_type) , intent(in)                    :: ub
    3310             :         type(GK41_type) , intent(in)                    :: qrule
    3311             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    3312             :         real(RKC)                                       :: quadGK
    3313             :     end function
    3314             : #endif
    3315             : 
    3316             : #if RK4_ENABLED
    3317             :     module function getQuadGK41_FI_RK4(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    3318             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    3319             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK41_FI_RK4
    3320             : #endif
    3321             :         use pm_kind, only: RKC => RK4
    3322             :         procedure(real(RKC))                            :: getFunc
    3323             :         real(RKC)       , intent(in)                    :: lb
    3324             :         type(pinf_type) , intent(in)                    :: ub
    3325             :         type(GK41_type) , intent(in)                    :: qrule
    3326             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    3327             :         real(RKC)                                       :: quadGK
    3328             :     end function
    3329             : #endif
    3330             : 
    3331             : #if RK3_ENABLED
    3332             :     module function getQuadGK41_FI_RK3(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    3333             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    3334             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK41_FI_RK3
    3335             : #endif
    3336             :         use pm_kind, only: RKC => RK3
    3337             :         procedure(real(RKC))                            :: getFunc
    3338             :         real(RKC)       , intent(in)                    :: lb
    3339             :         type(pinf_type) , intent(in)                    :: ub
    3340             :         type(GK41_type) , intent(in)                    :: qrule
    3341             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    3342             :         real(RKC)                                       :: quadGK
    3343             :     end function
    3344             : #endif
    3345             : 
    3346             : #if RK2_ENABLED
    3347             :     module function getQuadGK41_FI_RK2(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    3348             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    3349             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK41_FI_RK2
    3350             : #endif
    3351             :         use pm_kind, only: RKC => RK2
    3352             :         procedure(real(RKC))                            :: getFunc
    3353             :         real(RKC)       , intent(in)                    :: lb
    3354             :         type(pinf_type) , intent(in)                    :: ub
    3355             :         type(GK41_type) , intent(in)                    :: qrule
    3356             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    3357             :         real(RKC)                                       :: quadGK
    3358             :     end function
    3359             : #endif
    3360             : 
    3361             : #if RK1_ENABLED
    3362             :     module function getQuadGK41_FI_RK1(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    3363             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    3364             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK41_FI_RK1
    3365             : #endif
    3366             :         use pm_kind, only: RKC => RK1
    3367             :         procedure(real(RKC))                            :: getFunc
    3368             :         real(RKC)       , intent(in)                    :: lb
    3369             :         type(pinf_type) , intent(in)                    :: ub
    3370             :         type(GK41_type) , intent(in)                    :: qrule
    3371             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    3372             :         real(RKC)                                       :: quadGK
    3373             :     end function
    3374             : #endif
    3375             : 
    3376             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3377             : 
    3378             : #if RK5_ENABLED
    3379             :     module function getQuadGK41_IF_RK5(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    3380             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    3381             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK41_IF_RK5
    3382             : #endif
    3383             :         use pm_kind, only: RKC => RK5
    3384             :         procedure(real(RKC))                            :: getFunc
    3385             :         type(ninf_type) , intent(in)                    :: lb
    3386             :         real(RKC)       , intent(in)                    :: ub
    3387             :         type(GK41_type) , intent(in)                    :: qrule
    3388             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    3389             :         real(RKC)                                       :: quadGK
    3390             :     end function
    3391             : #endif
    3392             : 
    3393             : #if RK4_ENABLED
    3394             :     module function getQuadGK41_IF_RK4(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    3395             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    3396             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK41_IF_RK4
    3397             : #endif
    3398             :         use pm_kind, only: RKC => RK4
    3399             :         procedure(real(RKC))                            :: getFunc
    3400             :         type(ninf_type) , intent(in)                    :: lb
    3401             :         real(RKC)       , intent(in)                    :: ub
    3402             :         type(GK41_type) , intent(in)                    :: qrule
    3403             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    3404             :         real(RKC)                                       :: quadGK
    3405             :     end function
    3406             : #endif
    3407             : 
    3408             : #if RK3_ENABLED
    3409             :     module function getQuadGK41_IF_RK3(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    3410             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    3411             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK41_IF_RK3
    3412             : #endif
    3413             :         use pm_kind, only: RKC => RK3
    3414             :         procedure(real(RKC))                            :: getFunc
    3415             :         type(ninf_type) , intent(in)                    :: lb
    3416             :         real(RKC)       , intent(in)                    :: ub
    3417             :         type(GK41_type) , intent(in)                    :: qrule
    3418             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    3419             :         real(RKC)                                       :: quadGK
    3420             :     end function
    3421             : #endif
    3422             : 
    3423             : #if RK2_ENABLED
    3424             :     module function getQuadGK41_IF_RK2(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    3425             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    3426             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK41_IF_RK2
    3427             : #endif
    3428             :         use pm_kind, only: RKC => RK2
    3429             :         procedure(real(RKC))                            :: getFunc
    3430             :         type(ninf_type) , intent(in)                    :: lb
    3431             :         real(RKC)       , intent(in)                    :: ub
    3432             :         type(GK41_type) , intent(in)                    :: qrule
    3433             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    3434             :         real(RKC)                                       :: quadGK
    3435             :     end function
    3436             : #endif
    3437             : 
    3438             : #if RK1_ENABLED
    3439             :     module function getQuadGK41_IF_RK1(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    3440             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    3441             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK41_IF_RK1
    3442             : #endif
    3443             :         use pm_kind, only: RKC => RK1
    3444             :         procedure(real(RKC))                            :: getFunc
    3445             :         type(ninf_type) , intent(in)                    :: lb
    3446             :         real(RKC)       , intent(in)                    :: ub
    3447             :         type(GK41_type) , intent(in)                    :: qrule
    3448             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    3449             :         real(RKC)                                       :: quadGK
    3450             :     end function
    3451             : #endif
    3452             : 
    3453             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3454             : 
    3455             : #if RK5_ENABLED
    3456             :     module function getQuadGK41_II_RK5(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    3457             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    3458             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK41_II_RK5
    3459             : #endif
    3460             :         use pm_kind, only: RKC => RK5
    3461             :         procedure(real(RKC))                            :: getFunc
    3462             :         type(ninf_type) , intent(in)                    :: lb
    3463             :         type(pinf_type) , intent(in)                    :: ub
    3464             :         type(GK41_type) , intent(in)                    :: qrule
    3465             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    3466             :         real(RKC)                                       :: quadGK
    3467             :     end function
    3468             : #endif
    3469             : 
    3470             : #if RK4_ENABLED
    3471             :     module function getQuadGK41_II_RK4(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    3472             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    3473             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK41_II_RK4
    3474             : #endif
    3475             :         use pm_kind, only: RKC => RK4
    3476             :         procedure(real(RKC))                            :: getFunc
    3477             :         type(ninf_type) , intent(in)                    :: lb
    3478             :         type(pinf_type) , intent(in)                    :: ub
    3479             :         type(GK41_type) , intent(in)                    :: qrule
    3480             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    3481             :         real(RKC)                                       :: quadGK
    3482             :     end function
    3483             : #endif
    3484             : 
    3485             : #if RK3_ENABLED
    3486             :     module function getQuadGK41_II_RK3(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    3487             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    3488             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK41_II_RK3
    3489             : #endif
    3490             :         use pm_kind, only: RKC => RK3
    3491             :         procedure(real(RKC))                            :: getFunc
    3492             :         type(ninf_type) , intent(in)                    :: lb
    3493             :         type(pinf_type) , intent(in)                    :: ub
    3494             :         type(GK41_type) , intent(in)                    :: qrule
    3495             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    3496             :         real(RKC)                                       :: quadGK
    3497             :     end function
    3498             : #endif
    3499             : 
    3500             : #if RK2_ENABLED
    3501             :     module function getQuadGK41_II_RK2(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    3502             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    3503             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK41_II_RK2
    3504             : #endif
    3505             :         use pm_kind, only: RKC => RK2
    3506             :         procedure(real(RKC))                            :: getFunc
    3507             :         type(ninf_type) , intent(in)                    :: lb
    3508             :         type(pinf_type) , intent(in)                    :: ub
    3509             :         type(GK41_type) , intent(in)                    :: qrule
    3510             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    3511             :         real(RKC)                                       :: quadGK
    3512             :     end function
    3513             : #endif
    3514             : 
    3515             : #if RK1_ENABLED
    3516             :     module function getQuadGK41_II_RK1(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    3517             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    3518             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK41_II_RK1
    3519             : #endif
    3520             :         use pm_kind, only: RKC => RK1
    3521             :         procedure(real(RKC))                            :: getFunc
    3522             :         type(ninf_type) , intent(in)                    :: lb
    3523             :         type(pinf_type) , intent(in)                    :: ub
    3524             :         type(GK41_type) , intent(in)                    :: qrule
    3525             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    3526             :         real(RKC)                                       :: quadGK
    3527             :     end function
    3528             : #endif
    3529             : 
    3530             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3531             : 
    3532             :     end interface
    3533             : 
    3534             :     ! GK51
    3535             : 
    3536             :     interface getQuadGK
    3537             : 
    3538             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3539             : 
    3540             : #if RK5_ENABLED
    3541             :     module function getQuadGK51_FF_RK5(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    3542             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    3543             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK51_FF_RK5
    3544             : #endif
    3545             :         use pm_kind, only: RKC => RK5
    3546             :         procedure(real(RKC))                            :: getFunc
    3547             :         real(RKC)       , intent(in)                    :: lb
    3548             :         real(RKC)       , intent(in)                    :: ub
    3549             :         type(GK51_type) , intent(in)                    :: qrule
    3550             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    3551             :         real(RKC)                                       :: quadGK
    3552             :     end function
    3553             : #endif
    3554             : 
    3555             : #if RK4_ENABLED
    3556             :     module function getQuadGK51_FF_RK4(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    3557             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    3558             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK51_FF_RK4
    3559             : #endif
    3560             :         use pm_kind, only: RKC => RK4
    3561             :         procedure(real(RKC))                            :: getFunc
    3562             :         real(RKC)       , intent(in)                    :: lb
    3563             :         real(RKC)       , intent(in)                    :: ub
    3564             :         type(GK51_type) , intent(in)                    :: qrule
    3565             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    3566             :         real(RKC)                                       :: quadGK
    3567             :     end function
    3568             : #endif
    3569             : 
    3570             : #if RK3_ENABLED
    3571             :     module function getQuadGK51_FF_RK3(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    3572             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    3573             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK51_FF_RK3
    3574             : #endif
    3575             :         use pm_kind, only: RKC => RK3
    3576             :         procedure(real(RKC))                            :: getFunc
    3577             :         real(RKC)       , intent(in)                    :: lb
    3578             :         real(RKC)       , intent(in)                    :: ub
    3579             :         type(GK51_type) , intent(in)                    :: qrule
    3580             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    3581             :         real(RKC)                                       :: quadGK
    3582             :     end function
    3583             : #endif
    3584             : 
    3585             : #if RK2_ENABLED
    3586             :     module function getQuadGK51_FF_RK2(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    3587             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    3588             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK51_FF_RK2
    3589             : #endif
    3590             :         use pm_kind, only: RKC => RK2
    3591             :         procedure(real(RKC))                            :: getFunc
    3592             :         real(RKC)       , intent(in)                    :: lb
    3593             :         real(RKC)       , intent(in)                    :: ub
    3594             :         type(GK51_type) , intent(in)                    :: qrule
    3595             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    3596             :         real(RKC)                                       :: quadGK
    3597             :     end function
    3598             : #endif
    3599             : 
    3600             : #if RK1_ENABLED
    3601             :     module function getQuadGK51_FF_RK1(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    3602             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    3603             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK51_FF_RK1
    3604             : #endif
    3605             :         use pm_kind, only: RKC => RK1
    3606             :         procedure(real(RKC))                            :: getFunc
    3607             :         real(RKC)       , intent(in)                    :: lb
    3608             :         real(RKC)       , intent(in)                    :: ub
    3609             :         type(GK51_type) , intent(in)                    :: qrule
    3610             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    3611             :         real(RKC)                                       :: quadGK
    3612             :     end function
    3613             : #endif
    3614             : 
    3615             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3616             : 
    3617             : #if RK5_ENABLED
    3618             :     module function getQuadGK51_FI_RK5(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    3619             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    3620             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK51_FI_RK5
    3621             : #endif
    3622             :         use pm_kind, only: RKC => RK5
    3623             :         procedure(real(RKC))                            :: getFunc
    3624             :         real(RKC)       , intent(in)                    :: lb
    3625             :         type(pinf_type) , intent(in)                    :: ub
    3626             :         type(GK51_type) , intent(in)                    :: qrule
    3627             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    3628             :         real(RKC)                                       :: quadGK
    3629             :     end function
    3630             : #endif
    3631             : 
    3632             : #if RK4_ENABLED
    3633             :     module function getQuadGK51_FI_RK4(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    3634             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    3635             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK51_FI_RK4
    3636             : #endif
    3637             :         use pm_kind, only: RKC => RK4
    3638             :         procedure(real(RKC))                            :: getFunc
    3639             :         real(RKC)       , intent(in)                    :: lb
    3640             :         type(pinf_type) , intent(in)                    :: ub
    3641             :         type(GK51_type) , intent(in)                    :: qrule
    3642             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    3643             :         real(RKC)                                       :: quadGK
    3644             :     end function
    3645             : #endif
    3646             : 
    3647             : #if RK3_ENABLED
    3648             :     module function getQuadGK51_FI_RK3(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    3649             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    3650             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK51_FI_RK3
    3651             : #endif
    3652             :         use pm_kind, only: RKC => RK3
    3653             :         procedure(real(RKC))                            :: getFunc
    3654             :         real(RKC)       , intent(in)                    :: lb
    3655             :         type(pinf_type) , intent(in)                    :: ub
    3656             :         type(GK51_type) , intent(in)                    :: qrule
    3657             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    3658             :         real(RKC)                                       :: quadGK
    3659             :     end function
    3660             : #endif
    3661             : 
    3662             : #if RK2_ENABLED
    3663             :     module function getQuadGK51_FI_RK2(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    3664             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    3665             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK51_FI_RK2
    3666             : #endif
    3667             :         use pm_kind, only: RKC => RK2
    3668             :         procedure(real(RKC))                            :: getFunc
    3669             :         real(RKC)       , intent(in)                    :: lb
    3670             :         type(pinf_type) , intent(in)                    :: ub
    3671             :         type(GK51_type) , intent(in)                    :: qrule
    3672             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    3673             :         real(RKC)                                       :: quadGK
    3674             :     end function
    3675             : #endif
    3676             : 
    3677             : #if RK1_ENABLED
    3678             :     module function getQuadGK51_FI_RK1(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    3679             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    3680             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK51_FI_RK1
    3681             : #endif
    3682             :         use pm_kind, only: RKC => RK1
    3683             :         procedure(real(RKC))                            :: getFunc
    3684             :         real(RKC)       , intent(in)                    :: lb
    3685             :         type(pinf_type) , intent(in)                    :: ub
    3686             :         type(GK51_type) , intent(in)                    :: qrule
    3687             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    3688             :         real(RKC)                                       :: quadGK
    3689             :     end function
    3690             : #endif
    3691             : 
    3692             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3693             : 
    3694             : #if RK5_ENABLED
    3695             :     module function getQuadGK51_IF_RK5(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    3696             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    3697             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK51_IF_RK5
    3698             : #endif
    3699             :         use pm_kind, only: RKC => RK5
    3700             :         procedure(real(RKC))                            :: getFunc
    3701             :         type(ninf_type) , intent(in)                    :: lb
    3702             :         real(RKC)       , intent(in)                    :: ub
    3703             :         type(GK51_type) , intent(in)                    :: qrule
    3704             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    3705             :         real(RKC)                                       :: quadGK
    3706             :     end function
    3707             : #endif
    3708             : 
    3709             : #if RK4_ENABLED
    3710             :     module function getQuadGK51_IF_RK4(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    3711             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    3712             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK51_IF_RK4
    3713             : #endif
    3714             :         use pm_kind, only: RKC => RK4
    3715             :         procedure(real(RKC))                            :: getFunc
    3716             :         type(ninf_type) , intent(in)                    :: lb
    3717             :         real(RKC)       , intent(in)                    :: ub
    3718             :         type(GK51_type) , intent(in)                    :: qrule
    3719             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    3720             :         real(RKC)                                       :: quadGK
    3721             :     end function
    3722             : #endif
    3723             : 
    3724             : #if RK3_ENABLED
    3725             :     module function getQuadGK51_IF_RK3(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    3726             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    3727             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK51_IF_RK3
    3728             : #endif
    3729             :         use pm_kind, only: RKC => RK3
    3730             :         procedure(real(RKC))                            :: getFunc
    3731             :         type(ninf_type) , intent(in)                    :: lb
    3732             :         real(RKC)       , intent(in)                    :: ub
    3733             :         type(GK51_type) , intent(in)                    :: qrule
    3734             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    3735             :         real(RKC)                                       :: quadGK
    3736             :     end function
    3737             : #endif
    3738             : 
    3739             : #if RK2_ENABLED
    3740             :     module function getQuadGK51_IF_RK2(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    3741             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    3742             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK51_IF_RK2
    3743             : #endif
    3744             :         use pm_kind, only: RKC => RK2
    3745             :         procedure(real(RKC))                            :: getFunc
    3746             :         type(ninf_type) , intent(in)                    :: lb
    3747             :         real(RKC)       , intent(in)                    :: ub
    3748             :         type(GK51_type) , intent(in)                    :: qrule
    3749             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    3750             :         real(RKC)                                       :: quadGK
    3751             :     end function
    3752             : #endif
    3753             : 
    3754             : #if RK1_ENABLED
    3755             :     module function getQuadGK51_IF_RK1(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    3756             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    3757             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK51_IF_RK1
    3758             : #endif
    3759             :         use pm_kind, only: RKC => RK1
    3760             :         procedure(real(RKC))                            :: getFunc
    3761             :         type(ninf_type) , intent(in)                    :: lb
    3762             :         real(RKC)       , intent(in)                    :: ub
    3763             :         type(GK51_type) , intent(in)                    :: qrule
    3764             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    3765             :         real(RKC)                                       :: quadGK
    3766             :     end function
    3767             : #endif
    3768             : 
    3769             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3770             : 
    3771             : #if RK5_ENABLED
    3772             :     module function getQuadGK51_II_RK5(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    3773             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    3774             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK51_II_RK5
    3775             : #endif
    3776             :         use pm_kind, only: RKC => RK5
    3777             :         procedure(real(RKC))                            :: getFunc
    3778             :         type(ninf_type) , intent(in)                    :: lb
    3779             :         type(pinf_type) , intent(in)                    :: ub
    3780             :         type(GK51_type) , intent(in)                    :: qrule
    3781             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    3782             :         real(RKC)                                       :: quadGK
    3783             :     end function
    3784             : #endif
    3785             : 
    3786             : #if RK4_ENABLED
    3787             :     module function getQuadGK51_II_RK4(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    3788             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    3789             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK51_II_RK4
    3790             : #endif
    3791             :         use pm_kind, only: RKC => RK4
    3792             :         procedure(real(RKC))                            :: getFunc
    3793             :         type(ninf_type) , intent(in)                    :: lb
    3794             :         type(pinf_type) , intent(in)                    :: ub
    3795             :         type(GK51_type) , intent(in)                    :: qrule
    3796             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    3797             :         real(RKC)                                       :: quadGK
    3798             :     end function
    3799             : #endif
    3800             : 
    3801             : #if RK3_ENABLED
    3802             :     module function getQuadGK51_II_RK3(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    3803             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    3804             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK51_II_RK3
    3805             : #endif
    3806             :         use pm_kind, only: RKC => RK3
    3807             :         procedure(real(RKC))                            :: getFunc
    3808             :         type(ninf_type) , intent(in)                    :: lb
    3809             :         type(pinf_type) , intent(in)                    :: ub
    3810             :         type(GK51_type) , intent(in)                    :: qrule
    3811             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    3812             :         real(RKC)                                       :: quadGK
    3813             :     end function
    3814             : #endif
    3815             : 
    3816             : #if RK2_ENABLED
    3817             :     module function getQuadGK51_II_RK2(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    3818             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    3819             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK51_II_RK2
    3820             : #endif
    3821             :         use pm_kind, only: RKC => RK2
    3822             :         procedure(real(RKC))                            :: getFunc
    3823             :         type(ninf_type) , intent(in)                    :: lb
    3824             :         type(pinf_type) , intent(in)                    :: ub
    3825             :         type(GK51_type) , intent(in)                    :: qrule
    3826             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    3827             :         real(RKC)                                       :: quadGK
    3828             :     end function
    3829             : #endif
    3830             : 
    3831             : #if RK1_ENABLED
    3832             :     module function getQuadGK51_II_RK1(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    3833             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    3834             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK51_II_RK1
    3835             : #endif
    3836             :         use pm_kind, only: RKC => RK1
    3837             :         procedure(real(RKC))                            :: getFunc
    3838             :         type(ninf_type) , intent(in)                    :: lb
    3839             :         type(pinf_type) , intent(in)                    :: ub
    3840             :         type(GK51_type) , intent(in)                    :: qrule
    3841             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    3842             :         real(RKC)                                       :: quadGK
    3843             :     end function
    3844             : #endif
    3845             : 
    3846             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3847             : 
    3848             :     end interface
    3849             : 
    3850             :     ! GK61
    3851             : 
    3852             :     interface getQuadGK
    3853             : 
    3854             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3855             : 
    3856             : #if RK5_ENABLED
    3857             :     module function getQuadGK61_FF_RK5(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    3858             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    3859             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK61_FF_RK5
    3860             : #endif
    3861             :         use pm_kind, only: RKC => RK5
    3862             :         procedure(real(RKC))                            :: getFunc
    3863             :         real(RKC)       , intent(in)                    :: lb
    3864             :         real(RKC)       , intent(in)                    :: ub
    3865             :         type(GK61_type) , intent(in)                    :: qrule
    3866             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    3867             :         real(RKC)                                       :: quadGK
    3868             :     end function
    3869             : #endif
    3870             : 
    3871             : #if RK4_ENABLED
    3872             :     module function getQuadGK61_FF_RK4(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    3873             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    3874             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK61_FF_RK4
    3875             : #endif
    3876             :         use pm_kind, only: RKC => RK4
    3877             :         procedure(real(RKC))                            :: getFunc
    3878             :         real(RKC)       , intent(in)                    :: lb
    3879             :         real(RKC)       , intent(in)                    :: ub
    3880             :         type(GK61_type) , intent(in)                    :: qrule
    3881             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    3882             :         real(RKC)                                       :: quadGK
    3883             :     end function
    3884             : #endif
    3885             : 
    3886             : #if RK3_ENABLED
    3887             :     module function getQuadGK61_FF_RK3(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    3888             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    3889             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK61_FF_RK3
    3890             : #endif
    3891             :         use pm_kind, only: RKC => RK3
    3892             :         procedure(real(RKC))                            :: getFunc
    3893             :         real(RKC)       , intent(in)                    :: lb
    3894             :         real(RKC)       , intent(in)                    :: ub
    3895             :         type(GK61_type) , intent(in)                    :: qrule
    3896             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    3897             :         real(RKC)                                       :: quadGK
    3898             :     end function
    3899             : #endif
    3900             : 
    3901             : #if RK2_ENABLED
    3902             :     module function getQuadGK61_FF_RK2(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    3903             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    3904             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK61_FF_RK2
    3905             : #endif
    3906             :         use pm_kind, only: RKC => RK2
    3907             :         procedure(real(RKC))                            :: getFunc
    3908             :         real(RKC)       , intent(in)                    :: lb
    3909             :         real(RKC)       , intent(in)                    :: ub
    3910             :         type(GK61_type) , intent(in)                    :: qrule
    3911             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    3912             :         real(RKC)                                       :: quadGK
    3913             :     end function
    3914             : #endif
    3915             : 
    3916             : #if RK1_ENABLED
    3917             :     module function getQuadGK61_FF_RK1(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    3918             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    3919             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK61_FF_RK1
    3920             : #endif
    3921             :         use pm_kind, only: RKC => RK1
    3922             :         procedure(real(RKC))                            :: getFunc
    3923             :         real(RKC)       , intent(in)                    :: lb
    3924             :         real(RKC)       , intent(in)                    :: ub
    3925             :         type(GK61_type) , intent(in)                    :: qrule
    3926             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    3927             :         real(RKC)                                       :: quadGK
    3928             :     end function
    3929             : #endif
    3930             : 
    3931             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3932             : 
    3933             : #if RK5_ENABLED
    3934             :     module function getQuadGK61_FI_RK5(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    3935             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    3936             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK61_FI_RK5
    3937             : #endif
    3938             :         use pm_kind, only: RKC => RK5
    3939             :         procedure(real(RKC))                            :: getFunc
    3940             :         real(RKC)       , intent(in)                    :: lb
    3941             :         type(pinf_type) , intent(in)                    :: ub
    3942             :         type(GK61_type) , intent(in)                    :: qrule
    3943             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    3944             :         real(RKC)                                       :: quadGK
    3945             :     end function
    3946             : #endif
    3947             : 
    3948             : #if RK4_ENABLED
    3949             :     module function getQuadGK61_FI_RK4(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    3950             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    3951             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK61_FI_RK4
    3952             : #endif
    3953             :         use pm_kind, only: RKC => RK4
    3954             :         procedure(real(RKC))                            :: getFunc
    3955             :         real(RKC)       , intent(in)                    :: lb
    3956             :         type(pinf_type) , intent(in)                    :: ub
    3957             :         type(GK61_type) , intent(in)                    :: qrule
    3958             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    3959             :         real(RKC)                                       :: quadGK
    3960             :     end function
    3961             : #endif
    3962             : 
    3963             : #if RK3_ENABLED
    3964             :     module function getQuadGK61_FI_RK3(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    3965             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    3966             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK61_FI_RK3
    3967             : #endif
    3968             :         use pm_kind, only: RKC => RK3
    3969             :         procedure(real(RKC))                            :: getFunc
    3970             :         real(RKC)       , intent(in)                    :: lb
    3971             :         type(pinf_type) , intent(in)                    :: ub
    3972             :         type(GK61_type) , intent(in)                    :: qrule
    3973             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    3974             :         real(RKC)                                       :: quadGK
    3975             :     end function
    3976             : #endif
    3977             : 
    3978             : #if RK2_ENABLED
    3979             :     module function getQuadGK61_FI_RK2(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    3980             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    3981             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK61_FI_RK2
    3982             : #endif
    3983             :         use pm_kind, only: RKC => RK2
    3984             :         procedure(real(RKC))                            :: getFunc
    3985             :         real(RKC)       , intent(in)                    :: lb
    3986             :         type(pinf_type) , intent(in)                    :: ub
    3987             :         type(GK61_type) , intent(in)                    :: qrule
    3988             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    3989             :         real(RKC)                                       :: quadGK
    3990             :     end function
    3991             : #endif
    3992             : 
    3993             : #if RK1_ENABLED
    3994             :     module function getQuadGK61_FI_RK1(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    3995             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    3996             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK61_FI_RK1
    3997             : #endif
    3998             :         use pm_kind, only: RKC => RK1
    3999             :         procedure(real(RKC))                            :: getFunc
    4000             :         real(RKC)       , intent(in)                    :: lb
    4001             :         type(pinf_type) , intent(in)                    :: ub
    4002             :         type(GK61_type) , intent(in)                    :: qrule
    4003             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    4004             :         real(RKC)                                       :: quadGK
    4005             :     end function
    4006             : #endif
    4007             : 
    4008             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4009             : 
    4010             : #if RK5_ENABLED
    4011             :     module function getQuadGK61_IF_RK5(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    4012             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    4013             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK61_IF_RK5
    4014             : #endif
    4015             :         use pm_kind, only: RKC => RK5
    4016             :         procedure(real(RKC))                            :: getFunc
    4017             :         type(ninf_type) , intent(in)                    :: lb
    4018             :         real(RKC)       , intent(in)                    :: ub
    4019             :         type(GK61_type) , intent(in)                    :: qrule
    4020             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    4021             :         real(RKC)                                       :: quadGK
    4022             :     end function
    4023             : #endif
    4024             : 
    4025             : #if RK4_ENABLED
    4026             :     module function getQuadGK61_IF_RK4(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    4027             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    4028             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK61_IF_RK4
    4029             : #endif
    4030             :         use pm_kind, only: RKC => RK4
    4031             :         procedure(real(RKC))                            :: getFunc
    4032             :         type(ninf_type) , intent(in)                    :: lb
    4033             :         real(RKC)       , intent(in)                    :: ub
    4034             :         type(GK61_type) , intent(in)                    :: qrule
    4035             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    4036             :         real(RKC)                                       :: quadGK
    4037             :     end function
    4038             : #endif
    4039             : 
    4040             : #if RK3_ENABLED
    4041             :     module function getQuadGK61_IF_RK3(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    4042             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    4043             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK61_IF_RK3
    4044             : #endif
    4045             :         use pm_kind, only: RKC => RK3
    4046             :         procedure(real(RKC))                            :: getFunc
    4047             :         type(ninf_type) , intent(in)                    :: lb
    4048             :         real(RKC)       , intent(in)                    :: ub
    4049             :         type(GK61_type) , intent(in)                    :: qrule
    4050             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    4051             :         real(RKC)                                       :: quadGK
    4052             :     end function
    4053             : #endif
    4054             : 
    4055             : #if RK2_ENABLED
    4056             :     module function getQuadGK61_IF_RK2(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    4057             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    4058             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK61_IF_RK2
    4059             : #endif
    4060             :         use pm_kind, only: RKC => RK2
    4061             :         procedure(real(RKC))                            :: getFunc
    4062             :         type(ninf_type) , intent(in)                    :: lb
    4063             :         real(RKC)       , intent(in)                    :: ub
    4064             :         type(GK61_type) , intent(in)                    :: qrule
    4065             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    4066             :         real(RKC)                                       :: quadGK
    4067             :     end function
    4068             : #endif
    4069             : 
    4070             : #if RK1_ENABLED
    4071             :     module function getQuadGK61_IF_RK1(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    4072             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    4073             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK61_IF_RK1
    4074             : #endif
    4075             :         use pm_kind, only: RKC => RK1
    4076             :         procedure(real(RKC))                            :: getFunc
    4077             :         type(ninf_type) , intent(in)                    :: lb
    4078             :         real(RKC)       , intent(in)                    :: ub
    4079             :         type(GK61_type) , intent(in)                    :: qrule
    4080             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    4081             :         real(RKC)                                       :: quadGK
    4082             :     end function
    4083             : #endif
    4084             : 
    4085             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4086             : 
    4087             : #if RK5_ENABLED
    4088             :     module function getQuadGK61_II_RK5(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    4089             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    4090             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK61_II_RK5
    4091             : #endif
    4092             :         use pm_kind, only: RKC => RK5
    4093             :         procedure(real(RKC))                            :: getFunc
    4094             :         type(ninf_type) , intent(in)                    :: lb
    4095             :         type(pinf_type) , intent(in)                    :: ub
    4096             :         type(GK61_type) , intent(in)                    :: qrule
    4097             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    4098             :         real(RKC)                                       :: quadGK
    4099             :     end function
    4100             : #endif
    4101             : 
    4102             : #if RK4_ENABLED
    4103             :     module function getQuadGK61_II_RK4(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    4104             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    4105             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK61_II_RK4
    4106             : #endif
    4107             :         use pm_kind, only: RKC => RK4
    4108             :         procedure(real(RKC))                            :: getFunc
    4109             :         type(ninf_type) , intent(in)                    :: lb
    4110             :         type(pinf_type) , intent(in)                    :: ub
    4111             :         type(GK61_type) , intent(in)                    :: qrule
    4112             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    4113             :         real(RKC)                                       :: quadGK
    4114             :     end function
    4115             : #endif
    4116             : 
    4117             : #if RK3_ENABLED
    4118             :     module function getQuadGK61_II_RK3(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    4119             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    4120             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK61_II_RK3
    4121             : #endif
    4122             :         use pm_kind, only: RKC => RK3
    4123             :         procedure(real(RKC))                            :: getFunc
    4124             :         type(ninf_type) , intent(in)                    :: lb
    4125             :         type(pinf_type) , intent(in)                    :: ub
    4126             :         type(GK61_type) , intent(in)                    :: qrule
    4127             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    4128             :         real(RKC)                                       :: quadGK
    4129             :     end function
    4130             : #endif
    4131             : 
    4132             : #if RK2_ENABLED
    4133             :     module function getQuadGK61_II_RK2(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    4134             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    4135             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK61_II_RK2
    4136             : #endif
    4137             :         use pm_kind, only: RKC => RK2
    4138             :         procedure(real(RKC))                            :: getFunc
    4139             :         type(ninf_type) , intent(in)                    :: lb
    4140             :         type(pinf_type) , intent(in)                    :: ub
    4141             :         type(GK61_type) , intent(in)                    :: qrule
    4142             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    4143             :         real(RKC)                                       :: quadGK
    4144             :     end function
    4145             : #endif
    4146             : 
    4147             : #if RK1_ENABLED
    4148             :     module function getQuadGK61_II_RK1(getFunc, lb, ub, qrule, abserr, intAbsFunc, smoothness) result(quadGK)
    4149             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    4150             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGK61_II_RK1
    4151             : #endif
    4152             :         use pm_kind, only: RKC => RK1
    4153             :         procedure(real(RKC))                            :: getFunc
    4154             :         type(ninf_type) , intent(in)                    :: lb
    4155             :         type(pinf_type) , intent(in)                    :: ub
    4156             :         type(GK61_type) , intent(in)                    :: qrule
    4157             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    4158             :         real(RKC)                                       :: quadGK
    4159             :     end function
    4160             : #endif
    4161             : 
    4162             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4163             : 
    4164             :     end interface
    4165             : 
    4166             :     ! GKXX
    4167             : 
    4168             :     interface getQuadGK
    4169             : 
    4170             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4171             : 
    4172             : #if RK5_ENABLED
    4173             :     module function getQuadGKXX_FF_RK5(getFunc, lb, ub, nodeK, weightK, weightG, abserr, intAbsFunc, smoothness) result(quadGK)
    4174             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    4175             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGKXX_FF_RK5
    4176             : #endif
    4177             :         use pm_kind, only: RKC => RK5
    4178             :         procedure(real(RKC))                            :: getFunc
    4179             :         real(RKC)       , intent(in)                    :: lb
    4180             :         real(RKC)       , intent(in)                    :: ub
    4181             :         real(RKC)       , intent(in)    , contiguous    :: nodeK(:), weightK(:), weightG(:)
    4182             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    4183             :         real(RKC)                                       :: quadGK
    4184             :     end function
    4185             : #endif
    4186             : 
    4187             : #if RK4_ENABLED
    4188             :     module function getQuadGKXX_FF_RK4(getFunc, lb, ub, nodeK, weightK, weightG, abserr, intAbsFunc, smoothness) result(quadGK)
    4189             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    4190             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGKXX_FF_RK4
    4191             : #endif
    4192             :         use pm_kind, only: RKC => RK4
    4193             :         procedure(real(RKC))                            :: getFunc
    4194             :         real(RKC)       , intent(in)                    :: lb
    4195             :         real(RKC)       , intent(in)                    :: ub
    4196             :         real(RKC)       , intent(in)    , contiguous    :: nodeK(:), weightK(:), weightG(:)
    4197             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    4198             :         real(RKC)                                       :: quadGK
    4199             :     end function
    4200             : #endif
    4201             : 
    4202             : #if RK3_ENABLED
    4203             :     module function getQuadGKXX_FF_RK3(getFunc, lb, ub, nodeK, weightK, weightG, abserr, intAbsFunc, smoothness) result(quadGK)
    4204             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    4205             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGKXX_FF_RK3
    4206             : #endif
    4207             :         use pm_kind, only: RKC => RK3
    4208             :         procedure(real(RKC))                            :: getFunc
    4209             :         real(RKC)       , intent(in)                    :: lb
    4210             :         real(RKC)       , intent(in)                    :: ub
    4211             :         real(RKC)       , intent(in)    , contiguous    :: nodeK(:), weightK(:), weightG(:)
    4212             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    4213             :         real(RKC)                                       :: quadGK
    4214             :     end function
    4215             : #endif
    4216             : 
    4217             : #if RK2_ENABLED
    4218             :     module function getQuadGKXX_FF_RK2(getFunc, lb, ub, nodeK, weightK, weightG, abserr, intAbsFunc, smoothness) result(quadGK)
    4219             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    4220             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGKXX_FF_RK2
    4221             : #endif
    4222             :         use pm_kind, only: RKC => RK2
    4223             :         procedure(real(RKC))                            :: getFunc
    4224             :         real(RKC)       , intent(in)                    :: lb
    4225             :         real(RKC)       , intent(in)                    :: ub
    4226             :         real(RKC)       , intent(in)    , contiguous    :: nodeK(:), weightK(:), weightG(:)
    4227             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    4228             :         real(RKC)                                       :: quadGK
    4229             :     end function
    4230             : #endif
    4231             : 
    4232             : #if RK1_ENABLED
    4233             :     module function getQuadGKXX_FF_RK1(getFunc, lb, ub, nodeK, weightK, weightG, abserr, intAbsFunc, smoothness) result(quadGK)
    4234             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    4235             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGKXX_FF_RK1
    4236             : #endif
    4237             :         use pm_kind, only: RKC => RK1
    4238             :         procedure(real(RKC))                            :: getFunc
    4239             :         real(RKC)       , intent(in)                    :: lb
    4240             :         real(RKC)       , intent(in)                    :: ub
    4241             :         real(RKC)       , intent(in)    , contiguous    :: nodeK(:), weightK(:), weightG(:)
    4242             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    4243             :         real(RKC)                                       :: quadGK
    4244             :     end function
    4245             : #endif
    4246             : 
    4247             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4248             : 
    4249             : #if RK5_ENABLED
    4250             :     module function getQuadGKXX_FI_RK5(getFunc, lb, ub, nodeK, weightK, weightG, abserr, intAbsFunc, smoothness) result(quadGK)
    4251             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    4252             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGKXX_FI_RK5
    4253             : #endif
    4254             :         use pm_kind, only: RKC => RK5
    4255             :         procedure(real(RKC))                            :: getFunc
    4256             :         real(RKC)       , intent(in)                    :: lb
    4257             :         type(pinf_type) , intent(in)                    :: ub
    4258             :         real(RKC)       , intent(in)    , contiguous    :: nodeK(:), weightK(:), weightG(:)
    4259             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    4260             :         real(RKC)                                       :: quadGK
    4261             :     end function
    4262             : #endif
    4263             : 
    4264             : #if RK4_ENABLED
    4265             :     module function getQuadGKXX_FI_RK4(getFunc, lb, ub, nodeK, weightK, weightG, abserr, intAbsFunc, smoothness) result(quadGK)
    4266             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    4267             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGKXX_FI_RK4
    4268             : #endif
    4269             :         use pm_kind, only: RKC => RK4
    4270             :         procedure(real(RKC))                            :: getFunc
    4271             :         real(RKC)       , intent(in)                    :: lb
    4272             :         type(pinf_type) , intent(in)                    :: ub
    4273             :         real(RKC)       , intent(in)    , contiguous    :: nodeK(:), weightK(:), weightG(:)
    4274             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    4275             :         real(RKC)                                       :: quadGK
    4276             :     end function
    4277             : #endif
    4278             : 
    4279             : #if RK3_ENABLED
    4280             :     module function getQuadGKXX_FI_RK3(getFunc, lb, ub, nodeK, weightK, weightG, abserr, intAbsFunc, smoothness) result(quadGK)
    4281             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    4282             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGKXX_FI_RK3
    4283             : #endif
    4284             :         use pm_kind, only: RKC => RK3
    4285             :         procedure(real(RKC))                            :: getFunc
    4286             :         real(RKC)       , intent(in)                    :: lb
    4287             :         type(pinf_type) , intent(in)                    :: ub
    4288             :         real(RKC)       , intent(in)    , contiguous    :: nodeK(:), weightK(:), weightG(:)
    4289             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    4290             :         real(RKC)                                       :: quadGK
    4291             :     end function
    4292             : #endif
    4293             : 
    4294             : #if RK2_ENABLED
    4295             :     module function getQuadGKXX_FI_RK2(getFunc, lb, ub, nodeK, weightK, weightG, abserr, intAbsFunc, smoothness) result(quadGK)
    4296             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    4297             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGKXX_FI_RK2
    4298             : #endif
    4299             :         use pm_kind, only: RKC => RK2
    4300             :         procedure(real(RKC))                            :: getFunc
    4301             :         real(RKC)       , intent(in)                    :: lb
    4302             :         type(pinf_type) , intent(in)                    :: ub
    4303             :         real(RKC)       , intent(in)    , contiguous    :: nodeK(:), weightK(:), weightG(:)
    4304             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    4305             :         real(RKC)                                       :: quadGK
    4306             :     end function
    4307             : #endif
    4308             : 
    4309             : #if RK1_ENABLED
    4310             :     module function getQuadGKXX_FI_RK1(getFunc, lb, ub, nodeK, weightK, weightG, abserr, intAbsFunc, smoothness) result(quadGK)
    4311             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    4312             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGKXX_FI_RK1
    4313             : #endif
    4314             :         use pm_kind, only: RKC => RK1
    4315             :         procedure(real(RKC))                            :: getFunc
    4316             :         real(RKC)       , intent(in)                    :: lb
    4317             :         type(pinf_type) , intent(in)                    :: ub
    4318             :         real(RKC)       , intent(in)    , contiguous    :: nodeK(:), weightK(:), weightG(:)
    4319             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    4320             :         real(RKC)                                       :: quadGK
    4321             :     end function
    4322             : #endif
    4323             : 
    4324             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4325             : 
    4326             : #if RK5_ENABLED
    4327             :     module function getQuadGKXX_IF_RK5(getFunc, lb, ub, nodeK, weightK, weightG, abserr, intAbsFunc, smoothness) result(quadGK)
    4328             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    4329             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGKXX_IF_RK5
    4330             : #endif
    4331             :         use pm_kind, only: RKC => RK5
    4332             :         procedure(real(RKC))                            :: getFunc
    4333             :         type(ninf_type) , intent(in)                    :: lb
    4334             :         real(RKC)       , intent(in)                    :: ub
    4335             :         real(RKC)       , intent(in)    , contiguous    :: nodeK(:), weightK(:), weightG(:)
    4336             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    4337             :         real(RKC)                                       :: quadGK
    4338             :     end function
    4339             : #endif
    4340             : 
    4341             : #if RK4_ENABLED
    4342             :     module function getQuadGKXX_IF_RK4(getFunc, lb, ub, nodeK, weightK, weightG, abserr, intAbsFunc, smoothness) result(quadGK)
    4343             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    4344             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGKXX_IF_RK4
    4345             : #endif
    4346             :         use pm_kind, only: RKC => RK4
    4347             :         procedure(real(RKC))                            :: getFunc
    4348             :         type(ninf_type) , intent(in)                    :: lb
    4349             :         real(RKC)       , intent(in)                    :: ub
    4350             :         real(RKC)       , intent(in)    , contiguous    :: nodeK(:), weightK(:), weightG(:)
    4351             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    4352             :         real(RKC)                                       :: quadGK
    4353             :     end function
    4354             : #endif
    4355             : 
    4356             : #if RK3_ENABLED
    4357             :     module function getQuadGKXX_IF_RK3(getFunc, lb, ub, nodeK, weightK, weightG, abserr, intAbsFunc, smoothness) result(quadGK)
    4358             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    4359             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGKXX_IF_RK3
    4360             : #endif
    4361             :         use pm_kind, only: RKC => RK3
    4362             :         procedure(real(RKC))                            :: getFunc
    4363             :         type(ninf_type) , intent(in)                    :: lb
    4364             :         real(RKC)       , intent(in)                    :: ub
    4365             :         real(RKC)       , intent(in)    , contiguous    :: nodeK(:), weightK(:), weightG(:)
    4366             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    4367             :         real(RKC)                                       :: quadGK
    4368             :     end function
    4369             : #endif
    4370             : 
    4371             : #if RK2_ENABLED
    4372             :     module function getQuadGKXX_IF_RK2(getFunc, lb, ub, nodeK, weightK, weightG, abserr, intAbsFunc, smoothness) result(quadGK)
    4373             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    4374             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGKXX_IF_RK2
    4375             : #endif
    4376             :         use pm_kind, only: RKC => RK2
    4377             :         procedure(real(RKC))                            :: getFunc
    4378             :         type(ninf_type) , intent(in)                    :: lb
    4379             :         real(RKC)       , intent(in)                    :: ub
    4380             :         real(RKC)       , intent(in)    , contiguous    :: nodeK(:), weightK(:), weightG(:)
    4381             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    4382             :         real(RKC)                                       :: quadGK
    4383             :     end function
    4384             : #endif
    4385             : 
    4386             : #if RK1_ENABLED
    4387             :     module function getQuadGKXX_IF_RK1(getFunc, lb, ub, nodeK, weightK, weightG, abserr, intAbsFunc, smoothness) result(quadGK)
    4388             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    4389             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGKXX_IF_RK1
    4390             : #endif
    4391             :         use pm_kind, only: RKC => RK1
    4392             :         procedure(real(RKC))                            :: getFunc
    4393             :         type(ninf_type) , intent(in)                    :: lb
    4394             :         real(RKC)       , intent(in)                    :: ub
    4395             :         real(RKC)       , intent(in)    , contiguous    :: nodeK(:), weightK(:), weightG(:)
    4396             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    4397             :         real(RKC)                                       :: quadGK
    4398             :     end function
    4399             : #endif
    4400             : 
    4401             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4402             : 
    4403             : #if RK5_ENABLED
    4404             :     module function getQuadGKXX_II_RK5(getFunc, lb, ub, nodeK, weightK, weightG, abserr, intAbsFunc, smoothness) result(quadGK)
    4405             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    4406             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGKXX_II_RK5
    4407             : #endif
    4408             :         use pm_kind, only: RKC => RK5
    4409             :         procedure(real(RKC))                            :: getFunc
    4410             :         type(ninf_type) , intent(in)                    :: lb
    4411             :         type(pinf_type) , intent(in)                    :: ub
    4412             :         real(RKC)       , intent(in)    , contiguous    :: nodeK(:), weightK(:), weightG(:)
    4413             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    4414             :         real(RKC)                                       :: quadGK
    4415             :     end function
    4416             : #endif
    4417             : 
    4418             : #if RK4_ENABLED
    4419             :     module function getQuadGKXX_II_RK4(getFunc, lb, ub, nodeK, weightK, weightG, abserr, intAbsFunc, smoothness) result(quadGK)
    4420             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    4421             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGKXX_II_RK4
    4422             : #endif
    4423             :         use pm_kind, only: RKC => RK4
    4424             :         procedure(real(RKC))                            :: getFunc
    4425             :         type(ninf_type) , intent(in)                    :: lb
    4426             :         type(pinf_type) , intent(in)                    :: ub
    4427             :         real(RKC)       , intent(in)    , contiguous    :: nodeK(:), weightK(:), weightG(:)
    4428             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    4429             :         real(RKC)                                       :: quadGK
    4430             :     end function
    4431             : #endif
    4432             : 
    4433             : #if RK3_ENABLED
    4434             :     module function getQuadGKXX_II_RK3(getFunc, lb, ub, nodeK, weightK, weightG, abserr, intAbsFunc, smoothness) result(quadGK)
    4435             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    4436             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGKXX_II_RK3
    4437             : #endif
    4438             :         use pm_kind, only: RKC => RK3
    4439             :         procedure(real(RKC))                            :: getFunc
    4440             :         type(ninf_type) , intent(in)                    :: lb
    4441             :         type(pinf_type) , intent(in)                    :: ub
    4442             :         real(RKC)       , intent(in)    , contiguous    :: nodeK(:), weightK(:), weightG(:)
    4443             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    4444             :         real(RKC)                                       :: quadGK
    4445             :     end function
    4446             : #endif
    4447             : 
    4448             : #if RK2_ENABLED
    4449             :     module function getQuadGKXX_II_RK2(getFunc, lb, ub, nodeK, weightK, weightG, abserr, intAbsFunc, smoothness) result(quadGK)
    4450             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    4451             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGKXX_II_RK2
    4452             : #endif
    4453             :         use pm_kind, only: RKC => RK2
    4454             :         procedure(real(RKC))                            :: getFunc
    4455             :         type(ninf_type) , intent(in)                    :: lb
    4456             :         type(pinf_type) , intent(in)                    :: ub
    4457             :         real(RKC)       , intent(in)    , contiguous    :: nodeK(:), weightK(:), weightG(:)
    4458             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    4459             :         real(RKC)                                       :: quadGK
    4460             :     end function
    4461             : #endif
    4462             : 
    4463             : #if RK1_ENABLED
    4464             :     module function getQuadGKXX_II_RK1(getFunc, lb, ub, nodeK, weightK, weightG, abserr, intAbsFunc, smoothness) result(quadGK)
    4465             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    4466             :         !DEC$ ATTRIBUTES DLLEXPORT :: getQuadGKXX_II_RK1
    4467             : #endif
    4468             :         use pm_kind, only: RKC => RK1
    4469             :         procedure(real(RKC))                            :: getFunc
    4470             :         type(ninf_type) , intent(in)                    :: lb
    4471             :         type(pinf_type) , intent(in)                    :: ub
    4472             :         real(RKC)       , intent(in)    , contiguous    :: nodeK(:), weightK(:), weightG(:)
    4473             :         real(RKC)       , intent(out)                   :: abserr, intAbsFunc, smoothness
    4474             :         real(RKC)                                       :: quadGK
    4475             :     end function
    4476             : #endif
    4477             : 
    4478             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4479             : 
    4480             :     end interface
    4481             : 
    4482             : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4483             : 
    4484             :     !>  \brief
    4485             :     !>  The scalar `integer` of default kind \IK, containing the maximum size of the Table of Epsilon algorithm.
    4486             :     !>
    4487             :     !>  \details
    4488             :     !>  This parameter is used by the various quadrature procedures of this module to perform integration extrapolations.
    4489             :     !>
    4490             :     !>  \warning
    4491             :     !>  If the Epsilon table size exceeds this number, the upper diagonal of the Epsilon table will be deleted.
    4492             :     !>
    4493             :     !>  \see
    4494             :     !>  [getQuadErr](@ref pm_quadPack::getQuadErr)<br>
    4495             :     !>  [setSeqLimEps](@ref pm_quadPack::setSeqLimEps)<br>
    4496             :     !>
    4497             :     !>  \finmain{MAXLEN_EPSTAB}
    4498             :     !>
    4499             :     !>  \author
    4500             :     !>  \AmirShahmoradi, September 1, 2017, 12:00 AM, Institute for Computational Engineering and Sciences (ICES), The University of Texas at Austin
    4501             :     integer(IK) , parameter :: MAXLEN_EPSTAB = 50_IK
    4502             : 
    4503             :     !>  \brief
    4504             :     !>  This is the indicator type for generating instances of objects that indicate the use of Epsilon extrapolation method of
    4505             :     !>  Wynn (1961) to accelerate the convergence of integrations of functions with integrable singularities and infinities using
    4506             :     !>  the (Adaptive) Global Gauss-Kronrod Quadrature of [getQuadErr](@ref pm_quadPack::getQuadErr).
    4507             :     !>
    4508             :     !>  \details
    4509             :     !>  This is an empty derived type that exists solely for generating unique objects that are distinguishable
    4510             :     !>  as input arguments to procedures under the generic interface [getQuadErr](@ref pm_quadPack::getQuadErr).
    4511             :     !>
    4512             :     !>  \interface{weps_type}
    4513             :     !>  \code{.F90}
    4514             :     !>
    4515             :     !>      use pm_quadPack, only: weps
    4516             :     !>      type(weps_type), parameter :: weps
    4517             :     !>
    4518             :     !>  \endcode
    4519             :     !>
    4520             :     !>  \see
    4521             :     !>  [getQuadErr](@ref pm_quadPack::getQuadErr)<br>
    4522             :     !>
    4523             :     !>  \test
    4524             :     !>  [test_pm_quadPack](@ref test_pm_quadPack)
    4525             :     !>
    4526             :     !>  \finmain{weps_type}
    4527             :     !>
    4528             :     !>  \author
    4529             :     !>  \AmirShahmoradi, September 1, 2017, 12:00 AM, Institute for Computational Engineering and Sciences (ICES), The University of Texas at Austin
    4530             :     type :: weps_type
    4531             :     end type
    4532             : 
    4533             :     !>  \brief
    4534             :     !>  The scalar constant object of type [weps_type](@ref pm_quadPack::weps_type) that indicates the use of Epsilon extrapolation method of
    4535             :     !>  Wynn (1961) to accelerate the convergence of integrations of functions with integrable singularities and infinities using
    4536             :     !>  the (Adaptive) Global Gauss-Kronrod Quadrature of [getQuadErr](@ref pm_quadPack::getQuadErr).
    4537             :     !>
    4538             :     !>  \details
    4539             :     !>  See the documentation of [getQuadErr](@ref pm_quadPack::getQuadErr) for example usage.<br>
    4540             :     !>
    4541             :     !>  \see
    4542             :     !>  [getQuadErr](@ref pm_quadPack::getQuadErr)<br>
    4543             :     !>
    4544             :     !>  \test
    4545             :     !>  [test_pm_quadPack](@ref test_pm_quadPack)
    4546             :     !>
    4547             :     !>  \finmain{weps}
    4548             :     !>
    4549             :     !>  \author
    4550             :     !>  \AmirShahmoradi, September 1, 2017, 12:00 AM, Institute for Computational Engineering and Sciences (ICES), The University of Texas at Austin
    4551             :     type(weps_type) , parameter :: weps = weps_type()
    4552             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    4553             :     !DIR$ ATTRIBUTES DLLEXPORT :: weps
    4554             : #endif
    4555             : 
    4556             : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4557             : 
    4558             :     !>  \brief
    4559             :     !>  Return the limit of a given sequence of approximations via the Epsilon method of Wynn (1961).
    4560             :     !>
    4561             :     !>  \details
    4562             :     !>  Also return an estimate of the absolute error in the limit.<br>
    4563             :     !>
    4564             :     !>  \remark
    4565             :     !>  This generic interface is meant to be primarily by and used within the Adaptive Gauss-Kronrod quadrature routines of the parent module.<br>
    4566             :     !>  There is practically no usage for this generic interface outside of the parent module.<br>
    4567             :     !>
    4568             :     !>  \param[inout]   inew        :   The input/output scalar of type `integer` of default kind \IK, containing the index of the new element in the first column of the Epsilon table.<br>
    4569             :     !>  \param[inout]   ical        :   The input/output scalar of type `integer` of default kind \IK, containing the number of calls made to the procedure.<br>
    4570             :     !>                                  On the first call `ical = 0` must hold.
    4571             :     !>  \param[inout]   EpsTable    :   The input/output vector of type `real` of kind \RKALL, of size ([MAXLEN_EPSTAB](@ref pm_quadPack::MAXLEN_EPSTAB) + 2),
    4572             :     !>                                  containing the elements of the two lower diagonals of the triangular Epsilon table.<br>
    4573             :     !>                                  The elements are numbered starting at the right-hand corner of the triangle.<br>
    4574             :     !>  \param[inout]   SeqLims     :   The input/output vector of size `(3)` of the same type and kind as `EpsTable(:)`, containing the last three computed sequence limits.<br>
    4575             :     !>  \param[out]     seqlim      :   The output scalar of the same type and kind as `EpsTable(:)`, containing the sequence limit.<br>
    4576             :     !>  \param[out]     abserr      :   The output scalar of the same type and kind as `EpsTable(:)`, containing the sequence limit absolute error estimate.<br>
    4577             :     !>
    4578             :     !>  \interface{setSeqLimEps}
    4579             :     !>  \code{.F90}
    4580             :     !>
    4581             :     !>      use pm_quadPack, only: setSeqLimEps
    4582             :     !>
    4583             :     !>      call setSeqLimEps(inew, ical, EpsTable, SeqLims, seqlim, error)
    4584             :     !>
    4585             :     !>  \endcode
    4586             :     !>
    4587             :     !>  \pure
    4588             :     !>
    4589             :     !>  \see
    4590             :     !>  [P. Wynn, 1961, The Epsilon Algorithm and Operational Formulas](https://www.ams.org/mcom/1961-15-074/S0025-5718-1961-0158513-X/S0025-5718-1961-0158513-X.pdf).<br>
    4591             :     !>
    4592             :     !>  \test
    4593             :     !>  [test_pm_quadPack](@ref test_pm_quadPack)
    4594             :     !>
    4595             :     !>  \finmain{setSeqLimEps}
    4596             :     !>
    4597             :     !>  \author
    4598             :     !>  \AmirShahmoradi, Oct 16, 2009, 11:14 AM, Michigan
    4599             :     interface setSeqLimEps
    4600             : 
    4601             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4602             : 
    4603             : #if RK5_ENABLED
    4604             :     pure module subroutine setSeqLimEps_RK5(inew, ical, EpsTable, SeqLims, seqlim, abserr)
    4605             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    4606             :         !DEC$ ATTRIBUTES DLLEXPORT :: setSeqLimEps_RK5
    4607             : #endif
    4608             :         use pm_kind, only: RKC => RK5
    4609             :         integer(IK) , intent(inout)                 :: inew, ical
    4610             :         real(RKC)   , intent(inout)                 :: EpsTable(MAXLEN_EPSTAB + 2), SeqLims(3)
    4611             :         real(RKC)   , intent(out)                   :: seqlim, abserr
    4612             :     end subroutine
    4613             : #endif
    4614             : 
    4615             : #if RK4_ENABLED
    4616             :     pure module subroutine setSeqLimEps_RK4(inew, ical, EpsTable, SeqLims, seqlim, abserr)
    4617             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    4618             :         !DEC$ ATTRIBUTES DLLEXPORT :: setSeqLimEps_RK4
    4619             : #endif
    4620             :         use pm_kind, only: RKC => RK4
    4621             :         integer(IK) , intent(inout)                 :: inew, ical
    4622             :         real(RKC)   , intent(inout)                 :: EpsTable(MAXLEN_EPSTAB + 2), SeqLims(3)
    4623             :         real(RKC)   , intent(out)                   :: seqlim, abserr
    4624             :     end subroutine
    4625             : #endif
    4626             : 
    4627             : #if RK3_ENABLED
    4628             :     pure module subroutine setSeqLimEps_RK3(inew, ical, EpsTable, SeqLims, seqlim, abserr)
    4629             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    4630             :         !DEC$ ATTRIBUTES DLLEXPORT :: setSeqLimEps_RK3
    4631             : #endif
    4632             :         use pm_kind, only: RKC => RK3
    4633             :         integer(IK) , intent(inout)                 :: inew, ical
    4634             :         real(RKC)   , intent(inout)                 :: EpsTable(MAXLEN_EPSTAB + 2), SeqLims(3)
    4635             :         real(RKC)   , intent(out)                   :: seqlim, abserr
    4636             :     end subroutine
    4637             : #endif
    4638             : 
    4639             : #if RK2_ENABLED
    4640             :     pure module subroutine setSeqLimEps_RK2(inew, ical, EpsTable, SeqLims, seqlim, abserr)
    4641             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    4642             :         !DEC$ ATTRIBUTES DLLEXPORT :: setSeqLimEps_RK2
    4643             : #endif
    4644             :         use pm_kind, only: RKC => RK2
    4645             :         integer(IK) , intent(inout)                 :: inew, ical
    4646             :         real(RKC)   , intent(inout)                 :: EpsTable(MAXLEN_EPSTAB + 2), SeqLims(3)
    4647             :         real(RKC)   , intent(out)                   :: seqlim, abserr
    4648             :     end subroutine
    4649             : #endif
    4650             : 
    4651             : #if RK1_ENABLED
    4652             :     pure module subroutine setSeqLimEps_RK1(inew, ical, EpsTable, SeqLims, seqlim, abserr)
    4653             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    4654             :         !DEC$ ATTRIBUTES DLLEXPORT :: setSeqLimEps_RK1
    4655             : #endif
    4656             :         use pm_kind, only: RKC => RK1
    4657             :         integer(IK) , intent(inout)                 :: inew, ical
    4658             :         real(RKC)   , intent(inout)                 :: EpsTable(MAXLEN_EPSTAB + 2), SeqLims(3)
    4659             :         real(RKC)   , intent(out)                   :: seqlim, abserr
    4660             :     end subroutine
    4661             : #endif
    4662             : 
    4663             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4664             : 
    4665             :     end interface
    4666             : 
    4667             : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4668             : 
    4669             :     !>  \brief
    4670             :     !>  Sort the input local error estimates list (resulting from the interval subdivision process of the Adaptive Global
    4671             :     !>  quadrature procedures of this module) in descending order.
    4672             :     !>
    4673             :     !>  \brief
    4674             :     !>  Two error estimates are inserted using the sequential search method at each call to this interface,
    4675             :     !>  top-down for the largest error estimate and bottom-up for the smallest error estimate.
    4676             :     !>
    4677             :     !>  \remark
    4678             :     !>  This generic interface is meant to be primarily by and used within the Adaptive Gauss-Kronrod quadrature routines of the parent module.<br>
    4679             :     !>  There is practically no usage for this generic interface outside of the parent module.<br>
    4680             :     !>
    4681             :     !>  \param[in]      nintmax     :   The input scalar of type `integer` of default kind \IK, containing the maximum number of subintervals allowed in the quadrature.<br>
    4682             :     !>  \param[in]      sinfoErr    :   The input vector of size `(1:nint <= nintmax)`, containing the local error estimates from the quadrature subintervals.<br>
    4683             :     !>  \param[inout]   sindex      :   The input/output `contiguous` vector of the same type, kind, and size as `sinfoErr(:)`, the first `k` elements of which contain
    4684             :     !>                                  pointers to the error estimates, such that `sinfoErr(sindex(1)), ..., sinfoErr(sindex(k))` form a decreasing sequence,
    4685             :     !>                                  with `k = nint` if `nint <= (nintmax / 2 + 2)`, and `k = nintmax + 1 - nint` otherwise.
    4686             :     !>  \param[inout]   nrmax       :   The input/output scalar of type `integer` of default kind \IK, containing the index of element of `sindex(:)`,
    4687             :     !>                                  such that `maxErrLoc = sindex(nrmax)` number of calls made to the procedure.<br>
    4688             :     !>  \param[inout]   maxErrLoc   :   The input/output scalar of type `integer` of kind \IK, containing the `nrmax`-th largest error estimate currently in the error list.<br>
    4689             :     !>  \param[out]     maxErrVal   :   The output scalar of the same type and kind as `sinfoErr(:)`, containing the `nrmax`-th largest error estimate in the error list.<br>
    4690             :     !>
    4691             :     !>  \interface{setErrSorted}
    4692             :     !>  \code{.F90}
    4693             :     !>
    4694             :     !>      use pm_quadPack, only: setErrSorted
    4695             :     !>
    4696             :     !>      call setErrSorted(nintmax, sinfoErr, sindex, nrmax, maxErrLoc, maxErrVal)
    4697             :     !>
    4698             :     !>  \endcode
    4699             :     !>
    4700             :     !>  \warnpure
    4701             :     !>
    4702             :     !>  \see
    4703             :     !>  [getQuadErr](@ref pm_quadPack::getQuadErr).<br>
    4704             :     !>
    4705             :     !>  \test
    4706             :     !>  [test_pm_quadPack](@ref test_pm_quadPack)
    4707             :     !>
    4708             :     !>  \finmain{setErrSorted}
    4709             :     !>
    4710             :     !>  \author
    4711             :     !>  \AmirShahmoradi, Oct 16, 2009, 11:14 AM, Michigan
    4712             :     interface setErrSorted
    4713             : 
    4714             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4715             : 
    4716             : #if RK5_ENABLED
    4717             :     PURE module subroutine setErrSorted_RK5(nintmax, sinfoErr, sindex, nrmax, maxErrLoc, maxErrVal)
    4718             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    4719             :         !DEC$ ATTRIBUTES DLLEXPORT :: setErrSorted_RK5
    4720             : #endif
    4721             :         use pm_kind, only: RKC => RK5
    4722             :         integer(IK) , intent(in)                    :: nintmax
    4723             :         real(RKC)   , intent(in)                    :: sinfoErr(:)
    4724             :         integer(IK) , intent(inout) , contiguous    :: sindex(:)
    4725             :         integer(IK) , intent(inout)                 :: nrmax, maxErrLoc
    4726             :         real(RKC)   , intent(out)                   :: maxErrVal
    4727             :     end subroutine
    4728             : #endif
    4729             : 
    4730             : #if RK4_ENABLED
    4731             :     PURE module subroutine setErrSorted_RK4(nintmax, sinfoErr, sindex, nrmax, maxErrLoc, maxErrVal)
    4732             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    4733             :         !DEC$ ATTRIBUTES DLLEXPORT :: setErrSorted_RK4
    4734             : #endif
    4735             :         use pm_kind, only: RKC => RK4
    4736             :         integer(IK) , intent(in)                    :: nintmax
    4737             :         real(RKC)   , intent(in)                    :: sinfoErr(:)
    4738             :         integer(IK) , intent(inout) , contiguous    :: sindex(:)
    4739             :         integer(IK) , intent(inout)                 :: nrmax, maxErrLoc
    4740             :         real(RKC)   , intent(out)                   :: maxErrVal
    4741             :     end subroutine
    4742             : #endif
    4743             : 
    4744             : #if RK3_ENABLED
    4745             :     PURE module subroutine setErrSorted_RK3(nintmax, sinfoErr, sindex, nrmax, maxErrLoc, maxErrVal)
    4746             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    4747             :         !DEC$ ATTRIBUTES DLLEXPORT :: setErrSorted_RK3
    4748             : #endif
    4749             :         use pm_kind, only: RKC => RK3
    4750             :         integer(IK) , intent(in)                    :: nintmax
    4751             :         real(RKC)   , intent(in)                    :: sinfoErr(:)
    4752             :         integer(IK) , intent(inout) , contiguous    :: sindex(:)
    4753             :         integer(IK) , intent(inout)                 :: nrmax, maxErrLoc
    4754             :         real(RKC)   , intent(out)                   :: maxErrVal
    4755             :     end subroutine
    4756             : #endif
    4757             : 
    4758             : #if RK2_ENABLED
    4759             :     PURE module subroutine setErrSorted_RK2(nintmax, sinfoErr, sindex, nrmax, maxErrLoc, maxErrVal)
    4760             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    4761             :         !DEC$ ATTRIBUTES DLLEXPORT :: setErrSorted_RK2
    4762             : #endif
    4763             :         use pm_kind, only: RKC => RK2
    4764             :         integer(IK) , intent(in)                    :: nintmax
    4765             :         real(RKC)   , intent(in)                    :: sinfoErr(:)
    4766             :         integer(IK) , intent(inout) , contiguous    :: sindex(:)
    4767             :         integer(IK) , intent(inout)                 :: nrmax, maxErrLoc
    4768             :         real(RKC)   , intent(out)                   :: maxErrVal
    4769             :     end subroutine
    4770             : #endif
    4771             : 
    4772             : #if RK1_ENABLED
    4773             :     PURE module subroutine setErrSorted_RK1(nintmax, sinfoErr, sindex, nrmax, maxErrLoc, maxErrVal)
    4774             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    4775             :         !DEC$ ATTRIBUTES DLLEXPORT :: setErrSorted_RK1
    4776             : #endif
    4777             :         use pm_kind, only: RKC => RK1
    4778             :         integer(IK) , intent(in)                    :: nintmax
    4779             :         real(RKC)   , intent(in)                    :: sinfoErr(:)
    4780             :         integer(IK) , intent(inout) , contiguous    :: sindex(:)
    4781             :         integer(IK) , intent(inout)                 :: nrmax, maxErrLoc
    4782             :         real(RKC)   , intent(out)                   :: maxErrVal
    4783             :     end subroutine
    4784             : #endif
    4785             : 
    4786             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4787             : 
    4788             :     end interface
    4789             : 
    4790             : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4791             : 
    4792             :     !>  \brief
    4793             :     !>  Compute and return the series expansion of the input function values via the Chebyshev
    4794             :     !>  polynomials of the first kind of degrees `12` and `24` using Fast Fourier Transform method.
    4795             :     !>
    4796             :     !>  \details
    4797             :     !>  The returned coefficients are such that,<br>
    4798             :     !>  \f{eqnarray}{
    4799             :     !>
    4800             :     !>     f(x) &=& \sum_{k = 1}^{13} \ms{cheb12}(k) \times T(k-1,x) ~, \\
    4801             :     !>     f(x) &=& \sum_{k = 1}^{25} \ms{cheb24}(k) \times T(k-1,x) ~,
    4802             :     !>
    4803             :     !>  \f}
    4804             :     !>  where \f$T(n,x)\f$ is the Chebyshev polynomial of the first kind of degree \f$n\f$ evaluated at proper points.<br>
    4805             :     !>
    4806             :     !>  \remark
    4807             :     !>  This generic interface is meant to be primarily by and used within the Adaptive Gauss-Kronrod quadrature routines of the parent module.<br>
    4808             :     !>  There is practically no usage for this generic interface outside of the parent module.<br>
    4809             :     !>
    4810             :     !>  \param[inout]   func    :   The input/output vector of size `25` of type `real` of kind \RKALL, containing the function values.<br>
    4811             :     !>  \param[out]     cheb12  :   The output vector of the same type and kind as `func`, of size `13`, containing the Chebyshev Coefficients of degree `12`.
    4812             :     !>  \param[out]     cheb24  :   The output vector of the same type and kind as `func`, of size `25`, containing the Chebyshev Coefficients of degree `24`.
    4813             :     !>
    4814             :     !>  \interface{setChebExpan}
    4815             :     !>  \code{.F90}
    4816             :     !>
    4817             :     !>      use pm_quadPack, only: setChebExpan
    4818             :     !>
    4819             :     !>      call setChebExpan(func, cheb12, cheb24)
    4820             :     !>
    4821             :     !>  \endcode
    4822             :     !>
    4823             :     !>  \pure
    4824             :     !>
    4825             :     !>  \see
    4826             :     !>  [getQuadGK](@ref pm_quadPack::getQuadGK)<br>
    4827             :     !>  [getQuadErr](@ref pm_quadPack::getQuadErr)<br>
    4828             :     !>  [getQuadRomb](@ref pm_quadRomb::getQuadRomb)<br>
    4829             :     !>  [isFailedQuad](@ref pm_quadPack::isFailedQuad)<br>
    4830             :     !>
    4831             :     !>  \test
    4832             :     !>  [test_pm_quadPack](@ref test_pm_quadPack)
    4833             :     !>
    4834             :     !>  \finmain{setChebExpan}
    4835             :     !>
    4836             :     !>  \author
    4837             :     !>  \AmirShahmoradi, Oct 16, 2009, 11:14 AM, Michigan
    4838             :     interface setChebExpan
    4839             : 
    4840             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4841             : 
    4842             : #if RK5_ENABLED
    4843             :     pure module subroutine setChebExpan_RK5(func, cheb12, cheb24)
    4844             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    4845             :         !DEC$ ATTRIBUTES DLLEXPORT :: setChebExpan_RK5
    4846             : #endif
    4847             :         use pm_kind, only: RKC => RK5
    4848             :         real(RKC)       , intent(inout)                 :: func(25)
    4849             :         real(RKC)       , intent(out)                   :: cheb12(13), cheb24(25)
    4850             :     end subroutine
    4851             : #endif
    4852             : 
    4853             : #if RK4_ENABLED
    4854             :     pure module subroutine setChebExpan_RK4(func, cheb12, cheb24)
    4855             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    4856             :         !DEC$ ATTRIBUTES DLLEXPORT :: setChebExpan_RK4
    4857             : #endif
    4858             :         use pm_kind, only: RKC => RK4
    4859             :         real(RKC)       , intent(inout)                 :: func(25)
    4860             :         real(RKC)       , intent(out)                   :: cheb12(13), cheb24(25)
    4861             :     end subroutine
    4862             : #endif
    4863             : 
    4864             : #if RK3_ENABLED
    4865             :     pure module subroutine setChebExpan_RK3(func, cheb12, cheb24)
    4866             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    4867             :         !DEC$ ATTRIBUTES DLLEXPORT :: setChebExpan_RK3
    4868             : #endif
    4869             :         use pm_kind, only: RKC => RK3
    4870             :         real(RKC)       , intent(inout)                 :: func(25)
    4871             :         real(RKC)       , intent(out)                   :: cheb12(13), cheb24(25)
    4872             :     end subroutine
    4873             : #endif
    4874             : 
    4875             : #if RK2_ENABLED
    4876             :     pure module subroutine setChebExpan_RK2(func, cheb12, cheb24)
    4877             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    4878             :         !DEC$ ATTRIBUTES DLLEXPORT :: setChebExpan_RK2
    4879             : #endif
    4880             :         use pm_kind, only: RKC => RK2
    4881             :         real(RKC)       , intent(inout)                 :: func(25)
    4882             :         real(RKC)       , intent(out)                   :: cheb12(13), cheb24(25)
    4883             :     end subroutine
    4884             : #endif
    4885             : 
    4886             : #if RK1_ENABLED
    4887             :     pure module subroutine setChebExpan_RK1(func, cheb12, cheb24)
    4888             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    4889             :         !DEC$ ATTRIBUTES DLLEXPORT :: setChebExpan_RK1
    4890             : #endif
    4891             :         use pm_kind, only: RKC => RK1
    4892             :         real(RKC)       , intent(inout)                 :: func(25)
    4893             :         real(RKC)       , intent(out)                   :: cheb12(13), cheb24(25)
    4894             :     end subroutine
    4895             : #endif
    4896             : 
    4897             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4898             : 
    4899             :     end interface
    4900             : 
    4901             : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4902             : 
    4903             :     !>  \brief
    4904             :     !>  Compute the 1D integral of the input scalar (potentially singular) integrand `getFunc` on a finite or semi/fully-infinite
    4905             :     !>  interval `(a, b)` and estimate its absolute error via the requested **adaptive global quadrature** rule.
    4906             :     !>
    4907             :     !>  \details
    4908             :     !>  This interface provides a simple nimble powerful wrapper for the higher-performance but lower-level [getQuadErr](@ref pm_quadPack::getQuadErr) interface, much like the \f$\ms{integral}\f$ routine of MATLAB.<br>
    4909             :     !>  The algorithm uses an Adaptive Global Quadrature with Gauss-Kronrod 10-21 quadrature rules combined with the Epsilon extrapolation method of Wynn (1961) to evaluate the integral.<br>
    4910             :     !>  See the documentation of [getQuadErr](@ref pm_quadPack::getQuadErr) for further details on the integration methodologies and implementations.<br>
    4911             :     !>
    4912             :     !>  \param      getFunc         :   See the description of the corresponding argument in the documentation of [getQuadErr](@ref pm_quadPack::getQuadErr).<br>
    4913             :     !>  \param[in]  lb              :   The input scalar of type `real` of the same kind as `integral`, representing the lower limit of integration.<br>
    4914             :     !>                                  Set `lb = -huge(lb)` or to the IEEE-compliant negative infinity (`lb = `[getInfNeg(lb)](@ref pm_except::getInfNeg))
    4915             :     !>                                  to imply \f$-\infty\f$ as the lower bound of integration.<br>
    4916             :     !>  \param[in]  ub              :   The input scalar of type `real` of the same kind as `integral`, representing the upper limit of integration.<br>
    4917             :     !>                                  Set `ub = huge(ub)` or to the IEEE-compliant positive infinity (`ub = `[getInfPos(lb)](@ref pm_except::getInfPos))
    4918             :     !>                                  to imply \f$+\infty\f$ as the upper bound of integration.<br>
    4919             :     !>  \param[out] integral        :   See the description of the corresponding argument in the documentation of [getQuadErr](@ref pm_quadPack::getQuadErr).<br>
    4920             :     !>  \param[in]  abstol          :   See the description of the corresponding argument in the documentation of [getQuadErr](@ref pm_quadPack::getQuadErr).<br>
    4921             :     !>                                  (**optional**, default = `0`)<br>
    4922             :     !>  \param[in]  reltol          :   See the description of the corresponding argument in the documentation of [getQuadErr](@ref pm_quadPack::getQuadErr).<br>
    4923             :     !>                                  (**optional**, default = `epsilon(real(0, kind(integral)))**(2./3.)`)<br>
    4924             :     !>  \param[in]  help            :   See the description of the corresponding argument in the documentation of [getQuadErr](@ref pm_quadPack::getQuadErr).<br>
    4925             :     !>                                  (**optional**. If missing, the procedure attempts to compute the integral without explicit assumptions about the singularities or discontinuities.)<br>
    4926             :     !>  \param[out] abserr          :   See the description of the corresponding argument in the documentation of [getQuadErr](@ref pm_quadPack::getQuadErr).<br>
    4927             :     !>                                  (**optional**. If missing, the estimated error of the integral will not be returned.)<br>
    4928             :     !>  \param[out] neval           :   See the description of the corresponding argument in the documentation of [getQuadErr](@ref pm_quadPack::getQuadErr).<br>
    4929             :     !>                                  (**optional**. If missing, the number of function evaluations will not be returned.)<br>
    4930             :     !>  \param[out] nint            :   See the description of the corresponding argument in the documentation of [getQuadErr](@ref pm_quadPack::getQuadErr).<br>
    4931             :     !>                                  (**optional**. If missing, the number of subintervals formed will not be returned.)<br>
    4932             :     !>  \param[out] msg             :   The output scalar argument of type `character` of default kind \SK of arbitrary length type parameter that is set to a diagnostic message if the integration fails to converge.<br>
    4933             :     !>                                  A length type parameter of `127` is sufficient to capture all error messages.<br>
    4934             :     !>                                  If `msg` has shorter length parameter, the output message will be trimmed from the end, otherwise padded with blanks as necessary.<br>
    4935             :     !>                                  (**optional**. If missing, no diagnostic message will be returned.)<br>
    4936             :     !>
    4937             :     !>  \return
    4938             :     !>  `failed`                    :   The output scalar of type `logical` of default kind \LK, that is set to `.true.` <b>if and only if</b> the integration **fails to converge within the requested tolerances**.<br>
    4939             :     !>                                  Otherwise, it is set `.false.` if the integration succeeds with no errors.<br>
    4940             :     !>                                  See the description of the output argument `err` of [getQuadErr](@ref pm_quadPack::getQuadErr) for information on the kinds of integration failures that can happen.<br>
    4941             :     !>
    4942             :     !>  \interface{isFailedQuad}
    4943             :     !>  \code{.F90}
    4944             :     !>
    4945             :     !>      use pm_quadPack, only: isFailedQuad
    4946             :     !>      use pm_kind, only: LK
    4947             :     !>      logical(LK) :: failed
    4948             :     !>
    4949             :     !>      failed = isFailedQuad(getFunc, lb, ub       , integral, abserr = abserr, abstol = abstol, reltol = reltol, neval = neval, nint = nint, msg = msg)
    4950             :     !>      failed = isFailedQuad(getFunc, lb, ub, help , integral, abserr = abserr, abstol = abstol, reltol = reltol, neval = neval, nint = nint, msg = msg)
    4951             :     !>
    4952             :     !>  \endcode
    4953             :     !>
    4954             :     !>  \warning
    4955             :     !>  All conditions in the **warning** section of the documentation of [getQuadErr](@ref pm_quadPack::getQuadErr) also apply to this interface.<br>
    4956             :     !>  \vericons
    4957             :     !>
    4958             :     !>  \warning
    4959             :     !>  If the target function contains points of difficulties, singularities, or discontinuities,
    4960             :     !>  user must ensure the abscissas of the specified Gauss-Kronrod rule do not match such points.<br>
    4961             :     !>  Particularly, computing an integrand at its singularities can lead to undefined values that can lead
    4962             :     !>  to unexpected **segmentation fault** or propagation of `NaN` values within the computational flow
    4963             :     !>  or other strange errors that can be extremely difficult to debug.<br>
    4964             :     !>  A simple check can be added within the target integrand implementations to ensure no such difficulty point matches an input value at which the function must be evaluated.<br>
    4965             :     !>  Alternatively, one should consider using the adaptive integration routines [isFailedQuad](@ref pm_quadPack::isFailedQuad) or [getQuadErr](@ref pm_quadPack::getQuadErr)
    4966             :     !>  while setting their input `help` arguments to the points of difficulties of the integrand.<br>
    4967             :     !>
    4968             :     !>  \impure
    4969             :     !>
    4970             :     !>  \see
    4971             :     !>  [getQuadGK](@ref pm_quadPack::getQuadGK)<br>
    4972             :     !>  [getQuadErr](@ref pm_quadPack::getQuadErr)<br>
    4973             :     !>  [getQuadRomb](@ref pm_quadRomb::getQuadRomb)<br>
    4974             :     !>  [isFailedQuad](@ref pm_quadPack::isFailedQuad)<br>
    4975             :     !>
    4976             :     !>  \example{isFailedQuad}
    4977             :     !>  \include{lineno} example/pm_quadPack/isFailedQuad/main.F90
    4978             :     !>  \compilef{isFailedQuad}
    4979             :     !>  \output{isFailedQuad}
    4980             :     !>  \include{lineno} example/pm_quadPack/isFailedQuad/main.out.F90
    4981             :     !>
    4982             :     !>  \test
    4983             :     !>  [test_pm_quadPack](@ref test_pm_quadPack)
    4984             :     !>
    4985             :     !>  \finmain{isFailedQuad}
    4986             :     !>
    4987             :     !>  \author
    4988             :     !>  \AmirShahmoradi, Oct 16, 2009, 11:14 AM, Michigan
    4989             :     interface isFailedQuad
    4990             : 
    4991             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4992             : 
    4993             : #if RK5_ENABLED
    4994             :     module function isFailedQuadQAGD_RK5(getFunc, lb, ub, integral, abserr, abstol, reltol, neval, nint, msg) result(failed)
    4995             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    4996             :         !DEC$ ATTRIBUTES DLLEXPORT :: isFailedQuadQAGD_RK5
    4997             : #endif
    4998             :         use pm_kind, only: RKC => RK5
    4999             :         procedure(real(RKC))                                        :: getFunc
    5000             :         real(RKC)           , intent(in)                            :: lb, ub
    5001             :         real(RKC)           , intent(out)                           :: integral
    5002             :         real(RKC)           , intent(out)   , optional              :: abserr
    5003             :         real(RKC)           , intent(in)    , optional              :: abstol
    5004             :         real(RKC)           , intent(in)    , optional              :: reltol
    5005             :         integer(IK)         , intent(out)   , optional              :: neval
    5006             :         integer(IK)         , intent(out)   , optional              :: nint
    5007             :         character(*, SK)    , intent(out)   , optional              :: msg
    5008             :         logical(LK)                                                 :: failed
    5009             :     end function
    5010             : #endif
    5011             : 
    5012             : #if RK4_ENABLED
    5013             :     module function isFailedQuadQAGD_RK4(getFunc, lb, ub, integral, abserr, abstol, reltol, neval, nint, msg) result(failed)
    5014             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    5015             :         !DEC$ ATTRIBUTES DLLEXPORT :: isFailedQuadQAGD_RK4
    5016             : #endif
    5017             :         use pm_kind, only: RKC => RK4
    5018             :         procedure(real(RKC))                                        :: getFunc
    5019             :         real(RKC)           , intent(in)                            :: lb, ub
    5020             :         real(RKC)           , intent(out)                           :: integral
    5021             :         real(RKC)           , intent(out)   , optional              :: abserr
    5022             :         real(RKC)           , intent(in)    , optional              :: abstol
    5023             :         real(RKC)           , intent(in)    , optional              :: reltol
    5024             :         integer(IK)         , intent(out)   , optional              :: neval
    5025             :         integer(IK)         , intent(out)   , optional              :: nint
    5026             :         character(*, SK)    , intent(out)   , optional              :: msg
    5027             :         logical(LK)                                                 :: failed
    5028             :     end function
    5029             : #endif
    5030             : 
    5031             : #if RK3_ENABLED
    5032             :     module function isFailedQuadQAGD_RK3(getFunc, lb, ub, integral, abserr, abstol, reltol, neval, nint, msg) result(failed)
    5033             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    5034             :         !DEC$ ATTRIBUTES DLLEXPORT :: isFailedQuadQAGD_RK3
    5035             : #endif
    5036             :         use pm_kind, only: RKC => RK3
    5037             :         procedure(real(RKC))                                        :: getFunc
    5038             :         real(RKC)           , intent(in)                            :: lb, ub
    5039             :         real(RKC)           , intent(out)                           :: integral
    5040             :         real(RKC)           , intent(out)   , optional              :: abserr
    5041             :         real(RKC)           , intent(in)    , optional              :: abstol
    5042             :         real(RKC)           , intent(in)    , optional              :: reltol
    5043             :         integer(IK)         , intent(out)   , optional              :: neval
    5044             :         integer(IK)         , intent(out)   , optional              :: nint
    5045             :         character(*, SK)    , intent(out)   , optional              :: msg
    5046             :         logical(LK)                                                 :: failed
    5047             :     end function
    5048             : #endif
    5049             : 
    5050             : #if RK2_ENABLED
    5051             :     module function isFailedQuadQAGD_RK2(getFunc, lb, ub, integral, abserr, abstol, reltol, neval, nint, msg) result(failed)
    5052             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    5053             :         !DEC$ ATTRIBUTES DLLEXPORT :: isFailedQuadQAGD_RK2
    5054             : #endif
    5055             :         use pm_kind, only: RKC => RK2
    5056             :         procedure(real(RKC))                                        :: getFunc
    5057             :         real(RKC)           , intent(in)                            :: lb, ub
    5058             :         real(RKC)           , intent(out)                           :: integral
    5059             :         real(RKC)           , intent(out)   , optional              :: abserr
    5060             :         real(RKC)           , intent(in)    , optional              :: abstol
    5061             :         real(RKC)           , intent(in)    , optional              :: reltol
    5062             :         integer(IK)         , intent(out)   , optional              :: neval
    5063             :         integer(IK)         , intent(out)   , optional              :: nint
    5064             :         character(*, SK)    , intent(out)   , optional              :: msg
    5065             :         logical(LK)                                                 :: failed
    5066             :     end function
    5067             : #endif
    5068             : 
    5069             : #if RK1_ENABLED
    5070             :     module function isFailedQuadQAGD_RK1(getFunc, lb, ub, integral, abserr, abstol, reltol, neval, nint, msg) result(failed)
    5071             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    5072             :         !DEC$ ATTRIBUTES DLLEXPORT :: isFailedQuadQAGD_RK1
    5073             : #endif
    5074             :         use pm_kind, only: RKC => RK1
    5075             :         procedure(real(RKC))                                        :: getFunc
    5076             :         real(RKC)           , intent(in)                            :: lb, ub
    5077             :         real(RKC)           , intent(out)                           :: integral
    5078             :         real(RKC)           , intent(out)   , optional              :: abserr
    5079             :         real(RKC)           , intent(in)    , optional              :: abstol
    5080             :         real(RKC)           , intent(in)    , optional              :: reltol
    5081             :         integer(IK)         , intent(out)   , optional              :: neval
    5082             :         integer(IK)         , intent(out)   , optional              :: nint
    5083             :         character(*, SK)    , intent(out)   , optional              :: msg
    5084             :         logical(LK)                                                 :: failed
    5085             :     end function
    5086             : #endif
    5087             : 
    5088             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5089             : 
    5090             : #if RK5_ENABLED
    5091             :     module function isFailedQuadQAGS_RK5(getFunc, lb, ub, help, integral, abserr, abstol, reltol, neval, nint, msg) result(failed)
    5092             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    5093             :         !DEC$ ATTRIBUTES DLLEXPORT :: isFailedQuadQAGS_RK5
    5094             : #endif
    5095             :         use pm_kind, only: RKC => RK5
    5096             :         procedure(real(RKC))                                        :: getFunc
    5097             :         real(RKC)           , intent(in)                            :: lb, ub
    5098             :         real(RKC)           , intent(out)                           :: integral
    5099             :         type(weps_type)     , intent(in)                            :: help
    5100             :         real(RKC)           , intent(out)   , optional              :: abserr
    5101             :         real(RKC)           , intent(in)    , optional              :: abstol
    5102             :         real(RKC)           , intent(in)    , optional              :: reltol
    5103             :         integer(IK)         , intent(out)   , optional              :: neval
    5104             :         integer(IK)         , intent(out)   , optional              :: nint
    5105             :         character(*, SK)    , intent(out)   , optional              :: msg
    5106             :         logical(LK)                                                 :: failed
    5107             :     end function
    5108             : #endif
    5109             : 
    5110             : #if RK4_ENABLED
    5111             :     module function isFailedQuadQAGS_RK4(getFunc, lb, ub, help, integral, abserr, abstol, reltol, neval, nint, msg) result(failed)
    5112             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    5113             :         !DEC$ ATTRIBUTES DLLEXPORT :: isFailedQuadQAGS_RK4
    5114             : #endif
    5115             :         use pm_kind, only: RKC => RK4
    5116             :         procedure(real(RKC))                                        :: getFunc
    5117             :         real(RKC)           , intent(in)                            :: lb, ub
    5118             :         real(RKC)           , intent(out)                           :: integral
    5119             :         type(weps_type)     , intent(in)                            :: help
    5120             :         real(RKC)           , intent(out)   , optional              :: abserr
    5121             :         real(RKC)           , intent(in)    , optional              :: abstol
    5122             :         real(RKC)           , intent(in)    , optional              :: reltol
    5123             :         integer(IK)         , intent(out)   , optional              :: neval
    5124             :         integer(IK)         , intent(out)   , optional              :: nint
    5125             :         character(*, SK)    , intent(out)   , optional              :: msg
    5126             :         logical(LK)                                                 :: failed
    5127             :     end function
    5128             : #endif
    5129             : 
    5130             : #if RK3_ENABLED
    5131             :     module function isFailedQuadQAGS_RK3(getFunc, lb, ub, help, integral, abserr, abstol, reltol, neval, nint, msg) result(failed)
    5132             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    5133             :         !DEC$ ATTRIBUTES DLLEXPORT :: isFailedQuadQAGS_RK3
    5134             : #endif
    5135             :         use pm_kind, only: RKC => RK3
    5136             :         procedure(real(RKC))                                        :: getFunc
    5137             :         real(RKC)           , intent(in)                            :: lb, ub
    5138             :         real(RKC)           , intent(out)                           :: integral
    5139             :         type(weps_type)     , intent(in)                            :: help
    5140             :         real(RKC)           , intent(out)   , optional              :: abserr
    5141             :         real(RKC)           , intent(in)    , optional              :: abstol
    5142             :         real(RKC)           , intent(in)    , optional              :: reltol
    5143             :         integer(IK)         , intent(out)   , optional              :: neval
    5144             :         integer(IK)         , intent(out)   , optional              :: nint
    5145             :         character(*, SK)    , intent(out)   , optional              :: msg
    5146             :         logical(LK)                                                 :: failed
    5147             :     end function
    5148             : #endif
    5149             : 
    5150             : #if RK2_ENABLED
    5151             :     module function isFailedQuadQAGS_RK2(getFunc, lb, ub, help, integral, abserr, abstol, reltol, neval, nint, msg) result(failed)
    5152             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    5153             :         !DEC$ ATTRIBUTES DLLEXPORT :: isFailedQuadQAGS_RK2
    5154             : #endif
    5155             :         use pm_kind, only: RKC => RK2
    5156             :         procedure(real(RKC))                                        :: getFunc
    5157             :         real(RKC)           , intent(in)                            :: lb, ub
    5158             :         real(RKC)           , intent(out)                           :: integral
    5159             :         type(weps_type)     , intent(in)                            :: help
    5160             :         real(RKC)           , intent(out)   , optional              :: abserr
    5161             :         real(RKC)           , intent(in)    , optional              :: abstol
    5162             :         real(RKC)           , intent(in)    , optional              :: reltol
    5163             :         integer(IK)         , intent(out)   , optional              :: neval
    5164             :         integer(IK)         , intent(out)   , optional              :: nint
    5165             :         character(*, SK)    , intent(out)   , optional              :: msg
    5166             :         logical(LK)                                                 :: failed
    5167             :     end function
    5168             : #endif
    5169             : 
    5170             : #if RK1_ENABLED
    5171             :     module function isFailedQuadQAGS_RK1(getFunc, lb, ub, help, integral, abserr, abstol, reltol, neval, nint, msg) result(failed)
    5172             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    5173             :         !DEC$ ATTRIBUTES DLLEXPORT :: isFailedQuadQAGS_RK1
    5174             : #endif
    5175             :         use pm_kind, only: RKC => RK1
    5176             :         procedure(real(RKC))                                        :: getFunc
    5177             :         real(RKC)           , intent(in)                            :: lb, ub
    5178             :         real(RKC)           , intent(out)                           :: integral
    5179             :         type(weps_type)     , intent(in)                            :: help
    5180             :         real(RKC)           , intent(out)   , optional              :: abserr
    5181             :         real(RKC)           , intent(in)    , optional              :: abstol
    5182             :         real(RKC)           , intent(in)    , optional              :: reltol
    5183             :         integer(IK)         , intent(out)   , optional              :: neval
    5184             :         integer(IK)         , intent(out)   , optional              :: nint
    5185             :         character(*, SK)    , intent(out)   , optional              :: msg
    5186             :         logical(LK)                                                 :: failed
    5187             :     end function
    5188             : #endif
    5189             : 
    5190             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5191             : 
    5192             : #if RK5_ENABLED
    5193             :     module function isFailedQuadQAGP_RK5(getFunc, lb, ub, help, integral, abserr, abstol, reltol, neval, nint, msg) result(failed)
    5194             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    5195             :         !DEC$ ATTRIBUTES DLLEXPORT :: isFailedQuadQAGP_RK5
    5196             : #endif
    5197             :         use pm_kind, only: RKC => RK5
    5198             :         procedure(real(RKC))                                        :: getFunc
    5199             :         real(RKC)           , intent(in)                            :: lb, ub
    5200             :         real(RKC)           , intent(out)                           :: integral
    5201             :         real(RKC)           , intent(in)    , contiguous            :: help(:)
    5202             :         real(RKC)           , intent(out)   , optional              :: abserr
    5203             :         real(RKC)           , intent(in)    , optional              :: abstol
    5204             :         real(RKC)           , intent(in)    , optional              :: reltol
    5205             :         integer(IK)         , intent(out)   , optional              :: neval
    5206             :         integer(IK)         , intent(out)   , optional              :: nint
    5207             :         character(*, SK)    , intent(out)   , optional              :: msg
    5208             :         logical(LK)                                                 :: failed
    5209             :     end function
    5210             : #endif
    5211             : 
    5212             : #if RK4_ENABLED
    5213             :     module function isFailedQuadQAGP_RK4(getFunc, lb, ub, help, integral, abserr, abstol, reltol, neval, nint, msg) result(failed)
    5214             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    5215             :         !DEC$ ATTRIBUTES DLLEXPORT :: isFailedQuadQAGP_RK4
    5216             : #endif
    5217             :         use pm_kind, only: RKC => RK4
    5218             :         procedure(real(RKC))                                        :: getFunc
    5219             :         real(RKC)           , intent(in)                            :: lb, ub
    5220             :         real(RKC)           , intent(out)                           :: integral
    5221             :         real(RKC)           , intent(in)    , contiguous            :: help(:)
    5222             :         real(RKC)           , intent(out)   , optional              :: abserr
    5223             :         real(RKC)           , intent(in)    , optional              :: abstol
    5224             :         real(RKC)           , intent(in)    , optional              :: reltol
    5225             :         integer(IK)         , intent(out)   , optional              :: neval
    5226             :         integer(IK)         , intent(out)   , optional              :: nint
    5227             :         character(*, SK)    , intent(out)   , optional              :: msg
    5228             :         logical(LK)                                                 :: failed
    5229             :     end function
    5230             : #endif
    5231             : 
    5232             : #if RK3_ENABLED
    5233             :     module function isFailedQuadQAGP_RK3(getFunc, lb, ub, help, integral, abserr, abstol, reltol, neval, nint, msg) result(failed)
    5234             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    5235             :         !DEC$ ATTRIBUTES DLLEXPORT :: isFailedQuadQAGP_RK3
    5236             : #endif
    5237             :         use pm_kind, only: RKC => RK3
    5238             :         procedure(real(RKC))                                        :: getFunc
    5239             :         real(RKC)           , intent(in)                            :: lb, ub
    5240             :         real(RKC)           , intent(out)                           :: integral
    5241             :         real(RKC)           , intent(in)    , contiguous            :: help(:)
    5242             :         real(RKC)           , intent(out)   , optional              :: abserr
    5243             :         real(RKC)           , intent(in)    , optional              :: abstol
    5244             :         real(RKC)           , intent(in)    , optional              :: reltol
    5245             :         integer(IK)         , intent(out)   , optional              :: neval
    5246             :         integer(IK)         , intent(out)   , optional              :: nint
    5247             :         character(*, SK)    , intent(out)   , optional              :: msg
    5248             :         logical(LK)                                                 :: failed
    5249             :     end function
    5250             : #endif
    5251             : 
    5252             : #if RK2_ENABLED
    5253             :     module function isFailedQuadQAGP_RK2(getFunc, lb, ub, help, integral, abserr, abstol, reltol, neval, nint, msg) result(failed)
    5254             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    5255             :         !DEC$ ATTRIBUTES DLLEXPORT :: isFailedQuadQAGP_RK2
    5256             : #endif
    5257             :         use pm_kind, only: RKC => RK2
    5258             :         procedure(real(RKC))                                        :: getFunc
    5259             :         real(RKC)           , intent(in)                            :: lb, ub
    5260             :         real(RKC)           , intent(out)                           :: integral
    5261             :         real(RKC)           , intent(in)    , contiguous            :: help(:)
    5262             :         real(RKC)           , intent(out)   , optional              :: abserr
    5263             :         real(RKC)           , intent(in)    , optional              :: abstol
    5264             :         real(RKC)           , intent(in)    , optional              :: reltol
    5265             :         integer(IK)         , intent(out)   , optional              :: neval
    5266             :         integer(IK)         , intent(out)   , optional              :: nint
    5267             :         character(*, SK)    , intent(out)   , optional              :: msg
    5268             :         logical(LK)                                                 :: failed
    5269             :     end function
    5270             : #endif
    5271             : 
    5272             : #if RK1_ENABLED
    5273             :     module function isFailedQuadQAGP_RK1(getFunc, lb, ub, help, integral, abserr, abstol, reltol, neval, nint, msg) result(failed)
    5274             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    5275             :         !DEC$ ATTRIBUTES DLLEXPORT :: isFailedQuadQAGP_RK1
    5276             : #endif
    5277             :         use pm_kind, only: RKC => RK1
    5278             :         procedure(real(RKC))                                        :: getFunc
    5279             :         real(RKC)           , intent(in)                            :: lb, ub
    5280             :         real(RKC)           , intent(out)                           :: integral
    5281             :         real(RKC)           , intent(in)    , contiguous            :: help(:)
    5282             :         real(RKC)           , intent(out)   , optional              :: abserr
    5283             :         real(RKC)           , intent(in)    , optional              :: abstol
    5284             :         real(RKC)           , intent(in)    , optional              :: reltol
    5285             :         integer(IK)         , intent(out)   , optional              :: neval
    5286             :         integer(IK)         , intent(out)   , optional              :: nint
    5287             :         character(*, SK)    , intent(out)   , optional              :: msg
    5288             :         logical(LK)                                                 :: failed
    5289             :     end function
    5290             : #endif
    5291             : 
    5292             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5293             : 
    5294             : #if RK5_ENABLED
    5295             :     module function isFailedQuadQAWC_RK5(getFunc, lb, ub, help, integral, abserr, abstol, reltol, neval, nint, msg) result(failed)
    5296             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    5297             :         !DEC$ ATTRIBUTES DLLEXPORT :: isFailedQuadQAWC_RK5
    5298             : #endif
    5299             :         use pm_kind, only: RKC => RK5
    5300             :         procedure(real(RKC))                                        :: getFunc
    5301             :         real(RKC)           , intent(in)                            :: lb, ub
    5302             :         real(RKC)           , intent(out)                           :: integral
    5303             :         type(wcauchy_type)  , intent(in)                            :: help
    5304             :         real(RKC)           , intent(out)   , optional              :: abserr
    5305             :         real(RKC)           , intent(in)    , optional              :: abstol
    5306             :         real(RKC)           , intent(in)    , optional              :: reltol
    5307             :         integer(IK)         , intent(out)   , optional              :: neval
    5308             :         integer(IK)         , intent(out)   , optional              :: nint
    5309             :         character(*, SK)    , intent(out)   , optional              :: msg
    5310             :         logical(LK)                                                 :: failed
    5311             :     end function
    5312             : #endif
    5313             : 
    5314             : #if RK4_ENABLED
    5315             :     module function isFailedQuadQAWC_RK4(getFunc, lb, ub, help, integral, abserr, abstol, reltol, neval, nint, msg) result(failed)
    5316             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    5317             :         !DEC$ ATTRIBUTES DLLEXPORT :: isFailedQuadQAWC_RK4
    5318             : #endif
    5319             :         use pm_kind, only: RKC => RK4
    5320             :         procedure(real(RKC))                                        :: getFunc
    5321             :         real(RKC)           , intent(in)                            :: lb, ub
    5322             :         real(RKC)           , intent(out)                           :: integral
    5323             :         type(wcauchy_type)  , intent(in)                            :: help
    5324             :         real(RKC)           , intent(out)   , optional              :: abserr
    5325             :         real(RKC)           , intent(in)    , optional              :: abstol
    5326             :         real(RKC)           , intent(in)    , optional              :: reltol
    5327             :         integer(IK)         , intent(out)   , optional              :: neval
    5328             :         integer(IK)         , intent(out)   , optional              :: nint
    5329             :         character(*, SK)    , intent(out)   , optional              :: msg
    5330             :         logical(LK)                                                 :: failed
    5331             :     end function
    5332             : #endif
    5333             : 
    5334             : #if RK3_ENABLED
    5335             :     module function isFailedQuadQAWC_RK3(getFunc, lb, ub, help, integral, abserr, abstol, reltol, neval, nint, msg) result(failed)
    5336             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    5337             :         !DEC$ ATTRIBUTES DLLEXPORT :: isFailedQuadQAWC_RK3
    5338             : #endif
    5339             :         use pm_kind, only: RKC => RK3
    5340             :         procedure(real(RKC))                                        :: getFunc
    5341             :         real(RKC)           , intent(in)                            :: lb, ub
    5342             :         real(RKC)           , intent(out)                           :: integral
    5343             :         type(wcauchy_type)  , intent(in)                            :: help
    5344             :         real(RKC)           , intent(out)   , optional              :: abserr
    5345             :         real(RKC)           , intent(in)    , optional              :: abstol
    5346             :         real(RKC)           , intent(in)    , optional              :: reltol
    5347             :         integer(IK)         , intent(out)   , optional              :: neval
    5348             :         integer(IK)         , intent(out)   , optional              :: nint
    5349             :         character(*, SK)    , intent(out)   , optional              :: msg
    5350             :         logical(LK)                                                 :: failed
    5351             :     end function
    5352             : #endif
    5353             : 
    5354             : #if RK2_ENABLED
    5355             :     module function isFailedQuadQAWC_RK2(getFunc, lb, ub, help, integral, abserr, abstol, reltol, neval, nint, msg) result(failed)
    5356             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    5357             :         !DEC$ ATTRIBUTES DLLEXPORT :: isFailedQuadQAWC_RK2
    5358             : #endif
    5359             :         use pm_kind, only: RKC => RK2
    5360             :         procedure(real(RKC))                                        :: getFunc
    5361             :         real(RKC)           , intent(in)                            :: lb, ub
    5362             :         real(RKC)           , intent(out)                           :: integral
    5363             :         type(wcauchy_type)  , intent(in)                            :: help
    5364             :         real(RKC)           , intent(out)   , optional              :: abserr
    5365             :         real(RKC)           , intent(in)    , optional              :: abstol
    5366             :         real(RKC)           , intent(in)    , optional              :: reltol
    5367             :         integer(IK)         , intent(out)   , optional              :: neval
    5368             :         integer(IK)         , intent(out)   , optional              :: nint
    5369             :         character(*, SK)    , intent(out)   , optional              :: msg
    5370             :         logical(LK)                                                 :: failed
    5371             :     end function
    5372             : #endif
    5373             : 
    5374             : #if RK1_ENABLED
    5375             :     module function isFailedQuadQAWC_RK1(getFunc, lb, ub, help, integral, abserr, abstol, reltol, neval, nint, msg) result(failed)
    5376             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    5377             :         !DEC$ ATTRIBUTES DLLEXPORT :: isFailedQuadQAWC_RK1
    5378             : #endif
    5379             :         use pm_kind, only: RKC => RK1
    5380             :         procedure(real(RKC))                                        :: getFunc
    5381             :         real(RKC)           , intent(in)                            :: lb, ub
    5382             :         real(RKC)           , intent(out)                           :: integral
    5383             :         type(wcauchy_type)  , intent(in)                            :: help
    5384             :         real(RKC)           , intent(out)   , optional              :: abserr
    5385             :         real(RKC)           , intent(in)    , optional              :: abstol
    5386             :         real(RKC)           , intent(in)    , optional              :: reltol
    5387             :         integer(IK)         , intent(out)   , optional              :: neval
    5388             :         integer(IK)         , intent(out)   , optional              :: nint
    5389             :         character(*, SK)    , intent(out)   , optional              :: msg
    5390             :         logical(LK)                                                 :: failed
    5391             :     end function
    5392             : #endif
    5393             : 
    5394             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5395             : 
    5396             :     end interface
    5397             : 
    5398             : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5399             : 
    5400             :     !>  \brief
    5401             :     !>  Compute the 1D integral of the input scalar (potentially singular) integrand `getFunc` on a finite or semi/fully-infinite
    5402             :     !>  interval `(a, b)` and estimate its absolute error via the requested **adaptive global Gauss-Kronrod (GK)** extension rules.
    5403             :     !>
    5404             :     !>  \details
    5405             :     !>  The resulting integral hopefully satisfies the accuracy condition `abs(truth - result) <= max(abstol, reltol * abs(i))`,<br>
    5406             :     !>  where `truth` is the true value of the integral and `abstol, reltol` are the user-specified absolute and relative tolerances, respectively.<br>
    5407             :     !>  This interface combines and significantly extends the functionalities of the `QAG`, `QAGI`, `QAGP`, `QAGS`, `QAWC`, `QAWO`, `QAWS` subroutines of the venerable QUADPACK library.<br>
    5408             :     !>
    5409             :     !>  Specifically,<br>
    5410             :     !>  <ul>
    5411             :     !>      <li>    When the input argument `help` is missing, this interface performs **adaptive global Gauss-Kronrod (GK)** with the user-specified
    5412             :     !>              predefined (7-15 (`GK15`), 10-21 (`GK21`), 15-31 (`GK31`), 20-41 (`GK41`), 25-51 (`GK51`), 30-61 (`GK61`)) Gauss-Kronrod extension rules,<br>
    5413             :     !>              or with user-specified arbitrarily-defined Gauss-Kronrod extension rules via the triple `(nodeK, weightK, weightG)` input arguments.<br>
    5414             :     !>              This interface replicates and extends the <b>QAG/QAGE</b> functionalities of the QuadPack library to all Gauss-Kronrod extension rules mentioned above and all `real` kinds supported by the processor.<br>
    5415             :     !>      <li>    When the input argument `help` is present and set to [weps](@ref pm_quadPack::weps), this interface accelerates the convergence of **adaptive global Gauss-Kronrod (GK)**
    5416             :     !>              with predefined or arbitrary Gauss-Kronrod rules are mentioned above, via the Epsilon extrapolation algorithm of Wynn (1961)).<br>
    5417             :     !>              **This extrapolation is particularly helpful with**,<br>
    5418             :     !>              <ol>
    5419             :     !>                  <li>    integration of integrands with singularities at or within the integration limits, or<br>
    5420             :     !>                  <li>    integration of integrands with semi or doubly infinite integration limits,<br>
    5421             :     !>              </ol>
    5422             :     !>              possibly leading to orders of magnitude speedup in computing the integral within the requested tolerance.<br>
    5423             :     !>              This interface replicates and extends the <b>QAGS/QAGSE</b> functionalities of the QuadPack library to all Gauss-Kronrod extension rules and all `real` kinds supported by the processor.<br>
    5424             :     !>      <li>    When the input argument `help` is present and set to a vector of points of difficulties within the integration domain, this interface accelerates the convergence of **adaptive global Gauss-Kronrod (GK)**
    5425             :     !>              with predefined or arbitrary Gauss-Kronrod rules are mentioned above via the Epsilon algorithm of Wynn (1961)).<br>
    5426             :     !>              Simultaneously, the interface carefully takes into account the specified points of integration difficulty (such as singularities or discontinuities) specified in `help`.<br>
    5427             :     !>              This interface replicates and extends the <b>QAGP/QAGPE</b> functionalities of the QuadPack library to all Gauss-Kronrod extension rules and all `real` kinds supported by the processor.<br>
    5428             :     !>      <li>    When the integration limits are set to,<br>
    5429             :     !>              <ol>
    5430             :     !>                  <li>    `(lb = ninf, ub)`, implying the semi-infinite range \f$(-\infty, \ms{ub})\f$, or<br>
    5431             :     !>                  <li>    `(lb, ub = pinf)`, implying the semi-infinite range \f$(\ms{lb}, +\infty)\f$, or<br>
    5432             :     !>                  <li>    `(lb = ninf, ub = pinf)`, implying the fully-infinite range \f$(-\infty, +\infty)\f$,<br>
    5433             :     !>              </ol>
    5434             :     !>              this interface first applies the following corresponding change of variables,<br>
    5435             :     !>              <ol>
    5436             :     !>                  <li>    \f$x = \ms{ub} - \frac{1 - t}{t}\f$,
    5437             :     !>                  <li>    \f$x = \ms{lb} + \frac{1 - t}{t}\f$,
    5438             :     !>                  <li>    \f$x = \frac{1 - t}{t}\f$,
    5439             :     !>              </ol>
    5440             :     !>              to the integrand to transform the semi/fully-infinite integration range to the finite range \f$(0, 1)\f$.<br>
    5441             :     !>              Then it calls the user-specified interface to perform the integration.<br>
    5442             :     !>              The functionality of this interface significantly extends the functionalities of the <b>QAGI/QAGIE</b> routines of the QuadPack library.<br>
    5443             :     !>              Specifically, this interface<br>
    5444             :     !>              <ol>
    5445             :     !>                  <li>    computes integrals with arbitrary machine precision by accepting all `real` kinds supported by the processor.<br>
    5446             :     !>                  <li>    allows the use of all predefined or arbitrary Gauss-Kronrod rules for semi or fully infinite integrations.<br>
    5447             :     !>                  <li>    allows explicit specification of singularities or discontinuities via the input `help` argument for semi or fully infinite integrations.<br>
    5448             :     !>              </ol>
    5449             :     !>  </ul>
    5450             :     !>
    5451             :     !>  \param      getFunc         :   The input function to be integrated (i.e., the integrand).<br>
    5452             :     !>                                  <ol>
    5453             :     !>                                      <li>    On entry, it must take an input scalar of the same type and kind as `integral`.<br>
    5454             :     !>                                      <li>    On exit, it must generate an input scalar of the same type and kind as `integral`, representing the corresponding function value.<br>
    5455             :     !>                                  </ol>
    5456             :     !>                                  The following illustrates the general interface of `getFunc`:<br>
    5457             :     !>                                  \code{.F90}
    5458             :     !>
    5459             :     !>                                      function getFunc(x) result(func)
    5460             :     !>                                          real(RKC)   , intent(in)    :: x
    5461             :     !>                                          real(RKC)                   :: func
    5462             :     !>                                      end function
    5463             :     !>
    5464             :     !>                                  \endcode
    5465             :     !>                                  where `RKC` must match the user-specified kind type parameter for the `integral` output argument below.<br>
    5466             :     !>  \param[in]  lb              :   The input scalar argument that can be either,<br>
    5467             :     !>                                  <ul>
    5468             :     !>                                      <li>    a value of type `real` of the same kind as `integral`, representing the lower limit of integration, or<br>
    5469             :     !>                                      <li>    the constant [ninf](@ref pm_mathConst::ninf), representing negative infinity (\f$-\infty\f$) as the lower limit of integration.<br>
    5470             :     !>                                  </ul>
    5471             :     !>  \param[in]  ub              :   The input scalar argument that can be either,<br>
    5472             :     !>                                  <ul>
    5473             :     !>                                      <li>    a value of type `real` of the same kind as `integral`, representing the upper limit of integration, or<br>
    5474             :     !>                                      <li>    the constant [pinf](@ref pm_mathConst::pinf), representing positive infinity (\f$+\infty\f$) as the upper limit of integration.<br>
    5475             :     !>                                  </ul>
    5476             :     !>  \param[in]  abstol          :   The input scalar argument of the same type and kind as `integral`, representing the absolute tolerance of integration.<br>
    5477             :     !>                                  If the estimated integration error reaches a value below this threshold, the integration is assumed to have converged.<br>
    5478             :     !>                                  This argument can be set to any non-negative value, including `abstol = 0.`.<br>
    5479             :     !>  \param[in]  reltol          :   The input scalar argument of the same type and kind as `integral`, representing the relative tolerance of integration.<br>
    5480             :     !>                                  If the relative accuracy of integration reaches a value below this threshold, the integration is assumed to have converged.<br>
    5481             :     !>                                  This argument can be set to any positive value significantly larger (e.g., \f$\times10000\f$) than `epsilon(real(0., kind(reltol))`.<br>
    5482             :     !>                                  A good rule of thumb is to set `reltol = epsilon(real(0, kind(integral)))**(2./3.)`.<br>
    5483             :     !>                                  The integration result is generally orders of magnitude more precise than the specified `reltol`.<br>
    5484             :     !>  \param[in]  qrule           :   The input scalar constant argument that can be either,<br>
    5485             :     !>                                  <ul>
    5486             :     !>                                      <li>    [GK15](@ref pm_quadPack::GK15) of type [GK15_type](@ref pm_quadPack::GK15_type), or<br>
    5487             :     !>                                      <li>    [GK21](@ref pm_quadPack::GK21) of type [GK21_type](@ref pm_quadPack::GK21_type), or<br>
    5488             :     !>                                      <li>    [GK31](@ref pm_quadPack::GK31) of type [GK31_type](@ref pm_quadPack::GK31_type), or<br>
    5489             :     !>                                      <li>    [GK41](@ref pm_quadPack::GK41) of type [GK41_type](@ref pm_quadPack::GK41_type), or<br>
    5490             :     !>                                      <li>    [GK51](@ref pm_quadPack::GK51) of type [GK51_type](@ref pm_quadPack::GK51_type), or<br>
    5491             :     !>                                      <li>    [GK61](@ref pm_quadPack::GK61) of type [GK61_type](@ref pm_quadPack::GK61_type).<br>
    5492             :     !>                                  </ul>
    5493             :     !>                                  The specified objects are empty and merely serve to differentiate the multitude of orders of Gauss-Kronrod quadrature rules.<br>
    5494             :     !>                                  For example, specifying [GK15](@ref pm_quadPack::GK15) dictates the use of 15-points Gauss-Kronrod quadrature rules for computing the integral and estimating its error.<br>
    5495             :     !>                                  (**optional**. It must be present <b>if and only if</b> `nodeK`, `weightK` and `weightG` optional input arguments are missing.)
    5496             :     !>  \param[in]  nodeK           :   The input `contiguous` vector argument of the same type and kind as `integral`, of size \f$n + 1\f$, where \f$n\f$ is the number of points in the Gauss rule to be used for the integration.<br>
    5497             :     !>                                  It contains the nodes of the \f$n\f$-points Gauss-Legendre quadrature rule and its \f$n+1\f$-points Kronrod extension rule.<br>
    5498             :     !>                                  The procedures under the generic interface [setNodeWeightGK](@ref pm_quadPack::setNodeWeightGK) return this vector.<br>
    5499             :     !>                                  (**optional**. It must be present <b>if and only if</b> `weightK` and `weightG` optional input arguments are present and `qrule` is missing.)
    5500             :     !>  \param[in]  weightK         :   The input `contiguous` vector argument of the same type and kind as `integral`, of size \f$n + 1\f$, where \f$n\f$ is the number of points in the Gauss rule to be used for the integration.<br>
    5501             :     !>                                  It contains the Kronrod optimal extension weights for the \f$2n+1\f$-points Gauss-Legendre-Kronrod quadrature method.<br>
    5502             :     !>                                  The procedures under the generic interface [setNodeWeightGK](@ref pm_quadPack::setNodeWeightGK) return this vector.<br>
    5503             :     !>                                  (**optional**. It must be present <b>if and only if</b> `nodeK` and `weightG` optional input arguments are present and `qrule` is missing.)
    5504             :     !>  \param[in]  weightG         :   The input `contiguous` vector argument of the same type and kind as `integral`, of size \f$(n + 1)/2\f$, where \f$n\f$ is the number of points in the Gauss rule to be used for the integration.<br>
    5505             :     !>                                  It contains the weights for the \f$n\f$-points Gauss-Legendre quadrature method.<br>
    5506             :     !>                                  The procedures under the generic interface [setNodeWeightGK](@ref pm_quadPack::setNodeWeightGK) return this vector.<br>
    5507             :     !>                                  (**optional**. It must be present <b>if and only if</b> `nodeK` and `weightK` optional input arguments are present and `qrule` is missing.)
    5508             :     !>  \param[in]  help            :   The input scalar constant argument that can be any of the following:<br>
    5509             :     !>                                  <ol>
    5510             :     !>                                      <li>    The scalar constant [weps](@ref pm_quadPack::weps) of an object of type [weps_type](@ref pm_quadPack::weps_type),
    5511             :     !>                                              implying the use of the Epsilon extrapolation algorithm of Wynn (1961)) for computing the integral and estimating its error.<br>
    5512             :     !>                                              The specified objects are empty and merely serve to differentiate the multitude of different extrapolation methods to accelerate the integration convergence.<br>
    5513             :     !>                                              **Specify this argument as [weps](@ref pm_quadPack::weps) if you suspect the integrand contains integrable singularities or the integration range is semi/fully-infinite.**<br>
    5514             :     !>                                              In such cases, the extrapolation method can lead to orders of magnitude faster convergence of integration compared with no acceleration.<br>
    5515             :     !>                                              When the input argument `help` is set to `wesp`, the integration routine corresponds to the [QAGI](https://netlib.org/quadpack/) and [QAGS](https://netlib.org/quadpack/) routines of QuadPack software.<br>
    5516             :     !>                                              However, unlike [QAGI](https://netlib.org/quadpack/) and [QAGS](https://netlib.org/quadpack/) which use Gauss-Kronrod 7-15 and 10-21 quadrature rules respectively,
    5517             :     !>                                              this generic interface allows the extrapolation and acceleration of **any** Gauss-Kronrod quadrature rule with the Epsilon method of Wynn (1961).<br>
    5518             :     !>                                              See examples below for an illustration of the speedup and appropriate use cases.<br>
    5519             :     !>                                      <li>    A vector of non-zero length of the same type and kind as the input `integral`, containing the points of integration difficulty within the specified integration range `(lb, ub)`.<br>
    5520             :     !>                                              These points can be (integrable) singularities or discontinuities in the integrand that cannot not be modeled well by polynomials.<br>
    5521             :     !>                                              Specifying the difficulty points, when they are known, can lead to significant computational speedups and convergence of the integral.<br>
    5522             :     !>                                              **On input, the specified `help` points must be in ascending order.**<br>
    5523             :     !>                                              If manual sorting is impossible, `help` can be sorted automatically via [setSorted](@ref pm_arraySort::setSorted) before calling this procedure.<br>
    5524             :     !>                                              Additionally, all elements of `help` must be unique.<br>
    5525             :     !>                                              If uniqueness is unknown at runtime, the unique elements of `help` can be automatically obtained via [getUnique](@ref pm_arrayUnique::getUnique) before calling this procedure.<br>
    5526             :     !>                                              **When both the lower and upper limits of integration are infinities (\f$(\ms{lb}, \ms{ub}) = (-\infty, +\infty)\f$), the specified difficulty points in `help` cannot contain `-1`**.<br>
    5527             :     !>                                              In such cases, use a simple change of variable to shift the singularity to values other than `-1`.<br>
    5528             :     !>                                      <li>    A scalar constant of type [wcauchy_type](@ref pm_quadPack::wcauchy_type) implying that the Cauchy Principal Value of the input function must be computed.<br>
    5529             :     !>                                              In such a case, the Cauchy singularity must be stored in the `cs` component of the input object of [wcauchy_type](@ref pm_quadPack::wcauchy_type) before calling this generic interface.<br>
    5530             :     !>                                              **If the integrand has more than one Cauchy pole**, split the integration range such that each separate range contains only one Cauchy singularity.<br>
    5531             :     !>                                              Then, pass each integrand separately to this generic interface and sum the results of the two integrations.<br>
    5532             :     !>                                  </ol>
    5533             :     !>                                  (**optional**. If missing, the procedure attempts to compute the integral without convergence-accelerating extrapolations or explicit assumptions about the singularities or discontinuities.)<br>
    5534             :     !>  \param[out] integral        :   The output scalar of type `real` of kind \RKALL, containing the integral of the specified integrand `getFunc()` over the specified range `(lb, ub)`.<br>
    5535             :     !>  \param[out] abserr          :   The output scalar argument of the same type and kind as `integral`, representing the estimated absolute error in the resulting integral,<br>
    5536             :     !>                                  which should equal or exceed `abs(truth - integral)` where `truth` is the true value of the integral.<br>
    5537             :     !>  \param[out] sinfo           :   The output `contiguous` matrix argument of the same type and kind as `integral`, of size `(1:4, 1:nintmax)` where `nintmax` is the maximum number of
    5538             :     !>                                  subintervals the procedure is allowed to create to refine the computed integral.<br>
    5539             :     !>                                  <ol>
    5540             :     !>                                      <li>    The first  row, `sinfo(1,1:nint)`, contains the lower bound                 of each of `nint <= nintmax` final surviving subintervals formed in the integration process.
    5541             :     !>                                      <li>    The second row, `sinfo(2,1:nint)`, contains the upper bound                 of each of `nint <= nintmax` final surviving subintervals formed in the integration process.
    5542             :     !>                                      <li>    The third  row, `sinfo(3,1:nint)`, contains the estimated integral          of each of `nint <= nintmax` final surviving subintervals formed in the integration process.
    5543             :     !>                                      <li>    The fourth row, `sinfo(4,1:nint)`, contains the estimated integral error    of each of `nint <= nintmax` final surviving subintervals formed in the integration process.
    5544             :     !>                                  </ol>
    5545             :     !>  \param[out] sindex          :   The output `contiguous` vector argument of type `integer` of default kind \IK of size `(1:nintmax)`, the first `k` elements of which contain pointers to the error estimates over the subintervals,<br>
    5546             :     !>                                  such that `sinfo(3, sindex(1)), ..., sinfo(sindex(k))` form a decreasing sequence with `k = nint` if `nint <= (nintmax / 2 + 2)`, and `k = nintmax - nint + 1` otherwise.<br>
    5547             :     !>  \param[out] neval           :   The output scalar argument of type `integer` of default kind \IK, containing the number of function calls made during the integration.<br>
    5548             :     !>  \param[out] nint            :   The output scalar argument of type `integer` of default kind \IK, containing the number of final surviving subintervals formed during the integration.<br>
    5549             :     !>
    5550             :     !>  \return
    5551             :     !>  `err`                       :   The output scalar of type `integer` of default kind \IK, that is set to zero if the integration converges without any errors.<br>
    5552             :     !>                                  Otherwise, a non-zero value of `err` indicates the occurrence of an error of varying severities,
    5553             :     !>                                  <ol>
    5554             :     !>                                      <li>    If `err == 1`, then the maximum number of subdivisions allowed has reached.<br>
    5555             :     !>                                              One can allow more subdivisions by increasing the value of limit (and taking the according dimension adjustments into account).<br>
    5556             :     !>                                              However, if this yields no improvement, it is advised to analyze the integrand in order to determine the integration difficulties.<br>
    5557             :     !>                                              If the position of a local difficulty can be determined (i.e., a singularity or discontinuity within the interval),
    5558             :     !>                                              one will probably gain from splitting up the interval at this point and calling the integrator on the subranges.<br>
    5559             :     !>                                              If possible, an appropriate special-purpose integrator should be used which is designed for handling the type of difficulty involved.<br>
    5560             :     !>                                      <li>    If `err == 2`, then the occurrence of roundoff error is detected, which prevents the requested tolerance from being achieved.<br>
    5561             :     !>                                      <li>    If `err == 3`, then an extremely bad integrand behavior occurs at some points of the integration interval.<br>
    5562             :     !>                                      <li>    If `err == 4`, then the algorithm has not converged on return due to the detection of roundoff errors in the extrapolation method.<br>
    5563             :     !>                                              The returned result is the best that could be obtained and is not necessarily wrong.<br>
    5564             :     !>                                              In such cases, check whether the output `abserr` is satisfactory for the specific task, even though it may be larger than the requested tolerances.<br>
    5565             :     !>                                              Increasing the requested absolute and relative tolerances may help convergence.<br>
    5566             :     !>                                      <li>    If `err == 5`, then the algorithm has not converged.<br>
    5567             :     !>                                              The integral is likely divergent, or slowly convergent.<br>
    5568             :     !>                                              Note that divergence can be the underlying cause for any of the error numbers listed here.<br>
    5569             :     !>                                  </ol>
    5570             :     !>
    5571             :     !>  \interface
    5572             :     !>  \code{.F90}
    5573             :     !>
    5574             :     !>      use pm_quadPack, only: getQuadErr
    5575             :     !>
    5576             :     !>      err = getQuadErr(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) ! extends QAG/QAGI routines of QuadPack.
    5577             :     !>      err = getQuadErr(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) ! extends QAGS/QAGI/QAWC routines of QuadPack.
    5578             :     !>      err = getQuadErr(getFunc, lb, ub, abstol, reltol, qrule, help(:), integral, abserr, sinfo, sindex, neval, nint) ! extends QAGS/QAGI/QAGP routines of QuadPack.
    5579             :     !>      err = getQuadErr(getFunc, lb, ub, abstol, reltol, nodeK(:), weightK(:), weightG(:), integral, abserr, sinfo, sindex, neval, nint) ! extends QAG/QAGI/QAWC routines of QuadPack.
    5580             :     !>      err = getQuadErr(getFunc, lb, ub, abstol, reltol, nodeK(:), weightK(:), weightG(:), help, integral, abserr, sinfo, sindex, neval, nint) ! extends QAGS/QAGI routines of QuadPack.
    5581             :     !>      err = getQuadErr(getFunc, lb, ub, abstol, reltol, nodeK(:), weightK(:), weightG(:), help(:), integral, abserr, sinfo, sindex, neval, nint) ! extends QAGS/QAGI/QAGP routines of QuadPack.
    5582             :     !>      !
    5583             :     !>  \endcode
    5584             :     !>
    5585             :     !>  \warning
    5586             :     !>  The condition `lb < ub` must hold for the corresponding procedure argument.<br>
    5587             :     !>  The condition `abstol > 0.` must hold for the corresponding procedure arguments.<br>
    5588             :     !>  The condition `reltol > 0.` must hold for the corresponding procedure arguments.<br>
    5589             :     !>  The condition `size(sindex) > 0_IK` must hold for the corresponding procedure arguments.<br>
    5590             :     !>  The condition `size(sinfo, 1) == 4_IK` must hold for the corresponding procedure arguments.<br>
    5591             :     !>  The condition `size(sinfo, 2) == size(sindex)` must hold for the corresponding procedure arguments.<br>
    5592             :     !>  The condition `size(help) > 0` must hold for the corresponding procedure arguments when `help` contains a set of points of difficulties within the domain of integration.<br>
    5593             :     !>  The condition `all(help > lb)` must hold for the corresponding procedure arguments when `help` contains a set of points of difficulties within the domain of integration.<br>
    5594             :     !>  The condition `all(help < ub)` must hold for the corresponding procedure arguments when `help` contains a set of points of difficulties within the domain of integration.<br>
    5595             :     !>  The condition `all(help /= -1.) .and. lb == ninf .and. ub == pinf` must hold for the corresponding procedure arguments when `help` contains a set of points of difficulties within the domain of integration.<br>
    5596             :     !>  The element values of the input `help` must be in ascending order when `help` contains a set of points of difficulties within the domain of integration.<br>
    5597             :     !>  \vericons
    5598             :     !>
    5599             :     !>  \warning
    5600             :     !>  If the target function contains points of difficulties, singularities, or discontinuities,
    5601             :     !>  user must ensure the abscissas of the specified Gauss-Kronrod rule do not match such points.<br>
    5602             :     !>  Particularly, computing an integrand at its singularities can lead to undefined values that can lead
    5603             :     !>  to unexpected **segmentation fault** or propagation of `NaN` values within the computational flow
    5604             :     !>  or other strange errors that can be extremely difficult to debug.<br>
    5605             :     !>  A simple check can be added within the target integrand implementations to ensure no such difficulty point matches an input value at which the function must be evaluated.<br>
    5606             :     !>  Alternatively, one should consider using the adaptive integration routines [isFailedQuad](@ref pm_quadPack::isFailedQuad) or [getQuadErr](@ref pm_quadPack::getQuadErr)
    5607             :     !>  while setting their input `help` arguments to the points of difficulties of the integrand.<br>
    5608             :     !>
    5609             :     !>  \note
    5610             :     !>  **semi/fully-infinite intervals**<br>
    5611             :     !>  If the integration range is semi or fully infinite, the recommended quadrature rule is [GK21](@ref pm_quadPack::GK21).<br>
    5612             :     !>  Higher quadrature rules are also possible and available for semi/fully-infinite intervals although benefits could be minimal
    5613             :     !>  due to the introduction of the singularity in the transformed finite-range integrand.<br>
    5614             :     !>
    5615             :     !>  \impure
    5616             :     !>
    5617             :     !>  \see
    5618             :     !>  [getQuadGK](@ref  pm_quadPack::getQuadGK).<br>
    5619             :     !>  [getQuadErr](@ref pm_quadPack::getQuadErr)<br>
    5620             :     !>  [getQuadRomb](@ref pm_quadRomb::getQuadRomb)<br>
    5621             :     !>  [isFailedQuad](@ref pm_quadPack::isFailedQuad).<br>
    5622             :     !>
    5623             :     !>  \example{getQuadErr}
    5624             :     !>  \include{lineno} example/pm_quadPack/getQuadErr/main.F90
    5625             :     !>  \compilef{getQuadErr}
    5626             :     !>  \output{getQuadErr}
    5627             :     !>  \include{lineno} example/pm_quadPack/getQuadErr/main.out.F90
    5628             :     !>
    5629             :     !>  \test
    5630             :     !>  [test_pm_quadPack](@ref test_pm_quadPack)
    5631             :     !>
    5632             :     !>  \finmain{getQuadErr}
    5633             :     !>
    5634             :     !>  \author
    5635             :     !>  \AmirShahmoradi, Oct 16, 2009, 11:14 AM, Michigan
    5636             : 
    5637             : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5638             : 
    5639             :     ! QAGD_GK15
    5640             : 
    5641             :     interface getQuadErr
    5642             : 
    5643             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5644             : 
    5645             : #if RK5_ENABLED
    5646             :     module function QAGD_GK15_FF_RK5(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    5647             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    5648             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK15_FF_RK5
    5649             : #endif
    5650             :         use pm_kind, only: RKC => RK5
    5651             :         procedure(real(RKC))                                :: getFunc
    5652             :         real(RKC)           , intent(in)                    :: lb
    5653             :         real(RKC)           , intent(in)                    :: ub
    5654             :         real(RKC)           , intent(in)                    :: abstol
    5655             :         real(RKC)           , intent(in)                    :: reltol
    5656             :         type(GK15_type)     , intent(in)                    :: qrule
    5657             :         real(RKC)           , intent(out)                   :: integral, abserr
    5658             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    5659             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    5660             :         integer(IK)         , intent(out)                   :: neval
    5661             :         integer(IK)         , intent(out)                   :: nint
    5662             :         integer(IK)                                         :: err
    5663             :     end function
    5664             : #endif
    5665             : 
    5666             : #if RK4_ENABLED
    5667             :     module function QAGD_GK15_FF_RK4(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    5668             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    5669             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK15_FF_RK4
    5670             : #endif
    5671             :         use pm_kind, only: RKC => RK4
    5672             :         procedure(real(RKC))                                :: getFunc
    5673             :         real(RKC)           , intent(in)                    :: lb
    5674             :         real(RKC)           , intent(in)                    :: ub
    5675             :         real(RKC)           , intent(in)                    :: abstol
    5676             :         real(RKC)           , intent(in)                    :: reltol
    5677             :         type(GK15_type)     , intent(in)                    :: qrule
    5678             :         real(RKC)           , intent(out)                   :: integral, abserr
    5679             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    5680             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    5681             :         integer(IK)         , intent(out)                   :: neval
    5682             :         integer(IK)         , intent(out)                   :: nint
    5683             :         integer(IK)                                         :: err
    5684             :     end function
    5685             : #endif
    5686             : 
    5687             : #if RK3_ENABLED
    5688             :     module function QAGD_GK15_FF_RK3(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    5689             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    5690             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK15_FF_RK3
    5691             : #endif
    5692             :         use pm_kind, only: RKC => RK3
    5693             :         procedure(real(RKC))                                :: getFunc
    5694             :         real(RKC)           , intent(in)                    :: lb
    5695             :         real(RKC)           , intent(in)                    :: ub
    5696             :         real(RKC)           , intent(in)                    :: abstol
    5697             :         real(RKC)           , intent(in)                    :: reltol
    5698             :         type(GK15_type)     , intent(in)                    :: qrule
    5699             :         real(RKC)           , intent(out)                   :: integral, abserr
    5700             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    5701             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    5702             :         integer(IK)         , intent(out)                   :: neval
    5703             :         integer(IK)         , intent(out)                   :: nint
    5704             :         integer(IK)                                         :: err
    5705             :     end function
    5706             : #endif
    5707             : 
    5708             : #if RK2_ENABLED
    5709             :     module function QAGD_GK15_FF_RK2(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    5710             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    5711             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK15_FF_RK2
    5712             : #endif
    5713             :         use pm_kind, only: RKC => RK2
    5714             :         procedure(real(RKC))                                :: getFunc
    5715             :         real(RKC)           , intent(in)                    :: lb
    5716             :         real(RKC)           , intent(in)                    :: ub
    5717             :         real(RKC)           , intent(in)                    :: abstol
    5718             :         real(RKC)           , intent(in)                    :: reltol
    5719             :         type(GK15_type)     , intent(in)                    :: qrule
    5720             :         real(RKC)           , intent(out)                   :: integral, abserr
    5721             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    5722             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    5723             :         integer(IK)         , intent(out)                   :: neval
    5724             :         integer(IK)         , intent(out)                   :: nint
    5725             :         integer(IK)                                         :: err
    5726             :     end function
    5727             : #endif
    5728             : 
    5729             : #if RK1_ENABLED
    5730             :     module function QAGD_GK15_FF_RK1(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    5731             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    5732             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK15_FF_RK1
    5733             : #endif
    5734             :         use pm_kind, only: RKC => RK1
    5735             :         procedure(real(RKC))                                :: getFunc
    5736             :         real(RKC)           , intent(in)                    :: lb
    5737             :         real(RKC)           , intent(in)                    :: ub
    5738             :         real(RKC)           , intent(in)                    :: abstol
    5739             :         real(RKC)           , intent(in)                    :: reltol
    5740             :         type(GK15_type)     , intent(in)                    :: qrule
    5741             :         real(RKC)           , intent(out)                   :: integral, abserr
    5742             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    5743             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    5744             :         integer(IK)         , intent(out)                   :: neval
    5745             :         integer(IK)         , intent(out)                   :: nint
    5746             :         integer(IK)                                         :: err
    5747             :     end function
    5748             : #endif
    5749             : 
    5750             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5751             : 
    5752             : #if RK5_ENABLED
    5753             :     module function QAGD_GK15_FI_RK5(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    5754             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    5755             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK15_FI_RK5
    5756             : #endif
    5757             :         use pm_kind, only: RKC => RK5
    5758             :         procedure(real(RKC))                                :: getFunc
    5759             :         real(RKC)           , intent(in)                    :: lb
    5760             :         type(pinf_type)     , intent(in)                    :: ub
    5761             :         real(RKC)           , intent(in)                    :: abstol
    5762             :         real(RKC)           , intent(in)                    :: reltol
    5763             :         type(GK15_type)     , intent(in)                    :: qrule
    5764             :         real(RKC)           , intent(out)                   :: integral, abserr
    5765             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    5766             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    5767             :         integer(IK)         , intent(out)                   :: neval
    5768             :         integer(IK)         , intent(out)                   :: nint
    5769             :         integer(IK)                                         :: err
    5770             :     end function
    5771             : #endif
    5772             : 
    5773             : #if RK4_ENABLED
    5774             :     module function QAGD_GK15_FI_RK4(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    5775             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    5776             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK15_FI_RK4
    5777             : #endif
    5778             :         use pm_kind, only: RKC => RK4
    5779             :         procedure(real(RKC))                                :: getFunc
    5780             :         real(RKC)           , intent(in)                    :: lb
    5781             :         type(pinf_type)     , intent(in)                    :: ub
    5782             :         real(RKC)           , intent(in)                    :: abstol
    5783             :         real(RKC)           , intent(in)                    :: reltol
    5784             :         type(GK15_type)     , intent(in)                    :: qrule
    5785             :         real(RKC)           , intent(out)                   :: integral, abserr
    5786             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    5787             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    5788             :         integer(IK)         , intent(out)                   :: neval
    5789             :         integer(IK)         , intent(out)                   :: nint
    5790             :         integer(IK)                                         :: err
    5791             :     end function
    5792             : #endif
    5793             : 
    5794             : #if RK3_ENABLED
    5795             :     module function QAGD_GK15_FI_RK3(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    5796             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    5797             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK15_FI_RK3
    5798             : #endif
    5799             :         use pm_kind, only: RKC => RK3
    5800             :         procedure(real(RKC))                                :: getFunc
    5801             :         real(RKC)           , intent(in)                    :: lb
    5802             :         type(pinf_type)     , intent(in)                    :: ub
    5803             :         real(RKC)           , intent(in)                    :: abstol
    5804             :         real(RKC)           , intent(in)                    :: reltol
    5805             :         type(GK15_type)     , intent(in)                    :: qrule
    5806             :         real(RKC)           , intent(out)                   :: integral, abserr
    5807             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    5808             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    5809             :         integer(IK)         , intent(out)                   :: neval
    5810             :         integer(IK)         , intent(out)                   :: nint
    5811             :         integer(IK)                                         :: err
    5812             :     end function
    5813             : #endif
    5814             : 
    5815             : #if RK2_ENABLED
    5816             :     module function QAGD_GK15_FI_RK2(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    5817             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    5818             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK15_FI_RK2
    5819             : #endif
    5820             :         use pm_kind, only: RKC => RK2
    5821             :         procedure(real(RKC))                                :: getFunc
    5822             :         real(RKC)           , intent(in)                    :: lb
    5823             :         type(pinf_type)     , intent(in)                    :: ub
    5824             :         real(RKC)           , intent(in)                    :: abstol
    5825             :         real(RKC)           , intent(in)                    :: reltol
    5826             :         type(GK15_type)     , intent(in)                    :: qrule
    5827             :         real(RKC)           , intent(out)                   :: integral, abserr
    5828             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    5829             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    5830             :         integer(IK)         , intent(out)                   :: neval
    5831             :         integer(IK)         , intent(out)                   :: nint
    5832             :         integer(IK)                                         :: err
    5833             :     end function
    5834             : #endif
    5835             : 
    5836             : #if RK1_ENABLED
    5837             :     module function QAGD_GK15_FI_RK1(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    5838             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    5839             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK15_FI_RK1
    5840             : #endif
    5841             :         use pm_kind, only: RKC => RK1
    5842             :         procedure(real(RKC))                                :: getFunc
    5843             :         real(RKC)           , intent(in)                    :: lb
    5844             :         type(pinf_type)     , intent(in)                    :: ub
    5845             :         real(RKC)           , intent(in)                    :: abstol
    5846             :         real(RKC)           , intent(in)                    :: reltol
    5847             :         type(GK15_type)     , intent(in)                    :: qrule
    5848             :         real(RKC)           , intent(out)                   :: integral, abserr
    5849             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    5850             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    5851             :         integer(IK)         , intent(out)                   :: neval
    5852             :         integer(IK)         , intent(out)                   :: nint
    5853             :         integer(IK)                                         :: err
    5854             :     end function
    5855             : #endif
    5856             : 
    5857             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5858             : 
    5859             : #if RK5_ENABLED
    5860             :     module function QAGD_GK15_IF_RK5(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    5861             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    5862             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK15_IF_RK5
    5863             : #endif
    5864             :         use pm_kind, only: RKC => RK5
    5865             :         procedure(real(RKC))                                :: getFunc
    5866             :         type(ninf_type)     , intent(in)                    :: lb
    5867             :         real(RKC)           , intent(in)                    :: ub
    5868             :         real(RKC)           , intent(in)                    :: abstol
    5869             :         real(RKC)           , intent(in)                    :: reltol
    5870             :         type(GK15_type)     , intent(in)                    :: qrule
    5871             :         real(RKC)           , intent(out)                   :: integral, abserr
    5872             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    5873             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    5874             :         integer(IK)         , intent(out)                   :: neval
    5875             :         integer(IK)         , intent(out)                   :: nint
    5876             :         integer(IK)                                         :: err
    5877             :     end function
    5878             : #endif
    5879             : 
    5880             : #if RK4_ENABLED
    5881             :     module function QAGD_GK15_IF_RK4(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    5882             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    5883             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK15_IF_RK4
    5884             : #endif
    5885             :         use pm_kind, only: RKC => RK4
    5886             :         procedure(real(RKC))                                :: getFunc
    5887             :         type(ninf_type)     , intent(in)                    :: lb
    5888             :         real(RKC)           , intent(in)                    :: ub
    5889             :         real(RKC)           , intent(in)                    :: abstol
    5890             :         real(RKC)           , intent(in)                    :: reltol
    5891             :         type(GK15_type)     , intent(in)                    :: qrule
    5892             :         real(RKC)           , intent(out)                   :: integral, abserr
    5893             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    5894             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    5895             :         integer(IK)         , intent(out)                   :: neval
    5896             :         integer(IK)         , intent(out)                   :: nint
    5897             :         integer(IK)                                         :: err
    5898             :     end function
    5899             : #endif
    5900             : 
    5901             : #if RK3_ENABLED
    5902             :     module function QAGD_GK15_IF_RK3(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    5903             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    5904             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK15_IF_RK3
    5905             : #endif
    5906             :         use pm_kind, only: RKC => RK3
    5907             :         procedure(real(RKC))                                :: getFunc
    5908             :         type(ninf_type)     , intent(in)                    :: lb
    5909             :         real(RKC)           , intent(in)                    :: ub
    5910             :         real(RKC)           , intent(in)                    :: abstol
    5911             :         real(RKC)           , intent(in)                    :: reltol
    5912             :         type(GK15_type)     , intent(in)                    :: qrule
    5913             :         real(RKC)           , intent(out)                   :: integral, abserr
    5914             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    5915             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    5916             :         integer(IK)         , intent(out)                   :: neval
    5917             :         integer(IK)         , intent(out)                   :: nint
    5918             :         integer(IK)                                         :: err
    5919             :     end function
    5920             : #endif
    5921             : 
    5922             : #if RK2_ENABLED
    5923             :     module function QAGD_GK15_IF_RK2(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    5924             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    5925             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK15_IF_RK2
    5926             : #endif
    5927             :         use pm_kind, only: RKC => RK2
    5928             :         procedure(real(RKC))                                :: getFunc
    5929             :         type(ninf_type)     , intent(in)                    :: lb
    5930             :         real(RKC)           , intent(in)                    :: ub
    5931             :         real(RKC)           , intent(in)                    :: abstol
    5932             :         real(RKC)           , intent(in)                    :: reltol
    5933             :         type(GK15_type)     , intent(in)                    :: qrule
    5934             :         real(RKC)           , intent(out)                   :: integral, abserr
    5935             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    5936             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    5937             :         integer(IK)         , intent(out)                   :: neval
    5938             :         integer(IK)         , intent(out)                   :: nint
    5939             :         integer(IK)                                         :: err
    5940             :     end function
    5941             : #endif
    5942             : 
    5943             : #if RK1_ENABLED
    5944             :     module function QAGD_GK15_IF_RK1(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    5945             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    5946             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK15_IF_RK1
    5947             : #endif
    5948             :         use pm_kind, only: RKC => RK1
    5949             :         procedure(real(RKC))                                :: getFunc
    5950             :         type(ninf_type)     , intent(in)                    :: lb
    5951             :         real(RKC)           , intent(in)                    :: ub
    5952             :         real(RKC)           , intent(in)                    :: abstol
    5953             :         real(RKC)           , intent(in)                    :: reltol
    5954             :         type(GK15_type)     , intent(in)                    :: qrule
    5955             :         real(RKC)           , intent(out)                   :: integral, abserr
    5956             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    5957             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    5958             :         integer(IK)         , intent(out)                   :: neval
    5959             :         integer(IK)         , intent(out)                   :: nint
    5960             :         integer(IK)                                         :: err
    5961             :     end function
    5962             : #endif
    5963             : 
    5964             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5965             : 
    5966             : #if RK5_ENABLED
    5967             :     module function QAGD_GK15_II_RK5(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    5968             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    5969             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK15_II_RK5
    5970             : #endif
    5971             :         use pm_kind, only: RKC => RK5
    5972             :         procedure(real(RKC))                                :: getFunc
    5973             :         type(ninf_type)     , intent(in)                    :: lb
    5974             :         type(pinf_type)     , intent(in)                    :: ub
    5975             :         real(RKC)           , intent(in)                    :: abstol
    5976             :         real(RKC)           , intent(in)                    :: reltol
    5977             :         type(GK15_type)     , intent(in)                    :: qrule
    5978             :         real(RKC)           , intent(out)                   :: integral, abserr
    5979             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    5980             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    5981             :         integer(IK)         , intent(out)                   :: neval
    5982             :         integer(IK)         , intent(out)                   :: nint
    5983             :         integer(IK)                                         :: err
    5984             :     end function
    5985             : #endif
    5986             : 
    5987             : #if RK4_ENABLED
    5988             :     module function QAGD_GK15_II_RK4(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    5989             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    5990             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK15_II_RK4
    5991             : #endif
    5992             :         use pm_kind, only: RKC => RK4
    5993             :         procedure(real(RKC))                                :: getFunc
    5994             :         type(ninf_type)     , intent(in)                    :: lb
    5995             :         type(pinf_type)     , intent(in)                    :: ub
    5996             :         real(RKC)           , intent(in)                    :: abstol
    5997             :         real(RKC)           , intent(in)                    :: reltol
    5998             :         type(GK15_type)     , intent(in)                    :: qrule
    5999             :         real(RKC)           , intent(out)                   :: integral, abserr
    6000             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    6001             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    6002             :         integer(IK)         , intent(out)                   :: neval
    6003             :         integer(IK)         , intent(out)                   :: nint
    6004             :         integer(IK)                                         :: err
    6005             :     end function
    6006             : #endif
    6007             : 
    6008             : #if RK3_ENABLED
    6009             :     module function QAGD_GK15_II_RK3(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    6010             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    6011             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK15_II_RK3
    6012             : #endif
    6013             :         use pm_kind, only: RKC => RK3
    6014             :         procedure(real(RKC))                                :: getFunc
    6015             :         type(ninf_type)     , intent(in)                    :: lb
    6016             :         type(pinf_type)     , intent(in)                    :: ub
    6017             :         real(RKC)           , intent(in)                    :: abstol
    6018             :         real(RKC)           , intent(in)                    :: reltol
    6019             :         type(GK15_type)     , intent(in)                    :: qrule
    6020             :         real(RKC)           , intent(out)                   :: integral, abserr
    6021             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    6022             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    6023             :         integer(IK)         , intent(out)                   :: neval
    6024             :         integer(IK)         , intent(out)                   :: nint
    6025             :         integer(IK)                                         :: err
    6026             :     end function
    6027             : #endif
    6028             : 
    6029             : #if RK2_ENABLED
    6030             :     module function QAGD_GK15_II_RK2(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    6031             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    6032             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK15_II_RK2
    6033             : #endif
    6034             :         use pm_kind, only: RKC => RK2
    6035             :         procedure(real(RKC))                                :: getFunc
    6036             :         type(ninf_type)     , intent(in)                    :: lb
    6037             :         type(pinf_type)     , intent(in)                    :: ub
    6038             :         real(RKC)           , intent(in)                    :: abstol
    6039             :         real(RKC)           , intent(in)                    :: reltol
    6040             :         type(GK15_type)     , intent(in)                    :: qrule
    6041             :         real(RKC)           , intent(out)                   :: integral, abserr
    6042             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    6043             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    6044             :         integer(IK)         , intent(out)                   :: neval
    6045             :         integer(IK)         , intent(out)                   :: nint
    6046             :         integer(IK)                                         :: err
    6047             :     end function
    6048             : #endif
    6049             : 
    6050             : #if RK1_ENABLED
    6051             :     module function QAGD_GK15_II_RK1(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    6052             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    6053             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK15_II_RK1
    6054             : #endif
    6055             :         use pm_kind, only: RKC => RK1
    6056             :         procedure(real(RKC))                                :: getFunc
    6057             :         type(ninf_type)     , intent(in)                    :: lb
    6058             :         type(pinf_type)     , intent(in)                    :: ub
    6059             :         real(RKC)           , intent(in)                    :: abstol
    6060             :         real(RKC)           , intent(in)                    :: reltol
    6061             :         type(GK15_type)     , intent(in)                    :: qrule
    6062             :         real(RKC)           , intent(out)                   :: integral, abserr
    6063             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    6064             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    6065             :         integer(IK)         , intent(out)                   :: neval
    6066             :         integer(IK)         , intent(out)                   :: nint
    6067             :         integer(IK)                                         :: err
    6068             :     end function
    6069             : #endif
    6070             : 
    6071             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6072             : 
    6073             :     end interface
    6074             : 
    6075             :     ! QAGD_GK21
    6076             : 
    6077             :     interface getQuadErr
    6078             : 
    6079             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6080             : 
    6081             : #if RK5_ENABLED
    6082             :     module function QAGD_GK21_FF_RK5(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    6083             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    6084             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK21_FF_RK5
    6085             : #endif
    6086             :         use pm_kind, only: RKC => RK5
    6087             :         procedure(real(RKC))                                :: getFunc
    6088             :         real(RKC)           , intent(in)                    :: lb
    6089             :         real(RKC)           , intent(in)                    :: ub
    6090             :         real(RKC)           , intent(in)                    :: abstol
    6091             :         real(RKC)           , intent(in)                    :: reltol
    6092             :         type(GK21_type)     , intent(in)                    :: qrule
    6093             :         real(RKC)           , intent(out)                   :: integral, abserr
    6094             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    6095             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    6096             :         integer(IK)         , intent(out)                   :: neval
    6097             :         integer(IK)         , intent(out)                   :: nint
    6098             :         integer(IK)                                         :: err
    6099             :     end function
    6100             : #endif
    6101             : 
    6102             : #if RK4_ENABLED
    6103             :     module function QAGD_GK21_FF_RK4(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    6104             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    6105             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK21_FF_RK4
    6106             : #endif
    6107             :         use pm_kind, only: RKC => RK4
    6108             :         procedure(real(RKC))                                :: getFunc
    6109             :         real(RKC)           , intent(in)                    :: lb
    6110             :         real(RKC)           , intent(in)                    :: ub
    6111             :         real(RKC)           , intent(in)                    :: abstol
    6112             :         real(RKC)           , intent(in)                    :: reltol
    6113             :         type(GK21_type)     , intent(in)                    :: qrule
    6114             :         real(RKC)           , intent(out)                   :: integral, abserr
    6115             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    6116             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    6117             :         integer(IK)         , intent(out)                   :: neval
    6118             :         integer(IK)         , intent(out)                   :: nint
    6119             :         integer(IK)                                         :: err
    6120             :     end function
    6121             : #endif
    6122             : 
    6123             : #if RK3_ENABLED
    6124             :     module function QAGD_GK21_FF_RK3(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    6125             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    6126             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK21_FF_RK3
    6127             : #endif
    6128             :         use pm_kind, only: RKC => RK3
    6129             :         procedure(real(RKC))                                :: getFunc
    6130             :         real(RKC)           , intent(in)                    :: lb
    6131             :         real(RKC)           , intent(in)                    :: ub
    6132             :         real(RKC)           , intent(in)                    :: abstol
    6133             :         real(RKC)           , intent(in)                    :: reltol
    6134             :         type(GK21_type)     , intent(in)                    :: qrule
    6135             :         real(RKC)           , intent(out)                   :: integral, abserr
    6136             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    6137             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    6138             :         integer(IK)         , intent(out)                   :: neval
    6139             :         integer(IK)         , intent(out)                   :: nint
    6140             :         integer(IK)                                         :: err
    6141             :     end function
    6142             : #endif
    6143             : 
    6144             : #if RK2_ENABLED
    6145             :     module function QAGD_GK21_FF_RK2(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    6146             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    6147             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK21_FF_RK2
    6148             : #endif
    6149             :         use pm_kind, only: RKC => RK2
    6150             :         procedure(real(RKC))                                :: getFunc
    6151             :         real(RKC)           , intent(in)                    :: lb
    6152             :         real(RKC)           , intent(in)                    :: ub
    6153             :         real(RKC)           , intent(in)                    :: abstol
    6154             :         real(RKC)           , intent(in)                    :: reltol
    6155             :         type(GK21_type)     , intent(in)                    :: qrule
    6156             :         real(RKC)           , intent(out)                   :: integral, abserr
    6157             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    6158             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    6159             :         integer(IK)         , intent(out)                   :: neval
    6160             :         integer(IK)         , intent(out)                   :: nint
    6161             :         integer(IK)                                         :: err
    6162             :     end function
    6163             : #endif
    6164             : 
    6165             : #if RK1_ENABLED
    6166             :     module function QAGD_GK21_FF_RK1(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    6167             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    6168             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK21_FF_RK1
    6169             : #endif
    6170             :         use pm_kind, only: RKC => RK1
    6171             :         procedure(real(RKC))                                :: getFunc
    6172             :         real(RKC)           , intent(in)                    :: lb
    6173             :         real(RKC)           , intent(in)                    :: ub
    6174             :         real(RKC)           , intent(in)                    :: abstol
    6175             :         real(RKC)           , intent(in)                    :: reltol
    6176             :         type(GK21_type)     , intent(in)                    :: qrule
    6177             :         real(RKC)           , intent(out)                   :: integral, abserr
    6178             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    6179             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    6180             :         integer(IK)         , intent(out)                   :: neval
    6181             :         integer(IK)         , intent(out)                   :: nint
    6182             :         integer(IK)                                         :: err
    6183             :     end function
    6184             : #endif
    6185             : 
    6186             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6187             : 
    6188             : #if RK5_ENABLED
    6189             :     module function QAGD_GK21_FI_RK5(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    6190             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    6191             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK21_FI_RK5
    6192             : #endif
    6193             :         use pm_kind, only: RKC => RK5
    6194             :         procedure(real(RKC))                                :: getFunc
    6195             :         real(RKC)           , intent(in)                    :: lb
    6196             :         type(pinf_type)     , intent(in)                    :: ub
    6197             :         real(RKC)           , intent(in)                    :: abstol
    6198             :         real(RKC)           , intent(in)                    :: reltol
    6199             :         type(GK21_type)     , intent(in)                    :: qrule
    6200             :         real(RKC)           , intent(out)                   :: integral, abserr
    6201             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    6202             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    6203             :         integer(IK)         , intent(out)                   :: neval
    6204             :         integer(IK)         , intent(out)                   :: nint
    6205             :         integer(IK)                                         :: err
    6206             :     end function
    6207             : #endif
    6208             : 
    6209             : #if RK4_ENABLED
    6210             :     module function QAGD_GK21_FI_RK4(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    6211             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    6212             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK21_FI_RK4
    6213             : #endif
    6214             :         use pm_kind, only: RKC => RK4
    6215             :         procedure(real(RKC))                                :: getFunc
    6216             :         real(RKC)           , intent(in)                    :: lb
    6217             :         type(pinf_type)     , intent(in)                    :: ub
    6218             :         real(RKC)           , intent(in)                    :: abstol
    6219             :         real(RKC)           , intent(in)                    :: reltol
    6220             :         type(GK21_type)     , intent(in)                    :: qrule
    6221             :         real(RKC)           , intent(out)                   :: integral, abserr
    6222             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    6223             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    6224             :         integer(IK)         , intent(out)                   :: neval
    6225             :         integer(IK)         , intent(out)                   :: nint
    6226             :         integer(IK)                                         :: err
    6227             :     end function
    6228             : #endif
    6229             : 
    6230             : #if RK3_ENABLED
    6231             :     module function QAGD_GK21_FI_RK3(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    6232             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    6233             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK21_FI_RK3
    6234             : #endif
    6235             :         use pm_kind, only: RKC => RK3
    6236             :         procedure(real(RKC))                                :: getFunc
    6237             :         real(RKC)           , intent(in)                    :: lb
    6238             :         type(pinf_type)     , intent(in)                    :: ub
    6239             :         real(RKC)           , intent(in)                    :: abstol
    6240             :         real(RKC)           , intent(in)                    :: reltol
    6241             :         type(GK21_type)     , intent(in)                    :: qrule
    6242             :         real(RKC)           , intent(out)                   :: integral, abserr
    6243             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    6244             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    6245             :         integer(IK)         , intent(out)                   :: neval
    6246             :         integer(IK)         , intent(out)                   :: nint
    6247             :         integer(IK)                                         :: err
    6248             :     end function
    6249             : #endif
    6250             : 
    6251             : #if RK2_ENABLED
    6252             :     module function QAGD_GK21_FI_RK2(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    6253             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    6254             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK21_FI_RK2
    6255             : #endif
    6256             :         use pm_kind, only: RKC => RK2
    6257             :         procedure(real(RKC))                                :: getFunc
    6258             :         real(RKC)           , intent(in)                    :: lb
    6259             :         type(pinf_type)     , intent(in)                    :: ub
    6260             :         real(RKC)           , intent(in)                    :: abstol
    6261             :         real(RKC)           , intent(in)                    :: reltol
    6262             :         type(GK21_type)     , intent(in)                    :: qrule
    6263             :         real(RKC)           , intent(out)                   :: integral, abserr
    6264             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    6265             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    6266             :         integer(IK)         , intent(out)                   :: neval
    6267             :         integer(IK)         , intent(out)                   :: nint
    6268             :         integer(IK)                                         :: err
    6269             :     end function
    6270             : #endif
    6271             : 
    6272             : #if RK1_ENABLED
    6273             :     module function QAGD_GK21_FI_RK1(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    6274             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    6275             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK21_FI_RK1
    6276             : #endif
    6277             :         use pm_kind, only: RKC => RK1
    6278             :         procedure(real(RKC))                                :: getFunc
    6279             :         real(RKC)           , intent(in)                    :: lb
    6280             :         type(pinf_type)     , intent(in)                    :: ub
    6281             :         real(RKC)           , intent(in)                    :: abstol
    6282             :         real(RKC)           , intent(in)                    :: reltol
    6283             :         type(GK21_type)     , intent(in)                    :: qrule
    6284             :         real(RKC)           , intent(out)                   :: integral, abserr
    6285             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    6286             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    6287             :         integer(IK)         , intent(out)                   :: neval
    6288             :         integer(IK)         , intent(out)                   :: nint
    6289             :         integer(IK)                                         :: err
    6290             :     end function
    6291             : #endif
    6292             : 
    6293             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6294             : 
    6295             : #if RK5_ENABLED
    6296             :     module function QAGD_GK21_IF_RK5(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    6297             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    6298             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK21_IF_RK5
    6299             : #endif
    6300             :         use pm_kind, only: RKC => RK5
    6301             :         procedure(real(RKC))                                :: getFunc
    6302             :         type(ninf_type)     , intent(in)                    :: lb
    6303             :         real(RKC)           , intent(in)                    :: ub
    6304             :         real(RKC)           , intent(in)                    :: abstol
    6305             :         real(RKC)           , intent(in)                    :: reltol
    6306             :         type(GK21_type)     , intent(in)                    :: qrule
    6307             :         real(RKC)           , intent(out)                   :: integral, abserr
    6308             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    6309             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    6310             :         integer(IK)         , intent(out)                   :: neval
    6311             :         integer(IK)         , intent(out)                   :: nint
    6312             :         integer(IK)                                         :: err
    6313             :     end function
    6314             : #endif
    6315             : 
    6316             : #if RK4_ENABLED
    6317             :     module function QAGD_GK21_IF_RK4(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    6318             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    6319             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK21_IF_RK4
    6320             : #endif
    6321             :         use pm_kind, only: RKC => RK4
    6322             :         procedure(real(RKC))                                :: getFunc
    6323             :         type(ninf_type)     , intent(in)                    :: lb
    6324             :         real(RKC)           , intent(in)                    :: ub
    6325             :         real(RKC)           , intent(in)                    :: abstol
    6326             :         real(RKC)           , intent(in)                    :: reltol
    6327             :         type(GK21_type)     , intent(in)                    :: qrule
    6328             :         real(RKC)           , intent(out)                   :: integral, abserr
    6329             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    6330             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    6331             :         integer(IK)         , intent(out)                   :: neval
    6332             :         integer(IK)         , intent(out)                   :: nint
    6333             :         integer(IK)                                         :: err
    6334             :     end function
    6335             : #endif
    6336             : 
    6337             : #if RK3_ENABLED
    6338             :     module function QAGD_GK21_IF_RK3(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    6339             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    6340             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK21_IF_RK3
    6341             : #endif
    6342             :         use pm_kind, only: RKC => RK3
    6343             :         procedure(real(RKC))                                :: getFunc
    6344             :         type(ninf_type)     , intent(in)                    :: lb
    6345             :         real(RKC)           , intent(in)                    :: ub
    6346             :         real(RKC)           , intent(in)                    :: abstol
    6347             :         real(RKC)           , intent(in)                    :: reltol
    6348             :         type(GK21_type)     , intent(in)                    :: qrule
    6349             :         real(RKC)           , intent(out)                   :: integral, abserr
    6350             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    6351             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    6352             :         integer(IK)         , intent(out)                   :: neval
    6353             :         integer(IK)         , intent(out)                   :: nint
    6354             :         integer(IK)                                         :: err
    6355             :     end function
    6356             : #endif
    6357             : 
    6358             : #if RK2_ENABLED
    6359             :     module function QAGD_GK21_IF_RK2(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    6360             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    6361             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK21_IF_RK2
    6362             : #endif
    6363             :         use pm_kind, only: RKC => RK2
    6364             :         procedure(real(RKC))                                :: getFunc
    6365             :         type(ninf_type)     , intent(in)                    :: lb
    6366             :         real(RKC)           , intent(in)                    :: ub
    6367             :         real(RKC)           , intent(in)                    :: abstol
    6368             :         real(RKC)           , intent(in)                    :: reltol
    6369             :         type(GK21_type)     , intent(in)                    :: qrule
    6370             :         real(RKC)           , intent(out)                   :: integral, abserr
    6371             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    6372             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    6373             :         integer(IK)         , intent(out)                   :: neval
    6374             :         integer(IK)         , intent(out)                   :: nint
    6375             :         integer(IK)                                         :: err
    6376             :     end function
    6377             : #endif
    6378             : 
    6379             : #if RK1_ENABLED
    6380             :     module function QAGD_GK21_IF_RK1(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    6381             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    6382             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK21_IF_RK1
    6383             : #endif
    6384             :         use pm_kind, only: RKC => RK1
    6385             :         procedure(real(RKC))                                :: getFunc
    6386             :         type(ninf_type)     , intent(in)                    :: lb
    6387             :         real(RKC)           , intent(in)                    :: ub
    6388             :         real(RKC)           , intent(in)                    :: abstol
    6389             :         real(RKC)           , intent(in)                    :: reltol
    6390             :         type(GK21_type)     , intent(in)                    :: qrule
    6391             :         real(RKC)           , intent(out)                   :: integral, abserr
    6392             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    6393             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    6394             :         integer(IK)         , intent(out)                   :: neval
    6395             :         integer(IK)         , intent(out)                   :: nint
    6396             :         integer(IK)                                         :: err
    6397             :     end function
    6398             : #endif
    6399             : 
    6400             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6401             : 
    6402             : #if RK5_ENABLED
    6403             :     module function QAGD_GK21_II_RK5(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    6404             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    6405             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK21_II_RK5
    6406             : #endif
    6407             :         use pm_kind, only: RKC => RK5
    6408             :         procedure(real(RKC))                                :: getFunc
    6409             :         type(ninf_type)     , intent(in)                    :: lb
    6410             :         type(pinf_type)     , intent(in)                    :: ub
    6411             :         real(RKC)           , intent(in)                    :: abstol
    6412             :         real(RKC)           , intent(in)                    :: reltol
    6413             :         type(GK21_type)     , intent(in)                    :: qrule
    6414             :         real(RKC)           , intent(out)                   :: integral, abserr
    6415             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    6416             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    6417             :         integer(IK)         , intent(out)                   :: neval
    6418             :         integer(IK)         , intent(out)                   :: nint
    6419             :         integer(IK)                                         :: err
    6420             :     end function
    6421             : #endif
    6422             : 
    6423             : #if RK4_ENABLED
    6424             :     module function QAGD_GK21_II_RK4(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    6425             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    6426             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK21_II_RK4
    6427             : #endif
    6428             :         use pm_kind, only: RKC => RK4
    6429             :         procedure(real(RKC))                                :: getFunc
    6430             :         type(ninf_type)     , intent(in)                    :: lb
    6431             :         type(pinf_type)     , intent(in)                    :: ub
    6432             :         real(RKC)           , intent(in)                    :: abstol
    6433             :         real(RKC)           , intent(in)                    :: reltol
    6434             :         type(GK21_type)     , intent(in)                    :: qrule
    6435             :         real(RKC)           , intent(out)                   :: integral, abserr
    6436             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    6437             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    6438             :         integer(IK)         , intent(out)                   :: neval
    6439             :         integer(IK)         , intent(out)                   :: nint
    6440             :         integer(IK)                                         :: err
    6441             :     end function
    6442             : #endif
    6443             : 
    6444             : #if RK3_ENABLED
    6445             :     module function QAGD_GK21_II_RK3(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    6446             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    6447             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK21_II_RK3
    6448             : #endif
    6449             :         use pm_kind, only: RKC => RK3
    6450             :         procedure(real(RKC))                                :: getFunc
    6451             :         type(ninf_type)     , intent(in)                    :: lb
    6452             :         type(pinf_type)     , intent(in)                    :: ub
    6453             :         real(RKC)           , intent(in)                    :: abstol
    6454             :         real(RKC)           , intent(in)                    :: reltol
    6455             :         type(GK21_type)     , intent(in)                    :: qrule
    6456             :         real(RKC)           , intent(out)                   :: integral, abserr
    6457             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    6458             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    6459             :         integer(IK)         , intent(out)                   :: neval
    6460             :         integer(IK)         , intent(out)                   :: nint
    6461             :         integer(IK)                                         :: err
    6462             :     end function
    6463             : #endif
    6464             : 
    6465             : #if RK2_ENABLED
    6466             :     module function QAGD_GK21_II_RK2(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    6467             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    6468             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK21_II_RK2
    6469             : #endif
    6470             :         use pm_kind, only: RKC => RK2
    6471             :         procedure(real(RKC))                                :: getFunc
    6472             :         type(ninf_type)     , intent(in)                    :: lb
    6473             :         type(pinf_type)     , intent(in)                    :: ub
    6474             :         real(RKC)           , intent(in)                    :: abstol
    6475             :         real(RKC)           , intent(in)                    :: reltol
    6476             :         type(GK21_type)     , intent(in)                    :: qrule
    6477             :         real(RKC)           , intent(out)                   :: integral, abserr
    6478             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    6479             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    6480             :         integer(IK)         , intent(out)                   :: neval
    6481             :         integer(IK)         , intent(out)                   :: nint
    6482             :         integer(IK)                                         :: err
    6483             :     end function
    6484             : #endif
    6485             : 
    6486             : #if RK1_ENABLED
    6487             :     module function QAGD_GK21_II_RK1(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    6488             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    6489             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK21_II_RK1
    6490             : #endif
    6491             :         use pm_kind, only: RKC => RK1
    6492             :         procedure(real(RKC))                                :: getFunc
    6493             :         type(ninf_type)     , intent(in)                    :: lb
    6494             :         type(pinf_type)     , intent(in)                    :: ub
    6495             :         real(RKC)           , intent(in)                    :: abstol
    6496             :         real(RKC)           , intent(in)                    :: reltol
    6497             :         type(GK21_type)     , intent(in)                    :: qrule
    6498             :         real(RKC)           , intent(out)                   :: integral, abserr
    6499             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    6500             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    6501             :         integer(IK)         , intent(out)                   :: neval
    6502             :         integer(IK)         , intent(out)                   :: nint
    6503             :         integer(IK)                                         :: err
    6504             :     end function
    6505             : #endif
    6506             : 
    6507             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6508             : 
    6509             :     end interface
    6510             : 
    6511             :     ! QAGD_GK31
    6512             : 
    6513             :     interface getQuadErr
    6514             : 
    6515             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6516             : 
    6517             : #if RK5_ENABLED
    6518             :     module function QAGD_GK31_FF_RK5(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    6519             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    6520             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK31_FF_RK5
    6521             : #endif
    6522             :         use pm_kind, only: RKC => RK5
    6523             :         procedure(real(RKC))                                :: getFunc
    6524             :         real(RKC)           , intent(in)                    :: lb
    6525             :         real(RKC)           , intent(in)                    :: ub
    6526             :         real(RKC)           , intent(in)                    :: abstol
    6527             :         real(RKC)           , intent(in)                    :: reltol
    6528             :         type(GK31_type)     , intent(in)                    :: qrule
    6529             :         real(RKC)           , intent(out)                   :: integral, abserr
    6530             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    6531             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    6532             :         integer(IK)         , intent(out)                   :: neval
    6533             :         integer(IK)         , intent(out)                   :: nint
    6534             :         integer(IK)                                         :: err
    6535             :     end function
    6536             : #endif
    6537             : 
    6538             : #if RK4_ENABLED
    6539             :     module function QAGD_GK31_FF_RK4(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    6540             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    6541             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK31_FF_RK4
    6542             : #endif
    6543             :         use pm_kind, only: RKC => RK4
    6544             :         procedure(real(RKC))                                :: getFunc
    6545             :         real(RKC)           , intent(in)                    :: lb
    6546             :         real(RKC)           , intent(in)                    :: ub
    6547             :         real(RKC)           , intent(in)                    :: abstol
    6548             :         real(RKC)           , intent(in)                    :: reltol
    6549             :         type(GK31_type)     , intent(in)                    :: qrule
    6550             :         real(RKC)           , intent(out)                   :: integral, abserr
    6551             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    6552             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    6553             :         integer(IK)         , intent(out)                   :: neval
    6554             :         integer(IK)         , intent(out)                   :: nint
    6555             :         integer(IK)                                         :: err
    6556             :     end function
    6557             : #endif
    6558             : 
    6559             : #if RK3_ENABLED
    6560             :     module function QAGD_GK31_FF_RK3(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    6561             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    6562             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK31_FF_RK3
    6563             : #endif
    6564             :         use pm_kind, only: RKC => RK3
    6565             :         procedure(real(RKC))                                :: getFunc
    6566             :         real(RKC)           , intent(in)                    :: lb
    6567             :         real(RKC)           , intent(in)                    :: ub
    6568             :         real(RKC)           , intent(in)                    :: abstol
    6569             :         real(RKC)           , intent(in)                    :: reltol
    6570             :         type(GK31_type)     , intent(in)                    :: qrule
    6571             :         real(RKC)           , intent(out)                   :: integral, abserr
    6572             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    6573             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    6574             :         integer(IK)         , intent(out)                   :: neval
    6575             :         integer(IK)         , intent(out)                   :: nint
    6576             :         integer(IK)                                         :: err
    6577             :     end function
    6578             : #endif
    6579             : 
    6580             : #if RK2_ENABLED
    6581             :     module function QAGD_GK31_FF_RK2(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    6582             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    6583             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK31_FF_RK2
    6584             : #endif
    6585             :         use pm_kind, only: RKC => RK2
    6586             :         procedure(real(RKC))                                :: getFunc
    6587             :         real(RKC)           , intent(in)                    :: lb
    6588             :         real(RKC)           , intent(in)                    :: ub
    6589             :         real(RKC)           , intent(in)                    :: abstol
    6590             :         real(RKC)           , intent(in)                    :: reltol
    6591             :         type(GK31_type)     , intent(in)                    :: qrule
    6592             :         real(RKC)           , intent(out)                   :: integral, abserr
    6593             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    6594             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    6595             :         integer(IK)         , intent(out)                   :: neval
    6596             :         integer(IK)         , intent(out)                   :: nint
    6597             :         integer(IK)                                         :: err
    6598             :     end function
    6599             : #endif
    6600             : 
    6601             : #if RK1_ENABLED
    6602             :     module function QAGD_GK31_FF_RK1(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    6603             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    6604             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK31_FF_RK1
    6605             : #endif
    6606             :         use pm_kind, only: RKC => RK1
    6607             :         procedure(real(RKC))                                :: getFunc
    6608             :         real(RKC)           , intent(in)                    :: lb
    6609             :         real(RKC)           , intent(in)                    :: ub
    6610             :         real(RKC)           , intent(in)                    :: abstol
    6611             :         real(RKC)           , intent(in)                    :: reltol
    6612             :         type(GK31_type)     , intent(in)                    :: qrule
    6613             :         real(RKC)           , intent(out)                   :: integral, abserr
    6614             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    6615             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    6616             :         integer(IK)         , intent(out)                   :: neval
    6617             :         integer(IK)         , intent(out)                   :: nint
    6618             :         integer(IK)                                         :: err
    6619             :     end function
    6620             : #endif
    6621             : 
    6622             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6623             : 
    6624             : #if RK5_ENABLED
    6625             :     module function QAGD_GK31_FI_RK5(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    6626             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    6627             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK31_FI_RK5
    6628             : #endif
    6629             :         use pm_kind, only: RKC => RK5
    6630             :         procedure(real(RKC))                                :: getFunc
    6631             :         real(RKC)           , intent(in)                    :: lb
    6632             :         type(pinf_type)     , intent(in)                    :: ub
    6633             :         real(RKC)           , intent(in)                    :: abstol
    6634             :         real(RKC)           , intent(in)                    :: reltol
    6635             :         type(GK31_type)     , intent(in)                    :: qrule
    6636             :         real(RKC)           , intent(out)                   :: integral, abserr
    6637             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    6638             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    6639             :         integer(IK)         , intent(out)                   :: neval
    6640             :         integer(IK)         , intent(out)                   :: nint
    6641             :         integer(IK)                                         :: err
    6642             :     end function
    6643             : #endif
    6644             : 
    6645             : #if RK4_ENABLED
    6646             :     module function QAGD_GK31_FI_RK4(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    6647             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    6648             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK31_FI_RK4
    6649             : #endif
    6650             :         use pm_kind, only: RKC => RK4
    6651             :         procedure(real(RKC))                                :: getFunc
    6652             :         real(RKC)           , intent(in)                    :: lb
    6653             :         type(pinf_type)     , intent(in)                    :: ub
    6654             :         real(RKC)           , intent(in)                    :: abstol
    6655             :         real(RKC)           , intent(in)                    :: reltol
    6656             :         type(GK31_type)     , intent(in)                    :: qrule
    6657             :         real(RKC)           , intent(out)                   :: integral, abserr
    6658             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    6659             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    6660             :         integer(IK)         , intent(out)                   :: neval
    6661             :         integer(IK)         , intent(out)                   :: nint
    6662             :         integer(IK)                                         :: err
    6663             :     end function
    6664             : #endif
    6665             : 
    6666             : #if RK3_ENABLED
    6667             :     module function QAGD_GK31_FI_RK3(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    6668             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    6669             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK31_FI_RK3
    6670             : #endif
    6671             :         use pm_kind, only: RKC => RK3
    6672             :         procedure(real(RKC))                                :: getFunc
    6673             :         real(RKC)           , intent(in)                    :: lb
    6674             :         type(pinf_type)     , intent(in)                    :: ub
    6675             :         real(RKC)           , intent(in)                    :: abstol
    6676             :         real(RKC)           , intent(in)                    :: reltol
    6677             :         type(GK31_type)     , intent(in)                    :: qrule
    6678             :         real(RKC)           , intent(out)                   :: integral, abserr
    6679             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    6680             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    6681             :         integer(IK)         , intent(out)                   :: neval
    6682             :         integer(IK)         , intent(out)                   :: nint
    6683             :         integer(IK)                                         :: err
    6684             :     end function
    6685             : #endif
    6686             : 
    6687             : #if RK2_ENABLED
    6688             :     module function QAGD_GK31_FI_RK2(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    6689             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    6690             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK31_FI_RK2
    6691             : #endif
    6692             :         use pm_kind, only: RKC => RK2
    6693             :         procedure(real(RKC))                                :: getFunc
    6694             :         real(RKC)           , intent(in)                    :: lb
    6695             :         type(pinf_type)     , intent(in)                    :: ub
    6696             :         real(RKC)           , intent(in)                    :: abstol
    6697             :         real(RKC)           , intent(in)                    :: reltol
    6698             :         type(GK31_type)     , intent(in)                    :: qrule
    6699             :         real(RKC)           , intent(out)                   :: integral, abserr
    6700             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    6701             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    6702             :         integer(IK)         , intent(out)                   :: neval
    6703             :         integer(IK)         , intent(out)                   :: nint
    6704             :         integer(IK)                                         :: err
    6705             :     end function
    6706             : #endif
    6707             : 
    6708             : #if RK1_ENABLED
    6709             :     module function QAGD_GK31_FI_RK1(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    6710             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    6711             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK31_FI_RK1
    6712             : #endif
    6713             :         use pm_kind, only: RKC => RK1
    6714             :         procedure(real(RKC))                                :: getFunc
    6715             :         real(RKC)           , intent(in)                    :: lb
    6716             :         type(pinf_type)     , intent(in)                    :: ub
    6717             :         real(RKC)           , intent(in)                    :: abstol
    6718             :         real(RKC)           , intent(in)                    :: reltol
    6719             :         type(GK31_type)     , intent(in)                    :: qrule
    6720             :         real(RKC)           , intent(out)                   :: integral, abserr
    6721             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    6722             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    6723             :         integer(IK)         , intent(out)                   :: neval
    6724             :         integer(IK)         , intent(out)                   :: nint
    6725             :         integer(IK)                                         :: err
    6726             :     end function
    6727             : #endif
    6728             : 
    6729             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6730             : 
    6731             : #if RK5_ENABLED
    6732             :     module function QAGD_GK31_IF_RK5(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    6733             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    6734             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK31_IF_RK5
    6735             : #endif
    6736             :         use pm_kind, only: RKC => RK5
    6737             :         procedure(real(RKC))                                :: getFunc
    6738             :         type(ninf_type)     , intent(in)                    :: lb
    6739             :         real(RKC)           , intent(in)                    :: ub
    6740             :         real(RKC)           , intent(in)                    :: abstol
    6741             :         real(RKC)           , intent(in)                    :: reltol
    6742             :         type(GK31_type)     , intent(in)                    :: qrule
    6743             :         real(RKC)           , intent(out)                   :: integral, abserr
    6744             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    6745             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    6746             :         integer(IK)         , intent(out)                   :: neval
    6747             :         integer(IK)         , intent(out)                   :: nint
    6748             :         integer(IK)                                         :: err
    6749             :     end function
    6750             : #endif
    6751             : 
    6752             : #if RK4_ENABLED
    6753             :     module function QAGD_GK31_IF_RK4(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    6754             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    6755             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK31_IF_RK4
    6756             : #endif
    6757             :         use pm_kind, only: RKC => RK4
    6758             :         procedure(real(RKC))                                :: getFunc
    6759             :         type(ninf_type)     , intent(in)                    :: lb
    6760             :         real(RKC)           , intent(in)                    :: ub
    6761             :         real(RKC)           , intent(in)                    :: abstol
    6762             :         real(RKC)           , intent(in)                    :: reltol
    6763             :         type(GK31_type)     , intent(in)                    :: qrule
    6764             :         real(RKC)           , intent(out)                   :: integral, abserr
    6765             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    6766             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    6767             :         integer(IK)         , intent(out)                   :: neval
    6768             :         integer(IK)         , intent(out)                   :: nint
    6769             :         integer(IK)                                         :: err
    6770             :     end function
    6771             : #endif
    6772             : 
    6773             : #if RK3_ENABLED
    6774             :     module function QAGD_GK31_IF_RK3(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    6775             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    6776             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK31_IF_RK3
    6777             : #endif
    6778             :         use pm_kind, only: RKC => RK3
    6779             :         procedure(real(RKC))                                :: getFunc
    6780             :         type(ninf_type)     , intent(in)                    :: lb
    6781             :         real(RKC)           , intent(in)                    :: ub
    6782             :         real(RKC)           , intent(in)                    :: abstol
    6783             :         real(RKC)           , intent(in)                    :: reltol
    6784             :         type(GK31_type)     , intent(in)                    :: qrule
    6785             :         real(RKC)           , intent(out)                   :: integral, abserr
    6786             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    6787             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    6788             :         integer(IK)         , intent(out)                   :: neval
    6789             :         integer(IK)         , intent(out)                   :: nint
    6790             :         integer(IK)                                         :: err
    6791             :     end function
    6792             : #endif
    6793             : 
    6794             : #if RK2_ENABLED
    6795             :     module function QAGD_GK31_IF_RK2(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    6796             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    6797             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK31_IF_RK2
    6798             : #endif
    6799             :         use pm_kind, only: RKC => RK2
    6800             :         procedure(real(RKC))                                :: getFunc
    6801             :         type(ninf_type)     , intent(in)                    :: lb
    6802             :         real(RKC)           , intent(in)                    :: ub
    6803             :         real(RKC)           , intent(in)                    :: abstol
    6804             :         real(RKC)           , intent(in)                    :: reltol
    6805             :         type(GK31_type)     , intent(in)                    :: qrule
    6806             :         real(RKC)           , intent(out)                   :: integral, abserr
    6807             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    6808             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    6809             :         integer(IK)         , intent(out)                   :: neval
    6810             :         integer(IK)         , intent(out)                   :: nint
    6811             :         integer(IK)                                         :: err
    6812             :     end function
    6813             : #endif
    6814             : 
    6815             : #if RK1_ENABLED
    6816             :     module function QAGD_GK31_IF_RK1(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    6817             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    6818             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK31_IF_RK1
    6819             : #endif
    6820             :         use pm_kind, only: RKC => RK1
    6821             :         procedure(real(RKC))                                :: getFunc
    6822             :         type(ninf_type)     , intent(in)                    :: lb
    6823             :         real(RKC)           , intent(in)                    :: ub
    6824             :         real(RKC)           , intent(in)                    :: abstol
    6825             :         real(RKC)           , intent(in)                    :: reltol
    6826             :         type(GK31_type)     , intent(in)                    :: qrule
    6827             :         real(RKC)           , intent(out)                   :: integral, abserr
    6828             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    6829             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    6830             :         integer(IK)         , intent(out)                   :: neval
    6831             :         integer(IK)         , intent(out)                   :: nint
    6832             :         integer(IK)                                         :: err
    6833             :     end function
    6834             : #endif
    6835             : 
    6836             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6837             : 
    6838             : #if RK5_ENABLED
    6839             :     module function QAGD_GK31_II_RK5(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    6840             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    6841             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK31_II_RK5
    6842             : #endif
    6843             :         use pm_kind, only: RKC => RK5
    6844             :         procedure(real(RKC))                                :: getFunc
    6845             :         type(ninf_type)     , intent(in)                    :: lb
    6846             :         type(pinf_type)     , intent(in)                    :: ub
    6847             :         real(RKC)           , intent(in)                    :: abstol
    6848             :         real(RKC)           , intent(in)                    :: reltol
    6849             :         type(GK31_type)     , intent(in)                    :: qrule
    6850             :         real(RKC)           , intent(out)                   :: integral, abserr
    6851             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    6852             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    6853             :         integer(IK)         , intent(out)                   :: neval
    6854             :         integer(IK)         , intent(out)                   :: nint
    6855             :         integer(IK)                                         :: err
    6856             :     end function
    6857             : #endif
    6858             : 
    6859             : #if RK4_ENABLED
    6860             :     module function QAGD_GK31_II_RK4(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    6861             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    6862             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK31_II_RK4
    6863             : #endif
    6864             :         use pm_kind, only: RKC => RK4
    6865             :         procedure(real(RKC))                                :: getFunc
    6866             :         type(ninf_type)     , intent(in)                    :: lb
    6867             :         type(pinf_type)     , intent(in)                    :: ub
    6868             :         real(RKC)           , intent(in)                    :: abstol
    6869             :         real(RKC)           , intent(in)                    :: reltol
    6870             :         type(GK31_type)     , intent(in)                    :: qrule
    6871             :         real(RKC)           , intent(out)                   :: integral, abserr
    6872             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    6873             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    6874             :         integer(IK)         , intent(out)                   :: neval
    6875             :         integer(IK)         , intent(out)                   :: nint
    6876             :         integer(IK)                                         :: err
    6877             :     end function
    6878             : #endif
    6879             : 
    6880             : #if RK3_ENABLED
    6881             :     module function QAGD_GK31_II_RK3(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    6882             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    6883             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK31_II_RK3
    6884             : #endif
    6885             :         use pm_kind, only: RKC => RK3
    6886             :         procedure(real(RKC))                                :: getFunc
    6887             :         type(ninf_type)     , intent(in)                    :: lb
    6888             :         type(pinf_type)     , intent(in)                    :: ub
    6889             :         real(RKC)           , intent(in)                    :: abstol
    6890             :         real(RKC)           , intent(in)                    :: reltol
    6891             :         type(GK31_type)     , intent(in)                    :: qrule
    6892             :         real(RKC)           , intent(out)                   :: integral, abserr
    6893             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    6894             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    6895             :         integer(IK)         , intent(out)                   :: neval
    6896             :         integer(IK)         , intent(out)                   :: nint
    6897             :         integer(IK)                                         :: err
    6898             :     end function
    6899             : #endif
    6900             : 
    6901             : #if RK2_ENABLED
    6902             :     module function QAGD_GK31_II_RK2(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    6903             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    6904             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK31_II_RK2
    6905             : #endif
    6906             :         use pm_kind, only: RKC => RK2
    6907             :         procedure(real(RKC))                                :: getFunc
    6908             :         type(ninf_type)     , intent(in)                    :: lb
    6909             :         type(pinf_type)     , intent(in)                    :: ub
    6910             :         real(RKC)           , intent(in)                    :: abstol
    6911             :         real(RKC)           , intent(in)                    :: reltol
    6912             :         type(GK31_type)     , intent(in)                    :: qrule
    6913             :         real(RKC)           , intent(out)                   :: integral, abserr
    6914             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    6915             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    6916             :         integer(IK)         , intent(out)                   :: neval
    6917             :         integer(IK)         , intent(out)                   :: nint
    6918             :         integer(IK)                                         :: err
    6919             :     end function
    6920             : #endif
    6921             : 
    6922             : #if RK1_ENABLED
    6923             :     module function QAGD_GK31_II_RK1(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    6924             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    6925             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK31_II_RK1
    6926             : #endif
    6927             :         use pm_kind, only: RKC => RK1
    6928             :         procedure(real(RKC))                                :: getFunc
    6929             :         type(ninf_type)     , intent(in)                    :: lb
    6930             :         type(pinf_type)     , intent(in)                    :: ub
    6931             :         real(RKC)           , intent(in)                    :: abstol
    6932             :         real(RKC)           , intent(in)                    :: reltol
    6933             :         type(GK31_type)     , intent(in)                    :: qrule
    6934             :         real(RKC)           , intent(out)                   :: integral, abserr
    6935             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    6936             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    6937             :         integer(IK)         , intent(out)                   :: neval
    6938             :         integer(IK)         , intent(out)                   :: nint
    6939             :         integer(IK)                                         :: err
    6940             :     end function
    6941             : #endif
    6942             : 
    6943             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6944             : 
    6945             :     end interface
    6946             : 
    6947             :     ! QAGD_GK41
    6948             : 
    6949             :     interface getQuadErr
    6950             : 
    6951             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    6952             : 
    6953             : #if RK5_ENABLED
    6954             :     module function QAGD_GK41_FF_RK5(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    6955             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    6956             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK41_FF_RK5
    6957             : #endif
    6958             :         use pm_kind, only: RKC => RK5
    6959             :         procedure(real(RKC))                                :: getFunc
    6960             :         real(RKC)           , intent(in)                    :: lb
    6961             :         real(RKC)           , intent(in)                    :: ub
    6962             :         real(RKC)           , intent(in)                    :: abstol
    6963             :         real(RKC)           , intent(in)                    :: reltol
    6964             :         type(GK41_type)     , intent(in)                    :: qrule
    6965             :         real(RKC)           , intent(out)                   :: integral, abserr
    6966             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    6967             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    6968             :         integer(IK)         , intent(out)                   :: neval
    6969             :         integer(IK)         , intent(out)                   :: nint
    6970             :         integer(IK)                                         :: err
    6971             :     end function
    6972             : #endif
    6973             : 
    6974             : #if RK4_ENABLED
    6975             :     module function QAGD_GK41_FF_RK4(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    6976             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    6977             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK41_FF_RK4
    6978             : #endif
    6979             :         use pm_kind, only: RKC => RK4
    6980             :         procedure(real(RKC))                                :: getFunc
    6981             :         real(RKC)           , intent(in)                    :: lb
    6982             :         real(RKC)           , intent(in)                    :: ub
    6983             :         real(RKC)           , intent(in)                    :: abstol
    6984             :         real(RKC)           , intent(in)                    :: reltol
    6985             :         type(GK41_type)     , intent(in)                    :: qrule
    6986             :         real(RKC)           , intent(out)                   :: integral, abserr
    6987             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    6988             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    6989             :         integer(IK)         , intent(out)                   :: neval
    6990             :         integer(IK)         , intent(out)                   :: nint
    6991             :         integer(IK)                                         :: err
    6992             :     end function
    6993             : #endif
    6994             : 
    6995             : #if RK3_ENABLED
    6996             :     module function QAGD_GK41_FF_RK3(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    6997             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    6998             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK41_FF_RK3
    6999             : #endif
    7000             :         use pm_kind, only: RKC => RK3
    7001             :         procedure(real(RKC))                                :: getFunc
    7002             :         real(RKC)           , intent(in)                    :: lb
    7003             :         real(RKC)           , intent(in)                    :: ub
    7004             :         real(RKC)           , intent(in)                    :: abstol
    7005             :         real(RKC)           , intent(in)                    :: reltol
    7006             :         type(GK41_type)     , intent(in)                    :: qrule
    7007             :         real(RKC)           , intent(out)                   :: integral, abserr
    7008             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    7009             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    7010             :         integer(IK)         , intent(out)                   :: neval
    7011             :         integer(IK)         , intent(out)                   :: nint
    7012             :         integer(IK)                                         :: err
    7013             :     end function
    7014             : #endif
    7015             : 
    7016             : #if RK2_ENABLED
    7017             :     module function QAGD_GK41_FF_RK2(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    7018             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    7019             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK41_FF_RK2
    7020             : #endif
    7021             :         use pm_kind, only: RKC => RK2
    7022             :         procedure(real(RKC))                                :: getFunc
    7023             :         real(RKC)           , intent(in)                    :: lb
    7024             :         real(RKC)           , intent(in)                    :: ub
    7025             :         real(RKC)           , intent(in)                    :: abstol
    7026             :         real(RKC)           , intent(in)                    :: reltol
    7027             :         type(GK41_type)     , intent(in)                    :: qrule
    7028             :         real(RKC)           , intent(out)                   :: integral, abserr
    7029             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    7030             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    7031             :         integer(IK)         , intent(out)                   :: neval
    7032             :         integer(IK)         , intent(out)                   :: nint
    7033             :         integer(IK)                                         :: err
    7034             :     end function
    7035             : #endif
    7036             : 
    7037             : #if RK1_ENABLED
    7038             :     module function QAGD_GK41_FF_RK1(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    7039             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    7040             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK41_FF_RK1
    7041             : #endif
    7042             :         use pm_kind, only: RKC => RK1
    7043             :         procedure(real(RKC))                                :: getFunc
    7044             :         real(RKC)           , intent(in)                    :: lb
    7045             :         real(RKC)           , intent(in)                    :: ub
    7046             :         real(RKC)           , intent(in)                    :: abstol
    7047             :         real(RKC)           , intent(in)                    :: reltol
    7048             :         type(GK41_type)     , intent(in)                    :: qrule
    7049             :         real(RKC)           , intent(out)                   :: integral, abserr
    7050             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    7051             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    7052             :         integer(IK)         , intent(out)                   :: neval
    7053             :         integer(IK)         , intent(out)                   :: nint
    7054             :         integer(IK)                                         :: err
    7055             :     end function
    7056             : #endif
    7057             : 
    7058             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7059             : 
    7060             : #if RK5_ENABLED
    7061             :     module function QAGD_GK41_FI_RK5(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    7062             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    7063             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK41_FI_RK5
    7064             : #endif
    7065             :         use pm_kind, only: RKC => RK5
    7066             :         procedure(real(RKC))                                :: getFunc
    7067             :         real(RKC)           , intent(in)                    :: lb
    7068             :         type(pinf_type)     , intent(in)                    :: ub
    7069             :         real(RKC)           , intent(in)                    :: abstol
    7070             :         real(RKC)           , intent(in)                    :: reltol
    7071             :         type(GK41_type)     , intent(in)                    :: qrule
    7072             :         real(RKC)           , intent(out)                   :: integral, abserr
    7073             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    7074             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    7075             :         integer(IK)         , intent(out)                   :: neval
    7076             :         integer(IK)         , intent(out)                   :: nint
    7077             :         integer(IK)                                         :: err
    7078             :     end function
    7079             : #endif
    7080             : 
    7081             : #if RK4_ENABLED
    7082             :     module function QAGD_GK41_FI_RK4(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    7083             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    7084             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK41_FI_RK4
    7085             : #endif
    7086             :         use pm_kind, only: RKC => RK4
    7087             :         procedure(real(RKC))                                :: getFunc
    7088             :         real(RKC)           , intent(in)                    :: lb
    7089             :         type(pinf_type)     , intent(in)                    :: ub
    7090             :         real(RKC)           , intent(in)                    :: abstol
    7091             :         real(RKC)           , intent(in)                    :: reltol
    7092             :         type(GK41_type)     , intent(in)                    :: qrule
    7093             :         real(RKC)           , intent(out)                   :: integral, abserr
    7094             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    7095             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    7096             :         integer(IK)         , intent(out)                   :: neval
    7097             :         integer(IK)         , intent(out)                   :: nint
    7098             :         integer(IK)                                         :: err
    7099             :     end function
    7100             : #endif
    7101             : 
    7102             : #if RK3_ENABLED
    7103             :     module function QAGD_GK41_FI_RK3(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    7104             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    7105             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK41_FI_RK3
    7106             : #endif
    7107             :         use pm_kind, only: RKC => RK3
    7108             :         procedure(real(RKC))                                :: getFunc
    7109             :         real(RKC)           , intent(in)                    :: lb
    7110             :         type(pinf_type)     , intent(in)                    :: ub
    7111             :         real(RKC)           , intent(in)                    :: abstol
    7112             :         real(RKC)           , intent(in)                    :: reltol
    7113             :         type(GK41_type)     , intent(in)                    :: qrule
    7114             :         real(RKC)           , intent(out)                   :: integral, abserr
    7115             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    7116             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    7117             :         integer(IK)         , intent(out)                   :: neval
    7118             :         integer(IK)         , intent(out)                   :: nint
    7119             :         integer(IK)                                         :: err
    7120             :     end function
    7121             : #endif
    7122             : 
    7123             : #if RK2_ENABLED
    7124             :     module function QAGD_GK41_FI_RK2(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    7125             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    7126             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK41_FI_RK2
    7127             : #endif
    7128             :         use pm_kind, only: RKC => RK2
    7129             :         procedure(real(RKC))                                :: getFunc
    7130             :         real(RKC)           , intent(in)                    :: lb
    7131             :         type(pinf_type)     , intent(in)                    :: ub
    7132             :         real(RKC)           , intent(in)                    :: abstol
    7133             :         real(RKC)           , intent(in)                    :: reltol
    7134             :         type(GK41_type)     , intent(in)                    :: qrule
    7135             :         real(RKC)           , intent(out)                   :: integral, abserr
    7136             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    7137             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    7138             :         integer(IK)         , intent(out)                   :: neval
    7139             :         integer(IK)         , intent(out)                   :: nint
    7140             :         integer(IK)                                         :: err
    7141             :     end function
    7142             : #endif
    7143             : 
    7144             : #if RK1_ENABLED
    7145             :     module function QAGD_GK41_FI_RK1(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    7146             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    7147             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK41_FI_RK1
    7148             : #endif
    7149             :         use pm_kind, only: RKC => RK1
    7150             :         procedure(real(RKC))                                :: getFunc
    7151             :         real(RKC)           , intent(in)                    :: lb
    7152             :         type(pinf_type)     , intent(in)                    :: ub
    7153             :         real(RKC)           , intent(in)                    :: abstol
    7154             :         real(RKC)           , intent(in)                    :: reltol
    7155             :         type(GK41_type)     , intent(in)                    :: qrule
    7156             :         real(RKC)           , intent(out)                   :: integral, abserr
    7157             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    7158             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    7159             :         integer(IK)         , intent(out)                   :: neval
    7160             :         integer(IK)         , intent(out)                   :: nint
    7161             :         integer(IK)                                         :: err
    7162             :     end function
    7163             : #endif
    7164             : 
    7165             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7166             : 
    7167             : #if RK5_ENABLED
    7168             :     module function QAGD_GK41_IF_RK5(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    7169             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    7170             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK41_IF_RK5
    7171             : #endif
    7172             :         use pm_kind, only: RKC => RK5
    7173             :         procedure(real(RKC))                                :: getFunc
    7174             :         type(ninf_type)     , intent(in)                    :: lb
    7175             :         real(RKC)           , intent(in)                    :: ub
    7176             :         real(RKC)           , intent(in)                    :: abstol
    7177             :         real(RKC)           , intent(in)                    :: reltol
    7178             :         type(GK41_type)     , intent(in)                    :: qrule
    7179             :         real(RKC)           , intent(out)                   :: integral, abserr
    7180             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    7181             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    7182             :         integer(IK)         , intent(out)                   :: neval
    7183             :         integer(IK)         , intent(out)                   :: nint
    7184             :         integer(IK)                                         :: err
    7185             :     end function
    7186             : #endif
    7187             : 
    7188             : #if RK4_ENABLED
    7189             :     module function QAGD_GK41_IF_RK4(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    7190             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    7191             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK41_IF_RK4
    7192             : #endif
    7193             :         use pm_kind, only: RKC => RK4
    7194             :         procedure(real(RKC))                                :: getFunc
    7195             :         type(ninf_type)     , intent(in)                    :: lb
    7196             :         real(RKC)           , intent(in)                    :: ub
    7197             :         real(RKC)           , intent(in)                    :: abstol
    7198             :         real(RKC)           , intent(in)                    :: reltol
    7199             :         type(GK41_type)     , intent(in)                    :: qrule
    7200             :         real(RKC)           , intent(out)                   :: integral, abserr
    7201             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    7202             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    7203             :         integer(IK)         , intent(out)                   :: neval
    7204             :         integer(IK)         , intent(out)                   :: nint
    7205             :         integer(IK)                                         :: err
    7206             :     end function
    7207             : #endif
    7208             : 
    7209             : #if RK3_ENABLED
    7210             :     module function QAGD_GK41_IF_RK3(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    7211             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    7212             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK41_IF_RK3
    7213             : #endif
    7214             :         use pm_kind, only: RKC => RK3
    7215             :         procedure(real(RKC))                                :: getFunc
    7216             :         type(ninf_type)     , intent(in)                    :: lb
    7217             :         real(RKC)           , intent(in)                    :: ub
    7218             :         real(RKC)           , intent(in)                    :: abstol
    7219             :         real(RKC)           , intent(in)                    :: reltol
    7220             :         type(GK41_type)     , intent(in)                    :: qrule
    7221             :         real(RKC)           , intent(out)                   :: integral, abserr
    7222             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    7223             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    7224             :         integer(IK)         , intent(out)                   :: neval
    7225             :         integer(IK)         , intent(out)                   :: nint
    7226             :         integer(IK)                                         :: err
    7227             :     end function
    7228             : #endif
    7229             : 
    7230             : #if RK2_ENABLED
    7231             :     module function QAGD_GK41_IF_RK2(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    7232             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    7233             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK41_IF_RK2
    7234             : #endif
    7235             :         use pm_kind, only: RKC => RK2
    7236             :         procedure(real(RKC))                                :: getFunc
    7237             :         type(ninf_type)     , intent(in)                    :: lb
    7238             :         real(RKC)           , intent(in)                    :: ub
    7239             :         real(RKC)           , intent(in)                    :: abstol
    7240             :         real(RKC)           , intent(in)                    :: reltol
    7241             :         type(GK41_type)     , intent(in)                    :: qrule
    7242             :         real(RKC)           , intent(out)                   :: integral, abserr
    7243             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    7244             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    7245             :         integer(IK)         , intent(out)                   :: neval
    7246             :         integer(IK)         , intent(out)                   :: nint
    7247             :         integer(IK)                                         :: err
    7248             :     end function
    7249             : #endif
    7250             : 
    7251             : #if RK1_ENABLED
    7252             :     module function QAGD_GK41_IF_RK1(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    7253             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    7254             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK41_IF_RK1
    7255             : #endif
    7256             :         use pm_kind, only: RKC => RK1
    7257             :         procedure(real(RKC))                                :: getFunc
    7258             :         type(ninf_type)     , intent(in)                    :: lb
    7259             :         real(RKC)           , intent(in)                    :: ub
    7260             :         real(RKC)           , intent(in)                    :: abstol
    7261             :         real(RKC)           , intent(in)                    :: reltol
    7262             :         type(GK41_type)     , intent(in)                    :: qrule
    7263             :         real(RKC)           , intent(out)                   :: integral, abserr
    7264             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    7265             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    7266             :         integer(IK)         , intent(out)                   :: neval
    7267             :         integer(IK)         , intent(out)                   :: nint
    7268             :         integer(IK)                                         :: err
    7269             :     end function
    7270             : #endif
    7271             : 
    7272             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7273             : 
    7274             : #if RK5_ENABLED
    7275             :     module function QAGD_GK41_II_RK5(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    7276             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    7277             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK41_II_RK5
    7278             : #endif
    7279             :         use pm_kind, only: RKC => RK5
    7280             :         procedure(real(RKC))                                :: getFunc
    7281             :         type(ninf_type)     , intent(in)                    :: lb
    7282             :         type(pinf_type)     , intent(in)                    :: ub
    7283             :         real(RKC)           , intent(in)                    :: abstol
    7284             :         real(RKC)           , intent(in)                    :: reltol
    7285             :         type(GK41_type)     , intent(in)                    :: qrule
    7286             :         real(RKC)           , intent(out)                   :: integral, abserr
    7287             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    7288             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    7289             :         integer(IK)         , intent(out)                   :: neval
    7290             :         integer(IK)         , intent(out)                   :: nint
    7291             :         integer(IK)                                         :: err
    7292             :     end function
    7293             : #endif
    7294             : 
    7295             : #if RK4_ENABLED
    7296             :     module function QAGD_GK41_II_RK4(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    7297             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    7298             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK41_II_RK4
    7299             : #endif
    7300             :         use pm_kind, only: RKC => RK4
    7301             :         procedure(real(RKC))                                :: getFunc
    7302             :         type(ninf_type)     , intent(in)                    :: lb
    7303             :         type(pinf_type)     , intent(in)                    :: ub
    7304             :         real(RKC)           , intent(in)                    :: abstol
    7305             :         real(RKC)           , intent(in)                    :: reltol
    7306             :         type(GK41_type)     , intent(in)                    :: qrule
    7307             :         real(RKC)           , intent(out)                   :: integral, abserr
    7308             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    7309             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    7310             :         integer(IK)         , intent(out)                   :: neval
    7311             :         integer(IK)         , intent(out)                   :: nint
    7312             :         integer(IK)                                         :: err
    7313             :     end function
    7314             : #endif
    7315             : 
    7316             : #if RK3_ENABLED
    7317             :     module function QAGD_GK41_II_RK3(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    7318             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    7319             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK41_II_RK3
    7320             : #endif
    7321             :         use pm_kind, only: RKC => RK3
    7322             :         procedure(real(RKC))                                :: getFunc
    7323             :         type(ninf_type)     , intent(in)                    :: lb
    7324             :         type(pinf_type)     , intent(in)                    :: ub
    7325             :         real(RKC)           , intent(in)                    :: abstol
    7326             :         real(RKC)           , intent(in)                    :: reltol
    7327             :         type(GK41_type)     , intent(in)                    :: qrule
    7328             :         real(RKC)           , intent(out)                   :: integral, abserr
    7329             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    7330             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    7331             :         integer(IK)         , intent(out)                   :: neval
    7332             :         integer(IK)         , intent(out)                   :: nint
    7333             :         integer(IK)                                         :: err
    7334             :     end function
    7335             : #endif
    7336             : 
    7337             : #if RK2_ENABLED
    7338             :     module function QAGD_GK41_II_RK2(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    7339             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    7340             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK41_II_RK2
    7341             : #endif
    7342             :         use pm_kind, only: RKC => RK2
    7343             :         procedure(real(RKC))                                :: getFunc
    7344             :         type(ninf_type)     , intent(in)                    :: lb
    7345             :         type(pinf_type)     , intent(in)                    :: ub
    7346             :         real(RKC)           , intent(in)                    :: abstol
    7347             :         real(RKC)           , intent(in)                    :: reltol
    7348             :         type(GK41_type)     , intent(in)                    :: qrule
    7349             :         real(RKC)           , intent(out)                   :: integral, abserr
    7350             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    7351             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    7352             :         integer(IK)         , intent(out)                   :: neval
    7353             :         integer(IK)         , intent(out)                   :: nint
    7354             :         integer(IK)                                         :: err
    7355             :     end function
    7356             : #endif
    7357             : 
    7358             : #if RK1_ENABLED
    7359             :     module function QAGD_GK41_II_RK1(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    7360             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    7361             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK41_II_RK1
    7362             : #endif
    7363             :         use pm_kind, only: RKC => RK1
    7364             :         procedure(real(RKC))                                :: getFunc
    7365             :         type(ninf_type)     , intent(in)                    :: lb
    7366             :         type(pinf_type)     , intent(in)                    :: ub
    7367             :         real(RKC)           , intent(in)                    :: abstol
    7368             :         real(RKC)           , intent(in)                    :: reltol
    7369             :         type(GK41_type)     , intent(in)                    :: qrule
    7370             :         real(RKC)           , intent(out)                   :: integral, abserr
    7371             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    7372             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    7373             :         integer(IK)         , intent(out)                   :: neval
    7374             :         integer(IK)         , intent(out)                   :: nint
    7375             :         integer(IK)                                         :: err
    7376             :     end function
    7377             : #endif
    7378             : 
    7379             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7380             : 
    7381             :     end interface
    7382             : 
    7383             :     ! QAGD_GK51
    7384             : 
    7385             :     interface getQuadErr
    7386             : 
    7387             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7388             : 
    7389             : #if RK5_ENABLED
    7390             :     module function QAGD_GK51_FF_RK5(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    7391             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    7392             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK51_FF_RK5
    7393             : #endif
    7394             :         use pm_kind, only: RKC => RK5
    7395             :         procedure(real(RKC))                                :: getFunc
    7396             :         real(RKC)           , intent(in)                    :: lb
    7397             :         real(RKC)           , intent(in)                    :: ub
    7398             :         real(RKC)           , intent(in)                    :: abstol
    7399             :         real(RKC)           , intent(in)                    :: reltol
    7400             :         type(GK51_type)     , intent(in)                    :: qrule
    7401             :         real(RKC)           , intent(out)                   :: integral, abserr
    7402             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    7403             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    7404             :         integer(IK)         , intent(out)                   :: neval
    7405             :         integer(IK)         , intent(out)                   :: nint
    7406             :         integer(IK)                                         :: err
    7407             :     end function
    7408             : #endif
    7409             : 
    7410             : #if RK4_ENABLED
    7411             :     module function QAGD_GK51_FF_RK4(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    7412             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    7413             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK51_FF_RK4
    7414             : #endif
    7415             :         use pm_kind, only: RKC => RK4
    7416             :         procedure(real(RKC))                                :: getFunc
    7417             :         real(RKC)           , intent(in)                    :: lb
    7418             :         real(RKC)           , intent(in)                    :: ub
    7419             :         real(RKC)           , intent(in)                    :: abstol
    7420             :         real(RKC)           , intent(in)                    :: reltol
    7421             :         type(GK51_type)     , intent(in)                    :: qrule
    7422             :         real(RKC)           , intent(out)                   :: integral, abserr
    7423             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    7424             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    7425             :         integer(IK)         , intent(out)                   :: neval
    7426             :         integer(IK)         , intent(out)                   :: nint
    7427             :         integer(IK)                                         :: err
    7428             :     end function
    7429             : #endif
    7430             : 
    7431             : #if RK3_ENABLED
    7432             :     module function QAGD_GK51_FF_RK3(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    7433             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    7434             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK51_FF_RK3
    7435             : #endif
    7436             :         use pm_kind, only: RKC => RK3
    7437             :         procedure(real(RKC))                                :: getFunc
    7438             :         real(RKC)           , intent(in)                    :: lb
    7439             :         real(RKC)           , intent(in)                    :: ub
    7440             :         real(RKC)           , intent(in)                    :: abstol
    7441             :         real(RKC)           , intent(in)                    :: reltol
    7442             :         type(GK51_type)     , intent(in)                    :: qrule
    7443             :         real(RKC)           , intent(out)                   :: integral, abserr
    7444             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    7445             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    7446             :         integer(IK)         , intent(out)                   :: neval
    7447             :         integer(IK)         , intent(out)                   :: nint
    7448             :         integer(IK)                                         :: err
    7449             :     end function
    7450             : #endif
    7451             : 
    7452             : #if RK2_ENABLED
    7453             :     module function QAGD_GK51_FF_RK2(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    7454             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    7455             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK51_FF_RK2
    7456             : #endif
    7457             :         use pm_kind, only: RKC => RK2
    7458             :         procedure(real(RKC))                                :: getFunc
    7459             :         real(RKC)           , intent(in)                    :: lb
    7460             :         real(RKC)           , intent(in)                    :: ub
    7461             :         real(RKC)           , intent(in)                    :: abstol
    7462             :         real(RKC)           , intent(in)                    :: reltol
    7463             :         type(GK51_type)     , intent(in)                    :: qrule
    7464             :         real(RKC)           , intent(out)                   :: integral, abserr
    7465             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    7466             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    7467             :         integer(IK)         , intent(out)                   :: neval
    7468             :         integer(IK)         , intent(out)                   :: nint
    7469             :         integer(IK)                                         :: err
    7470             :     end function
    7471             : #endif
    7472             : 
    7473             : #if RK1_ENABLED
    7474             :     module function QAGD_GK51_FF_RK1(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    7475             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    7476             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK51_FF_RK1
    7477             : #endif
    7478             :         use pm_kind, only: RKC => RK1
    7479             :         procedure(real(RKC))                                :: getFunc
    7480             :         real(RKC)           , intent(in)                    :: lb
    7481             :         real(RKC)           , intent(in)                    :: ub
    7482             :         real(RKC)           , intent(in)                    :: abstol
    7483             :         real(RKC)           , intent(in)                    :: reltol
    7484             :         type(GK51_type)     , intent(in)                    :: qrule
    7485             :         real(RKC)           , intent(out)                   :: integral, abserr
    7486             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    7487             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    7488             :         integer(IK)         , intent(out)                   :: neval
    7489             :         integer(IK)         , intent(out)                   :: nint
    7490             :         integer(IK)                                         :: err
    7491             :     end function
    7492             : #endif
    7493             : 
    7494             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7495             : 
    7496             : #if RK5_ENABLED
    7497             :     module function QAGD_GK51_FI_RK5(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    7498             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    7499             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK51_FI_RK5
    7500             : #endif
    7501             :         use pm_kind, only: RKC => RK5
    7502             :         procedure(real(RKC))                                :: getFunc
    7503             :         real(RKC)           , intent(in)                    :: lb
    7504             :         type(pinf_type)     , intent(in)                    :: ub
    7505             :         real(RKC)           , intent(in)                    :: abstol
    7506             :         real(RKC)           , intent(in)                    :: reltol
    7507             :         type(GK51_type)     , intent(in)                    :: qrule
    7508             :         real(RKC)           , intent(out)                   :: integral, abserr
    7509             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    7510             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    7511             :         integer(IK)         , intent(out)                   :: neval
    7512             :         integer(IK)         , intent(out)                   :: nint
    7513             :         integer(IK)                                         :: err
    7514             :     end function
    7515             : #endif
    7516             : 
    7517             : #if RK4_ENABLED
    7518             :     module function QAGD_GK51_FI_RK4(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    7519             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    7520             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK51_FI_RK4
    7521             : #endif
    7522             :         use pm_kind, only: RKC => RK4
    7523             :         procedure(real(RKC))                                :: getFunc
    7524             :         real(RKC)           , intent(in)                    :: lb
    7525             :         type(pinf_type)     , intent(in)                    :: ub
    7526             :         real(RKC)           , intent(in)                    :: abstol
    7527             :         real(RKC)           , intent(in)                    :: reltol
    7528             :         type(GK51_type)     , intent(in)                    :: qrule
    7529             :         real(RKC)           , intent(out)                   :: integral, abserr
    7530             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    7531             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    7532             :         integer(IK)         , intent(out)                   :: neval
    7533             :         integer(IK)         , intent(out)                   :: nint
    7534             :         integer(IK)                                         :: err
    7535             :     end function
    7536             : #endif
    7537             : 
    7538             : #if RK3_ENABLED
    7539             :     module function QAGD_GK51_FI_RK3(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    7540             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    7541             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK51_FI_RK3
    7542             : #endif
    7543             :         use pm_kind, only: RKC => RK3
    7544             :         procedure(real(RKC))                                :: getFunc
    7545             :         real(RKC)           , intent(in)                    :: lb
    7546             :         type(pinf_type)     , intent(in)                    :: ub
    7547             :         real(RKC)           , intent(in)                    :: abstol
    7548             :         real(RKC)           , intent(in)                    :: reltol
    7549             :         type(GK51_type)     , intent(in)                    :: qrule
    7550             :         real(RKC)           , intent(out)                   :: integral, abserr
    7551             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    7552             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    7553             :         integer(IK)         , intent(out)                   :: neval
    7554             :         integer(IK)         , intent(out)                   :: nint
    7555             :         integer(IK)                                         :: err
    7556             :     end function
    7557             : #endif
    7558             : 
    7559             : #if RK2_ENABLED
    7560             :     module function QAGD_GK51_FI_RK2(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    7561             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    7562             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK51_FI_RK2
    7563             : #endif
    7564             :         use pm_kind, only: RKC => RK2
    7565             :         procedure(real(RKC))                                :: getFunc
    7566             :         real(RKC)           , intent(in)                    :: lb
    7567             :         type(pinf_type)     , intent(in)                    :: ub
    7568             :         real(RKC)           , intent(in)                    :: abstol
    7569             :         real(RKC)           , intent(in)                    :: reltol
    7570             :         type(GK51_type)     , intent(in)                    :: qrule
    7571             :         real(RKC)           , intent(out)                   :: integral, abserr
    7572             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    7573             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    7574             :         integer(IK)         , intent(out)                   :: neval
    7575             :         integer(IK)         , intent(out)                   :: nint
    7576             :         integer(IK)                                         :: err
    7577             :     end function
    7578             : #endif
    7579             : 
    7580             : #if RK1_ENABLED
    7581             :     module function QAGD_GK51_FI_RK1(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    7582             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    7583             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK51_FI_RK1
    7584             : #endif
    7585             :         use pm_kind, only: RKC => RK1
    7586             :         procedure(real(RKC))                                :: getFunc
    7587             :         real(RKC)           , intent(in)                    :: lb
    7588             :         type(pinf_type)     , intent(in)                    :: ub
    7589             :         real(RKC)           , intent(in)                    :: abstol
    7590             :         real(RKC)           , intent(in)                    :: reltol
    7591             :         type(GK51_type)     , intent(in)                    :: qrule
    7592             :         real(RKC)           , intent(out)                   :: integral, abserr
    7593             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    7594             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    7595             :         integer(IK)         , intent(out)                   :: neval
    7596             :         integer(IK)         , intent(out)                   :: nint
    7597             :         integer(IK)                                         :: err
    7598             :     end function
    7599             : #endif
    7600             : 
    7601             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7602             : 
    7603             : #if RK5_ENABLED
    7604             :     module function QAGD_GK51_IF_RK5(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    7605             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    7606             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK51_IF_RK5
    7607             : #endif
    7608             :         use pm_kind, only: RKC => RK5
    7609             :         procedure(real(RKC))                                :: getFunc
    7610             :         type(ninf_type)     , intent(in)                    :: lb
    7611             :         real(RKC)           , intent(in)                    :: ub
    7612             :         real(RKC)           , intent(in)                    :: abstol
    7613             :         real(RKC)           , intent(in)                    :: reltol
    7614             :         type(GK51_type)     , intent(in)                    :: qrule
    7615             :         real(RKC)           , intent(out)                   :: integral, abserr
    7616             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    7617             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    7618             :         integer(IK)         , intent(out)                   :: neval
    7619             :         integer(IK)         , intent(out)                   :: nint
    7620             :         integer(IK)                                         :: err
    7621             :     end function
    7622             : #endif
    7623             : 
    7624             : #if RK4_ENABLED
    7625             :     module function QAGD_GK51_IF_RK4(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    7626             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    7627             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK51_IF_RK4
    7628             : #endif
    7629             :         use pm_kind, only: RKC => RK4
    7630             :         procedure(real(RKC))                                :: getFunc
    7631             :         type(ninf_type)     , intent(in)                    :: lb
    7632             :         real(RKC)           , intent(in)                    :: ub
    7633             :         real(RKC)           , intent(in)                    :: abstol
    7634             :         real(RKC)           , intent(in)                    :: reltol
    7635             :         type(GK51_type)     , intent(in)                    :: qrule
    7636             :         real(RKC)           , intent(out)                   :: integral, abserr
    7637             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    7638             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    7639             :         integer(IK)         , intent(out)                   :: neval
    7640             :         integer(IK)         , intent(out)                   :: nint
    7641             :         integer(IK)                                         :: err
    7642             :     end function
    7643             : #endif
    7644             : 
    7645             : #if RK3_ENABLED
    7646             :     module function QAGD_GK51_IF_RK3(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    7647             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    7648             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK51_IF_RK3
    7649             : #endif
    7650             :         use pm_kind, only: RKC => RK3
    7651             :         procedure(real(RKC))                                :: getFunc
    7652             :         type(ninf_type)     , intent(in)                    :: lb
    7653             :         real(RKC)           , intent(in)                    :: ub
    7654             :         real(RKC)           , intent(in)                    :: abstol
    7655             :         real(RKC)           , intent(in)                    :: reltol
    7656             :         type(GK51_type)     , intent(in)                    :: qrule
    7657             :         real(RKC)           , intent(out)                   :: integral, abserr
    7658             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    7659             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    7660             :         integer(IK)         , intent(out)                   :: neval
    7661             :         integer(IK)         , intent(out)                   :: nint
    7662             :         integer(IK)                                         :: err
    7663             :     end function
    7664             : #endif
    7665             : 
    7666             : #if RK2_ENABLED
    7667             :     module function QAGD_GK51_IF_RK2(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    7668             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    7669             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK51_IF_RK2
    7670             : #endif
    7671             :         use pm_kind, only: RKC => RK2
    7672             :         procedure(real(RKC))                                :: getFunc
    7673             :         type(ninf_type)     , intent(in)                    :: lb
    7674             :         real(RKC)           , intent(in)                    :: ub
    7675             :         real(RKC)           , intent(in)                    :: abstol
    7676             :         real(RKC)           , intent(in)                    :: reltol
    7677             :         type(GK51_type)     , intent(in)                    :: qrule
    7678             :         real(RKC)           , intent(out)                   :: integral, abserr
    7679             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    7680             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    7681             :         integer(IK)         , intent(out)                   :: neval
    7682             :         integer(IK)         , intent(out)                   :: nint
    7683             :         integer(IK)                                         :: err
    7684             :     end function
    7685             : #endif
    7686             : 
    7687             : #if RK1_ENABLED
    7688             :     module function QAGD_GK51_IF_RK1(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    7689             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    7690             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK51_IF_RK1
    7691             : #endif
    7692             :         use pm_kind, only: RKC => RK1
    7693             :         procedure(real(RKC))                                :: getFunc
    7694             :         type(ninf_type)     , intent(in)                    :: lb
    7695             :         real(RKC)           , intent(in)                    :: ub
    7696             :         real(RKC)           , intent(in)                    :: abstol
    7697             :         real(RKC)           , intent(in)                    :: reltol
    7698             :         type(GK51_type)     , intent(in)                    :: qrule
    7699             :         real(RKC)           , intent(out)                   :: integral, abserr
    7700             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    7701             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    7702             :         integer(IK)         , intent(out)                   :: neval
    7703             :         integer(IK)         , intent(out)                   :: nint
    7704             :         integer(IK)                                         :: err
    7705             :     end function
    7706             : #endif
    7707             : 
    7708             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7709             : 
    7710             : #if RK5_ENABLED
    7711             :     module function QAGD_GK51_II_RK5(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    7712             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    7713             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK51_II_RK5
    7714             : #endif
    7715             :         use pm_kind, only: RKC => RK5
    7716             :         procedure(real(RKC))                                :: getFunc
    7717             :         type(ninf_type)     , intent(in)                    :: lb
    7718             :         type(pinf_type)     , intent(in)                    :: ub
    7719             :         real(RKC)           , intent(in)                    :: abstol
    7720             :         real(RKC)           , intent(in)                    :: reltol
    7721             :         type(GK51_type)     , intent(in)                    :: qrule
    7722             :         real(RKC)           , intent(out)                   :: integral, abserr
    7723             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    7724             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    7725             :         integer(IK)         , intent(out)                   :: neval
    7726             :         integer(IK)         , intent(out)                   :: nint
    7727             :         integer(IK)                                         :: err
    7728             :     end function
    7729             : #endif
    7730             : 
    7731             : #if RK4_ENABLED
    7732             :     module function QAGD_GK51_II_RK4(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    7733             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    7734             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK51_II_RK4
    7735             : #endif
    7736             :         use pm_kind, only: RKC => RK4
    7737             :         procedure(real(RKC))                                :: getFunc
    7738             :         type(ninf_type)     , intent(in)                    :: lb
    7739             :         type(pinf_type)     , intent(in)                    :: ub
    7740             :         real(RKC)           , intent(in)                    :: abstol
    7741             :         real(RKC)           , intent(in)                    :: reltol
    7742             :         type(GK51_type)     , intent(in)                    :: qrule
    7743             :         real(RKC)           , intent(out)                   :: integral, abserr
    7744             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    7745             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    7746             :         integer(IK)         , intent(out)                   :: neval
    7747             :         integer(IK)         , intent(out)                   :: nint
    7748             :         integer(IK)                                         :: err
    7749             :     end function
    7750             : #endif
    7751             : 
    7752             : #if RK3_ENABLED
    7753             :     module function QAGD_GK51_II_RK3(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    7754             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    7755             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK51_II_RK3
    7756             : #endif
    7757             :         use pm_kind, only: RKC => RK3
    7758             :         procedure(real(RKC))                                :: getFunc
    7759             :         type(ninf_type)     , intent(in)                    :: lb
    7760             :         type(pinf_type)     , intent(in)                    :: ub
    7761             :         real(RKC)           , intent(in)                    :: abstol
    7762             :         real(RKC)           , intent(in)                    :: reltol
    7763             :         type(GK51_type)     , intent(in)                    :: qrule
    7764             :         real(RKC)           , intent(out)                   :: integral, abserr
    7765             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    7766             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    7767             :         integer(IK)         , intent(out)                   :: neval
    7768             :         integer(IK)         , intent(out)                   :: nint
    7769             :         integer(IK)                                         :: err
    7770             :     end function
    7771             : #endif
    7772             : 
    7773             : #if RK2_ENABLED
    7774             :     module function QAGD_GK51_II_RK2(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    7775             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    7776             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK51_II_RK2
    7777             : #endif
    7778             :         use pm_kind, only: RKC => RK2
    7779             :         procedure(real(RKC))                                :: getFunc
    7780             :         type(ninf_type)     , intent(in)                    :: lb
    7781             :         type(pinf_type)     , intent(in)                    :: ub
    7782             :         real(RKC)           , intent(in)                    :: abstol
    7783             :         real(RKC)           , intent(in)                    :: reltol
    7784             :         type(GK51_type)     , intent(in)                    :: qrule
    7785             :         real(RKC)           , intent(out)                   :: integral, abserr
    7786             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    7787             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    7788             :         integer(IK)         , intent(out)                   :: neval
    7789             :         integer(IK)         , intent(out)                   :: nint
    7790             :         integer(IK)                                         :: err
    7791             :     end function
    7792             : #endif
    7793             : 
    7794             : #if RK1_ENABLED
    7795             :     module function QAGD_GK51_II_RK1(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    7796             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    7797             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK51_II_RK1
    7798             : #endif
    7799             :         use pm_kind, only: RKC => RK1
    7800             :         procedure(real(RKC))                                :: getFunc
    7801             :         type(ninf_type)     , intent(in)                    :: lb
    7802             :         type(pinf_type)     , intent(in)                    :: ub
    7803             :         real(RKC)           , intent(in)                    :: abstol
    7804             :         real(RKC)           , intent(in)                    :: reltol
    7805             :         type(GK51_type)     , intent(in)                    :: qrule
    7806             :         real(RKC)           , intent(out)                   :: integral, abserr
    7807             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    7808             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    7809             :         integer(IK)         , intent(out)                   :: neval
    7810             :         integer(IK)         , intent(out)                   :: nint
    7811             :         integer(IK)                                         :: err
    7812             :     end function
    7813             : #endif
    7814             : 
    7815             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7816             : 
    7817             :     end interface
    7818             : 
    7819             :     ! QAGD_GK61
    7820             : 
    7821             :     interface getQuadErr
    7822             : 
    7823             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7824             : 
    7825             : #if RK5_ENABLED
    7826             :     module function QAGD_GK61_FF_RK5(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    7827             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    7828             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK61_FF_RK5
    7829             : #endif
    7830             :         use pm_kind, only: RKC => RK5
    7831             :         procedure(real(RKC))                                :: getFunc
    7832             :         real(RKC)           , intent(in)                    :: lb
    7833             :         real(RKC)           , intent(in)                    :: ub
    7834             :         real(RKC)           , intent(in)                    :: abstol
    7835             :         real(RKC)           , intent(in)                    :: reltol
    7836             :         type(GK61_type)     , intent(in)                    :: qrule
    7837             :         real(RKC)           , intent(out)                   :: integral, abserr
    7838             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    7839             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    7840             :         integer(IK)         , intent(out)                   :: neval
    7841             :         integer(IK)         , intent(out)                   :: nint
    7842             :         integer(IK)                                         :: err
    7843             :     end function
    7844             : #endif
    7845             : 
    7846             : #if RK4_ENABLED
    7847             :     module function QAGD_GK61_FF_RK4(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    7848             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    7849             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK61_FF_RK4
    7850             : #endif
    7851             :         use pm_kind, only: RKC => RK4
    7852             :         procedure(real(RKC))                                :: getFunc
    7853             :         real(RKC)           , intent(in)                    :: lb
    7854             :         real(RKC)           , intent(in)                    :: ub
    7855             :         real(RKC)           , intent(in)                    :: abstol
    7856             :         real(RKC)           , intent(in)                    :: reltol
    7857             :         type(GK61_type)     , intent(in)                    :: qrule
    7858             :         real(RKC)           , intent(out)                   :: integral, abserr
    7859             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    7860             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    7861             :         integer(IK)         , intent(out)                   :: neval
    7862             :         integer(IK)         , intent(out)                   :: nint
    7863             :         integer(IK)                                         :: err
    7864             :     end function
    7865             : #endif
    7866             : 
    7867             : #if RK3_ENABLED
    7868             :     module function QAGD_GK61_FF_RK3(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    7869             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    7870             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK61_FF_RK3
    7871             : #endif
    7872             :         use pm_kind, only: RKC => RK3
    7873             :         procedure(real(RKC))                                :: getFunc
    7874             :         real(RKC)           , intent(in)                    :: lb
    7875             :         real(RKC)           , intent(in)                    :: ub
    7876             :         real(RKC)           , intent(in)                    :: abstol
    7877             :         real(RKC)           , intent(in)                    :: reltol
    7878             :         type(GK61_type)     , intent(in)                    :: qrule
    7879             :         real(RKC)           , intent(out)                   :: integral, abserr
    7880             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    7881             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    7882             :         integer(IK)         , intent(out)                   :: neval
    7883             :         integer(IK)         , intent(out)                   :: nint
    7884             :         integer(IK)                                         :: err
    7885             :     end function
    7886             : #endif
    7887             : 
    7888             : #if RK2_ENABLED
    7889             :     module function QAGD_GK61_FF_RK2(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    7890             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    7891             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK61_FF_RK2
    7892             : #endif
    7893             :         use pm_kind, only: RKC => RK2
    7894             :         procedure(real(RKC))                                :: getFunc
    7895             :         real(RKC)           , intent(in)                    :: lb
    7896             :         real(RKC)           , intent(in)                    :: ub
    7897             :         real(RKC)           , intent(in)                    :: abstol
    7898             :         real(RKC)           , intent(in)                    :: reltol
    7899             :         type(GK61_type)     , intent(in)                    :: qrule
    7900             :         real(RKC)           , intent(out)                   :: integral, abserr
    7901             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    7902             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    7903             :         integer(IK)         , intent(out)                   :: neval
    7904             :         integer(IK)         , intent(out)                   :: nint
    7905             :         integer(IK)                                         :: err
    7906             :     end function
    7907             : #endif
    7908             : 
    7909             : #if RK1_ENABLED
    7910             :     module function QAGD_GK61_FF_RK1(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    7911             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    7912             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK61_FF_RK1
    7913             : #endif
    7914             :         use pm_kind, only: RKC => RK1
    7915             :         procedure(real(RKC))                                :: getFunc
    7916             :         real(RKC)           , intent(in)                    :: lb
    7917             :         real(RKC)           , intent(in)                    :: ub
    7918             :         real(RKC)           , intent(in)                    :: abstol
    7919             :         real(RKC)           , intent(in)                    :: reltol
    7920             :         type(GK61_type)     , intent(in)                    :: qrule
    7921             :         real(RKC)           , intent(out)                   :: integral, abserr
    7922             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    7923             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    7924             :         integer(IK)         , intent(out)                   :: neval
    7925             :         integer(IK)         , intent(out)                   :: nint
    7926             :         integer(IK)                                         :: err
    7927             :     end function
    7928             : #endif
    7929             : 
    7930             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    7931             : 
    7932             : #if RK5_ENABLED
    7933             :     module function QAGD_GK61_FI_RK5(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    7934             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    7935             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK61_FI_RK5
    7936             : #endif
    7937             :         use pm_kind, only: RKC => RK5
    7938             :         procedure(real(RKC))                                :: getFunc
    7939             :         real(RKC)           , intent(in)                    :: lb
    7940             :         type(pinf_type)     , intent(in)                    :: ub
    7941             :         real(RKC)           , intent(in)                    :: abstol
    7942             :         real(RKC)           , intent(in)                    :: reltol
    7943             :         type(GK61_type)     , intent(in)                    :: qrule
    7944             :         real(RKC)           , intent(out)                   :: integral, abserr
    7945             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    7946             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    7947             :         integer(IK)         , intent(out)                   :: neval
    7948             :         integer(IK)         , intent(out)                   :: nint
    7949             :         integer(IK)                                         :: err
    7950             :     end function
    7951             : #endif
    7952             : 
    7953             : #if RK4_ENABLED
    7954             :     module function QAGD_GK61_FI_RK4(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    7955             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    7956             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK61_FI_RK4
    7957             : #endif
    7958             :         use pm_kind, only: RKC => RK4
    7959             :         procedure(real(RKC))                                :: getFunc
    7960             :         real(RKC)           , intent(in)                    :: lb
    7961             :         type(pinf_type)     , intent(in)                    :: ub
    7962             :         real(RKC)           , intent(in)                    :: abstol
    7963             :         real(RKC)           , intent(in)                    :: reltol
    7964             :         type(GK61_type)     , intent(in)                    :: qrule
    7965             :         real(RKC)           , intent(out)                   :: integral, abserr
    7966             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    7967             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    7968             :         integer(IK)         , intent(out)                   :: neval
    7969             :         integer(IK)         , intent(out)                   :: nint
    7970             :         integer(IK)                                         :: err
    7971             :     end function
    7972             : #endif
    7973             : 
    7974             : #if RK3_ENABLED
    7975             :     module function QAGD_GK61_FI_RK3(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    7976             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    7977             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK61_FI_RK3
    7978             : #endif
    7979             :         use pm_kind, only: RKC => RK3
    7980             :         procedure(real(RKC))                                :: getFunc
    7981             :         real(RKC)           , intent(in)                    :: lb
    7982             :         type(pinf_type)     , intent(in)                    :: ub
    7983             :         real(RKC)           , intent(in)                    :: abstol
    7984             :         real(RKC)           , intent(in)                    :: reltol
    7985             :         type(GK61_type)     , intent(in)                    :: qrule
    7986             :         real(RKC)           , intent(out)                   :: integral, abserr
    7987             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    7988             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    7989             :         integer(IK)         , intent(out)                   :: neval
    7990             :         integer(IK)         , intent(out)                   :: nint
    7991             :         integer(IK)                                         :: err
    7992             :     end function
    7993             : #endif
    7994             : 
    7995             : #if RK2_ENABLED
    7996             :     module function QAGD_GK61_FI_RK2(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    7997             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    7998             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK61_FI_RK2
    7999             : #endif
    8000             :         use pm_kind, only: RKC => RK2
    8001             :         procedure(real(RKC))                                :: getFunc
    8002             :         real(RKC)           , intent(in)                    :: lb
    8003             :         type(pinf_type)     , intent(in)                    :: ub
    8004             :         real(RKC)           , intent(in)                    :: abstol
    8005             :         real(RKC)           , intent(in)                    :: reltol
    8006             :         type(GK61_type)     , intent(in)                    :: qrule
    8007             :         real(RKC)           , intent(out)                   :: integral, abserr
    8008             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    8009             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    8010             :         integer(IK)         , intent(out)                   :: neval
    8011             :         integer(IK)         , intent(out)                   :: nint
    8012             :         integer(IK)                                         :: err
    8013             :     end function
    8014             : #endif
    8015             : 
    8016             : #if RK1_ENABLED
    8017             :     module function QAGD_GK61_FI_RK1(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    8018             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    8019             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK61_FI_RK1
    8020             : #endif
    8021             :         use pm_kind, only: RKC => RK1
    8022             :         procedure(real(RKC))                                :: getFunc
    8023             :         real(RKC)           , intent(in)                    :: lb
    8024             :         type(pinf_type)     , intent(in)                    :: ub
    8025             :         real(RKC)           , intent(in)                    :: abstol
    8026             :         real(RKC)           , intent(in)                    :: reltol
    8027             :         type(GK61_type)     , intent(in)                    :: qrule
    8028             :         real(RKC)           , intent(out)                   :: integral, abserr
    8029             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    8030             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    8031             :         integer(IK)         , intent(out)                   :: neval
    8032             :         integer(IK)         , intent(out)                   :: nint
    8033             :         integer(IK)                                         :: err
    8034             :     end function
    8035             : #endif
    8036             : 
    8037             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    8038             : 
    8039             : #if RK5_ENABLED
    8040             :     module function QAGD_GK61_IF_RK5(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    8041             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    8042             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK61_IF_RK5
    8043             : #endif
    8044             :         use pm_kind, only: RKC => RK5
    8045             :         procedure(real(RKC))                                :: getFunc
    8046             :         type(ninf_type)     , intent(in)                    :: lb
    8047             :         real(RKC)           , intent(in)                    :: ub
    8048             :         real(RKC)           , intent(in)                    :: abstol
    8049             :         real(RKC)           , intent(in)                    :: reltol
    8050             :         type(GK61_type)     , intent(in)                    :: qrule
    8051             :         real(RKC)           , intent(out)                   :: integral, abserr
    8052             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    8053             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    8054             :         integer(IK)         , intent(out)                   :: neval
    8055             :         integer(IK)         , intent(out)                   :: nint
    8056             :         integer(IK)                                         :: err
    8057             :     end function
    8058             : #endif
    8059             : 
    8060             : #if RK4_ENABLED
    8061             :     module function QAGD_GK61_IF_RK4(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    8062             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    8063             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK61_IF_RK4
    8064             : #endif
    8065             :         use pm_kind, only: RKC => RK4
    8066             :         procedure(real(RKC))                                :: getFunc
    8067             :         type(ninf_type)     , intent(in)                    :: lb
    8068             :         real(RKC)           , intent(in)                    :: ub
    8069             :         real(RKC)           , intent(in)                    :: abstol
    8070             :         real(RKC)           , intent(in)                    :: reltol
    8071             :         type(GK61_type)     , intent(in)                    :: qrule
    8072             :         real(RKC)           , intent(out)                   :: integral, abserr
    8073             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    8074             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    8075             :         integer(IK)         , intent(out)                   :: neval
    8076             :         integer(IK)         , intent(out)                   :: nint
    8077             :         integer(IK)                                         :: err
    8078             :     end function
    8079             : #endif
    8080             : 
    8081             : #if RK3_ENABLED
    8082             :     module function QAGD_GK61_IF_RK3(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    8083             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    8084             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK61_IF_RK3
    8085             : #endif
    8086             :         use pm_kind, only: RKC => RK3
    8087             :         procedure(real(RKC))                                :: getFunc
    8088             :         type(ninf_type)     , intent(in)                    :: lb
    8089             :         real(RKC)           , intent(in)                    :: ub
    8090             :         real(RKC)           , intent(in)                    :: abstol
    8091             :         real(RKC)           , intent(in)                    :: reltol
    8092             :         type(GK61_type)     , intent(in)                    :: qrule
    8093             :         real(RKC)           , intent(out)                   :: integral, abserr
    8094             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    8095             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    8096             :         integer(IK)         , intent(out)                   :: neval
    8097             :         integer(IK)         , intent(out)                   :: nint
    8098             :         integer(IK)                                         :: err
    8099             :     end function
    8100             : #endif
    8101             : 
    8102             : #if RK2_ENABLED
    8103             :     module function QAGD_GK61_IF_RK2(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    8104             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    8105             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK61_IF_RK2
    8106             : #endif
    8107             :         use pm_kind, only: RKC => RK2
    8108             :         procedure(real(RKC))                                :: getFunc
    8109             :         type(ninf_type)     , intent(in)                    :: lb
    8110             :         real(RKC)           , intent(in)                    :: ub
    8111             :         real(RKC)           , intent(in)                    :: abstol
    8112             :         real(RKC)           , intent(in)                    :: reltol
    8113             :         type(GK61_type)     , intent(in)                    :: qrule
    8114             :         real(RKC)           , intent(out)                   :: integral, abserr
    8115             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    8116             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    8117             :         integer(IK)         , intent(out)                   :: neval
    8118             :         integer(IK)         , intent(out)                   :: nint
    8119             :         integer(IK)                                         :: err
    8120             :     end function
    8121             : #endif
    8122             : 
    8123             : #if RK1_ENABLED
    8124             :     module function QAGD_GK61_IF_RK1(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    8125             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    8126             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK61_IF_RK1
    8127             : #endif
    8128             :         use pm_kind, only: RKC => RK1
    8129             :         procedure(real(RKC))                                :: getFunc
    8130             :         type(ninf_type)     , intent(in)                    :: lb
    8131             :         real(RKC)           , intent(in)                    :: ub
    8132             :         real(RKC)           , intent(in)                    :: abstol
    8133             :         real(RKC)           , intent(in)                    :: reltol
    8134             :         type(GK61_type)     , intent(in)                    :: qrule
    8135             :         real(RKC)           , intent(out)                   :: integral, abserr
    8136             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    8137             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    8138             :         integer(IK)         , intent(out)                   :: neval
    8139             :         integer(IK)         , intent(out)                   :: nint
    8140             :         integer(IK)                                         :: err
    8141             :     end function
    8142             : #endif
    8143             : 
    8144             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    8145             : 
    8146             : #if RK5_ENABLED
    8147             :     module function QAGD_GK61_II_RK5(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    8148             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    8149             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK61_II_RK5
    8150             : #endif
    8151             :         use pm_kind, only: RKC => RK5
    8152             :         procedure(real(RKC))                                :: getFunc
    8153             :         type(ninf_type)     , intent(in)                    :: lb
    8154             :         type(pinf_type)     , intent(in)                    :: ub
    8155             :         real(RKC)           , intent(in)                    :: abstol
    8156             :         real(RKC)           , intent(in)                    :: reltol
    8157             :         type(GK61_type)     , intent(in)                    :: qrule
    8158             :         real(RKC)           , intent(out)                   :: integral, abserr
    8159             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    8160             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    8161             :         integer(IK)         , intent(out)                   :: neval
    8162             :         integer(IK)         , intent(out)                   :: nint
    8163             :         integer(IK)                                         :: err
    8164             :     end function
    8165             : #endif
    8166             : 
    8167             : #if RK4_ENABLED
    8168             :     module function QAGD_GK61_II_RK4(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    8169             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    8170             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK61_II_RK4
    8171             : #endif
    8172             :         use pm_kind, only: RKC => RK4
    8173             :         procedure(real(RKC))                                :: getFunc
    8174             :         type(ninf_type)     , intent(in)                    :: lb
    8175             :         type(pinf_type)     , intent(in)                    :: ub
    8176             :         real(RKC)           , intent(in)                    :: abstol
    8177             :         real(RKC)           , intent(in)                    :: reltol
    8178             :         type(GK61_type)     , intent(in)                    :: qrule
    8179             :         real(RKC)           , intent(out)                   :: integral, abserr
    8180             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    8181             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    8182             :         integer(IK)         , intent(out)                   :: neval
    8183             :         integer(IK)         , intent(out)                   :: nint
    8184             :         integer(IK)                                         :: err
    8185             :     end function
    8186             : #endif
    8187             : 
    8188             : #if RK3_ENABLED
    8189             :     module function QAGD_GK61_II_RK3(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    8190             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    8191             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK61_II_RK3
    8192             : #endif
    8193             :         use pm_kind, only: RKC => RK3
    8194             :         procedure(real(RKC))                                :: getFunc
    8195             :         type(ninf_type)     , intent(in)                    :: lb
    8196             :         type(pinf_type)     , intent(in)                    :: ub
    8197             :         real(RKC)           , intent(in)                    :: abstol
    8198             :         real(RKC)           , intent(in)                    :: reltol
    8199             :         type(GK61_type)     , intent(in)                    :: qrule
    8200             :         real(RKC)           , intent(out)                   :: integral, abserr
    8201             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    8202             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    8203             :         integer(IK)         , intent(out)                   :: neval
    8204             :         integer(IK)         , intent(out)                   :: nint
    8205             :         integer(IK)                                         :: err
    8206             :     end function
    8207             : #endif
    8208             : 
    8209             : #if RK2_ENABLED
    8210             :     module function QAGD_GK61_II_RK2(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    8211             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    8212             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK61_II_RK2
    8213             : #endif
    8214             :         use pm_kind, only: RKC => RK2
    8215             :         procedure(real(RKC))                                :: getFunc
    8216             :         type(ninf_type)     , intent(in)                    :: lb
    8217             :         type(pinf_type)     , intent(in)                    :: ub
    8218             :         real(RKC)           , intent(in)                    :: abstol
    8219             :         real(RKC)           , intent(in)                    :: reltol
    8220             :         type(GK61_type)     , intent(in)                    :: qrule
    8221             :         real(RKC)           , intent(out)                   :: integral, abserr
    8222             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    8223             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    8224             :         integer(IK)         , intent(out)                   :: neval
    8225             :         integer(IK)         , intent(out)                   :: nint
    8226             :         integer(IK)                                         :: err
    8227             :     end function
    8228             : #endif
    8229             : 
    8230             : #if RK1_ENABLED
    8231             :     module function QAGD_GK61_II_RK1(getFunc, lb, ub, abstol, reltol, qrule, integral, abserr, sinfo, sindex, neval, nint) result(err)
    8232             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    8233             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GK61_II_RK1
    8234             : #endif
    8235             :         use pm_kind, only: RKC => RK1
    8236             :         procedure(real(RKC))                                :: getFunc
    8237             :         type(ninf_type)     , intent(in)                    :: lb
    8238             :         type(pinf_type)     , intent(in)                    :: ub
    8239             :         real(RKC)           , intent(in)                    :: abstol
    8240             :         real(RKC)           , intent(in)                    :: reltol
    8241             :         type(GK61_type)     , intent(in)                    :: qrule
    8242             :         real(RKC)           , intent(out)                   :: integral, abserr
    8243             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    8244             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    8245             :         integer(IK)         , intent(out)                   :: neval
    8246             :         integer(IK)         , intent(out)                   :: nint
    8247             :         integer(IK)                                         :: err
    8248             :     end function
    8249             : #endif
    8250             : 
    8251             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    8252             : 
    8253             :     end interface
    8254             : 
    8255             :     ! QAGD_GKXX
    8256             : 
    8257             :     interface getQuadErr
    8258             : 
    8259             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    8260             : 
    8261             : #if RK5_ENABLED
    8262             :     module function QAGD_GKXX_FF_RK5(getFunc, lb, ub, abstol, reltol, nodeK, weightK, weightG, integral, abserr, sinfo, sindex, neval, nint) result(err)
    8263             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    8264             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GKXX_FF_RK5
    8265             : #endif
    8266             :         use pm_kind, only: RKC => RK5
    8267             :         procedure(real(RKC))                                :: getFunc
    8268             :         real(RKC)           , intent(in)                    :: lb
    8269             :         real(RKC)           , intent(in)                    :: ub
    8270             :         real(RKC)           , intent(in)                    :: abstol
    8271             :         real(RKC)           , intent(in)                    :: reltol
    8272             :         real(RKC)           , intent(in)    , contiguous    :: nodeK(:), weightK(:), weightG(:)
    8273             :         real(RKC)           , intent(out)                   :: integral, abserr
    8274             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    8275             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    8276             :         integer(IK)         , intent(out)                   :: neval
    8277             :         integer(IK)         , intent(out)                   :: nint
    8278             :         integer(IK)                                         :: err
    8279             :     end function
    8280             : #endif
    8281             : 
    8282             : #if RK4_ENABLED
    8283             :     module function QAGD_GKXX_FF_RK4(getFunc, lb, ub, abstol, reltol, nodeK, weightK, weightG, integral, abserr, sinfo, sindex, neval, nint) result(err)
    8284             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    8285             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GKXX_FF_RK4
    8286             : #endif
    8287             :         use pm_kind, only: RKC => RK4
    8288             :         procedure(real(RKC))                                :: getFunc
    8289             :         real(RKC)           , intent(in)                    :: lb
    8290             :         real(RKC)           , intent(in)                    :: ub
    8291             :         real(RKC)           , intent(in)                    :: abstol
    8292             :         real(RKC)           , intent(in)                    :: reltol
    8293             :         real(RKC)           , intent(in)    , contiguous    :: nodeK(:), weightK(:), weightG(:)
    8294             :         real(RKC)           , intent(out)                   :: integral, abserr
    8295             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    8296             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    8297             :         integer(IK)         , intent(out)                   :: neval
    8298             :         integer(IK)         , intent(out)                   :: nint
    8299             :         integer(IK)                                         :: err
    8300             :     end function
    8301             : #endif
    8302             : 
    8303             : #if RK3_ENABLED
    8304             :     module function QAGD_GKXX_FF_RK3(getFunc, lb, ub, abstol, reltol, nodeK, weightK, weightG, integral, abserr, sinfo, sindex, neval, nint) result(err)
    8305             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    8306             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GKXX_FF_RK3
    8307             : #endif
    8308             :         use pm_kind, only: RKC => RK3
    8309             :         procedure(real(RKC))                                :: getFunc
    8310             :         real(RKC)           , intent(in)                    :: lb
    8311             :         real(RKC)           , intent(in)                    :: ub
    8312             :         real(RKC)           , intent(in)                    :: abstol
    8313             :         real(RKC)           , intent(in)                    :: reltol
    8314             :         real(RKC)           , intent(in)    , contiguous    :: nodeK(:), weightK(:), weightG(:)
    8315             :         real(RKC)           , intent(out)                   :: integral, abserr
    8316             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    8317             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    8318             :         integer(IK)         , intent(out)                   :: neval
    8319             :         integer(IK)         , intent(out)                   :: nint
    8320             :         integer(IK)                                         :: err
    8321             :     end function
    8322             : #endif
    8323             : 
    8324             : #if RK2_ENABLED
    8325             :     module function QAGD_GKXX_FF_RK2(getFunc, lb, ub, abstol, reltol, nodeK, weightK, weightG, integral, abserr, sinfo, sindex, neval, nint) result(err)
    8326             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    8327             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GKXX_FF_RK2
    8328             : #endif
    8329             :         use pm_kind, only: RKC => RK2
    8330             :         procedure(real(RKC))                                :: getFunc
    8331             :         real(RKC)           , intent(in)                    :: lb
    8332             :         real(RKC)           , intent(in)                    :: ub
    8333             :         real(RKC)           , intent(in)                    :: abstol
    8334             :         real(RKC)           , intent(in)                    :: reltol
    8335             :         real(RKC)           , intent(in)    , contiguous    :: nodeK(:), weightK(:), weightG(:)
    8336             :         real(RKC)           , intent(out)                   :: integral, abserr
    8337             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    8338             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    8339             :         integer(IK)         , intent(out)                   :: neval
    8340             :         integer(IK)         , intent(out)                   :: nint
    8341             :         integer(IK)                                         :: err
    8342             :     end function
    8343             : #endif
    8344             : 
    8345             : #if RK1_ENABLED
    8346             :     module function QAGD_GKXX_FF_RK1(getFunc, lb, ub, abstol, reltol, nodeK, weightK, weightG, integral, abserr, sinfo, sindex, neval, nint) result(err)
    8347             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    8348             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GKXX_FF_RK1
    8349             : #endif
    8350             :         use pm_kind, only: RKC => RK1
    8351             :         procedure(real(RKC))                                :: getFunc
    8352             :         real(RKC)           , intent(in)                    :: lb
    8353             :         real(RKC)           , intent(in)                    :: ub
    8354             :         real(RKC)           , intent(in)                    :: abstol
    8355             :         real(RKC)           , intent(in)                    :: reltol
    8356             :         real(RKC)           , intent(in)    , contiguous    :: nodeK(:), weightK(:), weightG(:)
    8357             :         real(RKC)           , intent(out)                   :: integral, abserr
    8358             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    8359             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    8360             :         integer(IK)         , intent(out)                   :: neval
    8361             :         integer(IK)         , intent(out)                   :: nint
    8362             :         integer(IK)                                         :: err
    8363             :     end function
    8364             : #endif
    8365             : 
    8366             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    8367             : 
    8368             : #if RK5_ENABLED
    8369             :     module function QAGD_GKXX_FI_RK5(getFunc, lb, ub, abstol, reltol, nodeK, weightK, weightG, integral, abserr, sinfo, sindex, neval, nint) result(err)
    8370             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    8371             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GKXX_FI_RK5
    8372             : #endif
    8373             :         use pm_kind, only: RKC => RK5
    8374             :         procedure(real(RKC))                                :: getFunc
    8375             :         real(RKC)           , intent(in)                    :: lb
    8376             :         type(pinf_type)     , intent(in)                    :: ub
    8377             :         real(RKC)           , intent(in)                    :: abstol
    8378             :         real(RKC)           , intent(in)                    :: reltol
    8379             :         real(RKC)           , intent(in)    , contiguous    :: nodeK(:), weightK(:), weightG(:)
    8380             :         real(RKC)           , intent(out)                   :: integral, abserr
    8381             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    8382             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    8383             :         integer(IK)         , intent(out)                   :: neval
    8384             :         integer(IK)         , intent(out)                   :: nint
    8385             :         integer(IK)                                         :: err
    8386             :     end function
    8387             : #endif
    8388             : 
    8389             : #if RK4_ENABLED
    8390             :     module function QAGD_GKXX_FI_RK4(getFunc, lb, ub, abstol, reltol, nodeK, weightK, weightG, integral, abserr, sinfo, sindex, neval, nint) result(err)
    8391             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    8392             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GKXX_FI_RK4
    8393             : #endif
    8394             :         use pm_kind, only: RKC => RK4
    8395             :         procedure(real(RKC))                                :: getFunc
    8396             :         real(RKC)           , intent(in)                    :: lb
    8397             :         type(pinf_type)     , intent(in)                    :: ub
    8398             :         real(RKC)           , intent(in)                    :: abstol
    8399             :         real(RKC)           , intent(in)                    :: reltol
    8400             :         real(RKC)           , intent(in)    , contiguous    :: nodeK(:), weightK(:), weightG(:)
    8401             :         real(RKC)           , intent(out)                   :: integral, abserr
    8402             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    8403             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    8404             :         integer(IK)         , intent(out)                   :: neval
    8405             :         integer(IK)         , intent(out)                   :: nint
    8406             :         integer(IK)                                         :: err
    8407             :     end function
    8408             : #endif
    8409             : 
    8410             : #if RK3_ENABLED
    8411             :     module function QAGD_GKXX_FI_RK3(getFunc, lb, ub, abstol, reltol, nodeK, weightK, weightG, integral, abserr, sinfo, sindex, neval, nint) result(err)
    8412             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    8413             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GKXX_FI_RK3
    8414             : #endif
    8415             :         use pm_kind, only: RKC => RK3
    8416             :         procedure(real(RKC))                                :: getFunc
    8417             :         real(RKC)           , intent(in)                    :: lb
    8418             :         type(pinf_type)     , intent(in)                    :: ub
    8419             :         real(RKC)           , intent(in)                    :: abstol
    8420             :         real(RKC)           , intent(in)                    :: reltol
    8421             :         real(RKC)           , intent(in)    , contiguous    :: nodeK(:), weightK(:), weightG(:)
    8422             :         real(RKC)           , intent(out)                   :: integral, abserr
    8423             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    8424             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    8425             :         integer(IK)         , intent(out)                   :: neval
    8426             :         integer(IK)         , intent(out)                   :: nint
    8427             :         integer(IK)                                         :: err
    8428             :     end function
    8429             : #endif
    8430             : 
    8431             : #if RK2_ENABLED
    8432             :     module function QAGD_GKXX_FI_RK2(getFunc, lb, ub, abstol, reltol, nodeK, weightK, weightG, integral, abserr, sinfo, sindex, neval, nint) result(err)
    8433             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    8434             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GKXX_FI_RK2
    8435             : #endif
    8436             :         use pm_kind, only: RKC => RK2
    8437             :         procedure(real(RKC))                                :: getFunc
    8438             :         real(RKC)           , intent(in)                    :: lb
    8439             :         type(pinf_type)     , intent(in)                    :: ub
    8440             :         real(RKC)           , intent(in)                    :: abstol
    8441             :         real(RKC)           , intent(in)                    :: reltol
    8442             :         real(RKC)           , intent(in)    , contiguous    :: nodeK(:), weightK(:), weightG(:)
    8443             :         real(RKC)           , intent(out)                   :: integral, abserr
    8444             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    8445             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    8446             :         integer(IK)         , intent(out)                   :: neval
    8447             :         integer(IK)         , intent(out)                   :: nint
    8448             :         integer(IK)                                         :: err
    8449             :     end function
    8450             : #endif
    8451             : 
    8452             : #if RK1_ENABLED
    8453             :     module function QAGD_GKXX_FI_RK1(getFunc, lb, ub, abstol, reltol, nodeK, weightK, weightG, integral, abserr, sinfo, sindex, neval, nint) result(err)
    8454             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    8455             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GKXX_FI_RK1
    8456             : #endif
    8457             :         use pm_kind, only: RKC => RK1
    8458             :         procedure(real(RKC))                                :: getFunc
    8459             :         real(RKC)           , intent(in)                    :: lb
    8460             :         type(pinf_type)     , intent(in)                    :: ub
    8461             :         real(RKC)           , intent(in)                    :: abstol
    8462             :         real(RKC)           , intent(in)                    :: reltol
    8463             :         real(RKC)           , intent(in)    , contiguous    :: nodeK(:), weightK(:), weightG(:)
    8464             :         real(RKC)           , intent(out)                   :: integral, abserr
    8465             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    8466             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    8467             :         integer(IK)         , intent(out)                   :: neval
    8468             :         integer(IK)         , intent(out)                   :: nint
    8469             :         integer(IK)                                         :: err
    8470             :     end function
    8471             : #endif
    8472             : 
    8473             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    8474             : 
    8475             : #if RK5_ENABLED
    8476             :     module function QAGD_GKXX_IF_RK5(getFunc, lb, ub, abstol, reltol, nodeK, weightK, weightG, integral, abserr, sinfo, sindex, neval, nint) result(err)
    8477             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    8478             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GKXX_IF_RK5
    8479             : #endif
    8480             :         use pm_kind, only: RKC => RK5
    8481             :         procedure(real(RKC))                                :: getFunc
    8482             :         type(ninf_type)     , intent(in)                    :: lb
    8483             :         real(RKC)           , intent(in)                    :: ub
    8484             :         real(RKC)           , intent(in)                    :: abstol
    8485             :         real(RKC)           , intent(in)                    :: reltol
    8486             :         real(RKC)           , intent(in)    , contiguous    :: nodeK(:), weightK(:), weightG(:)
    8487             :         real(RKC)           , intent(out)                   :: integral, abserr
    8488             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    8489             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    8490             :         integer(IK)         , intent(out)                   :: neval
    8491             :         integer(IK)         , intent(out)                   :: nint
    8492             :         integer(IK)                                         :: err
    8493             :     end function
    8494             : #endif
    8495             : 
    8496             : #if RK4_ENABLED
    8497             :     module function QAGD_GKXX_IF_RK4(getFunc, lb, ub, abstol, reltol, nodeK, weightK, weightG, integral, abserr, sinfo, sindex, neval, nint) result(err)
    8498             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    8499             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GKXX_IF_RK4
    8500             : #endif
    8501             :         use pm_kind, only: RKC => RK4
    8502             :         procedure(real(RKC))                                :: getFunc
    8503             :         type(ninf_type)     , intent(in)                    :: lb
    8504             :         real(RKC)           , intent(in)                    :: ub
    8505             :         real(RKC)           , intent(in)                    :: abstol
    8506             :         real(RKC)           , intent(in)                    :: reltol
    8507             :         real(RKC)           , intent(in)    , contiguous    :: nodeK(:), weightK(:), weightG(:)
    8508             :         real(RKC)           , intent(out)                   :: integral, abserr
    8509             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    8510             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    8511             :         integer(IK)         , intent(out)                   :: neval
    8512             :         integer(IK)         , intent(out)                   :: nint
    8513             :         integer(IK)                                         :: err
    8514             :     end function
    8515             : #endif
    8516             : 
    8517             : #if RK3_ENABLED
    8518             :     module function QAGD_GKXX_IF_RK3(getFunc, lb, ub, abstol, reltol, nodeK, weightK, weightG, integral, abserr, sinfo, sindex, neval, nint) result(err)
    8519             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    8520             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GKXX_IF_RK3
    8521             : #endif
    8522             :         use pm_kind, only: RKC => RK3
    8523             :         procedure(real(RKC))                                :: getFunc
    8524             :         type(ninf_type)     , intent(in)                    :: lb
    8525             :         real(RKC)           , intent(in)                    :: ub
    8526             :         real(RKC)           , intent(in)                    :: abstol
    8527             :         real(RKC)           , intent(in)                    :: reltol
    8528             :         real(RKC)           , intent(in)    , contiguous    :: nodeK(:), weightK(:), weightG(:)
    8529             :         real(RKC)           , intent(out)                   :: integral, abserr
    8530             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    8531             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    8532             :         integer(IK)         , intent(out)                   :: neval
    8533             :         integer(IK)         , intent(out)                   :: nint
    8534             :         integer(IK)                                         :: err
    8535             :     end function
    8536             : #endif
    8537             : 
    8538             : #if RK2_ENABLED
    8539             :     module function QAGD_GKXX_IF_RK2(getFunc, lb, ub, abstol, reltol, nodeK, weightK, weightG, integral, abserr, sinfo, sindex, neval, nint) result(err)
    8540             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    8541             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GKXX_IF_RK2
    8542             : #endif
    8543             :         use pm_kind, only: RKC => RK2
    8544             :         procedure(real(RKC))                                :: getFunc
    8545             :         type(ninf_type)     , intent(in)                    :: lb
    8546             :         real(RKC)           , intent(in)                    :: ub
    8547             :         real(RKC)           , intent(in)                    :: abstol
    8548             :         real(RKC)           , intent(in)                    :: reltol
    8549             :         real(RKC)           , intent(in)    , contiguous    :: nodeK(:), weightK(:), weightG(:)
    8550             :         real(RKC)           , intent(out)                   :: integral, abserr
    8551             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    8552             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    8553             :         integer(IK)         , intent(out)                   :: neval
    8554             :         integer(IK)         , intent(out)                   :: nint
    8555             :         integer(IK)                                         :: err
    8556             :     end function
    8557             : #endif
    8558             : 
    8559             : #if RK1_ENABLED
    8560             :     module function QAGD_GKXX_IF_RK1(getFunc, lb, ub, abstol, reltol, nodeK, weightK, weightG, integral, abserr, sinfo, sindex, neval, nint) result(err)
    8561             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    8562             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GKXX_IF_RK1
    8563             : #endif
    8564             :         use pm_kind, only: RKC => RK1
    8565             :         procedure(real(RKC))                                :: getFunc
    8566             :         type(ninf_type)     , intent(in)                    :: lb
    8567             :         real(RKC)           , intent(in)                    :: ub
    8568             :         real(RKC)           , intent(in)                    :: abstol
    8569             :         real(RKC)           , intent(in)                    :: reltol
    8570             :         real(RKC)           , intent(in)    , contiguous    :: nodeK(:), weightK(:), weightG(:)
    8571             :         real(RKC)           , intent(out)                   :: integral, abserr
    8572             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    8573             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    8574             :         integer(IK)         , intent(out)                   :: neval
    8575             :         integer(IK)         , intent(out)                   :: nint
    8576             :         integer(IK)                                         :: err
    8577             :     end function
    8578             : #endif
    8579             : 
    8580             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    8581             : 
    8582             : #if RK5_ENABLED
    8583             :     module function QAGD_GKXX_II_RK5(getFunc, lb, ub, abstol, reltol, nodeK, weightK, weightG, integral, abserr, sinfo, sindex, neval, nint) result(err)
    8584             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    8585             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GKXX_II_RK5
    8586             : #endif
    8587             :         use pm_kind, only: RKC => RK5
    8588             :         procedure(real(RKC))                                :: getFunc
    8589             :         type(ninf_type)     , intent(in)                    :: lb
    8590             :         type(pinf_type)     , intent(in)                    :: ub
    8591             :         real(RKC)           , intent(in)                    :: abstol
    8592             :         real(RKC)           , intent(in)                    :: reltol
    8593             :         real(RKC)           , intent(in)    , contiguous    :: nodeK(:), weightK(:), weightG(:)
    8594             :         real(RKC)           , intent(out)                   :: integral, abserr
    8595             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    8596             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    8597             :         integer(IK)         , intent(out)                   :: neval
    8598             :         integer(IK)         , intent(out)                   :: nint
    8599             :         integer(IK)                                         :: err
    8600             :     end function
    8601             : #endif
    8602             : 
    8603             : #if RK4_ENABLED
    8604             :     module function QAGD_GKXX_II_RK4(getFunc, lb, ub, abstol, reltol, nodeK, weightK, weightG, integral, abserr, sinfo, sindex, neval, nint) result(err)
    8605             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    8606             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GKXX_II_RK4
    8607             : #endif
    8608             :         use pm_kind, only: RKC => RK4
    8609             :         procedure(real(RKC))                                :: getFunc
    8610             :         type(ninf_type)     , intent(in)                    :: lb
    8611             :         type(pinf_type)     , intent(in)                    :: ub
    8612             :         real(RKC)           , intent(in)                    :: abstol
    8613             :         real(RKC)           , intent(in)                    :: reltol
    8614             :         real(RKC)           , intent(in)    , contiguous    :: nodeK(:), weightK(:), weightG(:)
    8615             :         real(RKC)           , intent(out)                   :: integral, abserr
    8616             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    8617             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    8618             :         integer(IK)         , intent(out)                   :: neval
    8619             :         integer(IK)         , intent(out)                   :: nint
    8620             :         integer(IK)                                         :: err
    8621             :     end function
    8622             : #endif
    8623             : 
    8624             : #if RK3_ENABLED
    8625             :     module function QAGD_GKXX_II_RK3(getFunc, lb, ub, abstol, reltol, nodeK, weightK, weightG, integral, abserr, sinfo, sindex, neval, nint) result(err)
    8626             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    8627             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GKXX_II_RK3
    8628             : #endif
    8629             :         use pm_kind, only: RKC => RK3
    8630             :         procedure(real(RKC))                                :: getFunc
    8631             :         type(ninf_type)     , intent(in)                    :: lb
    8632             :         type(pinf_type)     , intent(in)                    :: ub
    8633             :         real(RKC)           , intent(in)                    :: abstol
    8634             :         real(RKC)           , intent(in)                    :: reltol
    8635             :         real(RKC)           , intent(in)    , contiguous    :: nodeK(:), weightK(:), weightG(:)
    8636             :         real(RKC)           , intent(out)                   :: integral, abserr
    8637             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    8638             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    8639             :         integer(IK)         , intent(out)                   :: neval
    8640             :         integer(IK)         , intent(out)                   :: nint
    8641             :         integer(IK)                                         :: err
    8642             :     end function
    8643             : #endif
    8644             : 
    8645             : #if RK2_ENABLED
    8646             :     module function QAGD_GKXX_II_RK2(getFunc, lb, ub, abstol, reltol, nodeK, weightK, weightG, integral, abserr, sinfo, sindex, neval, nint) result(err)
    8647             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    8648             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GKXX_II_RK2
    8649             : #endif
    8650             :         use pm_kind, only: RKC => RK2
    8651             :         procedure(real(RKC))                                :: getFunc
    8652             :         type(ninf_type)     , intent(in)                    :: lb
    8653             :         type(pinf_type)     , intent(in)                    :: ub
    8654             :         real(RKC)           , intent(in)                    :: abstol
    8655             :         real(RKC)           , intent(in)                    :: reltol
    8656             :         real(RKC)           , intent(in)    , contiguous    :: nodeK(:), weightK(:), weightG(:)
    8657             :         real(RKC)           , intent(out)                   :: integral, abserr
    8658             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    8659             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    8660             :         integer(IK)         , intent(out)                   :: neval
    8661             :         integer(IK)         , intent(out)                   :: nint
    8662             :         integer(IK)                                         :: err
    8663             :     end function
    8664             : #endif
    8665             : 
    8666             : #if RK1_ENABLED
    8667             :     module function QAGD_GKXX_II_RK1(getFunc, lb, ub, abstol, reltol, nodeK, weightK, weightG, integral, abserr, sinfo, sindex, neval, nint) result(err)
    8668             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    8669             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGD_GKXX_II_RK1
    8670             : #endif
    8671             :         use pm_kind, only: RKC => RK1
    8672             :         procedure(real(RKC))                                :: getFunc
    8673             :         type(ninf_type)     , intent(in)                    :: lb
    8674             :         type(pinf_type)     , intent(in)                    :: ub
    8675             :         real(RKC)           , intent(in)                    :: abstol
    8676             :         real(RKC)           , intent(in)                    :: reltol
    8677             :         real(RKC)           , intent(in)    , contiguous    :: nodeK(:), weightK(:), weightG(:)
    8678             :         real(RKC)           , intent(out)                   :: integral, abserr
    8679             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    8680             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    8681             :         integer(IK)         , intent(out)                   :: neval
    8682             :         integer(IK)         , intent(out)                   :: nint
    8683             :         integer(IK)                                         :: err
    8684             :     end function
    8685             : #endif
    8686             : 
    8687             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    8688             : 
    8689             :     end interface
    8690             : 
    8691             : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    8692             : 
    8693             :     ! QAGS_GK15
    8694             : 
    8695             :     interface getQuadErr
    8696             : 
    8697             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    8698             : 
    8699             : #if RK5_ENABLED
    8700             :     module function QAGS_GK15_FF_RK5(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
    8701             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    8702             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK15_FF_RK5
    8703             : #endif
    8704             :         use pm_kind, only: RKC => RK5
    8705             :         procedure(real(RKC))                                :: getFunc
    8706             :         real(RKC)           , intent(in)                    :: lb
    8707             :         real(RKC)           , intent(in)                    :: ub
    8708             :         real(RKC)           , intent(in)                    :: abstol
    8709             :         real(RKC)           , intent(in)                    :: reltol
    8710             :         type(GK15_type)     , intent(in)                    :: qrule
    8711             :         type(weps_type)     , intent(in)                    :: help
    8712             :         real(RKC)           , intent(out)                   :: integral, abserr
    8713             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    8714             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    8715             :         integer(IK)         , intent(out)                   :: neval
    8716             :         integer(IK)         , intent(out)                   :: nint
    8717             :         integer(IK)                                         :: err
    8718             :     end function
    8719             : #endif
    8720             : 
    8721             : #if RK4_ENABLED
    8722             :     module function QAGS_GK15_FF_RK4(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
    8723             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    8724             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK15_FF_RK4
    8725             : #endif
    8726             :         use pm_kind, only: RKC => RK4
    8727             :         procedure(real(RKC))                                :: getFunc
    8728             :         real(RKC)           , intent(in)                    :: lb
    8729             :         real(RKC)           , intent(in)                    :: ub
    8730             :         real(RKC)           , intent(in)                    :: abstol
    8731             :         real(RKC)           , intent(in)                    :: reltol
    8732             :         type(GK15_type)     , intent(in)                    :: qrule
    8733             :         type(weps_type)     , intent(in)                    :: help
    8734             :         real(RKC)           , intent(out)                   :: integral, abserr
    8735             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    8736             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    8737             :         integer(IK)         , intent(out)                   :: neval
    8738             :         integer(IK)         , intent(out)                   :: nint
    8739             :         integer(IK)                                         :: err
    8740             :     end function
    8741             : #endif
    8742             : 
    8743             : #if RK3_ENABLED
    8744             :     module function QAGS_GK15_FF_RK3(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
    8745             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    8746             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK15_FF_RK3
    8747             : #endif
    8748             :         use pm_kind, only: RKC => RK3
    8749             :         procedure(real(RKC))                                :: getFunc
    8750             :         real(RKC)           , intent(in)                    :: lb
    8751             :         real(RKC)           , intent(in)                    :: ub
    8752             :         real(RKC)           , intent(in)                    :: abstol
    8753             :         real(RKC)           , intent(in)                    :: reltol
    8754             :         type(GK15_type)     , intent(in)                    :: qrule
    8755             :         type(weps_type)     , intent(in)                    :: help
    8756             :         real(RKC)           , intent(out)                   :: integral, abserr
    8757             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    8758             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    8759             :         integer(IK)         , intent(out)                   :: neval
    8760             :         integer(IK)         , intent(out)                   :: nint
    8761             :         integer(IK)                                         :: err
    8762             :     end function
    8763             : #endif
    8764             : 
    8765             : #if RK2_ENABLED
    8766             :     module function QAGS_GK15_FF_RK2(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
    8767             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    8768             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK15_FF_RK2
    8769             : #endif
    8770             :         use pm_kind, only: RKC => RK2
    8771             :         procedure(real(RKC))                                :: getFunc
    8772             :         real(RKC)           , intent(in)                    :: lb
    8773             :         real(RKC)           , intent(in)                    :: ub
    8774             :         real(RKC)           , intent(in)                    :: abstol
    8775             :         real(RKC)           , intent(in)                    :: reltol
    8776             :         type(GK15_type)     , intent(in)                    :: qrule
    8777             :         type(weps_type)     , intent(in)                    :: help
    8778             :         real(RKC)           , intent(out)                   :: integral, abserr
    8779             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    8780             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    8781             :         integer(IK)         , intent(out)                   :: neval
    8782             :         integer(IK)         , intent(out)                   :: nint
    8783             :         integer(IK)                                         :: err
    8784             :     end function
    8785             : #endif
    8786             : 
    8787             : #if RK1_ENABLED
    8788             :     module function QAGS_GK15_FF_RK1(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
    8789             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    8790             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK15_FF_RK1
    8791             : #endif
    8792             :         use pm_kind, only: RKC => RK1
    8793             :         procedure(real(RKC))                                :: getFunc
    8794             :         real(RKC)           , intent(in)                    :: lb
    8795             :         real(RKC)           , intent(in)                    :: ub
    8796             :         real(RKC)           , intent(in)                    :: abstol
    8797             :         real(RKC)           , intent(in)                    :: reltol
    8798             :         type(GK15_type)     , intent(in)                    :: qrule
    8799             :         type(weps_type)     , intent(in)                    :: help
    8800             :         real(RKC)           , intent(out)                   :: integral, abserr
    8801             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    8802             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    8803             :         integer(IK)         , intent(out)                   :: neval
    8804             :         integer(IK)         , intent(out)                   :: nint
    8805             :         integer(IK)                                         :: err
    8806             :     end function
    8807             : #endif
    8808             : 
    8809             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    8810             : 
    8811             : #if RK5_ENABLED
    8812             :     module function QAGS_GK15_FI_RK5(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
    8813             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    8814             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK15_FI_RK5
    8815             : #endif
    8816             :         use pm_kind, only: RKC => RK5
    8817             :         procedure(real(RKC))                                :: getFunc
    8818             :         real(RKC)           , intent(in)                    :: lb
    8819             :         type(pinf_type)     , intent(in)                    :: ub
    8820             :         real(RKC)           , intent(in)                    :: abstol
    8821             :         real(RKC)           , intent(in)                    :: reltol
    8822             :         type(GK15_type)     , intent(in)                    :: qrule
    8823             :         type(weps_type)     , intent(in)                    :: help
    8824             :         real(RKC)           , intent(out)                   :: integral, abserr
    8825             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    8826             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    8827             :         integer(IK)         , intent(out)                   :: neval
    8828             :         integer(IK)         , intent(out)                   :: nint
    8829             :         integer(IK)                                         :: err
    8830             :     end function
    8831             : #endif
    8832             : 
    8833             : #if RK4_ENABLED
    8834             :     module function QAGS_GK15_FI_RK4(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
    8835             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    8836             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK15_FI_RK4
    8837             : #endif
    8838             :         use pm_kind, only: RKC => RK4
    8839             :         procedure(real(RKC))                                :: getFunc
    8840             :         real(RKC)           , intent(in)                    :: lb
    8841             :         type(pinf_type)     , intent(in)                    :: ub
    8842             :         real(RKC)           , intent(in)                    :: abstol
    8843             :         real(RKC)           , intent(in)                    :: reltol
    8844             :         type(GK15_type)     , intent(in)                    :: qrule
    8845             :         type(weps_type)     , intent(in)                    :: help
    8846             :         real(RKC)           , intent(out)                   :: integral, abserr
    8847             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    8848             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    8849             :         integer(IK)         , intent(out)                   :: neval
    8850             :         integer(IK)         , intent(out)                   :: nint
    8851             :         integer(IK)                                         :: err
    8852             :     end function
    8853             : #endif
    8854             : 
    8855             : #if RK3_ENABLED
    8856             :     module function QAGS_GK15_FI_RK3(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
    8857             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    8858             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK15_FI_RK3
    8859             : #endif
    8860             :         use pm_kind, only: RKC => RK3
    8861             :         procedure(real(RKC))                                :: getFunc
    8862             :         real(RKC)           , intent(in)                    :: lb
    8863             :         type(pinf_type)     , intent(in)                    :: ub
    8864             :         real(RKC)           , intent(in)                    :: abstol
    8865             :         real(RKC)           , intent(in)                    :: reltol
    8866             :         type(GK15_type)     , intent(in)                    :: qrule
    8867             :         type(weps_type)     , intent(in)                    :: help
    8868             :         real(RKC)           , intent(out)                   :: integral, abserr
    8869             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    8870             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    8871             :         integer(IK)         , intent(out)                   :: neval
    8872             :         integer(IK)         , intent(out)                   :: nint
    8873             :         integer(IK)                                         :: err
    8874             :     end function
    8875             : #endif
    8876             : 
    8877             : #if RK2_ENABLED
    8878             :     module function QAGS_GK15_FI_RK2(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
    8879             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    8880             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK15_FI_RK2
    8881             : #endif
    8882             :         use pm_kind, only: RKC => RK2
    8883             :         procedure(real(RKC))                                :: getFunc
    8884             :         real(RKC)           , intent(in)                    :: lb
    8885             :         type(pinf_type)     , intent(in)                    :: ub
    8886             :         real(RKC)           , intent(in)                    :: abstol
    8887             :         real(RKC)           , intent(in)                    :: reltol
    8888             :         type(GK15_type)     , intent(in)                    :: qrule
    8889             :         type(weps_type)     , intent(in)                    :: help
    8890             :         real(RKC)           , intent(out)                   :: integral, abserr
    8891             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    8892             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    8893             :         integer(IK)         , intent(out)                   :: neval
    8894             :         integer(IK)         , intent(out)                   :: nint
    8895             :         integer(IK)                                         :: err
    8896             :     end function
    8897             : #endif
    8898             : 
    8899             : #if RK1_ENABLED
    8900             :     module function QAGS_GK15_FI_RK1(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
    8901             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    8902             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK15_FI_RK1
    8903             : #endif
    8904             :         use pm_kind, only: RKC => RK1
    8905             :         procedure(real(RKC))                                :: getFunc
    8906             :         real(RKC)           , intent(in)                    :: lb
    8907             :         type(pinf_type)     , intent(in)                    :: ub
    8908             :         real(RKC)           , intent(in)                    :: abstol
    8909             :         real(RKC)           , intent(in)                    :: reltol
    8910             :         type(GK15_type)     , intent(in)                    :: qrule
    8911             :         type(weps_type)     , intent(in)                    :: help
    8912             :         real(RKC)           , intent(out)                   :: integral, abserr
    8913             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    8914             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    8915             :         integer(IK)         , intent(out)                   :: neval
    8916             :         integer(IK)         , intent(out)                   :: nint
    8917             :         integer(IK)                                         :: err
    8918             :     end function
    8919             : #endif
    8920             : 
    8921             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    8922             : 
    8923             : #if RK5_ENABLED
    8924             :     module function QAGS_GK15_IF_RK5(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
    8925             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    8926             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK15_IF_RK5
    8927             : #endif
    8928             :         use pm_kind, only: RKC => RK5
    8929             :         procedure(real(RKC))                                :: getFunc
    8930             :         type(ninf_type)     , intent(in)                    :: lb
    8931             :         real(RKC)           , intent(in)                    :: ub
    8932             :         real(RKC)           , intent(in)                    :: abstol
    8933             :         real(RKC)           , intent(in)                    :: reltol
    8934             :         type(GK15_type)     , intent(in)                    :: qrule
    8935             :         type(weps_type)     , intent(in)                    :: help
    8936             :         real(RKC)           , intent(out)                   :: integral, abserr
    8937             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    8938             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    8939             :         integer(IK)         , intent(out)                   :: neval
    8940             :         integer(IK)         , intent(out)                   :: nint
    8941             :         integer(IK)                                         :: err
    8942             :     end function
    8943             : #endif
    8944             : 
    8945             : #if RK4_ENABLED
    8946             :     module function QAGS_GK15_IF_RK4(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
    8947             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    8948             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK15_IF_RK4
    8949             : #endif
    8950             :         use pm_kind, only: RKC => RK4
    8951             :         procedure(real(RKC))                                :: getFunc
    8952             :         type(ninf_type)     , intent(in)                    :: lb
    8953             :         real(RKC)           , intent(in)                    :: ub
    8954             :         real(RKC)           , intent(in)                    :: abstol
    8955             :         real(RKC)           , intent(in)                    :: reltol
    8956             :         type(GK15_type)     , intent(in)                    :: qrule
    8957             :         type(weps_type)     , intent(in)                    :: help
    8958             :         real(RKC)           , intent(out)                   :: integral, abserr
    8959             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    8960             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    8961             :         integer(IK)         , intent(out)                   :: neval
    8962             :         integer(IK)         , intent(out)                   :: nint
    8963             :         integer(IK)                                         :: err
    8964             :     end function
    8965             : #endif
    8966             : 
    8967             : #if RK3_ENABLED
    8968             :     module function QAGS_GK15_IF_RK3(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
    8969             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    8970             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK15_IF_RK3
    8971             : #endif
    8972             :         use pm_kind, only: RKC => RK3
    8973             :         procedure(real(RKC))                                :: getFunc
    8974             :         type(ninf_type)     , intent(in)                    :: lb
    8975             :         real(RKC)           , intent(in)                    :: ub
    8976             :         real(RKC)           , intent(in)                    :: abstol
    8977             :         real(RKC)           , intent(in)                    :: reltol
    8978             :         type(GK15_type)     , intent(in)                    :: qrule
    8979             :         type(weps_type)     , intent(in)                    :: help
    8980             :         real(RKC)           , intent(out)                   :: integral, abserr
    8981             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    8982             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    8983             :         integer(IK)         , intent(out)                   :: neval
    8984             :         integer(IK)         , intent(out)                   :: nint
    8985             :         integer(IK)                                         :: err
    8986             :     end function
    8987             : #endif
    8988             : 
    8989             : #if RK2_ENABLED
    8990             :     module function QAGS_GK15_IF_RK2(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
    8991             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    8992             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK15_IF_RK2
    8993             : #endif
    8994             :         use pm_kind, only: RKC => RK2
    8995             :         procedure(real(RKC))                                :: getFunc
    8996             :         type(ninf_type)     , intent(in)                    :: lb
    8997             :         real(RKC)           , intent(in)                    :: ub
    8998             :         real(RKC)           , intent(in)                    :: abstol
    8999             :         real(RKC)           , intent(in)                    :: reltol
    9000             :         type(GK15_type)     , intent(in)                    :: qrule
    9001             :         type(weps_type)     , intent(in)                    :: help
    9002             :         real(RKC)           , intent(out)                   :: integral, abserr
    9003             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    9004             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    9005             :         integer(IK)         , intent(out)                   :: neval
    9006             :         integer(IK)         , intent(out)                   :: nint
    9007             :         integer(IK)                                         :: err
    9008             :     end function
    9009             : #endif
    9010             : 
    9011             : #if RK1_ENABLED
    9012             :     module function QAGS_GK15_IF_RK1(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
    9013             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    9014             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK15_IF_RK1
    9015             : #endif
    9016             :         use pm_kind, only: RKC => RK1
    9017             :         procedure(real(RKC))                                :: getFunc
    9018             :         type(ninf_type)     , intent(in)                    :: lb
    9019             :         real(RKC)           , intent(in)                    :: ub
    9020             :         real(RKC)           , intent(in)                    :: abstol
    9021             :         real(RKC)           , intent(in)                    :: reltol
    9022             :         type(GK15_type)     , intent(in)                    :: qrule
    9023             :         type(weps_type)     , intent(in)                    :: help
    9024             :         real(RKC)           , intent(out)                   :: integral, abserr
    9025             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    9026             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    9027             :         integer(IK)         , intent(out)                   :: neval
    9028             :         integer(IK)         , intent(out)                   :: nint
    9029             :         integer(IK)                                         :: err
    9030             :     end function
    9031             : #endif
    9032             : 
    9033             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    9034             : 
    9035             : #if RK5_ENABLED
    9036             :     module function QAGS_GK15_II_RK5(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
    9037             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    9038             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK15_II_RK5
    9039             : #endif
    9040             :         use pm_kind, only: RKC => RK5
    9041             :         procedure(real(RKC))                                :: getFunc
    9042             :         type(ninf_type)     , intent(in)                    :: lb
    9043             :         type(pinf_type)     , intent(in)                    :: ub
    9044             :         real(RKC)           , intent(in)                    :: abstol
    9045             :         real(RKC)           , intent(in)                    :: reltol
    9046             :         type(GK15_type)     , intent(in)                    :: qrule
    9047             :         type(weps_type)     , intent(in)                    :: help
    9048             :         real(RKC)           , intent(out)                   :: integral, abserr
    9049             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    9050             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    9051             :         integer(IK)         , intent(out)                   :: neval
    9052             :         integer(IK)         , intent(out)                   :: nint
    9053             :         integer(IK)                                         :: err
    9054             :     end function
    9055             : #endif
    9056             : 
    9057             : #if RK4_ENABLED
    9058             :     module function QAGS_GK15_II_RK4(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
    9059             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    9060             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK15_II_RK4
    9061             : #endif
    9062             :         use pm_kind, only: RKC => RK4
    9063             :         procedure(real(RKC))                                :: getFunc
    9064             :         type(ninf_type)     , intent(in)                    :: lb
    9065             :         type(pinf_type)     , intent(in)                    :: ub
    9066             :         real(RKC)           , intent(in)                    :: abstol
    9067             :         real(RKC)           , intent(in)                    :: reltol
    9068             :         type(GK15_type)     , intent(in)                    :: qrule
    9069             :         type(weps_type)     , intent(in)                    :: help
    9070             :         real(RKC)           , intent(out)                   :: integral, abserr
    9071             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    9072             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    9073             :         integer(IK)         , intent(out)                   :: neval
    9074             :         integer(IK)         , intent(out)                   :: nint
    9075             :         integer(IK)                                         :: err
    9076             :     end function
    9077             : #endif
    9078             : 
    9079             : #if RK3_ENABLED
    9080             :     module function QAGS_GK15_II_RK3(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
    9081             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    9082             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK15_II_RK3
    9083             : #endif
    9084             :         use pm_kind, only: RKC => RK3
    9085             :         procedure(real(RKC))                                :: getFunc
    9086             :         type(ninf_type)     , intent(in)                    :: lb
    9087             :         type(pinf_type)     , intent(in)                    :: ub
    9088             :         real(RKC)           , intent(in)                    :: abstol
    9089             :         real(RKC)           , intent(in)                    :: reltol
    9090             :         type(GK15_type)     , intent(in)                    :: qrule
    9091             :         type(weps_type)     , intent(in)                    :: help
    9092             :         real(RKC)           , intent(out)                   :: integral, abserr
    9093             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    9094             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    9095             :         integer(IK)         , intent(out)                   :: neval
    9096             :         integer(IK)         , intent(out)                   :: nint
    9097             :         integer(IK)                                         :: err
    9098             :     end function
    9099             : #endif
    9100             : 
    9101             : #if RK2_ENABLED
    9102             :     module function QAGS_GK15_II_RK2(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
    9103             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    9104             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK15_II_RK2
    9105             : #endif
    9106             :         use pm_kind, only: RKC => RK2
    9107             :         procedure(real(RKC))                                :: getFunc
    9108             :         type(ninf_type)     , intent(in)                    :: lb
    9109             :         type(pinf_type)     , intent(in)                    :: ub
    9110             :         real(RKC)           , intent(in)                    :: abstol
    9111             :         real(RKC)           , intent(in)                    :: reltol
    9112             :         type(GK15_type)     , intent(in)                    :: qrule
    9113             :         type(weps_type)     , intent(in)                    :: help
    9114             :         real(RKC)           , intent(out)                   :: integral, abserr
    9115             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    9116             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    9117             :         integer(IK)         , intent(out)                   :: neval
    9118             :         integer(IK)         , intent(out)                   :: nint
    9119             :         integer(IK)                                         :: err
    9120             :     end function
    9121             : #endif
    9122             : 
    9123             : #if RK1_ENABLED
    9124             :     module function QAGS_GK15_II_RK1(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
    9125             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    9126             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK15_II_RK1
    9127             : #endif
    9128             :         use pm_kind, only: RKC => RK1
    9129             :         procedure(real(RKC))                                :: getFunc
    9130             :         type(ninf_type)     , intent(in)                    :: lb
    9131             :         type(pinf_type)     , intent(in)                    :: ub
    9132             :         real(RKC)           , intent(in)                    :: abstol
    9133             :         real(RKC)           , intent(in)                    :: reltol
    9134             :         type(GK15_type)     , intent(in)                    :: qrule
    9135             :         type(weps_type)     , intent(in)                    :: help
    9136             :         real(RKC)           , intent(out)                   :: integral, abserr
    9137             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    9138             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    9139             :         integer(IK)         , intent(out)                   :: neval
    9140             :         integer(IK)         , intent(out)                   :: nint
    9141             :         integer(IK)                                         :: err
    9142             :     end function
    9143             : #endif
    9144             : 
    9145             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    9146             : 
    9147             :     end interface
    9148             : 
    9149             :     ! QAGS_GK21
    9150             : 
    9151             :     interface getQuadErr
    9152             : 
    9153             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    9154             : 
    9155             : #if RK5_ENABLED
    9156             :     module function QAGS_GK21_FF_RK5(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
    9157             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    9158             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK21_FF_RK5
    9159             : #endif
    9160             :         use pm_kind, only: RKC => RK5
    9161             :         procedure(real(RKC))                                :: getFunc
    9162             :         real(RKC)           , intent(in)                    :: lb
    9163             :         real(RKC)           , intent(in)                    :: ub
    9164             :         real(RKC)           , intent(in)                    :: abstol
    9165             :         real(RKC)           , intent(in)                    :: reltol
    9166             :         type(GK21_type)     , intent(in)                    :: qrule
    9167             :         type(weps_type)     , intent(in)                    :: help
    9168             :         real(RKC)           , intent(out)                   :: integral, abserr
    9169             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    9170             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    9171             :         integer(IK)         , intent(out)                   :: neval
    9172             :         integer(IK)         , intent(out)                   :: nint
    9173             :         integer(IK)                                         :: err
    9174             :     end function
    9175             : #endif
    9176             : 
    9177             : #if RK4_ENABLED
    9178             :     module function QAGS_GK21_FF_RK4(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
    9179             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    9180             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK21_FF_RK4
    9181             : #endif
    9182             :         use pm_kind, only: RKC => RK4
    9183             :         procedure(real(RKC))                                :: getFunc
    9184             :         real(RKC)           , intent(in)                    :: lb
    9185             :         real(RKC)           , intent(in)                    :: ub
    9186             :         real(RKC)           , intent(in)                    :: abstol
    9187             :         real(RKC)           , intent(in)                    :: reltol
    9188             :         type(GK21_type)     , intent(in)                    :: qrule
    9189             :         type(weps_type)     , intent(in)                    :: help
    9190             :         real(RKC)           , intent(out)                   :: integral, abserr
    9191             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    9192             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    9193             :         integer(IK)         , intent(out)                   :: neval
    9194             :         integer(IK)         , intent(out)                   :: nint
    9195             :         integer(IK)                                         :: err
    9196             :     end function
    9197             : #endif
    9198             : 
    9199             : #if RK3_ENABLED
    9200             :     module function QAGS_GK21_FF_RK3(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
    9201             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    9202             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK21_FF_RK3
    9203             : #endif
    9204             :         use pm_kind, only: RKC => RK3
    9205             :         procedure(real(RKC))                                :: getFunc
    9206             :         real(RKC)           , intent(in)                    :: lb
    9207             :         real(RKC)           , intent(in)                    :: ub
    9208             :         real(RKC)           , intent(in)                    :: abstol
    9209             :         real(RKC)           , intent(in)                    :: reltol
    9210             :         type(GK21_type)     , intent(in)                    :: qrule
    9211             :         type(weps_type)     , intent(in)                    :: help
    9212             :         real(RKC)           , intent(out)                   :: integral, abserr
    9213             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    9214             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    9215             :         integer(IK)         , intent(out)                   :: neval
    9216             :         integer(IK)         , intent(out)                   :: nint
    9217             :         integer(IK)                                         :: err
    9218             :     end function
    9219             : #endif
    9220             : 
    9221             : #if RK2_ENABLED
    9222             :     module function QAGS_GK21_FF_RK2(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
    9223             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    9224             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK21_FF_RK2
    9225             : #endif
    9226             :         use pm_kind, only: RKC => RK2
    9227             :         procedure(real(RKC))                                :: getFunc
    9228             :         real(RKC)           , intent(in)                    :: lb
    9229             :         real(RKC)           , intent(in)                    :: ub
    9230             :         real(RKC)           , intent(in)                    :: abstol
    9231             :         real(RKC)           , intent(in)                    :: reltol
    9232             :         type(GK21_type)     , intent(in)                    :: qrule
    9233             :         type(weps_type)     , intent(in)                    :: help
    9234             :         real(RKC)           , intent(out)                   :: integral, abserr
    9235             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    9236             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    9237             :         integer(IK)         , intent(out)                   :: neval
    9238             :         integer(IK)         , intent(out)                   :: nint
    9239             :         integer(IK)                                         :: err
    9240             :     end function
    9241             : #endif
    9242             : 
    9243             : #if RK1_ENABLED
    9244             :     module function QAGS_GK21_FF_RK1(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
    9245             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    9246             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK21_FF_RK1
    9247             : #endif
    9248             :         use pm_kind, only: RKC => RK1
    9249             :         procedure(real(RKC))                                :: getFunc
    9250             :         real(RKC)           , intent(in)                    :: lb
    9251             :         real(RKC)           , intent(in)                    :: ub
    9252             :         real(RKC)           , intent(in)                    :: abstol
    9253             :         real(RKC)           , intent(in)                    :: reltol
    9254             :         type(GK21_type)     , intent(in)                    :: qrule
    9255             :         type(weps_type)     , intent(in)                    :: help
    9256             :         real(RKC)           , intent(out)                   :: integral, abserr
    9257             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    9258             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    9259             :         integer(IK)         , intent(out)                   :: neval
    9260             :         integer(IK)         , intent(out)                   :: nint
    9261             :         integer(IK)                                         :: err
    9262             :     end function
    9263             : #endif
    9264             : 
    9265             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    9266             : 
    9267             : #if RK5_ENABLED
    9268             :     module function QAGS_GK21_FI_RK5(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
    9269             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    9270             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK21_FI_RK5
    9271             : #endif
    9272             :         use pm_kind, only: RKC => RK5
    9273             :         procedure(real(RKC))                                :: getFunc
    9274             :         real(RKC)           , intent(in)                    :: lb
    9275             :         type(pinf_type)     , intent(in)                    :: ub
    9276             :         real(RKC)           , intent(in)                    :: abstol
    9277             :         real(RKC)           , intent(in)                    :: reltol
    9278             :         type(GK21_type)     , intent(in)                    :: qrule
    9279             :         type(weps_type)     , intent(in)                    :: help
    9280             :         real(RKC)           , intent(out)                   :: integral, abserr
    9281             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    9282             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    9283             :         integer(IK)         , intent(out)                   :: neval
    9284             :         integer(IK)         , intent(out)                   :: nint
    9285             :         integer(IK)                                         :: err
    9286             :     end function
    9287             : #endif
    9288             : 
    9289             : #if RK4_ENABLED
    9290             :     module function QAGS_GK21_FI_RK4(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
    9291             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    9292             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK21_FI_RK4
    9293             : #endif
    9294             :         use pm_kind, only: RKC => RK4
    9295             :         procedure(real(RKC))                                :: getFunc
    9296             :         real(RKC)           , intent(in)                    :: lb
    9297             :         type(pinf_type)     , intent(in)                    :: ub
    9298             :         real(RKC)           , intent(in)                    :: abstol
    9299             :         real(RKC)           , intent(in)                    :: reltol
    9300             :         type(GK21_type)     , intent(in)                    :: qrule
    9301             :         type(weps_type)     , intent(in)                    :: help
    9302             :         real(RKC)           , intent(out)                   :: integral, abserr
    9303             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    9304             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    9305             :         integer(IK)         , intent(out)                   :: neval
    9306             :         integer(IK)         , intent(out)                   :: nint
    9307             :         integer(IK)                                         :: err
    9308             :     end function
    9309             : #endif
    9310             : 
    9311             : #if RK3_ENABLED
    9312             :     module function QAGS_GK21_FI_RK3(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
    9313             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    9314             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK21_FI_RK3
    9315             : #endif
    9316             :         use pm_kind, only: RKC => RK3
    9317             :         procedure(real(RKC))                                :: getFunc
    9318             :         real(RKC)           , intent(in)                    :: lb
    9319             :         type(pinf_type)     , intent(in)                    :: ub
    9320             :         real(RKC)           , intent(in)                    :: abstol
    9321             :         real(RKC)           , intent(in)                    :: reltol
    9322             :         type(GK21_type)     , intent(in)                    :: qrule
    9323             :         type(weps_type)     , intent(in)                    :: help
    9324             :         real(RKC)           , intent(out)                   :: integral, abserr
    9325             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    9326             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    9327             :         integer(IK)         , intent(out)                   :: neval
    9328             :         integer(IK)         , intent(out)                   :: nint
    9329             :         integer(IK)                                         :: err
    9330             :     end function
    9331             : #endif
    9332             : 
    9333             : #if RK2_ENABLED
    9334             :     module function QAGS_GK21_FI_RK2(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
    9335             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    9336             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK21_FI_RK2
    9337             : #endif
    9338             :         use pm_kind, only: RKC => RK2
    9339             :         procedure(real(RKC))                                :: getFunc
    9340             :         real(RKC)           , intent(in)                    :: lb
    9341             :         type(pinf_type)     , intent(in)                    :: ub
    9342             :         real(RKC)           , intent(in)                    :: abstol
    9343             :         real(RKC)           , intent(in)                    :: reltol
    9344             :         type(GK21_type)     , intent(in)                    :: qrule
    9345             :         type(weps_type)     , intent(in)                    :: help
    9346             :         real(RKC)           , intent(out)                   :: integral, abserr
    9347             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    9348             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    9349             :         integer(IK)         , intent(out)                   :: neval
    9350             :         integer(IK)         , intent(out)                   :: nint
    9351             :         integer(IK)                                         :: err
    9352             :     end function
    9353             : #endif
    9354             : 
    9355             : #if RK1_ENABLED
    9356             :     module function QAGS_GK21_FI_RK1(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
    9357             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    9358             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK21_FI_RK1
    9359             : #endif
    9360             :         use pm_kind, only: RKC => RK1
    9361             :         procedure(real(RKC))                                :: getFunc
    9362             :         real(RKC)           , intent(in)                    :: lb
    9363             :         type(pinf_type)     , intent(in)                    :: ub
    9364             :         real(RKC)           , intent(in)                    :: abstol
    9365             :         real(RKC)           , intent(in)                    :: reltol
    9366             :         type(GK21_type)     , intent(in)                    :: qrule
    9367             :         type(weps_type)     , intent(in)                    :: help
    9368             :         real(RKC)           , intent(out)                   :: integral, abserr
    9369             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    9370             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    9371             :         integer(IK)         , intent(out)                   :: neval
    9372             :         integer(IK)         , intent(out)                   :: nint
    9373             :         integer(IK)                                         :: err
    9374             :     end function
    9375             : #endif
    9376             : 
    9377             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    9378             : 
    9379             : #if RK5_ENABLED
    9380             :     module function QAGS_GK21_IF_RK5(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
    9381             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    9382             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK21_IF_RK5
    9383             : #endif
    9384             :         use pm_kind, only: RKC => RK5
    9385             :         procedure(real(RKC))                                :: getFunc
    9386             :         type(ninf_type)     , intent(in)                    :: lb
    9387             :         real(RKC)           , intent(in)                    :: ub
    9388             :         real(RKC)           , intent(in)                    :: abstol
    9389             :         real(RKC)           , intent(in)                    :: reltol
    9390             :         type(GK21_type)     , intent(in)                    :: qrule
    9391             :         type(weps_type)     , intent(in)                    :: help
    9392             :         real(RKC)           , intent(out)                   :: integral, abserr
    9393             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    9394             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    9395             :         integer(IK)         , intent(out)                   :: neval
    9396             :         integer(IK)         , intent(out)                   :: nint
    9397             :         integer(IK)                                         :: err
    9398             :     end function
    9399             : #endif
    9400             : 
    9401             : #if RK4_ENABLED
    9402             :     module function QAGS_GK21_IF_RK4(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
    9403             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    9404             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK21_IF_RK4
    9405             : #endif
    9406             :         use pm_kind, only: RKC => RK4
    9407             :         procedure(real(RKC))                                :: getFunc
    9408             :         type(ninf_type)     , intent(in)                    :: lb
    9409             :         real(RKC)           , intent(in)                    :: ub
    9410             :         real(RKC)           , intent(in)                    :: abstol
    9411             :         real(RKC)           , intent(in)                    :: reltol
    9412             :         type(GK21_type)     , intent(in)                    :: qrule
    9413             :         type(weps_type)     , intent(in)                    :: help
    9414             :         real(RKC)           , intent(out)                   :: integral, abserr
    9415             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    9416             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    9417             :         integer(IK)         , intent(out)                   :: neval
    9418             :         integer(IK)         , intent(out)                   :: nint
    9419             :         integer(IK)                                         :: err
    9420             :     end function
    9421             : #endif
    9422             : 
    9423             : #if RK3_ENABLED
    9424             :     module function QAGS_GK21_IF_RK3(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
    9425             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    9426             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK21_IF_RK3
    9427             : #endif
    9428             :         use pm_kind, only: RKC => RK3
    9429             :         procedure(real(RKC))                                :: getFunc
    9430             :         type(ninf_type)     , intent(in)                    :: lb
    9431             :         real(RKC)           , intent(in)                    :: ub
    9432             :         real(RKC)           , intent(in)                    :: abstol
    9433             :         real(RKC)           , intent(in)                    :: reltol
    9434             :         type(GK21_type)     , intent(in)                    :: qrule
    9435             :         type(weps_type)     , intent(in)                    :: help
    9436             :         real(RKC)           , intent(out)                   :: integral, abserr
    9437             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    9438             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    9439             :         integer(IK)         , intent(out)                   :: neval
    9440             :         integer(IK)         , intent(out)                   :: nint
    9441             :         integer(IK)                                         :: err
    9442             :     end function
    9443             : #endif
    9444             : 
    9445             : #if RK2_ENABLED
    9446             :     module function QAGS_GK21_IF_RK2(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
    9447             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    9448             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK21_IF_RK2
    9449             : #endif
    9450             :         use pm_kind, only: RKC => RK2
    9451             :         procedure(real(RKC))                                :: getFunc
    9452             :         type(ninf_type)     , intent(in)                    :: lb
    9453             :         real(RKC)           , intent(in)                    :: ub
    9454             :         real(RKC)           , intent(in)                    :: abstol
    9455             :         real(RKC)           , intent(in)                    :: reltol
    9456             :         type(GK21_type)     , intent(in)                    :: qrule
    9457             :         type(weps_type)     , intent(in)                    :: help
    9458             :         real(RKC)           , intent(out)                   :: integral, abserr
    9459             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    9460             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    9461             :         integer(IK)         , intent(out)                   :: neval
    9462             :         integer(IK)         , intent(out)                   :: nint
    9463             :         integer(IK)                                         :: err
    9464             :     end function
    9465             : #endif
    9466             : 
    9467             : #if RK1_ENABLED
    9468             :     module function QAGS_GK21_IF_RK1(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
    9469             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    9470             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK21_IF_RK1
    9471             : #endif
    9472             :         use pm_kind, only: RKC => RK1
    9473             :         procedure(real(RKC))                                :: getFunc
    9474             :         type(ninf_type)     , intent(in)                    :: lb
    9475             :         real(RKC)           , intent(in)                    :: ub
    9476             :         real(RKC)           , intent(in)                    :: abstol
    9477             :         real(RKC)           , intent(in)                    :: reltol
    9478             :         type(GK21_type)     , intent(in)                    :: qrule
    9479             :         type(weps_type)     , intent(in)                    :: help
    9480             :         real(RKC)           , intent(out)                   :: integral, abserr
    9481             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    9482             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    9483             :         integer(IK)         , intent(out)                   :: neval
    9484             :         integer(IK)         , intent(out)                   :: nint
    9485             :         integer(IK)                                         :: err
    9486             :     end function
    9487             : #endif
    9488             : 
    9489             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    9490             : 
    9491             : #if RK5_ENABLED
    9492             :     module function QAGS_GK21_II_RK5(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
    9493             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    9494             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK21_II_RK5
    9495             : #endif
    9496             :         use pm_kind, only: RKC => RK5
    9497             :         procedure(real(RKC))                                :: getFunc
    9498             :         type(ninf_type)     , intent(in)                    :: lb
    9499             :         type(pinf_type)     , intent(in)                    :: ub
    9500             :         real(RKC)           , intent(in)                    :: abstol
    9501             :         real(RKC)           , intent(in)                    :: reltol
    9502             :         type(GK21_type)     , intent(in)                    :: qrule
    9503             :         type(weps_type)     , intent(in)                    :: help
    9504             :         real(RKC)           , intent(out)                   :: integral, abserr
    9505             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    9506             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    9507             :         integer(IK)         , intent(out)                   :: neval
    9508             :         integer(IK)         , intent(out)                   :: nint
    9509             :         integer(IK)                                         :: err
    9510             :     end function
    9511             : #endif
    9512             : 
    9513             : #if RK4_ENABLED
    9514             :     module function QAGS_GK21_II_RK4(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
    9515             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    9516             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK21_II_RK4
    9517             : #endif
    9518             :         use pm_kind, only: RKC => RK4
    9519             :         procedure(real(RKC))                                :: getFunc
    9520             :         type(ninf_type)     , intent(in)                    :: lb
    9521             :         type(pinf_type)     , intent(in)                    :: ub
    9522             :         real(RKC)           , intent(in)                    :: abstol
    9523             :         real(RKC)           , intent(in)                    :: reltol
    9524             :         type(GK21_type)     , intent(in)                    :: qrule
    9525             :         type(weps_type)     , intent(in)                    :: help
    9526             :         real(RKC)           , intent(out)                   :: integral, abserr
    9527             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    9528             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    9529             :         integer(IK)         , intent(out)                   :: neval
    9530             :         integer(IK)         , intent(out)                   :: nint
    9531             :         integer(IK)                                         :: err
    9532             :     end function
    9533             : #endif
    9534             : 
    9535             : #if RK3_ENABLED
    9536             :     module function QAGS_GK21_II_RK3(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
    9537             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    9538             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK21_II_RK3
    9539             : #endif
    9540             :         use pm_kind, only: RKC => RK3
    9541             :         procedure(real(RKC))                                :: getFunc
    9542             :         type(ninf_type)     , intent(in)                    :: lb
    9543             :         type(pinf_type)     , intent(in)                    :: ub
    9544             :         real(RKC)           , intent(in)                    :: abstol
    9545             :         real(RKC)           , intent(in)                    :: reltol
    9546             :         type(GK21_type)     , intent(in)                    :: qrule
    9547             :         type(weps_type)     , intent(in)                    :: help
    9548             :         real(RKC)           , intent(out)                   :: integral, abserr
    9549             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    9550             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    9551             :         integer(IK)         , intent(out)                   :: neval
    9552             :         integer(IK)         , intent(out)                   :: nint
    9553             :         integer(IK)                                         :: err
    9554             :     end function
    9555             : #endif
    9556             : 
    9557             : #if RK2_ENABLED
    9558             :     module function QAGS_GK21_II_RK2(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
    9559             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    9560             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK21_II_RK2
    9561             : #endif
    9562             :         use pm_kind, only: RKC => RK2
    9563             :         procedure(real(RKC))                                :: getFunc
    9564             :         type(ninf_type)     , intent(in)                    :: lb
    9565             :         type(pinf_type)     , intent(in)                    :: ub
    9566             :         real(RKC)           , intent(in)                    :: abstol
    9567             :         real(RKC)           , intent(in)                    :: reltol
    9568             :         type(GK21_type)     , intent(in)                    :: qrule
    9569             :         type(weps_type)     , intent(in)                    :: help
    9570             :         real(RKC)           , intent(out)                   :: integral, abserr
    9571             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    9572             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    9573             :         integer(IK)         , intent(out)                   :: neval
    9574             :         integer(IK)         , intent(out)                   :: nint
    9575             :         integer(IK)                                         :: err
    9576             :     end function
    9577             : #endif
    9578             : 
    9579             : #if RK1_ENABLED
    9580             :     module function QAGS_GK21_II_RK1(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
    9581             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    9582             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK21_II_RK1
    9583             : #endif
    9584             :         use pm_kind, only: RKC => RK1
    9585             :         procedure(real(RKC))                                :: getFunc
    9586             :         type(ninf_type)     , intent(in)                    :: lb
    9587             :         type(pinf_type)     , intent(in)                    :: ub
    9588             :         real(RKC)           , intent(in)                    :: abstol
    9589             :         real(RKC)           , intent(in)                    :: reltol
    9590             :         type(GK21_type)     , intent(in)                    :: qrule
    9591             :         type(weps_type)     , intent(in)                    :: help
    9592             :         real(RKC)           , intent(out)                   :: integral, abserr
    9593             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    9594             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    9595             :         integer(IK)         , intent(out)                   :: neval
    9596             :         integer(IK)         , intent(out)                   :: nint
    9597             :         integer(IK)                                         :: err
    9598             :     end function
    9599             : #endif
    9600             : 
    9601             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    9602             : 
    9603             :     end interface
    9604             : 
    9605             :     ! QAGS_GK31
    9606             : 
    9607             :     interface getQuadErr
    9608             : 
    9609             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    9610             : 
    9611             : #if RK5_ENABLED
    9612             :     module function QAGS_GK31_FF_RK5(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
    9613             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    9614             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK31_FF_RK5
    9615             : #endif
    9616             :         use pm_kind, only: RKC => RK5
    9617             :         procedure(real(RKC))                                :: getFunc
    9618             :         real(RKC)           , intent(in)                    :: lb
    9619             :         real(RKC)           , intent(in)                    :: ub
    9620             :         real(RKC)           , intent(in)                    :: abstol
    9621             :         real(RKC)           , intent(in)                    :: reltol
    9622             :         type(GK31_type)     , intent(in)                    :: qrule
    9623             :         type(weps_type)     , intent(in)                    :: help
    9624             :         real(RKC)           , intent(out)                   :: integral, abserr
    9625             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    9626             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    9627             :         integer(IK)         , intent(out)                   :: neval
    9628             :         integer(IK)         , intent(out)                   :: nint
    9629             :         integer(IK)                                         :: err
    9630             :     end function
    9631             : #endif
    9632             : 
    9633             : #if RK4_ENABLED
    9634             :     module function QAGS_GK31_FF_RK4(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
    9635             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    9636             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK31_FF_RK4
    9637             : #endif
    9638             :         use pm_kind, only: RKC => RK4
    9639             :         procedure(real(RKC))                                :: getFunc
    9640             :         real(RKC)           , intent(in)                    :: lb
    9641             :         real(RKC)           , intent(in)                    :: ub
    9642             :         real(RKC)           , intent(in)                    :: abstol
    9643             :         real(RKC)           , intent(in)                    :: reltol
    9644             :         type(GK31_type)     , intent(in)                    :: qrule
    9645             :         type(weps_type)     , intent(in)                    :: help
    9646             :         real(RKC)           , intent(out)                   :: integral, abserr
    9647             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    9648             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    9649             :         integer(IK)         , intent(out)                   :: neval
    9650             :         integer(IK)         , intent(out)                   :: nint
    9651             :         integer(IK)                                         :: err
    9652             :     end function
    9653             : #endif
    9654             : 
    9655             : #if RK3_ENABLED
    9656             :     module function QAGS_GK31_FF_RK3(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
    9657             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    9658             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK31_FF_RK3
    9659             : #endif
    9660             :         use pm_kind, only: RKC => RK3
    9661             :         procedure(real(RKC))                                :: getFunc
    9662             :         real(RKC)           , intent(in)                    :: lb
    9663             :         real(RKC)           , intent(in)                    :: ub
    9664             :         real(RKC)           , intent(in)                    :: abstol
    9665             :         real(RKC)           , intent(in)                    :: reltol
    9666             :         type(GK31_type)     , intent(in)                    :: qrule
    9667             :         type(weps_type)     , intent(in)                    :: help
    9668             :         real(RKC)           , intent(out)                   :: integral, abserr
    9669             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    9670             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    9671             :         integer(IK)         , intent(out)                   :: neval
    9672             :         integer(IK)         , intent(out)                   :: nint
    9673             :         integer(IK)                                         :: err
    9674             :     end function
    9675             : #endif
    9676             : 
    9677             : #if RK2_ENABLED
    9678             :     module function QAGS_GK31_FF_RK2(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
    9679             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    9680             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK31_FF_RK2
    9681             : #endif
    9682             :         use pm_kind, only: RKC => RK2
    9683             :         procedure(real(RKC))                                :: getFunc
    9684             :         real(RKC)           , intent(in)                    :: lb
    9685             :         real(RKC)           , intent(in)                    :: ub
    9686             :         real(RKC)           , intent(in)                    :: abstol
    9687             :         real(RKC)           , intent(in)                    :: reltol
    9688             :         type(GK31_type)     , intent(in)                    :: qrule
    9689             :         type(weps_type)     , intent(in)                    :: help
    9690             :         real(RKC)           , intent(out)                   :: integral, abserr
    9691             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    9692             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    9693             :         integer(IK)         , intent(out)                   :: neval
    9694             :         integer(IK)         , intent(out)                   :: nint
    9695             :         integer(IK)                                         :: err
    9696             :     end function
    9697             : #endif
    9698             : 
    9699             : #if RK1_ENABLED
    9700             :     module function QAGS_GK31_FF_RK1(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
    9701             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    9702             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK31_FF_RK1
    9703             : #endif
    9704             :         use pm_kind, only: RKC => RK1
    9705             :         procedure(real(RKC))                                :: getFunc
    9706             :         real(RKC)           , intent(in)                    :: lb
    9707             :         real(RKC)           , intent(in)                    :: ub
    9708             :         real(RKC)           , intent(in)                    :: abstol
    9709             :         real(RKC)           , intent(in)                    :: reltol
    9710             :         type(GK31_type)     , intent(in)                    :: qrule
    9711             :         type(weps_type)     , intent(in)                    :: help
    9712             :         real(RKC)           , intent(out)                   :: integral, abserr
    9713             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    9714             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    9715             :         integer(IK)         , intent(out)                   :: neval
    9716             :         integer(IK)         , intent(out)                   :: nint
    9717             :         integer(IK)                                         :: err
    9718             :     end function
    9719             : #endif
    9720             : 
    9721             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    9722             : 
    9723             : #if RK5_ENABLED
    9724             :     module function QAGS_GK31_FI_RK5(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
    9725             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    9726             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK31_FI_RK5
    9727             : #endif
    9728             :         use pm_kind, only: RKC => RK5
    9729             :         procedure(real(RKC))                                :: getFunc
    9730             :         real(RKC)           , intent(in)                    :: lb
    9731             :         type(pinf_type)     , intent(in)                    :: ub
    9732             :         real(RKC)           , intent(in)                    :: abstol
    9733             :         real(RKC)           , intent(in)                    :: reltol
    9734             :         type(GK31_type)     , intent(in)                    :: qrule
    9735             :         type(weps_type)     , intent(in)                    :: help
    9736             :         real(RKC)           , intent(out)                   :: integral, abserr
    9737             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    9738             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    9739             :         integer(IK)         , intent(out)                   :: neval
    9740             :         integer(IK)         , intent(out)                   :: nint
    9741             :         integer(IK)                                         :: err
    9742             :     end function
    9743             : #endif
    9744             : 
    9745             : #if RK4_ENABLED
    9746             :     module function QAGS_GK31_FI_RK4(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
    9747             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    9748             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK31_FI_RK4
    9749             : #endif
    9750             :         use pm_kind, only: RKC => RK4
    9751             :         procedure(real(RKC))                                :: getFunc
    9752             :         real(RKC)           , intent(in)                    :: lb
    9753             :         type(pinf_type)     , intent(in)                    :: ub
    9754             :         real(RKC)           , intent(in)                    :: abstol
    9755             :         real(RKC)           , intent(in)                    :: reltol
    9756             :         type(GK31_type)     , intent(in)                    :: qrule
    9757             :         type(weps_type)     , intent(in)                    :: help
    9758             :         real(RKC)           , intent(out)                   :: integral, abserr
    9759             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    9760             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    9761             :         integer(IK)         , intent(out)                   :: neval
    9762             :         integer(IK)         , intent(out)                   :: nint
    9763             :         integer(IK)                                         :: err
    9764             :     end function
    9765             : #endif
    9766             : 
    9767             : #if RK3_ENABLED
    9768             :     module function QAGS_GK31_FI_RK3(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
    9769             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    9770             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK31_FI_RK3
    9771             : #endif
    9772             :         use pm_kind, only: RKC => RK3
    9773             :         procedure(real(RKC))                                :: getFunc
    9774             :         real(RKC)           , intent(in)                    :: lb
    9775             :         type(pinf_type)     , intent(in)                    :: ub
    9776             :         real(RKC)           , intent(in)                    :: abstol
    9777             :         real(RKC)           , intent(in)                    :: reltol
    9778             :         type(GK31_type)     , intent(in)                    :: qrule
    9779             :         type(weps_type)     , intent(in)                    :: help
    9780             :         real(RKC)           , intent(out)                   :: integral, abserr
    9781             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    9782             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    9783             :         integer(IK)         , intent(out)                   :: neval
    9784             :         integer(IK)         , intent(out)                   :: nint
    9785             :         integer(IK)                                         :: err
    9786             :     end function
    9787             : #endif
    9788             : 
    9789             : #if RK2_ENABLED
    9790             :     module function QAGS_GK31_FI_RK2(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
    9791             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    9792             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK31_FI_RK2
    9793             : #endif
    9794             :         use pm_kind, only: RKC => RK2
    9795             :         procedure(real(RKC))                                :: getFunc
    9796             :         real(RKC)           , intent(in)                    :: lb
    9797             :         type(pinf_type)     , intent(in)                    :: ub
    9798             :         real(RKC)           , intent(in)                    :: abstol
    9799             :         real(RKC)           , intent(in)                    :: reltol
    9800             :         type(GK31_type)     , intent(in)                    :: qrule
    9801             :         type(weps_type)     , intent(in)                    :: help
    9802             :         real(RKC)           , intent(out)                   :: integral, abserr
    9803             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    9804             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    9805             :         integer(IK)         , intent(out)                   :: neval
    9806             :         integer(IK)         , intent(out)                   :: nint
    9807             :         integer(IK)                                         :: err
    9808             :     end function
    9809             : #endif
    9810             : 
    9811             : #if RK1_ENABLED
    9812             :     module function QAGS_GK31_FI_RK1(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
    9813             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    9814             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK31_FI_RK1
    9815             : #endif
    9816             :         use pm_kind, only: RKC => RK1
    9817             :         procedure(real(RKC))                                :: getFunc
    9818             :         real(RKC)           , intent(in)                    :: lb
    9819             :         type(pinf_type)     , intent(in)                    :: ub
    9820             :         real(RKC)           , intent(in)                    :: abstol
    9821             :         real(RKC)           , intent(in)                    :: reltol
    9822             :         type(GK31_type)     , intent(in)                    :: qrule
    9823             :         type(weps_type)     , intent(in)                    :: help
    9824             :         real(RKC)           , intent(out)                   :: integral, abserr
    9825             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    9826             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    9827             :         integer(IK)         , intent(out)                   :: neval
    9828             :         integer(IK)         , intent(out)                   :: nint
    9829             :         integer(IK)                                         :: err
    9830             :     end function
    9831             : #endif
    9832             : 
    9833             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    9834             : 
    9835             : #if RK5_ENABLED
    9836             :     module function QAGS_GK31_IF_RK5(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
    9837             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    9838             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK31_IF_RK5
    9839             : #endif
    9840             :         use pm_kind, only: RKC => RK5
    9841             :         procedure(real(RKC))                                :: getFunc
    9842             :         type(ninf_type)     , intent(in)                    :: lb
    9843             :         real(RKC)           , intent(in)                    :: ub
    9844             :         real(RKC)           , intent(in)                    :: abstol
    9845             :         real(RKC)           , intent(in)                    :: reltol
    9846             :         type(GK31_type)     , intent(in)                    :: qrule
    9847             :         type(weps_type)     , intent(in)                    :: help
    9848             :         real(RKC)           , intent(out)                   :: integral, abserr
    9849             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    9850             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    9851             :         integer(IK)         , intent(out)                   :: neval
    9852             :         integer(IK)         , intent(out)                   :: nint
    9853             :         integer(IK)                                         :: err
    9854             :     end function
    9855             : #endif
    9856             : 
    9857             : #if RK4_ENABLED
    9858             :     module function QAGS_GK31_IF_RK4(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
    9859             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    9860             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK31_IF_RK4
    9861             : #endif
    9862             :         use pm_kind, only: RKC => RK4
    9863             :         procedure(real(RKC))                                :: getFunc
    9864             :         type(ninf_type)     , intent(in)                    :: lb
    9865             :         real(RKC)           , intent(in)                    :: ub
    9866             :         real(RKC)           , intent(in)                    :: abstol
    9867             :         real(RKC)           , intent(in)                    :: reltol
    9868             :         type(GK31_type)     , intent(in)                    :: qrule
    9869             :         type(weps_type)     , intent(in)                    :: help
    9870             :         real(RKC)           , intent(out)                   :: integral, abserr
    9871             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    9872             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    9873             :         integer(IK)         , intent(out)                   :: neval
    9874             :         integer(IK)         , intent(out)                   :: nint
    9875             :         integer(IK)                                         :: err
    9876             :     end function
    9877             : #endif
    9878             : 
    9879             : #if RK3_ENABLED
    9880             :     module function QAGS_GK31_IF_RK3(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
    9881             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    9882             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK31_IF_RK3
    9883             : #endif
    9884             :         use pm_kind, only: RKC => RK3
    9885             :         procedure(real(RKC))                                :: getFunc
    9886             :         type(ninf_type)     , intent(in)                    :: lb
    9887             :         real(RKC)           , intent(in)                    :: ub
    9888             :         real(RKC)           , intent(in)                    :: abstol
    9889             :         real(RKC)           , intent(in)                    :: reltol
    9890             :         type(GK31_type)     , intent(in)                    :: qrule
    9891             :         type(weps_type)     , intent(in)                    :: help
    9892             :         real(RKC)           , intent(out)                   :: integral, abserr
    9893             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    9894             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    9895             :         integer(IK)         , intent(out)                   :: neval
    9896             :         integer(IK)         , intent(out)                   :: nint
    9897             :         integer(IK)                                         :: err
    9898             :     end function
    9899             : #endif
    9900             : 
    9901             : #if RK2_ENABLED
    9902             :     module function QAGS_GK31_IF_RK2(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
    9903             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    9904             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK31_IF_RK2
    9905             : #endif
    9906             :         use pm_kind, only: RKC => RK2
    9907             :         procedure(real(RKC))                                :: getFunc
    9908             :         type(ninf_type)     , intent(in)                    :: lb
    9909             :         real(RKC)           , intent(in)                    :: ub
    9910             :         real(RKC)           , intent(in)                    :: abstol
    9911             :         real(RKC)           , intent(in)                    :: reltol
    9912             :         type(GK31_type)     , intent(in)                    :: qrule
    9913             :         type(weps_type)     , intent(in)                    :: help
    9914             :         real(RKC)           , intent(out)                   :: integral, abserr
    9915             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    9916             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    9917             :         integer(IK)         , intent(out)                   :: neval
    9918             :         integer(IK)         , intent(out)                   :: nint
    9919             :         integer(IK)                                         :: err
    9920             :     end function
    9921             : #endif
    9922             : 
    9923             : #if RK1_ENABLED
    9924             :     module function QAGS_GK31_IF_RK1(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
    9925             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    9926             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK31_IF_RK1
    9927             : #endif
    9928             :         use pm_kind, only: RKC => RK1
    9929             :         procedure(real(RKC))                                :: getFunc
    9930             :         type(ninf_type)     , intent(in)                    :: lb
    9931             :         real(RKC)           , intent(in)                    :: ub
    9932             :         real(RKC)           , intent(in)                    :: abstol
    9933             :         real(RKC)           , intent(in)                    :: reltol
    9934             :         type(GK31_type)     , intent(in)                    :: qrule
    9935             :         type(weps_type)     , intent(in)                    :: help
    9936             :         real(RKC)           , intent(out)                   :: integral, abserr
    9937             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    9938             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    9939             :         integer(IK)         , intent(out)                   :: neval
    9940             :         integer(IK)         , intent(out)                   :: nint
    9941             :         integer(IK)                                         :: err
    9942             :     end function
    9943             : #endif
    9944             : 
    9945             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    9946             : 
    9947             : #if RK5_ENABLED
    9948             :     module function QAGS_GK31_II_RK5(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
    9949             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    9950             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK31_II_RK5
    9951             : #endif
    9952             :         use pm_kind, only: RKC => RK5
    9953             :         procedure(real(RKC))                                :: getFunc
    9954             :         type(ninf_type)     , intent(in)                    :: lb
    9955             :         type(pinf_type)     , intent(in)                    :: ub
    9956             :         real(RKC)           , intent(in)                    :: abstol
    9957             :         real(RKC)           , intent(in)                    :: reltol
    9958             :         type(GK31_type)     , intent(in)                    :: qrule
    9959             :         type(weps_type)     , intent(in)                    :: help
    9960             :         real(RKC)           , intent(out)                   :: integral, abserr
    9961             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    9962             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    9963             :         integer(IK)         , intent(out)                   :: neval
    9964             :         integer(IK)         , intent(out)                   :: nint
    9965             :         integer(IK)                                         :: err
    9966             :     end function
    9967             : #endif
    9968             : 
    9969             : #if RK4_ENABLED
    9970             :     module function QAGS_GK31_II_RK4(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
    9971             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    9972             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK31_II_RK4
    9973             : #endif
    9974             :         use pm_kind, only: RKC => RK4
    9975             :         procedure(real(RKC))                                :: getFunc
    9976             :         type(ninf_type)     , intent(in)                    :: lb
    9977             :         type(pinf_type)     , intent(in)                    :: ub
    9978             :         real(RKC)           , intent(in)                    :: abstol
    9979             :         real(RKC)           , intent(in)                    :: reltol
    9980             :         type(GK31_type)     , intent(in)                    :: qrule
    9981             :         type(weps_type)     , intent(in)                    :: help
    9982             :         real(RKC)           , intent(out)                   :: integral, abserr
    9983             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
    9984             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
    9985             :         integer(IK)         , intent(out)                   :: neval
    9986             :         integer(IK)         , intent(out)                   :: nint
    9987             :         integer(IK)                                         :: err
    9988             :     end function
    9989             : #endif
    9990             : 
    9991             : #if RK3_ENABLED
    9992             :     module function QAGS_GK31_II_RK3(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
    9993             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
    9994             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK31_II_RK3
    9995             : #endif
    9996             :         use pm_kind, only: RKC => RK3
    9997             :         procedure(real(RKC))                                :: getFunc
    9998             :         type(ninf_type)     , intent(in)                    :: lb
    9999             :         type(pinf_type)     , intent(in)                    :: ub
   10000             :         real(RKC)           , intent(in)                    :: abstol
   10001             :         real(RKC)           , intent(in)                    :: reltol
   10002             :         type(GK31_type)     , intent(in)                    :: qrule
   10003             :         type(weps_type)     , intent(in)                    :: help
   10004             :         real(RKC)           , intent(out)                   :: integral, abserr
   10005             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   10006             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   10007             :         integer(IK)         , intent(out)                   :: neval
   10008             :         integer(IK)         , intent(out)                   :: nint
   10009             :         integer(IK)                                         :: err
   10010             :     end function
   10011             : #endif
   10012             : 
   10013             : #if RK2_ENABLED
   10014             :     module function QAGS_GK31_II_RK2(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   10015             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   10016             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK31_II_RK2
   10017             : #endif
   10018             :         use pm_kind, only: RKC => RK2
   10019             :         procedure(real(RKC))                                :: getFunc
   10020             :         type(ninf_type)     , intent(in)                    :: lb
   10021             :         type(pinf_type)     , intent(in)                    :: ub
   10022             :         real(RKC)           , intent(in)                    :: abstol
   10023             :         real(RKC)           , intent(in)                    :: reltol
   10024             :         type(GK31_type)     , intent(in)                    :: qrule
   10025             :         type(weps_type)     , intent(in)                    :: help
   10026             :         real(RKC)           , intent(out)                   :: integral, abserr
   10027             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   10028             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   10029             :         integer(IK)         , intent(out)                   :: neval
   10030             :         integer(IK)         , intent(out)                   :: nint
   10031             :         integer(IK)                                         :: err
   10032             :     end function
   10033             : #endif
   10034             : 
   10035             : #if RK1_ENABLED
   10036             :     module function QAGS_GK31_II_RK1(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   10037             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   10038             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK31_II_RK1
   10039             : #endif
   10040             :         use pm_kind, only: RKC => RK1
   10041             :         procedure(real(RKC))                                :: getFunc
   10042             :         type(ninf_type)     , intent(in)                    :: lb
   10043             :         type(pinf_type)     , intent(in)                    :: ub
   10044             :         real(RKC)           , intent(in)                    :: abstol
   10045             :         real(RKC)           , intent(in)                    :: reltol
   10046             :         type(GK31_type)     , intent(in)                    :: qrule
   10047             :         type(weps_type)     , intent(in)                    :: help
   10048             :         real(RKC)           , intent(out)                   :: integral, abserr
   10049             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   10050             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   10051             :         integer(IK)         , intent(out)                   :: neval
   10052             :         integer(IK)         , intent(out)                   :: nint
   10053             :         integer(IK)                                         :: err
   10054             :     end function
   10055             : #endif
   10056             : 
   10057             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10058             : 
   10059             :     end interface
   10060             : 
   10061             :     ! QAGS_GK41
   10062             : 
   10063             :     interface getQuadErr
   10064             : 
   10065             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10066             : 
   10067             : #if RK5_ENABLED
   10068             :     module function QAGS_GK41_FF_RK5(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   10069             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   10070             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK41_FF_RK5
   10071             : #endif
   10072             :         use pm_kind, only: RKC => RK5
   10073             :         procedure(real(RKC))                                :: getFunc
   10074             :         real(RKC)           , intent(in)                    :: lb
   10075             :         real(RKC)           , intent(in)                    :: ub
   10076             :         real(RKC)           , intent(in)                    :: abstol
   10077             :         real(RKC)           , intent(in)                    :: reltol
   10078             :         type(GK41_type)     , intent(in)                    :: qrule
   10079             :         type(weps_type)     , intent(in)                    :: help
   10080             :         real(RKC)           , intent(out)                   :: integral, abserr
   10081             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   10082             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   10083             :         integer(IK)         , intent(out)                   :: neval
   10084             :         integer(IK)         , intent(out)                   :: nint
   10085             :         integer(IK)                                         :: err
   10086             :     end function
   10087             : #endif
   10088             : 
   10089             : #if RK4_ENABLED
   10090             :     module function QAGS_GK41_FF_RK4(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   10091             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   10092             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK41_FF_RK4
   10093             : #endif
   10094             :         use pm_kind, only: RKC => RK4
   10095             :         procedure(real(RKC))                                :: getFunc
   10096             :         real(RKC)           , intent(in)                    :: lb
   10097             :         real(RKC)           , intent(in)                    :: ub
   10098             :         real(RKC)           , intent(in)                    :: abstol
   10099             :         real(RKC)           , intent(in)                    :: reltol
   10100             :         type(GK41_type)     , intent(in)                    :: qrule
   10101             :         type(weps_type)     , intent(in)                    :: help
   10102             :         real(RKC)           , intent(out)                   :: integral, abserr
   10103             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   10104             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   10105             :         integer(IK)         , intent(out)                   :: neval
   10106             :         integer(IK)         , intent(out)                   :: nint
   10107             :         integer(IK)                                         :: err
   10108             :     end function
   10109             : #endif
   10110             : 
   10111             : #if RK3_ENABLED
   10112             :     module function QAGS_GK41_FF_RK3(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   10113             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   10114             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK41_FF_RK3
   10115             : #endif
   10116             :         use pm_kind, only: RKC => RK3
   10117             :         procedure(real(RKC))                                :: getFunc
   10118             :         real(RKC)           , intent(in)                    :: lb
   10119             :         real(RKC)           , intent(in)                    :: ub
   10120             :         real(RKC)           , intent(in)                    :: abstol
   10121             :         real(RKC)           , intent(in)                    :: reltol
   10122             :         type(GK41_type)     , intent(in)                    :: qrule
   10123             :         type(weps_type)     , intent(in)                    :: help
   10124             :         real(RKC)           , intent(out)                   :: integral, abserr
   10125             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   10126             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   10127             :         integer(IK)         , intent(out)                   :: neval
   10128             :         integer(IK)         , intent(out)                   :: nint
   10129             :         integer(IK)                                         :: err
   10130             :     end function
   10131             : #endif
   10132             : 
   10133             : #if RK2_ENABLED
   10134             :     module function QAGS_GK41_FF_RK2(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   10135             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   10136             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK41_FF_RK2
   10137             : #endif
   10138             :         use pm_kind, only: RKC => RK2
   10139             :         procedure(real(RKC))                                :: getFunc
   10140             :         real(RKC)           , intent(in)                    :: lb
   10141             :         real(RKC)           , intent(in)                    :: ub
   10142             :         real(RKC)           , intent(in)                    :: abstol
   10143             :         real(RKC)           , intent(in)                    :: reltol
   10144             :         type(GK41_type)     , intent(in)                    :: qrule
   10145             :         type(weps_type)     , intent(in)                    :: help
   10146             :         real(RKC)           , intent(out)                   :: integral, abserr
   10147             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   10148             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   10149             :         integer(IK)         , intent(out)                   :: neval
   10150             :         integer(IK)         , intent(out)                   :: nint
   10151             :         integer(IK)                                         :: err
   10152             :     end function
   10153             : #endif
   10154             : 
   10155             : #if RK1_ENABLED
   10156             :     module function QAGS_GK41_FF_RK1(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   10157             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   10158             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK41_FF_RK1
   10159             : #endif
   10160             :         use pm_kind, only: RKC => RK1
   10161             :         procedure(real(RKC))                                :: getFunc
   10162             :         real(RKC)           , intent(in)                    :: lb
   10163             :         real(RKC)           , intent(in)                    :: ub
   10164             :         real(RKC)           , intent(in)                    :: abstol
   10165             :         real(RKC)           , intent(in)                    :: reltol
   10166             :         type(GK41_type)     , intent(in)                    :: qrule
   10167             :         type(weps_type)     , intent(in)                    :: help
   10168             :         real(RKC)           , intent(out)                   :: integral, abserr
   10169             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   10170             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   10171             :         integer(IK)         , intent(out)                   :: neval
   10172             :         integer(IK)         , intent(out)                   :: nint
   10173             :         integer(IK)                                         :: err
   10174             :     end function
   10175             : #endif
   10176             : 
   10177             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10178             : 
   10179             : #if RK5_ENABLED
   10180             :     module function QAGS_GK41_FI_RK5(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   10181             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   10182             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK41_FI_RK5
   10183             : #endif
   10184             :         use pm_kind, only: RKC => RK5
   10185             :         procedure(real(RKC))                                :: getFunc
   10186             :         real(RKC)           , intent(in)                    :: lb
   10187             :         type(pinf_type)     , intent(in)                    :: ub
   10188             :         real(RKC)           , intent(in)                    :: abstol
   10189             :         real(RKC)           , intent(in)                    :: reltol
   10190             :         type(GK41_type)     , intent(in)                    :: qrule
   10191             :         type(weps_type)     , intent(in)                    :: help
   10192             :         real(RKC)           , intent(out)                   :: integral, abserr
   10193             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   10194             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   10195             :         integer(IK)         , intent(out)                   :: neval
   10196             :         integer(IK)         , intent(out)                   :: nint
   10197             :         integer(IK)                                         :: err
   10198             :     end function
   10199             : #endif
   10200             : 
   10201             : #if RK4_ENABLED
   10202             :     module function QAGS_GK41_FI_RK4(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   10203             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   10204             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK41_FI_RK4
   10205             : #endif
   10206             :         use pm_kind, only: RKC => RK4
   10207             :         procedure(real(RKC))                                :: getFunc
   10208             :         real(RKC)           , intent(in)                    :: lb
   10209             :         type(pinf_type)     , intent(in)                    :: ub
   10210             :         real(RKC)           , intent(in)                    :: abstol
   10211             :         real(RKC)           , intent(in)                    :: reltol
   10212             :         type(GK41_type)     , intent(in)                    :: qrule
   10213             :         type(weps_type)     , intent(in)                    :: help
   10214             :         real(RKC)           , intent(out)                   :: integral, abserr
   10215             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   10216             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   10217             :         integer(IK)         , intent(out)                   :: neval
   10218             :         integer(IK)         , intent(out)                   :: nint
   10219             :         integer(IK)                                         :: err
   10220             :     end function
   10221             : #endif
   10222             : 
   10223             : #if RK3_ENABLED
   10224             :     module function QAGS_GK41_FI_RK3(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   10225             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   10226             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK41_FI_RK3
   10227             : #endif
   10228             :         use pm_kind, only: RKC => RK3
   10229             :         procedure(real(RKC))                                :: getFunc
   10230             :         real(RKC)           , intent(in)                    :: lb
   10231             :         type(pinf_type)     , intent(in)                    :: ub
   10232             :         real(RKC)           , intent(in)                    :: abstol
   10233             :         real(RKC)           , intent(in)                    :: reltol
   10234             :         type(GK41_type)     , intent(in)                    :: qrule
   10235             :         type(weps_type)     , intent(in)                    :: help
   10236             :         real(RKC)           , intent(out)                   :: integral, abserr
   10237             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   10238             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   10239             :         integer(IK)         , intent(out)                   :: neval
   10240             :         integer(IK)         , intent(out)                   :: nint
   10241             :         integer(IK)                                         :: err
   10242             :     end function
   10243             : #endif
   10244             : 
   10245             : #if RK2_ENABLED
   10246             :     module function QAGS_GK41_FI_RK2(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   10247             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   10248             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK41_FI_RK2
   10249             : #endif
   10250             :         use pm_kind, only: RKC => RK2
   10251             :         procedure(real(RKC))                                :: getFunc
   10252             :         real(RKC)           , intent(in)                    :: lb
   10253             :         type(pinf_type)     , intent(in)                    :: ub
   10254             :         real(RKC)           , intent(in)                    :: abstol
   10255             :         real(RKC)           , intent(in)                    :: reltol
   10256             :         type(GK41_type)     , intent(in)                    :: qrule
   10257             :         type(weps_type)     , intent(in)                    :: help
   10258             :         real(RKC)           , intent(out)                   :: integral, abserr
   10259             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   10260             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   10261             :         integer(IK)         , intent(out)                   :: neval
   10262             :         integer(IK)         , intent(out)                   :: nint
   10263             :         integer(IK)                                         :: err
   10264             :     end function
   10265             : #endif
   10266             : 
   10267             : #if RK1_ENABLED
   10268             :     module function QAGS_GK41_FI_RK1(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   10269             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   10270             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK41_FI_RK1
   10271             : #endif
   10272             :         use pm_kind, only: RKC => RK1
   10273             :         procedure(real(RKC))                                :: getFunc
   10274             :         real(RKC)           , intent(in)                    :: lb
   10275             :         type(pinf_type)     , intent(in)                    :: ub
   10276             :         real(RKC)           , intent(in)                    :: abstol
   10277             :         real(RKC)           , intent(in)                    :: reltol
   10278             :         type(GK41_type)     , intent(in)                    :: qrule
   10279             :         type(weps_type)     , intent(in)                    :: help
   10280             :         real(RKC)           , intent(out)                   :: integral, abserr
   10281             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   10282             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   10283             :         integer(IK)         , intent(out)                   :: neval
   10284             :         integer(IK)         , intent(out)                   :: nint
   10285             :         integer(IK)                                         :: err
   10286             :     end function
   10287             : #endif
   10288             : 
   10289             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10290             : 
   10291             : #if RK5_ENABLED
   10292             :     module function QAGS_GK41_IF_RK5(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   10293             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   10294             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK41_IF_RK5
   10295             : #endif
   10296             :         use pm_kind, only: RKC => RK5
   10297             :         procedure(real(RKC))                                :: getFunc
   10298             :         type(ninf_type)     , intent(in)                    :: lb
   10299             :         real(RKC)           , intent(in)                    :: ub
   10300             :         real(RKC)           , intent(in)                    :: abstol
   10301             :         real(RKC)           , intent(in)                    :: reltol
   10302             :         type(GK41_type)     , intent(in)                    :: qrule
   10303             :         type(weps_type)     , intent(in)                    :: help
   10304             :         real(RKC)           , intent(out)                   :: integral, abserr
   10305             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   10306             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   10307             :         integer(IK)         , intent(out)                   :: neval
   10308             :         integer(IK)         , intent(out)                   :: nint
   10309             :         integer(IK)                                         :: err
   10310             :     end function
   10311             : #endif
   10312             : 
   10313             : #if RK4_ENABLED
   10314             :     module function QAGS_GK41_IF_RK4(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   10315             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   10316             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK41_IF_RK4
   10317             : #endif
   10318             :         use pm_kind, only: RKC => RK4
   10319             :         procedure(real(RKC))                                :: getFunc
   10320             :         type(ninf_type)     , intent(in)                    :: lb
   10321             :         real(RKC)           , intent(in)                    :: ub
   10322             :         real(RKC)           , intent(in)                    :: abstol
   10323             :         real(RKC)           , intent(in)                    :: reltol
   10324             :         type(GK41_type)     , intent(in)                    :: qrule
   10325             :         type(weps_type)     , intent(in)                    :: help
   10326             :         real(RKC)           , intent(out)                   :: integral, abserr
   10327             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   10328             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   10329             :         integer(IK)         , intent(out)                   :: neval
   10330             :         integer(IK)         , intent(out)                   :: nint
   10331             :         integer(IK)                                         :: err
   10332             :     end function
   10333             : #endif
   10334             : 
   10335             : #if RK3_ENABLED
   10336             :     module function QAGS_GK41_IF_RK3(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   10337             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   10338             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK41_IF_RK3
   10339             : #endif
   10340             :         use pm_kind, only: RKC => RK3
   10341             :         procedure(real(RKC))                                :: getFunc
   10342             :         type(ninf_type)     , intent(in)                    :: lb
   10343             :         real(RKC)           , intent(in)                    :: ub
   10344             :         real(RKC)           , intent(in)                    :: abstol
   10345             :         real(RKC)           , intent(in)                    :: reltol
   10346             :         type(GK41_type)     , intent(in)                    :: qrule
   10347             :         type(weps_type)     , intent(in)                    :: help
   10348             :         real(RKC)           , intent(out)                   :: integral, abserr
   10349             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   10350             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   10351             :         integer(IK)         , intent(out)                   :: neval
   10352             :         integer(IK)         , intent(out)                   :: nint
   10353             :         integer(IK)                                         :: err
   10354             :     end function
   10355             : #endif
   10356             : 
   10357             : #if RK2_ENABLED
   10358             :     module function QAGS_GK41_IF_RK2(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   10359             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   10360             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK41_IF_RK2
   10361             : #endif
   10362             :         use pm_kind, only: RKC => RK2
   10363             :         procedure(real(RKC))                                :: getFunc
   10364             :         type(ninf_type)     , intent(in)                    :: lb
   10365             :         real(RKC)           , intent(in)                    :: ub
   10366             :         real(RKC)           , intent(in)                    :: abstol
   10367             :         real(RKC)           , intent(in)                    :: reltol
   10368             :         type(GK41_type)     , intent(in)                    :: qrule
   10369             :         type(weps_type)     , intent(in)                    :: help
   10370             :         real(RKC)           , intent(out)                   :: integral, abserr
   10371             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   10372             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   10373             :         integer(IK)         , intent(out)                   :: neval
   10374             :         integer(IK)         , intent(out)                   :: nint
   10375             :         integer(IK)                                         :: err
   10376             :     end function
   10377             : #endif
   10378             : 
   10379             : #if RK1_ENABLED
   10380             :     module function QAGS_GK41_IF_RK1(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   10381             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   10382             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK41_IF_RK1
   10383             : #endif
   10384             :         use pm_kind, only: RKC => RK1
   10385             :         procedure(real(RKC))                                :: getFunc
   10386             :         type(ninf_type)     , intent(in)                    :: lb
   10387             :         real(RKC)           , intent(in)                    :: ub
   10388             :         real(RKC)           , intent(in)                    :: abstol
   10389             :         real(RKC)           , intent(in)                    :: reltol
   10390             :         type(GK41_type)     , intent(in)                    :: qrule
   10391             :         type(weps_type)     , intent(in)                    :: help
   10392             :         real(RKC)           , intent(out)                   :: integral, abserr
   10393             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   10394             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   10395             :         integer(IK)         , intent(out)                   :: neval
   10396             :         integer(IK)         , intent(out)                   :: nint
   10397             :         integer(IK)                                         :: err
   10398             :     end function
   10399             : #endif
   10400             : 
   10401             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10402             : 
   10403             : #if RK5_ENABLED
   10404             :     module function QAGS_GK41_II_RK5(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   10405             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   10406             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK41_II_RK5
   10407             : #endif
   10408             :         use pm_kind, only: RKC => RK5
   10409             :         procedure(real(RKC))                                :: getFunc
   10410             :         type(ninf_type)     , intent(in)                    :: lb
   10411             :         type(pinf_type)     , intent(in)                    :: ub
   10412             :         real(RKC)           , intent(in)                    :: abstol
   10413             :         real(RKC)           , intent(in)                    :: reltol
   10414             :         type(GK41_type)     , intent(in)                    :: qrule
   10415             :         type(weps_type)     , intent(in)                    :: help
   10416             :         real(RKC)           , intent(out)                   :: integral, abserr
   10417             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   10418             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   10419             :         integer(IK)         , intent(out)                   :: neval
   10420             :         integer(IK)         , intent(out)                   :: nint
   10421             :         integer(IK)                                         :: err
   10422             :     end function
   10423             : #endif
   10424             : 
   10425             : #if RK4_ENABLED
   10426             :     module function QAGS_GK41_II_RK4(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   10427             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   10428             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK41_II_RK4
   10429             : #endif
   10430             :         use pm_kind, only: RKC => RK4
   10431             :         procedure(real(RKC))                                :: getFunc
   10432             :         type(ninf_type)     , intent(in)                    :: lb
   10433             :         type(pinf_type)     , intent(in)                    :: ub
   10434             :         real(RKC)           , intent(in)                    :: abstol
   10435             :         real(RKC)           , intent(in)                    :: reltol
   10436             :         type(GK41_type)     , intent(in)                    :: qrule
   10437             :         type(weps_type)     , intent(in)                    :: help
   10438             :         real(RKC)           , intent(out)                   :: integral, abserr
   10439             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   10440             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   10441             :         integer(IK)         , intent(out)                   :: neval
   10442             :         integer(IK)         , intent(out)                   :: nint
   10443             :         integer(IK)                                         :: err
   10444             :     end function
   10445             : #endif
   10446             : 
   10447             : #if RK3_ENABLED
   10448             :     module function QAGS_GK41_II_RK3(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   10449             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   10450             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK41_II_RK3
   10451             : #endif
   10452             :         use pm_kind, only: RKC => RK3
   10453             :         procedure(real(RKC))                                :: getFunc
   10454             :         type(ninf_type)     , intent(in)                    :: lb
   10455             :         type(pinf_type)     , intent(in)                    :: ub
   10456             :         real(RKC)           , intent(in)                    :: abstol
   10457             :         real(RKC)           , intent(in)                    :: reltol
   10458             :         type(GK41_type)     , intent(in)                    :: qrule
   10459             :         type(weps_type)     , intent(in)                    :: help
   10460             :         real(RKC)           , intent(out)                   :: integral, abserr
   10461             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   10462             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   10463             :         integer(IK)         , intent(out)                   :: neval
   10464             :         integer(IK)         , intent(out)                   :: nint
   10465             :         integer(IK)                                         :: err
   10466             :     end function
   10467             : #endif
   10468             : 
   10469             : #if RK2_ENABLED
   10470             :     module function QAGS_GK41_II_RK2(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   10471             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   10472             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK41_II_RK2
   10473             : #endif
   10474             :         use pm_kind, only: RKC => RK2
   10475             :         procedure(real(RKC))                                :: getFunc
   10476             :         type(ninf_type)     , intent(in)                    :: lb
   10477             :         type(pinf_type)     , intent(in)                    :: ub
   10478             :         real(RKC)           , intent(in)                    :: abstol
   10479             :         real(RKC)           , intent(in)                    :: reltol
   10480             :         type(GK41_type)     , intent(in)                    :: qrule
   10481             :         type(weps_type)     , intent(in)                    :: help
   10482             :         real(RKC)           , intent(out)                   :: integral, abserr
   10483             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   10484             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   10485             :         integer(IK)         , intent(out)                   :: neval
   10486             :         integer(IK)         , intent(out)                   :: nint
   10487             :         integer(IK)                                         :: err
   10488             :     end function
   10489             : #endif
   10490             : 
   10491             : #if RK1_ENABLED
   10492             :     module function QAGS_GK41_II_RK1(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   10493             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   10494             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK41_II_RK1
   10495             : #endif
   10496             :         use pm_kind, only: RKC => RK1
   10497             :         procedure(real(RKC))                                :: getFunc
   10498             :         type(ninf_type)     , intent(in)                    :: lb
   10499             :         type(pinf_type)     , intent(in)                    :: ub
   10500             :         real(RKC)           , intent(in)                    :: abstol
   10501             :         real(RKC)           , intent(in)                    :: reltol
   10502             :         type(GK41_type)     , intent(in)                    :: qrule
   10503             :         type(weps_type)     , intent(in)                    :: help
   10504             :         real(RKC)           , intent(out)                   :: integral, abserr
   10505             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   10506             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   10507             :         integer(IK)         , intent(out)                   :: neval
   10508             :         integer(IK)         , intent(out)                   :: nint
   10509             :         integer(IK)                                         :: err
   10510             :     end function
   10511             : #endif
   10512             : 
   10513             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10514             : 
   10515             :     end interface
   10516             : 
   10517             :     ! QAGS_GK51
   10518             : 
   10519             :     interface getQuadErr
   10520             : 
   10521             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10522             : 
   10523             : #if RK5_ENABLED
   10524             :     module function QAGS_GK51_FF_RK5(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   10525             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   10526             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK51_FF_RK5
   10527             : #endif
   10528             :         use pm_kind, only: RKC => RK5
   10529             :         procedure(real(RKC))                                :: getFunc
   10530             :         real(RKC)           , intent(in)                    :: lb
   10531             :         real(RKC)           , intent(in)                    :: ub
   10532             :         real(RKC)           , intent(in)                    :: abstol
   10533             :         real(RKC)           , intent(in)                    :: reltol
   10534             :         type(GK51_type)     , intent(in)                    :: qrule
   10535             :         type(weps_type)     , intent(in)                    :: help
   10536             :         real(RKC)           , intent(out)                   :: integral, abserr
   10537             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   10538             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   10539             :         integer(IK)         , intent(out)                   :: neval
   10540             :         integer(IK)         , intent(out)                   :: nint
   10541             :         integer(IK)                                         :: err
   10542             :     end function
   10543             : #endif
   10544             : 
   10545             : #if RK4_ENABLED
   10546             :     module function QAGS_GK51_FF_RK4(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   10547             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   10548             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK51_FF_RK4
   10549             : #endif
   10550             :         use pm_kind, only: RKC => RK4
   10551             :         procedure(real(RKC))                                :: getFunc
   10552             :         real(RKC)           , intent(in)                    :: lb
   10553             :         real(RKC)           , intent(in)                    :: ub
   10554             :         real(RKC)           , intent(in)                    :: abstol
   10555             :         real(RKC)           , intent(in)                    :: reltol
   10556             :         type(GK51_type)     , intent(in)                    :: qrule
   10557             :         type(weps_type)     , intent(in)                    :: help
   10558             :         real(RKC)           , intent(out)                   :: integral, abserr
   10559             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   10560             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   10561             :         integer(IK)         , intent(out)                   :: neval
   10562             :         integer(IK)         , intent(out)                   :: nint
   10563             :         integer(IK)                                         :: err
   10564             :     end function
   10565             : #endif
   10566             : 
   10567             : #if RK3_ENABLED
   10568             :     module function QAGS_GK51_FF_RK3(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   10569             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   10570             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK51_FF_RK3
   10571             : #endif
   10572             :         use pm_kind, only: RKC => RK3
   10573             :         procedure(real(RKC))                                :: getFunc
   10574             :         real(RKC)           , intent(in)                    :: lb
   10575             :         real(RKC)           , intent(in)                    :: ub
   10576             :         real(RKC)           , intent(in)                    :: abstol
   10577             :         real(RKC)           , intent(in)                    :: reltol
   10578             :         type(GK51_type)     , intent(in)                    :: qrule
   10579             :         type(weps_type)     , intent(in)                    :: help
   10580             :         real(RKC)           , intent(out)                   :: integral, abserr
   10581             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   10582             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   10583             :         integer(IK)         , intent(out)                   :: neval
   10584             :         integer(IK)         , intent(out)                   :: nint
   10585             :         integer(IK)                                         :: err
   10586             :     end function
   10587             : #endif
   10588             : 
   10589             : #if RK2_ENABLED
   10590             :     module function QAGS_GK51_FF_RK2(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   10591             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   10592             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK51_FF_RK2
   10593             : #endif
   10594             :         use pm_kind, only: RKC => RK2
   10595             :         procedure(real(RKC))                                :: getFunc
   10596             :         real(RKC)           , intent(in)                    :: lb
   10597             :         real(RKC)           , intent(in)                    :: ub
   10598             :         real(RKC)           , intent(in)                    :: abstol
   10599             :         real(RKC)           , intent(in)                    :: reltol
   10600             :         type(GK51_type)     , intent(in)                    :: qrule
   10601             :         type(weps_type)     , intent(in)                    :: help
   10602             :         real(RKC)           , intent(out)                   :: integral, abserr
   10603             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   10604             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   10605             :         integer(IK)         , intent(out)                   :: neval
   10606             :         integer(IK)         , intent(out)                   :: nint
   10607             :         integer(IK)                                         :: err
   10608             :     end function
   10609             : #endif
   10610             : 
   10611             : #if RK1_ENABLED
   10612             :     module function QAGS_GK51_FF_RK1(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   10613             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   10614             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK51_FF_RK1
   10615             : #endif
   10616             :         use pm_kind, only: RKC => RK1
   10617             :         procedure(real(RKC))                                :: getFunc
   10618             :         real(RKC)           , intent(in)                    :: lb
   10619             :         real(RKC)           , intent(in)                    :: ub
   10620             :         real(RKC)           , intent(in)                    :: abstol
   10621             :         real(RKC)           , intent(in)                    :: reltol
   10622             :         type(GK51_type)     , intent(in)                    :: qrule
   10623             :         type(weps_type)     , intent(in)                    :: help
   10624             :         real(RKC)           , intent(out)                   :: integral, abserr
   10625             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   10626             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   10627             :         integer(IK)         , intent(out)                   :: neval
   10628             :         integer(IK)         , intent(out)                   :: nint
   10629             :         integer(IK)                                         :: err
   10630             :     end function
   10631             : #endif
   10632             : 
   10633             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10634             : 
   10635             : #if RK5_ENABLED
   10636             :     module function QAGS_GK51_FI_RK5(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   10637             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   10638             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK51_FI_RK5
   10639             : #endif
   10640             :         use pm_kind, only: RKC => RK5
   10641             :         procedure(real(RKC))                                :: getFunc
   10642             :         real(RKC)           , intent(in)                    :: lb
   10643             :         type(pinf_type)     , intent(in)                    :: ub
   10644             :         real(RKC)           , intent(in)                    :: abstol
   10645             :         real(RKC)           , intent(in)                    :: reltol
   10646             :         type(GK51_type)     , intent(in)                    :: qrule
   10647             :         type(weps_type)     , intent(in)                    :: help
   10648             :         real(RKC)           , intent(out)                   :: integral, abserr
   10649             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   10650             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   10651             :         integer(IK)         , intent(out)                   :: neval
   10652             :         integer(IK)         , intent(out)                   :: nint
   10653             :         integer(IK)                                         :: err
   10654             :     end function
   10655             : #endif
   10656             : 
   10657             : #if RK4_ENABLED
   10658             :     module function QAGS_GK51_FI_RK4(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   10659             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   10660             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK51_FI_RK4
   10661             : #endif
   10662             :         use pm_kind, only: RKC => RK4
   10663             :         procedure(real(RKC))                                :: getFunc
   10664             :         real(RKC)           , intent(in)                    :: lb
   10665             :         type(pinf_type)     , intent(in)                    :: ub
   10666             :         real(RKC)           , intent(in)                    :: abstol
   10667             :         real(RKC)           , intent(in)                    :: reltol
   10668             :         type(GK51_type)     , intent(in)                    :: qrule
   10669             :         type(weps_type)     , intent(in)                    :: help
   10670             :         real(RKC)           , intent(out)                   :: integral, abserr
   10671             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   10672             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   10673             :         integer(IK)         , intent(out)                   :: neval
   10674             :         integer(IK)         , intent(out)                   :: nint
   10675             :         integer(IK)                                         :: err
   10676             :     end function
   10677             : #endif
   10678             : 
   10679             : #if RK3_ENABLED
   10680             :     module function QAGS_GK51_FI_RK3(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   10681             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   10682             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK51_FI_RK3
   10683             : #endif
   10684             :         use pm_kind, only: RKC => RK3
   10685             :         procedure(real(RKC))                                :: getFunc
   10686             :         real(RKC)           , intent(in)                    :: lb
   10687             :         type(pinf_type)     , intent(in)                    :: ub
   10688             :         real(RKC)           , intent(in)                    :: abstol
   10689             :         real(RKC)           , intent(in)                    :: reltol
   10690             :         type(GK51_type)     , intent(in)                    :: qrule
   10691             :         type(weps_type)     , intent(in)                    :: help
   10692             :         real(RKC)           , intent(out)                   :: integral, abserr
   10693             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   10694             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   10695             :         integer(IK)         , intent(out)                   :: neval
   10696             :         integer(IK)         , intent(out)                   :: nint
   10697             :         integer(IK)                                         :: err
   10698             :     end function
   10699             : #endif
   10700             : 
   10701             : #if RK2_ENABLED
   10702             :     module function QAGS_GK51_FI_RK2(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   10703             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   10704             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK51_FI_RK2
   10705             : #endif
   10706             :         use pm_kind, only: RKC => RK2
   10707             :         procedure(real(RKC))                                :: getFunc
   10708             :         real(RKC)           , intent(in)                    :: lb
   10709             :         type(pinf_type)     , intent(in)                    :: ub
   10710             :         real(RKC)           , intent(in)                    :: abstol
   10711             :         real(RKC)           , intent(in)                    :: reltol
   10712             :         type(GK51_type)     , intent(in)                    :: qrule
   10713             :         type(weps_type)     , intent(in)                    :: help
   10714             :         real(RKC)           , intent(out)                   :: integral, abserr
   10715             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   10716             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   10717             :         integer(IK)         , intent(out)                   :: neval
   10718             :         integer(IK)         , intent(out)                   :: nint
   10719             :         integer(IK)                                         :: err
   10720             :     end function
   10721             : #endif
   10722             : 
   10723             : #if RK1_ENABLED
   10724             :     module function QAGS_GK51_FI_RK1(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   10725             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   10726             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK51_FI_RK1
   10727             : #endif
   10728             :         use pm_kind, only: RKC => RK1
   10729             :         procedure(real(RKC))                                :: getFunc
   10730             :         real(RKC)           , intent(in)                    :: lb
   10731             :         type(pinf_type)     , intent(in)                    :: ub
   10732             :         real(RKC)           , intent(in)                    :: abstol
   10733             :         real(RKC)           , intent(in)                    :: reltol
   10734             :         type(GK51_type)     , intent(in)                    :: qrule
   10735             :         type(weps_type)     , intent(in)                    :: help
   10736             :         real(RKC)           , intent(out)                   :: integral, abserr
   10737             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   10738             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   10739             :         integer(IK)         , intent(out)                   :: neval
   10740             :         integer(IK)         , intent(out)                   :: nint
   10741             :         integer(IK)                                         :: err
   10742             :     end function
   10743             : #endif
   10744             : 
   10745             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10746             : 
   10747             : #if RK5_ENABLED
   10748             :     module function QAGS_GK51_IF_RK5(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   10749             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   10750             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK51_IF_RK5
   10751             : #endif
   10752             :         use pm_kind, only: RKC => RK5
   10753             :         procedure(real(RKC))                                :: getFunc
   10754             :         type(ninf_type)     , intent(in)                    :: lb
   10755             :         real(RKC)           , intent(in)                    :: ub
   10756             :         real(RKC)           , intent(in)                    :: abstol
   10757             :         real(RKC)           , intent(in)                    :: reltol
   10758             :         type(GK51_type)     , intent(in)                    :: qrule
   10759             :         type(weps_type)     , intent(in)                    :: help
   10760             :         real(RKC)           , intent(out)                   :: integral, abserr
   10761             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   10762             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   10763             :         integer(IK)         , intent(out)                   :: neval
   10764             :         integer(IK)         , intent(out)                   :: nint
   10765             :         integer(IK)                                         :: err
   10766             :     end function
   10767             : #endif
   10768             : 
   10769             : #if RK4_ENABLED
   10770             :     module function QAGS_GK51_IF_RK4(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   10771             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   10772             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK51_IF_RK4
   10773             : #endif
   10774             :         use pm_kind, only: RKC => RK4
   10775             :         procedure(real(RKC))                                :: getFunc
   10776             :         type(ninf_type)     , intent(in)                    :: lb
   10777             :         real(RKC)           , intent(in)                    :: ub
   10778             :         real(RKC)           , intent(in)                    :: abstol
   10779             :         real(RKC)           , intent(in)                    :: reltol
   10780             :         type(GK51_type)     , intent(in)                    :: qrule
   10781             :         type(weps_type)     , intent(in)                    :: help
   10782             :         real(RKC)           , intent(out)                   :: integral, abserr
   10783             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   10784             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   10785             :         integer(IK)         , intent(out)                   :: neval
   10786             :         integer(IK)         , intent(out)                   :: nint
   10787             :         integer(IK)                                         :: err
   10788             :     end function
   10789             : #endif
   10790             : 
   10791             : #if RK3_ENABLED
   10792             :     module function QAGS_GK51_IF_RK3(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   10793             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   10794             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK51_IF_RK3
   10795             : #endif
   10796             :         use pm_kind, only: RKC => RK3
   10797             :         procedure(real(RKC))                                :: getFunc
   10798             :         type(ninf_type)     , intent(in)                    :: lb
   10799             :         real(RKC)           , intent(in)                    :: ub
   10800             :         real(RKC)           , intent(in)                    :: abstol
   10801             :         real(RKC)           , intent(in)                    :: reltol
   10802             :         type(GK51_type)     , intent(in)                    :: qrule
   10803             :         type(weps_type)     , intent(in)                    :: help
   10804             :         real(RKC)           , intent(out)                   :: integral, abserr
   10805             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   10806             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   10807             :         integer(IK)         , intent(out)                   :: neval
   10808             :         integer(IK)         , intent(out)                   :: nint
   10809             :         integer(IK)                                         :: err
   10810             :     end function
   10811             : #endif
   10812             : 
   10813             : #if RK2_ENABLED
   10814             :     module function QAGS_GK51_IF_RK2(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   10815             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   10816             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK51_IF_RK2
   10817             : #endif
   10818             :         use pm_kind, only: RKC => RK2
   10819             :         procedure(real(RKC))                                :: getFunc
   10820             :         type(ninf_type)     , intent(in)                    :: lb
   10821             :         real(RKC)           , intent(in)                    :: ub
   10822             :         real(RKC)           , intent(in)                    :: abstol
   10823             :         real(RKC)           , intent(in)                    :: reltol
   10824             :         type(GK51_type)     , intent(in)                    :: qrule
   10825             :         type(weps_type)     , intent(in)                    :: help
   10826             :         real(RKC)           , intent(out)                   :: integral, abserr
   10827             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   10828             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   10829             :         integer(IK)         , intent(out)                   :: neval
   10830             :         integer(IK)         , intent(out)                   :: nint
   10831             :         integer(IK)                                         :: err
   10832             :     end function
   10833             : #endif
   10834             : 
   10835             : #if RK1_ENABLED
   10836             :     module function QAGS_GK51_IF_RK1(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   10837             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   10838             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK51_IF_RK1
   10839             : #endif
   10840             :         use pm_kind, only: RKC => RK1
   10841             :         procedure(real(RKC))                                :: getFunc
   10842             :         type(ninf_type)     , intent(in)                    :: lb
   10843             :         real(RKC)           , intent(in)                    :: ub
   10844             :         real(RKC)           , intent(in)                    :: abstol
   10845             :         real(RKC)           , intent(in)                    :: reltol
   10846             :         type(GK51_type)     , intent(in)                    :: qrule
   10847             :         type(weps_type)     , intent(in)                    :: help
   10848             :         real(RKC)           , intent(out)                   :: integral, abserr
   10849             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   10850             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   10851             :         integer(IK)         , intent(out)                   :: neval
   10852             :         integer(IK)         , intent(out)                   :: nint
   10853             :         integer(IK)                                         :: err
   10854             :     end function
   10855             : #endif
   10856             : 
   10857             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10858             : 
   10859             : #if RK5_ENABLED
   10860             :     module function QAGS_GK51_II_RK5(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   10861             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   10862             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK51_II_RK5
   10863             : #endif
   10864             :         use pm_kind, only: RKC => RK5
   10865             :         procedure(real(RKC))                                :: getFunc
   10866             :         type(ninf_type)     , intent(in)                    :: lb
   10867             :         type(pinf_type)     , intent(in)                    :: ub
   10868             :         real(RKC)           , intent(in)                    :: abstol
   10869             :         real(RKC)           , intent(in)                    :: reltol
   10870             :         type(GK51_type)     , intent(in)                    :: qrule
   10871             :         type(weps_type)     , intent(in)                    :: help
   10872             :         real(RKC)           , intent(out)                   :: integral, abserr
   10873             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   10874             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   10875             :         integer(IK)         , intent(out)                   :: neval
   10876             :         integer(IK)         , intent(out)                   :: nint
   10877             :         integer(IK)                                         :: err
   10878             :     end function
   10879             : #endif
   10880             : 
   10881             : #if RK4_ENABLED
   10882             :     module function QAGS_GK51_II_RK4(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   10883             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   10884             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK51_II_RK4
   10885             : #endif
   10886             :         use pm_kind, only: RKC => RK4
   10887             :         procedure(real(RKC))                                :: getFunc
   10888             :         type(ninf_type)     , intent(in)                    :: lb
   10889             :         type(pinf_type)     , intent(in)                    :: ub
   10890             :         real(RKC)           , intent(in)                    :: abstol
   10891             :         real(RKC)           , intent(in)                    :: reltol
   10892             :         type(GK51_type)     , intent(in)                    :: qrule
   10893             :         type(weps_type)     , intent(in)                    :: help
   10894             :         real(RKC)           , intent(out)                   :: integral, abserr
   10895             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   10896             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   10897             :         integer(IK)         , intent(out)                   :: neval
   10898             :         integer(IK)         , intent(out)                   :: nint
   10899             :         integer(IK)                                         :: err
   10900             :     end function
   10901             : #endif
   10902             : 
   10903             : #if RK3_ENABLED
   10904             :     module function QAGS_GK51_II_RK3(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   10905             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   10906             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK51_II_RK3
   10907             : #endif
   10908             :         use pm_kind, only: RKC => RK3
   10909             :         procedure(real(RKC))                                :: getFunc
   10910             :         type(ninf_type)     , intent(in)                    :: lb
   10911             :         type(pinf_type)     , intent(in)                    :: ub
   10912             :         real(RKC)           , intent(in)                    :: abstol
   10913             :         real(RKC)           , intent(in)                    :: reltol
   10914             :         type(GK51_type)     , intent(in)                    :: qrule
   10915             :         type(weps_type)     , intent(in)                    :: help
   10916             :         real(RKC)           , intent(out)                   :: integral, abserr
   10917             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   10918             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   10919             :         integer(IK)         , intent(out)                   :: neval
   10920             :         integer(IK)         , intent(out)                   :: nint
   10921             :         integer(IK)                                         :: err
   10922             :     end function
   10923             : #endif
   10924             : 
   10925             : #if RK2_ENABLED
   10926             :     module function QAGS_GK51_II_RK2(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   10927             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   10928             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK51_II_RK2
   10929             : #endif
   10930             :         use pm_kind, only: RKC => RK2
   10931             :         procedure(real(RKC))                                :: getFunc
   10932             :         type(ninf_type)     , intent(in)                    :: lb
   10933             :         type(pinf_type)     , intent(in)                    :: ub
   10934             :         real(RKC)           , intent(in)                    :: abstol
   10935             :         real(RKC)           , intent(in)                    :: reltol
   10936             :         type(GK51_type)     , intent(in)                    :: qrule
   10937             :         type(weps_type)     , intent(in)                    :: help
   10938             :         real(RKC)           , intent(out)                   :: integral, abserr
   10939             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   10940             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   10941             :         integer(IK)         , intent(out)                   :: neval
   10942             :         integer(IK)         , intent(out)                   :: nint
   10943             :         integer(IK)                                         :: err
   10944             :     end function
   10945             : #endif
   10946             : 
   10947             : #if RK1_ENABLED
   10948             :     module function QAGS_GK51_II_RK1(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   10949             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   10950             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK51_II_RK1
   10951             : #endif
   10952             :         use pm_kind, only: RKC => RK1
   10953             :         procedure(real(RKC))                                :: getFunc
   10954             :         type(ninf_type)     , intent(in)                    :: lb
   10955             :         type(pinf_type)     , intent(in)                    :: ub
   10956             :         real(RKC)           , intent(in)                    :: abstol
   10957             :         real(RKC)           , intent(in)                    :: reltol
   10958             :         type(GK51_type)     , intent(in)                    :: qrule
   10959             :         type(weps_type)     , intent(in)                    :: help
   10960             :         real(RKC)           , intent(out)                   :: integral, abserr
   10961             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   10962             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   10963             :         integer(IK)         , intent(out)                   :: neval
   10964             :         integer(IK)         , intent(out)                   :: nint
   10965             :         integer(IK)                                         :: err
   10966             :     end function
   10967             : #endif
   10968             : 
   10969             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10970             : 
   10971             :     end interface
   10972             : 
   10973             :     ! QAGS_GK61
   10974             : 
   10975             :     interface getQuadErr
   10976             : 
   10977             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   10978             : 
   10979             : #if RK5_ENABLED
   10980             :     module function QAGS_GK61_FF_RK5(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   10981             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   10982             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK61_FF_RK5
   10983             : #endif
   10984             :         use pm_kind, only: RKC => RK5
   10985             :         procedure(real(RKC))                                :: getFunc
   10986             :         real(RKC)           , intent(in)                    :: lb
   10987             :         real(RKC)           , intent(in)                    :: ub
   10988             :         real(RKC)           , intent(in)                    :: abstol
   10989             :         real(RKC)           , intent(in)                    :: reltol
   10990             :         type(GK61_type)     , intent(in)                    :: qrule
   10991             :         type(weps_type)     , intent(in)                    :: help
   10992             :         real(RKC)           , intent(out)                   :: integral, abserr
   10993             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   10994             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   10995             :         integer(IK)         , intent(out)                   :: neval
   10996             :         integer(IK)         , intent(out)                   :: nint
   10997             :         integer(IK)                                         :: err
   10998             :     end function
   10999             : #endif
   11000             : 
   11001             : #if RK4_ENABLED
   11002             :     module function QAGS_GK61_FF_RK4(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   11003             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   11004             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK61_FF_RK4
   11005             : #endif
   11006             :         use pm_kind, only: RKC => RK4
   11007             :         procedure(real(RKC))                                :: getFunc
   11008             :         real(RKC)           , intent(in)                    :: lb
   11009             :         real(RKC)           , intent(in)                    :: ub
   11010             :         real(RKC)           , intent(in)                    :: abstol
   11011             :         real(RKC)           , intent(in)                    :: reltol
   11012             :         type(GK61_type)     , intent(in)                    :: qrule
   11013             :         type(weps_type)     , intent(in)                    :: help
   11014             :         real(RKC)           , intent(out)                   :: integral, abserr
   11015             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   11016             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   11017             :         integer(IK)         , intent(out)                   :: neval
   11018             :         integer(IK)         , intent(out)                   :: nint
   11019             :         integer(IK)                                         :: err
   11020             :     end function
   11021             : #endif
   11022             : 
   11023             : #if RK3_ENABLED
   11024             :     module function QAGS_GK61_FF_RK3(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   11025             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   11026             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK61_FF_RK3
   11027             : #endif
   11028             :         use pm_kind, only: RKC => RK3
   11029             :         procedure(real(RKC))                                :: getFunc
   11030             :         real(RKC)           , intent(in)                    :: lb
   11031             :         real(RKC)           , intent(in)                    :: ub
   11032             :         real(RKC)           , intent(in)                    :: abstol
   11033             :         real(RKC)           , intent(in)                    :: reltol
   11034             :         type(GK61_type)     , intent(in)                    :: qrule
   11035             :         type(weps_type)     , intent(in)                    :: help
   11036             :         real(RKC)           , intent(out)                   :: integral, abserr
   11037             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   11038             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   11039             :         integer(IK)         , intent(out)                   :: neval
   11040             :         integer(IK)         , intent(out)                   :: nint
   11041             :         integer(IK)                                         :: err
   11042             :     end function
   11043             : #endif
   11044             : 
   11045             : #if RK2_ENABLED
   11046             :     module function QAGS_GK61_FF_RK2(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   11047             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   11048             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK61_FF_RK2
   11049             : #endif
   11050             :         use pm_kind, only: RKC => RK2
   11051             :         procedure(real(RKC))                                :: getFunc
   11052             :         real(RKC)           , intent(in)                    :: lb
   11053             :         real(RKC)           , intent(in)                    :: ub
   11054             :         real(RKC)           , intent(in)                    :: abstol
   11055             :         real(RKC)           , intent(in)                    :: reltol
   11056             :         type(GK61_type)     , intent(in)                    :: qrule
   11057             :         type(weps_type)     , intent(in)                    :: help
   11058             :         real(RKC)           , intent(out)                   :: integral, abserr
   11059             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   11060             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   11061             :         integer(IK)         , intent(out)                   :: neval
   11062             :         integer(IK)         , intent(out)                   :: nint
   11063             :         integer(IK)                                         :: err
   11064             :     end function
   11065             : #endif
   11066             : 
   11067             : #if RK1_ENABLED
   11068             :     module function QAGS_GK61_FF_RK1(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   11069             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   11070             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK61_FF_RK1
   11071             : #endif
   11072             :         use pm_kind, only: RKC => RK1
   11073             :         procedure(real(RKC))                                :: getFunc
   11074             :         real(RKC)           , intent(in)                    :: lb
   11075             :         real(RKC)           , intent(in)                    :: ub
   11076             :         real(RKC)           , intent(in)                    :: abstol
   11077             :         real(RKC)           , intent(in)                    :: reltol
   11078             :         type(GK61_type)     , intent(in)                    :: qrule
   11079             :         type(weps_type)     , intent(in)                    :: help
   11080             :         real(RKC)           , intent(out)                   :: integral, abserr
   11081             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   11082             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   11083             :         integer(IK)         , intent(out)                   :: neval
   11084             :         integer(IK)         , intent(out)                   :: nint
   11085             :         integer(IK)                                         :: err
   11086             :     end function
   11087             : #endif
   11088             : 
   11089             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   11090             : 
   11091             : #if RK5_ENABLED
   11092             :     module function QAGS_GK61_FI_RK5(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   11093             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   11094             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK61_FI_RK5
   11095             : #endif
   11096             :         use pm_kind, only: RKC => RK5
   11097             :         procedure(real(RKC))                                :: getFunc
   11098             :         real(RKC)           , intent(in)                    :: lb
   11099             :         type(pinf_type)     , intent(in)                    :: ub
   11100             :         real(RKC)           , intent(in)                    :: abstol
   11101             :         real(RKC)           , intent(in)                    :: reltol
   11102             :         type(GK61_type)     , intent(in)                    :: qrule
   11103             :         type(weps_type)     , intent(in)                    :: help
   11104             :         real(RKC)           , intent(out)                   :: integral, abserr
   11105             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   11106             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   11107             :         integer(IK)         , intent(out)                   :: neval
   11108             :         integer(IK)         , intent(out)                   :: nint
   11109             :         integer(IK)                                         :: err
   11110             :     end function
   11111             : #endif
   11112             : 
   11113             : #if RK4_ENABLED
   11114             :     module function QAGS_GK61_FI_RK4(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   11115             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   11116             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK61_FI_RK4
   11117             : #endif
   11118             :         use pm_kind, only: RKC => RK4
   11119             :         procedure(real(RKC))                                :: getFunc
   11120             :         real(RKC)           , intent(in)                    :: lb
   11121             :         type(pinf_type)     , intent(in)                    :: ub
   11122             :         real(RKC)           , intent(in)                    :: abstol
   11123             :         real(RKC)           , intent(in)                    :: reltol
   11124             :         type(GK61_type)     , intent(in)                    :: qrule
   11125             :         type(weps_type)     , intent(in)                    :: help
   11126             :         real(RKC)           , intent(out)                   :: integral, abserr
   11127             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   11128             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   11129             :         integer(IK)         , intent(out)                   :: neval
   11130             :         integer(IK)         , intent(out)                   :: nint
   11131             :         integer(IK)                                         :: err
   11132             :     end function
   11133             : #endif
   11134             : 
   11135             : #if RK3_ENABLED
   11136             :     module function QAGS_GK61_FI_RK3(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   11137             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   11138             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK61_FI_RK3
   11139             : #endif
   11140             :         use pm_kind, only: RKC => RK3
   11141             :         procedure(real(RKC))                                :: getFunc
   11142             :         real(RKC)           , intent(in)                    :: lb
   11143             :         type(pinf_type)     , intent(in)                    :: ub
   11144             :         real(RKC)           , intent(in)                    :: abstol
   11145             :         real(RKC)           , intent(in)                    :: reltol
   11146             :         type(GK61_type)     , intent(in)                    :: qrule
   11147             :         type(weps_type)     , intent(in)                    :: help
   11148             :         real(RKC)           , intent(out)                   :: integral, abserr
   11149             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   11150             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   11151             :         integer(IK)         , intent(out)                   :: neval
   11152             :         integer(IK)         , intent(out)                   :: nint
   11153             :         integer(IK)                                         :: err
   11154             :     end function
   11155             : #endif
   11156             : 
   11157             : #if RK2_ENABLED
   11158             :     module function QAGS_GK61_FI_RK2(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   11159             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   11160             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK61_FI_RK2
   11161             : #endif
   11162             :         use pm_kind, only: RKC => RK2
   11163             :         procedure(real(RKC))                                :: getFunc
   11164             :         real(RKC)           , intent(in)                    :: lb
   11165             :         type(pinf_type)     , intent(in)                    :: ub
   11166             :         real(RKC)           , intent(in)                    :: abstol
   11167             :         real(RKC)           , intent(in)                    :: reltol
   11168             :         type(GK61_type)     , intent(in)                    :: qrule
   11169             :         type(weps_type)     , intent(in)                    :: help
   11170             :         real(RKC)           , intent(out)                   :: integral, abserr
   11171             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   11172             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   11173             :         integer(IK)         , intent(out)                   :: neval
   11174             :         integer(IK)         , intent(out)                   :: nint
   11175             :         integer(IK)                                         :: err
   11176             :     end function
   11177             : #endif
   11178             : 
   11179             : #if RK1_ENABLED
   11180             :     module function QAGS_GK61_FI_RK1(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   11181             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   11182             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK61_FI_RK1
   11183             : #endif
   11184             :         use pm_kind, only: RKC => RK1
   11185             :         procedure(real(RKC))                                :: getFunc
   11186             :         real(RKC)           , intent(in)                    :: lb
   11187             :         type(pinf_type)     , intent(in)                    :: ub
   11188             :         real(RKC)           , intent(in)                    :: abstol
   11189             :         real(RKC)           , intent(in)                    :: reltol
   11190             :         type(GK61_type)     , intent(in)                    :: qrule
   11191             :         type(weps_type)     , intent(in)                    :: help
   11192             :         real(RKC)           , intent(out)                   :: integral, abserr
   11193             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   11194             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   11195             :         integer(IK)         , intent(out)                   :: neval
   11196             :         integer(IK)         , intent(out)                   :: nint
   11197             :         integer(IK)                                         :: err
   11198             :     end function
   11199             : #endif
   11200             : 
   11201             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   11202             : 
   11203             : #if RK5_ENABLED
   11204             :     module function QAGS_GK61_IF_RK5(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   11205             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   11206             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK61_IF_RK5
   11207             : #endif
   11208             :         use pm_kind, only: RKC => RK5
   11209             :         procedure(real(RKC))                                :: getFunc
   11210             :         type(ninf_type)     , intent(in)                    :: lb
   11211             :         real(RKC)           , intent(in)                    :: ub
   11212             :         real(RKC)           , intent(in)                    :: abstol
   11213             :         real(RKC)           , intent(in)                    :: reltol
   11214             :         type(GK61_type)     , intent(in)                    :: qrule
   11215             :         type(weps_type)     , intent(in)                    :: help
   11216             :         real(RKC)           , intent(out)                   :: integral, abserr
   11217             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   11218             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   11219             :         integer(IK)         , intent(out)                   :: neval
   11220             :         integer(IK)         , intent(out)                   :: nint
   11221             :         integer(IK)                                         :: err
   11222             :     end function
   11223             : #endif
   11224             : 
   11225             : #if RK4_ENABLED
   11226             :     module function QAGS_GK61_IF_RK4(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   11227             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   11228             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK61_IF_RK4
   11229             : #endif
   11230             :         use pm_kind, only: RKC => RK4
   11231             :         procedure(real(RKC))                                :: getFunc
   11232             :         type(ninf_type)     , intent(in)                    :: lb
   11233             :         real(RKC)           , intent(in)                    :: ub
   11234             :         real(RKC)           , intent(in)                    :: abstol
   11235             :         real(RKC)           , intent(in)                    :: reltol
   11236             :         type(GK61_type)     , intent(in)                    :: qrule
   11237             :         type(weps_type)     , intent(in)                    :: help
   11238             :         real(RKC)           , intent(out)                   :: integral, abserr
   11239             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   11240             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   11241             :         integer(IK)         , intent(out)                   :: neval
   11242             :         integer(IK)         , intent(out)                   :: nint
   11243             :         integer(IK)                                         :: err
   11244             :     end function
   11245             : #endif
   11246             : 
   11247             : #if RK3_ENABLED
   11248             :     module function QAGS_GK61_IF_RK3(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   11249             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   11250             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK61_IF_RK3
   11251             : #endif
   11252             :         use pm_kind, only: RKC => RK3
   11253             :         procedure(real(RKC))                                :: getFunc
   11254             :         type(ninf_type)     , intent(in)                    :: lb
   11255             :         real(RKC)           , intent(in)                    :: ub
   11256             :         real(RKC)           , intent(in)                    :: abstol
   11257             :         real(RKC)           , intent(in)                    :: reltol
   11258             :         type(GK61_type)     , intent(in)                    :: qrule
   11259             :         type(weps_type)     , intent(in)                    :: help
   11260             :         real(RKC)           , intent(out)                   :: integral, abserr
   11261             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   11262             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   11263             :         integer(IK)         , intent(out)                   :: neval
   11264             :         integer(IK)         , intent(out)                   :: nint
   11265             :         integer(IK)                                         :: err
   11266             :     end function
   11267             : #endif
   11268             : 
   11269             : #if RK2_ENABLED
   11270             :     module function QAGS_GK61_IF_RK2(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   11271             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   11272             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK61_IF_RK2
   11273             : #endif
   11274             :         use pm_kind, only: RKC => RK2
   11275             :         procedure(real(RKC))                                :: getFunc
   11276             :         type(ninf_type)     , intent(in)                    :: lb
   11277             :         real(RKC)           , intent(in)                    :: ub
   11278             :         real(RKC)           , intent(in)                    :: abstol
   11279             :         real(RKC)           , intent(in)                    :: reltol
   11280             :         type(GK61_type)     , intent(in)                    :: qrule
   11281             :         type(weps_type)     , intent(in)                    :: help
   11282             :         real(RKC)           , intent(out)                   :: integral, abserr
   11283             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   11284             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   11285             :         integer(IK)         , intent(out)                   :: neval
   11286             :         integer(IK)         , intent(out)                   :: nint
   11287             :         integer(IK)                                         :: err
   11288             :     end function
   11289             : #endif
   11290             : 
   11291             : #if RK1_ENABLED
   11292             :     module function QAGS_GK61_IF_RK1(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   11293             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   11294             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK61_IF_RK1
   11295             : #endif
   11296             :         use pm_kind, only: RKC => RK1
   11297             :         procedure(real(RKC))                                :: getFunc
   11298             :         type(ninf_type)     , intent(in)                    :: lb
   11299             :         real(RKC)           , intent(in)                    :: ub
   11300             :         real(RKC)           , intent(in)                    :: abstol
   11301             :         real(RKC)           , intent(in)                    :: reltol
   11302             :         type(GK61_type)     , intent(in)                    :: qrule
   11303             :         type(weps_type)     , intent(in)                    :: help
   11304             :         real(RKC)           , intent(out)                   :: integral, abserr
   11305             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   11306             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   11307             :         integer(IK)         , intent(out)                   :: neval
   11308             :         integer(IK)         , intent(out)                   :: nint
   11309             :         integer(IK)                                         :: err
   11310             :     end function
   11311             : #endif
   11312             : 
   11313             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   11314             : 
   11315             : #if RK5_ENABLED
   11316             :     module function QAGS_GK61_II_RK5(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   11317             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   11318             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK61_II_RK5
   11319             : #endif
   11320             :         use pm_kind, only: RKC => RK5
   11321             :         procedure(real(RKC))                                :: getFunc
   11322             :         type(ninf_type)     , intent(in)                    :: lb
   11323             :         type(pinf_type)     , intent(in)                    :: ub
   11324             :         real(RKC)           , intent(in)                    :: abstol
   11325             :         real(RKC)           , intent(in)                    :: reltol
   11326             :         type(GK61_type)     , intent(in)                    :: qrule
   11327             :         type(weps_type)     , intent(in)                    :: help
   11328             :         real(RKC)           , intent(out)                   :: integral, abserr
   11329             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   11330             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   11331             :         integer(IK)         , intent(out)                   :: neval
   11332             :         integer(IK)         , intent(out)                   :: nint
   11333             :         integer(IK)                                         :: err
   11334             :     end function
   11335             : #endif
   11336             : 
   11337             : #if RK4_ENABLED
   11338             :     module function QAGS_GK61_II_RK4(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   11339             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   11340             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK61_II_RK4
   11341             : #endif
   11342             :         use pm_kind, only: RKC => RK4
   11343             :         procedure(real(RKC))                                :: getFunc
   11344             :         type(ninf_type)     , intent(in)                    :: lb
   11345             :         type(pinf_type)     , intent(in)                    :: ub
   11346             :         real(RKC)           , intent(in)                    :: abstol
   11347             :         real(RKC)           , intent(in)                    :: reltol
   11348             :         type(GK61_type)     , intent(in)                    :: qrule
   11349             :         type(weps_type)     , intent(in)                    :: help
   11350             :         real(RKC)           , intent(out)                   :: integral, abserr
   11351             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   11352             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   11353             :         integer(IK)         , intent(out)                   :: neval
   11354             :         integer(IK)         , intent(out)                   :: nint
   11355             :         integer(IK)                                         :: err
   11356             :     end function
   11357             : #endif
   11358             : 
   11359             : #if RK3_ENABLED
   11360             :     module function QAGS_GK61_II_RK3(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   11361             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   11362             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK61_II_RK3
   11363             : #endif
   11364             :         use pm_kind, only: RKC => RK3
   11365             :         procedure(real(RKC))                                :: getFunc
   11366             :         type(ninf_type)     , intent(in)                    :: lb
   11367             :         type(pinf_type)     , intent(in)                    :: ub
   11368             :         real(RKC)           , intent(in)                    :: abstol
   11369             :         real(RKC)           , intent(in)                    :: reltol
   11370             :         type(GK61_type)     , intent(in)                    :: qrule
   11371             :         type(weps_type)     , intent(in)                    :: help
   11372             :         real(RKC)           , intent(out)                   :: integral, abserr
   11373             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   11374             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   11375             :         integer(IK)         , intent(out)                   :: neval
   11376             :         integer(IK)         , intent(out)                   :: nint
   11377             :         integer(IK)                                         :: err
   11378             :     end function
   11379             : #endif
   11380             : 
   11381             : #if RK2_ENABLED
   11382             :     module function QAGS_GK61_II_RK2(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   11383             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   11384             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK61_II_RK2
   11385             : #endif
   11386             :         use pm_kind, only: RKC => RK2
   11387             :         procedure(real(RKC))                                :: getFunc
   11388             :         type(ninf_type)     , intent(in)                    :: lb
   11389             :         type(pinf_type)     , intent(in)                    :: ub
   11390             :         real(RKC)           , intent(in)                    :: abstol
   11391             :         real(RKC)           , intent(in)                    :: reltol
   11392             :         type(GK61_type)     , intent(in)                    :: qrule
   11393             :         type(weps_type)     , intent(in)                    :: help
   11394             :         real(RKC)           , intent(out)                   :: integral, abserr
   11395             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   11396             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   11397             :         integer(IK)         , intent(out)                   :: neval
   11398             :         integer(IK)         , intent(out)                   :: nint
   11399             :         integer(IK)                                         :: err
   11400             :     end function
   11401             : #endif
   11402             : 
   11403             : #if RK1_ENABLED
   11404             :     module function QAGS_GK61_II_RK1(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   11405             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   11406             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GK61_II_RK1
   11407             : #endif
   11408             :         use pm_kind, only: RKC => RK1
   11409             :         procedure(real(RKC))                                :: getFunc
   11410             :         type(ninf_type)     , intent(in)                    :: lb
   11411             :         type(pinf_type)     , intent(in)                    :: ub
   11412             :         real(RKC)           , intent(in)                    :: abstol
   11413             :         real(RKC)           , intent(in)                    :: reltol
   11414             :         type(GK61_type)     , intent(in)                    :: qrule
   11415             :         type(weps_type)     , intent(in)                    :: help
   11416             :         real(RKC)           , intent(out)                   :: integral, abserr
   11417             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   11418             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   11419             :         integer(IK)         , intent(out)                   :: neval
   11420             :         integer(IK)         , intent(out)                   :: nint
   11421             :         integer(IK)                                         :: err
   11422             :     end function
   11423             : #endif
   11424             : 
   11425             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   11426             : 
   11427             :     end interface
   11428             : 
   11429             :     ! QAGS_GKXX
   11430             : 
   11431             :     interface getQuadErr
   11432             : 
   11433             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   11434             : 
   11435             : #if RK5_ENABLED
   11436             :     module function QAGS_GKXX_FF_RK5(getFunc, lb, ub, abstol, reltol, nodeK, weightK, weightG, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   11437             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   11438             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GKXX_FF_RK5
   11439             : #endif
   11440             :         use pm_kind, only: RKC => RK5
   11441             :         procedure(real(RKC))                                :: getFunc
   11442             :         real(RKC)           , intent(in)                    :: lb
   11443             :         real(RKC)           , intent(in)                    :: ub
   11444             :         real(RKC)           , intent(in)                    :: abstol
   11445             :         real(RKC)           , intent(in)                    :: reltol
   11446             :         real(RKC)           , intent(in)    , contiguous    :: nodeK(:), weightK(:), weightG(:)
   11447             :         type(weps_type)     , intent(in)                    :: help
   11448             :         real(RKC)           , intent(out)                   :: integral, abserr
   11449             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   11450             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   11451             :         integer(IK)         , intent(out)                   :: neval
   11452             :         integer(IK)         , intent(out)                   :: nint
   11453             :         integer(IK)                                         :: err
   11454             :     end function
   11455             : #endif
   11456             : 
   11457             : #if RK4_ENABLED
   11458             :     module function QAGS_GKXX_FF_RK4(getFunc, lb, ub, abstol, reltol, nodeK, weightK, weightG, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   11459             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   11460             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GKXX_FF_RK4
   11461             : #endif
   11462             :         use pm_kind, only: RKC => RK4
   11463             :         procedure(real(RKC))                                :: getFunc
   11464             :         real(RKC)           , intent(in)                    :: lb
   11465             :         real(RKC)           , intent(in)                    :: ub
   11466             :         real(RKC)           , intent(in)                    :: abstol
   11467             :         real(RKC)           , intent(in)                    :: reltol
   11468             :         real(RKC)           , intent(in)    , contiguous    :: nodeK(:), weightK(:), weightG(:)
   11469             :         type(weps_type)     , intent(in)                    :: help
   11470             :         real(RKC)           , intent(out)                   :: integral, abserr
   11471             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   11472             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   11473             :         integer(IK)         , intent(out)                   :: neval
   11474             :         integer(IK)         , intent(out)                   :: nint
   11475             :         integer(IK)                                         :: err
   11476             :     end function
   11477             : #endif
   11478             : 
   11479             : #if RK3_ENABLED
   11480             :     module function QAGS_GKXX_FF_RK3(getFunc, lb, ub, abstol, reltol, nodeK, weightK, weightG, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   11481             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   11482             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GKXX_FF_RK3
   11483             : #endif
   11484             :         use pm_kind, only: RKC => RK3
   11485             :         procedure(real(RKC))                                :: getFunc
   11486             :         real(RKC)           , intent(in)                    :: lb
   11487             :         real(RKC)           , intent(in)                    :: ub
   11488             :         real(RKC)           , intent(in)                    :: abstol
   11489             :         real(RKC)           , intent(in)                    :: reltol
   11490             :         real(RKC)           , intent(in)    , contiguous    :: nodeK(:), weightK(:), weightG(:)
   11491             :         type(weps_type)     , intent(in)                    :: help
   11492             :         real(RKC)           , intent(out)                   :: integral, abserr
   11493             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   11494             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   11495             :         integer(IK)         , intent(out)                   :: neval
   11496             :         integer(IK)         , intent(out)                   :: nint
   11497             :         integer(IK)                                         :: err
   11498             :     end function
   11499             : #endif
   11500             : 
   11501             : #if RK2_ENABLED
   11502             :     module function QAGS_GKXX_FF_RK2(getFunc, lb, ub, abstol, reltol, nodeK, weightK, weightG, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   11503             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   11504             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GKXX_FF_RK2
   11505             : #endif
   11506             :         use pm_kind, only: RKC => RK2
   11507             :         procedure(real(RKC))                                :: getFunc
   11508             :         real(RKC)           , intent(in)                    :: lb
   11509             :         real(RKC)           , intent(in)                    :: ub
   11510             :         real(RKC)           , intent(in)                    :: abstol
   11511             :         real(RKC)           , intent(in)                    :: reltol
   11512             :         real(RKC)           , intent(in)    , contiguous    :: nodeK(:), weightK(:), weightG(:)
   11513             :         type(weps_type)     , intent(in)                    :: help
   11514             :         real(RKC)           , intent(out)                   :: integral, abserr
   11515             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   11516             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   11517             :         integer(IK)         , intent(out)                   :: neval
   11518             :         integer(IK)         , intent(out)                   :: nint
   11519             :         integer(IK)                                         :: err
   11520             :     end function
   11521             : #endif
   11522             : 
   11523             : #if RK1_ENABLED
   11524             :     module function QAGS_GKXX_FF_RK1(getFunc, lb, ub, abstol, reltol, nodeK, weightK, weightG, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   11525             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   11526             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GKXX_FF_RK1
   11527             : #endif
   11528             :         use pm_kind, only: RKC => RK1
   11529             :         procedure(real(RKC))                                :: getFunc
   11530             :         real(RKC)           , intent(in)                    :: lb
   11531             :         real(RKC)           , intent(in)                    :: ub
   11532             :         real(RKC)           , intent(in)                    :: abstol
   11533             :         real(RKC)           , intent(in)                    :: reltol
   11534             :         real(RKC)           , intent(in)    , contiguous    :: nodeK(:), weightK(:), weightG(:)
   11535             :         type(weps_type)     , intent(in)                    :: help
   11536             :         real(RKC)           , intent(out)                   :: integral, abserr
   11537             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   11538             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   11539             :         integer(IK)         , intent(out)                   :: neval
   11540             :         integer(IK)         , intent(out)                   :: nint
   11541             :         integer(IK)                                         :: err
   11542             :     end function
   11543             : #endif
   11544             : 
   11545             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   11546             : 
   11547             : #if RK5_ENABLED
   11548             :     module function QAGS_GKXX_FI_RK5(getFunc, lb, ub, abstol, reltol, nodeK, weightK, weightG, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   11549             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   11550             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GKXX_FI_RK5
   11551             : #endif
   11552             :         use pm_kind, only: RKC => RK5
   11553             :         procedure(real(RKC))                                :: getFunc
   11554             :         real(RKC)           , intent(in)                    :: lb
   11555             :         type(pinf_type)     , intent(in)                    :: ub
   11556             :         real(RKC)           , intent(in)                    :: abstol
   11557             :         real(RKC)           , intent(in)                    :: reltol
   11558             :         real(RKC)           , intent(in)    , contiguous    :: nodeK(:), weightK(:), weightG(:)
   11559             :         type(weps_type)     , intent(in)                    :: help
   11560             :         real(RKC)           , intent(out)                   :: integral, abserr
   11561             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   11562             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   11563             :         integer(IK)         , intent(out)                   :: neval
   11564             :         integer(IK)         , intent(out)                   :: nint
   11565             :         integer(IK)                                         :: err
   11566             :     end function
   11567             : #endif
   11568             : 
   11569             : #if RK4_ENABLED
   11570             :     module function QAGS_GKXX_FI_RK4(getFunc, lb, ub, abstol, reltol, nodeK, weightK, weightG, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   11571             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   11572             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GKXX_FI_RK4
   11573             : #endif
   11574             :         use pm_kind, only: RKC => RK4
   11575             :         procedure(real(RKC))                                :: getFunc
   11576             :         real(RKC)           , intent(in)                    :: lb
   11577             :         type(pinf_type)     , intent(in)                    :: ub
   11578             :         real(RKC)           , intent(in)                    :: abstol
   11579             :         real(RKC)           , intent(in)                    :: reltol
   11580             :         real(RKC)           , intent(in)    , contiguous    :: nodeK(:), weightK(:), weightG(:)
   11581             :         type(weps_type)     , intent(in)                    :: help
   11582             :         real(RKC)           , intent(out)                   :: integral, abserr
   11583             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   11584             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   11585             :         integer(IK)         , intent(out)                   :: neval
   11586             :         integer(IK)         , intent(out)                   :: nint
   11587             :         integer(IK)                                         :: err
   11588             :     end function
   11589             : #endif
   11590             : 
   11591             : #if RK3_ENABLED
   11592             :     module function QAGS_GKXX_FI_RK3(getFunc, lb, ub, abstol, reltol, nodeK, weightK, weightG, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   11593             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   11594             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GKXX_FI_RK3
   11595             : #endif
   11596             :         use pm_kind, only: RKC => RK3
   11597             :         procedure(real(RKC))                                :: getFunc
   11598             :         real(RKC)           , intent(in)                    :: lb
   11599             :         type(pinf_type)     , intent(in)                    :: ub
   11600             :         real(RKC)           , intent(in)                    :: abstol
   11601             :         real(RKC)           , intent(in)                    :: reltol
   11602             :         real(RKC)           , intent(in)    , contiguous    :: nodeK(:), weightK(:), weightG(:)
   11603             :         type(weps_type)     , intent(in)                    :: help
   11604             :         real(RKC)           , intent(out)                   :: integral, abserr
   11605             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   11606             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   11607             :         integer(IK)         , intent(out)                   :: neval
   11608             :         integer(IK)         , intent(out)                   :: nint
   11609             :         integer(IK)                                         :: err
   11610             :     end function
   11611             : #endif
   11612             : 
   11613             : #if RK2_ENABLED
   11614             :     module function QAGS_GKXX_FI_RK2(getFunc, lb, ub, abstol, reltol, nodeK, weightK, weightG, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   11615             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   11616             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GKXX_FI_RK2
   11617             : #endif
   11618             :         use pm_kind, only: RKC => RK2
   11619             :         procedure(real(RKC))                                :: getFunc
   11620             :         real(RKC)           , intent(in)                    :: lb
   11621             :         type(pinf_type)     , intent(in)                    :: ub
   11622             :         real(RKC)           , intent(in)                    :: abstol
   11623             :         real(RKC)           , intent(in)                    :: reltol
   11624             :         real(RKC)           , intent(in)    , contiguous    :: nodeK(:), weightK(:), weightG(:)
   11625             :         type(weps_type)     , intent(in)                    :: help
   11626             :         real(RKC)           , intent(out)                   :: integral, abserr
   11627             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   11628             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   11629             :         integer(IK)         , intent(out)                   :: neval
   11630             :         integer(IK)         , intent(out)                   :: nint
   11631             :         integer(IK)                                         :: err
   11632             :     end function
   11633             : #endif
   11634             : 
   11635             : #if RK1_ENABLED
   11636             :     module function QAGS_GKXX_FI_RK1(getFunc, lb, ub, abstol, reltol, nodeK, weightK, weightG, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   11637             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   11638             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GKXX_FI_RK1
   11639             : #endif
   11640             :         use pm_kind, only: RKC => RK1
   11641             :         procedure(real(RKC))                                :: getFunc
   11642             :         real(RKC)           , intent(in)                    :: lb
   11643             :         type(pinf_type)     , intent(in)                    :: ub
   11644             :         real(RKC)           , intent(in)                    :: abstol
   11645             :         real(RKC)           , intent(in)                    :: reltol
   11646             :         real(RKC)           , intent(in)    , contiguous    :: nodeK(:), weightK(:), weightG(:)
   11647             :         type(weps_type)     , intent(in)                    :: help
   11648             :         real(RKC)           , intent(out)                   :: integral, abserr
   11649             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   11650             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   11651             :         integer(IK)         , intent(out)                   :: neval
   11652             :         integer(IK)         , intent(out)                   :: nint
   11653             :         integer(IK)                                         :: err
   11654             :     end function
   11655             : #endif
   11656             : 
   11657             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   11658             : 
   11659             : #if RK5_ENABLED
   11660             :     module function QAGS_GKXX_IF_RK5(getFunc, lb, ub, abstol, reltol, nodeK, weightK, weightG, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   11661             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   11662             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GKXX_IF_RK5
   11663             : #endif
   11664             :         use pm_kind, only: RKC => RK5
   11665             :         procedure(real(RKC))                                :: getFunc
   11666             :         type(ninf_type)     , intent(in)                    :: lb
   11667             :         real(RKC)           , intent(in)                    :: ub
   11668             :         real(RKC)           , intent(in)                    :: abstol
   11669             :         real(RKC)           , intent(in)                    :: reltol
   11670             :         real(RKC)           , intent(in)    , contiguous    :: nodeK(:), weightK(:), weightG(:)
   11671             :         type(weps_type)     , intent(in)                    :: help
   11672             :         real(RKC)           , intent(out)                   :: integral, abserr
   11673             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   11674             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   11675             :         integer(IK)         , intent(out)                   :: neval
   11676             :         integer(IK)         , intent(out)                   :: nint
   11677             :         integer(IK)                                         :: err
   11678             :     end function
   11679             : #endif
   11680             : 
   11681             : #if RK4_ENABLED
   11682             :     module function QAGS_GKXX_IF_RK4(getFunc, lb, ub, abstol, reltol, nodeK, weightK, weightG, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   11683             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   11684             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GKXX_IF_RK4
   11685             : #endif
   11686             :         use pm_kind, only: RKC => RK4
   11687             :         procedure(real(RKC))                                :: getFunc
   11688             :         type(ninf_type)     , intent(in)                    :: lb
   11689             :         real(RKC)           , intent(in)                    :: ub
   11690             :         real(RKC)           , intent(in)                    :: abstol
   11691             :         real(RKC)           , intent(in)                    :: reltol
   11692             :         real(RKC)           , intent(in)    , contiguous    :: nodeK(:), weightK(:), weightG(:)
   11693             :         type(weps_type)     , intent(in)                    :: help
   11694             :         real(RKC)           , intent(out)                   :: integral, abserr
   11695             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   11696             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   11697             :         integer(IK)         , intent(out)                   :: neval
   11698             :         integer(IK)         , intent(out)                   :: nint
   11699             :         integer(IK)                                         :: err
   11700             :     end function
   11701             : #endif
   11702             : 
   11703             : #if RK3_ENABLED
   11704             :     module function QAGS_GKXX_IF_RK3(getFunc, lb, ub, abstol, reltol, nodeK, weightK, weightG, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   11705             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   11706             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GKXX_IF_RK3
   11707             : #endif
   11708             :         use pm_kind, only: RKC => RK3
   11709             :         procedure(real(RKC))                                :: getFunc
   11710             :         type(ninf_type)     , intent(in)                    :: lb
   11711             :         real(RKC)           , intent(in)                    :: ub
   11712             :         real(RKC)           , intent(in)                    :: abstol
   11713             :         real(RKC)           , intent(in)                    :: reltol
   11714             :         real(RKC)           , intent(in)    , contiguous    :: nodeK(:), weightK(:), weightG(:)
   11715             :         type(weps_type)     , intent(in)                    :: help
   11716             :         real(RKC)           , intent(out)                   :: integral, abserr
   11717             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   11718             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   11719             :         integer(IK)         , intent(out)                   :: neval
   11720             :         integer(IK)         , intent(out)                   :: nint
   11721             :         integer(IK)                                         :: err
   11722             :     end function
   11723             : #endif
   11724             : 
   11725             : #if RK2_ENABLED
   11726             :     module function QAGS_GKXX_IF_RK2(getFunc, lb, ub, abstol, reltol, nodeK, weightK, weightG, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   11727             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   11728             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GKXX_IF_RK2
   11729             : #endif
   11730             :         use pm_kind, only: RKC => RK2
   11731             :         procedure(real(RKC))                                :: getFunc
   11732             :         type(ninf_type)     , intent(in)                    :: lb
   11733             :         real(RKC)           , intent(in)                    :: ub
   11734             :         real(RKC)           , intent(in)                    :: abstol
   11735             :         real(RKC)           , intent(in)                    :: reltol
   11736             :         real(RKC)           , intent(in)    , contiguous    :: nodeK(:), weightK(:), weightG(:)
   11737             :         type(weps_type)     , intent(in)                    :: help
   11738             :         real(RKC)           , intent(out)                   :: integral, abserr
   11739             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   11740             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   11741             :         integer(IK)         , intent(out)                   :: neval
   11742             :         integer(IK)         , intent(out)                   :: nint
   11743             :         integer(IK)                                         :: err
   11744             :     end function
   11745             : #endif
   11746             : 
   11747             : #if RK1_ENABLED
   11748             :     module function QAGS_GKXX_IF_RK1(getFunc, lb, ub, abstol, reltol, nodeK, weightK, weightG, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   11749             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   11750             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GKXX_IF_RK1
   11751             : #endif
   11752             :         use pm_kind, only: RKC => RK1
   11753             :         procedure(real(RKC))                                :: getFunc
   11754             :         type(ninf_type)     , intent(in)                    :: lb
   11755             :         real(RKC)           , intent(in)                    :: ub
   11756             :         real(RKC)           , intent(in)                    :: abstol
   11757             :         real(RKC)           , intent(in)                    :: reltol
   11758             :         real(RKC)           , intent(in)    , contiguous    :: nodeK(:), weightK(:), weightG(:)
   11759             :         type(weps_type)     , intent(in)                    :: help
   11760             :         real(RKC)           , intent(out)                   :: integral, abserr
   11761             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   11762             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   11763             :         integer(IK)         , intent(out)                   :: neval
   11764             :         integer(IK)         , intent(out)                   :: nint
   11765             :         integer(IK)                                         :: err
   11766             :     end function
   11767             : #endif
   11768             : 
   11769             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   11770             : 
   11771             : #if RK5_ENABLED
   11772             :     module function QAGS_GKXX_II_RK5(getFunc, lb, ub, abstol, reltol, nodeK, weightK, weightG, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   11773             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   11774             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GKXX_II_RK5
   11775             : #endif
   11776             :         use pm_kind, only: RKC => RK5
   11777             :         procedure(real(RKC))                                :: getFunc
   11778             :         type(ninf_type)     , intent(in)                    :: lb
   11779             :         type(pinf_type)     , intent(in)                    :: ub
   11780             :         real(RKC)           , intent(in)                    :: abstol
   11781             :         real(RKC)           , intent(in)                    :: reltol
   11782             :         real(RKC)           , intent(in)    , contiguous    :: nodeK(:), weightK(:), weightG(:)
   11783             :         type(weps_type)     , intent(in)                    :: help
   11784             :         real(RKC)           , intent(out)                   :: integral, abserr
   11785             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   11786             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   11787             :         integer(IK)         , intent(out)                   :: neval
   11788             :         integer(IK)         , intent(out)                   :: nint
   11789             :         integer(IK)                                         :: err
   11790             :     end function
   11791             : #endif
   11792             : 
   11793             : #if RK4_ENABLED
   11794             :     module function QAGS_GKXX_II_RK4(getFunc, lb, ub, abstol, reltol, nodeK, weightK, weightG, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   11795             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   11796             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GKXX_II_RK4
   11797             : #endif
   11798             :         use pm_kind, only: RKC => RK4
   11799             :         procedure(real(RKC))                                :: getFunc
   11800             :         type(ninf_type)     , intent(in)                    :: lb
   11801             :         type(pinf_type)     , intent(in)                    :: ub
   11802             :         real(RKC)           , intent(in)                    :: abstol
   11803             :         real(RKC)           , intent(in)                    :: reltol
   11804             :         real(RKC)           , intent(in)    , contiguous    :: nodeK(:), weightK(:), weightG(:)
   11805             :         type(weps_type)     , intent(in)                    :: help
   11806             :         real(RKC)           , intent(out)                   :: integral, abserr
   11807             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   11808             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   11809             :         integer(IK)         , intent(out)                   :: neval
   11810             :         integer(IK)         , intent(out)                   :: nint
   11811             :         integer(IK)                                         :: err
   11812             :     end function
   11813             : #endif
   11814             : 
   11815             : #if RK3_ENABLED
   11816             :     module function QAGS_GKXX_II_RK3(getFunc, lb, ub, abstol, reltol, nodeK, weightK, weightG, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   11817             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   11818             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GKXX_II_RK3
   11819             : #endif
   11820             :         use pm_kind, only: RKC => RK3
   11821             :         procedure(real(RKC))                                :: getFunc
   11822             :         type(ninf_type)     , intent(in)                    :: lb
   11823             :         type(pinf_type)     , intent(in)                    :: ub
   11824             :         real(RKC)           , intent(in)                    :: abstol
   11825             :         real(RKC)           , intent(in)                    :: reltol
   11826             :         real(RKC)           , intent(in)    , contiguous    :: nodeK(:), weightK(:), weightG(:)
   11827             :         type(weps_type)     , intent(in)                    :: help
   11828             :         real(RKC)           , intent(out)                   :: integral, abserr
   11829             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   11830             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   11831             :         integer(IK)         , intent(out)                   :: neval
   11832             :         integer(IK)         , intent(out)                   :: nint
   11833             :         integer(IK)                                         :: err
   11834             :     end function
   11835             : #endif
   11836             : 
   11837             : #if RK2_ENABLED
   11838             :     module function QAGS_GKXX_II_RK2(getFunc, lb, ub, abstol, reltol, nodeK, weightK, weightG, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   11839             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   11840             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GKXX_II_RK2
   11841             : #endif
   11842             :         use pm_kind, only: RKC => RK2
   11843             :         procedure(real(RKC))                                :: getFunc
   11844             :         type(ninf_type)     , intent(in)                    :: lb
   11845             :         type(pinf_type)     , intent(in)                    :: ub
   11846             :         real(RKC)           , intent(in)                    :: abstol
   11847             :         real(RKC)           , intent(in)                    :: reltol
   11848             :         real(RKC)           , intent(in)    , contiguous    :: nodeK(:), weightK(:), weightG(:)
   11849             :         type(weps_type)     , intent(in)                    :: help
   11850             :         real(RKC)           , intent(out)                   :: integral, abserr
   11851             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   11852             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   11853             :         integer(IK)         , intent(out)                   :: neval
   11854             :         integer(IK)         , intent(out)                   :: nint
   11855             :         integer(IK)                                         :: err
   11856             :     end function
   11857             : #endif
   11858             : 
   11859             : #if RK1_ENABLED
   11860             :     module function QAGS_GKXX_II_RK1(getFunc, lb, ub, abstol, reltol, nodeK, weightK, weightG, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   11861             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   11862             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGS_GKXX_II_RK1
   11863             : #endif
   11864             :         use pm_kind, only: RKC => RK1
   11865             :         procedure(real(RKC))                                :: getFunc
   11866             :         type(ninf_type)     , intent(in)                    :: lb
   11867             :         type(pinf_type)     , intent(in)                    :: ub
   11868             :         real(RKC)           , intent(in)                    :: abstol
   11869             :         real(RKC)           , intent(in)                    :: reltol
   11870             :         real(RKC)           , intent(in)    , contiguous    :: nodeK(:), weightK(:), weightG(:)
   11871             :         type(weps_type)     , intent(in)                    :: help
   11872             :         real(RKC)           , intent(out)                   :: integral, abserr
   11873             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   11874             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   11875             :         integer(IK)         , intent(out)                   :: neval
   11876             :         integer(IK)         , intent(out)                   :: nint
   11877             :         integer(IK)                                         :: err
   11878             :     end function
   11879             : #endif
   11880             : 
   11881             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   11882             : 
   11883             :     end interface
   11884             : 
   11885             : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   11886             : 
   11887             :     ! QAGP_GK15
   11888             : 
   11889             :     interface getQuadErr
   11890             : 
   11891             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   11892             : 
   11893             : #if RK5_ENABLED
   11894             :     module function QAGP_GK15_FF_RK5(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   11895             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   11896             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK15_FF_RK5
   11897             : #endif
   11898             :         use pm_kind, only: RKC => RK5
   11899             :         procedure(real(RKC))                                :: getFunc
   11900             :         real(RKC)           , intent(in)                    :: lb
   11901             :         real(RKC)           , intent(in)                    :: ub
   11902             :         real(RKC)           , intent(in)                    :: abstol
   11903             :         real(RKC)           , intent(in)                    :: reltol
   11904             :         type(GK15_type)     , intent(in)                    :: qrule
   11905             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   11906             :         real(RKC)           , intent(out)                   :: integral, abserr
   11907             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   11908             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   11909             :         integer(IK)         , intent(out)                   :: neval
   11910             :         integer(IK)         , intent(out)                   :: nint
   11911             :         integer(IK)                                         :: err
   11912             :     end function
   11913             : #endif
   11914             : 
   11915             : #if RK4_ENABLED
   11916             :     module function QAGP_GK15_FF_RK4(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   11917             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   11918             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK15_FF_RK4
   11919             : #endif
   11920             :         use pm_kind, only: RKC => RK4
   11921             :         procedure(real(RKC))                                :: getFunc
   11922             :         real(RKC)           , intent(in)                    :: lb
   11923             :         real(RKC)           , intent(in)                    :: ub
   11924             :         real(RKC)           , intent(in)                    :: abstol
   11925             :         real(RKC)           , intent(in)                    :: reltol
   11926             :         type(GK15_type)     , intent(in)                    :: qrule
   11927             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   11928             :         real(RKC)           , intent(out)                   :: integral, abserr
   11929             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   11930             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   11931             :         integer(IK)         , intent(out)                   :: neval
   11932             :         integer(IK)         , intent(out)                   :: nint
   11933             :         integer(IK)                                         :: err
   11934             :     end function
   11935             : #endif
   11936             : 
   11937             : #if RK3_ENABLED
   11938             :     module function QAGP_GK15_FF_RK3(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   11939             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   11940             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK15_FF_RK3
   11941             : #endif
   11942             :         use pm_kind, only: RKC => RK3
   11943             :         procedure(real(RKC))                                :: getFunc
   11944             :         real(RKC)           , intent(in)                    :: lb
   11945             :         real(RKC)           , intent(in)                    :: ub
   11946             :         real(RKC)           , intent(in)                    :: abstol
   11947             :         real(RKC)           , intent(in)                    :: reltol
   11948             :         type(GK15_type)     , intent(in)                    :: qrule
   11949             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   11950             :         real(RKC)           , intent(out)                   :: integral, abserr
   11951             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   11952             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   11953             :         integer(IK)         , intent(out)                   :: neval
   11954             :         integer(IK)         , intent(out)                   :: nint
   11955             :         integer(IK)                                         :: err
   11956             :     end function
   11957             : #endif
   11958             : 
   11959             : #if RK2_ENABLED
   11960             :     module function QAGP_GK15_FF_RK2(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   11961             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   11962             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK15_FF_RK2
   11963             : #endif
   11964             :         use pm_kind, only: RKC => RK2
   11965             :         procedure(real(RKC))                                :: getFunc
   11966             :         real(RKC)           , intent(in)                    :: lb
   11967             :         real(RKC)           , intent(in)                    :: ub
   11968             :         real(RKC)           , intent(in)                    :: abstol
   11969             :         real(RKC)           , intent(in)                    :: reltol
   11970             :         type(GK15_type)     , intent(in)                    :: qrule
   11971             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   11972             :         real(RKC)           , intent(out)                   :: integral, abserr
   11973             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   11974             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   11975             :         integer(IK)         , intent(out)                   :: neval
   11976             :         integer(IK)         , intent(out)                   :: nint
   11977             :         integer(IK)                                         :: err
   11978             :     end function
   11979             : #endif
   11980             : 
   11981             : #if RK1_ENABLED
   11982             :     module function QAGP_GK15_FF_RK1(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   11983             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   11984             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK15_FF_RK1
   11985             : #endif
   11986             :         use pm_kind, only: RKC => RK1
   11987             :         procedure(real(RKC))                                :: getFunc
   11988             :         real(RKC)           , intent(in)                    :: lb
   11989             :         real(RKC)           , intent(in)                    :: ub
   11990             :         real(RKC)           , intent(in)                    :: abstol
   11991             :         real(RKC)           , intent(in)                    :: reltol
   11992             :         type(GK15_type)     , intent(in)                    :: qrule
   11993             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   11994             :         real(RKC)           , intent(out)                   :: integral, abserr
   11995             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   11996             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   11997             :         integer(IK)         , intent(out)                   :: neval
   11998             :         integer(IK)         , intent(out)                   :: nint
   11999             :         integer(IK)                                         :: err
   12000             :     end function
   12001             : #endif
   12002             : 
   12003             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   12004             : 
   12005             : #if RK5_ENABLED
   12006             :     module function QAGP_GK15_FI_RK5(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   12007             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   12008             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK15_FI_RK5
   12009             : #endif
   12010             :         use pm_kind, only: RKC => RK5
   12011             :         procedure(real(RKC))                                :: getFunc
   12012             :         real(RKC)           , intent(in)                    :: lb
   12013             :         type(pinf_type)     , intent(in)                    :: ub
   12014             :         real(RKC)           , intent(in)                    :: abstol
   12015             :         real(RKC)           , intent(in)                    :: reltol
   12016             :         type(GK15_type)     , intent(in)                    :: qrule
   12017             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   12018             :         real(RKC)           , intent(out)                   :: integral, abserr
   12019             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   12020             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   12021             :         integer(IK)         , intent(out)                   :: neval
   12022             :         integer(IK)         , intent(out)                   :: nint
   12023             :         integer(IK)                                         :: err
   12024             :     end function
   12025             : #endif
   12026             : 
   12027             : #if RK4_ENABLED
   12028             :     module function QAGP_GK15_FI_RK4(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   12029             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   12030             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK15_FI_RK4
   12031             : #endif
   12032             :         use pm_kind, only: RKC => RK4
   12033             :         procedure(real(RKC))                                :: getFunc
   12034             :         real(RKC)           , intent(in)                    :: lb
   12035             :         type(pinf_type)     , intent(in)                    :: ub
   12036             :         real(RKC)           , intent(in)                    :: abstol
   12037             :         real(RKC)           , intent(in)                    :: reltol
   12038             :         type(GK15_type)     , intent(in)                    :: qrule
   12039             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   12040             :         real(RKC)           , intent(out)                   :: integral, abserr
   12041             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   12042             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   12043             :         integer(IK)         , intent(out)                   :: neval
   12044             :         integer(IK)         , intent(out)                   :: nint
   12045             :         integer(IK)                                         :: err
   12046             :     end function
   12047             : #endif
   12048             : 
   12049             : #if RK3_ENABLED
   12050             :     module function QAGP_GK15_FI_RK3(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   12051             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   12052             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK15_FI_RK3
   12053             : #endif
   12054             :         use pm_kind, only: RKC => RK3
   12055             :         procedure(real(RKC))                                :: getFunc
   12056             :         real(RKC)           , intent(in)                    :: lb
   12057             :         type(pinf_type)     , intent(in)                    :: ub
   12058             :         real(RKC)           , intent(in)                    :: abstol
   12059             :         real(RKC)           , intent(in)                    :: reltol
   12060             :         type(GK15_type)     , intent(in)                    :: qrule
   12061             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   12062             :         real(RKC)           , intent(out)                   :: integral, abserr
   12063             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   12064             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   12065             :         integer(IK)         , intent(out)                   :: neval
   12066             :         integer(IK)         , intent(out)                   :: nint
   12067             :         integer(IK)                                         :: err
   12068             :     end function
   12069             : #endif
   12070             : 
   12071             : #if RK2_ENABLED
   12072             :     module function QAGP_GK15_FI_RK2(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   12073             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   12074             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK15_FI_RK2
   12075             : #endif
   12076             :         use pm_kind, only: RKC => RK2
   12077             :         procedure(real(RKC))                                :: getFunc
   12078             :         real(RKC)           , intent(in)                    :: lb
   12079             :         type(pinf_type)     , intent(in)                    :: ub
   12080             :         real(RKC)           , intent(in)                    :: abstol
   12081             :         real(RKC)           , intent(in)                    :: reltol
   12082             :         type(GK15_type)     , intent(in)                    :: qrule
   12083             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   12084             :         real(RKC)           , intent(out)                   :: integral, abserr
   12085             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   12086             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   12087             :         integer(IK)         , intent(out)                   :: neval
   12088             :         integer(IK)         , intent(out)                   :: nint
   12089             :         integer(IK)                                         :: err
   12090             :     end function
   12091             : #endif
   12092             : 
   12093             : #if RK1_ENABLED
   12094             :     module function QAGP_GK15_FI_RK1(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   12095             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   12096             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK15_FI_RK1
   12097             : #endif
   12098             :         use pm_kind, only: RKC => RK1
   12099             :         procedure(real(RKC))                                :: getFunc
   12100             :         real(RKC)           , intent(in)                    :: lb
   12101             :         type(pinf_type)     , intent(in)                    :: ub
   12102             :         real(RKC)           , intent(in)                    :: abstol
   12103             :         real(RKC)           , intent(in)                    :: reltol
   12104             :         type(GK15_type)     , intent(in)                    :: qrule
   12105             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   12106             :         real(RKC)           , intent(out)                   :: integral, abserr
   12107             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   12108             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   12109             :         integer(IK)         , intent(out)                   :: neval
   12110             :         integer(IK)         , intent(out)                   :: nint
   12111             :         integer(IK)                                         :: err
   12112             :     end function
   12113             : #endif
   12114             : 
   12115             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   12116             : 
   12117             : #if RK5_ENABLED
   12118             :     module function QAGP_GK15_IF_RK5(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   12119             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   12120             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK15_IF_RK5
   12121             : #endif
   12122             :         use pm_kind, only: RKC => RK5
   12123             :         procedure(real(RKC))                                :: getFunc
   12124             :         type(ninf_type)     , intent(in)                    :: lb
   12125             :         real(RKC)           , intent(in)                    :: ub
   12126             :         real(RKC)           , intent(in)                    :: abstol
   12127             :         real(RKC)           , intent(in)                    :: reltol
   12128             :         type(GK15_type)     , intent(in)                    :: qrule
   12129             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   12130             :         real(RKC)           , intent(out)                   :: integral, abserr
   12131             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   12132             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   12133             :         integer(IK)         , intent(out)                   :: neval
   12134             :         integer(IK)         , intent(out)                   :: nint
   12135             :         integer(IK)                                         :: err
   12136             :     end function
   12137             : #endif
   12138             : 
   12139             : #if RK4_ENABLED
   12140             :     module function QAGP_GK15_IF_RK4(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   12141             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   12142             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK15_IF_RK4
   12143             : #endif
   12144             :         use pm_kind, only: RKC => RK4
   12145             :         procedure(real(RKC))                                :: getFunc
   12146             :         type(ninf_type)     , intent(in)                    :: lb
   12147             :         real(RKC)           , intent(in)                    :: ub
   12148             :         real(RKC)           , intent(in)                    :: abstol
   12149             :         real(RKC)           , intent(in)                    :: reltol
   12150             :         type(GK15_type)     , intent(in)                    :: qrule
   12151             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   12152             :         real(RKC)           , intent(out)                   :: integral, abserr
   12153             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   12154             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   12155             :         integer(IK)         , intent(out)                   :: neval
   12156             :         integer(IK)         , intent(out)                   :: nint
   12157             :         integer(IK)                                         :: err
   12158             :     end function
   12159             : #endif
   12160             : 
   12161             : #if RK3_ENABLED
   12162             :     module function QAGP_GK15_IF_RK3(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   12163             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   12164             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK15_IF_RK3
   12165             : #endif
   12166             :         use pm_kind, only: RKC => RK3
   12167             :         procedure(real(RKC))                                :: getFunc
   12168             :         type(ninf_type)     , intent(in)                    :: lb
   12169             :         real(RKC)           , intent(in)                    :: ub
   12170             :         real(RKC)           , intent(in)                    :: abstol
   12171             :         real(RKC)           , intent(in)                    :: reltol
   12172             :         type(GK15_type)     , intent(in)                    :: qrule
   12173             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   12174             :         real(RKC)           , intent(out)                   :: integral, abserr
   12175             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   12176             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   12177             :         integer(IK)         , intent(out)                   :: neval
   12178             :         integer(IK)         , intent(out)                   :: nint
   12179             :         integer(IK)                                         :: err
   12180             :     end function
   12181             : #endif
   12182             : 
   12183             : #if RK2_ENABLED
   12184             :     module function QAGP_GK15_IF_RK2(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   12185             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   12186             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK15_IF_RK2
   12187             : #endif
   12188             :         use pm_kind, only: RKC => RK2
   12189             :         procedure(real(RKC))                                :: getFunc
   12190             :         type(ninf_type)     , intent(in)                    :: lb
   12191             :         real(RKC)           , intent(in)                    :: ub
   12192             :         real(RKC)           , intent(in)                    :: abstol
   12193             :         real(RKC)           , intent(in)                    :: reltol
   12194             :         type(GK15_type)     , intent(in)                    :: qrule
   12195             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   12196             :         real(RKC)           , intent(out)                   :: integral, abserr
   12197             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   12198             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   12199             :         integer(IK)         , intent(out)                   :: neval
   12200             :         integer(IK)         , intent(out)                   :: nint
   12201             :         integer(IK)                                         :: err
   12202             :     end function
   12203             : #endif
   12204             : 
   12205             : #if RK1_ENABLED
   12206             :     module function QAGP_GK15_IF_RK1(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   12207             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   12208             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK15_IF_RK1
   12209             : #endif
   12210             :         use pm_kind, only: RKC => RK1
   12211             :         procedure(real(RKC))                                :: getFunc
   12212             :         type(ninf_type)     , intent(in)                    :: lb
   12213             :         real(RKC)           , intent(in)                    :: ub
   12214             :         real(RKC)           , intent(in)                    :: abstol
   12215             :         real(RKC)           , intent(in)                    :: reltol
   12216             :         type(GK15_type)     , intent(in)                    :: qrule
   12217             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   12218             :         real(RKC)           , intent(out)                   :: integral, abserr
   12219             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   12220             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   12221             :         integer(IK)         , intent(out)                   :: neval
   12222             :         integer(IK)         , intent(out)                   :: nint
   12223             :         integer(IK)                                         :: err
   12224             :     end function
   12225             : #endif
   12226             : 
   12227             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   12228             : 
   12229             : #if RK5_ENABLED
   12230             :     module function QAGP_GK15_II_RK5(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   12231             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   12232             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK15_II_RK5
   12233             : #endif
   12234             :         use pm_kind, only: RKC => RK5
   12235             :         procedure(real(RKC))                                :: getFunc
   12236             :         type(ninf_type)     , intent(in)                    :: lb
   12237             :         type(pinf_type)     , intent(in)                    :: ub
   12238             :         real(RKC)           , intent(in)                    :: abstol
   12239             :         real(RKC)           , intent(in)                    :: reltol
   12240             :         type(GK15_type)     , intent(in)                    :: qrule
   12241             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   12242             :         real(RKC)           , intent(out)                   :: integral, abserr
   12243             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   12244             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   12245             :         integer(IK)         , intent(out)                   :: neval
   12246             :         integer(IK)         , intent(out)                   :: nint
   12247             :         integer(IK)                                         :: err
   12248             :     end function
   12249             : #endif
   12250             : 
   12251             : #if RK4_ENABLED
   12252             :     module function QAGP_GK15_II_RK4(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   12253             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   12254             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK15_II_RK4
   12255             : #endif
   12256             :         use pm_kind, only: RKC => RK4
   12257             :         procedure(real(RKC))                                :: getFunc
   12258             :         type(ninf_type)     , intent(in)                    :: lb
   12259             :         type(pinf_type)     , intent(in)                    :: ub
   12260             :         real(RKC)           , intent(in)                    :: abstol
   12261             :         real(RKC)           , intent(in)                    :: reltol
   12262             :         type(GK15_type)     , intent(in)                    :: qrule
   12263             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   12264             :         real(RKC)           , intent(out)                   :: integral, abserr
   12265             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   12266             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   12267             :         integer(IK)         , intent(out)                   :: neval
   12268             :         integer(IK)         , intent(out)                   :: nint
   12269             :         integer(IK)                                         :: err
   12270             :     end function
   12271             : #endif
   12272             : 
   12273             : #if RK3_ENABLED
   12274             :     module function QAGP_GK15_II_RK3(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   12275             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   12276             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK15_II_RK3
   12277             : #endif
   12278             :         use pm_kind, only: RKC => RK3
   12279             :         procedure(real(RKC))                                :: getFunc
   12280             :         type(ninf_type)     , intent(in)                    :: lb
   12281             :         type(pinf_type)     , intent(in)                    :: ub
   12282             :         real(RKC)           , intent(in)                    :: abstol
   12283             :         real(RKC)           , intent(in)                    :: reltol
   12284             :         type(GK15_type)     , intent(in)                    :: qrule
   12285             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   12286             :         real(RKC)           , intent(out)                   :: integral, abserr
   12287             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   12288             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   12289             :         integer(IK)         , intent(out)                   :: neval
   12290             :         integer(IK)         , intent(out)                   :: nint
   12291             :         integer(IK)                                         :: err
   12292             :     end function
   12293             : #endif
   12294             : 
   12295             : #if RK2_ENABLED
   12296             :     module function QAGP_GK15_II_RK2(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   12297             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   12298             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK15_II_RK2
   12299             : #endif
   12300             :         use pm_kind, only: RKC => RK2
   12301             :         procedure(real(RKC))                                :: getFunc
   12302             :         type(ninf_type)     , intent(in)                    :: lb
   12303             :         type(pinf_type)     , intent(in)                    :: ub
   12304             :         real(RKC)           , intent(in)                    :: abstol
   12305             :         real(RKC)           , intent(in)                    :: reltol
   12306             :         type(GK15_type)     , intent(in)                    :: qrule
   12307             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   12308             :         real(RKC)           , intent(out)                   :: integral, abserr
   12309             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   12310             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   12311             :         integer(IK)         , intent(out)                   :: neval
   12312             :         integer(IK)         , intent(out)                   :: nint
   12313             :         integer(IK)                                         :: err
   12314             :     end function
   12315             : #endif
   12316             : 
   12317             : #if RK1_ENABLED
   12318             :     module function QAGP_GK15_II_RK1(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   12319             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   12320             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK15_II_RK1
   12321             : #endif
   12322             :         use pm_kind, only: RKC => RK1
   12323             :         procedure(real(RKC))                                :: getFunc
   12324             :         type(ninf_type)     , intent(in)                    :: lb
   12325             :         type(pinf_type)     , intent(in)                    :: ub
   12326             :         real(RKC)           , intent(in)                    :: abstol
   12327             :         real(RKC)           , intent(in)                    :: reltol
   12328             :         type(GK15_type)     , intent(in)                    :: qrule
   12329             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   12330             :         real(RKC)           , intent(out)                   :: integral, abserr
   12331             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   12332             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   12333             :         integer(IK)         , intent(out)                   :: neval
   12334             :         integer(IK)         , intent(out)                   :: nint
   12335             :         integer(IK)                                         :: err
   12336             :     end function
   12337             : #endif
   12338             : 
   12339             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   12340             : 
   12341             :     end interface
   12342             : 
   12343             :     ! QAGP_GK21
   12344             : 
   12345             :     interface getQuadErr
   12346             : 
   12347             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   12348             : 
   12349             : #if RK5_ENABLED
   12350             :     module function QAGP_GK21_FF_RK5(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   12351             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   12352             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK21_FF_RK5
   12353             : #endif
   12354             :         use pm_kind, only: RKC => RK5
   12355             :         procedure(real(RKC))                                :: getFunc
   12356             :         real(RKC)           , intent(in)                    :: lb
   12357             :         real(RKC)           , intent(in)                    :: ub
   12358             :         real(RKC)           , intent(in)                    :: abstol
   12359             :         real(RKC)           , intent(in)                    :: reltol
   12360             :         type(GK21_type)     , intent(in)                    :: qrule
   12361             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   12362             :         real(RKC)           , intent(out)                   :: integral, abserr
   12363             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   12364             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   12365             :         integer(IK)         , intent(out)                   :: neval
   12366             :         integer(IK)         , intent(out)                   :: nint
   12367             :         integer(IK)                                         :: err
   12368             :     end function
   12369             : #endif
   12370             : 
   12371             : #if RK4_ENABLED
   12372             :     module function QAGP_GK21_FF_RK4(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   12373             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   12374             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK21_FF_RK4
   12375             : #endif
   12376             :         use pm_kind, only: RKC => RK4
   12377             :         procedure(real(RKC))                                :: getFunc
   12378             :         real(RKC)           , intent(in)                    :: lb
   12379             :         real(RKC)           , intent(in)                    :: ub
   12380             :         real(RKC)           , intent(in)                    :: abstol
   12381             :         real(RKC)           , intent(in)                    :: reltol
   12382             :         type(GK21_type)     , intent(in)                    :: qrule
   12383             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   12384             :         real(RKC)           , intent(out)                   :: integral, abserr
   12385             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   12386             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   12387             :         integer(IK)         , intent(out)                   :: neval
   12388             :         integer(IK)         , intent(out)                   :: nint
   12389             :         integer(IK)                                         :: err
   12390             :     end function
   12391             : #endif
   12392             : 
   12393             : #if RK3_ENABLED
   12394             :     module function QAGP_GK21_FF_RK3(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   12395             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   12396             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK21_FF_RK3
   12397             : #endif
   12398             :         use pm_kind, only: RKC => RK3
   12399             :         procedure(real(RKC))                                :: getFunc
   12400             :         real(RKC)           , intent(in)                    :: lb
   12401             :         real(RKC)           , intent(in)                    :: ub
   12402             :         real(RKC)           , intent(in)                    :: abstol
   12403             :         real(RKC)           , intent(in)                    :: reltol
   12404             :         type(GK21_type)     , intent(in)                    :: qrule
   12405             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   12406             :         real(RKC)           , intent(out)                   :: integral, abserr
   12407             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   12408             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   12409             :         integer(IK)         , intent(out)                   :: neval
   12410             :         integer(IK)         , intent(out)                   :: nint
   12411             :         integer(IK)                                         :: err
   12412             :     end function
   12413             : #endif
   12414             : 
   12415             : #if RK2_ENABLED
   12416             :     module function QAGP_GK21_FF_RK2(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   12417             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   12418             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK21_FF_RK2
   12419             : #endif
   12420             :         use pm_kind, only: RKC => RK2
   12421             :         procedure(real(RKC))                                :: getFunc
   12422             :         real(RKC)           , intent(in)                    :: lb
   12423             :         real(RKC)           , intent(in)                    :: ub
   12424             :         real(RKC)           , intent(in)                    :: abstol
   12425             :         real(RKC)           , intent(in)                    :: reltol
   12426             :         type(GK21_type)     , intent(in)                    :: qrule
   12427             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   12428             :         real(RKC)           , intent(out)                   :: integral, abserr
   12429             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   12430             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   12431             :         integer(IK)         , intent(out)                   :: neval
   12432             :         integer(IK)         , intent(out)                   :: nint
   12433             :         integer(IK)                                         :: err
   12434             :     end function
   12435             : #endif
   12436             : 
   12437             : #if RK1_ENABLED
   12438             :     module function QAGP_GK21_FF_RK1(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   12439             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   12440             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK21_FF_RK1
   12441             : #endif
   12442             :         use pm_kind, only: RKC => RK1
   12443             :         procedure(real(RKC))                                :: getFunc
   12444             :         real(RKC)           , intent(in)                    :: lb
   12445             :         real(RKC)           , intent(in)                    :: ub
   12446             :         real(RKC)           , intent(in)                    :: abstol
   12447             :         real(RKC)           , intent(in)                    :: reltol
   12448             :         type(GK21_type)     , intent(in)                    :: qrule
   12449             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   12450             :         real(RKC)           , intent(out)                   :: integral, abserr
   12451             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   12452             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   12453             :         integer(IK)         , intent(out)                   :: neval
   12454             :         integer(IK)         , intent(out)                   :: nint
   12455             :         integer(IK)                                         :: err
   12456             :     end function
   12457             : #endif
   12458             : 
   12459             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   12460             : 
   12461             : #if RK5_ENABLED
   12462             :     module function QAGP_GK21_FI_RK5(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   12463             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   12464             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK21_FI_RK5
   12465             : #endif
   12466             :         use pm_kind, only: RKC => RK5
   12467             :         procedure(real(RKC))                                :: getFunc
   12468             :         real(RKC)           , intent(in)                    :: lb
   12469             :         type(pinf_type)     , intent(in)                    :: ub
   12470             :         real(RKC)           , intent(in)                    :: abstol
   12471             :         real(RKC)           , intent(in)                    :: reltol
   12472             :         type(GK21_type)     , intent(in)                    :: qrule
   12473             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   12474             :         real(RKC)           , intent(out)                   :: integral, abserr
   12475             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   12476             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   12477             :         integer(IK)         , intent(out)                   :: neval
   12478             :         integer(IK)         , intent(out)                   :: nint
   12479             :         integer(IK)                                         :: err
   12480             :     end function
   12481             : #endif
   12482             : 
   12483             : #if RK4_ENABLED
   12484             :     module function QAGP_GK21_FI_RK4(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   12485             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   12486             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK21_FI_RK4
   12487             : #endif
   12488             :         use pm_kind, only: RKC => RK4
   12489             :         procedure(real(RKC))                                :: getFunc
   12490             :         real(RKC)           , intent(in)                    :: lb
   12491             :         type(pinf_type)     , intent(in)                    :: ub
   12492             :         real(RKC)           , intent(in)                    :: abstol
   12493             :         real(RKC)           , intent(in)                    :: reltol
   12494             :         type(GK21_type)     , intent(in)                    :: qrule
   12495             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   12496             :         real(RKC)           , intent(out)                   :: integral, abserr
   12497             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   12498             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   12499             :         integer(IK)         , intent(out)                   :: neval
   12500             :         integer(IK)         , intent(out)                   :: nint
   12501             :         integer(IK)                                         :: err
   12502             :     end function
   12503             : #endif
   12504             : 
   12505             : #if RK3_ENABLED
   12506             :     module function QAGP_GK21_FI_RK3(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   12507             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   12508             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK21_FI_RK3
   12509             : #endif
   12510             :         use pm_kind, only: RKC => RK3
   12511             :         procedure(real(RKC))                                :: getFunc
   12512             :         real(RKC)           , intent(in)                    :: lb
   12513             :         type(pinf_type)     , intent(in)                    :: ub
   12514             :         real(RKC)           , intent(in)                    :: abstol
   12515             :         real(RKC)           , intent(in)                    :: reltol
   12516             :         type(GK21_type)     , intent(in)                    :: qrule
   12517             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   12518             :         real(RKC)           , intent(out)                   :: integral, abserr
   12519             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   12520             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   12521             :         integer(IK)         , intent(out)                   :: neval
   12522             :         integer(IK)         , intent(out)                   :: nint
   12523             :         integer(IK)                                         :: err
   12524             :     end function
   12525             : #endif
   12526             : 
   12527             : #if RK2_ENABLED
   12528             :     module function QAGP_GK21_FI_RK2(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   12529             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   12530             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK21_FI_RK2
   12531             : #endif
   12532             :         use pm_kind, only: RKC => RK2
   12533             :         procedure(real(RKC))                                :: getFunc
   12534             :         real(RKC)           , intent(in)                    :: lb
   12535             :         type(pinf_type)     , intent(in)                    :: ub
   12536             :         real(RKC)           , intent(in)                    :: abstol
   12537             :         real(RKC)           , intent(in)                    :: reltol
   12538             :         type(GK21_type)     , intent(in)                    :: qrule
   12539             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   12540             :         real(RKC)           , intent(out)                   :: integral, abserr
   12541             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   12542             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   12543             :         integer(IK)         , intent(out)                   :: neval
   12544             :         integer(IK)         , intent(out)                   :: nint
   12545             :         integer(IK)                                         :: err
   12546             :     end function
   12547             : #endif
   12548             : 
   12549             : #if RK1_ENABLED
   12550             :     module function QAGP_GK21_FI_RK1(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   12551             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   12552             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK21_FI_RK1
   12553             : #endif
   12554             :         use pm_kind, only: RKC => RK1
   12555             :         procedure(real(RKC))                                :: getFunc
   12556             :         real(RKC)           , intent(in)                    :: lb
   12557             :         type(pinf_type)     , intent(in)                    :: ub
   12558             :         real(RKC)           , intent(in)                    :: abstol
   12559             :         real(RKC)           , intent(in)                    :: reltol
   12560             :         type(GK21_type)     , intent(in)                    :: qrule
   12561             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   12562             :         real(RKC)           , intent(out)                   :: integral, abserr
   12563             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   12564             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   12565             :         integer(IK)         , intent(out)                   :: neval
   12566             :         integer(IK)         , intent(out)                   :: nint
   12567             :         integer(IK)                                         :: err
   12568             :     end function
   12569             : #endif
   12570             : 
   12571             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   12572             : 
   12573             : #if RK5_ENABLED
   12574             :     module function QAGP_GK21_IF_RK5(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   12575             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   12576             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK21_IF_RK5
   12577             : #endif
   12578             :         use pm_kind, only: RKC => RK5
   12579             :         procedure(real(RKC))                                :: getFunc
   12580             :         type(ninf_type)     , intent(in)                    :: lb
   12581             :         real(RKC)           , intent(in)                    :: ub
   12582             :         real(RKC)           , intent(in)                    :: abstol
   12583             :         real(RKC)           , intent(in)                    :: reltol
   12584             :         type(GK21_type)     , intent(in)                    :: qrule
   12585             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   12586             :         real(RKC)           , intent(out)                   :: integral, abserr
   12587             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   12588             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   12589             :         integer(IK)         , intent(out)                   :: neval
   12590             :         integer(IK)         , intent(out)                   :: nint
   12591             :         integer(IK)                                         :: err
   12592             :     end function
   12593             : #endif
   12594             : 
   12595             : #if RK4_ENABLED
   12596             :     module function QAGP_GK21_IF_RK4(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   12597             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   12598             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK21_IF_RK4
   12599             : #endif
   12600             :         use pm_kind, only: RKC => RK4
   12601             :         procedure(real(RKC))                                :: getFunc
   12602             :         type(ninf_type)     , intent(in)                    :: lb
   12603             :         real(RKC)           , intent(in)                    :: ub
   12604             :         real(RKC)           , intent(in)                    :: abstol
   12605             :         real(RKC)           , intent(in)                    :: reltol
   12606             :         type(GK21_type)     , intent(in)                    :: qrule
   12607             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   12608             :         real(RKC)           , intent(out)                   :: integral, abserr
   12609             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   12610             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   12611             :         integer(IK)         , intent(out)                   :: neval
   12612             :         integer(IK)         , intent(out)                   :: nint
   12613             :         integer(IK)                                         :: err
   12614             :     end function
   12615             : #endif
   12616             : 
   12617             : #if RK3_ENABLED
   12618             :     module function QAGP_GK21_IF_RK3(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   12619             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   12620             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK21_IF_RK3
   12621             : #endif
   12622             :         use pm_kind, only: RKC => RK3
   12623             :         procedure(real(RKC))                                :: getFunc
   12624             :         type(ninf_type)     , intent(in)                    :: lb
   12625             :         real(RKC)           , intent(in)                    :: ub
   12626             :         real(RKC)           , intent(in)                    :: abstol
   12627             :         real(RKC)           , intent(in)                    :: reltol
   12628             :         type(GK21_type)     , intent(in)                    :: qrule
   12629             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   12630             :         real(RKC)           , intent(out)                   :: integral, abserr
   12631             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   12632             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   12633             :         integer(IK)         , intent(out)                   :: neval
   12634             :         integer(IK)         , intent(out)                   :: nint
   12635             :         integer(IK)                                         :: err
   12636             :     end function
   12637             : #endif
   12638             : 
   12639             : #if RK2_ENABLED
   12640             :     module function QAGP_GK21_IF_RK2(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   12641             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   12642             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK21_IF_RK2
   12643             : #endif
   12644             :         use pm_kind, only: RKC => RK2
   12645             :         procedure(real(RKC))                                :: getFunc
   12646             :         type(ninf_type)     , intent(in)                    :: lb
   12647             :         real(RKC)           , intent(in)                    :: ub
   12648             :         real(RKC)           , intent(in)                    :: abstol
   12649             :         real(RKC)           , intent(in)                    :: reltol
   12650             :         type(GK21_type)     , intent(in)                    :: qrule
   12651             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   12652             :         real(RKC)           , intent(out)                   :: integral, abserr
   12653             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   12654             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   12655             :         integer(IK)         , intent(out)                   :: neval
   12656             :         integer(IK)         , intent(out)                   :: nint
   12657             :         integer(IK)                                         :: err
   12658             :     end function
   12659             : #endif
   12660             : 
   12661             : #if RK1_ENABLED
   12662             :     module function QAGP_GK21_IF_RK1(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   12663             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   12664             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK21_IF_RK1
   12665             : #endif
   12666             :         use pm_kind, only: RKC => RK1
   12667             :         procedure(real(RKC))                                :: getFunc
   12668             :         type(ninf_type)     , intent(in)                    :: lb
   12669             :         real(RKC)           , intent(in)                    :: ub
   12670             :         real(RKC)           , intent(in)                    :: abstol
   12671             :         real(RKC)           , intent(in)                    :: reltol
   12672             :         type(GK21_type)     , intent(in)                    :: qrule
   12673             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   12674             :         real(RKC)           , intent(out)                   :: integral, abserr
   12675             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   12676             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   12677             :         integer(IK)         , intent(out)                   :: neval
   12678             :         integer(IK)         , intent(out)                   :: nint
   12679             :         integer(IK)                                         :: err
   12680             :     end function
   12681             : #endif
   12682             : 
   12683             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   12684             : 
   12685             : #if RK5_ENABLED
   12686             :     module function QAGP_GK21_II_RK5(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   12687             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   12688             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK21_II_RK5
   12689             : #endif
   12690             :         use pm_kind, only: RKC => RK5
   12691             :         procedure(real(RKC))                                :: getFunc
   12692             :         type(ninf_type)     , intent(in)                    :: lb
   12693             :         type(pinf_type)     , intent(in)                    :: ub
   12694             :         real(RKC)           , intent(in)                    :: abstol
   12695             :         real(RKC)           , intent(in)                    :: reltol
   12696             :         type(GK21_type)     , intent(in)                    :: qrule
   12697             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   12698             :         real(RKC)           , intent(out)                   :: integral, abserr
   12699             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   12700             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   12701             :         integer(IK)         , intent(out)                   :: neval
   12702             :         integer(IK)         , intent(out)                   :: nint
   12703             :         integer(IK)                                         :: err
   12704             :     end function
   12705             : #endif
   12706             : 
   12707             : #if RK4_ENABLED
   12708             :     module function QAGP_GK21_II_RK4(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   12709             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   12710             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK21_II_RK4
   12711             : #endif
   12712             :         use pm_kind, only: RKC => RK4
   12713             :         procedure(real(RKC))                                :: getFunc
   12714             :         type(ninf_type)     , intent(in)                    :: lb
   12715             :         type(pinf_type)     , intent(in)                    :: ub
   12716             :         real(RKC)           , intent(in)                    :: abstol
   12717             :         real(RKC)           , intent(in)                    :: reltol
   12718             :         type(GK21_type)     , intent(in)                    :: qrule
   12719             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   12720             :         real(RKC)           , intent(out)                   :: integral, abserr
   12721             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   12722             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   12723             :         integer(IK)         , intent(out)                   :: neval
   12724             :         integer(IK)         , intent(out)                   :: nint
   12725             :         integer(IK)                                         :: err
   12726             :     end function
   12727             : #endif
   12728             : 
   12729             : #if RK3_ENABLED
   12730             :     module function QAGP_GK21_II_RK3(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   12731             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   12732             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK21_II_RK3
   12733             : #endif
   12734             :         use pm_kind, only: RKC => RK3
   12735             :         procedure(real(RKC))                                :: getFunc
   12736             :         type(ninf_type)     , intent(in)                    :: lb
   12737             :         type(pinf_type)     , intent(in)                    :: ub
   12738             :         real(RKC)           , intent(in)                    :: abstol
   12739             :         real(RKC)           , intent(in)                    :: reltol
   12740             :         type(GK21_type)     , intent(in)                    :: qrule
   12741             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   12742             :         real(RKC)           , intent(out)                   :: integral, abserr
   12743             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   12744             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   12745             :         integer(IK)         , intent(out)                   :: neval
   12746             :         integer(IK)         , intent(out)                   :: nint
   12747             :         integer(IK)                                         :: err
   12748             :     end function
   12749             : #endif
   12750             : 
   12751             : #if RK2_ENABLED
   12752             :     module function QAGP_GK21_II_RK2(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   12753             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   12754             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK21_II_RK2
   12755             : #endif
   12756             :         use pm_kind, only: RKC => RK2
   12757             :         procedure(real(RKC))                                :: getFunc
   12758             :         type(ninf_type)     , intent(in)                    :: lb
   12759             :         type(pinf_type)     , intent(in)                    :: ub
   12760             :         real(RKC)           , intent(in)                    :: abstol
   12761             :         real(RKC)           , intent(in)                    :: reltol
   12762             :         type(GK21_type)     , intent(in)                    :: qrule
   12763             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   12764             :         real(RKC)           , intent(out)                   :: integral, abserr
   12765             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   12766             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   12767             :         integer(IK)         , intent(out)                   :: neval
   12768             :         integer(IK)         , intent(out)                   :: nint
   12769             :         integer(IK)                                         :: err
   12770             :     end function
   12771             : #endif
   12772             : 
   12773             : #if RK1_ENABLED
   12774             :     module function QAGP_GK21_II_RK1(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   12775             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   12776             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK21_II_RK1
   12777             : #endif
   12778             :         use pm_kind, only: RKC => RK1
   12779             :         procedure(real(RKC))                                :: getFunc
   12780             :         type(ninf_type)     , intent(in)                    :: lb
   12781             :         type(pinf_type)     , intent(in)                    :: ub
   12782             :         real(RKC)           , intent(in)                    :: abstol
   12783             :         real(RKC)           , intent(in)                    :: reltol
   12784             :         type(GK21_type)     , intent(in)                    :: qrule
   12785             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   12786             :         real(RKC)           , intent(out)                   :: integral, abserr
   12787             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   12788             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   12789             :         integer(IK)         , intent(out)                   :: neval
   12790             :         integer(IK)         , intent(out)                   :: nint
   12791             :         integer(IK)                                         :: err
   12792             :     end function
   12793             : #endif
   12794             : 
   12795             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   12796             : 
   12797             :     end interface
   12798             : 
   12799             :     ! QAGP_GK31
   12800             : 
   12801             :     interface getQuadErr
   12802             : 
   12803             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   12804             : 
   12805             : #if RK5_ENABLED
   12806             :     module function QAGP_GK31_FF_RK5(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   12807             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   12808             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK31_FF_RK5
   12809             : #endif
   12810             :         use pm_kind, only: RKC => RK5
   12811             :         procedure(real(RKC))                                :: getFunc
   12812             :         real(RKC)           , intent(in)                    :: lb
   12813             :         real(RKC)           , intent(in)                    :: ub
   12814             :         real(RKC)           , intent(in)                    :: abstol
   12815             :         real(RKC)           , intent(in)                    :: reltol
   12816             :         type(GK31_type)     , intent(in)                    :: qrule
   12817             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   12818             :         real(RKC)           , intent(out)                   :: integral, abserr
   12819             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   12820             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   12821             :         integer(IK)         , intent(out)                   :: neval
   12822             :         integer(IK)         , intent(out)                   :: nint
   12823             :         integer(IK)                                         :: err
   12824             :     end function
   12825             : #endif
   12826             : 
   12827             : #if RK4_ENABLED
   12828             :     module function QAGP_GK31_FF_RK4(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   12829             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   12830             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK31_FF_RK4
   12831             : #endif
   12832             :         use pm_kind, only: RKC => RK4
   12833             :         procedure(real(RKC))                                :: getFunc
   12834             :         real(RKC)           , intent(in)                    :: lb
   12835             :         real(RKC)           , intent(in)                    :: ub
   12836             :         real(RKC)           , intent(in)                    :: abstol
   12837             :         real(RKC)           , intent(in)                    :: reltol
   12838             :         type(GK31_type)     , intent(in)                    :: qrule
   12839             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   12840             :         real(RKC)           , intent(out)                   :: integral, abserr
   12841             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   12842             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   12843             :         integer(IK)         , intent(out)                   :: neval
   12844             :         integer(IK)         , intent(out)                   :: nint
   12845             :         integer(IK)                                         :: err
   12846             :     end function
   12847             : #endif
   12848             : 
   12849             : #if RK3_ENABLED
   12850             :     module function QAGP_GK31_FF_RK3(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   12851             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   12852             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK31_FF_RK3
   12853             : #endif
   12854             :         use pm_kind, only: RKC => RK3
   12855             :         procedure(real(RKC))                                :: getFunc
   12856             :         real(RKC)           , intent(in)                    :: lb
   12857             :         real(RKC)           , intent(in)                    :: ub
   12858             :         real(RKC)           , intent(in)                    :: abstol
   12859             :         real(RKC)           , intent(in)                    :: reltol
   12860             :         type(GK31_type)     , intent(in)                    :: qrule
   12861             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   12862             :         real(RKC)           , intent(out)                   :: integral, abserr
   12863             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   12864             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   12865             :         integer(IK)         , intent(out)                   :: neval
   12866             :         integer(IK)         , intent(out)                   :: nint
   12867             :         integer(IK)                                         :: err
   12868             :     end function
   12869             : #endif
   12870             : 
   12871             : #if RK2_ENABLED
   12872             :     module function QAGP_GK31_FF_RK2(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   12873             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   12874             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK31_FF_RK2
   12875             : #endif
   12876             :         use pm_kind, only: RKC => RK2
   12877             :         procedure(real(RKC))                                :: getFunc
   12878             :         real(RKC)           , intent(in)                    :: lb
   12879             :         real(RKC)           , intent(in)                    :: ub
   12880             :         real(RKC)           , intent(in)                    :: abstol
   12881             :         real(RKC)           , intent(in)                    :: reltol
   12882             :         type(GK31_type)     , intent(in)                    :: qrule
   12883             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   12884             :         real(RKC)           , intent(out)                   :: integral, abserr
   12885             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   12886             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   12887             :         integer(IK)         , intent(out)                   :: neval
   12888             :         integer(IK)         , intent(out)                   :: nint
   12889             :         integer(IK)                                         :: err
   12890             :     end function
   12891             : #endif
   12892             : 
   12893             : #if RK1_ENABLED
   12894             :     module function QAGP_GK31_FF_RK1(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   12895             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   12896             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK31_FF_RK1
   12897             : #endif
   12898             :         use pm_kind, only: RKC => RK1
   12899             :         procedure(real(RKC))                                :: getFunc
   12900             :         real(RKC)           , intent(in)                    :: lb
   12901             :         real(RKC)           , intent(in)                    :: ub
   12902             :         real(RKC)           , intent(in)                    :: abstol
   12903             :         real(RKC)           , intent(in)                    :: reltol
   12904             :         type(GK31_type)     , intent(in)                    :: qrule
   12905             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   12906             :         real(RKC)           , intent(out)                   :: integral, abserr
   12907             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   12908             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   12909             :         integer(IK)         , intent(out)                   :: neval
   12910             :         integer(IK)         , intent(out)                   :: nint
   12911             :         integer(IK)                                         :: err
   12912             :     end function
   12913             : #endif
   12914             : 
   12915             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   12916             : 
   12917             : #if RK5_ENABLED
   12918             :     module function QAGP_GK31_FI_RK5(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   12919             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   12920             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK31_FI_RK5
   12921             : #endif
   12922             :         use pm_kind, only: RKC => RK5
   12923             :         procedure(real(RKC))                                :: getFunc
   12924             :         real(RKC)           , intent(in)                    :: lb
   12925             :         type(pinf_type)     , intent(in)                    :: ub
   12926             :         real(RKC)           , intent(in)                    :: abstol
   12927             :         real(RKC)           , intent(in)                    :: reltol
   12928             :         type(GK31_type)     , intent(in)                    :: qrule
   12929             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   12930             :         real(RKC)           , intent(out)                   :: integral, abserr
   12931             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   12932             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   12933             :         integer(IK)         , intent(out)                   :: neval
   12934             :         integer(IK)         , intent(out)                   :: nint
   12935             :         integer(IK)                                         :: err
   12936             :     end function
   12937             : #endif
   12938             : 
   12939             : #if RK4_ENABLED
   12940             :     module function QAGP_GK31_FI_RK4(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   12941             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   12942             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK31_FI_RK4
   12943             : #endif
   12944             :         use pm_kind, only: RKC => RK4
   12945             :         procedure(real(RKC))                                :: getFunc
   12946             :         real(RKC)           , intent(in)                    :: lb
   12947             :         type(pinf_type)     , intent(in)                    :: ub
   12948             :         real(RKC)           , intent(in)                    :: abstol
   12949             :         real(RKC)           , intent(in)                    :: reltol
   12950             :         type(GK31_type)     , intent(in)                    :: qrule
   12951             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   12952             :         real(RKC)           , intent(out)                   :: integral, abserr
   12953             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   12954             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   12955             :         integer(IK)         , intent(out)                   :: neval
   12956             :         integer(IK)         , intent(out)                   :: nint
   12957             :         integer(IK)                                         :: err
   12958             :     end function
   12959             : #endif
   12960             : 
   12961             : #if RK3_ENABLED
   12962             :     module function QAGP_GK31_FI_RK3(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   12963             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   12964             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK31_FI_RK3
   12965             : #endif
   12966             :         use pm_kind, only: RKC => RK3
   12967             :         procedure(real(RKC))                                :: getFunc
   12968             :         real(RKC)           , intent(in)                    :: lb
   12969             :         type(pinf_type)     , intent(in)                    :: ub
   12970             :         real(RKC)           , intent(in)                    :: abstol
   12971             :         real(RKC)           , intent(in)                    :: reltol
   12972             :         type(GK31_type)     , intent(in)                    :: qrule
   12973             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   12974             :         real(RKC)           , intent(out)                   :: integral, abserr
   12975             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   12976             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   12977             :         integer(IK)         , intent(out)                   :: neval
   12978             :         integer(IK)         , intent(out)                   :: nint
   12979             :         integer(IK)                                         :: err
   12980             :     end function
   12981             : #endif
   12982             : 
   12983             : #if RK2_ENABLED
   12984             :     module function QAGP_GK31_FI_RK2(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   12985             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   12986             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK31_FI_RK2
   12987             : #endif
   12988             :         use pm_kind, only: RKC => RK2
   12989             :         procedure(real(RKC))                                :: getFunc
   12990             :         real(RKC)           , intent(in)                    :: lb
   12991             :         type(pinf_type)     , intent(in)                    :: ub
   12992             :         real(RKC)           , intent(in)                    :: abstol
   12993             :         real(RKC)           , intent(in)                    :: reltol
   12994             :         type(GK31_type)     , intent(in)                    :: qrule
   12995             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   12996             :         real(RKC)           , intent(out)                   :: integral, abserr
   12997             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   12998             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   12999             :         integer(IK)         , intent(out)                   :: neval
   13000             :         integer(IK)         , intent(out)                   :: nint
   13001             :         integer(IK)                                         :: err
   13002             :     end function
   13003             : #endif
   13004             : 
   13005             : #if RK1_ENABLED
   13006             :     module function QAGP_GK31_FI_RK1(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   13007             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   13008             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK31_FI_RK1
   13009             : #endif
   13010             :         use pm_kind, only: RKC => RK1
   13011             :         procedure(real(RKC))                                :: getFunc
   13012             :         real(RKC)           , intent(in)                    :: lb
   13013             :         type(pinf_type)     , intent(in)                    :: ub
   13014             :         real(RKC)           , intent(in)                    :: abstol
   13015             :         real(RKC)           , intent(in)                    :: reltol
   13016             :         type(GK31_type)     , intent(in)                    :: qrule
   13017             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   13018             :         real(RKC)           , intent(out)                   :: integral, abserr
   13019             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   13020             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   13021             :         integer(IK)         , intent(out)                   :: neval
   13022             :         integer(IK)         , intent(out)                   :: nint
   13023             :         integer(IK)                                         :: err
   13024             :     end function
   13025             : #endif
   13026             : 
   13027             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   13028             : 
   13029             : #if RK5_ENABLED
   13030             :     module function QAGP_GK31_IF_RK5(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   13031             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   13032             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK31_IF_RK5
   13033             : #endif
   13034             :         use pm_kind, only: RKC => RK5
   13035             :         procedure(real(RKC))                                :: getFunc
   13036             :         type(ninf_type)     , intent(in)                    :: lb
   13037             :         real(RKC)           , intent(in)                    :: ub
   13038             :         real(RKC)           , intent(in)                    :: abstol
   13039             :         real(RKC)           , intent(in)                    :: reltol
   13040             :         type(GK31_type)     , intent(in)                    :: qrule
   13041             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   13042             :         real(RKC)           , intent(out)                   :: integral, abserr
   13043             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   13044             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   13045             :         integer(IK)         , intent(out)                   :: neval
   13046             :         integer(IK)         , intent(out)                   :: nint
   13047             :         integer(IK)                                         :: err
   13048             :     end function
   13049             : #endif
   13050             : 
   13051             : #if RK4_ENABLED
   13052             :     module function QAGP_GK31_IF_RK4(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   13053             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   13054             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK31_IF_RK4
   13055             : #endif
   13056             :         use pm_kind, only: RKC => RK4
   13057             :         procedure(real(RKC))                                :: getFunc
   13058             :         type(ninf_type)     , intent(in)                    :: lb
   13059             :         real(RKC)           , intent(in)                    :: ub
   13060             :         real(RKC)           , intent(in)                    :: abstol
   13061             :         real(RKC)           , intent(in)                    :: reltol
   13062             :         type(GK31_type)     , intent(in)                    :: qrule
   13063             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   13064             :         real(RKC)           , intent(out)                   :: integral, abserr
   13065             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   13066             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   13067             :         integer(IK)         , intent(out)                   :: neval
   13068             :         integer(IK)         , intent(out)                   :: nint
   13069             :         integer(IK)                                         :: err
   13070             :     end function
   13071             : #endif
   13072             : 
   13073             : #if RK3_ENABLED
   13074             :     module function QAGP_GK31_IF_RK3(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   13075             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   13076             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK31_IF_RK3
   13077             : #endif
   13078             :         use pm_kind, only: RKC => RK3
   13079             :         procedure(real(RKC))                                :: getFunc
   13080             :         type(ninf_type)     , intent(in)                    :: lb
   13081             :         real(RKC)           , intent(in)                    :: ub
   13082             :         real(RKC)           , intent(in)                    :: abstol
   13083             :         real(RKC)           , intent(in)                    :: reltol
   13084             :         type(GK31_type)     , intent(in)                    :: qrule
   13085             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   13086             :         real(RKC)           , intent(out)                   :: integral, abserr
   13087             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   13088             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   13089             :         integer(IK)         , intent(out)                   :: neval
   13090             :         integer(IK)         , intent(out)                   :: nint
   13091             :         integer(IK)                                         :: err
   13092             :     end function
   13093             : #endif
   13094             : 
   13095             : #if RK2_ENABLED
   13096             :     module function QAGP_GK31_IF_RK2(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   13097             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   13098             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK31_IF_RK2
   13099             : #endif
   13100             :         use pm_kind, only: RKC => RK2
   13101             :         procedure(real(RKC))                                :: getFunc
   13102             :         type(ninf_type)     , intent(in)                    :: lb
   13103             :         real(RKC)           , intent(in)                    :: ub
   13104             :         real(RKC)           , intent(in)                    :: abstol
   13105             :         real(RKC)           , intent(in)                    :: reltol
   13106             :         type(GK31_type)     , intent(in)                    :: qrule
   13107             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   13108             :         real(RKC)           , intent(out)                   :: integral, abserr
   13109             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   13110             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   13111             :         integer(IK)         , intent(out)                   :: neval
   13112             :         integer(IK)         , intent(out)                   :: nint
   13113             :         integer(IK)                                         :: err
   13114             :     end function
   13115             : #endif
   13116             : 
   13117             : #if RK1_ENABLED
   13118             :     module function QAGP_GK31_IF_RK1(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   13119             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   13120             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK31_IF_RK1
   13121             : #endif
   13122             :         use pm_kind, only: RKC => RK1
   13123             :         procedure(real(RKC))                                :: getFunc
   13124             :         type(ninf_type)     , intent(in)                    :: lb
   13125             :         real(RKC)           , intent(in)                    :: ub
   13126             :         real(RKC)           , intent(in)                    :: abstol
   13127             :         real(RKC)           , intent(in)                    :: reltol
   13128             :         type(GK31_type)     , intent(in)                    :: qrule
   13129             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   13130             :         real(RKC)           , intent(out)                   :: integral, abserr
   13131             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   13132             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   13133             :         integer(IK)         , intent(out)                   :: neval
   13134             :         integer(IK)         , intent(out)                   :: nint
   13135             :         integer(IK)                                         :: err
   13136             :     end function
   13137             : #endif
   13138             : 
   13139             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   13140             : 
   13141             : #if RK5_ENABLED
   13142             :     module function QAGP_GK31_II_RK5(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   13143             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   13144             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK31_II_RK5
   13145             : #endif
   13146             :         use pm_kind, only: RKC => RK5
   13147             :         procedure(real(RKC))                                :: getFunc
   13148             :         type(ninf_type)     , intent(in)                    :: lb
   13149             :         type(pinf_type)     , intent(in)                    :: ub
   13150             :         real(RKC)           , intent(in)                    :: abstol
   13151             :         real(RKC)           , intent(in)                    :: reltol
   13152             :         type(GK31_type)     , intent(in)                    :: qrule
   13153             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   13154             :         real(RKC)           , intent(out)                   :: integral, abserr
   13155             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   13156             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   13157             :         integer(IK)         , intent(out)                   :: neval
   13158             :         integer(IK)         , intent(out)                   :: nint
   13159             :         integer(IK)                                         :: err
   13160             :     end function
   13161             : #endif
   13162             : 
   13163             : #if RK4_ENABLED
   13164             :     module function QAGP_GK31_II_RK4(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   13165             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   13166             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK31_II_RK4
   13167             : #endif
   13168             :         use pm_kind, only: RKC => RK4
   13169             :         procedure(real(RKC))                                :: getFunc
   13170             :         type(ninf_type)     , intent(in)                    :: lb
   13171             :         type(pinf_type)     , intent(in)                    :: ub
   13172             :         real(RKC)           , intent(in)                    :: abstol
   13173             :         real(RKC)           , intent(in)                    :: reltol
   13174             :         type(GK31_type)     , intent(in)                    :: qrule
   13175             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   13176             :         real(RKC)           , intent(out)                   :: integral, abserr
   13177             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   13178             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   13179             :         integer(IK)         , intent(out)                   :: neval
   13180             :         integer(IK)         , intent(out)                   :: nint
   13181             :         integer(IK)                                         :: err
   13182             :     end function
   13183             : #endif
   13184             : 
   13185             : #if RK3_ENABLED
   13186             :     module function QAGP_GK31_II_RK3(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   13187             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   13188             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK31_II_RK3
   13189             : #endif
   13190             :         use pm_kind, only: RKC => RK3
   13191             :         procedure(real(RKC))                                :: getFunc
   13192             :         type(ninf_type)     , intent(in)                    :: lb
   13193             :         type(pinf_type)     , intent(in)                    :: ub
   13194             :         real(RKC)           , intent(in)                    :: abstol
   13195             :         real(RKC)           , intent(in)                    :: reltol
   13196             :         type(GK31_type)     , intent(in)                    :: qrule
   13197             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   13198             :         real(RKC)           , intent(out)                   :: integral, abserr
   13199             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   13200             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   13201             :         integer(IK)         , intent(out)                   :: neval
   13202             :         integer(IK)         , intent(out)                   :: nint
   13203             :         integer(IK)                                         :: err
   13204             :     end function
   13205             : #endif
   13206             : 
   13207             : #if RK2_ENABLED
   13208             :     module function QAGP_GK31_II_RK2(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   13209             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   13210             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK31_II_RK2
   13211             : #endif
   13212             :         use pm_kind, only: RKC => RK2
   13213             :         procedure(real(RKC))                                :: getFunc
   13214             :         type(ninf_type)     , intent(in)                    :: lb
   13215             :         type(pinf_type)     , intent(in)                    :: ub
   13216             :         real(RKC)           , intent(in)                    :: abstol
   13217             :         real(RKC)           , intent(in)                    :: reltol
   13218             :         type(GK31_type)     , intent(in)                    :: qrule
   13219             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   13220             :         real(RKC)           , intent(out)                   :: integral, abserr
   13221             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   13222             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   13223             :         integer(IK)         , intent(out)                   :: neval
   13224             :         integer(IK)         , intent(out)                   :: nint
   13225             :         integer(IK)                                         :: err
   13226             :     end function
   13227             : #endif
   13228             : 
   13229             : #if RK1_ENABLED
   13230             :     module function QAGP_GK31_II_RK1(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   13231             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   13232             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK31_II_RK1
   13233             : #endif
   13234             :         use pm_kind, only: RKC => RK1
   13235             :         procedure(real(RKC))                                :: getFunc
   13236             :         type(ninf_type)     , intent(in)                    :: lb
   13237             :         type(pinf_type)     , intent(in)                    :: ub
   13238             :         real(RKC)           , intent(in)                    :: abstol
   13239             :         real(RKC)           , intent(in)                    :: reltol
   13240             :         type(GK31_type)     , intent(in)                    :: qrule
   13241             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   13242             :         real(RKC)           , intent(out)                   :: integral, abserr
   13243             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   13244             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   13245             :         integer(IK)         , intent(out)                   :: neval
   13246             :         integer(IK)         , intent(out)                   :: nint
   13247             :         integer(IK)                                         :: err
   13248             :     end function
   13249             : #endif
   13250             : 
   13251             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   13252             : 
   13253             :     end interface
   13254             : 
   13255             :     ! QAGP_GK41
   13256             : 
   13257             :     interface getQuadErr
   13258             : 
   13259             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   13260             : 
   13261             : #if RK5_ENABLED
   13262             :     module function QAGP_GK41_FF_RK5(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   13263             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   13264             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK41_FF_RK5
   13265             : #endif
   13266             :         use pm_kind, only: RKC => RK5
   13267             :         procedure(real(RKC))                                :: getFunc
   13268             :         real(RKC)           , intent(in)                    :: lb
   13269             :         real(RKC)           , intent(in)                    :: ub
   13270             :         real(RKC)           , intent(in)                    :: abstol
   13271             :         real(RKC)           , intent(in)                    :: reltol
   13272             :         type(GK41_type)     , intent(in)                    :: qrule
   13273             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   13274             :         real(RKC)           , intent(out)                   :: integral, abserr
   13275             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   13276             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   13277             :         integer(IK)         , intent(out)                   :: neval
   13278             :         integer(IK)         , intent(out)                   :: nint
   13279             :         integer(IK)                                         :: err
   13280             :     end function
   13281             : #endif
   13282             : 
   13283             : #if RK4_ENABLED
   13284             :     module function QAGP_GK41_FF_RK4(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   13285             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   13286             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK41_FF_RK4
   13287             : #endif
   13288             :         use pm_kind, only: RKC => RK4
   13289             :         procedure(real(RKC))                                :: getFunc
   13290             :         real(RKC)           , intent(in)                    :: lb
   13291             :         real(RKC)           , intent(in)                    :: ub
   13292             :         real(RKC)           , intent(in)                    :: abstol
   13293             :         real(RKC)           , intent(in)                    :: reltol
   13294             :         type(GK41_type)     , intent(in)                    :: qrule
   13295             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   13296             :         real(RKC)           , intent(out)                   :: integral, abserr
   13297             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   13298             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   13299             :         integer(IK)         , intent(out)                   :: neval
   13300             :         integer(IK)         , intent(out)                   :: nint
   13301             :         integer(IK)                                         :: err
   13302             :     end function
   13303             : #endif
   13304             : 
   13305             : #if RK3_ENABLED
   13306             :     module function QAGP_GK41_FF_RK3(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   13307             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   13308             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK41_FF_RK3
   13309             : #endif
   13310             :         use pm_kind, only: RKC => RK3
   13311             :         procedure(real(RKC))                                :: getFunc
   13312             :         real(RKC)           , intent(in)                    :: lb
   13313             :         real(RKC)           , intent(in)                    :: ub
   13314             :         real(RKC)           , intent(in)                    :: abstol
   13315             :         real(RKC)           , intent(in)                    :: reltol
   13316             :         type(GK41_type)     , intent(in)                    :: qrule
   13317             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   13318             :         real(RKC)           , intent(out)                   :: integral, abserr
   13319             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   13320             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   13321             :         integer(IK)         , intent(out)                   :: neval
   13322             :         integer(IK)         , intent(out)                   :: nint
   13323             :         integer(IK)                                         :: err
   13324             :     end function
   13325             : #endif
   13326             : 
   13327             : #if RK2_ENABLED
   13328             :     module function QAGP_GK41_FF_RK2(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   13329             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   13330             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK41_FF_RK2
   13331             : #endif
   13332             :         use pm_kind, only: RKC => RK2
   13333             :         procedure(real(RKC))                                :: getFunc
   13334             :         real(RKC)           , intent(in)                    :: lb
   13335             :         real(RKC)           , intent(in)                    :: ub
   13336             :         real(RKC)           , intent(in)                    :: abstol
   13337             :         real(RKC)           , intent(in)                    :: reltol
   13338             :         type(GK41_type)     , intent(in)                    :: qrule
   13339             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   13340             :         real(RKC)           , intent(out)                   :: integral, abserr
   13341             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   13342             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   13343             :         integer(IK)         , intent(out)                   :: neval
   13344             :         integer(IK)         , intent(out)                   :: nint
   13345             :         integer(IK)                                         :: err
   13346             :     end function
   13347             : #endif
   13348             : 
   13349             : #if RK1_ENABLED
   13350             :     module function QAGP_GK41_FF_RK1(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   13351             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   13352             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK41_FF_RK1
   13353             : #endif
   13354             :         use pm_kind, only: RKC => RK1
   13355             :         procedure(real(RKC))                                :: getFunc
   13356             :         real(RKC)           , intent(in)                    :: lb
   13357             :         real(RKC)           , intent(in)                    :: ub
   13358             :         real(RKC)           , intent(in)                    :: abstol
   13359             :         real(RKC)           , intent(in)                    :: reltol
   13360             :         type(GK41_type)     , intent(in)                    :: qrule
   13361             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   13362             :         real(RKC)           , intent(out)                   :: integral, abserr
   13363             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   13364             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   13365             :         integer(IK)         , intent(out)                   :: neval
   13366             :         integer(IK)         , intent(out)                   :: nint
   13367             :         integer(IK)                                         :: err
   13368             :     end function
   13369             : #endif
   13370             : 
   13371             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   13372             : 
   13373             : #if RK5_ENABLED
   13374             :     module function QAGP_GK41_FI_RK5(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   13375             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   13376             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK41_FI_RK5
   13377             : #endif
   13378             :         use pm_kind, only: RKC => RK5
   13379             :         procedure(real(RKC))                                :: getFunc
   13380             :         real(RKC)           , intent(in)                    :: lb
   13381             :         type(pinf_type)     , intent(in)                    :: ub
   13382             :         real(RKC)           , intent(in)                    :: abstol
   13383             :         real(RKC)           , intent(in)                    :: reltol
   13384             :         type(GK41_type)     , intent(in)                    :: qrule
   13385             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   13386             :         real(RKC)           , intent(out)                   :: integral, abserr
   13387             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   13388             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   13389             :         integer(IK)         , intent(out)                   :: neval
   13390             :         integer(IK)         , intent(out)                   :: nint
   13391             :         integer(IK)                                         :: err
   13392             :     end function
   13393             : #endif
   13394             : 
   13395             : #if RK4_ENABLED
   13396             :     module function QAGP_GK41_FI_RK4(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   13397             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   13398             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK41_FI_RK4
   13399             : #endif
   13400             :         use pm_kind, only: RKC => RK4
   13401             :         procedure(real(RKC))                                :: getFunc
   13402             :         real(RKC)           , intent(in)                    :: lb
   13403             :         type(pinf_type)     , intent(in)                    :: ub
   13404             :         real(RKC)           , intent(in)                    :: abstol
   13405             :         real(RKC)           , intent(in)                    :: reltol
   13406             :         type(GK41_type)     , intent(in)                    :: qrule
   13407             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   13408             :         real(RKC)           , intent(out)                   :: integral, abserr
   13409             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   13410             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   13411             :         integer(IK)         , intent(out)                   :: neval
   13412             :         integer(IK)         , intent(out)                   :: nint
   13413             :         integer(IK)                                         :: err
   13414             :     end function
   13415             : #endif
   13416             : 
   13417             : #if RK3_ENABLED
   13418             :     module function QAGP_GK41_FI_RK3(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   13419             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   13420             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK41_FI_RK3
   13421             : #endif
   13422             :         use pm_kind, only: RKC => RK3
   13423             :         procedure(real(RKC))                                :: getFunc
   13424             :         real(RKC)           , intent(in)                    :: lb
   13425             :         type(pinf_type)     , intent(in)                    :: ub
   13426             :         real(RKC)           , intent(in)                    :: abstol
   13427             :         real(RKC)           , intent(in)                    :: reltol
   13428             :         type(GK41_type)     , intent(in)                    :: qrule
   13429             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   13430             :         real(RKC)           , intent(out)                   :: integral, abserr
   13431             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   13432             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   13433             :         integer(IK)         , intent(out)                   :: neval
   13434             :         integer(IK)         , intent(out)                   :: nint
   13435             :         integer(IK)                                         :: err
   13436             :     end function
   13437             : #endif
   13438             : 
   13439             : #if RK2_ENABLED
   13440             :     module function QAGP_GK41_FI_RK2(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   13441             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   13442             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK41_FI_RK2
   13443             : #endif
   13444             :         use pm_kind, only: RKC => RK2
   13445             :         procedure(real(RKC))                                :: getFunc
   13446             :         real(RKC)           , intent(in)                    :: lb
   13447             :         type(pinf_type)     , intent(in)                    :: ub
   13448             :         real(RKC)           , intent(in)                    :: abstol
   13449             :         real(RKC)           , intent(in)                    :: reltol
   13450             :         type(GK41_type)     , intent(in)                    :: qrule
   13451             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   13452             :         real(RKC)           , intent(out)                   :: integral, abserr
   13453             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   13454             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   13455             :         integer(IK)         , intent(out)                   :: neval
   13456             :         integer(IK)         , intent(out)                   :: nint
   13457             :         integer(IK)                                         :: err
   13458             :     end function
   13459             : #endif
   13460             : 
   13461             : #if RK1_ENABLED
   13462             :     module function QAGP_GK41_FI_RK1(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   13463             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   13464             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK41_FI_RK1
   13465             : #endif
   13466             :         use pm_kind, only: RKC => RK1
   13467             :         procedure(real(RKC))                                :: getFunc
   13468             :         real(RKC)           , intent(in)                    :: lb
   13469             :         type(pinf_type)     , intent(in)                    :: ub
   13470             :         real(RKC)           , intent(in)                    :: abstol
   13471             :         real(RKC)           , intent(in)                    :: reltol
   13472             :         type(GK41_type)     , intent(in)                    :: qrule
   13473             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   13474             :         real(RKC)           , intent(out)                   :: integral, abserr
   13475             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   13476             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   13477             :         integer(IK)         , intent(out)                   :: neval
   13478             :         integer(IK)         , intent(out)                   :: nint
   13479             :         integer(IK)                                         :: err
   13480             :     end function
   13481             : #endif
   13482             : 
   13483             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   13484             : 
   13485             : #if RK5_ENABLED
   13486             :     module function QAGP_GK41_IF_RK5(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   13487             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   13488             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK41_IF_RK5
   13489             : #endif
   13490             :         use pm_kind, only: RKC => RK5
   13491             :         procedure(real(RKC))                                :: getFunc
   13492             :         type(ninf_type)     , intent(in)                    :: lb
   13493             :         real(RKC)           , intent(in)                    :: ub
   13494             :         real(RKC)           , intent(in)                    :: abstol
   13495             :         real(RKC)           , intent(in)                    :: reltol
   13496             :         type(GK41_type)     , intent(in)                    :: qrule
   13497             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   13498             :         real(RKC)           , intent(out)                   :: integral, abserr
   13499             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   13500             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   13501             :         integer(IK)         , intent(out)                   :: neval
   13502             :         integer(IK)         , intent(out)                   :: nint
   13503             :         integer(IK)                                         :: err
   13504             :     end function
   13505             : #endif
   13506             : 
   13507             : #if RK4_ENABLED
   13508             :     module function QAGP_GK41_IF_RK4(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   13509             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   13510             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK41_IF_RK4
   13511             : #endif
   13512             :         use pm_kind, only: RKC => RK4
   13513             :         procedure(real(RKC))                                :: getFunc
   13514             :         type(ninf_type)     , intent(in)                    :: lb
   13515             :         real(RKC)           , intent(in)                    :: ub
   13516             :         real(RKC)           , intent(in)                    :: abstol
   13517             :         real(RKC)           , intent(in)                    :: reltol
   13518             :         type(GK41_type)     , intent(in)                    :: qrule
   13519             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   13520             :         real(RKC)           , intent(out)                   :: integral, abserr
   13521             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   13522             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   13523             :         integer(IK)         , intent(out)                   :: neval
   13524             :         integer(IK)         , intent(out)                   :: nint
   13525             :         integer(IK)                                         :: err
   13526             :     end function
   13527             : #endif
   13528             : 
   13529             : #if RK3_ENABLED
   13530             :     module function QAGP_GK41_IF_RK3(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   13531             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   13532             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK41_IF_RK3
   13533             : #endif
   13534             :         use pm_kind, only: RKC => RK3
   13535             :         procedure(real(RKC))                                :: getFunc
   13536             :         type(ninf_type)     , intent(in)                    :: lb
   13537             :         real(RKC)           , intent(in)                    :: ub
   13538             :         real(RKC)           , intent(in)                    :: abstol
   13539             :         real(RKC)           , intent(in)                    :: reltol
   13540             :         type(GK41_type)     , intent(in)                    :: qrule
   13541             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   13542             :         real(RKC)           , intent(out)                   :: integral, abserr
   13543             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   13544             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   13545             :         integer(IK)         , intent(out)                   :: neval
   13546             :         integer(IK)         , intent(out)                   :: nint
   13547             :         integer(IK)                                         :: err
   13548             :     end function
   13549             : #endif
   13550             : 
   13551             : #if RK2_ENABLED
   13552             :     module function QAGP_GK41_IF_RK2(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   13553             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   13554             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK41_IF_RK2
   13555             : #endif
   13556             :         use pm_kind, only: RKC => RK2
   13557             :         procedure(real(RKC))                                :: getFunc
   13558             :         type(ninf_type)     , intent(in)                    :: lb
   13559             :         real(RKC)           , intent(in)                    :: ub
   13560             :         real(RKC)           , intent(in)                    :: abstol
   13561             :         real(RKC)           , intent(in)                    :: reltol
   13562             :         type(GK41_type)     , intent(in)                    :: qrule
   13563             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   13564             :         real(RKC)           , intent(out)                   :: integral, abserr
   13565             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   13566             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   13567             :         integer(IK)         , intent(out)                   :: neval
   13568             :         integer(IK)         , intent(out)                   :: nint
   13569             :         integer(IK)                                         :: err
   13570             :     end function
   13571             : #endif
   13572             : 
   13573             : #if RK1_ENABLED
   13574             :     module function QAGP_GK41_IF_RK1(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   13575             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   13576             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK41_IF_RK1
   13577             : #endif
   13578             :         use pm_kind, only: RKC => RK1
   13579             :         procedure(real(RKC))                                :: getFunc
   13580             :         type(ninf_type)     , intent(in)                    :: lb
   13581             :         real(RKC)           , intent(in)                    :: ub
   13582             :         real(RKC)           , intent(in)                    :: abstol
   13583             :         real(RKC)           , intent(in)                    :: reltol
   13584             :         type(GK41_type)     , intent(in)                    :: qrule
   13585             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   13586             :         real(RKC)           , intent(out)                   :: integral, abserr
   13587             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   13588             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   13589             :         integer(IK)         , intent(out)                   :: neval
   13590             :         integer(IK)         , intent(out)                   :: nint
   13591             :         integer(IK)                                         :: err
   13592             :     end function
   13593             : #endif
   13594             : 
   13595             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   13596             : 
   13597             : #if RK5_ENABLED
   13598             :     module function QAGP_GK41_II_RK5(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   13599             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   13600             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK41_II_RK5
   13601             : #endif
   13602             :         use pm_kind, only: RKC => RK5
   13603             :         procedure(real(RKC))                                :: getFunc
   13604             :         type(ninf_type)     , intent(in)                    :: lb
   13605             :         type(pinf_type)     , intent(in)                    :: ub
   13606             :         real(RKC)           , intent(in)                    :: abstol
   13607             :         real(RKC)           , intent(in)                    :: reltol
   13608             :         type(GK41_type)     , intent(in)                    :: qrule
   13609             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   13610             :         real(RKC)           , intent(out)                   :: integral, abserr
   13611             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   13612             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   13613             :         integer(IK)         , intent(out)                   :: neval
   13614             :         integer(IK)         , intent(out)                   :: nint
   13615             :         integer(IK)                                         :: err
   13616             :     end function
   13617             : #endif
   13618             : 
   13619             : #if RK4_ENABLED
   13620             :     module function QAGP_GK41_II_RK4(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   13621             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   13622             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK41_II_RK4
   13623             : #endif
   13624             :         use pm_kind, only: RKC => RK4
   13625             :         procedure(real(RKC))                                :: getFunc
   13626             :         type(ninf_type)     , intent(in)                    :: lb
   13627             :         type(pinf_type)     , intent(in)                    :: ub
   13628             :         real(RKC)           , intent(in)                    :: abstol
   13629             :         real(RKC)           , intent(in)                    :: reltol
   13630             :         type(GK41_type)     , intent(in)                    :: qrule
   13631             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   13632             :         real(RKC)           , intent(out)                   :: integral, abserr
   13633             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   13634             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   13635             :         integer(IK)         , intent(out)                   :: neval
   13636             :         integer(IK)         , intent(out)                   :: nint
   13637             :         integer(IK)                                         :: err
   13638             :     end function
   13639             : #endif
   13640             : 
   13641             : #if RK3_ENABLED
   13642             :     module function QAGP_GK41_II_RK3(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   13643             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   13644             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK41_II_RK3
   13645             : #endif
   13646             :         use pm_kind, only: RKC => RK3
   13647             :         procedure(real(RKC))                                :: getFunc
   13648             :         type(ninf_type)     , intent(in)                    :: lb
   13649             :         type(pinf_type)     , intent(in)                    :: ub
   13650             :         real(RKC)           , intent(in)                    :: abstol
   13651             :         real(RKC)           , intent(in)                    :: reltol
   13652             :         type(GK41_type)     , intent(in)                    :: qrule
   13653             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   13654             :         real(RKC)           , intent(out)                   :: integral, abserr
   13655             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   13656             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   13657             :         integer(IK)         , intent(out)                   :: neval
   13658             :         integer(IK)         , intent(out)                   :: nint
   13659             :         integer(IK)                                         :: err
   13660             :     end function
   13661             : #endif
   13662             : 
   13663             : #if RK2_ENABLED
   13664             :     module function QAGP_GK41_II_RK2(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   13665             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   13666             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK41_II_RK2
   13667             : #endif
   13668             :         use pm_kind, only: RKC => RK2
   13669             :         procedure(real(RKC))                                :: getFunc
   13670             :         type(ninf_type)     , intent(in)                    :: lb
   13671             :         type(pinf_type)     , intent(in)                    :: ub
   13672             :         real(RKC)           , intent(in)                    :: abstol
   13673             :         real(RKC)           , intent(in)                    :: reltol
   13674             :         type(GK41_type)     , intent(in)                    :: qrule
   13675             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   13676             :         real(RKC)           , intent(out)                   :: integral, abserr
   13677             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   13678             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   13679             :         integer(IK)         , intent(out)                   :: neval
   13680             :         integer(IK)         , intent(out)                   :: nint
   13681             :         integer(IK)                                         :: err
   13682             :     end function
   13683             : #endif
   13684             : 
   13685             : #if RK1_ENABLED
   13686             :     module function QAGP_GK41_II_RK1(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   13687             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   13688             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK41_II_RK1
   13689             : #endif
   13690             :         use pm_kind, only: RKC => RK1
   13691             :         procedure(real(RKC))                                :: getFunc
   13692             :         type(ninf_type)     , intent(in)                    :: lb
   13693             :         type(pinf_type)     , intent(in)                    :: ub
   13694             :         real(RKC)           , intent(in)                    :: abstol
   13695             :         real(RKC)           , intent(in)                    :: reltol
   13696             :         type(GK41_type)     , intent(in)                    :: qrule
   13697             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   13698             :         real(RKC)           , intent(out)                   :: integral, abserr
   13699             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   13700             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   13701             :         integer(IK)         , intent(out)                   :: neval
   13702             :         integer(IK)         , intent(out)                   :: nint
   13703             :         integer(IK)                                         :: err
   13704             :     end function
   13705             : #endif
   13706             : 
   13707             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   13708             : 
   13709             :     end interface
   13710             : 
   13711             :     ! QAGP_GK51
   13712             : 
   13713             :     interface getQuadErr
   13714             : 
   13715             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   13716             : 
   13717             : #if RK5_ENABLED
   13718             :     module function QAGP_GK51_FF_RK5(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   13719             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   13720             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK51_FF_RK5
   13721             : #endif
   13722             :         use pm_kind, only: RKC => RK5
   13723             :         procedure(real(RKC))                                :: getFunc
   13724             :         real(RKC)           , intent(in)                    :: lb
   13725             :         real(RKC)           , intent(in)                    :: ub
   13726             :         real(RKC)           , intent(in)                    :: abstol
   13727             :         real(RKC)           , intent(in)                    :: reltol
   13728             :         type(GK51_type)     , intent(in)                    :: qrule
   13729             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   13730             :         real(RKC)           , intent(out)                   :: integral, abserr
   13731             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   13732             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   13733             :         integer(IK)         , intent(out)                   :: neval
   13734             :         integer(IK)         , intent(out)                   :: nint
   13735             :         integer(IK)                                         :: err
   13736             :     end function
   13737             : #endif
   13738             : 
   13739             : #if RK4_ENABLED
   13740             :     module function QAGP_GK51_FF_RK4(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   13741             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   13742             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK51_FF_RK4
   13743             : #endif
   13744             :         use pm_kind, only: RKC => RK4
   13745             :         procedure(real(RKC))                                :: getFunc
   13746             :         real(RKC)           , intent(in)                    :: lb
   13747             :         real(RKC)           , intent(in)                    :: ub
   13748             :         real(RKC)           , intent(in)                    :: abstol
   13749             :         real(RKC)           , intent(in)                    :: reltol
   13750             :         type(GK51_type)     , intent(in)                    :: qrule
   13751             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   13752             :         real(RKC)           , intent(out)                   :: integral, abserr
   13753             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   13754             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   13755             :         integer(IK)         , intent(out)                   :: neval
   13756             :         integer(IK)         , intent(out)                   :: nint
   13757             :         integer(IK)                                         :: err
   13758             :     end function
   13759             : #endif
   13760             : 
   13761             : #if RK3_ENABLED
   13762             :     module function QAGP_GK51_FF_RK3(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   13763             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   13764             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK51_FF_RK3
   13765             : #endif
   13766             :         use pm_kind, only: RKC => RK3
   13767             :         procedure(real(RKC))                                :: getFunc
   13768             :         real(RKC)           , intent(in)                    :: lb
   13769             :         real(RKC)           , intent(in)                    :: ub
   13770             :         real(RKC)           , intent(in)                    :: abstol
   13771             :         real(RKC)           , intent(in)                    :: reltol
   13772             :         type(GK51_type)     , intent(in)                    :: qrule
   13773             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   13774             :         real(RKC)           , intent(out)                   :: integral, abserr
   13775             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   13776             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   13777             :         integer(IK)         , intent(out)                   :: neval
   13778             :         integer(IK)         , intent(out)                   :: nint
   13779             :         integer(IK)                                         :: err
   13780             :     end function
   13781             : #endif
   13782             : 
   13783             : #if RK2_ENABLED
   13784             :     module function QAGP_GK51_FF_RK2(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   13785             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   13786             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK51_FF_RK2
   13787             : #endif
   13788             :         use pm_kind, only: RKC => RK2
   13789             :         procedure(real(RKC))                                :: getFunc
   13790             :         real(RKC)           , intent(in)                    :: lb
   13791             :         real(RKC)           , intent(in)                    :: ub
   13792             :         real(RKC)           , intent(in)                    :: abstol
   13793             :         real(RKC)           , intent(in)                    :: reltol
   13794             :         type(GK51_type)     , intent(in)                    :: qrule
   13795             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   13796             :         real(RKC)           , intent(out)                   :: integral, abserr
   13797             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   13798             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   13799             :         integer(IK)         , intent(out)                   :: neval
   13800             :         integer(IK)         , intent(out)                   :: nint
   13801             :         integer(IK)                                         :: err
   13802             :     end function
   13803             : #endif
   13804             : 
   13805             : #if RK1_ENABLED
   13806             :     module function QAGP_GK51_FF_RK1(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   13807             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   13808             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK51_FF_RK1
   13809             : #endif
   13810             :         use pm_kind, only: RKC => RK1
   13811             :         procedure(real(RKC))                                :: getFunc
   13812             :         real(RKC)           , intent(in)                    :: lb
   13813             :         real(RKC)           , intent(in)                    :: ub
   13814             :         real(RKC)           , intent(in)                    :: abstol
   13815             :         real(RKC)           , intent(in)                    :: reltol
   13816             :         type(GK51_type)     , intent(in)                    :: qrule
   13817             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   13818             :         real(RKC)           , intent(out)                   :: integral, abserr
   13819             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   13820             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   13821             :         integer(IK)         , intent(out)                   :: neval
   13822             :         integer(IK)         , intent(out)                   :: nint
   13823             :         integer(IK)                                         :: err
   13824             :     end function
   13825             : #endif
   13826             : 
   13827             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   13828             : 
   13829             : #if RK5_ENABLED
   13830             :     module function QAGP_GK51_FI_RK5(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   13831             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   13832             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK51_FI_RK5
   13833             : #endif
   13834             :         use pm_kind, only: RKC => RK5
   13835             :         procedure(real(RKC))                                :: getFunc
   13836             :         real(RKC)           , intent(in)                    :: lb
   13837             :         type(pinf_type)     , intent(in)                    :: ub
   13838             :         real(RKC)           , intent(in)                    :: abstol
   13839             :         real(RKC)           , intent(in)                    :: reltol
   13840             :         type(GK51_type)     , intent(in)                    :: qrule
   13841             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   13842             :         real(RKC)           , intent(out)                   :: integral, abserr
   13843             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   13844             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   13845             :         integer(IK)         , intent(out)                   :: neval
   13846             :         integer(IK)         , intent(out)                   :: nint
   13847             :         integer(IK)                                         :: err
   13848             :     end function
   13849             : #endif
   13850             : 
   13851             : #if RK4_ENABLED
   13852             :     module function QAGP_GK51_FI_RK4(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   13853             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   13854             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK51_FI_RK4
   13855             : #endif
   13856             :         use pm_kind, only: RKC => RK4
   13857             :         procedure(real(RKC))                                :: getFunc
   13858             :         real(RKC)           , intent(in)                    :: lb
   13859             :         type(pinf_type)     , intent(in)                    :: ub
   13860             :         real(RKC)           , intent(in)                    :: abstol
   13861             :         real(RKC)           , intent(in)                    :: reltol
   13862             :         type(GK51_type)     , intent(in)                    :: qrule
   13863             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   13864             :         real(RKC)           , intent(out)                   :: integral, abserr
   13865             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   13866             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   13867             :         integer(IK)         , intent(out)                   :: neval
   13868             :         integer(IK)         , intent(out)                   :: nint
   13869             :         integer(IK)                                         :: err
   13870             :     end function
   13871             : #endif
   13872             : 
   13873             : #if RK3_ENABLED
   13874             :     module function QAGP_GK51_FI_RK3(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   13875             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   13876             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK51_FI_RK3
   13877             : #endif
   13878             :         use pm_kind, only: RKC => RK3
   13879             :         procedure(real(RKC))                                :: getFunc
   13880             :         real(RKC)           , intent(in)                    :: lb
   13881             :         type(pinf_type)     , intent(in)                    :: ub
   13882             :         real(RKC)           , intent(in)                    :: abstol
   13883             :         real(RKC)           , intent(in)                    :: reltol
   13884             :         type(GK51_type)     , intent(in)                    :: qrule
   13885             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   13886             :         real(RKC)           , intent(out)                   :: integral, abserr
   13887             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   13888             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   13889             :         integer(IK)         , intent(out)                   :: neval
   13890             :         integer(IK)         , intent(out)                   :: nint
   13891             :         integer(IK)                                         :: err
   13892             :     end function
   13893             : #endif
   13894             : 
   13895             : #if RK2_ENABLED
   13896             :     module function QAGP_GK51_FI_RK2(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   13897             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   13898             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK51_FI_RK2
   13899             : #endif
   13900             :         use pm_kind, only: RKC => RK2
   13901             :         procedure(real(RKC))                                :: getFunc
   13902             :         real(RKC)           , intent(in)                    :: lb
   13903             :         type(pinf_type)     , intent(in)                    :: ub
   13904             :         real(RKC)           , intent(in)                    :: abstol
   13905             :         real(RKC)           , intent(in)                    :: reltol
   13906             :         type(GK51_type)     , intent(in)                    :: qrule
   13907             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   13908             :         real(RKC)           , intent(out)                   :: integral, abserr
   13909             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   13910             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   13911             :         integer(IK)         , intent(out)                   :: neval
   13912             :         integer(IK)         , intent(out)                   :: nint
   13913             :         integer(IK)                                         :: err
   13914             :     end function
   13915             : #endif
   13916             : 
   13917             : #if RK1_ENABLED
   13918             :     module function QAGP_GK51_FI_RK1(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   13919             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   13920             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK51_FI_RK1
   13921             : #endif
   13922             :         use pm_kind, only: RKC => RK1
   13923             :         procedure(real(RKC))                                :: getFunc
   13924             :         real(RKC)           , intent(in)                    :: lb
   13925             :         type(pinf_type)     , intent(in)                    :: ub
   13926             :         real(RKC)           , intent(in)                    :: abstol
   13927             :         real(RKC)           , intent(in)                    :: reltol
   13928             :         type(GK51_type)     , intent(in)                    :: qrule
   13929             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   13930             :         real(RKC)           , intent(out)                   :: integral, abserr
   13931             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   13932             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   13933             :         integer(IK)         , intent(out)                   :: neval
   13934             :         integer(IK)         , intent(out)                   :: nint
   13935             :         integer(IK)                                         :: err
   13936             :     end function
   13937             : #endif
   13938             : 
   13939             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   13940             : 
   13941             : #if RK5_ENABLED
   13942             :     module function QAGP_GK51_IF_RK5(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   13943             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   13944             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK51_IF_RK5
   13945             : #endif
   13946             :         use pm_kind, only: RKC => RK5
   13947             :         procedure(real(RKC))                                :: getFunc
   13948             :         type(ninf_type)     , intent(in)                    :: lb
   13949             :         real(RKC)           , intent(in)                    :: ub
   13950             :         real(RKC)           , intent(in)                    :: abstol
   13951             :         real(RKC)           , intent(in)                    :: reltol
   13952             :         type(GK51_type)     , intent(in)                    :: qrule
   13953             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   13954             :         real(RKC)           , intent(out)                   :: integral, abserr
   13955             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   13956             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   13957             :         integer(IK)         , intent(out)                   :: neval
   13958             :         integer(IK)         , intent(out)                   :: nint
   13959             :         integer(IK)                                         :: err
   13960             :     end function
   13961             : #endif
   13962             : 
   13963             : #if RK4_ENABLED
   13964             :     module function QAGP_GK51_IF_RK4(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   13965             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   13966             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK51_IF_RK4
   13967             : #endif
   13968             :         use pm_kind, only: RKC => RK4
   13969             :         procedure(real(RKC))                                :: getFunc
   13970             :         type(ninf_type)     , intent(in)                    :: lb
   13971             :         real(RKC)           , intent(in)                    :: ub
   13972             :         real(RKC)           , intent(in)                    :: abstol
   13973             :         real(RKC)           , intent(in)                    :: reltol
   13974             :         type(GK51_type)     , intent(in)                    :: qrule
   13975             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   13976             :         real(RKC)           , intent(out)                   :: integral, abserr
   13977             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   13978             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   13979             :         integer(IK)         , intent(out)                   :: neval
   13980             :         integer(IK)         , intent(out)                   :: nint
   13981             :         integer(IK)                                         :: err
   13982             :     end function
   13983             : #endif
   13984             : 
   13985             : #if RK3_ENABLED
   13986             :     module function QAGP_GK51_IF_RK3(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   13987             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   13988             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK51_IF_RK3
   13989             : #endif
   13990             :         use pm_kind, only: RKC => RK3
   13991             :         procedure(real(RKC))                                :: getFunc
   13992             :         type(ninf_type)     , intent(in)                    :: lb
   13993             :         real(RKC)           , intent(in)                    :: ub
   13994             :         real(RKC)           , intent(in)                    :: abstol
   13995             :         real(RKC)           , intent(in)                    :: reltol
   13996             :         type(GK51_type)     , intent(in)                    :: qrule
   13997             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   13998             :         real(RKC)           , intent(out)                   :: integral, abserr
   13999             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   14000             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   14001             :         integer(IK)         , intent(out)                   :: neval
   14002             :         integer(IK)         , intent(out)                   :: nint
   14003             :         integer(IK)                                         :: err
   14004             :     end function
   14005             : #endif
   14006             : 
   14007             : #if RK2_ENABLED
   14008             :     module function QAGP_GK51_IF_RK2(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   14009             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   14010             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK51_IF_RK2
   14011             : #endif
   14012             :         use pm_kind, only: RKC => RK2
   14013             :         procedure(real(RKC))                                :: getFunc
   14014             :         type(ninf_type)     , intent(in)                    :: lb
   14015             :         real(RKC)           , intent(in)                    :: ub
   14016             :         real(RKC)           , intent(in)                    :: abstol
   14017             :         real(RKC)           , intent(in)                    :: reltol
   14018             :         type(GK51_type)     , intent(in)                    :: qrule
   14019             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   14020             :         real(RKC)           , intent(out)                   :: integral, abserr
   14021             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   14022             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   14023             :         integer(IK)         , intent(out)                   :: neval
   14024             :         integer(IK)         , intent(out)                   :: nint
   14025             :         integer(IK)                                         :: err
   14026             :     end function
   14027             : #endif
   14028             : 
   14029             : #if RK1_ENABLED
   14030             :     module function QAGP_GK51_IF_RK1(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   14031             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   14032             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK51_IF_RK1
   14033             : #endif
   14034             :         use pm_kind, only: RKC => RK1
   14035             :         procedure(real(RKC))                                :: getFunc
   14036             :         type(ninf_type)     , intent(in)                    :: lb
   14037             :         real(RKC)           , intent(in)                    :: ub
   14038             :         real(RKC)           , intent(in)                    :: abstol
   14039             :         real(RKC)           , intent(in)                    :: reltol
   14040             :         type(GK51_type)     , intent(in)                    :: qrule
   14041             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   14042             :         real(RKC)           , intent(out)                   :: integral, abserr
   14043             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   14044             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   14045             :         integer(IK)         , intent(out)                   :: neval
   14046             :         integer(IK)         , intent(out)                   :: nint
   14047             :         integer(IK)                                         :: err
   14048             :     end function
   14049             : #endif
   14050             : 
   14051             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   14052             : 
   14053             : #if RK5_ENABLED
   14054             :     module function QAGP_GK51_II_RK5(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   14055             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   14056             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK51_II_RK5
   14057             : #endif
   14058             :         use pm_kind, only: RKC => RK5
   14059             :         procedure(real(RKC))                                :: getFunc
   14060             :         type(ninf_type)     , intent(in)                    :: lb
   14061             :         type(pinf_type)     , intent(in)                    :: ub
   14062             :         real(RKC)           , intent(in)                    :: abstol
   14063             :         real(RKC)           , intent(in)                    :: reltol
   14064             :         type(GK51_type)     , intent(in)                    :: qrule
   14065             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   14066             :         real(RKC)           , intent(out)                   :: integral, abserr
   14067             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   14068             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   14069             :         integer(IK)         , intent(out)                   :: neval
   14070             :         integer(IK)         , intent(out)                   :: nint
   14071             :         integer(IK)                                         :: err
   14072             :     end function
   14073             : #endif
   14074             : 
   14075             : #if RK4_ENABLED
   14076             :     module function QAGP_GK51_II_RK4(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   14077             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   14078             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK51_II_RK4
   14079             : #endif
   14080             :         use pm_kind, only: RKC => RK4
   14081             :         procedure(real(RKC))                                :: getFunc
   14082             :         type(ninf_type)     , intent(in)                    :: lb
   14083             :         type(pinf_type)     , intent(in)                    :: ub
   14084             :         real(RKC)           , intent(in)                    :: abstol
   14085             :         real(RKC)           , intent(in)                    :: reltol
   14086             :         type(GK51_type)     , intent(in)                    :: qrule
   14087             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   14088             :         real(RKC)           , intent(out)                   :: integral, abserr
   14089             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   14090             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   14091             :         integer(IK)         , intent(out)                   :: neval
   14092             :         integer(IK)         , intent(out)                   :: nint
   14093             :         integer(IK)                                         :: err
   14094             :     end function
   14095             : #endif
   14096             : 
   14097             : #if RK3_ENABLED
   14098             :     module function QAGP_GK51_II_RK3(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   14099             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   14100             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK51_II_RK3
   14101             : #endif
   14102             :         use pm_kind, only: RKC => RK3
   14103             :         procedure(real(RKC))                                :: getFunc
   14104             :         type(ninf_type)     , intent(in)                    :: lb
   14105             :         type(pinf_type)     , intent(in)                    :: ub
   14106             :         real(RKC)           , intent(in)                    :: abstol
   14107             :         real(RKC)           , intent(in)                    :: reltol
   14108             :         type(GK51_type)     , intent(in)                    :: qrule
   14109             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   14110             :         real(RKC)           , intent(out)                   :: integral, abserr
   14111             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   14112             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   14113             :         integer(IK)         , intent(out)                   :: neval
   14114             :         integer(IK)         , intent(out)                   :: nint
   14115             :         integer(IK)                                         :: err
   14116             :     end function
   14117             : #endif
   14118             : 
   14119             : #if RK2_ENABLED
   14120             :     module function QAGP_GK51_II_RK2(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   14121             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   14122             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK51_II_RK2
   14123             : #endif
   14124             :         use pm_kind, only: RKC => RK2
   14125             :         procedure(real(RKC))                                :: getFunc
   14126             :         type(ninf_type)     , intent(in)                    :: lb
   14127             :         type(pinf_type)     , intent(in)                    :: ub
   14128             :         real(RKC)           , intent(in)                    :: abstol
   14129             :         real(RKC)           , intent(in)                    :: reltol
   14130             :         type(GK51_type)     , intent(in)                    :: qrule
   14131             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   14132             :         real(RKC)           , intent(out)                   :: integral, abserr
   14133             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   14134             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   14135             :         integer(IK)         , intent(out)                   :: neval
   14136             :         integer(IK)         , intent(out)                   :: nint
   14137             :         integer(IK)                                         :: err
   14138             :     end function
   14139             : #endif
   14140             : 
   14141             : #if RK1_ENABLED
   14142             :     module function QAGP_GK51_II_RK1(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   14143             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   14144             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK51_II_RK1
   14145             : #endif
   14146             :         use pm_kind, only: RKC => RK1
   14147             :         procedure(real(RKC))                                :: getFunc
   14148             :         type(ninf_type)     , intent(in)                    :: lb
   14149             :         type(pinf_type)     , intent(in)                    :: ub
   14150             :         real(RKC)           , intent(in)                    :: abstol
   14151             :         real(RKC)           , intent(in)                    :: reltol
   14152             :         type(GK51_type)     , intent(in)                    :: qrule
   14153             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   14154             :         real(RKC)           , intent(out)                   :: integral, abserr
   14155             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   14156             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   14157             :         integer(IK)         , intent(out)                   :: neval
   14158             :         integer(IK)         , intent(out)                   :: nint
   14159             :         integer(IK)                                         :: err
   14160             :     end function
   14161             : #endif
   14162             : 
   14163             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   14164             : 
   14165             :     end interface
   14166             : 
   14167             :     ! QAGP_GK61
   14168             : 
   14169             :     interface getQuadErr
   14170             : 
   14171             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   14172             : 
   14173             : #if RK5_ENABLED
   14174             :     module function QAGP_GK61_FF_RK5(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   14175             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   14176             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK61_FF_RK5
   14177             : #endif
   14178             :         use pm_kind, only: RKC => RK5
   14179             :         procedure(real(RKC))                                :: getFunc
   14180             :         real(RKC)           , intent(in)                    :: lb
   14181             :         real(RKC)           , intent(in)                    :: ub
   14182             :         real(RKC)           , intent(in)                    :: abstol
   14183             :         real(RKC)           , intent(in)                    :: reltol
   14184             :         type(GK61_type)     , intent(in)                    :: qrule
   14185             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   14186             :         real(RKC)           , intent(out)                   :: integral, abserr
   14187             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   14188             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   14189             :         integer(IK)         , intent(out)                   :: neval
   14190             :         integer(IK)         , intent(out)                   :: nint
   14191             :         integer(IK)                                         :: err
   14192             :     end function
   14193             : #endif
   14194             : 
   14195             : #if RK4_ENABLED
   14196             :     module function QAGP_GK61_FF_RK4(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   14197             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   14198             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK61_FF_RK4
   14199             : #endif
   14200             :         use pm_kind, only: RKC => RK4
   14201             :         procedure(real(RKC))                                :: getFunc
   14202             :         real(RKC)           , intent(in)                    :: lb
   14203             :         real(RKC)           , intent(in)                    :: ub
   14204             :         real(RKC)           , intent(in)                    :: abstol
   14205             :         real(RKC)           , intent(in)                    :: reltol
   14206             :         type(GK61_type)     , intent(in)                    :: qrule
   14207             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   14208             :         real(RKC)           , intent(out)                   :: integral, abserr
   14209             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   14210             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   14211             :         integer(IK)         , intent(out)                   :: neval
   14212             :         integer(IK)         , intent(out)                   :: nint
   14213             :         integer(IK)                                         :: err
   14214             :     end function
   14215             : #endif
   14216             : 
   14217             : #if RK3_ENABLED
   14218             :     module function QAGP_GK61_FF_RK3(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   14219             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   14220             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK61_FF_RK3
   14221             : #endif
   14222             :         use pm_kind, only: RKC => RK3
   14223             :         procedure(real(RKC))                                :: getFunc
   14224             :         real(RKC)           , intent(in)                    :: lb
   14225             :         real(RKC)           , intent(in)                    :: ub
   14226             :         real(RKC)           , intent(in)                    :: abstol
   14227             :         real(RKC)           , intent(in)                    :: reltol
   14228             :         type(GK61_type)     , intent(in)                    :: qrule
   14229             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   14230             :         real(RKC)           , intent(out)                   :: integral, abserr
   14231             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   14232             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   14233             :         integer(IK)         , intent(out)                   :: neval
   14234             :         integer(IK)         , intent(out)                   :: nint
   14235             :         integer(IK)                                         :: err
   14236             :     end function
   14237             : #endif
   14238             : 
   14239             : #if RK2_ENABLED
   14240             :     module function QAGP_GK61_FF_RK2(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   14241             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   14242             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK61_FF_RK2
   14243             : #endif
   14244             :         use pm_kind, only: RKC => RK2
   14245             :         procedure(real(RKC))                                :: getFunc
   14246             :         real(RKC)           , intent(in)                    :: lb
   14247             :         real(RKC)           , intent(in)                    :: ub
   14248             :         real(RKC)           , intent(in)                    :: abstol
   14249             :         real(RKC)           , intent(in)                    :: reltol
   14250             :         type(GK61_type)     , intent(in)                    :: qrule
   14251             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   14252             :         real(RKC)           , intent(out)                   :: integral, abserr
   14253             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   14254             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   14255             :         integer(IK)         , intent(out)                   :: neval
   14256             :         integer(IK)         , intent(out)                   :: nint
   14257             :         integer(IK)                                         :: err
   14258             :     end function
   14259             : #endif
   14260             : 
   14261             : #if RK1_ENABLED
   14262             :     module function QAGP_GK61_FF_RK1(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   14263             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   14264             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK61_FF_RK1
   14265             : #endif
   14266             :         use pm_kind, only: RKC => RK1
   14267             :         procedure(real(RKC))                                :: getFunc
   14268             :         real(RKC)           , intent(in)                    :: lb
   14269             :         real(RKC)           , intent(in)                    :: ub
   14270             :         real(RKC)           , intent(in)                    :: abstol
   14271             :         real(RKC)           , intent(in)                    :: reltol
   14272             :         type(GK61_type)     , intent(in)                    :: qrule
   14273             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   14274             :         real(RKC)           , intent(out)                   :: integral, abserr
   14275             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   14276             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   14277             :         integer(IK)         , intent(out)                   :: neval
   14278             :         integer(IK)         , intent(out)                   :: nint
   14279             :         integer(IK)                                         :: err
   14280             :     end function
   14281             : #endif
   14282             : 
   14283             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   14284             : 
   14285             : #if RK5_ENABLED
   14286             :     module function QAGP_GK61_FI_RK5(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   14287             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   14288             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK61_FI_RK5
   14289             : #endif
   14290             :         use pm_kind, only: RKC => RK5
   14291             :         procedure(real(RKC))                                :: getFunc
   14292             :         real(RKC)           , intent(in)                    :: lb
   14293             :         type(pinf_type)     , intent(in)                    :: ub
   14294             :         real(RKC)           , intent(in)                    :: abstol
   14295             :         real(RKC)           , intent(in)                    :: reltol
   14296             :         type(GK61_type)     , intent(in)                    :: qrule
   14297             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   14298             :         real(RKC)           , intent(out)                   :: integral, abserr
   14299             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   14300             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   14301             :         integer(IK)         , intent(out)                   :: neval
   14302             :         integer(IK)         , intent(out)                   :: nint
   14303             :         integer(IK)                                         :: err
   14304             :     end function
   14305             : #endif
   14306             : 
   14307             : #if RK4_ENABLED
   14308             :     module function QAGP_GK61_FI_RK4(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   14309             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   14310             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK61_FI_RK4
   14311             : #endif
   14312             :         use pm_kind, only: RKC => RK4
   14313             :         procedure(real(RKC))                                :: getFunc
   14314             :         real(RKC)           , intent(in)                    :: lb
   14315             :         type(pinf_type)     , intent(in)                    :: ub
   14316             :         real(RKC)           , intent(in)                    :: abstol
   14317             :         real(RKC)           , intent(in)                    :: reltol
   14318             :         type(GK61_type)     , intent(in)                    :: qrule
   14319             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   14320             :         real(RKC)           , intent(out)                   :: integral, abserr
   14321             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   14322             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   14323             :         integer(IK)         , intent(out)                   :: neval
   14324             :         integer(IK)         , intent(out)                   :: nint
   14325             :         integer(IK)                                         :: err
   14326             :     end function
   14327             : #endif
   14328             : 
   14329             : #if RK3_ENABLED
   14330             :     module function QAGP_GK61_FI_RK3(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   14331             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   14332             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK61_FI_RK3
   14333             : #endif
   14334             :         use pm_kind, only: RKC => RK3
   14335             :         procedure(real(RKC))                                :: getFunc
   14336             :         real(RKC)           , intent(in)                    :: lb
   14337             :         type(pinf_type)     , intent(in)                    :: ub
   14338             :         real(RKC)           , intent(in)                    :: abstol
   14339             :         real(RKC)           , intent(in)                    :: reltol
   14340             :         type(GK61_type)     , intent(in)                    :: qrule
   14341             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   14342             :         real(RKC)           , intent(out)                   :: integral, abserr
   14343             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   14344             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   14345             :         integer(IK)         , intent(out)                   :: neval
   14346             :         integer(IK)         , intent(out)                   :: nint
   14347             :         integer(IK)                                         :: err
   14348             :     end function
   14349             : #endif
   14350             : 
   14351             : #if RK2_ENABLED
   14352             :     module function QAGP_GK61_FI_RK2(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   14353             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   14354             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK61_FI_RK2
   14355             : #endif
   14356             :         use pm_kind, only: RKC => RK2
   14357             :         procedure(real(RKC))                                :: getFunc
   14358             :         real(RKC)           , intent(in)                    :: lb
   14359             :         type(pinf_type)     , intent(in)                    :: ub
   14360             :         real(RKC)           , intent(in)                    :: abstol
   14361             :         real(RKC)           , intent(in)                    :: reltol
   14362             :         type(GK61_type)     , intent(in)                    :: qrule
   14363             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   14364             :         real(RKC)           , intent(out)                   :: integral, abserr
   14365             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   14366             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   14367             :         integer(IK)         , intent(out)                   :: neval
   14368             :         integer(IK)         , intent(out)                   :: nint
   14369             :         integer(IK)                                         :: err
   14370             :     end function
   14371             : #endif
   14372             : 
   14373             : #if RK1_ENABLED
   14374             :     module function QAGP_GK61_FI_RK1(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   14375             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   14376             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK61_FI_RK1
   14377             : #endif
   14378             :         use pm_kind, only: RKC => RK1
   14379             :         procedure(real(RKC))                                :: getFunc
   14380             :         real(RKC)           , intent(in)                    :: lb
   14381             :         type(pinf_type)     , intent(in)                    :: ub
   14382             :         real(RKC)           , intent(in)                    :: abstol
   14383             :         real(RKC)           , intent(in)                    :: reltol
   14384             :         type(GK61_type)     , intent(in)                    :: qrule
   14385             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   14386             :         real(RKC)           , intent(out)                   :: integral, abserr
   14387             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   14388             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   14389             :         integer(IK)         , intent(out)                   :: neval
   14390             :         integer(IK)         , intent(out)                   :: nint
   14391             :         integer(IK)                                         :: err
   14392             :     end function
   14393             : #endif
   14394             : 
   14395             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   14396             : 
   14397             : #if RK5_ENABLED
   14398             :     module function QAGP_GK61_IF_RK5(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   14399             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   14400             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK61_IF_RK5
   14401             : #endif
   14402             :         use pm_kind, only: RKC => RK5
   14403             :         procedure(real(RKC))                                :: getFunc
   14404             :         type(ninf_type)     , intent(in)                    :: lb
   14405             :         real(RKC)           , intent(in)                    :: ub
   14406             :         real(RKC)           , intent(in)                    :: abstol
   14407             :         real(RKC)           , intent(in)                    :: reltol
   14408             :         type(GK61_type)     , intent(in)                    :: qrule
   14409             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   14410             :         real(RKC)           , intent(out)                   :: integral, abserr
   14411             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   14412             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   14413             :         integer(IK)         , intent(out)                   :: neval
   14414             :         integer(IK)         , intent(out)                   :: nint
   14415             :         integer(IK)                                         :: err
   14416             :     end function
   14417             : #endif
   14418             : 
   14419             : #if RK4_ENABLED
   14420             :     module function QAGP_GK61_IF_RK4(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   14421             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   14422             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK61_IF_RK4
   14423             : #endif
   14424             :         use pm_kind, only: RKC => RK4
   14425             :         procedure(real(RKC))                                :: getFunc
   14426             :         type(ninf_type)     , intent(in)                    :: lb
   14427             :         real(RKC)           , intent(in)                    :: ub
   14428             :         real(RKC)           , intent(in)                    :: abstol
   14429             :         real(RKC)           , intent(in)                    :: reltol
   14430             :         type(GK61_type)     , intent(in)                    :: qrule
   14431             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   14432             :         real(RKC)           , intent(out)                   :: integral, abserr
   14433             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   14434             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   14435             :         integer(IK)         , intent(out)                   :: neval
   14436             :         integer(IK)         , intent(out)                   :: nint
   14437             :         integer(IK)                                         :: err
   14438             :     end function
   14439             : #endif
   14440             : 
   14441             : #if RK3_ENABLED
   14442             :     module function QAGP_GK61_IF_RK3(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   14443             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   14444             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK61_IF_RK3
   14445             : #endif
   14446             :         use pm_kind, only: RKC => RK3
   14447             :         procedure(real(RKC))                                :: getFunc
   14448             :         type(ninf_type)     , intent(in)                    :: lb
   14449             :         real(RKC)           , intent(in)                    :: ub
   14450             :         real(RKC)           , intent(in)                    :: abstol
   14451             :         real(RKC)           , intent(in)                    :: reltol
   14452             :         type(GK61_type)     , intent(in)                    :: qrule
   14453             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   14454             :         real(RKC)           , intent(out)                   :: integral, abserr
   14455             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   14456             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   14457             :         integer(IK)         , intent(out)                   :: neval
   14458             :         integer(IK)         , intent(out)                   :: nint
   14459             :         integer(IK)                                         :: err
   14460             :     end function
   14461             : #endif
   14462             : 
   14463             : #if RK2_ENABLED
   14464             :     module function QAGP_GK61_IF_RK2(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   14465             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   14466             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK61_IF_RK2
   14467             : #endif
   14468             :         use pm_kind, only: RKC => RK2
   14469             :         procedure(real(RKC))                                :: getFunc
   14470             :         type(ninf_type)     , intent(in)                    :: lb
   14471             :         real(RKC)           , intent(in)                    :: ub
   14472             :         real(RKC)           , intent(in)                    :: abstol
   14473             :         real(RKC)           , intent(in)                    :: reltol
   14474             :         type(GK61_type)     , intent(in)                    :: qrule
   14475             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   14476             :         real(RKC)           , intent(out)                   :: integral, abserr
   14477             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   14478             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   14479             :         integer(IK)         , intent(out)                   :: neval
   14480             :         integer(IK)         , intent(out)                   :: nint
   14481             :         integer(IK)                                         :: err
   14482             :     end function
   14483             : #endif
   14484             : 
   14485             : #if RK1_ENABLED
   14486             :     module function QAGP_GK61_IF_RK1(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   14487             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   14488             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK61_IF_RK1
   14489             : #endif
   14490             :         use pm_kind, only: RKC => RK1
   14491             :         procedure(real(RKC))                                :: getFunc
   14492             :         type(ninf_type)     , intent(in)                    :: lb
   14493             :         real(RKC)           , intent(in)                    :: ub
   14494             :         real(RKC)           , intent(in)                    :: abstol
   14495             :         real(RKC)           , intent(in)                    :: reltol
   14496             :         type(GK61_type)     , intent(in)                    :: qrule
   14497             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   14498             :         real(RKC)           , intent(out)                   :: integral, abserr
   14499             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   14500             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   14501             :         integer(IK)         , intent(out)                   :: neval
   14502             :         integer(IK)         , intent(out)                   :: nint
   14503             :         integer(IK)                                         :: err
   14504             :     end function
   14505             : #endif
   14506             : 
   14507             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   14508             : 
   14509             : #if RK5_ENABLED
   14510             :     module function QAGP_GK61_II_RK5(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   14511             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   14512             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK61_II_RK5
   14513             : #endif
   14514             :         use pm_kind, only: RKC => RK5
   14515             :         procedure(real(RKC))                                :: getFunc
   14516             :         type(ninf_type)     , intent(in)                    :: lb
   14517             :         type(pinf_type)     , intent(in)                    :: ub
   14518             :         real(RKC)           , intent(in)                    :: abstol
   14519             :         real(RKC)           , intent(in)                    :: reltol
   14520             :         type(GK61_type)     , intent(in)                    :: qrule
   14521             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   14522             :         real(RKC)           , intent(out)                   :: integral, abserr
   14523             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   14524             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   14525             :         integer(IK)         , intent(out)                   :: neval
   14526             :         integer(IK)         , intent(out)                   :: nint
   14527             :         integer(IK)                                         :: err
   14528             :     end function
   14529             : #endif
   14530             : 
   14531             : #if RK4_ENABLED
   14532             :     module function QAGP_GK61_II_RK4(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   14533             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   14534             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK61_II_RK4
   14535             : #endif
   14536             :         use pm_kind, only: RKC => RK4
   14537             :         procedure(real(RKC))                                :: getFunc
   14538             :         type(ninf_type)     , intent(in)                    :: lb
   14539             :         type(pinf_type)     , intent(in)                    :: ub
   14540             :         real(RKC)           , intent(in)                    :: abstol
   14541             :         real(RKC)           , intent(in)                    :: reltol
   14542             :         type(GK61_type)     , intent(in)                    :: qrule
   14543             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   14544             :         real(RKC)           , intent(out)                   :: integral, abserr
   14545             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   14546             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   14547             :         integer(IK)         , intent(out)                   :: neval
   14548             :         integer(IK)         , intent(out)                   :: nint
   14549             :         integer(IK)                                         :: err
   14550             :     end function
   14551             : #endif
   14552             : 
   14553             : #if RK3_ENABLED
   14554             :     module function QAGP_GK61_II_RK3(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   14555             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   14556             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK61_II_RK3
   14557             : #endif
   14558             :         use pm_kind, only: RKC => RK3
   14559             :         procedure(real(RKC))                                :: getFunc
   14560             :         type(ninf_type)     , intent(in)                    :: lb
   14561             :         type(pinf_type)     , intent(in)                    :: ub
   14562             :         real(RKC)           , intent(in)                    :: abstol
   14563             :         real(RKC)           , intent(in)                    :: reltol
   14564             :         type(GK61_type)     , intent(in)                    :: qrule
   14565             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   14566             :         real(RKC)           , intent(out)                   :: integral, abserr
   14567             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   14568             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   14569             :         integer(IK)         , intent(out)                   :: neval
   14570             :         integer(IK)         , intent(out)                   :: nint
   14571             :         integer(IK)                                         :: err
   14572             :     end function
   14573             : #endif
   14574             : 
   14575             : #if RK2_ENABLED
   14576             :     module function QAGP_GK61_II_RK2(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   14577             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   14578             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK61_II_RK2
   14579             : #endif
   14580             :         use pm_kind, only: RKC => RK2
   14581             :         procedure(real(RKC))                                :: getFunc
   14582             :         type(ninf_type)     , intent(in)                    :: lb
   14583             :         type(pinf_type)     , intent(in)                    :: ub
   14584             :         real(RKC)           , intent(in)                    :: abstol
   14585             :         real(RKC)           , intent(in)                    :: reltol
   14586             :         type(GK61_type)     , intent(in)                    :: qrule
   14587             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   14588             :         real(RKC)           , intent(out)                   :: integral, abserr
   14589             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   14590             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   14591             :         integer(IK)         , intent(out)                   :: neval
   14592             :         integer(IK)         , intent(out)                   :: nint
   14593             :         integer(IK)                                         :: err
   14594             :     end function
   14595             : #endif
   14596             : 
   14597             : #if RK1_ENABLED
   14598             :     module function QAGP_GK61_II_RK1(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   14599             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   14600             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GK61_II_RK1
   14601             : #endif
   14602             :         use pm_kind, only: RKC => RK1
   14603             :         procedure(real(RKC))                                :: getFunc
   14604             :         type(ninf_type)     , intent(in)                    :: lb
   14605             :         type(pinf_type)     , intent(in)                    :: ub
   14606             :         real(RKC)           , intent(in)                    :: abstol
   14607             :         real(RKC)           , intent(in)                    :: reltol
   14608             :         type(GK61_type)     , intent(in)                    :: qrule
   14609             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   14610             :         real(RKC)           , intent(out)                   :: integral, abserr
   14611             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   14612             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   14613             :         integer(IK)         , intent(out)                   :: neval
   14614             :         integer(IK)         , intent(out)                   :: nint
   14615             :         integer(IK)                                         :: err
   14616             :     end function
   14617             : #endif
   14618             : 
   14619             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   14620             : 
   14621             :     end interface
   14622             : 
   14623             :     ! QAGP_GKXX
   14624             : 
   14625             :     interface getQuadErr
   14626             : 
   14627             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   14628             : 
   14629             : #if RK5_ENABLED
   14630             :     module function QAGP_GKXX_FF_RK5(getFunc, lb, ub, abstol, reltol, nodeK, weightK, weightG, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   14631             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   14632             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GKXX_FF_RK5
   14633             : #endif
   14634             :         use pm_kind, only: RKC => RK5
   14635             :         procedure(real(RKC))                                :: getFunc
   14636             :         real(RKC)           , intent(in)                    :: lb
   14637             :         real(RKC)           , intent(in)                    :: ub
   14638             :         real(RKC)           , intent(in)                    :: abstol
   14639             :         real(RKC)           , intent(in)                    :: reltol
   14640             :         real(RKC)           , intent(in)    , contiguous    :: nodeK(:), weightK(:), weightG(:)
   14641             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   14642             :         real(RKC)           , intent(out)                   :: integral, abserr
   14643             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   14644             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   14645             :         integer(IK)         , intent(out)                   :: neval
   14646             :         integer(IK)         , intent(out)                   :: nint
   14647             :         integer(IK)                                         :: err
   14648             :     end function
   14649             : #endif
   14650             : 
   14651             : #if RK4_ENABLED
   14652             :     module function QAGP_GKXX_FF_RK4(getFunc, lb, ub, abstol, reltol, nodeK, weightK, weightG, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   14653             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   14654             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GKXX_FF_RK4
   14655             : #endif
   14656             :         use pm_kind, only: RKC => RK4
   14657             :         procedure(real(RKC))                                :: getFunc
   14658             :         real(RKC)           , intent(in)                    :: lb
   14659             :         real(RKC)           , intent(in)                    :: ub
   14660             :         real(RKC)           , intent(in)                    :: abstol
   14661             :         real(RKC)           , intent(in)                    :: reltol
   14662             :         real(RKC)           , intent(in)    , contiguous    :: nodeK(:), weightK(:), weightG(:)
   14663             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   14664             :         real(RKC)           , intent(out)                   :: integral, abserr
   14665             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   14666             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   14667             :         integer(IK)         , intent(out)                   :: neval
   14668             :         integer(IK)         , intent(out)                   :: nint
   14669             :         integer(IK)                                         :: err
   14670             :     end function
   14671             : #endif
   14672             : 
   14673             : #if RK3_ENABLED
   14674             :     module function QAGP_GKXX_FF_RK3(getFunc, lb, ub, abstol, reltol, nodeK, weightK, weightG, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   14675             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   14676             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GKXX_FF_RK3
   14677             : #endif
   14678             :         use pm_kind, only: RKC => RK3
   14679             :         procedure(real(RKC))                                :: getFunc
   14680             :         real(RKC)           , intent(in)                    :: lb
   14681             :         real(RKC)           , intent(in)                    :: ub
   14682             :         real(RKC)           , intent(in)                    :: abstol
   14683             :         real(RKC)           , intent(in)                    :: reltol
   14684             :         real(RKC)           , intent(in)    , contiguous    :: nodeK(:), weightK(:), weightG(:)
   14685             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   14686             :         real(RKC)           , intent(out)                   :: integral, abserr
   14687             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   14688             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   14689             :         integer(IK)         , intent(out)                   :: neval
   14690             :         integer(IK)         , intent(out)                   :: nint
   14691             :         integer(IK)                                         :: err
   14692             :     end function
   14693             : #endif
   14694             : 
   14695             : #if RK2_ENABLED
   14696             :     module function QAGP_GKXX_FF_RK2(getFunc, lb, ub, abstol, reltol, nodeK, weightK, weightG, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   14697             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   14698             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GKXX_FF_RK2
   14699             : #endif
   14700             :         use pm_kind, only: RKC => RK2
   14701             :         procedure(real(RKC))                                :: getFunc
   14702             :         real(RKC)           , intent(in)                    :: lb
   14703             :         real(RKC)           , intent(in)                    :: ub
   14704             :         real(RKC)           , intent(in)                    :: abstol
   14705             :         real(RKC)           , intent(in)                    :: reltol
   14706             :         real(RKC)           , intent(in)    , contiguous    :: nodeK(:), weightK(:), weightG(:)
   14707             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   14708             :         real(RKC)           , intent(out)                   :: integral, abserr
   14709             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   14710             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   14711             :         integer(IK)         , intent(out)                   :: neval
   14712             :         integer(IK)         , intent(out)                   :: nint
   14713             :         integer(IK)                                         :: err
   14714             :     end function
   14715             : #endif
   14716             : 
   14717             : #if RK1_ENABLED
   14718             :     module function QAGP_GKXX_FF_RK1(getFunc, lb, ub, abstol, reltol, nodeK, weightK, weightG, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   14719             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   14720             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GKXX_FF_RK1
   14721             : #endif
   14722             :         use pm_kind, only: RKC => RK1
   14723             :         procedure(real(RKC))                                :: getFunc
   14724             :         real(RKC)           , intent(in)                    :: lb
   14725             :         real(RKC)           , intent(in)                    :: ub
   14726             :         real(RKC)           , intent(in)                    :: abstol
   14727             :         real(RKC)           , intent(in)                    :: reltol
   14728             :         real(RKC)           , intent(in)    , contiguous    :: nodeK(:), weightK(:), weightG(:)
   14729             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   14730             :         real(RKC)           , intent(out)                   :: integral, abserr
   14731             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   14732             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   14733             :         integer(IK)         , intent(out)                   :: neval
   14734             :         integer(IK)         , intent(out)                   :: nint
   14735             :         integer(IK)                                         :: err
   14736             :     end function
   14737             : #endif
   14738             : 
   14739             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   14740             : 
   14741             : #if RK5_ENABLED
   14742             :     module function QAGP_GKXX_FI_RK5(getFunc, lb, ub, abstol, reltol, nodeK, weightK, weightG, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   14743             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   14744             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GKXX_FI_RK5
   14745             : #endif
   14746             :         use pm_kind, only: RKC => RK5
   14747             :         procedure(real(RKC))                                :: getFunc
   14748             :         real(RKC)           , intent(in)                    :: lb
   14749             :         type(pinf_type)     , intent(in)                    :: ub
   14750             :         real(RKC)           , intent(in)                    :: abstol
   14751             :         real(RKC)           , intent(in)                    :: reltol
   14752             :         real(RKC)           , intent(in)    , contiguous    :: nodeK(:), weightK(:), weightG(:)
   14753             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   14754             :         real(RKC)           , intent(out)                   :: integral, abserr
   14755             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   14756             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   14757             :         integer(IK)         , intent(out)                   :: neval
   14758             :         integer(IK)         , intent(out)                   :: nint
   14759             :         integer(IK)                                         :: err
   14760             :     end function
   14761             : #endif
   14762             : 
   14763             : #if RK4_ENABLED
   14764             :     module function QAGP_GKXX_FI_RK4(getFunc, lb, ub, abstol, reltol, nodeK, weightK, weightG, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   14765             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   14766             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GKXX_FI_RK4
   14767             : #endif
   14768             :         use pm_kind, only: RKC => RK4
   14769             :         procedure(real(RKC))                                :: getFunc
   14770             :         real(RKC)           , intent(in)                    :: lb
   14771             :         type(pinf_type)     , intent(in)                    :: ub
   14772             :         real(RKC)           , intent(in)                    :: abstol
   14773             :         real(RKC)           , intent(in)                    :: reltol
   14774             :         real(RKC)           , intent(in)    , contiguous    :: nodeK(:), weightK(:), weightG(:)
   14775             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   14776             :         real(RKC)           , intent(out)                   :: integral, abserr
   14777             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   14778             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   14779             :         integer(IK)         , intent(out)                   :: neval
   14780             :         integer(IK)         , intent(out)                   :: nint
   14781             :         integer(IK)                                         :: err
   14782             :     end function
   14783             : #endif
   14784             : 
   14785             : #if RK3_ENABLED
   14786             :     module function QAGP_GKXX_FI_RK3(getFunc, lb, ub, abstol, reltol, nodeK, weightK, weightG, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   14787             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   14788             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GKXX_FI_RK3
   14789             : #endif
   14790             :         use pm_kind, only: RKC => RK3
   14791             :         procedure(real(RKC))                                :: getFunc
   14792             :         real(RKC)           , intent(in)                    :: lb
   14793             :         type(pinf_type)     , intent(in)                    :: ub
   14794             :         real(RKC)           , intent(in)                    :: abstol
   14795             :         real(RKC)           , intent(in)                    :: reltol
   14796             :         real(RKC)           , intent(in)    , contiguous    :: nodeK(:), weightK(:), weightG(:)
   14797             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   14798             :         real(RKC)           , intent(out)                   :: integral, abserr
   14799             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   14800             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   14801             :         integer(IK)         , intent(out)                   :: neval
   14802             :         integer(IK)         , intent(out)                   :: nint
   14803             :         integer(IK)                                         :: err
   14804             :     end function
   14805             : #endif
   14806             : 
   14807             : #if RK2_ENABLED
   14808             :     module function QAGP_GKXX_FI_RK2(getFunc, lb, ub, abstol, reltol, nodeK, weightK, weightG, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   14809             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   14810             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GKXX_FI_RK2
   14811             : #endif
   14812             :         use pm_kind, only: RKC => RK2
   14813             :         procedure(real(RKC))                                :: getFunc
   14814             :         real(RKC)           , intent(in)                    :: lb
   14815             :         type(pinf_type)     , intent(in)                    :: ub
   14816             :         real(RKC)           , intent(in)                    :: abstol
   14817             :         real(RKC)           , intent(in)                    :: reltol
   14818             :         real(RKC)           , intent(in)    , contiguous    :: nodeK(:), weightK(:), weightG(:)
   14819             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   14820             :         real(RKC)           , intent(out)                   :: integral, abserr
   14821             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   14822             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   14823             :         integer(IK)         , intent(out)                   :: neval
   14824             :         integer(IK)         , intent(out)                   :: nint
   14825             :         integer(IK)                                         :: err
   14826             :     end function
   14827             : #endif
   14828             : 
   14829             : #if RK1_ENABLED
   14830             :     module function QAGP_GKXX_FI_RK1(getFunc, lb, ub, abstol, reltol, nodeK, weightK, weightG, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   14831             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   14832             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GKXX_FI_RK1
   14833             : #endif
   14834             :         use pm_kind, only: RKC => RK1
   14835             :         procedure(real(RKC))                                :: getFunc
   14836             :         real(RKC)           , intent(in)                    :: lb
   14837             :         type(pinf_type)     , intent(in)                    :: ub
   14838             :         real(RKC)           , intent(in)                    :: abstol
   14839             :         real(RKC)           , intent(in)                    :: reltol
   14840             :         real(RKC)           , intent(in)    , contiguous    :: nodeK(:), weightK(:), weightG(:)
   14841             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   14842             :         real(RKC)           , intent(out)                   :: integral, abserr
   14843             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   14844             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   14845             :         integer(IK)         , intent(out)                   :: neval
   14846             :         integer(IK)         , intent(out)                   :: nint
   14847             :         integer(IK)                                         :: err
   14848             :     end function
   14849             : #endif
   14850             : 
   14851             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   14852             : 
   14853             : #if RK5_ENABLED
   14854             :     module function QAGP_GKXX_IF_RK5(getFunc, lb, ub, abstol, reltol, nodeK, weightK, weightG, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   14855             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   14856             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GKXX_IF_RK5
   14857             : #endif
   14858             :         use pm_kind, only: RKC => RK5
   14859             :         procedure(real(RKC))                                :: getFunc
   14860             :         type(ninf_type)     , intent(in)                    :: lb
   14861             :         real(RKC)           , intent(in)                    :: ub
   14862             :         real(RKC)           , intent(in)                    :: abstol
   14863             :         real(RKC)           , intent(in)                    :: reltol
   14864             :         real(RKC)           , intent(in)    , contiguous    :: nodeK(:), weightK(:), weightG(:)
   14865             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   14866             :         real(RKC)           , intent(out)                   :: integral, abserr
   14867             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   14868             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   14869             :         integer(IK)         , intent(out)                   :: neval
   14870             :         integer(IK)         , intent(out)                   :: nint
   14871             :         integer(IK)                                         :: err
   14872             :     end function
   14873             : #endif
   14874             : 
   14875             : #if RK4_ENABLED
   14876             :     module function QAGP_GKXX_IF_RK4(getFunc, lb, ub, abstol, reltol, nodeK, weightK, weightG, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   14877             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   14878             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GKXX_IF_RK4
   14879             : #endif
   14880             :         use pm_kind, only: RKC => RK4
   14881             :         procedure(real(RKC))                                :: getFunc
   14882             :         type(ninf_type)     , intent(in)                    :: lb
   14883             :         real(RKC)           , intent(in)                    :: ub
   14884             :         real(RKC)           , intent(in)                    :: abstol
   14885             :         real(RKC)           , intent(in)                    :: reltol
   14886             :         real(RKC)           , intent(in)    , contiguous    :: nodeK(:), weightK(:), weightG(:)
   14887             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   14888             :         real(RKC)           , intent(out)                   :: integral, abserr
   14889             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   14890             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   14891             :         integer(IK)         , intent(out)                   :: neval
   14892             :         integer(IK)         , intent(out)                   :: nint
   14893             :         integer(IK)                                         :: err
   14894             :     end function
   14895             : #endif
   14896             : 
   14897             : #if RK3_ENABLED
   14898             :     module function QAGP_GKXX_IF_RK3(getFunc, lb, ub, abstol, reltol, nodeK, weightK, weightG, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   14899             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   14900             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GKXX_IF_RK3
   14901             : #endif
   14902             :         use pm_kind, only: RKC => RK3
   14903             :         procedure(real(RKC))                                :: getFunc
   14904             :         type(ninf_type)     , intent(in)                    :: lb
   14905             :         real(RKC)           , intent(in)                    :: ub
   14906             :         real(RKC)           , intent(in)                    :: abstol
   14907             :         real(RKC)           , intent(in)                    :: reltol
   14908             :         real(RKC)           , intent(in)    , contiguous    :: nodeK(:), weightK(:), weightG(:)
   14909             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   14910             :         real(RKC)           , intent(out)                   :: integral, abserr
   14911             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   14912             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   14913             :         integer(IK)         , intent(out)                   :: neval
   14914             :         integer(IK)         , intent(out)                   :: nint
   14915             :         integer(IK)                                         :: err
   14916             :     end function
   14917             : #endif
   14918             : 
   14919             : #if RK2_ENABLED
   14920             :     module function QAGP_GKXX_IF_RK2(getFunc, lb, ub, abstol, reltol, nodeK, weightK, weightG, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   14921             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   14922             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GKXX_IF_RK2
   14923             : #endif
   14924             :         use pm_kind, only: RKC => RK2
   14925             :         procedure(real(RKC))                                :: getFunc
   14926             :         type(ninf_type)     , intent(in)                    :: lb
   14927             :         real(RKC)           , intent(in)                    :: ub
   14928             :         real(RKC)           , intent(in)                    :: abstol
   14929             :         real(RKC)           , intent(in)                    :: reltol
   14930             :         real(RKC)           , intent(in)    , contiguous    :: nodeK(:), weightK(:), weightG(:)
   14931             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   14932             :         real(RKC)           , intent(out)                   :: integral, abserr
   14933             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   14934             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   14935             :         integer(IK)         , intent(out)                   :: neval
   14936             :         integer(IK)         , intent(out)                   :: nint
   14937             :         integer(IK)                                         :: err
   14938             :     end function
   14939             : #endif
   14940             : 
   14941             : #if RK1_ENABLED
   14942             :     module function QAGP_GKXX_IF_RK1(getFunc, lb, ub, abstol, reltol, nodeK, weightK, weightG, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   14943             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   14944             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GKXX_IF_RK1
   14945             : #endif
   14946             :         use pm_kind, only: RKC => RK1
   14947             :         procedure(real(RKC))                                :: getFunc
   14948             :         type(ninf_type)     , intent(in)                    :: lb
   14949             :         real(RKC)           , intent(in)                    :: ub
   14950             :         real(RKC)           , intent(in)                    :: abstol
   14951             :         real(RKC)           , intent(in)                    :: reltol
   14952             :         real(RKC)           , intent(in)    , contiguous    :: nodeK(:), weightK(:), weightG(:)
   14953             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   14954             :         real(RKC)           , intent(out)                   :: integral, abserr
   14955             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   14956             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   14957             :         integer(IK)         , intent(out)                   :: neval
   14958             :         integer(IK)         , intent(out)                   :: nint
   14959             :         integer(IK)                                         :: err
   14960             :     end function
   14961             : #endif
   14962             : 
   14963             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   14964             : 
   14965             : #if RK5_ENABLED
   14966             :     module function QAGP_GKXX_II_RK5(getFunc, lb, ub, abstol, reltol, nodeK, weightK, weightG, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   14967             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   14968             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GKXX_II_RK5
   14969             : #endif
   14970             :         use pm_kind, only: RKC => RK5
   14971             :         procedure(real(RKC))                                :: getFunc
   14972             :         type(ninf_type)     , intent(in)                    :: lb
   14973             :         type(pinf_type)     , intent(in)                    :: ub
   14974             :         real(RKC)           , intent(in)                    :: abstol
   14975             :         real(RKC)           , intent(in)                    :: reltol
   14976             :         real(RKC)           , intent(in)    , contiguous    :: nodeK(:), weightK(:), weightG(:)
   14977             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   14978             :         real(RKC)           , intent(out)                   :: integral, abserr
   14979             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   14980             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   14981             :         integer(IK)         , intent(out)                   :: neval
   14982             :         integer(IK)         , intent(out)                   :: nint
   14983             :         integer(IK)                                         :: err
   14984             :     end function
   14985             : #endif
   14986             : 
   14987             : #if RK4_ENABLED
   14988             :     module function QAGP_GKXX_II_RK4(getFunc, lb, ub, abstol, reltol, nodeK, weightK, weightG, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   14989             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   14990             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GKXX_II_RK4
   14991             : #endif
   14992             :         use pm_kind, only: RKC => RK4
   14993             :         procedure(real(RKC))                                :: getFunc
   14994             :         type(ninf_type)     , intent(in)                    :: lb
   14995             :         type(pinf_type)     , intent(in)                    :: ub
   14996             :         real(RKC)           , intent(in)                    :: abstol
   14997             :         real(RKC)           , intent(in)                    :: reltol
   14998             :         real(RKC)           , intent(in)    , contiguous    :: nodeK(:), weightK(:), weightG(:)
   14999             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   15000             :         real(RKC)           , intent(out)                   :: integral, abserr
   15001             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   15002             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   15003             :         integer(IK)         , intent(out)                   :: neval
   15004             :         integer(IK)         , intent(out)                   :: nint
   15005             :         integer(IK)                                         :: err
   15006             :     end function
   15007             : #endif
   15008             : 
   15009             : #if RK3_ENABLED
   15010             :     module function QAGP_GKXX_II_RK3(getFunc, lb, ub, abstol, reltol, nodeK, weightK, weightG, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   15011             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   15012             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GKXX_II_RK3
   15013             : #endif
   15014             :         use pm_kind, only: RKC => RK3
   15015             :         procedure(real(RKC))                                :: getFunc
   15016             :         type(ninf_type)     , intent(in)                    :: lb
   15017             :         type(pinf_type)     , intent(in)                    :: ub
   15018             :         real(RKC)           , intent(in)                    :: abstol
   15019             :         real(RKC)           , intent(in)                    :: reltol
   15020             :         real(RKC)           , intent(in)    , contiguous    :: nodeK(:), weightK(:), weightG(:)
   15021             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   15022             :         real(RKC)           , intent(out)                   :: integral, abserr
   15023             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   15024             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   15025             :         integer(IK)         , intent(out)                   :: neval
   15026             :         integer(IK)         , intent(out)                   :: nint
   15027             :         integer(IK)                                         :: err
   15028             :     end function
   15029             : #endif
   15030             : 
   15031             : #if RK2_ENABLED
   15032             :     module function QAGP_GKXX_II_RK2(getFunc, lb, ub, abstol, reltol, nodeK, weightK, weightG, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   15033             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   15034             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GKXX_II_RK2
   15035             : #endif
   15036             :         use pm_kind, only: RKC => RK2
   15037             :         procedure(real(RKC))                                :: getFunc
   15038             :         type(ninf_type)     , intent(in)                    :: lb
   15039             :         type(pinf_type)     , intent(in)                    :: ub
   15040             :         real(RKC)           , intent(in)                    :: abstol
   15041             :         real(RKC)           , intent(in)                    :: reltol
   15042             :         real(RKC)           , intent(in)    , contiguous    :: nodeK(:), weightK(:), weightG(:)
   15043             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   15044             :         real(RKC)           , intent(out)                   :: integral, abserr
   15045             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   15046             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   15047             :         integer(IK)         , intent(out)                   :: neval
   15048             :         integer(IK)         , intent(out)                   :: nint
   15049             :         integer(IK)                                         :: err
   15050             :     end function
   15051             : #endif
   15052             : 
   15053             : #if RK1_ENABLED
   15054             :     module function QAGP_GKXX_II_RK1(getFunc, lb, ub, abstol, reltol, nodeK, weightK, weightG, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   15055             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   15056             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAGP_GKXX_II_RK1
   15057             : #endif
   15058             :         use pm_kind, only: RKC => RK1
   15059             :         procedure(real(RKC))                                :: getFunc
   15060             :         type(ninf_type)     , intent(in)                    :: lb
   15061             :         type(pinf_type)     , intent(in)                    :: ub
   15062             :         real(RKC)           , intent(in)                    :: abstol
   15063             :         real(RKC)           , intent(in)                    :: reltol
   15064             :         real(RKC)           , intent(in)    , contiguous    :: nodeK(:), weightK(:), weightG(:)
   15065             :         real(RKC)           , intent(in)    , contiguous    :: help(:)
   15066             :         real(RKC)           , intent(out)                   :: integral, abserr
   15067             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   15068             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   15069             :         integer(IK)         , intent(out)                   :: neval
   15070             :         integer(IK)         , intent(out)                   :: nint
   15071             :         integer(IK)                                         :: err
   15072             :     end function
   15073             : #endif
   15074             : 
   15075             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   15076             : 
   15077             :     end interface
   15078             : 
   15079             : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   15080             : 
   15081             :     ! QAWC FF
   15082             : 
   15083             :     interface getQuadErr
   15084             : 
   15085             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   15086             : 
   15087             : #if RK5_ENABLED
   15088             :     module function QAWC_GK15_FF_RK5(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   15089             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   15090             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK15_FF_RK5
   15091             : #endif
   15092             :         use pm_kind, only: RKC => RK5
   15093             :         procedure(real(RKC))                                :: getFunc
   15094             :         real(RKC)           , intent(in)                    :: lb
   15095             :         real(RKC)           , intent(in)                    :: ub
   15096             :         real(RKC)           , intent(in)                    :: abstol
   15097             :         real(RKC)           , intent(in)                    :: reltol
   15098             :         type(GK15_type)     , intent(in)                    :: qrule
   15099             :         type(wcauchy_type)  , intent(in)                    :: help
   15100             :         real(RKC)           , intent(out)                   :: integral, abserr
   15101             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   15102             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   15103             :         integer(IK)         , intent(out)                   :: neval
   15104             :         integer(IK)         , intent(out)                   :: nint
   15105             :         integer(IK)                                         :: err
   15106             :     end function
   15107             : #endif
   15108             : 
   15109             : #if RK4_ENABLED
   15110             :     module function QAWC_GK15_FF_RK4(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   15111             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   15112             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK15_FF_RK4
   15113             : #endif
   15114             :         use pm_kind, only: RKC => RK4
   15115             :         procedure(real(RKC))                                :: getFunc
   15116             :         real(RKC)           , intent(in)                    :: lb
   15117             :         real(RKC)           , intent(in)                    :: ub
   15118             :         real(RKC)           , intent(in)                    :: abstol
   15119             :         real(RKC)           , intent(in)                    :: reltol
   15120             :         type(GK15_type)     , intent(in)                    :: qrule
   15121             :         type(wcauchy_type)  , intent(in)                    :: help
   15122             :         real(RKC)           , intent(out)                   :: integral, abserr
   15123             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   15124             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   15125             :         integer(IK)         , intent(out)                   :: neval
   15126             :         integer(IK)         , intent(out)                   :: nint
   15127             :         integer(IK)                                         :: err
   15128             :     end function
   15129             : #endif
   15130             : 
   15131             : #if RK3_ENABLED
   15132             :     module function QAWC_GK15_FF_RK3(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   15133             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   15134             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK15_FF_RK3
   15135             : #endif
   15136             :         use pm_kind, only: RKC => RK3
   15137             :         procedure(real(RKC))                                :: getFunc
   15138             :         real(RKC)           , intent(in)                    :: lb
   15139             :         real(RKC)           , intent(in)                    :: ub
   15140             :         real(RKC)           , intent(in)                    :: abstol
   15141             :         real(RKC)           , intent(in)                    :: reltol
   15142             :         type(GK15_type)     , intent(in)                    :: qrule
   15143             :         type(wcauchy_type)  , intent(in)                    :: help
   15144             :         real(RKC)           , intent(out)                   :: integral, abserr
   15145             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   15146             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   15147             :         integer(IK)         , intent(out)                   :: neval
   15148             :         integer(IK)         , intent(out)                   :: nint
   15149             :         integer(IK)                                         :: err
   15150             :     end function
   15151             : #endif
   15152             : 
   15153             : #if RK2_ENABLED
   15154             :     module function QAWC_GK15_FF_RK2(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   15155             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   15156             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK15_FF_RK2
   15157             : #endif
   15158             :         use pm_kind, only: RKC => RK2
   15159             :         procedure(real(RKC))                                :: getFunc
   15160             :         real(RKC)           , intent(in)                    :: lb
   15161             :         real(RKC)           , intent(in)                    :: ub
   15162             :         real(RKC)           , intent(in)                    :: abstol
   15163             :         real(RKC)           , intent(in)                    :: reltol
   15164             :         type(GK15_type)     , intent(in)                    :: qrule
   15165             :         type(wcauchy_type)  , intent(in)                    :: help
   15166             :         real(RKC)           , intent(out)                   :: integral, abserr
   15167             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   15168             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   15169             :         integer(IK)         , intent(out)                   :: neval
   15170             :         integer(IK)         , intent(out)                   :: nint
   15171             :         integer(IK)                                         :: err
   15172             :     end function
   15173             : #endif
   15174             : 
   15175             : #if RK1_ENABLED
   15176             :     module function QAWC_GK15_FF_RK1(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   15177             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   15178             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK15_FF_RK1
   15179             : #endif
   15180             :         use pm_kind, only: RKC => RK1
   15181             :         procedure(real(RKC))                                :: getFunc
   15182             :         real(RKC)           , intent(in)                    :: lb
   15183             :         real(RKC)           , intent(in)                    :: ub
   15184             :         real(RKC)           , intent(in)                    :: abstol
   15185             :         real(RKC)           , intent(in)                    :: reltol
   15186             :         type(GK15_type)     , intent(in)                    :: qrule
   15187             :         type(wcauchy_type)  , intent(in)                    :: help
   15188             :         real(RKC)           , intent(out)                   :: integral, abserr
   15189             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   15190             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   15191             :         integer(IK)         , intent(out)                   :: neval
   15192             :         integer(IK)         , intent(out)                   :: nint
   15193             :         integer(IK)                                         :: err
   15194             :     end function
   15195             : #endif
   15196             : 
   15197             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   15198             : 
   15199             : #if RK5_ENABLED
   15200             :     module function QAWC_GK21_FF_RK5(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   15201             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   15202             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK21_FF_RK5
   15203             : #endif
   15204             :         use pm_kind, only: RKC => RK5
   15205             :         procedure(real(RKC))                                :: getFunc
   15206             :         real(RKC)           , intent(in)                    :: lb
   15207             :         real(RKC)           , intent(in)                    :: ub
   15208             :         real(RKC)           , intent(in)                    :: abstol
   15209             :         real(RKC)           , intent(in)                    :: reltol
   15210             :         type(GK21_type)     , intent(in)                    :: qrule
   15211             :         type(wcauchy_type)  , intent(in)                    :: help
   15212             :         real(RKC)           , intent(out)                   :: integral, abserr
   15213             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   15214             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   15215             :         integer(IK)         , intent(out)                   :: neval
   15216             :         integer(IK)         , intent(out)                   :: nint
   15217             :         integer(IK)                                         :: err
   15218             :     end function
   15219             : #endif
   15220             : 
   15221             : #if RK4_ENABLED
   15222             :     module function QAWC_GK21_FF_RK4(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   15223             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   15224             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK21_FF_RK4
   15225             : #endif
   15226             :         use pm_kind, only: RKC => RK4
   15227             :         procedure(real(RKC))                                :: getFunc
   15228             :         real(RKC)           , intent(in)                    :: lb
   15229             :         real(RKC)           , intent(in)                    :: ub
   15230             :         real(RKC)           , intent(in)                    :: abstol
   15231             :         real(RKC)           , intent(in)                    :: reltol
   15232             :         type(GK21_type)     , intent(in)                    :: qrule
   15233             :         type(wcauchy_type)  , intent(in)                    :: help
   15234             :         real(RKC)           , intent(out)                   :: integral, abserr
   15235             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   15236             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   15237             :         integer(IK)         , intent(out)                   :: neval
   15238             :         integer(IK)         , intent(out)                   :: nint
   15239             :         integer(IK)                                         :: err
   15240             :     end function
   15241             : #endif
   15242             : 
   15243             : #if RK3_ENABLED
   15244             :     module function QAWC_GK21_FF_RK3(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   15245             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   15246             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK21_FF_RK3
   15247             : #endif
   15248             :         use pm_kind, only: RKC => RK3
   15249             :         procedure(real(RKC))                                :: getFunc
   15250             :         real(RKC)           , intent(in)                    :: lb
   15251             :         real(RKC)           , intent(in)                    :: ub
   15252             :         real(RKC)           , intent(in)                    :: abstol
   15253             :         real(RKC)           , intent(in)                    :: reltol
   15254             :         type(GK21_type)     , intent(in)                    :: qrule
   15255             :         type(wcauchy_type)  , intent(in)                    :: help
   15256             :         real(RKC)           , intent(out)                   :: integral, abserr
   15257             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   15258             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   15259             :         integer(IK)         , intent(out)                   :: neval
   15260             :         integer(IK)         , intent(out)                   :: nint
   15261             :         integer(IK)                                         :: err
   15262             :     end function
   15263             : #endif
   15264             : 
   15265             : #if RK2_ENABLED
   15266             :     module function QAWC_GK21_FF_RK2(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   15267             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   15268             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK21_FF_RK2
   15269             : #endif
   15270             :         use pm_kind, only: RKC => RK2
   15271             :         procedure(real(RKC))                                :: getFunc
   15272             :         real(RKC)           , intent(in)                    :: lb
   15273             :         real(RKC)           , intent(in)                    :: ub
   15274             :         real(RKC)           , intent(in)                    :: abstol
   15275             :         real(RKC)           , intent(in)                    :: reltol
   15276             :         type(GK21_type)     , intent(in)                    :: qrule
   15277             :         type(wcauchy_type)  , intent(in)                    :: help
   15278             :         real(RKC)           , intent(out)                   :: integral, abserr
   15279             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   15280             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   15281             :         integer(IK)         , intent(out)                   :: neval
   15282             :         integer(IK)         , intent(out)                   :: nint
   15283             :         integer(IK)                                         :: err
   15284             :     end function
   15285             : #endif
   15286             : 
   15287             : #if RK1_ENABLED
   15288             :     module function QAWC_GK21_FF_RK1(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   15289             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   15290             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK21_FF_RK1
   15291             : #endif
   15292             :         use pm_kind, only: RKC => RK1
   15293             :         procedure(real(RKC))                                :: getFunc
   15294             :         real(RKC)           , intent(in)                    :: lb
   15295             :         real(RKC)           , intent(in)                    :: ub
   15296             :         real(RKC)           , intent(in)                    :: abstol
   15297             :         real(RKC)           , intent(in)                    :: reltol
   15298             :         type(GK21_type)     , intent(in)                    :: qrule
   15299             :         type(wcauchy_type)  , intent(in)                    :: help
   15300             :         real(RKC)           , intent(out)                   :: integral, abserr
   15301             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   15302             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   15303             :         integer(IK)         , intent(out)                   :: neval
   15304             :         integer(IK)         , intent(out)                   :: nint
   15305             :         integer(IK)                                         :: err
   15306             :     end function
   15307             : #endif
   15308             : 
   15309             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   15310             : 
   15311             : #if RK5_ENABLED
   15312             :     module function QAWC_GK31_FF_RK5(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   15313             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   15314             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK31_FF_RK5
   15315             : #endif
   15316             :         use pm_kind, only: RKC => RK5
   15317             :         procedure(real(RKC))                                :: getFunc
   15318             :         real(RKC)           , intent(in)                    :: lb
   15319             :         real(RKC)           , intent(in)                    :: ub
   15320             :         real(RKC)           , intent(in)                    :: abstol
   15321             :         real(RKC)           , intent(in)                    :: reltol
   15322             :         type(GK31_type)     , intent(in)                    :: qrule
   15323             :         type(wcauchy_type)  , intent(in)                    :: help
   15324             :         real(RKC)           , intent(out)                   :: integral, abserr
   15325             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   15326             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   15327             :         integer(IK)         , intent(out)                   :: neval
   15328             :         integer(IK)         , intent(out)                   :: nint
   15329             :         integer(IK)                                         :: err
   15330             :     end function
   15331             : #endif
   15332             : 
   15333             : #if RK4_ENABLED
   15334             :     module function QAWC_GK31_FF_RK4(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   15335             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   15336             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK31_FF_RK4
   15337             : #endif
   15338             :         use pm_kind, only: RKC => RK4
   15339             :         procedure(real(RKC))                                :: getFunc
   15340             :         real(RKC)           , intent(in)                    :: lb
   15341             :         real(RKC)           , intent(in)                    :: ub
   15342             :         real(RKC)           , intent(in)                    :: abstol
   15343             :         real(RKC)           , intent(in)                    :: reltol
   15344             :         type(GK31_type)     , intent(in)                    :: qrule
   15345             :         type(wcauchy_type)  , intent(in)                    :: help
   15346             :         real(RKC)           , intent(out)                   :: integral, abserr
   15347             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   15348             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   15349             :         integer(IK)         , intent(out)                   :: neval
   15350             :         integer(IK)         , intent(out)                   :: nint
   15351             :         integer(IK)                                         :: err
   15352             :     end function
   15353             : #endif
   15354             : 
   15355             : #if RK3_ENABLED
   15356             :     module function QAWC_GK31_FF_RK3(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   15357             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   15358             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK31_FF_RK3
   15359             : #endif
   15360             :         use pm_kind, only: RKC => RK3
   15361             :         procedure(real(RKC))                                :: getFunc
   15362             :         real(RKC)           , intent(in)                    :: lb
   15363             :         real(RKC)           , intent(in)                    :: ub
   15364             :         real(RKC)           , intent(in)                    :: abstol
   15365             :         real(RKC)           , intent(in)                    :: reltol
   15366             :         type(GK31_type)     , intent(in)                    :: qrule
   15367             :         type(wcauchy_type)  , intent(in)                    :: help
   15368             :         real(RKC)           , intent(out)                   :: integral, abserr
   15369             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   15370             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   15371             :         integer(IK)         , intent(out)                   :: neval
   15372             :         integer(IK)         , intent(out)                   :: nint
   15373             :         integer(IK)                                         :: err
   15374             :     end function
   15375             : #endif
   15376             : 
   15377             : #if RK2_ENABLED
   15378             :     module function QAWC_GK31_FF_RK2(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   15379             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   15380             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK31_FF_RK2
   15381             : #endif
   15382             :         use pm_kind, only: RKC => RK2
   15383             :         procedure(real(RKC))                                :: getFunc
   15384             :         real(RKC)           , intent(in)                    :: lb
   15385             :         real(RKC)           , intent(in)                    :: ub
   15386             :         real(RKC)           , intent(in)                    :: abstol
   15387             :         real(RKC)           , intent(in)                    :: reltol
   15388             :         type(GK31_type)     , intent(in)                    :: qrule
   15389             :         type(wcauchy_type)  , intent(in)                    :: help
   15390             :         real(RKC)           , intent(out)                   :: integral, abserr
   15391             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   15392             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   15393             :         integer(IK)         , intent(out)                   :: neval
   15394             :         integer(IK)         , intent(out)                   :: nint
   15395             :         integer(IK)                                         :: err
   15396             :     end function
   15397             : #endif
   15398             : 
   15399             : #if RK1_ENABLED
   15400             :     module function QAWC_GK31_FF_RK1(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   15401             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   15402             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK31_FF_RK1
   15403             : #endif
   15404             :         use pm_kind, only: RKC => RK1
   15405             :         procedure(real(RKC))                                :: getFunc
   15406             :         real(RKC)           , intent(in)                    :: lb
   15407             :         real(RKC)           , intent(in)                    :: ub
   15408             :         real(RKC)           , intent(in)                    :: abstol
   15409             :         real(RKC)           , intent(in)                    :: reltol
   15410             :         type(GK31_type)     , intent(in)                    :: qrule
   15411             :         type(wcauchy_type)  , intent(in)                    :: help
   15412             :         real(RKC)           , intent(out)                   :: integral, abserr
   15413             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   15414             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   15415             :         integer(IK)         , intent(out)                   :: neval
   15416             :         integer(IK)         , intent(out)                   :: nint
   15417             :         integer(IK)                                         :: err
   15418             :     end function
   15419             : #endif
   15420             : 
   15421             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   15422             : 
   15423             : #if RK5_ENABLED
   15424             :     module function QAWC_GK41_FF_RK5(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   15425             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   15426             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK41_FF_RK5
   15427             : #endif
   15428             :         use pm_kind, only: RKC => RK5
   15429             :         procedure(real(RKC))                                :: getFunc
   15430             :         real(RKC)           , intent(in)                    :: lb
   15431             :         real(RKC)           , intent(in)                    :: ub
   15432             :         real(RKC)           , intent(in)                    :: abstol
   15433             :         real(RKC)           , intent(in)                    :: reltol
   15434             :         type(GK41_type)     , intent(in)                    :: qrule
   15435             :         type(wcauchy_type)  , intent(in)                    :: help
   15436             :         real(RKC)           , intent(out)                   :: integral, abserr
   15437             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   15438             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   15439             :         integer(IK)         , intent(out)                   :: neval
   15440             :         integer(IK)         , intent(out)                   :: nint
   15441             :         integer(IK)                                         :: err
   15442             :     end function
   15443             : #endif
   15444             : 
   15445             : #if RK4_ENABLED
   15446             :     module function QAWC_GK41_FF_RK4(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   15447             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   15448             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK41_FF_RK4
   15449             : #endif
   15450             :         use pm_kind, only: RKC => RK4
   15451             :         procedure(real(RKC))                                :: getFunc
   15452             :         real(RKC)           , intent(in)                    :: lb
   15453             :         real(RKC)           , intent(in)                    :: ub
   15454             :         real(RKC)           , intent(in)                    :: abstol
   15455             :         real(RKC)           , intent(in)                    :: reltol
   15456             :         type(GK41_type)     , intent(in)                    :: qrule
   15457             :         type(wcauchy_type)  , intent(in)                    :: help
   15458             :         real(RKC)           , intent(out)                   :: integral, abserr
   15459             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   15460             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   15461             :         integer(IK)         , intent(out)                   :: neval
   15462             :         integer(IK)         , intent(out)                   :: nint
   15463             :         integer(IK)                                         :: err
   15464             :     end function
   15465             : #endif
   15466             : 
   15467             : #if RK3_ENABLED
   15468             :     module function QAWC_GK41_FF_RK3(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   15469             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   15470             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK41_FF_RK3
   15471             : #endif
   15472             :         use pm_kind, only: RKC => RK3
   15473             :         procedure(real(RKC))                                :: getFunc
   15474             :         real(RKC)           , intent(in)                    :: lb
   15475             :         real(RKC)           , intent(in)                    :: ub
   15476             :         real(RKC)           , intent(in)                    :: abstol
   15477             :         real(RKC)           , intent(in)                    :: reltol
   15478             :         type(GK41_type)     , intent(in)                    :: qrule
   15479             :         type(wcauchy_type)  , intent(in)                    :: help
   15480             :         real(RKC)           , intent(out)                   :: integral, abserr
   15481             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   15482             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   15483             :         integer(IK)         , intent(out)                   :: neval
   15484             :         integer(IK)         , intent(out)                   :: nint
   15485             :         integer(IK)                                         :: err
   15486             :     end function
   15487             : #endif
   15488             : 
   15489             : #if RK2_ENABLED
   15490             :     module function QAWC_GK41_FF_RK2(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   15491             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   15492             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK41_FF_RK2
   15493             : #endif
   15494             :         use pm_kind, only: RKC => RK2
   15495             :         procedure(real(RKC))                                :: getFunc
   15496             :         real(RKC)           , intent(in)                    :: lb
   15497             :         real(RKC)           , intent(in)                    :: ub
   15498             :         real(RKC)           , intent(in)                    :: abstol
   15499             :         real(RKC)           , intent(in)                    :: reltol
   15500             :         type(GK41_type)     , intent(in)                    :: qrule
   15501             :         type(wcauchy_type)  , intent(in)                    :: help
   15502             :         real(RKC)           , intent(out)                   :: integral, abserr
   15503             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   15504             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   15505             :         integer(IK)         , intent(out)                   :: neval
   15506             :         integer(IK)         , intent(out)                   :: nint
   15507             :         integer(IK)                                         :: err
   15508             :     end function
   15509             : #endif
   15510             : 
   15511             : #if RK1_ENABLED
   15512             :     module function QAWC_GK41_FF_RK1(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   15513             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   15514             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK41_FF_RK1
   15515             : #endif
   15516             :         use pm_kind, only: RKC => RK1
   15517             :         procedure(real(RKC))                                :: getFunc
   15518             :         real(RKC)           , intent(in)                    :: lb
   15519             :         real(RKC)           , intent(in)                    :: ub
   15520             :         real(RKC)           , intent(in)                    :: abstol
   15521             :         real(RKC)           , intent(in)                    :: reltol
   15522             :         type(GK41_type)     , intent(in)                    :: qrule
   15523             :         type(wcauchy_type)  , intent(in)                    :: help
   15524             :         real(RKC)           , intent(out)                   :: integral, abserr
   15525             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   15526             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   15527             :         integer(IK)         , intent(out)                   :: neval
   15528             :         integer(IK)         , intent(out)                   :: nint
   15529             :         integer(IK)                                         :: err
   15530             :     end function
   15531             : #endif
   15532             : 
   15533             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   15534             : 
   15535             : #if RK5_ENABLED
   15536             :     module function QAWC_GK51_FF_RK5(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   15537             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   15538             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK51_FF_RK5
   15539             : #endif
   15540             :         use pm_kind, only: RKC => RK5
   15541             :         procedure(real(RKC))                                :: getFunc
   15542             :         real(RKC)           , intent(in)                    :: lb
   15543             :         real(RKC)           , intent(in)                    :: ub
   15544             :         real(RKC)           , intent(in)                    :: abstol
   15545             :         real(RKC)           , intent(in)                    :: reltol
   15546             :         type(GK51_type)     , intent(in)                    :: qrule
   15547             :         type(wcauchy_type)  , intent(in)                    :: help
   15548             :         real(RKC)           , intent(out)                   :: integral, abserr
   15549             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   15550             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   15551             :         integer(IK)         , intent(out)                   :: neval
   15552             :         integer(IK)         , intent(out)                   :: nint
   15553             :         integer(IK)                                         :: err
   15554             :     end function
   15555             : #endif
   15556             : 
   15557             : #if RK4_ENABLED
   15558             :     module function QAWC_GK51_FF_RK4(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   15559             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   15560             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK51_FF_RK4
   15561             : #endif
   15562             :         use pm_kind, only: RKC => RK4
   15563             :         procedure(real(RKC))                                :: getFunc
   15564             :         real(RKC)           , intent(in)                    :: lb
   15565             :         real(RKC)           , intent(in)                    :: ub
   15566             :         real(RKC)           , intent(in)                    :: abstol
   15567             :         real(RKC)           , intent(in)                    :: reltol
   15568             :         type(GK51_type)     , intent(in)                    :: qrule
   15569             :         type(wcauchy_type)  , intent(in)                    :: help
   15570             :         real(RKC)           , intent(out)                   :: integral, abserr
   15571             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   15572             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   15573             :         integer(IK)         , intent(out)                   :: neval
   15574             :         integer(IK)         , intent(out)                   :: nint
   15575             :         integer(IK)                                         :: err
   15576             :     end function
   15577             : #endif
   15578             : 
   15579             : #if RK3_ENABLED
   15580             :     module function QAWC_GK51_FF_RK3(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   15581             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   15582             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK51_FF_RK3
   15583             : #endif
   15584             :         use pm_kind, only: RKC => RK3
   15585             :         procedure(real(RKC))                                :: getFunc
   15586             :         real(RKC)           , intent(in)                    :: lb
   15587             :         real(RKC)           , intent(in)                    :: ub
   15588             :         real(RKC)           , intent(in)                    :: abstol
   15589             :         real(RKC)           , intent(in)                    :: reltol
   15590             :         type(GK51_type)     , intent(in)                    :: qrule
   15591             :         type(wcauchy_type)  , intent(in)                    :: help
   15592             :         real(RKC)           , intent(out)                   :: integral, abserr
   15593             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   15594             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   15595             :         integer(IK)         , intent(out)                   :: neval
   15596             :         integer(IK)         , intent(out)                   :: nint
   15597             :         integer(IK)                                         :: err
   15598             :     end function
   15599             : #endif
   15600             : 
   15601             : #if RK2_ENABLED
   15602             :     module function QAWC_GK51_FF_RK2(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   15603             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   15604             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK51_FF_RK2
   15605             : #endif
   15606             :         use pm_kind, only: RKC => RK2
   15607             :         procedure(real(RKC))                                :: getFunc
   15608             :         real(RKC)           , intent(in)                    :: lb
   15609             :         real(RKC)           , intent(in)                    :: ub
   15610             :         real(RKC)           , intent(in)                    :: abstol
   15611             :         real(RKC)           , intent(in)                    :: reltol
   15612             :         type(GK51_type)     , intent(in)                    :: qrule
   15613             :         type(wcauchy_type)  , intent(in)                    :: help
   15614             :         real(RKC)           , intent(out)                   :: integral, abserr
   15615             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   15616             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   15617             :         integer(IK)         , intent(out)                   :: neval
   15618             :         integer(IK)         , intent(out)                   :: nint
   15619             :         integer(IK)                                         :: err
   15620             :     end function
   15621             : #endif
   15622             : 
   15623             : #if RK1_ENABLED
   15624             :     module function QAWC_GK51_FF_RK1(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   15625             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   15626             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK51_FF_RK1
   15627             : #endif
   15628             :         use pm_kind, only: RKC => RK1
   15629             :         procedure(real(RKC))                                :: getFunc
   15630             :         real(RKC)           , intent(in)                    :: lb
   15631             :         real(RKC)           , intent(in)                    :: ub
   15632             :         real(RKC)           , intent(in)                    :: abstol
   15633             :         real(RKC)           , intent(in)                    :: reltol
   15634             :         type(GK51_type)     , intent(in)                    :: qrule
   15635             :         type(wcauchy_type)  , intent(in)                    :: help
   15636             :         real(RKC)           , intent(out)                   :: integral, abserr
   15637             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   15638             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   15639             :         integer(IK)         , intent(out)                   :: neval
   15640             :         integer(IK)         , intent(out)                   :: nint
   15641             :         integer(IK)                                         :: err
   15642             :     end function
   15643             : #endif
   15644             : 
   15645             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   15646             : 
   15647             : #if RK5_ENABLED
   15648             :     module function QAWC_GK61_FF_RK5(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   15649             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   15650             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK61_FF_RK5
   15651             : #endif
   15652             :         use pm_kind, only: RKC => RK5
   15653             :         procedure(real(RKC))                                :: getFunc
   15654             :         real(RKC)           , intent(in)                    :: lb
   15655             :         real(RKC)           , intent(in)                    :: ub
   15656             :         real(RKC)           , intent(in)                    :: abstol
   15657             :         real(RKC)           , intent(in)                    :: reltol
   15658             :         type(GK61_type)     , intent(in)                    :: qrule
   15659             :         type(wcauchy_type)  , intent(in)                    :: help
   15660             :         real(RKC)           , intent(out)                   :: integral, abserr
   15661             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   15662             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   15663             :         integer(IK)         , intent(out)                   :: neval
   15664             :         integer(IK)         , intent(out)                   :: nint
   15665             :         integer(IK)                                         :: err
   15666             :     end function
   15667             : #endif
   15668             : 
   15669             : #if RK4_ENABLED
   15670             :     module function QAWC_GK61_FF_RK4(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   15671             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   15672             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK61_FF_RK4
   15673             : #endif
   15674             :         use pm_kind, only: RKC => RK4
   15675             :         procedure(real(RKC))                                :: getFunc
   15676             :         real(RKC)           , intent(in)                    :: lb
   15677             :         real(RKC)           , intent(in)                    :: ub
   15678             :         real(RKC)           , intent(in)                    :: abstol
   15679             :         real(RKC)           , intent(in)                    :: reltol
   15680             :         type(GK61_type)     , intent(in)                    :: qrule
   15681             :         type(wcauchy_type)  , intent(in)                    :: help
   15682             :         real(RKC)           , intent(out)                   :: integral, abserr
   15683             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   15684             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   15685             :         integer(IK)         , intent(out)                   :: neval
   15686             :         integer(IK)         , intent(out)                   :: nint
   15687             :         integer(IK)                                         :: err
   15688             :     end function
   15689             : #endif
   15690             : 
   15691             : #if RK3_ENABLED
   15692             :     module function QAWC_GK61_FF_RK3(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   15693             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   15694             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK61_FF_RK3
   15695             : #endif
   15696             :         use pm_kind, only: RKC => RK3
   15697             :         procedure(real(RKC))                                :: getFunc
   15698             :         real(RKC)           , intent(in)                    :: lb
   15699             :         real(RKC)           , intent(in)                    :: ub
   15700             :         real(RKC)           , intent(in)                    :: abstol
   15701             :         real(RKC)           , intent(in)                    :: reltol
   15702             :         type(GK61_type)     , intent(in)                    :: qrule
   15703             :         type(wcauchy_type)  , intent(in)                    :: help
   15704             :         real(RKC)           , intent(out)                   :: integral, abserr
   15705             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   15706             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   15707             :         integer(IK)         , intent(out)                   :: neval
   15708             :         integer(IK)         , intent(out)                   :: nint
   15709             :         integer(IK)                                         :: err
   15710             :     end function
   15711             : #endif
   15712             : 
   15713             : #if RK2_ENABLED
   15714             :     module function QAWC_GK61_FF_RK2(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   15715             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   15716             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK61_FF_RK2
   15717             : #endif
   15718             :         use pm_kind, only: RKC => RK2
   15719             :         procedure(real(RKC))                                :: getFunc
   15720             :         real(RKC)           , intent(in)                    :: lb
   15721             :         real(RKC)           , intent(in)                    :: ub
   15722             :         real(RKC)           , intent(in)                    :: abstol
   15723             :         real(RKC)           , intent(in)                    :: reltol
   15724             :         type(GK61_type)     , intent(in)                    :: qrule
   15725             :         type(wcauchy_type)  , intent(in)                    :: help
   15726             :         real(RKC)           , intent(out)                   :: integral, abserr
   15727             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   15728             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   15729             :         integer(IK)         , intent(out)                   :: neval
   15730             :         integer(IK)         , intent(out)                   :: nint
   15731             :         integer(IK)                                         :: err
   15732             :     end function
   15733             : #endif
   15734             : 
   15735             : #if RK1_ENABLED
   15736             :     module function QAWC_GK61_FF_RK1(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   15737             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   15738             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK61_FF_RK1
   15739             : #endif
   15740             :         use pm_kind, only: RKC => RK1
   15741             :         procedure(real(RKC))                                :: getFunc
   15742             :         real(RKC)           , intent(in)                    :: lb
   15743             :         real(RKC)           , intent(in)                    :: ub
   15744             :         real(RKC)           , intent(in)                    :: abstol
   15745             :         real(RKC)           , intent(in)                    :: reltol
   15746             :         type(GK61_type)     , intent(in)                    :: qrule
   15747             :         type(wcauchy_type)  , intent(in)                    :: help
   15748             :         real(RKC)           , intent(out)                   :: integral, abserr
   15749             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   15750             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   15751             :         integer(IK)         , intent(out)                   :: neval
   15752             :         integer(IK)         , intent(out)                   :: nint
   15753             :         integer(IK)                                         :: err
   15754             :     end function
   15755             : #endif
   15756             : 
   15757             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   15758             : 
   15759             : #if RK5_ENABLED
   15760             :     module function QAWC_GKXX_FF_RK5(getFunc, lb, ub, abstol, reltol, nodeK, weightK, weightG, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   15761             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   15762             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GKXX_FF_RK5
   15763             : #endif
   15764             :         use pm_kind, only: RKC => RK5
   15765             :         procedure(real(RKC))                                :: getFunc
   15766             :         real(RKC)           , intent(in)                    :: lb
   15767             :         real(RKC)           , intent(in)                    :: ub
   15768             :         real(RKC)           , intent(in)                    :: abstol
   15769             :         real(RKC)           , intent(in)                    :: reltol
   15770             :         real(RKC)           , intent(in)    , contiguous    :: nodeK(:), weightK(:), weightG(:)
   15771             :         type(wcauchy_type)  , intent(in)                    :: help
   15772             :         real(RKC)           , intent(out)                   :: integral, abserr
   15773             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   15774             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   15775             :         integer(IK)         , intent(out)                   :: neval
   15776             :         integer(IK)         , intent(out)                   :: nint
   15777             :         integer(IK)                                         :: err
   15778             :     end function
   15779             : #endif
   15780             : 
   15781             : #if RK4_ENABLED
   15782             :     module function QAWC_GKXX_FF_RK4(getFunc, lb, ub, abstol, reltol, nodeK, weightK, weightG, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   15783             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   15784             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GKXX_FF_RK4
   15785             : #endif
   15786             :         use pm_kind, only: RKC => RK4
   15787             :         procedure(real(RKC))                                :: getFunc
   15788             :         real(RKC)           , intent(in)                    :: lb
   15789             :         real(RKC)           , intent(in)                    :: ub
   15790             :         real(RKC)           , intent(in)                    :: abstol
   15791             :         real(RKC)           , intent(in)                    :: reltol
   15792             :         real(RKC)           , intent(in)    , contiguous    :: nodeK(:), weightK(:), weightG(:)
   15793             :         type(wcauchy_type)  , intent(in)                    :: help
   15794             :         real(RKC)           , intent(out)                   :: integral, abserr
   15795             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   15796             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   15797             :         integer(IK)         , intent(out)                   :: neval
   15798             :         integer(IK)         , intent(out)                   :: nint
   15799             :         integer(IK)                                         :: err
   15800             :     end function
   15801             : #endif
   15802             : 
   15803             : #if RK3_ENABLED
   15804             :     module function QAWC_GKXX_FF_RK3(getFunc, lb, ub, abstol, reltol, nodeK, weightK, weightG, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   15805             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   15806             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GKXX_FF_RK3
   15807             : #endif
   15808             :         use pm_kind, only: RKC => RK3
   15809             :         procedure(real(RKC))                                :: getFunc
   15810             :         real(RKC)           , intent(in)                    :: lb
   15811             :         real(RKC)           , intent(in)                    :: ub
   15812             :         real(RKC)           , intent(in)                    :: abstol
   15813             :         real(RKC)           , intent(in)                    :: reltol
   15814             :         real(RKC)           , intent(in)    , contiguous    :: nodeK(:), weightK(:), weightG(:)
   15815             :         type(wcauchy_type)  , intent(in)                    :: help
   15816             :         real(RKC)           , intent(out)                   :: integral, abserr
   15817             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   15818             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   15819             :         integer(IK)         , intent(out)                   :: neval
   15820             :         integer(IK)         , intent(out)                   :: nint
   15821             :         integer(IK)                                         :: err
   15822             :     end function
   15823             : #endif
   15824             : 
   15825             : #if RK2_ENABLED
   15826             :     module function QAWC_GKXX_FF_RK2(getFunc, lb, ub, abstol, reltol, nodeK, weightK, weightG, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   15827             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   15828             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GKXX_FF_RK2
   15829             : #endif
   15830             :         use pm_kind, only: RKC => RK2
   15831             :         procedure(real(RKC))                                :: getFunc
   15832             :         real(RKC)           , intent(in)                    :: lb
   15833             :         real(RKC)           , intent(in)                    :: ub
   15834             :         real(RKC)           , intent(in)                    :: abstol
   15835             :         real(RKC)           , intent(in)                    :: reltol
   15836             :         real(RKC)           , intent(in)    , contiguous    :: nodeK(:), weightK(:), weightG(:)
   15837             :         type(wcauchy_type)  , intent(in)                    :: help
   15838             :         real(RKC)           , intent(out)                   :: integral, abserr
   15839             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   15840             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   15841             :         integer(IK)         , intent(out)                   :: neval
   15842             :         integer(IK)         , intent(out)                   :: nint
   15843             :         integer(IK)                                         :: err
   15844             :     end function
   15845             : #endif
   15846             : 
   15847             : #if RK1_ENABLED
   15848             :     module function QAWC_GKXX_FF_RK1(getFunc, lb, ub, abstol, reltol, nodeK, weightK, weightG, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   15849             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   15850             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GKXX_FF_RK1
   15851             : #endif
   15852             :         use pm_kind, only: RKC => RK1
   15853             :         procedure(real(RKC))                                :: getFunc
   15854             :         real(RKC)           , intent(in)                    :: lb
   15855             :         real(RKC)           , intent(in)                    :: ub
   15856             :         real(RKC)           , intent(in)                    :: abstol
   15857             :         real(RKC)           , intent(in)                    :: reltol
   15858             :         real(RKC)           , intent(in)    , contiguous    :: nodeK(:), weightK(:), weightG(:)
   15859             :         type(wcauchy_type)  , intent(in)                    :: help
   15860             :         real(RKC)           , intent(out)                   :: integral, abserr
   15861             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   15862             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   15863             :         integer(IK)         , intent(out)                   :: neval
   15864             :         integer(IK)         , intent(out)                   :: nint
   15865             :         integer(IK)                                         :: err
   15866             :     end function
   15867             : #endif
   15868             : 
   15869             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   15870             : 
   15871             :     end interface
   15872             : 
   15873             :     ! QAWC FI
   15874             : 
   15875             :     interface getQuadErr
   15876             : 
   15877             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   15878             : 
   15879             : #if RK5_ENABLED
   15880             :     module function QAWC_GK15_FI_RK5(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   15881             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   15882             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK15_FI_RK5
   15883             : #endif
   15884             :         use pm_kind, only: RKC => RK5
   15885             :         procedure(real(RKC))                                :: getFunc
   15886             :         real(RKC)           , intent(in)                    :: lb
   15887             :         type(pinf_type)     , intent(in)                    :: ub
   15888             :         real(RKC)           , intent(in)                    :: abstol
   15889             :         real(RKC)           , intent(in)                    :: reltol
   15890             :         type(GK15_type)     , intent(in)                    :: qrule
   15891             :         type(wcauchy_type)  , intent(in)                    :: help
   15892             :         real(RKC)           , intent(out)                   :: integral, abserr
   15893             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   15894             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   15895             :         integer(IK)         , intent(out)                   :: neval
   15896             :         integer(IK)         , intent(out)                   :: nint
   15897             :         integer(IK)                                         :: err
   15898             :     end function
   15899             : #endif
   15900             : 
   15901             : #if RK4_ENABLED
   15902             :     module function QAWC_GK15_FI_RK4(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   15903             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   15904             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK15_FI_RK4
   15905             : #endif
   15906             :         use pm_kind, only: RKC => RK4
   15907             :         procedure(real(RKC))                                :: getFunc
   15908             :         real(RKC)           , intent(in)                    :: lb
   15909             :         type(pinf_type)     , intent(in)                    :: ub
   15910             :         real(RKC)           , intent(in)                    :: abstol
   15911             :         real(RKC)           , intent(in)                    :: reltol
   15912             :         type(GK15_type)     , intent(in)                    :: qrule
   15913             :         type(wcauchy_type)  , intent(in)                    :: help
   15914             :         real(RKC)           , intent(out)                   :: integral, abserr
   15915             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   15916             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   15917             :         integer(IK)         , intent(out)                   :: neval
   15918             :         integer(IK)         , intent(out)                   :: nint
   15919             :         integer(IK)                                         :: err
   15920             :     end function
   15921             : #endif
   15922             : 
   15923             : #if RK3_ENABLED
   15924             :     module function QAWC_GK15_FI_RK3(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   15925             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   15926             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK15_FI_RK3
   15927             : #endif
   15928             :         use pm_kind, only: RKC => RK3
   15929             :         procedure(real(RKC))                                :: getFunc
   15930             :         real(RKC)           , intent(in)                    :: lb
   15931             :         type(pinf_type)     , intent(in)                    :: ub
   15932             :         real(RKC)           , intent(in)                    :: abstol
   15933             :         real(RKC)           , intent(in)                    :: reltol
   15934             :         type(GK15_type)     , intent(in)                    :: qrule
   15935             :         type(wcauchy_type)  , intent(in)                    :: help
   15936             :         real(RKC)           , intent(out)                   :: integral, abserr
   15937             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   15938             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   15939             :         integer(IK)         , intent(out)                   :: neval
   15940             :         integer(IK)         , intent(out)                   :: nint
   15941             :         integer(IK)                                         :: err
   15942             :     end function
   15943             : #endif
   15944             : 
   15945             : #if RK2_ENABLED
   15946             :     module function QAWC_GK15_FI_RK2(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   15947             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   15948             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK15_FI_RK2
   15949             : #endif
   15950             :         use pm_kind, only: RKC => RK2
   15951             :         procedure(real(RKC))                                :: getFunc
   15952             :         real(RKC)           , intent(in)                    :: lb
   15953             :         type(pinf_type)     , intent(in)                    :: ub
   15954             :         real(RKC)           , intent(in)                    :: abstol
   15955             :         real(RKC)           , intent(in)                    :: reltol
   15956             :         type(GK15_type)     , intent(in)                    :: qrule
   15957             :         type(wcauchy_type)  , intent(in)                    :: help
   15958             :         real(RKC)           , intent(out)                   :: integral, abserr
   15959             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   15960             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   15961             :         integer(IK)         , intent(out)                   :: neval
   15962             :         integer(IK)         , intent(out)                   :: nint
   15963             :         integer(IK)                                         :: err
   15964             :     end function
   15965             : #endif
   15966             : 
   15967             : #if RK1_ENABLED
   15968             :     module function QAWC_GK15_FI_RK1(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   15969             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   15970             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK15_FI_RK1
   15971             : #endif
   15972             :         use pm_kind, only: RKC => RK1
   15973             :         procedure(real(RKC))                                :: getFunc
   15974             :         real(RKC)           , intent(in)                    :: lb
   15975             :         type(pinf_type)     , intent(in)                    :: ub
   15976             :         real(RKC)           , intent(in)                    :: abstol
   15977             :         real(RKC)           , intent(in)                    :: reltol
   15978             :         type(GK15_type)     , intent(in)                    :: qrule
   15979             :         type(wcauchy_type)  , intent(in)                    :: help
   15980             :         real(RKC)           , intent(out)                   :: integral, abserr
   15981             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   15982             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   15983             :         integer(IK)         , intent(out)                   :: neval
   15984             :         integer(IK)         , intent(out)                   :: nint
   15985             :         integer(IK)                                         :: err
   15986             :     end function
   15987             : #endif
   15988             : 
   15989             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   15990             : 
   15991             : #if RK5_ENABLED
   15992             :     module function QAWC_GK21_FI_RK5(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   15993             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   15994             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK21_FI_RK5
   15995             : #endif
   15996             :         use pm_kind, only: RKC => RK5
   15997             :         procedure(real(RKC))                                :: getFunc
   15998             :         real(RKC)           , intent(in)                    :: lb
   15999             :         type(pinf_type)     , intent(in)                    :: ub
   16000             :         real(RKC)           , intent(in)                    :: abstol
   16001             :         real(RKC)           , intent(in)                    :: reltol
   16002             :         type(GK21_type)     , intent(in)                    :: qrule
   16003             :         type(wcauchy_type)  , intent(in)                    :: help
   16004             :         real(RKC)           , intent(out)                   :: integral, abserr
   16005             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   16006             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   16007             :         integer(IK)         , intent(out)                   :: neval
   16008             :         integer(IK)         , intent(out)                   :: nint
   16009             :         integer(IK)                                         :: err
   16010             :     end function
   16011             : #endif
   16012             : 
   16013             : #if RK4_ENABLED
   16014             :     module function QAWC_GK21_FI_RK4(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   16015             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   16016             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK21_FI_RK4
   16017             : #endif
   16018             :         use pm_kind, only: RKC => RK4
   16019             :         procedure(real(RKC))                                :: getFunc
   16020             :         real(RKC)           , intent(in)                    :: lb
   16021             :         type(pinf_type)     , intent(in)                    :: ub
   16022             :         real(RKC)           , intent(in)                    :: abstol
   16023             :         real(RKC)           , intent(in)                    :: reltol
   16024             :         type(GK21_type)     , intent(in)                    :: qrule
   16025             :         type(wcauchy_type)  , intent(in)                    :: help
   16026             :         real(RKC)           , intent(out)                   :: integral, abserr
   16027             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   16028             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   16029             :         integer(IK)         , intent(out)                   :: neval
   16030             :         integer(IK)         , intent(out)                   :: nint
   16031             :         integer(IK)                                         :: err
   16032             :     end function
   16033             : #endif
   16034             : 
   16035             : #if RK3_ENABLED
   16036             :     module function QAWC_GK21_FI_RK3(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   16037             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   16038             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK21_FI_RK3
   16039             : #endif
   16040             :         use pm_kind, only: RKC => RK3
   16041             :         procedure(real(RKC))                                :: getFunc
   16042             :         real(RKC)           , intent(in)                    :: lb
   16043             :         type(pinf_type)     , intent(in)                    :: ub
   16044             :         real(RKC)           , intent(in)                    :: abstol
   16045             :         real(RKC)           , intent(in)                    :: reltol
   16046             :         type(GK21_type)     , intent(in)                    :: qrule
   16047             :         type(wcauchy_type)  , intent(in)                    :: help
   16048             :         real(RKC)           , intent(out)                   :: integral, abserr
   16049             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   16050             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   16051             :         integer(IK)         , intent(out)                   :: neval
   16052             :         integer(IK)         , intent(out)                   :: nint
   16053             :         integer(IK)                                         :: err
   16054             :     end function
   16055             : #endif
   16056             : 
   16057             : #if RK2_ENABLED
   16058             :     module function QAWC_GK21_FI_RK2(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   16059             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   16060             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK21_FI_RK2
   16061             : #endif
   16062             :         use pm_kind, only: RKC => RK2
   16063             :         procedure(real(RKC))                                :: getFunc
   16064             :         real(RKC)           , intent(in)                    :: lb
   16065             :         type(pinf_type)     , intent(in)                    :: ub
   16066             :         real(RKC)           , intent(in)                    :: abstol
   16067             :         real(RKC)           , intent(in)                    :: reltol
   16068             :         type(GK21_type)     , intent(in)                    :: qrule
   16069             :         type(wcauchy_type)  , intent(in)                    :: help
   16070             :         real(RKC)           , intent(out)                   :: integral, abserr
   16071             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   16072             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   16073             :         integer(IK)         , intent(out)                   :: neval
   16074             :         integer(IK)         , intent(out)                   :: nint
   16075             :         integer(IK)                                         :: err
   16076             :     end function
   16077             : #endif
   16078             : 
   16079             : #if RK1_ENABLED
   16080             :     module function QAWC_GK21_FI_RK1(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   16081             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   16082             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK21_FI_RK1
   16083             : #endif
   16084             :         use pm_kind, only: RKC => RK1
   16085             :         procedure(real(RKC))                                :: getFunc
   16086             :         real(RKC)           , intent(in)                    :: lb
   16087             :         type(pinf_type)     , intent(in)                    :: ub
   16088             :         real(RKC)           , intent(in)                    :: abstol
   16089             :         real(RKC)           , intent(in)                    :: reltol
   16090             :         type(GK21_type)     , intent(in)                    :: qrule
   16091             :         type(wcauchy_type)  , intent(in)                    :: help
   16092             :         real(RKC)           , intent(out)                   :: integral, abserr
   16093             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   16094             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   16095             :         integer(IK)         , intent(out)                   :: neval
   16096             :         integer(IK)         , intent(out)                   :: nint
   16097             :         integer(IK)                                         :: err
   16098             :     end function
   16099             : #endif
   16100             : 
   16101             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   16102             : 
   16103             : #if RK5_ENABLED
   16104             :     module function QAWC_GK31_FI_RK5(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   16105             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   16106             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK31_FI_RK5
   16107             : #endif
   16108             :         use pm_kind, only: RKC => RK5
   16109             :         procedure(real(RKC))                                :: getFunc
   16110             :         real(RKC)           , intent(in)                    :: lb
   16111             :         type(pinf_type)     , intent(in)                    :: ub
   16112             :         real(RKC)           , intent(in)                    :: abstol
   16113             :         real(RKC)           , intent(in)                    :: reltol
   16114             :         type(GK31_type)     , intent(in)                    :: qrule
   16115             :         type(wcauchy_type)  , intent(in)                    :: help
   16116             :         real(RKC)           , intent(out)                   :: integral, abserr
   16117             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   16118             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   16119             :         integer(IK)         , intent(out)                   :: neval
   16120             :         integer(IK)         , intent(out)                   :: nint
   16121             :         integer(IK)                                         :: err
   16122             :     end function
   16123             : #endif
   16124             : 
   16125             : #if RK4_ENABLED
   16126             :     module function QAWC_GK31_FI_RK4(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   16127             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   16128             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK31_FI_RK4
   16129             : #endif
   16130             :         use pm_kind, only: RKC => RK4
   16131             :         procedure(real(RKC))                                :: getFunc
   16132             :         real(RKC)           , intent(in)                    :: lb
   16133             :         type(pinf_type)     , intent(in)                    :: ub
   16134             :         real(RKC)           , intent(in)                    :: abstol
   16135             :         real(RKC)           , intent(in)                    :: reltol
   16136             :         type(GK31_type)     , intent(in)                    :: qrule
   16137             :         type(wcauchy_type)  , intent(in)                    :: help
   16138             :         real(RKC)           , intent(out)                   :: integral, abserr
   16139             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   16140             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   16141             :         integer(IK)         , intent(out)                   :: neval
   16142             :         integer(IK)         , intent(out)                   :: nint
   16143             :         integer(IK)                                         :: err
   16144             :     end function
   16145             : #endif
   16146             : 
   16147             : #if RK3_ENABLED
   16148             :     module function QAWC_GK31_FI_RK3(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   16149             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   16150             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK31_FI_RK3
   16151             : #endif
   16152             :         use pm_kind, only: RKC => RK3
   16153             :         procedure(real(RKC))                                :: getFunc
   16154             :         real(RKC)           , intent(in)                    :: lb
   16155             :         type(pinf_type)     , intent(in)                    :: ub
   16156             :         real(RKC)           , intent(in)                    :: abstol
   16157             :         real(RKC)           , intent(in)                    :: reltol
   16158             :         type(GK31_type)     , intent(in)                    :: qrule
   16159             :         type(wcauchy_type)  , intent(in)                    :: help
   16160             :         real(RKC)           , intent(out)                   :: integral, abserr
   16161             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   16162             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   16163             :         integer(IK)         , intent(out)                   :: neval
   16164             :         integer(IK)         , intent(out)                   :: nint
   16165             :         integer(IK)                                         :: err
   16166             :     end function
   16167             : #endif
   16168             : 
   16169             : #if RK2_ENABLED
   16170             :     module function QAWC_GK31_FI_RK2(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   16171             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   16172             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK31_FI_RK2
   16173             : #endif
   16174             :         use pm_kind, only: RKC => RK2
   16175             :         procedure(real(RKC))                                :: getFunc
   16176             :         real(RKC)           , intent(in)                    :: lb
   16177             :         type(pinf_type)     , intent(in)                    :: ub
   16178             :         real(RKC)           , intent(in)                    :: abstol
   16179             :         real(RKC)           , intent(in)                    :: reltol
   16180             :         type(GK31_type)     , intent(in)                    :: qrule
   16181             :         type(wcauchy_type)  , intent(in)                    :: help
   16182             :         real(RKC)           , intent(out)                   :: integral, abserr
   16183             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   16184             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   16185             :         integer(IK)         , intent(out)                   :: neval
   16186             :         integer(IK)         , intent(out)                   :: nint
   16187             :         integer(IK)                                         :: err
   16188             :     end function
   16189             : #endif
   16190             : 
   16191             : #if RK1_ENABLED
   16192             :     module function QAWC_GK31_FI_RK1(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   16193             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   16194             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK31_FI_RK1
   16195             : #endif
   16196             :         use pm_kind, only: RKC => RK1
   16197             :         procedure(real(RKC))                                :: getFunc
   16198             :         real(RKC)           , intent(in)                    :: lb
   16199             :         type(pinf_type)     , intent(in)                    :: ub
   16200             :         real(RKC)           , intent(in)                    :: abstol
   16201             :         real(RKC)           , intent(in)                    :: reltol
   16202             :         type(GK31_type)     , intent(in)                    :: qrule
   16203             :         type(wcauchy_type)  , intent(in)                    :: help
   16204             :         real(RKC)           , intent(out)                   :: integral, abserr
   16205             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   16206             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   16207             :         integer(IK)         , intent(out)                   :: neval
   16208             :         integer(IK)         , intent(out)                   :: nint
   16209             :         integer(IK)                                         :: err
   16210             :     end function
   16211             : #endif
   16212             : 
   16213             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   16214             : 
   16215             : #if RK5_ENABLED
   16216             :     module function QAWC_GK41_FI_RK5(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   16217             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   16218             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK41_FI_RK5
   16219             : #endif
   16220             :         use pm_kind, only: RKC => RK5
   16221             :         procedure(real(RKC))                                :: getFunc
   16222             :         real(RKC)           , intent(in)                    :: lb
   16223             :         type(pinf_type)     , intent(in)                    :: ub
   16224             :         real(RKC)           , intent(in)                    :: abstol
   16225             :         real(RKC)           , intent(in)                    :: reltol
   16226             :         type(GK41_type)     , intent(in)                    :: qrule
   16227             :         type(wcauchy_type)  , intent(in)                    :: help
   16228             :         real(RKC)           , intent(out)                   :: integral, abserr
   16229             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   16230             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   16231             :         integer(IK)         , intent(out)                   :: neval
   16232             :         integer(IK)         , intent(out)                   :: nint
   16233             :         integer(IK)                                         :: err
   16234             :     end function
   16235             : #endif
   16236             : 
   16237             : #if RK4_ENABLED
   16238             :     module function QAWC_GK41_FI_RK4(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   16239             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   16240             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK41_FI_RK4
   16241             : #endif
   16242             :         use pm_kind, only: RKC => RK4
   16243             :         procedure(real(RKC))                                :: getFunc
   16244             :         real(RKC)           , intent(in)                    :: lb
   16245             :         type(pinf_type)     , intent(in)                    :: ub
   16246             :         real(RKC)           , intent(in)                    :: abstol
   16247             :         real(RKC)           , intent(in)                    :: reltol
   16248             :         type(GK41_type)     , intent(in)                    :: qrule
   16249             :         type(wcauchy_type)  , intent(in)                    :: help
   16250             :         real(RKC)           , intent(out)                   :: integral, abserr
   16251             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   16252             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   16253             :         integer(IK)         , intent(out)                   :: neval
   16254             :         integer(IK)         , intent(out)                   :: nint
   16255             :         integer(IK)                                         :: err
   16256             :     end function
   16257             : #endif
   16258             : 
   16259             : #if RK3_ENABLED
   16260             :     module function QAWC_GK41_FI_RK3(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   16261             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   16262             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK41_FI_RK3
   16263             : #endif
   16264             :         use pm_kind, only: RKC => RK3
   16265             :         procedure(real(RKC))                                :: getFunc
   16266             :         real(RKC)           , intent(in)                    :: lb
   16267             :         type(pinf_type)     , intent(in)                    :: ub
   16268             :         real(RKC)           , intent(in)                    :: abstol
   16269             :         real(RKC)           , intent(in)                    :: reltol
   16270             :         type(GK41_type)     , intent(in)                    :: qrule
   16271             :         type(wcauchy_type)  , intent(in)                    :: help
   16272             :         real(RKC)           , intent(out)                   :: integral, abserr
   16273             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   16274             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   16275             :         integer(IK)         , intent(out)                   :: neval
   16276             :         integer(IK)         , intent(out)                   :: nint
   16277             :         integer(IK)                                         :: err
   16278             :     end function
   16279             : #endif
   16280             : 
   16281             : #if RK2_ENABLED
   16282             :     module function QAWC_GK41_FI_RK2(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   16283             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   16284             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK41_FI_RK2
   16285             : #endif
   16286             :         use pm_kind, only: RKC => RK2
   16287             :         procedure(real(RKC))                                :: getFunc
   16288             :         real(RKC)           , intent(in)                    :: lb
   16289             :         type(pinf_type)     , intent(in)                    :: ub
   16290             :         real(RKC)           , intent(in)                    :: abstol
   16291             :         real(RKC)           , intent(in)                    :: reltol
   16292             :         type(GK41_type)     , intent(in)                    :: qrule
   16293             :         type(wcauchy_type)  , intent(in)                    :: help
   16294             :         real(RKC)           , intent(out)                   :: integral, abserr
   16295             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   16296             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   16297             :         integer(IK)         , intent(out)                   :: neval
   16298             :         integer(IK)         , intent(out)                   :: nint
   16299             :         integer(IK)                                         :: err
   16300             :     end function
   16301             : #endif
   16302             : 
   16303             : #if RK1_ENABLED
   16304             :     module function QAWC_GK41_FI_RK1(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   16305             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   16306             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK41_FI_RK1
   16307             : #endif
   16308             :         use pm_kind, only: RKC => RK1
   16309             :         procedure(real(RKC))                                :: getFunc
   16310             :         real(RKC)           , intent(in)                    :: lb
   16311             :         type(pinf_type)     , intent(in)                    :: ub
   16312             :         real(RKC)           , intent(in)                    :: abstol
   16313             :         real(RKC)           , intent(in)                    :: reltol
   16314             :         type(GK41_type)     , intent(in)                    :: qrule
   16315             :         type(wcauchy_type)  , intent(in)                    :: help
   16316             :         real(RKC)           , intent(out)                   :: integral, abserr
   16317             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   16318             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   16319             :         integer(IK)         , intent(out)                   :: neval
   16320             :         integer(IK)         , intent(out)                   :: nint
   16321             :         integer(IK)                                         :: err
   16322             :     end function
   16323             : #endif
   16324             : 
   16325             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   16326             : 
   16327             : #if RK5_ENABLED
   16328             :     module function QAWC_GK51_FI_RK5(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   16329             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   16330             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK51_FI_RK5
   16331             : #endif
   16332             :         use pm_kind, only: RKC => RK5
   16333             :         procedure(real(RKC))                                :: getFunc
   16334             :         real(RKC)           , intent(in)                    :: lb
   16335             :         type(pinf_type)     , intent(in)                    :: ub
   16336             :         real(RKC)           , intent(in)                    :: abstol
   16337             :         real(RKC)           , intent(in)                    :: reltol
   16338             :         type(GK51_type)     , intent(in)                    :: qrule
   16339             :         type(wcauchy_type)  , intent(in)                    :: help
   16340             :         real(RKC)           , intent(out)                   :: integral, abserr
   16341             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   16342             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   16343             :         integer(IK)         , intent(out)                   :: neval
   16344             :         integer(IK)         , intent(out)                   :: nint
   16345             :         integer(IK)                                         :: err
   16346             :     end function
   16347             : #endif
   16348             : 
   16349             : #if RK4_ENABLED
   16350             :     module function QAWC_GK51_FI_RK4(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   16351             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   16352             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK51_FI_RK4
   16353             : #endif
   16354             :         use pm_kind, only: RKC => RK4
   16355             :         procedure(real(RKC))                                :: getFunc
   16356             :         real(RKC)           , intent(in)                    :: lb
   16357             :         type(pinf_type)     , intent(in)                    :: ub
   16358             :         real(RKC)           , intent(in)                    :: abstol
   16359             :         real(RKC)           , intent(in)                    :: reltol
   16360             :         type(GK51_type)     , intent(in)                    :: qrule
   16361             :         type(wcauchy_type)  , intent(in)                    :: help
   16362             :         real(RKC)           , intent(out)                   :: integral, abserr
   16363             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   16364             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   16365             :         integer(IK)         , intent(out)                   :: neval
   16366             :         integer(IK)         , intent(out)                   :: nint
   16367             :         integer(IK)                                         :: err
   16368             :     end function
   16369             : #endif
   16370             : 
   16371             : #if RK3_ENABLED
   16372             :     module function QAWC_GK51_FI_RK3(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   16373             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   16374             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK51_FI_RK3
   16375             : #endif
   16376             :         use pm_kind, only: RKC => RK3
   16377             :         procedure(real(RKC))                                :: getFunc
   16378             :         real(RKC)           , intent(in)                    :: lb
   16379             :         type(pinf_type)     , intent(in)                    :: ub
   16380             :         real(RKC)           , intent(in)                    :: abstol
   16381             :         real(RKC)           , intent(in)                    :: reltol
   16382             :         type(GK51_type)     , intent(in)                    :: qrule
   16383             :         type(wcauchy_type)  , intent(in)                    :: help
   16384             :         real(RKC)           , intent(out)                   :: integral, abserr
   16385             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   16386             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   16387             :         integer(IK)         , intent(out)                   :: neval
   16388             :         integer(IK)         , intent(out)                   :: nint
   16389             :         integer(IK)                                         :: err
   16390             :     end function
   16391             : #endif
   16392             : 
   16393             : #if RK2_ENABLED
   16394             :     module function QAWC_GK51_FI_RK2(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   16395             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   16396             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK51_FI_RK2
   16397             : #endif
   16398             :         use pm_kind, only: RKC => RK2
   16399             :         procedure(real(RKC))                                :: getFunc
   16400             :         real(RKC)           , intent(in)                    :: lb
   16401             :         type(pinf_type)     , intent(in)                    :: ub
   16402             :         real(RKC)           , intent(in)                    :: abstol
   16403             :         real(RKC)           , intent(in)                    :: reltol
   16404             :         type(GK51_type)     , intent(in)                    :: qrule
   16405             :         type(wcauchy_type)  , intent(in)                    :: help
   16406             :         real(RKC)           , intent(out)                   :: integral, abserr
   16407             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   16408             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   16409             :         integer(IK)         , intent(out)                   :: neval
   16410             :         integer(IK)         , intent(out)                   :: nint
   16411             :         integer(IK)                                         :: err
   16412             :     end function
   16413             : #endif
   16414             : 
   16415             : #if RK1_ENABLED
   16416             :     module function QAWC_GK51_FI_RK1(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   16417             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   16418             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK51_FI_RK1
   16419             : #endif
   16420             :         use pm_kind, only: RKC => RK1
   16421             :         procedure(real(RKC))                                :: getFunc
   16422             :         real(RKC)           , intent(in)                    :: lb
   16423             :         type(pinf_type)     , intent(in)                    :: ub
   16424             :         real(RKC)           , intent(in)                    :: abstol
   16425             :         real(RKC)           , intent(in)                    :: reltol
   16426             :         type(GK51_type)     , intent(in)                    :: qrule
   16427             :         type(wcauchy_type)  , intent(in)                    :: help
   16428             :         real(RKC)           , intent(out)                   :: integral, abserr
   16429             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   16430             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   16431             :         integer(IK)         , intent(out)                   :: neval
   16432             :         integer(IK)         , intent(out)                   :: nint
   16433             :         integer(IK)                                         :: err
   16434             :     end function
   16435             : #endif
   16436             : 
   16437             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   16438             : 
   16439             : #if RK5_ENABLED
   16440             :     module function QAWC_GK61_FI_RK5(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   16441             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   16442             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK61_FI_RK5
   16443             : #endif
   16444             :         use pm_kind, only: RKC => RK5
   16445             :         procedure(real(RKC))                                :: getFunc
   16446             :         real(RKC)           , intent(in)                    :: lb
   16447             :         type(pinf_type)     , intent(in)                    :: ub
   16448             :         real(RKC)           , intent(in)                    :: abstol
   16449             :         real(RKC)           , intent(in)                    :: reltol
   16450             :         type(GK61_type)     , intent(in)                    :: qrule
   16451             :         type(wcauchy_type)  , intent(in)                    :: help
   16452             :         real(RKC)           , intent(out)                   :: integral, abserr
   16453             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   16454             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   16455             :         integer(IK)         , intent(out)                   :: neval
   16456             :         integer(IK)         , intent(out)                   :: nint
   16457             :         integer(IK)                                         :: err
   16458             :     end function
   16459             : #endif
   16460             : 
   16461             : #if RK4_ENABLED
   16462             :     module function QAWC_GK61_FI_RK4(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   16463             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   16464             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK61_FI_RK4
   16465             : #endif
   16466             :         use pm_kind, only: RKC => RK4
   16467             :         procedure(real(RKC))                                :: getFunc
   16468             :         real(RKC)           , intent(in)                    :: lb
   16469             :         type(pinf_type)     , intent(in)                    :: ub
   16470             :         real(RKC)           , intent(in)                    :: abstol
   16471             :         real(RKC)           , intent(in)                    :: reltol
   16472             :         type(GK61_type)     , intent(in)                    :: qrule
   16473             :         type(wcauchy_type)  , intent(in)                    :: help
   16474             :         real(RKC)           , intent(out)                   :: integral, abserr
   16475             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   16476             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   16477             :         integer(IK)         , intent(out)                   :: neval
   16478             :         integer(IK)         , intent(out)                   :: nint
   16479             :         integer(IK)                                         :: err
   16480             :     end function
   16481             : #endif
   16482             : 
   16483             : #if RK3_ENABLED
   16484             :     module function QAWC_GK61_FI_RK3(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   16485             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   16486             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK61_FI_RK3
   16487             : #endif
   16488             :         use pm_kind, only: RKC => RK3
   16489             :         procedure(real(RKC))                                :: getFunc
   16490             :         real(RKC)           , intent(in)                    :: lb
   16491             :         type(pinf_type)     , intent(in)                    :: ub
   16492             :         real(RKC)           , intent(in)                    :: abstol
   16493             :         real(RKC)           , intent(in)                    :: reltol
   16494             :         type(GK61_type)     , intent(in)                    :: qrule
   16495             :         type(wcauchy_type)  , intent(in)                    :: help
   16496             :         real(RKC)           , intent(out)                   :: integral, abserr
   16497             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   16498             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   16499             :         integer(IK)         , intent(out)                   :: neval
   16500             :         integer(IK)         , intent(out)                   :: nint
   16501             :         integer(IK)                                         :: err
   16502             :     end function
   16503             : #endif
   16504             : 
   16505             : #if RK2_ENABLED
   16506             :     module function QAWC_GK61_FI_RK2(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   16507             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   16508             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK61_FI_RK2
   16509             : #endif
   16510             :         use pm_kind, only: RKC => RK2
   16511             :         procedure(real(RKC))                                :: getFunc
   16512             :         real(RKC)           , intent(in)                    :: lb
   16513             :         type(pinf_type)     , intent(in)                    :: ub
   16514             :         real(RKC)           , intent(in)                    :: abstol
   16515             :         real(RKC)           , intent(in)                    :: reltol
   16516             :         type(GK61_type)     , intent(in)                    :: qrule
   16517             :         type(wcauchy_type)  , intent(in)                    :: help
   16518             :         real(RKC)           , intent(out)                   :: integral, abserr
   16519             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   16520             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   16521             :         integer(IK)         , intent(out)                   :: neval
   16522             :         integer(IK)         , intent(out)                   :: nint
   16523             :         integer(IK)                                         :: err
   16524             :     end function
   16525             : #endif
   16526             : 
   16527             : #if RK1_ENABLED
   16528             :     module function QAWC_GK61_FI_RK1(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   16529             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   16530             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK61_FI_RK1
   16531             : #endif
   16532             :         use pm_kind, only: RKC => RK1
   16533             :         procedure(real(RKC))                                :: getFunc
   16534             :         real(RKC)           , intent(in)                    :: lb
   16535             :         type(pinf_type)     , intent(in)                    :: ub
   16536             :         real(RKC)           , intent(in)                    :: abstol
   16537             :         real(RKC)           , intent(in)                    :: reltol
   16538             :         type(GK61_type)     , intent(in)                    :: qrule
   16539             :         type(wcauchy_type)  , intent(in)                    :: help
   16540             :         real(RKC)           , intent(out)                   :: integral, abserr
   16541             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   16542             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   16543             :         integer(IK)         , intent(out)                   :: neval
   16544             :         integer(IK)         , intent(out)                   :: nint
   16545             :         integer(IK)                                         :: err
   16546             :     end function
   16547             : #endif
   16548             : 
   16549             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   16550             : 
   16551             : #if RK5_ENABLED
   16552             :     module function QAWC_GKXX_FI_RK5(getFunc, lb, ub, abstol, reltol, nodeK, weightK, weightG, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   16553             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   16554             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GKXX_FI_RK5
   16555             : #endif
   16556             :         use pm_kind, only: RKC => RK5
   16557             :         procedure(real(RKC))                                :: getFunc
   16558             :         real(RKC)           , intent(in)                    :: lb
   16559             :         type(pinf_type)     , intent(in)                    :: ub
   16560             :         real(RKC)           , intent(in)                    :: abstol
   16561             :         real(RKC)           , intent(in)                    :: reltol
   16562             :         real(RKC)           , intent(in)    , contiguous    :: nodeK(:), weightK(:), weightG(:)
   16563             :         type(wcauchy_type)  , intent(in)                    :: help
   16564             :         real(RKC)           , intent(out)                   :: integral, abserr
   16565             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   16566             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   16567             :         integer(IK)         , intent(out)                   :: neval
   16568             :         integer(IK)         , intent(out)                   :: nint
   16569             :         integer(IK)                                         :: err
   16570             :     end function
   16571             : #endif
   16572             : 
   16573             : #if RK4_ENABLED
   16574             :     module function QAWC_GKXX_FI_RK4(getFunc, lb, ub, abstol, reltol, nodeK, weightK, weightG, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   16575             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   16576             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GKXX_FI_RK4
   16577             : #endif
   16578             :         use pm_kind, only: RKC => RK4
   16579             :         procedure(real(RKC))                                :: getFunc
   16580             :         real(RKC)           , intent(in)                    :: lb
   16581             :         type(pinf_type)     , intent(in)                    :: ub
   16582             :         real(RKC)           , intent(in)                    :: abstol
   16583             :         real(RKC)           , intent(in)                    :: reltol
   16584             :         real(RKC)           , intent(in)    , contiguous    :: nodeK(:), weightK(:), weightG(:)
   16585             :         type(wcauchy_type)  , intent(in)                    :: help
   16586             :         real(RKC)           , intent(out)                   :: integral, abserr
   16587             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   16588             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   16589             :         integer(IK)         , intent(out)                   :: neval
   16590             :         integer(IK)         , intent(out)                   :: nint
   16591             :         integer(IK)                                         :: err
   16592             :     end function
   16593             : #endif
   16594             : 
   16595             : #if RK3_ENABLED
   16596             :     module function QAWC_GKXX_FI_RK3(getFunc, lb, ub, abstol, reltol, nodeK, weightK, weightG, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   16597             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   16598             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GKXX_FI_RK3
   16599             : #endif
   16600             :         use pm_kind, only: RKC => RK3
   16601             :         procedure(real(RKC))                                :: getFunc
   16602             :         real(RKC)           , intent(in)                    :: lb
   16603             :         type(pinf_type)     , intent(in)                    :: ub
   16604             :         real(RKC)           , intent(in)                    :: abstol
   16605             :         real(RKC)           , intent(in)                    :: reltol
   16606             :         real(RKC)           , intent(in)    , contiguous    :: nodeK(:), weightK(:), weightG(:)
   16607             :         type(wcauchy_type)  , intent(in)                    :: help
   16608             :         real(RKC)           , intent(out)                   :: integral, abserr
   16609             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   16610             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   16611             :         integer(IK)         , intent(out)                   :: neval
   16612             :         integer(IK)         , intent(out)                   :: nint
   16613             :         integer(IK)                                         :: err
   16614             :     end function
   16615             : #endif
   16616             : 
   16617             : #if RK2_ENABLED
   16618             :     module function QAWC_GKXX_FI_RK2(getFunc, lb, ub, abstol, reltol, nodeK, weightK, weightG, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   16619             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   16620             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GKXX_FI_RK2
   16621             : #endif
   16622             :         use pm_kind, only: RKC => RK2
   16623             :         procedure(real(RKC))                                :: getFunc
   16624             :         real(RKC)           , intent(in)                    :: lb
   16625             :         type(pinf_type)     , intent(in)                    :: ub
   16626             :         real(RKC)           , intent(in)                    :: abstol
   16627             :         real(RKC)           , intent(in)                    :: reltol
   16628             :         real(RKC)           , intent(in)    , contiguous    :: nodeK(:), weightK(:), weightG(:)
   16629             :         type(wcauchy_type)  , intent(in)                    :: help
   16630             :         real(RKC)           , intent(out)                   :: integral, abserr
   16631             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   16632             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   16633             :         integer(IK)         , intent(out)                   :: neval
   16634             :         integer(IK)         , intent(out)                   :: nint
   16635             :         integer(IK)                                         :: err
   16636             :     end function
   16637             : #endif
   16638             : 
   16639             : #if RK1_ENABLED
   16640             :     module function QAWC_GKXX_FI_RK1(getFunc, lb, ub, abstol, reltol, nodeK, weightK, weightG, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   16641             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   16642             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GKXX_FI_RK1
   16643             : #endif
   16644             :         use pm_kind, only: RKC => RK1
   16645             :         procedure(real(RKC))                                :: getFunc
   16646             :         real(RKC)           , intent(in)                    :: lb
   16647             :         type(pinf_type)     , intent(in)                    :: ub
   16648             :         real(RKC)           , intent(in)                    :: abstol
   16649             :         real(RKC)           , intent(in)                    :: reltol
   16650             :         real(RKC)           , intent(in)    , contiguous    :: nodeK(:), weightK(:), weightG(:)
   16651             :         type(wcauchy_type)  , intent(in)                    :: help
   16652             :         real(RKC)           , intent(out)                   :: integral, abserr
   16653             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   16654             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   16655             :         integer(IK)         , intent(out)                   :: neval
   16656             :         integer(IK)         , intent(out)                   :: nint
   16657             :         integer(IK)                                         :: err
   16658             :     end function
   16659             : #endif
   16660             : 
   16661             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   16662             : 
   16663             :     end interface
   16664             : 
   16665             :     ! QAWC IF
   16666             : 
   16667             :     interface getQuadErr
   16668             : 
   16669             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   16670             : 
   16671             : #if RK5_ENABLED
   16672             :     module function QAWC_GK15_IF_RK5(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   16673             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   16674             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK15_IF_RK5
   16675             : #endif
   16676             :         use pm_kind, only: RKC => RK5
   16677             :         procedure(real(RKC))                                :: getFunc
   16678             :         type(ninf_type)     , intent(in)                    :: lb
   16679             :         real(RKC)           , intent(in)                    :: ub
   16680             :         real(RKC)           , intent(in)                    :: abstol
   16681             :         real(RKC)           , intent(in)                    :: reltol
   16682             :         type(GK15_type)     , intent(in)                    :: qrule
   16683             :         type(wcauchy_type)  , intent(in)                    :: help
   16684             :         real(RKC)           , intent(out)                   :: integral, abserr
   16685             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   16686             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   16687             :         integer(IK)         , intent(out)                   :: neval
   16688             :         integer(IK)         , intent(out)                   :: nint
   16689             :         integer(IK)                                         :: err
   16690             :     end function
   16691             : #endif
   16692             : 
   16693             : #if RK4_ENABLED
   16694             :     module function QAWC_GK15_IF_RK4(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   16695             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   16696             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK15_IF_RK4
   16697             : #endif
   16698             :         use pm_kind, only: RKC => RK4
   16699             :         procedure(real(RKC))                                :: getFunc
   16700             :         type(ninf_type)     , intent(in)                    :: lb
   16701             :         real(RKC)           , intent(in)                    :: ub
   16702             :         real(RKC)           , intent(in)                    :: abstol
   16703             :         real(RKC)           , intent(in)                    :: reltol
   16704             :         type(GK15_type)     , intent(in)                    :: qrule
   16705             :         type(wcauchy_type)  , intent(in)                    :: help
   16706             :         real(RKC)           , intent(out)                   :: integral, abserr
   16707             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   16708             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   16709             :         integer(IK)         , intent(out)                   :: neval
   16710             :         integer(IK)         , intent(out)                   :: nint
   16711             :         integer(IK)                                         :: err
   16712             :     end function
   16713             : #endif
   16714             : 
   16715             : #if RK3_ENABLED
   16716             :     module function QAWC_GK15_IF_RK3(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   16717             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   16718             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK15_IF_RK3
   16719             : #endif
   16720             :         use pm_kind, only: RKC => RK3
   16721             :         procedure(real(RKC))                                :: getFunc
   16722             :         type(ninf_type)     , intent(in)                    :: lb
   16723             :         real(RKC)           , intent(in)                    :: ub
   16724             :         real(RKC)           , intent(in)                    :: abstol
   16725             :         real(RKC)           , intent(in)                    :: reltol
   16726             :         type(GK15_type)     , intent(in)                    :: qrule
   16727             :         type(wcauchy_type)  , intent(in)                    :: help
   16728             :         real(RKC)           , intent(out)                   :: integral, abserr
   16729             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   16730             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   16731             :         integer(IK)         , intent(out)                   :: neval
   16732             :         integer(IK)         , intent(out)                   :: nint
   16733             :         integer(IK)                                         :: err
   16734             :     end function
   16735             : #endif
   16736             : 
   16737             : #if RK2_ENABLED
   16738             :     module function QAWC_GK15_IF_RK2(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   16739             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   16740             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK15_IF_RK2
   16741             : #endif
   16742             :         use pm_kind, only: RKC => RK2
   16743             :         procedure(real(RKC))                                :: getFunc
   16744             :         type(ninf_type)     , intent(in)                    :: lb
   16745             :         real(RKC)           , intent(in)                    :: ub
   16746             :         real(RKC)           , intent(in)                    :: abstol
   16747             :         real(RKC)           , intent(in)                    :: reltol
   16748             :         type(GK15_type)     , intent(in)                    :: qrule
   16749             :         type(wcauchy_type)  , intent(in)                    :: help
   16750             :         real(RKC)           , intent(out)                   :: integral, abserr
   16751             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   16752             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   16753             :         integer(IK)         , intent(out)                   :: neval
   16754             :         integer(IK)         , intent(out)                   :: nint
   16755             :         integer(IK)                                         :: err
   16756             :     end function
   16757             : #endif
   16758             : 
   16759             : #if RK1_ENABLED
   16760             :     module function QAWC_GK15_IF_RK1(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   16761             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   16762             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK15_IF_RK1
   16763             : #endif
   16764             :         use pm_kind, only: RKC => RK1
   16765             :         procedure(real(RKC))                                :: getFunc
   16766             :         type(ninf_type)     , intent(in)                    :: lb
   16767             :         real(RKC)           , intent(in)                    :: ub
   16768             :         real(RKC)           , intent(in)                    :: abstol
   16769             :         real(RKC)           , intent(in)                    :: reltol
   16770             :         type(GK15_type)     , intent(in)                    :: qrule
   16771             :         type(wcauchy_type)  , intent(in)                    :: help
   16772             :         real(RKC)           , intent(out)                   :: integral, abserr
   16773             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   16774             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   16775             :         integer(IK)         , intent(out)                   :: neval
   16776             :         integer(IK)         , intent(out)                   :: nint
   16777             :         integer(IK)                                         :: err
   16778             :     end function
   16779             : #endif
   16780             : 
   16781             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   16782             : 
   16783             : #if RK5_ENABLED
   16784             :     module function QAWC_GK21_IF_RK5(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   16785             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   16786             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK21_IF_RK5
   16787             : #endif
   16788             :         use pm_kind, only: RKC => RK5
   16789             :         procedure(real(RKC))                                :: getFunc
   16790             :         type(ninf_type)     , intent(in)                    :: lb
   16791             :         real(RKC)           , intent(in)                    :: ub
   16792             :         real(RKC)           , intent(in)                    :: abstol
   16793             :         real(RKC)           , intent(in)                    :: reltol
   16794             :         type(GK21_type)     , intent(in)                    :: qrule
   16795             :         type(wcauchy_type)  , intent(in)                    :: help
   16796             :         real(RKC)           , intent(out)                   :: integral, abserr
   16797             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   16798             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   16799             :         integer(IK)         , intent(out)                   :: neval
   16800             :         integer(IK)         , intent(out)                   :: nint
   16801             :         integer(IK)                                         :: err
   16802             :     end function
   16803             : #endif
   16804             : 
   16805             : #if RK4_ENABLED
   16806             :     module function QAWC_GK21_IF_RK4(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   16807             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   16808             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK21_IF_RK4
   16809             : #endif
   16810             :         use pm_kind, only: RKC => RK4
   16811             :         procedure(real(RKC))                                :: getFunc
   16812             :         type(ninf_type)     , intent(in)                    :: lb
   16813             :         real(RKC)           , intent(in)                    :: ub
   16814             :         real(RKC)           , intent(in)                    :: abstol
   16815             :         real(RKC)           , intent(in)                    :: reltol
   16816             :         type(GK21_type)     , intent(in)                    :: qrule
   16817             :         type(wcauchy_type)  , intent(in)                    :: help
   16818             :         real(RKC)           , intent(out)                   :: integral, abserr
   16819             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   16820             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   16821             :         integer(IK)         , intent(out)                   :: neval
   16822             :         integer(IK)         , intent(out)                   :: nint
   16823             :         integer(IK)                                         :: err
   16824             :     end function
   16825             : #endif
   16826             : 
   16827             : #if RK3_ENABLED
   16828             :     module function QAWC_GK21_IF_RK3(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   16829             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   16830             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK21_IF_RK3
   16831             : #endif
   16832             :         use pm_kind, only: RKC => RK3
   16833             :         procedure(real(RKC))                                :: getFunc
   16834             :         type(ninf_type)     , intent(in)                    :: lb
   16835             :         real(RKC)           , intent(in)                    :: ub
   16836             :         real(RKC)           , intent(in)                    :: abstol
   16837             :         real(RKC)           , intent(in)                    :: reltol
   16838             :         type(GK21_type)     , intent(in)                    :: qrule
   16839             :         type(wcauchy_type)  , intent(in)                    :: help
   16840             :         real(RKC)           , intent(out)                   :: integral, abserr
   16841             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   16842             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   16843             :         integer(IK)         , intent(out)                   :: neval
   16844             :         integer(IK)         , intent(out)                   :: nint
   16845             :         integer(IK)                                         :: err
   16846             :     end function
   16847             : #endif
   16848             : 
   16849             : #if RK2_ENABLED
   16850             :     module function QAWC_GK21_IF_RK2(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   16851             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   16852             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK21_IF_RK2
   16853             : #endif
   16854             :         use pm_kind, only: RKC => RK2
   16855             :         procedure(real(RKC))                                :: getFunc
   16856             :         type(ninf_type)     , intent(in)                    :: lb
   16857             :         real(RKC)           , intent(in)                    :: ub
   16858             :         real(RKC)           , intent(in)                    :: abstol
   16859             :         real(RKC)           , intent(in)                    :: reltol
   16860             :         type(GK21_type)     , intent(in)                    :: qrule
   16861             :         type(wcauchy_type)  , intent(in)                    :: help
   16862             :         real(RKC)           , intent(out)                   :: integral, abserr
   16863             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   16864             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   16865             :         integer(IK)         , intent(out)                   :: neval
   16866             :         integer(IK)         , intent(out)                   :: nint
   16867             :         integer(IK)                                         :: err
   16868             :     end function
   16869             : #endif
   16870             : 
   16871             : #if RK1_ENABLED
   16872             :     module function QAWC_GK21_IF_RK1(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   16873             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   16874             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK21_IF_RK1
   16875             : #endif
   16876             :         use pm_kind, only: RKC => RK1
   16877             :         procedure(real(RKC))                                :: getFunc
   16878             :         type(ninf_type)     , intent(in)                    :: lb
   16879             :         real(RKC)           , intent(in)                    :: ub
   16880             :         real(RKC)           , intent(in)                    :: abstol
   16881             :         real(RKC)           , intent(in)                    :: reltol
   16882             :         type(GK21_type)     , intent(in)                    :: qrule
   16883             :         type(wcauchy_type)  , intent(in)                    :: help
   16884             :         real(RKC)           , intent(out)                   :: integral, abserr
   16885             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   16886             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   16887             :         integer(IK)         , intent(out)                   :: neval
   16888             :         integer(IK)         , intent(out)                   :: nint
   16889             :         integer(IK)                                         :: err
   16890             :     end function
   16891             : #endif
   16892             : 
   16893             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   16894             : 
   16895             : #if RK5_ENABLED
   16896             :     module function QAWC_GK31_IF_RK5(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   16897             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   16898             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK31_IF_RK5
   16899             : #endif
   16900             :         use pm_kind, only: RKC => RK5
   16901             :         procedure(real(RKC))                                :: getFunc
   16902             :         type(ninf_type)     , intent(in)                    :: lb
   16903             :         real(RKC)           , intent(in)                    :: ub
   16904             :         real(RKC)           , intent(in)                    :: abstol
   16905             :         real(RKC)           , intent(in)                    :: reltol
   16906             :         type(GK31_type)     , intent(in)                    :: qrule
   16907             :         type(wcauchy_type)  , intent(in)                    :: help
   16908             :         real(RKC)           , intent(out)                   :: integral, abserr
   16909             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   16910             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   16911             :         integer(IK)         , intent(out)                   :: neval
   16912             :         integer(IK)         , intent(out)                   :: nint
   16913             :         integer(IK)                                         :: err
   16914             :     end function
   16915             : #endif
   16916             : 
   16917             : #if RK4_ENABLED
   16918             :     module function QAWC_GK31_IF_RK4(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   16919             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   16920             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK31_IF_RK4
   16921             : #endif
   16922             :         use pm_kind, only: RKC => RK4
   16923             :         procedure(real(RKC))                                :: getFunc
   16924             :         type(ninf_type)     , intent(in)                    :: lb
   16925             :         real(RKC)           , intent(in)                    :: ub
   16926             :         real(RKC)           , intent(in)                    :: abstol
   16927             :         real(RKC)           , intent(in)                    :: reltol
   16928             :         type(GK31_type)     , intent(in)                    :: qrule
   16929             :         type(wcauchy_type)  , intent(in)                    :: help
   16930             :         real(RKC)           , intent(out)                   :: integral, abserr
   16931             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   16932             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   16933             :         integer(IK)         , intent(out)                   :: neval
   16934             :         integer(IK)         , intent(out)                   :: nint
   16935             :         integer(IK)                                         :: err
   16936             :     end function
   16937             : #endif
   16938             : 
   16939             : #if RK3_ENABLED
   16940             :     module function QAWC_GK31_IF_RK3(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   16941             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   16942             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK31_IF_RK3
   16943             : #endif
   16944             :         use pm_kind, only: RKC => RK3
   16945             :         procedure(real(RKC))                                :: getFunc
   16946             :         type(ninf_type)     , intent(in)                    :: lb
   16947             :         real(RKC)           , intent(in)                    :: ub
   16948             :         real(RKC)           , intent(in)                    :: abstol
   16949             :         real(RKC)           , intent(in)                    :: reltol
   16950             :         type(GK31_type)     , intent(in)                    :: qrule
   16951             :         type(wcauchy_type)  , intent(in)                    :: help
   16952             :         real(RKC)           , intent(out)                   :: integral, abserr
   16953             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   16954             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   16955             :         integer(IK)         , intent(out)                   :: neval
   16956             :         integer(IK)         , intent(out)                   :: nint
   16957             :         integer(IK)                                         :: err
   16958             :     end function
   16959             : #endif
   16960             : 
   16961             : #if RK2_ENABLED
   16962             :     module function QAWC_GK31_IF_RK2(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   16963             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   16964             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK31_IF_RK2
   16965             : #endif
   16966             :         use pm_kind, only: RKC => RK2
   16967             :         procedure(real(RKC))                                :: getFunc
   16968             :         type(ninf_type)     , intent(in)                    :: lb
   16969             :         real(RKC)           , intent(in)                    :: ub
   16970             :         real(RKC)           , intent(in)                    :: abstol
   16971             :         real(RKC)           , intent(in)                    :: reltol
   16972             :         type(GK31_type)     , intent(in)                    :: qrule
   16973             :         type(wcauchy_type)  , intent(in)                    :: help
   16974             :         real(RKC)           , intent(out)                   :: integral, abserr
   16975             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   16976             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   16977             :         integer(IK)         , intent(out)                   :: neval
   16978             :         integer(IK)         , intent(out)                   :: nint
   16979             :         integer(IK)                                         :: err
   16980             :     end function
   16981             : #endif
   16982             : 
   16983             : #if RK1_ENABLED
   16984             :     module function QAWC_GK31_IF_RK1(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   16985             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   16986             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK31_IF_RK1
   16987             : #endif
   16988             :         use pm_kind, only: RKC => RK1
   16989             :         procedure(real(RKC))                                :: getFunc
   16990             :         type(ninf_type)     , intent(in)                    :: lb
   16991             :         real(RKC)           , intent(in)                    :: ub
   16992             :         real(RKC)           , intent(in)                    :: abstol
   16993             :         real(RKC)           , intent(in)                    :: reltol
   16994             :         type(GK31_type)     , intent(in)                    :: qrule
   16995             :         type(wcauchy_type)  , intent(in)                    :: help
   16996             :         real(RKC)           , intent(out)                   :: integral, abserr
   16997             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   16998             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   16999             :         integer(IK)         , intent(out)                   :: neval
   17000             :         integer(IK)         , intent(out)                   :: nint
   17001             :         integer(IK)                                         :: err
   17002             :     end function
   17003             : #endif
   17004             : 
   17005             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   17006             : 
   17007             : #if RK5_ENABLED
   17008             :     module function QAWC_GK41_IF_RK5(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   17009             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   17010             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK41_IF_RK5
   17011             : #endif
   17012             :         use pm_kind, only: RKC => RK5
   17013             :         procedure(real(RKC))                                :: getFunc
   17014             :         type(ninf_type)     , intent(in)                    :: lb
   17015             :         real(RKC)           , intent(in)                    :: ub
   17016             :         real(RKC)           , intent(in)                    :: abstol
   17017             :         real(RKC)           , intent(in)                    :: reltol
   17018             :         type(GK41_type)     , intent(in)                    :: qrule
   17019             :         type(wcauchy_type)  , intent(in)                    :: help
   17020             :         real(RKC)           , intent(out)                   :: integral, abserr
   17021             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   17022             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   17023             :         integer(IK)         , intent(out)                   :: neval
   17024             :         integer(IK)         , intent(out)                   :: nint
   17025             :         integer(IK)                                         :: err
   17026             :     end function
   17027             : #endif
   17028             : 
   17029             : #if RK4_ENABLED
   17030             :     module function QAWC_GK41_IF_RK4(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   17031             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   17032             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK41_IF_RK4
   17033             : #endif
   17034             :         use pm_kind, only: RKC => RK4
   17035             :         procedure(real(RKC))                                :: getFunc
   17036             :         type(ninf_type)     , intent(in)                    :: lb
   17037             :         real(RKC)           , intent(in)                    :: ub
   17038             :         real(RKC)           , intent(in)                    :: abstol
   17039             :         real(RKC)           , intent(in)                    :: reltol
   17040             :         type(GK41_type)     , intent(in)                    :: qrule
   17041             :         type(wcauchy_type)  , intent(in)                    :: help
   17042             :         real(RKC)           , intent(out)                   :: integral, abserr
   17043             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   17044             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   17045             :         integer(IK)         , intent(out)                   :: neval
   17046             :         integer(IK)         , intent(out)                   :: nint
   17047             :         integer(IK)                                         :: err
   17048             :     end function
   17049             : #endif
   17050             : 
   17051             : #if RK3_ENABLED
   17052             :     module function QAWC_GK41_IF_RK3(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   17053             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   17054             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK41_IF_RK3
   17055             : #endif
   17056             :         use pm_kind, only: RKC => RK3
   17057             :         procedure(real(RKC))                                :: getFunc
   17058             :         type(ninf_type)     , intent(in)                    :: lb
   17059             :         real(RKC)           , intent(in)                    :: ub
   17060             :         real(RKC)           , intent(in)                    :: abstol
   17061             :         real(RKC)           , intent(in)                    :: reltol
   17062             :         type(GK41_type)     , intent(in)                    :: qrule
   17063             :         type(wcauchy_type)  , intent(in)                    :: help
   17064             :         real(RKC)           , intent(out)                   :: integral, abserr
   17065             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   17066             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   17067             :         integer(IK)         , intent(out)                   :: neval
   17068             :         integer(IK)         , intent(out)                   :: nint
   17069             :         integer(IK)                                         :: err
   17070             :     end function
   17071             : #endif
   17072             : 
   17073             : #if RK2_ENABLED
   17074             :     module function QAWC_GK41_IF_RK2(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   17075             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   17076             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK41_IF_RK2
   17077             : #endif
   17078             :         use pm_kind, only: RKC => RK2
   17079             :         procedure(real(RKC))                                :: getFunc
   17080             :         type(ninf_type)     , intent(in)                    :: lb
   17081             :         real(RKC)           , intent(in)                    :: ub
   17082             :         real(RKC)           , intent(in)                    :: abstol
   17083             :         real(RKC)           , intent(in)                    :: reltol
   17084             :         type(GK41_type)     , intent(in)                    :: qrule
   17085             :         type(wcauchy_type)  , intent(in)                    :: help
   17086             :         real(RKC)           , intent(out)                   :: integral, abserr
   17087             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   17088             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   17089             :         integer(IK)         , intent(out)                   :: neval
   17090             :         integer(IK)         , intent(out)                   :: nint
   17091             :         integer(IK)                                         :: err
   17092             :     end function
   17093             : #endif
   17094             : 
   17095             : #if RK1_ENABLED
   17096             :     module function QAWC_GK41_IF_RK1(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   17097             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   17098             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK41_IF_RK1
   17099             : #endif
   17100             :         use pm_kind, only: RKC => RK1
   17101             :         procedure(real(RKC))                                :: getFunc
   17102             :         type(ninf_type)     , intent(in)                    :: lb
   17103             :         real(RKC)           , intent(in)                    :: ub
   17104             :         real(RKC)           , intent(in)                    :: abstol
   17105             :         real(RKC)           , intent(in)                    :: reltol
   17106             :         type(GK41_type)     , intent(in)                    :: qrule
   17107             :         type(wcauchy_type)  , intent(in)                    :: help
   17108             :         real(RKC)           , intent(out)                   :: integral, abserr
   17109             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   17110             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   17111             :         integer(IK)         , intent(out)                   :: neval
   17112             :         integer(IK)         , intent(out)                   :: nint
   17113             :         integer(IK)                                         :: err
   17114             :     end function
   17115             : #endif
   17116             : 
   17117             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   17118             : 
   17119             : #if RK5_ENABLED
   17120             :     module function QAWC_GK51_IF_RK5(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   17121             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   17122             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK51_IF_RK5
   17123             : #endif
   17124             :         use pm_kind, only: RKC => RK5
   17125             :         procedure(real(RKC))                                :: getFunc
   17126             :         type(ninf_type)     , intent(in)                    :: lb
   17127             :         real(RKC)           , intent(in)                    :: ub
   17128             :         real(RKC)           , intent(in)                    :: abstol
   17129             :         real(RKC)           , intent(in)                    :: reltol
   17130             :         type(GK51_type)     , intent(in)                    :: qrule
   17131             :         type(wcauchy_type)  , intent(in)                    :: help
   17132             :         real(RKC)           , intent(out)                   :: integral, abserr
   17133             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   17134             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   17135             :         integer(IK)         , intent(out)                   :: neval
   17136             :         integer(IK)         , intent(out)                   :: nint
   17137             :         integer(IK)                                         :: err
   17138             :     end function
   17139             : #endif
   17140             : 
   17141             : #if RK4_ENABLED
   17142             :     module function QAWC_GK51_IF_RK4(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   17143             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   17144             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK51_IF_RK4
   17145             : #endif
   17146             :         use pm_kind, only: RKC => RK4
   17147             :         procedure(real(RKC))                                :: getFunc
   17148             :         type(ninf_type)     , intent(in)                    :: lb
   17149             :         real(RKC)           , intent(in)                    :: ub
   17150             :         real(RKC)           , intent(in)                    :: abstol
   17151             :         real(RKC)           , intent(in)                    :: reltol
   17152             :         type(GK51_type)     , intent(in)                    :: qrule
   17153             :         type(wcauchy_type)  , intent(in)                    :: help
   17154             :         real(RKC)           , intent(out)                   :: integral, abserr
   17155             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   17156             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   17157             :         integer(IK)         , intent(out)                   :: neval
   17158             :         integer(IK)         , intent(out)                   :: nint
   17159             :         integer(IK)                                         :: err
   17160             :     end function
   17161             : #endif
   17162             : 
   17163             : #if RK3_ENABLED
   17164             :     module function QAWC_GK51_IF_RK3(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   17165             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   17166             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK51_IF_RK3
   17167             : #endif
   17168             :         use pm_kind, only: RKC => RK3
   17169             :         procedure(real(RKC))                                :: getFunc
   17170             :         type(ninf_type)     , intent(in)                    :: lb
   17171             :         real(RKC)           , intent(in)                    :: ub
   17172             :         real(RKC)           , intent(in)                    :: abstol
   17173             :         real(RKC)           , intent(in)                    :: reltol
   17174             :         type(GK51_type)     , intent(in)                    :: qrule
   17175             :         type(wcauchy_type)  , intent(in)                    :: help
   17176             :         real(RKC)           , intent(out)                   :: integral, abserr
   17177             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   17178             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   17179             :         integer(IK)         , intent(out)                   :: neval
   17180             :         integer(IK)         , intent(out)                   :: nint
   17181             :         integer(IK)                                         :: err
   17182             :     end function
   17183             : #endif
   17184             : 
   17185             : #if RK2_ENABLED
   17186             :     module function QAWC_GK51_IF_RK2(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   17187             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   17188             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK51_IF_RK2
   17189             : #endif
   17190             :         use pm_kind, only: RKC => RK2
   17191             :         procedure(real(RKC))                                :: getFunc
   17192             :         type(ninf_type)     , intent(in)                    :: lb
   17193             :         real(RKC)           , intent(in)                    :: ub
   17194             :         real(RKC)           , intent(in)                    :: abstol
   17195             :         real(RKC)           , intent(in)                    :: reltol
   17196             :         type(GK51_type)     , intent(in)                    :: qrule
   17197             :         type(wcauchy_type)  , intent(in)                    :: help
   17198             :         real(RKC)           , intent(out)                   :: integral, abserr
   17199             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   17200             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   17201             :         integer(IK)         , intent(out)                   :: neval
   17202             :         integer(IK)         , intent(out)                   :: nint
   17203             :         integer(IK)                                         :: err
   17204             :     end function
   17205             : #endif
   17206             : 
   17207             : #if RK1_ENABLED
   17208             :     module function QAWC_GK51_IF_RK1(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   17209             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   17210             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK51_IF_RK1
   17211             : #endif
   17212             :         use pm_kind, only: RKC => RK1
   17213             :         procedure(real(RKC))                                :: getFunc
   17214             :         type(ninf_type)     , intent(in)                    :: lb
   17215             :         real(RKC)           , intent(in)                    :: ub
   17216             :         real(RKC)           , intent(in)                    :: abstol
   17217             :         real(RKC)           , intent(in)                    :: reltol
   17218             :         type(GK51_type)     , intent(in)                    :: qrule
   17219             :         type(wcauchy_type)  , intent(in)                    :: help
   17220             :         real(RKC)           , intent(out)                   :: integral, abserr
   17221             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   17222             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   17223             :         integer(IK)         , intent(out)                   :: neval
   17224             :         integer(IK)         , intent(out)                   :: nint
   17225             :         integer(IK)                                         :: err
   17226             :     end function
   17227             : #endif
   17228             : 
   17229             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   17230             : 
   17231             : #if RK5_ENABLED
   17232             :     module function QAWC_GK61_IF_RK5(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   17233             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   17234             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK61_IF_RK5
   17235             : #endif
   17236             :         use pm_kind, only: RKC => RK5
   17237             :         procedure(real(RKC))                                :: getFunc
   17238             :         type(ninf_type)     , intent(in)                    :: lb
   17239             :         real(RKC)           , intent(in)                    :: ub
   17240             :         real(RKC)           , intent(in)                    :: abstol
   17241             :         real(RKC)           , intent(in)                    :: reltol
   17242             :         type(GK61_type)     , intent(in)                    :: qrule
   17243             :         type(wcauchy_type)  , intent(in)                    :: help
   17244             :         real(RKC)           , intent(out)                   :: integral, abserr
   17245             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   17246             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   17247             :         integer(IK)         , intent(out)                   :: neval
   17248             :         integer(IK)         , intent(out)                   :: nint
   17249             :         integer(IK)                                         :: err
   17250             :     end function
   17251             : #endif
   17252             : 
   17253             : #if RK4_ENABLED
   17254             :     module function QAWC_GK61_IF_RK4(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   17255             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   17256             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK61_IF_RK4
   17257             : #endif
   17258             :         use pm_kind, only: RKC => RK4
   17259             :         procedure(real(RKC))                                :: getFunc
   17260             :         type(ninf_type)     , intent(in)                    :: lb
   17261             :         real(RKC)           , intent(in)                    :: ub
   17262             :         real(RKC)           , intent(in)                    :: abstol
   17263             :         real(RKC)           , intent(in)                    :: reltol
   17264             :         type(GK61_type)     , intent(in)                    :: qrule
   17265             :         type(wcauchy_type)  , intent(in)                    :: help
   17266             :         real(RKC)           , intent(out)                   :: integral, abserr
   17267             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   17268             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   17269             :         integer(IK)         , intent(out)                   :: neval
   17270             :         integer(IK)         , intent(out)                   :: nint
   17271             :         integer(IK)                                         :: err
   17272             :     end function
   17273             : #endif
   17274             : 
   17275             : #if RK3_ENABLED
   17276             :     module function QAWC_GK61_IF_RK3(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   17277             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   17278             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK61_IF_RK3
   17279             : #endif
   17280             :         use pm_kind, only: RKC => RK3
   17281             :         procedure(real(RKC))                                :: getFunc
   17282             :         type(ninf_type)     , intent(in)                    :: lb
   17283             :         real(RKC)           , intent(in)                    :: ub
   17284             :         real(RKC)           , intent(in)                    :: abstol
   17285             :         real(RKC)           , intent(in)                    :: reltol
   17286             :         type(GK61_type)     , intent(in)                    :: qrule
   17287             :         type(wcauchy_type)  , intent(in)                    :: help
   17288             :         real(RKC)           , intent(out)                   :: integral, abserr
   17289             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   17290             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   17291             :         integer(IK)         , intent(out)                   :: neval
   17292             :         integer(IK)         , intent(out)                   :: nint
   17293             :         integer(IK)                                         :: err
   17294             :     end function
   17295             : #endif
   17296             : 
   17297             : #if RK2_ENABLED
   17298             :     module function QAWC_GK61_IF_RK2(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   17299             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   17300             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK61_IF_RK2
   17301             : #endif
   17302             :         use pm_kind, only: RKC => RK2
   17303             :         procedure(real(RKC))                                :: getFunc
   17304             :         type(ninf_type)     , intent(in)                    :: lb
   17305             :         real(RKC)           , intent(in)                    :: ub
   17306             :         real(RKC)           , intent(in)                    :: abstol
   17307             :         real(RKC)           , intent(in)                    :: reltol
   17308             :         type(GK61_type)     , intent(in)                    :: qrule
   17309             :         type(wcauchy_type)  , intent(in)                    :: help
   17310             :         real(RKC)           , intent(out)                   :: integral, abserr
   17311             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   17312             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   17313             :         integer(IK)         , intent(out)                   :: neval
   17314             :         integer(IK)         , intent(out)                   :: nint
   17315             :         integer(IK)                                         :: err
   17316             :     end function
   17317             : #endif
   17318             : 
   17319             : #if RK1_ENABLED
   17320             :     module function QAWC_GK61_IF_RK1(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   17321             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   17322             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK61_IF_RK1
   17323             : #endif
   17324             :         use pm_kind, only: RKC => RK1
   17325             :         procedure(real(RKC))                                :: getFunc
   17326             :         type(ninf_type)     , intent(in)                    :: lb
   17327             :         real(RKC)           , intent(in)                    :: ub
   17328             :         real(RKC)           , intent(in)                    :: abstol
   17329             :         real(RKC)           , intent(in)                    :: reltol
   17330             :         type(GK61_type)     , intent(in)                    :: qrule
   17331             :         type(wcauchy_type)  , intent(in)                    :: help
   17332             :         real(RKC)           , intent(out)                   :: integral, abserr
   17333             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   17334             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   17335             :         integer(IK)         , intent(out)                   :: neval
   17336             :         integer(IK)         , intent(out)                   :: nint
   17337             :         integer(IK)                                         :: err
   17338             :     end function
   17339             : #endif
   17340             : 
   17341             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   17342             : 
   17343             : #if RK5_ENABLED
   17344             :     module function QAWC_GKXX_IF_RK5(getFunc, lb, ub, abstol, reltol, nodeK, weightK, weightG, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   17345             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   17346             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GKXX_IF_RK5
   17347             : #endif
   17348             :         use pm_kind, only: RKC => RK5
   17349             :         procedure(real(RKC))                                :: getFunc
   17350             :         type(ninf_type)     , intent(in)                    :: lb
   17351             :         real(RKC)           , intent(in)                    :: ub
   17352             :         real(RKC)           , intent(in)                    :: abstol
   17353             :         real(RKC)           , intent(in)                    :: reltol
   17354             :         real(RKC)           , intent(in)    , contiguous    :: nodeK(:), weightK(:), weightG(:)
   17355             :         type(wcauchy_type)  , intent(in)                    :: help
   17356             :         real(RKC)           , intent(out)                   :: integral, abserr
   17357             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   17358             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   17359             :         integer(IK)         , intent(out)                   :: neval
   17360             :         integer(IK)         , intent(out)                   :: nint
   17361             :         integer(IK)                                         :: err
   17362             :     end function
   17363             : #endif
   17364             : 
   17365             : #if RK4_ENABLED
   17366             :     module function QAWC_GKXX_IF_RK4(getFunc, lb, ub, abstol, reltol, nodeK, weightK, weightG, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   17367             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   17368             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GKXX_IF_RK4
   17369             : #endif
   17370             :         use pm_kind, only: RKC => RK4
   17371             :         procedure(real(RKC))                                :: getFunc
   17372             :         type(ninf_type)     , intent(in)                    :: lb
   17373             :         real(RKC)           , intent(in)                    :: ub
   17374             :         real(RKC)           , intent(in)                    :: abstol
   17375             :         real(RKC)           , intent(in)                    :: reltol
   17376             :         real(RKC)           , intent(in)    , contiguous    :: nodeK(:), weightK(:), weightG(:)
   17377             :         type(wcauchy_type)  , intent(in)                    :: help
   17378             :         real(RKC)           , intent(out)                   :: integral, abserr
   17379             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   17380             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   17381             :         integer(IK)         , intent(out)                   :: neval
   17382             :         integer(IK)         , intent(out)                   :: nint
   17383             :         integer(IK)                                         :: err
   17384             :     end function
   17385             : #endif
   17386             : 
   17387             : #if RK3_ENABLED
   17388             :     module function QAWC_GKXX_IF_RK3(getFunc, lb, ub, abstol, reltol, nodeK, weightK, weightG, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   17389             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   17390             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GKXX_IF_RK3
   17391             : #endif
   17392             :         use pm_kind, only: RKC => RK3
   17393             :         procedure(real(RKC))                                :: getFunc
   17394             :         type(ninf_type)     , intent(in)                    :: lb
   17395             :         real(RKC)           , intent(in)                    :: ub
   17396             :         real(RKC)           , intent(in)                    :: abstol
   17397             :         real(RKC)           , intent(in)                    :: reltol
   17398             :         real(RKC)           , intent(in)    , contiguous    :: nodeK(:), weightK(:), weightG(:)
   17399             :         type(wcauchy_type)  , intent(in)                    :: help
   17400             :         real(RKC)           , intent(out)                   :: integral, abserr
   17401             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   17402             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   17403             :         integer(IK)         , intent(out)                   :: neval
   17404             :         integer(IK)         , intent(out)                   :: nint
   17405             :         integer(IK)                                         :: err
   17406             :     end function
   17407             : #endif
   17408             : 
   17409             : #if RK2_ENABLED
   17410             :     module function QAWC_GKXX_IF_RK2(getFunc, lb, ub, abstol, reltol, nodeK, weightK, weightG, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   17411             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   17412             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GKXX_IF_RK2
   17413             : #endif
   17414             :         use pm_kind, only: RKC => RK2
   17415             :         procedure(real(RKC))                                :: getFunc
   17416             :         type(ninf_type)     , intent(in)                    :: lb
   17417             :         real(RKC)           , intent(in)                    :: ub
   17418             :         real(RKC)           , intent(in)                    :: abstol
   17419             :         real(RKC)           , intent(in)                    :: reltol
   17420             :         real(RKC)           , intent(in)    , contiguous    :: nodeK(:), weightK(:), weightG(:)
   17421             :         type(wcauchy_type)  , intent(in)                    :: help
   17422             :         real(RKC)           , intent(out)                   :: integral, abserr
   17423             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   17424             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   17425             :         integer(IK)         , intent(out)                   :: neval
   17426             :         integer(IK)         , intent(out)                   :: nint
   17427             :         integer(IK)                                         :: err
   17428             :     end function
   17429             : #endif
   17430             : 
   17431             : #if RK1_ENABLED
   17432             :     module function QAWC_GKXX_IF_RK1(getFunc, lb, ub, abstol, reltol, nodeK, weightK, weightG, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   17433             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   17434             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GKXX_IF_RK1
   17435             : #endif
   17436             :         use pm_kind, only: RKC => RK1
   17437             :         procedure(real(RKC))                                :: getFunc
   17438             :         type(ninf_type)     , intent(in)                    :: lb
   17439             :         real(RKC)           , intent(in)                    :: ub
   17440             :         real(RKC)           , intent(in)                    :: abstol
   17441             :         real(RKC)           , intent(in)                    :: reltol
   17442             :         real(RKC)           , intent(in)    , contiguous    :: nodeK(:), weightK(:), weightG(:)
   17443             :         type(wcauchy_type)  , intent(in)                    :: help
   17444             :         real(RKC)           , intent(out)                   :: integral, abserr
   17445             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   17446             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   17447             :         integer(IK)         , intent(out)                   :: neval
   17448             :         integer(IK)         , intent(out)                   :: nint
   17449             :         integer(IK)                                         :: err
   17450             :     end function
   17451             : #endif
   17452             : 
   17453             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   17454             : 
   17455             :     end interface
   17456             : 
   17457             :     ! QAWC II
   17458             : 
   17459             :     interface getQuadErr
   17460             : 
   17461             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   17462             : 
   17463             : #if RK5_ENABLED
   17464             :     module function QAWC_GK15_II_RK5(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   17465             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   17466             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK15_II_RK5
   17467             : #endif
   17468             :         use pm_kind, only: RKC => RK5
   17469             :         procedure(real(RKC))                                :: getFunc
   17470             :         type(ninf_type)     , intent(in)                    :: lb
   17471             :         type(pinf_type)     , intent(in)                    :: ub
   17472             :         real(RKC)           , intent(in)                    :: abstol
   17473             :         real(RKC)           , intent(in)                    :: reltol
   17474             :         type(GK15_type)     , intent(in)                    :: qrule
   17475             :         type(wcauchy_type)  , intent(in)                    :: help
   17476             :         real(RKC)           , intent(out)                   :: integral, abserr
   17477             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   17478             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   17479             :         integer(IK)         , intent(out)                   :: neval
   17480             :         integer(IK)         , intent(out)                   :: nint
   17481             :         integer(IK)                                         :: err
   17482             :     end function
   17483             : #endif
   17484             : 
   17485             : #if RK4_ENABLED
   17486             :     module function QAWC_GK15_II_RK4(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   17487             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   17488             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK15_II_RK4
   17489             : #endif
   17490             :         use pm_kind, only: RKC => RK4
   17491             :         procedure(real(RKC))                                :: getFunc
   17492             :         type(ninf_type)     , intent(in)                    :: lb
   17493             :         type(pinf_type)     , intent(in)                    :: ub
   17494             :         real(RKC)           , intent(in)                    :: abstol
   17495             :         real(RKC)           , intent(in)                    :: reltol
   17496             :         type(GK15_type)     , intent(in)                    :: qrule
   17497             :         type(wcauchy_type)  , intent(in)                    :: help
   17498             :         real(RKC)           , intent(out)                   :: integral, abserr
   17499             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   17500             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   17501             :         integer(IK)         , intent(out)                   :: neval
   17502             :         integer(IK)         , intent(out)                   :: nint
   17503             :         integer(IK)                                         :: err
   17504             :     end function
   17505             : #endif
   17506             : 
   17507             : #if RK3_ENABLED
   17508             :     module function QAWC_GK15_II_RK3(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   17509             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   17510             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK15_II_RK3
   17511             : #endif
   17512             :         use pm_kind, only: RKC => RK3
   17513             :         procedure(real(RKC))                                :: getFunc
   17514             :         type(ninf_type)     , intent(in)                    :: lb
   17515             :         type(pinf_type)     , intent(in)                    :: ub
   17516             :         real(RKC)           , intent(in)                    :: abstol
   17517             :         real(RKC)           , intent(in)                    :: reltol
   17518             :         type(GK15_type)     , intent(in)                    :: qrule
   17519             :         type(wcauchy_type)  , intent(in)                    :: help
   17520             :         real(RKC)           , intent(out)                   :: integral, abserr
   17521             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   17522             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   17523             :         integer(IK)         , intent(out)                   :: neval
   17524             :         integer(IK)         , intent(out)                   :: nint
   17525             :         integer(IK)                                         :: err
   17526             :     end function
   17527             : #endif
   17528             : 
   17529             : #if RK2_ENABLED
   17530             :     module function QAWC_GK15_II_RK2(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   17531             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   17532             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK15_II_RK2
   17533             : #endif
   17534             :         use pm_kind, only: RKC => RK2
   17535             :         procedure(real(RKC))                                :: getFunc
   17536             :         type(ninf_type)     , intent(in)                    :: lb
   17537             :         type(pinf_type)     , intent(in)                    :: ub
   17538             :         real(RKC)           , intent(in)                    :: abstol
   17539             :         real(RKC)           , intent(in)                    :: reltol
   17540             :         type(GK15_type)     , intent(in)                    :: qrule
   17541             :         type(wcauchy_type)  , intent(in)                    :: help
   17542             :         real(RKC)           , intent(out)                   :: integral, abserr
   17543             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   17544             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   17545             :         integer(IK)         , intent(out)                   :: neval
   17546             :         integer(IK)         , intent(out)                   :: nint
   17547             :         integer(IK)                                         :: err
   17548             :     end function
   17549             : #endif
   17550             : 
   17551             : #if RK1_ENABLED
   17552             :     module function QAWC_GK15_II_RK1(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   17553             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   17554             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK15_II_RK1
   17555             : #endif
   17556             :         use pm_kind, only: RKC => RK1
   17557             :         procedure(real(RKC))                                :: getFunc
   17558             :         type(ninf_type)     , intent(in)                    :: lb
   17559             :         type(pinf_type)     , intent(in)                    :: ub
   17560             :         real(RKC)           , intent(in)                    :: abstol
   17561             :         real(RKC)           , intent(in)                    :: reltol
   17562             :         type(GK15_type)     , intent(in)                    :: qrule
   17563             :         type(wcauchy_type)  , intent(in)                    :: help
   17564             :         real(RKC)           , intent(out)                   :: integral, abserr
   17565             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   17566             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   17567             :         integer(IK)         , intent(out)                   :: neval
   17568             :         integer(IK)         , intent(out)                   :: nint
   17569             :         integer(IK)                                         :: err
   17570             :     end function
   17571             : #endif
   17572             : 
   17573             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   17574             : 
   17575             : #if RK5_ENABLED
   17576             :     module function QAWC_GK21_II_RK5(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   17577             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   17578             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK21_II_RK5
   17579             : #endif
   17580             :         use pm_kind, only: RKC => RK5
   17581             :         procedure(real(RKC))                                :: getFunc
   17582             :         type(ninf_type)     , intent(in)                    :: lb
   17583             :         type(pinf_type)     , intent(in)                    :: ub
   17584             :         real(RKC)           , intent(in)                    :: abstol
   17585             :         real(RKC)           , intent(in)                    :: reltol
   17586             :         type(GK21_type)     , intent(in)                    :: qrule
   17587             :         type(wcauchy_type)  , intent(in)                    :: help
   17588             :         real(RKC)           , intent(out)                   :: integral, abserr
   17589             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   17590             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   17591             :         integer(IK)         , intent(out)                   :: neval
   17592             :         integer(IK)         , intent(out)                   :: nint
   17593             :         integer(IK)                                         :: err
   17594             :     end function
   17595             : #endif
   17596             : 
   17597             : #if RK4_ENABLED
   17598             :     module function QAWC_GK21_II_RK4(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   17599             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   17600             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK21_II_RK4
   17601             : #endif
   17602             :         use pm_kind, only: RKC => RK4
   17603             :         procedure(real(RKC))                                :: getFunc
   17604             :         type(ninf_type)     , intent(in)                    :: lb
   17605             :         type(pinf_type)     , intent(in)                    :: ub
   17606             :         real(RKC)           , intent(in)                    :: abstol
   17607             :         real(RKC)           , intent(in)                    :: reltol
   17608             :         type(GK21_type)     , intent(in)                    :: qrule
   17609             :         type(wcauchy_type)  , intent(in)                    :: help
   17610             :         real(RKC)           , intent(out)                   :: integral, abserr
   17611             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   17612             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   17613             :         integer(IK)         , intent(out)                   :: neval
   17614             :         integer(IK)         , intent(out)                   :: nint
   17615             :         integer(IK)                                         :: err
   17616             :     end function
   17617             : #endif
   17618             : 
   17619             : #if RK3_ENABLED
   17620             :     module function QAWC_GK21_II_RK3(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   17621             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   17622             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK21_II_RK3
   17623             : #endif
   17624             :         use pm_kind, only: RKC => RK3
   17625             :         procedure(real(RKC))                                :: getFunc
   17626             :         type(ninf_type)     , intent(in)                    :: lb
   17627             :         type(pinf_type)     , intent(in)                    :: ub
   17628             :         real(RKC)           , intent(in)                    :: abstol
   17629             :         real(RKC)           , intent(in)                    :: reltol
   17630             :         type(GK21_type)     , intent(in)                    :: qrule
   17631             :         type(wcauchy_type)  , intent(in)                    :: help
   17632             :         real(RKC)           , intent(out)                   :: integral, abserr
   17633             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   17634             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   17635             :         integer(IK)         , intent(out)                   :: neval
   17636             :         integer(IK)         , intent(out)                   :: nint
   17637             :         integer(IK)                                         :: err
   17638             :     end function
   17639             : #endif
   17640             : 
   17641             : #if RK2_ENABLED
   17642             :     module function QAWC_GK21_II_RK2(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   17643             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   17644             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK21_II_RK2
   17645             : #endif
   17646             :         use pm_kind, only: RKC => RK2
   17647             :         procedure(real(RKC))                                :: getFunc
   17648             :         type(ninf_type)     , intent(in)                    :: lb
   17649             :         type(pinf_type)     , intent(in)                    :: ub
   17650             :         real(RKC)           , intent(in)                    :: abstol
   17651             :         real(RKC)           , intent(in)                    :: reltol
   17652             :         type(GK21_type)     , intent(in)                    :: qrule
   17653             :         type(wcauchy_type)  , intent(in)                    :: help
   17654             :         real(RKC)           , intent(out)                   :: integral, abserr
   17655             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   17656             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   17657             :         integer(IK)         , intent(out)                   :: neval
   17658             :         integer(IK)         , intent(out)                   :: nint
   17659             :         integer(IK)                                         :: err
   17660             :     end function
   17661             : #endif
   17662             : 
   17663             : #if RK1_ENABLED
   17664             :     module function QAWC_GK21_II_RK1(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   17665             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   17666             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK21_II_RK1
   17667             : #endif
   17668             :         use pm_kind, only: RKC => RK1
   17669             :         procedure(real(RKC))                                :: getFunc
   17670             :         type(ninf_type)     , intent(in)                    :: lb
   17671             :         type(pinf_type)     , intent(in)                    :: ub
   17672             :         real(RKC)           , intent(in)                    :: abstol
   17673             :         real(RKC)           , intent(in)                    :: reltol
   17674             :         type(GK21_type)     , intent(in)                    :: qrule
   17675             :         type(wcauchy_type)  , intent(in)                    :: help
   17676             :         real(RKC)           , intent(out)                   :: integral, abserr
   17677             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   17678             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   17679             :         integer(IK)         , intent(out)                   :: neval
   17680             :         integer(IK)         , intent(out)                   :: nint
   17681             :         integer(IK)                                         :: err
   17682             :     end function
   17683             : #endif
   17684             : 
   17685             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   17686             : 
   17687             : #if RK5_ENABLED
   17688             :     module function QAWC_GK31_II_RK5(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   17689             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   17690             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK31_II_RK5
   17691             : #endif
   17692             :         use pm_kind, only: RKC => RK5
   17693             :         procedure(real(RKC))                                :: getFunc
   17694             :         type(ninf_type)     , intent(in)                    :: lb
   17695             :         type(pinf_type)     , intent(in)                    :: ub
   17696             :         real(RKC)           , intent(in)                    :: abstol
   17697             :         real(RKC)           , intent(in)                    :: reltol
   17698             :         type(GK31_type)     , intent(in)                    :: qrule
   17699             :         type(wcauchy_type)  , intent(in)                    :: help
   17700             :         real(RKC)           , intent(out)                   :: integral, abserr
   17701             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   17702             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   17703             :         integer(IK)         , intent(out)                   :: neval
   17704             :         integer(IK)         , intent(out)                   :: nint
   17705             :         integer(IK)                                         :: err
   17706             :     end function
   17707             : #endif
   17708             : 
   17709             : #if RK4_ENABLED
   17710             :     module function QAWC_GK31_II_RK4(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   17711             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   17712             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK31_II_RK4
   17713             : #endif
   17714             :         use pm_kind, only: RKC => RK4
   17715             :         procedure(real(RKC))                                :: getFunc
   17716             :         type(ninf_type)     , intent(in)                    :: lb
   17717             :         type(pinf_type)     , intent(in)                    :: ub
   17718             :         real(RKC)           , intent(in)                    :: abstol
   17719             :         real(RKC)           , intent(in)                    :: reltol
   17720             :         type(GK31_type)     , intent(in)                    :: qrule
   17721             :         type(wcauchy_type)  , intent(in)                    :: help
   17722             :         real(RKC)           , intent(out)                   :: integral, abserr
   17723             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   17724             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   17725             :         integer(IK)         , intent(out)                   :: neval
   17726             :         integer(IK)         , intent(out)                   :: nint
   17727             :         integer(IK)                                         :: err
   17728             :     end function
   17729             : #endif
   17730             : 
   17731             : #if RK3_ENABLED
   17732             :     module function QAWC_GK31_II_RK3(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   17733             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   17734             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK31_II_RK3
   17735             : #endif
   17736             :         use pm_kind, only: RKC => RK3
   17737             :         procedure(real(RKC))                                :: getFunc
   17738             :         type(ninf_type)     , intent(in)                    :: lb
   17739             :         type(pinf_type)     , intent(in)                    :: ub
   17740             :         real(RKC)           , intent(in)                    :: abstol
   17741             :         real(RKC)           , intent(in)                    :: reltol
   17742             :         type(GK31_type)     , intent(in)                    :: qrule
   17743             :         type(wcauchy_type)  , intent(in)                    :: help
   17744             :         real(RKC)           , intent(out)                   :: integral, abserr
   17745             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   17746             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   17747             :         integer(IK)         , intent(out)                   :: neval
   17748             :         integer(IK)         , intent(out)                   :: nint
   17749             :         integer(IK)                                         :: err
   17750             :     end function
   17751             : #endif
   17752             : 
   17753             : #if RK2_ENABLED
   17754             :     module function QAWC_GK31_II_RK2(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   17755             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   17756             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK31_II_RK2
   17757             : #endif
   17758             :         use pm_kind, only: RKC => RK2
   17759             :         procedure(real(RKC))                                :: getFunc
   17760             :         type(ninf_type)     , intent(in)                    :: lb
   17761             :         type(pinf_type)     , intent(in)                    :: ub
   17762             :         real(RKC)           , intent(in)                    :: abstol
   17763             :         real(RKC)           , intent(in)                    :: reltol
   17764             :         type(GK31_type)     , intent(in)                    :: qrule
   17765             :         type(wcauchy_type)  , intent(in)                    :: help
   17766             :         real(RKC)           , intent(out)                   :: integral, abserr
   17767             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   17768             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   17769             :         integer(IK)         , intent(out)                   :: neval
   17770             :         integer(IK)         , intent(out)                   :: nint
   17771             :         integer(IK)                                         :: err
   17772             :     end function
   17773             : #endif
   17774             : 
   17775             : #if RK1_ENABLED
   17776             :     module function QAWC_GK31_II_RK1(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   17777             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   17778             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK31_II_RK1
   17779             : #endif
   17780             :         use pm_kind, only: RKC => RK1
   17781             :         procedure(real(RKC))                                :: getFunc
   17782             :         type(ninf_type)     , intent(in)                    :: lb
   17783             :         type(pinf_type)     , intent(in)                    :: ub
   17784             :         real(RKC)           , intent(in)                    :: abstol
   17785             :         real(RKC)           , intent(in)                    :: reltol
   17786             :         type(GK31_type)     , intent(in)                    :: qrule
   17787             :         type(wcauchy_type)  , intent(in)                    :: help
   17788             :         real(RKC)           , intent(out)                   :: integral, abserr
   17789             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   17790             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   17791             :         integer(IK)         , intent(out)                   :: neval
   17792             :         integer(IK)         , intent(out)                   :: nint
   17793             :         integer(IK)                                         :: err
   17794             :     end function
   17795             : #endif
   17796             : 
   17797             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   17798             : 
   17799             : #if RK5_ENABLED
   17800             :     module function QAWC_GK41_II_RK5(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   17801             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   17802             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK41_II_RK5
   17803             : #endif
   17804             :         use pm_kind, only: RKC => RK5
   17805             :         procedure(real(RKC))                                :: getFunc
   17806             :         type(ninf_type)     , intent(in)                    :: lb
   17807             :         type(pinf_type)     , intent(in)                    :: ub
   17808             :         real(RKC)           , intent(in)                    :: abstol
   17809             :         real(RKC)           , intent(in)                    :: reltol
   17810             :         type(GK41_type)     , intent(in)                    :: qrule
   17811             :         type(wcauchy_type)  , intent(in)                    :: help
   17812             :         real(RKC)           , intent(out)                   :: integral, abserr
   17813             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   17814             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   17815             :         integer(IK)         , intent(out)                   :: neval
   17816             :         integer(IK)         , intent(out)                   :: nint
   17817             :         integer(IK)                                         :: err
   17818             :     end function
   17819             : #endif
   17820             : 
   17821             : #if RK4_ENABLED
   17822             :     module function QAWC_GK41_II_RK4(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   17823             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   17824             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK41_II_RK4
   17825             : #endif
   17826             :         use pm_kind, only: RKC => RK4
   17827             :         procedure(real(RKC))                                :: getFunc
   17828             :         type(ninf_type)     , intent(in)                    :: lb
   17829             :         type(pinf_type)     , intent(in)                    :: ub
   17830             :         real(RKC)           , intent(in)                    :: abstol
   17831             :         real(RKC)           , intent(in)                    :: reltol
   17832             :         type(GK41_type)     , intent(in)                    :: qrule
   17833             :         type(wcauchy_type)  , intent(in)                    :: help
   17834             :         real(RKC)           , intent(out)                   :: integral, abserr
   17835             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   17836             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   17837             :         integer(IK)         , intent(out)                   :: neval
   17838             :         integer(IK)         , intent(out)                   :: nint
   17839             :         integer(IK)                                         :: err
   17840             :     end function
   17841             : #endif
   17842             : 
   17843             : #if RK3_ENABLED
   17844             :     module function QAWC_GK41_II_RK3(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   17845             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   17846             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK41_II_RK3
   17847             : #endif
   17848             :         use pm_kind, only: RKC => RK3
   17849             :         procedure(real(RKC))                                :: getFunc
   17850             :         type(ninf_type)     , intent(in)                    :: lb
   17851             :         type(pinf_type)     , intent(in)                    :: ub
   17852             :         real(RKC)           , intent(in)                    :: abstol
   17853             :         real(RKC)           , intent(in)                    :: reltol
   17854             :         type(GK41_type)     , intent(in)                    :: qrule
   17855             :         type(wcauchy_type)  , intent(in)                    :: help
   17856             :         real(RKC)           , intent(out)                   :: integral, abserr
   17857             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   17858             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   17859             :         integer(IK)         , intent(out)                   :: neval
   17860             :         integer(IK)         , intent(out)                   :: nint
   17861             :         integer(IK)                                         :: err
   17862             :     end function
   17863             : #endif
   17864             : 
   17865             : #if RK2_ENABLED
   17866             :     module function QAWC_GK41_II_RK2(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   17867             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   17868             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK41_II_RK2
   17869             : #endif
   17870             :         use pm_kind, only: RKC => RK2
   17871             :         procedure(real(RKC))                                :: getFunc
   17872             :         type(ninf_type)     , intent(in)                    :: lb
   17873             :         type(pinf_type)     , intent(in)                    :: ub
   17874             :         real(RKC)           , intent(in)                    :: abstol
   17875             :         real(RKC)           , intent(in)                    :: reltol
   17876             :         type(GK41_type)     , intent(in)                    :: qrule
   17877             :         type(wcauchy_type)  , intent(in)                    :: help
   17878             :         real(RKC)           , intent(out)                   :: integral, abserr
   17879             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   17880             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   17881             :         integer(IK)         , intent(out)                   :: neval
   17882             :         integer(IK)         , intent(out)                   :: nint
   17883             :         integer(IK)                                         :: err
   17884             :     end function
   17885             : #endif
   17886             : 
   17887             : #if RK1_ENABLED
   17888             :     module function QAWC_GK41_II_RK1(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   17889             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   17890             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK41_II_RK1
   17891             : #endif
   17892             :         use pm_kind, only: RKC => RK1
   17893             :         procedure(real(RKC))                                :: getFunc
   17894             :         type(ninf_type)     , intent(in)                    :: lb
   17895             :         type(pinf_type)     , intent(in)                    :: ub
   17896             :         real(RKC)           , intent(in)                    :: abstol
   17897             :         real(RKC)           , intent(in)                    :: reltol
   17898             :         type(GK41_type)     , intent(in)                    :: qrule
   17899             :         type(wcauchy_type)  , intent(in)                    :: help
   17900             :         real(RKC)           , intent(out)                   :: integral, abserr
   17901             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   17902             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   17903             :         integer(IK)         , intent(out)                   :: neval
   17904             :         integer(IK)         , intent(out)                   :: nint
   17905             :         integer(IK)                                         :: err
   17906             :     end function
   17907             : #endif
   17908             : 
   17909             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   17910             : 
   17911             : #if RK5_ENABLED
   17912             :     module function QAWC_GK51_II_RK5(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   17913             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   17914             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK51_II_RK5
   17915             : #endif
   17916             :         use pm_kind, only: RKC => RK5
   17917             :         procedure(real(RKC))                                :: getFunc
   17918             :         type(ninf_type)     , intent(in)                    :: lb
   17919             :         type(pinf_type)     , intent(in)                    :: ub
   17920             :         real(RKC)           , intent(in)                    :: abstol
   17921             :         real(RKC)           , intent(in)                    :: reltol
   17922             :         type(GK51_type)     , intent(in)                    :: qrule
   17923             :         type(wcauchy_type)  , intent(in)                    :: help
   17924             :         real(RKC)           , intent(out)                   :: integral, abserr
   17925             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   17926             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   17927             :         integer(IK)         , intent(out)                   :: neval
   17928             :         integer(IK)         , intent(out)                   :: nint
   17929             :         integer(IK)                                         :: err
   17930             :     end function
   17931             : #endif
   17932             : 
   17933             : #if RK4_ENABLED
   17934             :     module function QAWC_GK51_II_RK4(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   17935             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   17936             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK51_II_RK4
   17937             : #endif
   17938             :         use pm_kind, only: RKC => RK4
   17939             :         procedure(real(RKC))                                :: getFunc
   17940             :         type(ninf_type)     , intent(in)                    :: lb
   17941             :         type(pinf_type)     , intent(in)                    :: ub
   17942             :         real(RKC)           , intent(in)                    :: abstol
   17943             :         real(RKC)           , intent(in)                    :: reltol
   17944             :         type(GK51_type)     , intent(in)                    :: qrule
   17945             :         type(wcauchy_type)  , intent(in)                    :: help
   17946             :         real(RKC)           , intent(out)                   :: integral, abserr
   17947             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   17948             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   17949             :         integer(IK)         , intent(out)                   :: neval
   17950             :         integer(IK)         , intent(out)                   :: nint
   17951             :         integer(IK)                                         :: err
   17952             :     end function
   17953             : #endif
   17954             : 
   17955             : #if RK3_ENABLED
   17956             :     module function QAWC_GK51_II_RK3(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   17957             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   17958             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK51_II_RK3
   17959             : #endif
   17960             :         use pm_kind, only: RKC => RK3
   17961             :         procedure(real(RKC))                                :: getFunc
   17962             :         type(ninf_type)     , intent(in)                    :: lb
   17963             :         type(pinf_type)     , intent(in)                    :: ub
   17964             :         real(RKC)           , intent(in)                    :: abstol
   17965             :         real(RKC)           , intent(in)                    :: reltol
   17966             :         type(GK51_type)     , intent(in)                    :: qrule
   17967             :         type(wcauchy_type)  , intent(in)                    :: help
   17968             :         real(RKC)           , intent(out)                   :: integral, abserr
   17969             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   17970             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   17971             :         integer(IK)         , intent(out)                   :: neval
   17972             :         integer(IK)         , intent(out)                   :: nint
   17973             :         integer(IK)                                         :: err
   17974             :     end function
   17975             : #endif
   17976             : 
   17977             : #if RK2_ENABLED
   17978             :     module function QAWC_GK51_II_RK2(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   17979             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   17980             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK51_II_RK2
   17981             : #endif
   17982             :         use pm_kind, only: RKC => RK2
   17983             :         procedure(real(RKC))                                :: getFunc
   17984             :         type(ninf_type)     , intent(in)                    :: lb
   17985             :         type(pinf_type)     , intent(in)                    :: ub
   17986             :         real(RKC)           , intent(in)                    :: abstol
   17987             :         real(RKC)           , intent(in)                    :: reltol
   17988             :         type(GK51_type)     , intent(in)                    :: qrule
   17989             :         type(wcauchy_type)  , intent(in)                    :: help
   17990             :         real(RKC)           , intent(out)                   :: integral, abserr
   17991             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   17992             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   17993             :         integer(IK)         , intent(out)                   :: neval
   17994             :         integer(IK)         , intent(out)                   :: nint
   17995             :         integer(IK)                                         :: err
   17996             :     end function
   17997             : #endif
   17998             : 
   17999             : #if RK1_ENABLED
   18000             :     module function QAWC_GK51_II_RK1(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   18001             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   18002             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK51_II_RK1
   18003             : #endif
   18004             :         use pm_kind, only: RKC => RK1
   18005             :         procedure(real(RKC))                                :: getFunc
   18006             :         type(ninf_type)     , intent(in)                    :: lb
   18007             :         type(pinf_type)     , intent(in)                    :: ub
   18008             :         real(RKC)           , intent(in)                    :: abstol
   18009             :         real(RKC)           , intent(in)                    :: reltol
   18010             :         type(GK51_type)     , intent(in)                    :: qrule
   18011             :         type(wcauchy_type)  , intent(in)                    :: help
   18012             :         real(RKC)           , intent(out)                   :: integral, abserr
   18013             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   18014             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   18015             :         integer(IK)         , intent(out)                   :: neval
   18016             :         integer(IK)         , intent(out)                   :: nint
   18017             :         integer(IK)                                         :: err
   18018             :     end function
   18019             : #endif
   18020             : 
   18021             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   18022             : 
   18023             : #if RK5_ENABLED
   18024             :     module function QAWC_GK61_II_RK5(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   18025             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   18026             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK61_II_RK5
   18027             : #endif
   18028             :         use pm_kind, only: RKC => RK5
   18029             :         procedure(real(RKC))                                :: getFunc
   18030             :         type(ninf_type)     , intent(in)                    :: lb
   18031             :         type(pinf_type)     , intent(in)                    :: ub
   18032             :         real(RKC)           , intent(in)                    :: abstol
   18033             :         real(RKC)           , intent(in)                    :: reltol
   18034             :         type(GK61_type)     , intent(in)                    :: qrule
   18035             :         type(wcauchy_type)  , intent(in)                    :: help
   18036             :         real(RKC)           , intent(out)                   :: integral, abserr
   18037             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   18038             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   18039             :         integer(IK)         , intent(out)                   :: neval
   18040             :         integer(IK)         , intent(out)                   :: nint
   18041             :         integer(IK)                                         :: err
   18042             :     end function
   18043             : #endif
   18044             : 
   18045             : #if RK4_ENABLED
   18046             :     module function QAWC_GK61_II_RK4(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   18047             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   18048             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK61_II_RK4
   18049             : #endif
   18050             :         use pm_kind, only: RKC => RK4
   18051             :         procedure(real(RKC))                                :: getFunc
   18052             :         type(ninf_type)     , intent(in)                    :: lb
   18053             :         type(pinf_type)     , intent(in)                    :: ub
   18054             :         real(RKC)           , intent(in)                    :: abstol
   18055             :         real(RKC)           , intent(in)                    :: reltol
   18056             :         type(GK61_type)     , intent(in)                    :: qrule
   18057             :         type(wcauchy_type)  , intent(in)                    :: help
   18058             :         real(RKC)           , intent(out)                   :: integral, abserr
   18059             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   18060             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   18061             :         integer(IK)         , intent(out)                   :: neval
   18062             :         integer(IK)         , intent(out)                   :: nint
   18063             :         integer(IK)                                         :: err
   18064             :     end function
   18065             : #endif
   18066             : 
   18067             : #if RK3_ENABLED
   18068             :     module function QAWC_GK61_II_RK3(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   18069             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   18070             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK61_II_RK3
   18071             : #endif
   18072             :         use pm_kind, only: RKC => RK3
   18073             :         procedure(real(RKC))                                :: getFunc
   18074             :         type(ninf_type)     , intent(in)                    :: lb
   18075             :         type(pinf_type)     , intent(in)                    :: ub
   18076             :         real(RKC)           , intent(in)                    :: abstol
   18077             :         real(RKC)           , intent(in)                    :: reltol
   18078             :         type(GK61_type)     , intent(in)                    :: qrule
   18079             :         type(wcauchy_type)  , intent(in)                    :: help
   18080             :         real(RKC)           , intent(out)                   :: integral, abserr
   18081             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   18082             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   18083             :         integer(IK)         , intent(out)                   :: neval
   18084             :         integer(IK)         , intent(out)                   :: nint
   18085             :         integer(IK)                                         :: err
   18086             :     end function
   18087             : #endif
   18088             : 
   18089             : #if RK2_ENABLED
   18090             :     module function QAWC_GK61_II_RK2(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   18091             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   18092             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK61_II_RK2
   18093             : #endif
   18094             :         use pm_kind, only: RKC => RK2
   18095             :         procedure(real(RKC))                                :: getFunc
   18096             :         type(ninf_type)     , intent(in)                    :: lb
   18097             :         type(pinf_type)     , intent(in)                    :: ub
   18098             :         real(RKC)           , intent(in)                    :: abstol
   18099             :         real(RKC)           , intent(in)                    :: reltol
   18100             :         type(GK61_type)     , intent(in)                    :: qrule
   18101             :         type(wcauchy_type)  , intent(in)                    :: help
   18102             :         real(RKC)           , intent(out)                   :: integral, abserr
   18103             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   18104             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   18105             :         integer(IK)         , intent(out)                   :: neval
   18106             :         integer(IK)         , intent(out)                   :: nint
   18107             :         integer(IK)                                         :: err
   18108             :     end function
   18109             : #endif
   18110             : 
   18111             : #if RK1_ENABLED
   18112             :     module function QAWC_GK61_II_RK1(getFunc, lb, ub, abstol, reltol, qrule, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   18113             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   18114             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GK61_II_RK1
   18115             : #endif
   18116             :         use pm_kind, only: RKC => RK1
   18117             :         procedure(real(RKC))                                :: getFunc
   18118             :         type(ninf_type)     , intent(in)                    :: lb
   18119             :         type(pinf_type)     , intent(in)                    :: ub
   18120             :         real(RKC)           , intent(in)                    :: abstol
   18121             :         real(RKC)           , intent(in)                    :: reltol
   18122             :         type(GK61_type)     , intent(in)                    :: qrule
   18123             :         type(wcauchy_type)  , intent(in)                    :: help
   18124             :         real(RKC)           , intent(out)                   :: integral, abserr
   18125             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   18126             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   18127             :         integer(IK)         , intent(out)                   :: neval
   18128             :         integer(IK)         , intent(out)                   :: nint
   18129             :         integer(IK)                                         :: err
   18130             :     end function
   18131             : #endif
   18132             : 
   18133             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   18134             : 
   18135             : #if RK5_ENABLED
   18136             :     module function QAWC_GKXX_II_RK5(getFunc, lb, ub, abstol, reltol, nodeK, weightK, weightG, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   18137             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   18138             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GKXX_II_RK5
   18139             : #endif
   18140             :         use pm_kind, only: RKC => RK5
   18141             :         procedure(real(RKC))                                :: getFunc
   18142             :         type(ninf_type)     , intent(in)                    :: lb
   18143             :         type(pinf_type)     , intent(in)                    :: ub
   18144             :         real(RKC)           , intent(in)                    :: abstol
   18145             :         real(RKC)           , intent(in)                    :: reltol
   18146             :         real(RKC)           , intent(in)    , contiguous    :: nodeK(:), weightK(:), weightG(:)
   18147             :         type(wcauchy_type)  , intent(in)                    :: help
   18148             :         real(RKC)           , intent(out)                   :: integral, abserr
   18149             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   18150             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   18151             :         integer(IK)         , intent(out)                   :: neval
   18152             :         integer(IK)         , intent(out)                   :: nint
   18153             :         integer(IK)                                         :: err
   18154             :     end function
   18155             : #endif
   18156             : 
   18157             : #if RK4_ENABLED
   18158             :     module function QAWC_GKXX_II_RK4(getFunc, lb, ub, abstol, reltol, nodeK, weightK, weightG, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   18159             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   18160             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GKXX_II_RK4
   18161             : #endif
   18162             :         use pm_kind, only: RKC => RK4
   18163             :         procedure(real(RKC))                                :: getFunc
   18164             :         type(ninf_type)     , intent(in)                    :: lb
   18165             :         type(pinf_type)     , intent(in)                    :: ub
   18166             :         real(RKC)           , intent(in)                    :: abstol
   18167             :         real(RKC)           , intent(in)                    :: reltol
   18168             :         real(RKC)           , intent(in)    , contiguous    :: nodeK(:), weightK(:), weightG(:)
   18169             :         type(wcauchy_type)  , intent(in)                    :: help
   18170             :         real(RKC)           , intent(out)                   :: integral, abserr
   18171             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   18172             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   18173             :         integer(IK)         , intent(out)                   :: neval
   18174             :         integer(IK)         , intent(out)                   :: nint
   18175             :         integer(IK)                                         :: err
   18176             :     end function
   18177             : #endif
   18178             : 
   18179             : #if RK3_ENABLED
   18180             :     module function QAWC_GKXX_II_RK3(getFunc, lb, ub, abstol, reltol, nodeK, weightK, weightG, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   18181             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   18182             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GKXX_II_RK3
   18183             : #endif
   18184             :         use pm_kind, only: RKC => RK3
   18185             :         procedure(real(RKC))                                :: getFunc
   18186             :         type(ninf_type)     , intent(in)                    :: lb
   18187             :         type(pinf_type)     , intent(in)                    :: ub
   18188             :         real(RKC)           , intent(in)                    :: abstol
   18189             :         real(RKC)           , intent(in)                    :: reltol
   18190             :         real(RKC)           , intent(in)    , contiguous    :: nodeK(:), weightK(:), weightG(:)
   18191             :         type(wcauchy_type)  , intent(in)                    :: help
   18192             :         real(RKC)           , intent(out)                   :: integral, abserr
   18193             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   18194             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   18195             :         integer(IK)         , intent(out)                   :: neval
   18196             :         integer(IK)         , intent(out)                   :: nint
   18197             :         integer(IK)                                         :: err
   18198             :     end function
   18199             : #endif
   18200             : 
   18201             : #if RK2_ENABLED
   18202             :     module function QAWC_GKXX_II_RK2(getFunc, lb, ub, abstol, reltol, nodeK, weightK, weightG, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   18203             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   18204             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GKXX_II_RK2
   18205             : #endif
   18206             :         use pm_kind, only: RKC => RK2
   18207             :         procedure(real(RKC))                                :: getFunc
   18208             :         type(ninf_type)     , intent(in)                    :: lb
   18209             :         type(pinf_type)     , intent(in)                    :: ub
   18210             :         real(RKC)           , intent(in)                    :: abstol
   18211             :         real(RKC)           , intent(in)                    :: reltol
   18212             :         real(RKC)           , intent(in)    , contiguous    :: nodeK(:), weightK(:), weightG(:)
   18213             :         type(wcauchy_type)  , intent(in)                    :: help
   18214             :         real(RKC)           , intent(out)                   :: integral, abserr
   18215             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   18216             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   18217             :         integer(IK)         , intent(out)                   :: neval
   18218             :         integer(IK)         , intent(out)                   :: nint
   18219             :         integer(IK)                                         :: err
   18220             :     end function
   18221             : #endif
   18222             : 
   18223             : #if RK1_ENABLED
   18224             :     module function QAWC_GKXX_II_RK1(getFunc, lb, ub, abstol, reltol, nodeK, weightK, weightG, help, integral, abserr, sinfo, sindex, neval, nint) result(err)
   18225             : #if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
   18226             :         !DEC$ ATTRIBUTES DLLEXPORT :: QAWC_GKXX_II_RK1
   18227             : #endif
   18228             :         use pm_kind, only: RKC => RK1
   18229             :         procedure(real(RKC))                                :: getFunc
   18230             :         type(ninf_type)     , intent(in)                    :: lb
   18231             :         type(pinf_type)     , intent(in)                    :: ub
   18232             :         real(RKC)           , intent(in)                    :: abstol
   18233             :         real(RKC)           , intent(in)                    :: reltol
   18234             :         real(RKC)           , intent(in)    , contiguous    :: nodeK(:), weightK(:), weightG(:)
   18235             :         type(wcauchy_type)  , intent(in)                    :: help
   18236             :         real(RKC)           , intent(out)                   :: integral, abserr
   18237             :         real(RKC)           , intent(out)   , contiguous    :: sinfo(:,:)
   18238             :         integer(IK)         , intent(out)   , contiguous    :: sindex(:)
   18239             :         integer(IK)         , intent(out)                   :: neval
   18240             :         integer(IK)         , intent(out)                   :: nint
   18241             :         integer(IK)                                         :: err
   18242             :     end function
   18243             : #endif
   18244             : 
   18245             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   18246             : 
   18247             :     end interface
   18248             : 
   18249             : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   18250             : 
   18251           0 : end module pm_quadPack

ParaMonte: Parallel Monte Carlo and Machine Learning Library 
The Computational Data Science Lab
© Copyright 2012 - 2024