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

What is the type of variable pt required by pardiso

mark10
Novice
1,016 Views

I am attempting to invert a matrix using pardiso in intel MKL, Fortran. (ifort 2017)

 

subroutine test

use vars
use vars_parallel
use lapack95, only:  DGBSV_F95
implicit none
include 'mkl.fi'
integer ii,im,in,ip,ix,iy,ik,ir,ic,ixr,ixc,ipr,ipc,ikr,ikc,iter,niter,i,j,n,kl,ku,ldab, ipiv, ldb
integer is,l_success,l_ss,info,i1,i2,ndiag,IROWB,irow,icol,icount,nband
integer maxfct,mnum,mtype,phase,nrhs,iparm(1:64),msglvl,error,irow_previous
integer*8 pt(1:64)




!Band storage: One diagonal + kl lowers + ku uppers
kl=5+2
ku=5+2
n=nx*np
ldab=2*kl+ku+1
nband=kl+ku+1
pt=0


ia(n+1)=icount+1
maxfct=1
mnum=1
mtype=1
nrhs=1
msglvl=0 
call pardisoinit(pt, mtype, iparm)
call pardiso_d(pt,maxfct,mnum,mtype,phase,n,Apimp,ia,ja,perm,nrhs,iparm,msglvl,Bimp,xsol,error)


end

The compiler complains about the variable "pt". It says "The type of the actual argument differs from the type of the dummy argument".

According to the documentation, pt is an integer array on 32-bit systems and an integer*8 on 64-bit systems. My system is 64-bit. I have also tried declaring pt as an integer (rather than integer*8).

How can I find out what type ot shoudl really be?

Thanks.

0 Kudos
1 Solution
mecej4
Honored Contributor III
1,007 Views

As you can see from the examples in the folder ...\mkl\examples\solverf, or in the include file mkl_pardiso.fi, the type of pt is MKL_PARDISO_HANDLE . Since this is not an intrinsic type, you will need a definition for it in the subprogram that calls Pardiso (for example, by inserting USE mkl_pardiso).

View solution in original post

0 Kudos
2 Replies
mecej4
Honored Contributor III
1,008 Views

As you can see from the examples in the folder ...\mkl\examples\solverf, or in the include file mkl_pardiso.fi, the type of pt is MKL_PARDISO_HANDLE . Since this is not an intrinsic type, you will need a definition for it in the subprogram that calls Pardiso (for example, by inserting USE mkl_pardiso).

0 Kudos
mark10
Novice
985 Views

Thanks for the speedy reply, Mecej, problem solved. Now I'll sift through the runtime errors...

0 Kudos
Reply