?_commit_sph_p/?_commit_sph_np

Checks consistency and correctness of user's data as well as initializes certain data structures required to solve periodic/non-periodic Helmholtz problem on a sphere.

Syntax

void d_commit_sph_p(double* f, DFTI_DESCRIPTOR_HANDLE* handle_s, DFTI_DESCRIPTOR_HANDLE* handle_c, int* ipar, double* dpar, int* stat);

void s_commit_sph_p(float* f, DFTI_DESCRIPTOR_HANDLE* handle_s, DFTI_DESCRIPTOR_HANDLE* handle_c, int* ipar, float* spar, int* stat);

void d_commit_sph_np(double* f, DFTI_DESCRIPTOR_HANDLE* handle, int* ipar, double* dpar, int* stat);

void s_commit_sph_np(float* f, DFTI_DESCRIPTOR_HANDLE* handle, int* ipar, float* spar, int* stat);

Include Files

The Fortran interfaces are specified in the mkl_poisson.f90 include file and the C interfaces are specified in the mkl_poisson.h include file.

Input Parameters

f

double* for d_commit_sph_p/d_commit_sph_np,

float* for s_commit_sph_p/s_commit_sph_np.

Contains the right-hand side of the problem packed in a single vector. The size of the vector is (np+1)*(nt+1) and value of the right-hand side in the mesh point (i, j) is stored in f[i+j*(np+1)] .

Note that the array f may be altered by the routine. Please save this vector in another memory location if you want to preserve it.

ipar

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

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 Common Parameters).

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 Common Parameters).

Output Parameters

f

Vector of the right-hand side of the problem. Possibly, altered on output.

ipar

Contains integer data to be used by Fast Helmholtz Solver on a sphere. Modified on output as explained in Common Parameters.

dpar

Contains double-precision data to be used by Fast Helmholtz Solver on a sphere. Modified on output as explained in Common Parameters.

spar

Contains single-precision data to be used by Fast Helmholtz Solver on a sphere. Modified on output as explained in Common Parameters.

handle_s, handle_c, handle

DFTI_DESCRIPTOR_HANDLE*. Data structures used by the Intel MKL FFT interface (for details, refer to FFT Functions). handle_s and handle_c are used only in ?_commit_sph_p and handle is used only in ?_commit_sph_np.

stat

int*. Routine completion status, which is also written to ipar[0]. The status should be 0 to proceed to other PL routines.

Description

The ?_commit_sph_p/?_commit_sph_np routines check consistency and correctness of the parameters to be passed to the solver routines ?_sph_p/?_sph_np, respectively. They also initialize certain data structures. The routine ?_commit_sph_p initializes structures handle_s and handle_c, and ?_commit_sph_np initializes handle. The routines also initialize arrays ipar and dpar/spar, depending upon the routine precision. Refer to Common Parameters to find out which particular array elements the ?_commit_sph_p/?_commit_sph_np routines initialize and what values are written there.

The routines perform only a basic check for correctness and consistency. If you are going to modify parameters of PL routines, see the Caveat on Parameter Modifications section. Unlike ?_init_sph_p/?_init_sph_np, the routines ?_commit_sph_p/?_commit_sph_np are mandatory, and you cannot skip calling them in your code. Values of np and nt are passed to each of the routines with the ipar array and defined in a previous call to the appropriate ?_init_sph_p/?_init_sph_np routine.

Return Values

stat= 1

The routine completed without errors and produced some warnings.

stat= 0

The routine successfully completed the task.

stat= -100

The routine stopped because an error in the user's data was found or the data in the dpar, spar or ipar array was altered by mistake.

stat= -1000

The routine stopped because of an Intel MKL FFT or TT interface error.

stat= -10000

The routine stopped because the initialization failed to complete or the parameter ipar[0] was altered by mistake.

stat= -99999

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


Submit feedback on this help topic

Copyright © 1994 - 2011, Intel Corporation. All rights reserved.