CReSS4ICE 20180501 progress

オリジナルドキュメント

現状

  • 一通り読み終わりました.
  • 内容の詳細までは踏み込めてません.

誤植?

  • p.1 (1) 式下
    • nx (Dx) の単位は cm-4.
    • これを間違えているからか, (3), (4) 式の中辺 (nx が入る辺) が導出できない.
      • ただし, Nx に変換した lambdax, n0x の式は導出できたので問題ないであろう.
  • p.18 (75a) - p.19 (77b)
    • 式の括弧が閉じていないので, 定義式が不明.
  • 未定義記号
    • Psi, Sc.

CReSS4ICE オリジナルコードテスト

目標

4ICE 版のテストと各プロセスでの生成率を出力できるように変更する.

現状

  • スーパーセルの理想化実験 (3 時間積分)
    • 各プロセスによる生成率の出力をできるようにした.
    • CReSS3ICE (CReSS オリジナル版) でも実験を行った (両者の比較が可能).

今後

具体的な実験結果は後ほどお持ちします.

CReSS4ICE コード修正

目標

雲水の数濃度を CReSS の飽和調節時ではなく, NHM の数濃度生成ルーチンに変更する.

現状

  • CReSS4ICE のコード規則に従い, α版は完成.
    • 新しいサブルーチン nhm4ice___satadjst.f90 を作成.
      • CReSS での飽和調節後の雲水情報を用いて NHM の雲水数濃度生成ルーチン (sat_adj.f90 の nucl_number) を呼び出す.
    • 上記変更に伴い, 新しいサブルーチン nhm4ice___s{w,i}adjst.f90 を作成.
      • CReSS での飽和調節時には混合比のみ変化させ, 数濃度は変化させない.
    • nhm4ice___{crs2nhm,nhm2crs}ad.f90 を新規に作成.
      • sat_adj.f90 から nhm4ice___satadjst.f90 への変数の受け渡し (CReSS 変数 <=> NHM 変数間の変換) を担う.
      • これらは, CReSS4ICE オリジナルで用意されていた CTI 長谷川さん作成の nhm4ice___{crs2nhm,nhm2crs}.f90 を流用した.

CReSS4ICE 修正版の変更点

変更前のソースツリー

intgdrv.f90 ! 時間積分を制御する親ルーチン
|--  cloudphy.f90  ! 雲微物理計算ルーチン
|... (snip)
|--  satadjst.f90  ! 飽和調節制御計算ルーチン
`... (snip)

変更後のソースツリー (予定)

intgdrv.f90  ! 時間積分を制御する親ルーチン
|--  cloudphy.f90  ! 雲微物理計算ルーチン
|... (snip)
|---- nhm4ice___satadjst.f90        ! 飽和調節制御計算ルーチン (4ICE 版)
|  |  |-- nhm4ice___siadjst.f90     ! 雲氷混合比調節ルーチン
|  |  |-- nhm4ice___swadjst.f90     ! 雲水混合比調節ルーチン
|  |  |-- nhm4ice___crs2nhmad.f90   ! CReSS -> NHM への変数変換
|  |  |-- nucl_number.f90           ! NHM での雲水数濃度生成ルーチン (sat_adj.f90)
|  |  ~-- nhm4ice___nhm2crsad.f90   ! NHM -> CReSS への変数変換
|  |- satadjst.f90  ! 飽和調節制御ルーチン (CReSS オリジナル)
`... (snip)

テスト計算移行のための問題

  • sat_adj.f90 内で内容不明の変数が複数存在している.

    • 不明変数一覧
    q_cnd(:,:,:)
    iregion(:,:,:)
    rdnsg2t(:,:,:)
    • これらは NHM 内での別ルーチンで利用されるようであるが, 今手元にある情報からでは変数の意味とその定義が不明.
    • 村上先生にお伺い.

今後

用途不明変数の内容が判明した後, その内容に応じてコードを修正, テスト計算に移行します.