2007/06/06 の dcmodel ネットミーティングのメモ書き

参加者

  • (順不同) 石渡 正樹, 小高 正嗣, 高橋 芳幸, 杉山 耕一朗, 土屋 貴志, 山下 達也, 林 祥介

dctrm

活動開始.

  • まずは木星大気の放射伝達を計算できるようになる, を目標に
  • 詳細は dcrtm のページ

Todo:

  • 光田さんの放射計算コードを web に公開しておく

覚書

  • データが集まった時点で, 何種類の吸収成分気体(バンド) を考慮すべきか, 検討する
    • まずは可能な限り考慮する, でよいが, とある時点でバンドの取捨選択をしないとたぶん計算できないモデルになってしまうだろう

deepconv

dcmodel コーディングルールの修正

「8. リスタートファイルとヒストリーファイル」の「ヒストリーファイル」に サブ目次「ヒストリーファイル名について」を追加. 内容は以下の通り.

個々のヒストリーファイルに特定の変数の時系列データを格納する場合,
ファイル名はソースコード内で使用されている変数名から次元情報に関する接頭詞
(例: xyz_) を取り除いたものとすることを推奨する.

この追記は森川が行う (既に完了). 実験名を接頭詞に加える話と, 時刻情報を接尾詞に加える話は石渡が担当.

初期値の生成に関して

  • 長期 RUN 用実行プログラムは「お試し Run」できるように, 内部で 初期値を生成できるようにしておく.
  • 本当に数値実験を行う際にわざわざ長期 RUN 用実行プログラムを改変 しなくて済むよう, 初期値生成用実行プログラムは別途用意しておく.
  • ただし完全に別々に RUN 用ファイルと, 初期値生成用ファイルを メンテナンスする場合, 実際に初期値を生成するコードを「2 度書き」 せねばならず, 開発者のストレスが溜まる (deepconv 開発の経験)
  • 現状の折衷案 (とりあえずこれで試行錯誤してみる)
    • 初期値生成プログラムは, 実際に初期値を生成するコードを module でくるむ. 同時にそのプログラム内では program 文 も書き, 単体で実行可能にする.

      ┌─ init_data.f90 ─────────────────
      |
      |
      |  module init_data
      |  
      |    subroutine InitialDataCreate(....)
      |    
      |      初期値生成コード
      |      
      |    end subroutine InitialDataCreate
      |    
      |
      |  end module init_data
      |
      |  program init
      |    use init_data
      |    
      |    call InitialDataCreate(...)
      |    
      |  end program init
      └──────────────────
    • RUN 用プログラムは「おためし RUN」可能なように, 初期値生成モジュールを use してサブルーチンを実行する.

      結果的に, 「おためし RUN」の際には, RUN 用ファイルは一度初期値ファ イルを書き出し, それを実行ファイルで読み込むことになる.

      ┌─ run.f90 ─────────────────
      |
      |  program run
      |    use init_data
      |    
      |    call InitialDataCreate(...)
      |    
      |    
      |    do ....
      |    
      |      長期 RUN
      |    
      |    end do
      |    
      |  end program run
      └──────────────────

NAMELIST に関して

  • NAMELIST で, でかいデータは与えないようにする.
    • でかいデータは基本的にファイルで与える. 初期値ファイル, rst ファ イル以外のデータは 1 つにまとめるか, 複数かは適宜判断して使い分け る. また, 小さいデータは NAMELIST で与えることも許容する. ファイ ルを使うか NAMELIST でやるかも適宜判断して使い分ける.
  • NAMELIST 変数の出力フォーマットについては全然話をしてない.

dcpam, deepconv の NAMELIST ファイルの書式について

これまで dcpam, deepconv の NAMELIST ファイルでは以下のように 変数グループを記述していた.

&grid_3d_nml
  im = 64             ! 東西格子点数
  jm = 32             ! 南北格子点数
  km = 16             ! 鉛直格子点数
/

これまで, frt, ifort, g95 で動作は確認されていたが, Fortran 95 規格 に正しく沿うと

&grid_3d_nml
  im = 64,             ! 東西格子点数
  jm = 32,             ! 南北格子点数
  km = 16              ! 鉛直格子点数
/

のように各変数はカンマで区切るのが正しいため, この書式に変更する.

なお, dcpam ではカンマが入っているものと入っていないものとがあったため, 一部の NAMELIST 変数グループが読み込まれないという事態が発生していた.

spml の wa_module から rn, irm を参照する問題

  • 作業担当者: 佐々木

wa_module.f90 に以下の行を足してコミット.

public :: rn, irm

マイナーバージョンを上げて, リリースする.

その他 2006 年度末に話し合った内容に関しては, 天文台モデルミーティングログ 2006/12/25-27 を参照のこと.

モデル開発してて面倒と感じることいろいろ

以下の, 日頃作業する際に調べる面倒だなぁ, と思う事柄に関して, dcmodel のページから 1 ホップぐらいで手繰れるところに, 必要最低限の資料を作成 する. (杉山)

  • cvs commit が面倒
    • (面倒) コマンドをすっかり忘れているので, わざわざいちいち調べなけ ればならない (コミットするのが億劫になる). 調べる情報も dcmodel プロジェクトの奥のほうにあったりして調べる作業も鬱陶しい.
      • 調べるものの例
        • cvs のタグの貼り方どうだっけ??
        • cvs のコミットどうするんだっけ?? なんかルールもあったような??
    • (対応策) 杉山氏が, 自分で cvs コミットの際に必要な情報を dcmodel ページの上の方 (検索しやすい位置) に作ってみる.
  • ソースの公開版の更新が面倒
    • 作業そのものはだいぶ簡素化されている (タグが書き込まれているファイル を書き換え, あるディレクトリで make するだけ).
    • やり方が流布されれば OK ??
  • gt4f90io の開発についていけない
    • (面倒) なんかいろいろ開発してるらしいが, ついてゆけん.
    • (解決策??) 基本的には History 系 (もうそんなに仕様変更されないことが 期待される) のみは追うけれども, 最近作っている目新しいツールは 無理して追いかけない. (面白そうならその時に聞く).