spml -- SPmodel (SPectral MODEL) Library は 流体運動をスペクトル法により数値計算するための Fortran90 関数を 提供するモジュール群である.
フーリエ変換, 球面調和函数変換, チェビシェフ変換などの スペクトル計算には石岡圭一氏による ISPACK Fortran77 ライブラリを用いている. spml では ISPACK の変換サブルーチンを Fortran90 の関数でくるみ, さらにいくつかの便利な微分・積分・境界値問題などのための関数や サブルーチンを追加している.
モデルからのデータ入出力と後処理のために, gtool4 開発グループを中心に開発されている gt4f90io Fortran90 netCDF I/O library を使うことを前提としている.
本ライブラリの使用にあたっては, 地球流体スペクトルモデルプロジェクトの Web page である http://www.gfd-dennou.org/arch/spmodel/index.htm : 階層的地球流体力学スペクトルモデル集(SPMODEL), を一度は訪れられたい.
| モジュール名 | 機能 |
|---|---|
| lumatirx | LU 分解で連立方程式を解く |
| eigmatrix | 実正方行列の固有値問題を解く |
| ae_module | 1 次元周期境界条件での問題をフーリエ変換により解く(多層対応) |
| at_module | 1 次元有限領域での問題をチェビシェフ変換により解く(多層対応) |
| at_ad_galerkin_DD at_av_galerkin_NN at_ab_galerkin_ND at_ap_galerkin_DN | 1 次元有限領域での問題をチェビシェフ-ガラーキン法により解く(多層対応) 順番に両端ディリクレ, 両端ノイマン, 片側ディリクレ他方ノイマン 片側ノイマン他方ディリクレ条件の基底による展開. |
| at_af_galerkin_MM at_ah_galerkin_MMex | 1 次元有限領域での問題をチェビシェフ-ガラーキン法により解く(多層対応) ディリクノイマン混合条件(1 次元データ用, 多次元データ用)の 基底による展開 |
| at_aq_galerkin_RRSS | 1 次元有限領域での問題をチェビシェフ-ガラーキン法により解く(多層対応) 非圧縮流体の流線関数・ポロイダルポテンシャル用の基底による展開 |
| ee_module | 周期的境界条件を伴う 2 次元矩形領域の問題を 2 重フーリエ変換により解く |
| esc_module | 2 次元水路領域での問題をフーリエ変換と sin, cos 変換により解く |
| et_module | 2 次元水路領域での問題をフーリエ変換とチェビシェフ変換により解く |
| et_galerkin_module | 2 次元水路領域での問題をフーリエ変換とチェビシェフガラーキン法により解く |
| w_module | 2 次元球面上の問題を球面調和函数変換により解く |
| wa_module | 球面上の問題を球面調和函数変換により解く(多層対応). w_module の多層モデル版. |
| wt_module | 3 次元球殻内の問題を球面調和函数変換とチェビシェフ変換により解く. |
| wt_galerkin_module | 3 次元球殻内の問題を球面調和函数変換とチェビシェフガラーキン法により解く. |
例
| 接頭子 | 意味 |
|---|---|
| e | フーリエ変換 (exp) のスペクトルデータ |
| c | コサイン変換 (cos) のスペクトルデータ |
| s | サイン変換 (sin) のスペクトルデータ |
| w | 球面調和函数変換 (Ynm) のスペクトルデータ |
| n,m | 球面調和函数変換 (Ynm) の全波数, 帯状波数 |
| t | チェビシェフ変換 (Tn) のスペクトルデータ |
| d,v,b,p | チェビシェフ-ガラーキン法のガラーキン成分データ. 順番に両端ディリクレ, 両端ノイマン, 片側ディリクレ他方ノイマン 片側ノイマン他方ディリクレ条件の基底による展開係数. |
| f,h | チェビシェフ-ガラーキン法のガラーキン成分データ. ディリクノイマン混合条件(1 次元データ用, 多次元データ用) の基底による展開係数. |
| q | チェビシェフ-ガラーキン法のガラーキン成分データ. 非圧縮流体の流線関数・ポロイダルポテンシャル用の 基底による展開係数. |
| x,y,z | 格子点データ(X, Y, Z あるいは 経度, 緯度, 動径/高度 など) |
| g | 一般的な格子点データ |
| a | 全ての種類 |
Fortran90 プログラム中で use 文により使いたいモジュールを指定する.
program hogehoge
use ee_module
....
spml モジュールを用いた Fortran90 プログラムをコンパイル・リンクするのためのスクリプト spmfrt が用意されている. プログラム hogehoge.f90 をコンパイルするには
$ spmfrt hogehoge.f90
とすれば良い.