Each DSS routine reads from or writes to a data object called a handle. Refer to Memory Allocation and Handles to determine the correct method for declaring a handle argument for each language. For simplicity, the descriptions in DSS routines refer to the data type as MKL_DSS_HANDLE.
C and C++ programmers should refer to Calling Sparse Solver and Preconditioner Routines from C/C++ for information on mapping Fortran types to C/C++ types.
The DSS routines have an integer argument (referred below to as opt) for passing various options to the routines. The permissible values for opt should be specified using only the symbol constants defined in the language-specific header files (see Implementation Details). The routines accept options for setting the message and termination levels as described in Table "Symbolic Names for the Message and Termination Levels Options". Additionally, each routine accepts the option MKL_DSS_DEFAULTS that sets the default values (as documented) for opt to the routine.
|Message Level||Termination Level|
The settings for message and termination levels can be set on any call to a DSS routine. However, once set to a particular level, they remain at that level until they are changed in another call to a DSS routine.
You can specify both message and termination level for a DSS routine by adding the options together. For example, to set the message level to
debug and the termination level to
error for all the DSS routines, use the following call:
CALL dss_create( handle, MKL_DSS_MSG_LVL_INFO + MKL_DSS_TERM_LVL_ERROR)
User Data Arrays
Many of the DSS routines take arrays of user data as input. For example, user arrays are passed to the routine dss_define_structure to describe the location of the non-zero entries in the matrix.
Do not modify the contents of these arrays after they are passed to one of the solver routines.