Hello, I am trying to solve a sparse linear system in fortran 90 using the mkl pardiso solver as in the following code:
do i = 1, 64 iparm(i) = 0 end do error = 0 ! initialize error flag msglvl = 1 ! print statistical information mtype = 13 ! complex unsymmetric !C.. Initiliaze the internal solver memory pointer. This is only !C necessary for the FIRST call of the PARDISO solver. do i = 1, 64 pt( i )%DUMMY = 0 end do maxfct = 1 mnum = 1 nrhs = 1 !C.. Reordering and Symbolic Factorization, This step also allocates !C all memory that is necessary for the factorization phase = 11 ! only reordering and symbolic factorization print*, ' calling sparse solver' CALL PARDISO (pt, maxfct, mnum, mtype, phase, nPardiso, values, rowIndex, columns, & perm, nrhs, iparm, msglvl, b, Ex, error) WRITE(*,*) 'Reordering completed ... '
My code compiles (intel compiler ifort (IFORT) 12.1.3 20120130) without problem but once reached the solver call the program stops and I have to kill it.
The output on my screen is, before the program behave strangely, just
calling sparse solver
I've also tried with different parameters in iparm, as per the examples folder, but without different results.
I also print out the matrix, to be sure is in the correct form.
double complex values:(-1.000000,0.0000000E+00) (1.000000,0.0000000E+00) (0.5000000,0.0000000E+00)
(-1.500000,0.0000000E+00) (1.000000,0.0000000E+00) (-0.2222222,0.0000000E+00)
(-0.1111111,0.0000000E+00) (0.3333333,0.0000000E+00) (1.000000,0.0000000E+00)
integer rowIndex: 1 3 6 9 10
integer columns: 1 2 1 2 3 2 3 4 4
b is imaginary and the system has a solution.