Intel® oneAPI Math Kernel Library
Ask questions and share information with other developers who use Intel® Math Kernel Library.
Announcements
Welcome to the Intel Community. If you get an answer you like, please mark it as an Accepted Solution to help others. Thank you!
6426 Discussions

What is the type of variable pt required by pardiso

mark10
Beginner
311 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
Black Belt
302 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

2 Replies
mecej4
Black Belt
303 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

mark10
Beginner
280 Views

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

Reply