I need to calculate eigenvalues for a large matrix. Previously I've been always using GEEV to do the job, but, since this matrix is hermitian and very large, HEEVR should be much quicker. But in compiling, always this error
error #6285: There is no matching specific subroutine for this generic subroutine call. [HEEVR]
For instance, the following is the simple code I used to test the subroutine.
program heevexercise use f95_precision,only: wp=>dp use lapack95,only: heevr implicit none complex(wp),dimension(:,:),allocatable:: A0 complex(wp),dimension(:),allocatable:: w0 integer:: i,j,info allocate(A0(2,2),w0(2)) A0=0._wp w0=0._wp A0=reshape((/0._wp,1._wp,1._wp,0._wp/),(/2,2/)) write(*,*) "A:" write(*,"(2(1X,F9.2))") ((real(A0(i,j)),j=1,2),i=1,2) call heevr(a=A0,w=w0,uplo='U',info=info) write(*,*) "Diagonal A:" write(*,"(2(1X,F9.2))") ((real(A0(i,j)),j=1,2),i=1,2) end program
Any reasons for this error? I have been looking around, but I didn't get any clue.
BTW, the IDE I used is Code:: Blocks, additional compiler options just
The library is mkl_lapack95_lp64.lib