ISPACK F90/N2PACK モジュールは球面上での 2 次元流体運動を スペクトル法により数値計算するための Fortran90 関数を提供する. 内部で ISPACK/STPACK の Fortran77 サブルーチンを呼んでいる. スペクトルデータおよび格子点データの格納方法については ISPACK/STPACK のマニュアルを参照されたい.
サブルーチン名 | 機能 |
---|---|
stinitial | スペクトル変換の格子点数, 波数, 領域の大きさの設定 |
関数名 | 機能 |
xgrid | 格子点データの経度座標(X)を返す |
ygrid | 格子点データの緯度座標(Y)を返す |
l_nm | 全波数東西波数からそのスペクトルデータの格納位置を返す |
nm_l | スペクトルデータの格納位置から全波数と東西波数を返す |
g_s | スペクトルデータから格子データへの変換 |
s_g | 格子データからスペクトルデータへの変換 |
s_lapla_s | スペクトルデータにラプラシアンを作用させる |
s_laplainv_s | スペクトルデータにラプラシアンの逆変換を作用させる |
s_jac_ss | 2 つのスペクトルデータのヤコビアンを計算する |
v_grad_s | スペクトルデータから勾配ベクトル格子点データを計算する |
v_ktimesnabla_s | スペクトルデータから回転的勾配ベクトル格子点データを計算する |
s_div_v | ベクトル格子点データの発散を計算する |
s_rot_v | ベクトル格子点データの回転を計算する |
integer,intent(in) :: nm ! 切断全波数 integer,intent(in) :: im, jm ! 格子点数(経度X, 緯度Y) double precision,intent(in) :: radius ! 球面の半径