- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

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

Link Copied

1 Reply

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

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

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