惑星大気大循環モデル
DCPAM の開発:
データ I/O ライブラリの改良および
力学コアの設計と実装
森川 靖大
北海道大学大学院理学研究科 地球惑星科学専攻
地球流体力学研究室 博士後期課程 1 年
目次
はじめに
目標
モデルの解説
動作試験
はじめに
- 「大気大循環モデル」とは
- 別名:GCM ; General Circulation Model
- 全球規模の大気循環を表現する数値モデル
- 気象予測 (天気予報)・気候変動予測 (温暖化等) で活躍
モデルの高度化・複雑化
- 3 次元の力学過程・物理過程の水平・鉛直離散化
- 再現性・高速化重視による特殊なチューニング
目標
- 読みやすい・書き換えやすい GCM の開発
- 結果の考察を容易にする GCM
- 地球に限らず他の惑星でも使えるGCM
- 類似する思想のモデル
DCPAM
(Dennou Club Planetary Atmospheric Model)
- AGCM5 (SWAMP Project, 1998) を参考に
- 大学等での研究・教育用に整理された、比較的チューニングされていない GCM
- 自由に利用可能 (Web で公開)
- ドキュメントが整備
- 座標系・支配方程式系・離散化を踏襲
-
- Fortran90/95 の新機能を活用
モデルの解説 (1)
座標系
支配方程式系
離散化
座標系
支配方程式系
- プリミティブ方程式系
- 5つの予報変数を解く:渦度、発散D、地表面気圧p0 、温度T、比湿q
- 境界条件: at = 0, 1
離散化
- 水平:スペクトル法 (球面調和関数展開)
- 一般的に「差分法」に比べて精度が高い
- 「球面を覆う」大気を扱うのに都合が良い
- 鉛直:Arakawa and Suarez (1983)
- 時間:陽的 leapfrog スキーム
- 離散化が単純
- 計算速度の向上の観点からは、重力波に対して陰的スキームを用いた 「semi-implicit」 の方が良い
モデルの解説 (2)
モデル内部の階層化
変数命名規則
数式のコードの簡素化
ドキュメント生成システム
データ I/O 部分の簡素化
モデル内部の階層化(1)
- F90 の「モジュール機能」を活用
- 「モジュール」の交換・分離を容易に ⇒ 可変性を向上
モデル内部の階層化(2)
モデルの解説 (2)
モデル内部の階層化
変数命名規則
数式のコードの簡素化
ドキュメント生成システム
データ I/O 部分の簡素化
変数命名規則
- 変数の情報が容易に分かる命名規則
- SPMODEL (竹広 他, 2004) の命名規則の拡張
- 変数名規則 : x_var_t
- x_ : 空間次元
- var : 物理的意味
- _t : 時刻情報
- 具体例
- x_Lon : 空間次元経度方向の座標データ
- xyz_Temp_b : 温度の3次元格子点データ (時刻 t-t)
- wz_Vor_a : 渦度の水平スペクトルデータ
- + 鉛直格子点データ (時刻 t+t)
モデルの解説 (2)
モデル内部の階層化
変数命名規則
数式のコードの簡素化
ドキュメント生成システム
データ I/O 部分の簡素化
数式のコードの簡素化 (1)
- FORmula TRANslater ではあるが・・・
- 3次元・球座標・離散化によって方程式が十分複雑に
- 個々の項をサブルーチンで演算すると、プログラム構造が整理される一方、「数式」とはかけ離れた形に ⇒ 可読性が低下
- 関数を利用 (SPMODEL (竹広 他, 2004) より)
- F90 で提供される「配列を返す関数」を活用
- SPMODEL で提供されるスペクトル演算用の関数を利用
- 「数式」に近い形で記述 ⇒ 可読性を向上
数式のコードの簡素化 (2)
数式のコードの簡素化 (3)
モデルの解説 (2)
モデル内部の階層化
変数命名規則
数式のコードの簡素化
ドキュメント生成システム
データ I/O 部分の簡素化
ドキュメント生成システム(1)
- 「ドキュメント」の種類 (方言あり)
- 数学的・技術的記述を含む文書
- チュートリアル
- リファレンスマニュアル
- 個々のプログラムの動作の要約や引数の情報、その他プログラムを利用する際に必要となる仕様を記載
- プログラムの内部の理解、プログラムの一部の交換・分離を補助 ⇒ 可変性・可読性の向上
ドキュメント生成システム(2)
- リファレンスマニュアルの手動作成
- 面倒くさい
- プログラムとマニュアルで同じことを2度書くことが多い
- プログラムの更新の度に書き換えねばならない
- プログラムとマニュアルの乖離が多発
- 自動生成の場合
- F90 ソースとしての可読性を低下させない
- 原理的には、HTML でも XML でもなんでも、埋め込んで自動生成できるが…
- 引数情報など、ソースコードをそのまま出力
ドキュメント生成システム(3)
- F90 ソースにRD (Ruby Documentation Project, 2005)を埋め込み
ドキュメント生成システム(4)
モデルの解説 (2)
モデル内部の階層化
変数命名規則
数式のコードの簡素化
ドキュメント生成システム
データ I/O 部分の簡素化
データ I/O 部分の簡素化(1)
- データI/O
- Input/Output つまりデータの入力・出力
- ソースコードを繁雑に or プログラムの分離・交換を困難に ⇒ 可読性・可変性低下
- I/O 部分を簡素化するために
- I/Oライブラリに機能を押し付ける
- 演算部分からは簡素化されたサブルーチンを利用
- ⇒ 可読性・可変性向上
データ I/O 部分の簡素化(2)
データ I/O 部分の簡素化(3)
動作試験
Held and Suarez
(1994) テスト
計算結果
Held and Suarez (1994) テスト
- GCM の力学過程の長期的性質を評価
- 計算設定
- 左下図のニュートン冷却と >0.7 の風にレイリー摩擦を与える
- 1200 日積分を行い、その統計量を見る
計算結果
- T21L20, T42L20 で実験
- T42L20 のパターンは Held and Suarez の結果と一致
まとめ
GCM の可読性・可変性が向上
- モジュール機能を活かしたプログラムの階層化
- 次元・物理的意味・時間が分かる変数命名規則
- SPMODEL による数式のコードの簡素化
- リファレンスマニュアルの自動生成
- データI/O部分を GCM の演算部分と分離、簡素なサブルーチンが利用できるよう整備
力学コアの長期的性質の検証を実施
- お手本とパターンは類似
- 得られた結果の詳細な検証、及び高解像度での計算が課題
参考文献 (1)
- はじめに・目標
- モデルの解説(1)
- Arakawa, A., Suarez, M. J., 1983: Vertical differencing of the primitive equations in sigma coordinates. Mon. Wea. Rev., 111, 34--35.
- モデルの解説(2)
- Balaji, V., 2002: The FMS Manual: A developer's guide to the GFDL Flexible Modeling System. http://www.gfdl.noaa.gov/~vb/FMSManual/FMSManual.html
- Ruby Documentation Project, 2005: http://www.rubyist.net/rubikitch/RDP.cgi?cmd=view;name=top
- 竹広真一, 石岡圭一, 森川靖大, 小高正嗣, 石渡正樹, 林祥介, SPMODEL 開発グループ, 2004: 階層的地球流体力学スペクトルモデル集 (SPMODEL), http://www.gfd-dennou.org/arch/spmodel/, 地球流体電脳倶楽部.
- 豊田 英司, 塚原 大輔, 森川 靖大, 小高正嗣, 石渡 正樹, 堀之内 武, 林 祥介, 地球流体電脳倶楽部 Davis プロジェクト, 2004: gtool4 netCDF 規約, http://www.gfd-dennou.org/arch/gtool4/, 地球流体電脳倶楽部.
- 豊田 英司, 石渡 正樹, 竹広 真一, 林 祥介, gtool4 開発グループ, 2002: gtool4 Fortran90 ツール・ライブラリ, http://www.gfd-dennou.org/arch/gtool4/, 地球流体電脳倶楽部.
参考文献 (2)
- 動作試験
- Held, I. M., and Suarez, M. J., 1994: A proposal for the intercomparison of the dynamical cores of atmospheric general circuation models. Bull. Am. Meteor. Soc., 75, 1825—1830.
- 付録
- Arakawa, A., Suarez, M. J., 1983: Vertical differencing of the primitive equations in sigma coordinates. Mon. Wea. Rev., 111, 34--35.
- Balaji, V., 2004: FMS: the GFDL Flexible Modeling System. http://www.gfd-dennou.org/arch/dcmodel/workshop/2004-09-23/FMS/pub/
- Haltiner, G. J., and Williams, R. T., 1980: Numerical Prediction and Dynamic Meteorology. John Wiley & Sons, 477pp.
- 石岡圭一, 2004: スペクトル法による数値計算入門. 東京大学出版会, 232pp.
- 室井ちあし, 2001: 統一気象予測ソフトウェアの開発 その理想と実体. 地球流体セミナー 2001 年夏, http://www.gfd-dennou.org/seminars/gfdsemi/2001-08-22/muroi/pub-web. 地球流体電脳倶楽部
- Satoh, M., 2004: Atmospheric Circulation Dynamics and General Circulation Models. Springer, 643pp.
- 時岡達志, 山岬正紀, 佐藤信夫, 1993: 気象の数値シミュレーション. 東京大学出版会, 247pp.
付録:FMS について
- FMS (Flexible Modeling System)
- 目的
- 仕様
- FMS の利用者は「User code」部分のみを編集
- Infrastructure で I/O や並列化を行う
- Superstructure は land, ocean, sea ice の結合インターフェース提供
付録:球座標の格子系の例
付録:差分法とスペクトル法
付録:スペクトル法
(球面調和関数展開)
- 長所
- 差分近似に伴う誤差が生じない
- Aliasing が無い (後ページ参照)
- 極の取り扱いが容易
- 短所
- 境界条件が複雑な場合に適用が難しい
- スペクトル変換のコスト(時間)がかかる (特に分散型並列計算機には向かない)
- 詳しくは 石岡 (2004) や Satoh(2004) 参照
付録:Aliasing
付録:Arakawa and Suarez (1983)
- Arakawa and Suarez (1983)
- 座標のプリミティブ方程式系において、連続系のもついくつかの性質を保持する鉛直差分スキーム
- 全領域積分した質量を保存
- 全領域積分したエネルギーを保存
- 全領域積分した角運動量を保存
- 全領域積分した温位を保存
- 静水圧の式が local に決まる (下層の高度が上層のに依存しない
付録:時間積分スキーム