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

参加者

  • 北大
    • 石渡 正樹, 杉山 耕一郎, 山下達也
  • 神戸大
    • 林 祥介, 高橋 芳幸, 西澤誠也, 納多 哲史, 井谷 優花, 黒田 美紀, 河合佑太
  • 九大
    • 中島 健介

次回日程

  • 日時
    • 2010/06/21 (火) 14:00-18:00
  • 場所
    • 神戸大 : 自然科学 3 号館 508
    • 神戸大 : ポートアイランド 3 階サロン   
    • 北大 : 理学部 8 号館コスモスタジオ
    • 九大 : 理学部 3 号館 3605

deepconv 再編成 (杉山)

現状

  • 動作テスト
    • 環境研, 天文台で動くようになった
    • 計算速度
      • arare4 とあまり変わらない
  • ドキュメントを順次追加
  • Debian squeeze で deepconv/arare5 の make が通るよう修正
    • make ファイルの書き方を変えたら解決した.

dcmodel の cvs のコミット方法の相談 (杉山)

  • もう少し簡略化できないか
    • コミットする際に書く内容が細かい
    • 今回のように大幅に変更する際に書き切れない
    • 途中経過をコミットする際に書きにくい
  • 対策
    • α 版 (作業中のソース) であることをコメントに追記する
      • 必須情報: 作業中か, 否か
      • オプション情報 : 何をしているか (例えば "雲凝結過程作業中" など)
      • 複数のファイルをコミットする場合
        • メインで修正しているものについてコメントをつけておくのはどうか (林)
        • 修正版であることが分かればよい (石渡)
          • どのファイルを修正しているのかはオプションで良い

今後

  • 今関計算の初期値生成サブルーチンの取り込み
  • 作業の区切りがいい所でベンチマークを行う

dcpam ドキュメントのトップページ (高橋(芳))

  • 関連資料にある "関連リンク" と "リンク" の使い分けは?
    • リンク
      • 上位階層へのリンク
    • 関連リンク
      • 資料に関連したリンク
  • 関連リンク
    • ページの名前を変える方が良いかもしれないが, アイデアが ないので現状維持
    • 電脳へのリンクは削除する
  • あわせて地球流体電脳倶楽部全体の謝辞も更新する
    • 科研費の情報など

dcpam と deepconv のモジュール初期化方法 (高橋(芳))

はじめに

  • 見た目を揃えたいのなら, 方法を統一した方がよいだろう
  • 現状, dcpam と deepconv のどちら一方が圧倒的に優れているわけではない
  • えいやっと決めてしまおう

現在のサブルーチン初期化方法

  • depoconv
    • 各モジュールは初期化処理サブルーチンをもつ
    • 初期化処理サブルーチンがメインプログラム (main) の初期化処理ルーチン (MainInit) から call される
    • 初期化処理サブルーチンは, 引数に namelist ファイル名を持っている
  • dcpam
    • 各モジュールは初期化処理サブルーチンをもつ
    • 各モジュールの初期化処理サブルーチンは, 各モジュール内のサブルーチンが最初に call された際にサブルーチン内から call される
    • namelist ファイル名は, namelist_util モジュールが持っている.
      • 各モジュールでは, namelist_util モジュールを use することで,namelist 名を参照する

現在のサブルーチン初期化方法の利点

  • deepconv
    • namelist ファイル名以外に, 必要な値を引数として与えられる
      • 惑星ごとに異なる定数や座標情報を与えることで, 汎用性が高まるかもしれない
        • 気象庁でも行われている
    • メインプログラムを見れば, あるモジュールが初期化されている (処理が呼ばれている) かどうかが分かる
    • 終了処理も同様の方法で実装できる
  • dcpam
    • 初期化処理をあらかじめ call する手間を省ける
    • メインプログラムの初期化 (MainInit) が短くて済む
    • コードを見なくても, 各モジュールが初期化されていることが分かる

議論

  • ちゃんと初期化しているかが見えたほうがよいのではないか (中島)
    • 呼ばれなかったらエラーを出力するなど...

結論

  • deepconv に合わせよう
  • dcpam の変更は徐々に行っていく

モジュールの共通使用に向けて (高橋(芳))

考えること

  • 定数情報の管理
    • ある変数を保持しているモジュール名が二つのモデルで異なる
      • 例) Pi
    • dcpam で必要な変数を必ずしも deepconv で持っている訳ではない
      • 例) StB
    • 変数の扱い方が二つのモデルで異なるかも知れない
      • 例はない
  • 配列サイズ情報の管理
    • dcpam : 配列の大きさのみで配列サイズを指定
    • deepconv : 配列両端のインデックス変数で, 配列サイズを指定
  • 座標情報の管理
    • dcpam : 緯度, 経度が必要
    • deepconv : 緯度, 経度は必要ない

当面の方針

  • 定数, 変数の扱いをもう少し細かく判断
    • 定数を定数モジュールに集約
    • 共通使用のために, 一方のモデルでは必要のない定数なども持つことにする
      • 緯度, 経度, StB
    • または, 一方のモデルでしか必要のない定数は, 各モジュール内のローカル変数とする
  • use 文を使った変数名の読み替えにより, 変数名の重複を回避
    • imax, jmax
  • deepconv の再構成が終わったら取り掛かる
    • 今は, deepconv への放射の導入を行いつつ, 具体的に対処する定数・変数などを挙げる

議論

  • 物理定数と数学定数のモジュールを分けたい (林)
    • 今は constants モジュールに入っている