Quantcast
Channel: Intel® Software - Intel® oneAPI Math Kernel Library & Intel® Math Kernel Library
Viewing all articles
Browse latest Browse all 3005

Pardiso - There is no matching specific subroutine

$
0
0

Hi everybody!
I have a problem with Pardiso in a fortran project. I am trying to write a simple routine to solve a linear system, but compilation stops at calling pardiso_64 (or pardiso in the case of 32bit version of my program). The error is:

Error    1     error #6285: There is no matching specific subroutine for this generic subroutine call.   [PARDISO_64]

Here it is my code. A module defines the variables to be shared between all project file:

MODULE variables
INTEGER*8 :: M        ! Lines
INTEGER*8 :: N        ! Columns
DOUBLE PRECISION, DIMENSION(:,:), ALLOCATABLE :: MATRA ! original 2D matrix
INTEGER*8, DIMENSION(:), ALLOCATABLE :: ROWSA,COLSA ! matrix of row pointers and column positions
DOUBLE PRECISION,    dimension(:), ALLOCATABLE :: VALSA
DOUBLE PRECISION,    dimension(:,:), ALLOCATABLE :: RHSVC, SOLVC ! matrix of values, right hand side and solution vector
END MODULE variables

After filling in the arrays VALSA, COLSA, ROWSA, RHSVC, SOLVC, we call a subroutine that prepares variables and calls pardiso:

SUBROUTINE INTPAR
USE VARIABLES
USE mkl_pardiso
!     Internal solver memory pointer for 64-bit architectures
INTEGER*8 PT(64)
!     Other variables
INTEGER*8 maxfct, mnum, mtype, phase, nrhs, error, msglvl
! Solver Parameters vectors
INTEGER*8, ALLOCATABLE, DIMENSION(:) :: iparm, perm

!---- ALLOCATION OF VECTORS
ALLOCATE(SOLVC(M,1))
ALLOCATE(RHSVC(M,1))
ALLOCATE(iparm(64))
ALLOCATE(perm(M))
!.... END OF ALLOCATION

!---- CHOICE OF PARDISO PARAMETERS
iparm(1) = 1     
iparm(2) = 2     
iparm(3) = 1     
iparm(4) = 0     
iparm(5) = 0     
iparm(6) = 0     
iparm(7) = 0     
iparm(8) = 9     
iparm(9) = 0 
iparm(10) = 13   
iparm(11) = 1    
iparm(12) = 0
iparm(13) = 0    
iparm(14) = 0    
iparm(15) = 0
iparm(16) = 0    
iparm(17) = 0
iparm(18) = -1   
iparm(19) = -1   
iparm(20) = 0    
iparm(21) = 0    
iparm(22) = 0    
iparm(23) = 0    
iparm(24) = 1    
iparm(25) = 0
iparm(26) = 0
iparm(27) = 1    
iparm(28) = 0    
iparm(29) = 0
iparm(30) = 0    
iparm(31) = 0    
iparm(32) = 0
iparm(33) = 0
iparm(34) = 0
iparm(35) = 0     
iparm(36) = 0
iparm(37) = 0     
iparm(38) = 0
iparm(39) = 0
iparm(40) = 0
iparm(41) = 0     
iparm(42) = 0
iparm(43) = 0
iparm(44) = 0     
iparm(45) = 0
iparm(46) = 0
iparm(47) = 0     
iparm(48) = 0
iparm(49) = 0
iparm(50) = 0
iparm(51) = 0     
iparm(52) = 0
iparm(53) = 0
iparm(54) = 0     
iparm(55) = 0
iparm(56) = 0
iparm(57) = 0     
iparm(58) = 0
iparm(59) = 0
iparm(60) = 1    
iparm(61) = 0     
iparm(62) = 0
iparm(63) = 0
iparm(64) = 0     

maxfct = 1
mnum = 1
nrhs = 1
error = 0        
msglvl = 1       
mtype = -2       

!     Initiliaze the internal solver memory pointer.
do i = 1, 64
  pt(i)=0
end do
!.... END OF VARIABLES INITIALIZATION

!---- PHASE 11 - ANALYSIS
!     Reordering and Symbolic Factorization, This step also allocates
!     all memory that is necessary for the factorization

phase = 11 ! only reordering and symbolic factorization

CALL pardiso_64 (PT, maxfct, mnum, mtype, phase, n, VALSA, COLSA, &
              ROWSA, perm, nrhs, iparm, msglvl, RHSVC, SOLVC, error)

WRITE(*,*) 'Reordering completed ... '
END SUBROUTINE INTPAR

Again, the compilation of such code stops with error: Error    1     error #6285: There is no matching specific subroutine for this generic subroutine call.   [PARDISO_64]

It is compiled in debug mode, on 64bit configuration in Visual Studio 2010 with Intel Fortran Compiler XE 12.0

Any solution? Thank you very much!


Viewing all articles
Browse latest Browse all 3005

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>