I am trying to use the Pardiso matrix routines but I keep getting an error #6633 “The type of the actual argument differs from the type of the dummy” with the PT variable when I compile. The relevant segments of my code are as follows:
IMPLICIT NONE
INCLUDE 'mkl.fi'
INTEGER*8 pt(64)
INTEGER maxfct,mnum,mtype,phase,n,nrhs,msglvl,error
INTEGER ia(1001),ja(1000000),perm(1000),iparm(64)
REAL*8 a(1000000),b(1000),x(1000)
call pardiso_d (pt, maxfct, mnum, mtype, phase, n, a, ia, ja, perm, nrhs, iparm, msglvl, b, x, error)
The mkl_pardiso.fi file (referred to from mkl.fi) in C:\Program Files (x86)\Intel\Composer XE 2013 SP1.139\mkl\include contains the following:
TYPE MKL_PARDISO_HANDLE; INTEGER(KIND=8) DUMMY; END TYPE
INTEGER, PARAMETER :: PARDISO_OOC_FILE_NAME = 1
SUBROUTINE PARDISO_D( PT, MAXFCT, MNUM, MTYPE, PHASE, N, A, IA, &
& JA, PERM, NRHS, IPARM, MSGLVL, B, X, ERROR )
IMPORT MKL_PARDISO_HANDLE
TYPE(MKL_PARDISO_HANDLE), INTENT(INOUT) :: PT(*)
INTEGER, INTENT(IN) :: MAXFCT
INTEGER, INTENT(IN) :: MNUM
INTEGER, INTENT(IN) :: MTYPE
INTEGER, INTENT(IN) :: PHASE
INTEGER, INTENT(IN) :: N
INTEGER, INTENT(IN) :: IA(*)
INTEGER, INTENT(IN) :: JA(*)
INTEGER, INTENT(INOUT) :: PERM(*)
INTEGER, INTENT(IN) :: NRHS
INTEGER, INTENT(INOUT) :: IPARM(*)
INTEGER, INTENT(IN) :: MSGLVL
INTEGER, INTENT(OUT) :: ERROR
REAL(KIND=8), INTENT(IN) :: A(*)
REAL(KIND=8), INTENT(INOUT) :: B(*)
REAL(KIND=8), INTENT(OUT) :: X(*)
END SUBROUTINE PARDISO_D
I have tried changing my INTEGER*8 pt(64) line to TYPE(MKL_PARDISO_HANDLE) :: pt(64) but still get the same error.
What am I doing wrong?