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

参加者

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

初期値の生成に関して

  • 長期 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 を参照のこと.

gt4f90io の dc_test の解説文書の修正

  • 作業担当者: 森川
  • 以下の作業は完了. もう少し修正がたまったらリリース
    • AssertEqual の解説文章に関して以下のように修正

      Usage の「もしも answer と check の値, もしくは配列のサイズが 異なる場合, テストプログラムはエラーを返して終了します.」 の直前に「正答の場合は OK と表示する」などと記述する.

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

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

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