Class | eigmatrix |
In: |
src/eigmatrix.f90
|
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 ルーチンによる実行列の固有値/固有ベクトル計算を 行っている. が, ユーザーは用いているライブラリとサブルーチンを意識 することなく使うことができる.
Original external subprogram is lapack_eigen#deigen_lapack