# ILU0 and ILUT Preconditioners Interface Description

The concepts required to understand the use of the Intel MKL preconditioner routines are discussed in the Linear Solvers Basics.

In this section the FORTRAN style notations are used.

All types in this documentation refer to the standard Fortran types, INTEGER, and DOUBLE PRECISION.

C and C++ programmers should refer to the section Calling Sparse Solver Routines From C/C++ for information on mapping Fortran types to C/C++ types.

## User Data Arrays

The preconditioner routines take arrays of user data as input, for example, user arrays representing the original matrix. To minimize storage requirements and improve overall run-time efficiency, the Intel MKL preconditioner routines do not make copies of the user input arrays.

## Common Parameters

The preconditioners have parameters for passing various options to the routine. The values for these parameters should be specified very carefully. These values can be changed during computations according to the user's needs.

Some parameters are common with the FGMRES Common Parameters. Only the routine dfgmres_init specifies their default and initial values. However, some parameters can be redefined with other values. These parameters are listed below.

For the ILU0 preconditioner:

ipar(2) - specifies the destination of error messages generated by the ILU0 routine. The default value 6 means that all error messages are displayed on the screen. Otherwise the error messages are written to the newly created file MKL_PREC_log.txt. Note if the parameter ipar(6) is set to 0, then error messages are not generated at all.

ipar(6) - if its value is not equal to 0, the ILU0 routine returns error messages in accordance with the parameter ipar(2). Otherwise, the routine does not generate error messages at all, but returns a negative value of the parameter ierr. The default value is 1.

For the ILUT preconditioner:

ipar(2) - specifies the destination of error messages generated by the ILUT routine. The default value 6 means that all messages are displayed on the screen. Otherwise the error messages are written to the newly created file MKL_PREC_log.txt. Note if the parameter ipar(6) is set to 0, error messages are not generated at all.

ipar(6) - if its value is not equal to 0, the ILUT routine returns error messages in accordance with the parameter ipar(2). Otherwise, the routine does not generate error messages at all, but returns a negative value of the parameter ierr. The default value is 1.

ipar(7) - if its value is greater than 0, the ILUT routine generates warning messages in accordance with the parameter ipar(2)and continues calculations. Otherwise, if its value is equal to 0, the routine returns a positive value of the parameter ierr, if its value is less than 0, the routine generates a warning message in accordance with the parameter ipar(2)and returns a positive value of the parameter ierr. The default value is 1.

### Note

Users must provide correct and consistent parameters to the routine to avoid fails or wrong results.

Parent topic: Preconditioners based on Incomplete LU Factorization Technique