subroutine Ceigen(n,Uf,Ud,d)
implicit none
integer :: n,info,i,j,lwork=-1
complex(8) :: Ud(n,n),Uf(n,n),rwork(2*n),d(n)
complex(8),allocatable :: work(:)
complex(8),dimension(1,1) :: vr,vl
allocate(work(0:n-1))
Ud=Uf
call zgeev('N','N', n, Ud, n, d, vl, 1, vr, 1, work, lwork, rwork, info)
lwork=work(1)
deallocate(work)
allocate(work(n))
call zgeev('N','N', n, Ud, n, d, vl, 1, vr, 1, work, lwork, rwork, info)
end subroutine Ceigen
我使用這個子程序來獲得一個大對稱的複雜矩陣的特徵值。zgeev沒有給出正確的特徵值
然而,每次我收到以下錯誤
**在進入ZGEEV參數號12有一個非法值注:以下浮點異常信號: IEEE_UNDERFLOW_FLAG IEEE_DENORMAL
lwork
是第12個參數。但是,如果我不分配lwork =work(1)
我得到每個特徵值零。 任何人都可以幫忙嗎?
嘗試'lwork = MAX(1,N)'如文檔中所述。 –
你不止一次打電話給Ceigen嗎? – francescalus
請勿使用複雜的(8)。不僅它醜陋而且不便攜。這也令人困惑,因爲它與複雜的* 8不兼容。 –