2007/05/30 の dcmodel ネットミーティングのメモ書き
参加者
- (順不同) 林 祥介, 石渡 正樹, 小高 正嗣, 高橋 芳幸, 杉山 耕一朗, 森川 靖大, 土屋 貴志
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 ページの上の方 (検索しやすい位置) に作ってみる.
- (面倒) コマンドをすっかり忘れているので, わざわざいちいち調べなけ
ればならない (コミットするのが億劫になる). 調べる情報も dcmodel
プロジェクトの奥のほうにあったりして調べる作業も鬱陶しい.
- ソースの公開版の更新が面倒
- 作業そのものはだいぶ簡素化されている (タグが書き込まれているファイル を書き換え, あるディレクトリで make するだけ).
- やり方が流布されれば OK ??
- gt4f90io の開発についていけない
- (面倒) なんかいろいろ開発してるらしいが, ついてゆけん.
- (解決策??) 基本的には History 系 (もうそんなに仕様変更されないことが 期待される) のみは追うけれども, 最近作っている目新しいツールは 無理して追いかけない. (面白そうならその時に聞く).