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

Input error message - help

Brad_Doudican
Beginner
316 Views
Hi - I'm having trouble deciphering an error code. When I run Phase=11 in Pardiso I get the following error messages. However, I've checked the input arrays and they seem to be reasonable. Any thoughts on what I'm missing?

When iparm(27)=0:

*** Error in PARDISO ( sequence_ido,parameters) error_num= 8
*** Input check: ia(neqns+1)_new -1 _old 0 are incompatible
*** Input parameters: inconsistent error= 8 max_fac_store_in: 1
matrix_number_in : 1 matrix_type_in : 2
ido_in : 11 neqns_in : 14751
ia(neqns_in+1)-1 : -1 nb_in : 1

And when iparm(27)=1:

*** Error in PARDISO ( sequence_ido,parameters) error_num= 18
*** Input check: unexpected error with working arrays ia and/or ja

To derive the input arrays I've used the following code to extract the sparse storage form from a full upper triangular matrix GLKF(NEQ,NEQ) where nomenclature JA = COLUMNS, IA = ROWINDEX, A = VALUES:

KOUNT=COUNT(GLKF/=0d0)

ALLOCATE ( VALUES(KOUNT), COLUMNS(KOUNT), ROWINDEX(NEQ+1) )

KOUNTER = KOUNT
KOUNT = 0
ROWINDEX(1)=1

DO J=1,NEQ
ROWINDEX(J+1)=ROWINDEX(J)
DO I=1,NEQ
IF (GLKF(J,I)/=0.OR.I==J) THEN
ROWINDEX(J+1)=ROWINDEX(J+1)+1
KOUNT=KOUNT+1
VALUES(KOUNT)=GLKF(J,I)
COLUMNS(KOUNT)=I
END IF
END DO
END DO


Many thanks!
0 Kudos
5 Replies
mecej4
Honored Contributor III
316 Views
The values of KOUNT from the first line of code shown above will not agree with the that after the nested loops since you handle zero-valued diagonal elements differently in the two places.

Depending on how you call PARDISO, a consistency check would catch this discrepancy.
0 Kudos
Brad_Doudican
Beginner
316 Views
Thanks mecej4, but earlier in the code I check for zeros on the diagonal - there are none if we get to this point. Any thoughts on the specific error messages?
0 Kudos
mecej4
Honored Contributor III
316 Views
If there are no zeros on the diagonal, why do you have this statement:

IF (GLKF(J,I)/=0.OR.I==J) THEN

If there are some zero values on the principal diagonal when this statement is executed, the statements in the IF block will be executed even for those zero elements.
0 Kudos
Brad_Doudican
Beginner
316 Views
I was worried that would be a hang up in getting my question answered. The .OR.I==J code functions but doesn't have an effect - it's residual from a previous attempt at remedy. As I stated previously, no zeros on the diagonal. That's taken care of previously.

Do you know where I can find out more about the various error codes cited in my original post?
0 Kudos
Alexander_K_Intel2
316 Views
Hi,
One can see the next line: "ia(neqns_in+1)-1 : -1" so its seem that you have some problem with ia array. Could you print the value of neqns and ia(neqns_in+1) before first pardiso call?
With best regards,
Alexander Kalinkin
0 Kudos
Reply