Developer Reference for Intel® oneAPI Math Kernel Library for Fortran

ID 766686
Date 3/31/2023
Public

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents

?_init_sph_p/?_init_sph_np

Initializes basic data structures of the periodic and non-periodic Fast Helmholtz Solver on a sphere.

Syntax

void d_init_sph_p (const double * ap, const double * at, const double * bp, const double * bt, const MKL_INT * np, const MKL_INT *nt, const double * q, MKL_INT * ipar, double * dpar, MKL_INT * stat );

void s_init_sph_p (const float * ap, const float * at, const float * bp, const float * bt, const MKL_INT * np, const MKL_INT * nt, const float * q, MKL_INT * ipar, float * spar, MKL_INT * stat );

void d_init_sph_np (const double * ap, const double * at, const double * bp, const double * bt, const MKL_INT * np, const MKL_INT *nt, const double * q, MKL_INT * ipar, double * dpar, MKL_INT * stat );

void s_init_sph_np (const float * ap, const float * at, const float * bp, const float * bt, const MKL_INT * np, const MKL_INT * nt, const float * q, MKL_INT * ipar, float * spar, MKL_INT * stat );

Include Files
  • mkl_poisson.f90
Input Parameters

ap

double* for d_init_sph_p/d_init_sph_np,

float* for s_init_sph_p/s_init_sph_np.

The coordinate (angle) of the leftmost boundary of the domain along the φ-axis.

bp

double* for d_init_sph_p/d_init_sph_np,

float* for s_init_sph_p/s_init_sph_np.

The coordinate (angle) of the rightmost boundary of the domain along the φ-axis.

at

double* for d_init_sph_p/d_init_sph_np,

float* for s_init_sph_p/s_init_sph_np.

The coordinate (angle) of the leftmost boundary of the domain along the θ-axis.

bt

double* for d_init_sph_p/d_init_sph_np,

float* for s_init_sph_p/s_init_sph_np.

The coordinate (angle) of the rightmost boundary of the domain along the θ-axis.

np

MKL_INT*. The number of mesh intervals along the φ-axis. Must be even in the periodic case.

nt

MKL_INT*. The number of mesh intervals along the θ-axis.

q

double* for d_init_sph_p/d_init_sph_np,

float* for s_init_sph_p/s_init_sph_np.

The constant Helmholtz coefficient. To solve the Poisson problem, set the value of q to 0.

Output Parameters

ipar

MKL_INT array of size 128. Contains integer data to be used by Fast Helmholtz Solver on a sphere (for details, refer to ipar).

dpar

double array of size 5*np/2+nt+10. Contains double-precision data to be used by Fast Helmholtz Solver on a sphere (for details, refer to dpar and spar).

spar

float array of size 5*np/2+nt+10. Contains single-precision data to be used by Fast Helmholtz Solver on a sphere (for details, refer to dpar and spar).

stat

MKL_INT*. Routine completion status, which is also written to ipar[0]. Continue to call other Poisson Solver routines only if the status is 0.

Description

The ?_init_sph_p/?_init_sph_np routines initialize basic data structures for Poisson Solver computations. All routines invoked after a call to a ?_init_Helmholtz_2D/?_init_Helmholtz_3D routine use values of the ipar, dpar, and spar array parameters returned by the routine. A detailed description of the array parameters can be found in Common Parameters.

CAUTION:

Data structures initialized and created by periodic flavors of the routine cannot be used by non-periodic flavors of any Poisson Solver routines for Helmholtz Solver on a sphere, and vice versa.

You can skip calls to these routines in your code. However, see Caveat on Parameter Modifications for information on initializing the data structures.

Return Values

stat= 0

The routine successfully completed the task. In general, to proceed with computations, the routine should complete with this stat value.

stat= -99999

The routine failed to complete the task because of fatal error.