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 次元有限領域での問題をチェビシェフ変換により解く(多層対応) |
| ee_module | 周期的境界条件を伴う 2 次元矩形領域の問題を 2 重フーリエ変換により解く |
| esc_module | 2 次元水路領域での問題をフーリエ変換と sin, cos 変換により解く |
| et_module | 2 次元水路領域での問題をフーリエ変換とチェビシェフ変換により解く |
| w_module | 2 次元球面上の問題を球面調和函数変換により解く |
| wa_module | 球面上の問題を球面調和函数変換により解く(多層対応). w_module の多層モデル版. |
| wt_module | 3 次元球殻内の問題を球面調和函数変換とチェビシェフ変換により解く. |
例
| 接頭子 | 意味 |
|---|---|
| e | フーリエ変換 (exp) のスペクトルデータ |
| c | コサイン変換 (cos) のスペクトルデータ |
| s | サイン変換 (sin) のスペクトルデータ |
| w | 球面調和函数変換 (Ynm) のスペクトルデータ |
| n,m | 球面調和函数変換 (Ynm) の全波数, 帯状波数 |
| t | チェビシェフ変換 (Tn) のスペクトルデータ |
| x,y,z | 格子点データ(X, Y, Z あるいは 経度, 緯度, 動径/高度 など) |
| g | 一般的な格子点データ |
| a | 全ての種類 |
Fortran90 プログラム中で use 文により使いたいモジュールを指定する.
program hogehoge
use ee_module
....
spml モジュールを用いた Fortran90 プログラムをコンパイル・リンクするのためのスクリプト spmfrt が用意されている. プログラム hogehoge.f90 をコンパイルするには
$ spmfrt hogehoge.f90
とすれば良い.