Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Beginner
14 Views

Error #6285: no matching specific subroutine for heevr

Hi,

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 

/heap-arrays0
/Qmkl:parallel /c

The library is mkl_lapack95_lp64.lib

Regards,

Geliv

0 Kudos
1 Reply
Highlighted
Beginner
14 Views

I have find what's wrong... Eigenvector should set as real rather than complex. orz...

0 Kudos