Community
cancel
Showing results for 
Search instead for 
Did you mean: 
bala
Beginner
224 Views

MKL ERROR: Parameter 5 was incorrect on entry to DSYEVD

Jump to solution
Dear all,

I have a linux cluster with x86_64 OS. I use ifort 10.1 version and MKL 10.2.1.017 version.
The following are my environment variables:
MKLPATH=/opt/intel/mkl/10.2.1.017/lib/em64t
MKLINCLUDE=/opt/intel/mkl/10.2.1.017/include/

I compile a code (nma.f90) using:
ifort -O -c nma.f90 $MKLPATH/libmkl_solver_lp64.a -I$MKLINCLUDE -I$MKLINCLUDE/em64t/lp64 -Wl,--start-group $MKLPATH/libmkl_intel_lp64.a $MKLPATH/libmkl_intel_thread.a $MKLPATH/libmkl_core.a -Wl,--end-group -openmp -lpthread

and link it using:
ifort -O *.o $MKLPATH/libmkl_solver_lp64.a -I$MKLINCLUDE -I$MKLINCLUDE/em64t/lp64 -lmkl_lapack95_lp64 -Wl,--start-group $MKLPATH/libmkl_lapack95_lp64.a $MKLPATH/libmkl_intel_lp64.a $MKLPATH/libmkl_intel_thread.a $MKLPATH/libmkl_core.a -Wl,--end-group -openmp -lpthread

I define an integer variable "dbl" (for double precision) as:
integer,parameter :: dbl=8

and use the relevant lapack module in "nma.f90" as:
program normal_mode
use f95_precision
use global_variables
use file_variable
use lapack95,only : SYEVD

I have a real, symmetric matrix called "hess", and I would like to obtain all its eigen values and eigen vectors. My call to this subroutine in nma.f90 is as follows:

real(kind=dbl),dimension(:,:),allocatable :: hess
real(kind=dbl),dimension(:),allocatable :: w
character(len=1) :: jobz,uplo
integer :: info

jobz='N'
uplo='U'
call dsyevd_f95(hess,w,jobz,uplo,info)

While running the executable, I obtain the error:
MKL ERROR: Parameter 5 was incorrect on entry to DSYEVD

I would appreciate if you can help me out to solve this error.

Thanks,
Best,
Bala
http://www.jncasr.ac.in/bala

0 Kudos

Accepted Solutions
mecej4
Black Belt
224 Views
What happens if you replace

call dsyevd_f95(hess,w,jobz,uplo,info)

by

call syevd(hess,w,jobz,uplo,info)

so that the interface definition in lapack95 is used?

I assume that you allocated and set values into hess before the call.

View solution in original post

2 Replies
mecej4
Black Belt
225 Views
What happens if you replace

call dsyevd_f95(hess,w,jobz,uplo,info)

by

call syevd(hess,w,jobz,uplo,info)

so that the interface definition in lapack95 is used?

I assume that you allocated and set values into hess before the call.

View solution in original post

bala
Beginner
224 Views
Thanks mecej4.

Calling syevd instead of dsyevd_f95 works fine.

Best,
Bala