Developer Reference

  • 2020.2
  • 07/15/2020
  • Public Content
Contents

df?integrcallback

A callback function that you can pass into
df?integrateex1d
to define integration computations.

Syntax

status
=
dfsintegrcallback
(
n
,
lcell
,
llim
,
rcell
,
rlim
,
r
,
user_params
,
library_params
)
status
=
dfdintegrcallback
(
n
,
lcell
,
llim
,
rcell
,
rlim
,
r
,
user_params
,
library_params
)
Include Files
  • mkl_df.f90
Input Parameters
Name
Type
Description
n
INTEGER(KIND=8)
Number of pairs of integration limits.
lcell
INTEGER(KIND=8) DIMENSION(*)
Array of size
n
with indices of the cells that contain the left-side integration limits in array
llim
.
llim
REAL(KIND=4) DIMENSION(*)
for
dfsintegrcallback
REAL(KIND=8) DIMENSION(*)
for
dfdintegrcallback
Array of size
n
that holds the left-side integration limits.
rcell
INTEGER(KIND=8) DIMENSION(*)
Array of size
n
with indices of the cells that contain the right-side integration limits in array
rlim
.
rlim
REAL(KIND=4) DIMENSION(*)
for
dfsintegrcallback
REAL(KIND=8) DIMENSION(*)
for
dfdintegrcallback
Array of size
n
that holds the right-side integration limits.
user_params
INTEGER DIMENSION(*)
, optional
Pointer to user-defined parameters of the callback function.
library_params
TYPE(
DF_INTEGR_CALLBACK_LIBRARY_PARAMS
)
, optional
Pointer to library-defined parameters of the callback function.
Output Parameters
Name
Type
Description
status
INTEGER
The status returned by the callback function:
  • Zero indicates successful completion of the callback operation.
  • A negative value indicates an error.
  • A positive value indicates a warning.
See "Task Status and Error Reporting" for error code definitions.
r
REAL(KIND=4) DIMENSION(*)
for
dfsintegrcallback
REAL(KIND=8) DIMENSION(*)
for
dfdintegrcallback
Array of integration results.
For packing the results in row-major format, follow the instructions described in
df?interpolate1d
/
df?interpolateex1d
.
Description
When passed into the
df?integrateex1d
routine, this function defines integration computations. If at least one of the integration limits is outside the interpolation interval [
a
,
b
], the library decomposes the integration into sub-intervals that belong to the extrapolation range to the left of
a
, the extrapolation range to the right of
b
, and the interpolation interval [
a
,
b
], as follows:
  • If the left integration limit is to the left of the interpolation interval (
    llim
    <
    a
    ), the
    df?integrateex1d
    routine passes
    llim
    as the left integration limit and
    min
    (
    rlim
    ,
    a
    ) as the right integration limit to the user-defined callback function.
  • If the right integration limit is to the right of the interpolation interval (
    rlim
    >
    b
    ), the
    df?integrateex1d
    routine passes