Subroutine : |
|
amat : | real(8), dimension(:,:)
|
eigen_r : | real(8), intent(out), dimension(:)
|
eigen_i : | real(8), intent(out), dimension(:)
|
eigvec_r : | real(8), intent(out), dimension(size(amat,1),size(eigen_r))
|
eigvec_i : | real(8), intent(out), dimension(size(amat,1),size(eigen_i))
|
info : | integer, intent(out)
|
sort : | character(len=2), intent(in), optional
|
reverse : | logical, intent(in), optional
|
このサブルーチンは固有値計算用共通インターフェースを与える eigmatrix モジュールの公開サブルーチン eigen として用いられる.
* 行列 AMAT の i 番目固有値を eigen_r(i), eigen_i(i) に格納
* 対応する固有ベクトルを eigvec_r(:,i), eigvec_i(:,i) に格納
* 格納する固有値の数は引数 eigen_r の大きさで決まる
* 固有値の順番は sort と order で定められる.
* sort によって順番を定めるために用いる量を指定する.
実部(R), 実部の絶対値(RA), 虚部(I), 虚部の絶対値(IA)
* reverse によって小さい順(.false.), 大きい順(.true.)を指定できる.
* デフォルトは sort='R', reverse=.false.
内部では DGEEV/LAPACK ルーチンによる実行列の固有値/固有ベクトル計算を
行っている. が, ユーザーは用いているライブラリとサブルーチンを意識
することなく使うことができる.
The entity is lapack_eigen#deigen_lapack