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

spml/esc_module モジュールは 2 次元チャネル領域での流体運動をスペクトル法により数値計算するための Fortran90 関数を提供する. 内部で ISPACK/C2PACK の Fortran77 サブルーチンを呼んでいる. スペクトルデータおよび格子点データの格納方法については ISPACK/C2PACK のマニュアルを参照されたい.

目次


サブルーチン・関数一覧(機能別)

初期化 機能
esc_initial スペクトル変換の格子点数, 波数, 領域の大きさの設定
座標変数
x_X, y_Y 格子点座標(X,Y座標)を格納した 1 次元配列.
x_X_Weigtht, y_Y_Weight 重み座標を格納した 1 次元配列.
xy_X, xy_Y 格子点データの XY 座標(X,Y)(格子点データ型 2 次元配列)
基本変換
xy_es, xy_ec スペクトルデータから格子データへの変換
es_xy, ec_xy 格子データからスペクトルデータへの変換
微分
es_Lapla_es, ec_Lapla_ec スペクトルデータにラプラシアンを作用させる
es_LaplaInv_es スペクトルデータにラプラシアンの逆変換を作用させる
es_Dx_es, ec_Dx_ec スペクトルデータに X 微分を作用させる
ec_Dy_es, es_Dy_ec スペクトルデータに Y 微分を作用させる
es_Jacobian_es_es, ec_Jacobian_es_ec 2 つのスペクトルデータからヤコビアンを計算する.
積分・平均
IntXY_xy, AvrXY_xy 2 次元格子点データの全領域積分および平均.
y_IntX_xy, y_AvrX_xy 2 次元格子点データの X 方向積分および平均.
IntX_x, AvrX_x 1 次元(X)格子点データの X 方向積分および平均.
x_IntY_xy, x_AvrY_xy 2 次元格子点データの Y 方向積分および平均.
IntY_y, AvrY_y 1 次元(Y)格子点データの Y 方向積分および平均.


関数・変数の名前と型について

命名法

各データの種類の説明


サブルーチンの説明

subroutine esc_initial(i,j,k,l,xmin,xmax,ymin,ymax)

  1. 機能 : スペクトル変換の格子点数, 波数, 領域の大きさを設定する.
  2. 引数の説明
        integer,intent(in) :: i, j             ! 格子点の設定(X,Y)
        integer,intent(in) :: k, l             ! 切断波数の設定(X,Y)
        real(8),intent(in) :: xmin, xmax       ! X 座標の範囲
        real(8),intent(in) :: ymin, ymax       ! Y 座標の範囲
        
  3. 備考
    他の関数を呼ぶ前に, 最初にこのサブルーチンを呼んで初期設定を しなければならない.

変数の説明

x_X, y_Y

  1. 説明 : 格子点座標(X,Y)を格納した 1 次元配列.
  2. 変数の型
          real(8), dimension(0:im-1) :: x_X
          real(8), dimension(0:jm)   :: y_Y
        
  3. 備考

x_X_Weigtht, y_Y_Weight
  1. 説明 : 重み座標を格納した 1 次元配列.
  2. 変数の型
          real(8), dimension(0:im-1) :: x_X_Weigtht
          real(8), dimension(0:jm)   :: y_Y_Weigtht
        
  3. 備考
    x_X_Weight, y_Y_Weight にはそれぞれ X, Y 方向の格子点の 間隔が格納してある.

xy_X, xy_Y

  1. 説明 : 各格子点(i,j)の位置の X, Y 座標を格納した格子データ.
  2. 変数の型
          real(8), dimension(0:jm,0:im-1) :: xy_X, xy_Y
        
  3. 備考


各関数の説明

function xy_es(es), function xy_ec(ec)

  1. 機能 : スペクトルデータから格子データへ変換する.
  2. 変数の型
          real(8), dimension(0:jm,0:im-1)              :: xy_es
          real(8), dimension(-km:km,lm), intent(in)    :: es
    
          real(8), dimension(0:jm,0:im-1)              :: xy_ec
          real(8), dimension(-km:km,0:lm), intent(in)  :: ec
        
  3. 備考

function es_xy(xy), function ec_xy(xy)

  1. 機能 : 格子データからスペクトルデータへ変換する.
  2. 変数の型
          real(8), dimension(-km:km,lm)                :: es_xy
          real(8), dimension(0:jm,0:im-1), intent(in)  :: xy
    
          real(8), dimension(-km:km,0:lm)              :: ec_xy
          real(8), dimension(0:jm,0:im-1), intent(in)  :: xy
        
  3. 備考

function es_Lapla_es(es), function ec_Lapla_ec(ec)

  1. 機能 : 入力スペクトルデータにラプラシアンを作用する.
  2. 変数の型
          real(8), dimension(-km:km,lm)                :: es_Lapla_es
          real(8), dimension(-km:km,lm), intent(in)    :: es
        
  3. 備考
    スペクトルデータのラプラシアンとは, 対応する格子点データにラプラシアンを作用させたデータのスペクトル変換のことである.

function es_LaplaInv_es(es)

  1. 機能 : 入力スペクトルデータに逆ラプラシアンを作用する.
  2. 変数の型
          real(8), dimension(-km:km,lm)                :: es_LaplaInv_es
          real(8), dimension(-km:km,lm), intent(in)    :: es
        
  3. 備考
    スペクトルデータの逆ラプラシアンとは, 対応する格子点データに逆ラプラシアンを作用させたデータのスペクトル変換のことである.

function es_Dx_es(es), function ec_Dx_ec(ec)

  1. 機能 : 入力スペクトルデータに X 微分を作用する.
  2. 変数の型
          real(8), dimension(-km:km,lm)                :: es_Dx_es
          real(8), dimension(-km:km,lm), intent(in)    :: es
    
          real(8), dimension(-km:km,0:lm)                :: ec_Dx_ec
          real(8), dimension(-km:km,0:lm), intent(in)    :: ec
        
  3. 備考
    スペクトルデータの X 微分とは, 対応する格子点データに X 微分を作用させたデータのスペクトル変換のことである.

function es_Dy_ec(ec), function ec_Dy_es(es)

  1. 機能 : 入力スペクトルデータに Y 微分を作用する.
  2. 変数の型
          real(8), dimension(-km:km,0:lm)              :: ec_Dy_es
          real(8), dimension(-km:km,lm), intent(in)    :: es
    
          real(8), dimension(-km:km,lm)                 :: es_Dy_ec
          real(8), dimension(-km:km,0:lm), intent(in)   :: ec
        
  3. 備考
    スペクトルデータの Y 微分とは, 対応する格子点データに Y 微分を作用させたデータのスペクトル変換のことである.

function es_Jacobian_es_es(es_a,es_b), function ec_Jacobian_es_ec(es,ec)

  1. 機能 : 2 つのスペクトルデータからヤコビアンを計算する.
  2. 変数の型
          real(8), dimension(-km:km,lm)                :: es_Jacobian_es_es
          real(8), dimension(-km:km,lm), intent(in)    :: es_A,es_B
    
          real(8), dimension(-km:km,0:lm)              :: ec_Jacobian_es_ec
          real(8), dimension(-km:km,lm), intent(in)    :: es
          real(8), dimension(-km:km,0:lm), intent(in)  :: ec
        
  3. 備考
    2 つのスペクトルデータのヤコビアンとは, 対応する 2 つの格子点データのヤコビアンのスペクトル変換のことである.

function IntXY_xy(xy), function AvrXY_xy(xy)

  1. 機能 : 2 次元格子点データの全領域積分および平均.
  2. 変数の型
          real(8), dimension(0:jm,0:im-1)   :: xy          ! 2 次元格子点
          real(8)                           :: IntXY_xy    ! 積分値
    
          real(8), dimension(0:jm,0:im-1)   :: xy          ! 2 次元格子点
          real(8)                           :: AvrXY_xy    ! 積分値
        
  3. 備考

function y_IntX_xy(xy), function y_AvrX_xy(xy)

  1. 機能 : 2 次元格子点データの X 方向積分および平均.
  2. 変数の型
          real(8), dimension(0:jm,0:im-1)   :: xy          ! 2 次元格子点
          real(8), dimension(0:jm)          :: y_IntX_xy   ! 1 次元(Y)格子点
    
          real(8), dimension(0:jm,0:im-1)   :: xy          ! 2 次元格子点
          real(8), dimension(0:jm)          :: y_AvrX_xy   ! 1 次元(Y)格子点
        
  3. 備考

function IntX_x(x), function AvrX_x(x)

  1. 機能 : 1 次元(X)格子点データの X 方向積分および平均.
  2. 変数の型
          real(8), dimension(0:im-1)   :: x          ! 1 次元格子点
          real(8)                      :: IntX_x     ! 積分値
    
          real(8), dimension(0:im-1)   :: x          ! 1 次元格子点
          real(8)                      :: AvrX_x     ! 積分値
        
  3. 備考
    返す値は real(8).

function x_IntXY_xy(xy), function x_AvrXY_xy(xy)

  1. 機能 : 2 次元格子点データの Y 方向域積分および平均.
  2. 変数の型
          real(8), dimension(0:jm,0:im-1)   :: xy          ! 2 次元格子点
          real(8), dimension(0:im-1)        :: x_IntY_xy   ! 1 次元(X)格子点
    
          real(8), dimension(0:jm,0:im-1)   :: xy          ! 2 次元格子点
          real(8), dimension(0:im-1)        :: x_AvrY_xy   ! 1 次元(X)格子点
        
  3. 備考

function IntY_y(y), function AvrY_y(y)

  1. 機能 : 1 次元(Y)格子点データの Y 方向域積分および平均.
  2. 変数の型
          real(8), dimension(0:jm)   :: y          ! 1 次元格子点
          real(8)                    :: IntY_y     ! 積分値
    
          real(8), dimension(0:jm)   :: y          ! 1 次元格子点
          real(8)                    :: AvrY_y     ! 積分値
        
  3. 備考


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

2002/08/18 作成 (竹広真一)
2002/08/20 更新 (竹広真一)