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 次元配列. |
| yx_X, yx_Y | 格子点データの XY 座標(X,Y)(格子点データ型 2 次元配列) |
| 基本変換 | |
| yx_es, yx_ec | スペクトルデータから格子データへの変換 |
| es_yx, ec_yx | 格子データからスペクトルデータへの変換 |
| 微分 | |
| 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 つのスペクトルデータからヤコビアンを計算する. |
| 積分・平均 | |
| IntYX_yx, AvrYX_yx | 2 次元格子点データの全領域積分および平均. |
| y_IntX_yx, y_AvrX_yx | 2 次元格子点データの X 方向積分および平均. |
| IntX_x, AvrX_x | 1 次元(X)格子点データの X 方向積分および平均. |
| x_IntY_yx, x_AvrY_yx | 2 次元格子点データの Y 方向積分および平均. |
| IntY_y, AvrY_y | 1 次元(Y)格子点データの Y 方向積分および平均. |
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 座標の範囲
real(8), dimension(0:im-1) :: x_X
real(8), dimension(0:jm) :: y_Y
real(8), dimension(0:im-1) :: x_X_Weigtht
real(8), dimension(0:jm) :: y_Y_Weigtht
real(8), dimension(0:jm,0:im-1) :: yx_X, yx_Y
real(8), dimension(0:jm,0:im-1) :: yx_es
real(8), dimension(-km:km,lm), intent(in) :: es
real(8), dimension(0:jm,0:im-1) :: yx_ec
real(8), dimension(-km:km,0:lm), intent(in) :: ec
real(8), dimension(-km:km,lm) :: es_yx
real(8), dimension(0:jm,0:im-1), intent(in) :: yx
real(8), dimension(-km:km,0:lm) :: ec_yx
real(8), dimension(0:jm,0:im-1), intent(in) :: yx
real(8), dimension(-km:km,lm) :: es_Lapla_es
real(8), dimension(-km:km,lm), intent(in) :: es
real(8), dimension(-km:km,lm) :: es_LaplaInv_es
real(8), dimension(-km:km,lm), intent(in) :: es
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
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
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
real(8), dimension(0:jm,0:im-1) :: yx ! 2 次元格子点
real(8) :: IntYX_yx ! 積分値
real(8), dimension(0:jm,0:im-1) :: yx ! 2 次元格子点
real(8) :: AvrYX_yx ! 積分値
real(8), dimension(0:jm,0:im-1) :: yx ! 2 次元格子点
real(8), dimension(0:jm) :: y_IntX_yx ! 1 次元(Y)格子点
real(8), dimension(0:jm,0:im-1) :: yx ! 2 次元格子点
real(8), dimension(0:jm) :: y_AvrX_yx ! 1 次元(Y)格子点
real(8), dimension(0:im-1) :: x ! 1 次元格子点
real(8) :: IntX_x ! 積分値
real(8), dimension(0:im-1) :: x ! 1 次元格子点
real(8) :: AvrX_x ! 積分値
real(8), dimension(0:jm,0:im-1) :: yx ! 2 次元格子点
real(8), dimension(0:im-1) :: x_IntY_yx ! 1 次元(X)格子点
real(8), dimension(0:jm,0:im-1) :: yx ! 2 次元格子点
real(8), dimension(0:im-1) :: x_AvrY_yx ! 1 次元(X)格子点
real(8), dimension(0:jm) :: y ! 1 次元格子点
real(8) :: IntY_y ! 積分値
real(8), dimension(0:jm) :: y ! 1 次元格子点
real(8) :: AvrY_y ! 積分値