- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
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
1 Solution
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
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.
Link Copied
2 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanks mecej4.
Calling syevd instead of dsyevd_f95 works fine.
Best,
Bala
Calling syevd instead of dsyevd_f95 works fine.
Best,
Bala
Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page