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 を流用した.
- 新しいサブルーチン nhm4ice___satadjst.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 内での別ルーチンで利用されるようであるが, 今手元にある情報からでは変数の意味とその定義が不明.
- 村上先生にお伺い.
今後
用途不明変数の内容が判明した後, その内容に応じてコードを修正, テスト計算に移行します.