spml/eigmatrix レファレンスマニュアル

spml/eigmatrix モジュールは, 実行列の固有値問題を解くための Fortran90 サブルーチンを提供する. このモジュールで提供するサブルーチンは単純なインターフェースを 提供するだけであり, 実際には内部で行列計算ライブラリ SSL II あるいは LAPACK の固有値問題を解くサブルーチンを呼んでいる.

目次


サブルーチン・関数一覧

名前 機能
eigen 実正方行列の固有値, 固有ベクトルを求める
indexx 並び替えのための番号順づけを行う


サブルーチンの説明

subroutine eigen(amat,eigen_r,eigen_i,eigvec_r,eigvec_i,info,sort,reverse )

  1. 機能 : 与えられた実正方行列の固有値/固有ベクトル計算を行う.
  2. 引数の説明
          real(8), dimension(:,:)                   :: amat      ! 入力正方行列
          real(8), intent(out), dimension(:)        :: eigen_r   ! 固有値実数部
          real(8), intent(out), dimension(:)        :: eigen_i   ! 固有値虚数部
          real(8), intent(out), &
            dimension(size(amat,1),size(eigen_r))   :: eigvec_r  ! 固有ベクトル実部
          real(8), intent(out), &
            dimension(size(amat,1),size(eigen_i))   :: eigvec_i  ! 固有ベクトル虚部
          integer, intent(out)                      :: info      ! ステータス
          character(len=2), intent(in), optional    :: sort      ! 並び変えの量
          logical, intent(in), optional             :: reverse   ! 並び変えスイッチ
        

  3. 備考

関数の説明

function indexx(arrin)

  1. 機能 : 1 次元配列の大きさの順番の番号づけを行う.
  2. 引数と結果の型

          real(8), dimension(:), intent(in)  :: arrin   ! 順番を調べる配列
          integer, dimension(size(arrin))    :: indexx  ! 結果の順番づけの番号
        
  3. 備考
  4. eigmatrix 内で固有値の並び替えを行うためにこの関数を使用しているが, この関数だけを用いるには use 文で eigmatrix を指定する必要はない.
  5. 大きさで並び変えるには次のようにすればよい.
            index = indexx(array)
            array = array(index)                      ! 小さい順
            array = array(index(size(index):1:-1)     ! 大きい順
           


地球流体電脳倶楽部 SPMODEL プロジェクト
spmodel@gfd-dennou.org

2005/02/02 作成 (竹広真一)