spml マニュアル

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_g : 格子点データからフーリエスペクトルへの変換.
e_Dx_e : フーリエスペクトルデータに対して X 微分を施す.
e_Temp = e_g(g_Temp) : 温度の格子点データをスペクトルデータに変換する.
g_V * g_e(e_Dx_e(e_Temp)) : v dT/dx の計算

接頭子 意味
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 全ての種類


使い方

  1. プログラム中での指定方法

    Fortran90 プログラム中で use 文により使いたいモジュールを指定する.

                program hogehoge
                use ee_module
    	    ....
          
  2. プログラムのコンパイル・リンク

    spml モジュールを用いた Fortran90 プログラムをコンパイル・リンクするのためのスクリプト spmfrt が用意されている. プログラム hogehoge.f90 をコンパイルするには

              $ spmfrt hogehoge.f90
          
    とすれば良い.

デモプログラム

spml を用いたプログラムの例がデモの ディレクトリに用意されている. また, SPMODEL プロジェクトのページには, さまざまな地球流体用のモデルの例が置かれている. プログラムを作る上での参考にされたい.


レファレンスマニュアル


関連リンク


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

2002/08/24 作成 (竹広真一)
2006/03/04 更新 (竹広真一)