階層的地球流体スペクトルモデル集 SPMODEL
地球流体電脳倶楽部スペクトルモデルプロジェクトでは, 地球流体力学の研究や教育に使えるスペクトル法を用いたさまざまな数値モデルをそろえる活動を進めています.
- SPMODEL の目指すもの
- ギャラリー
- ライブラリのダウンロード
- インストール
- チュートリアル
- ライブラリリファレンスマニュアル
- 上記は ver.: 0.8.0 のリファレンスマニュアルです.
- FAQ
- プログラム集
- 種々の領域での拡散方程式および簡単な方程式系
- 地球流体力学数値実験集
- 2 次元順圧β面モデル, 2 次元球面順圧および浅水モデル
- 回転球および球殻 MHD ダイナモプロジェクト
- 使用上の注意とCOPYRIGHT
- 発表資料
- 開発メンバー
- 謝辞
- リンク・開発者向け資料
ニュース(2026.07.02)
ISPACK ver.3 のリリースに合わせて SPMODEL ライブラリ(spml) の新規バージョン 2.0 を開発中です.
開発中ですのでドキュメントやモジュールラインナップが不十分ですが, ソースファイルをhttps 経由での git で取得可能です.
% git clone https://dennou-k.gfd-dennou.org/library/spmodel/git_repos/spml.git % cd spml % git submodule update --init % git checkout origin/spml/2.0 % ./autogen.sh % ./configure ... % make ; make check ; make install
- 関数やサブルーチンのインターフェースは spml 0.8.0 と(ほぼ)一緒にしてあるので, プログラムの変更が少なくてすみます.
- Debian パッケージ もしくは Ubuntu PPA にて spml2 パッケージを導入することで試すこともできます.
- これまでの spml を利用する際は ISPACK ver.1
を用いてください.
加えて ISPACK ver.2
も同時に使うことができます.
- 上記パッケージの場合には spml をインストールして下さい.
SPMODEL の目指すもの
SPMODEL では, 地球流体力学に登場するさまざまなレベルの近似方程式系の数値モデルを, 空間 1 次元モデルから 2 次元あるいは 3 次元モデルまで階層的に整備しています.
このような一連の数値モデルをそろえることで
- 標準的あるいは重要な GFD のイラストレーションをたやすく再現できるようにしたい → 地球流体力学の理解と普及に役立てる
- 数値計算による知見を研究者の間で共有したい → 従来の数式による理解から数値計算による理解へ
- 一連のモデルの振舞の比較をスムーズに行いたい → より複雑なモデルの結果を理解するための道具
といったことを目指しています.
このため, 現在整備しようとしているモデルシリーズの基本方針では「可読性が高く理解しやすく, 変形しやすいこと」を最重点においています. 大名プログラマー主義(CPUは無限に速く, メモリとディスク容量は無限に大きいという環境の下で仕事をする) にしたがって, スピードはとりあえず犠牲にしても構わない, というスタンスです. しかしながらこのモデルシリーズをベースにすることで, 例えば最先端の大計算を行うに耐える高速なモデルの開発などが容易になることも期待しています.
SPMODEL のモデルでは, 格子点とスペクトル空間のデータ変換や空間微分などの基本的な配列関数からなる SPMODEL library (spml) を用いてます. Fortran (>= 90) の配列機能を生かしたこのライブラリの配列関数を用いることで, 時間発展方程式の時間変化項以外の部分を数式の形そのままにプログラミングすることができるようになってます. 支配方式の形をそのままプログラムソースに反映させられるのでプログラムの可読性を向上させることができます. また, spml の配列関数は入出力配列の性質が名前からわかるようにするべく統一的に命名法にしたがっているので, 関数の使い方が機械的になり, プログラムを修正することも容易に行えるようになっています.
SPMODEL のライブラリとサンプルプログラム自体が Modern Fortran のプログラミング書法の一つの実験でもあります. 地球流体力学の問題に限らずさまざまな物理現象のスペクトル法による数値計算の一つのスタイルとして参考にして頂ければと思います.