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
|