Intel® oneAPI Math Kernel Library
Ask questions and share information with other developers who use Intel® Math Kernel Library.
6877 Discussions

Calling pardiso with symmetric/unsymmetric arrays in Fortran

New Contributor I


I am using the direct solver routine pardiso in a fortran program of mine, for cases where the coefficient array is real. When I run the code for an unsymmetric array (mtype = 11), the routine works normally.

When I try to run the same code for a symmetric coefficient array (mtype = 1) or for a symmetric, positive-definite coefficient array (mtype = 2), the program aborts abnormally. I need to mention that, in all cases, I call pardiso and pass a coefficient array (in CSR3 format) that contains all the nonzero elements. 

I was wondering whether the abnormal termination is potentially caused by the input arguments that I pass. Thus, I wanted to ask if there is any difference in what the input arguments of pardiso should contain, depending on whether I have a symmetric or unsymmetric coefficient array (for example, do I only need to pass the upper/lower triangular part of a symmetric coefficient array, etc.)?


0 Kudos
1 Reply

Hello Yannis,

As the documentation says, you need to pass only the upper triangular part of the matrix for symmetric matrix types. See, section for ja prameter.

Also, whenever you are not sure about the input format, you can use the matrix checker (iparm(27)=1), it can provide additional output which can help.

Hope this is useful!



0 Kudos