2次元積雲モデル(地球熱帯大気バージョン) 1. コンパイル source file のあるディレクトリで、 % make -f makefile_E_sun (これは Sun Fortran 用) 実行ファイル E1.exe が作成される。 (SUN 以外のマシンでは、fortran compiler, linker のコマンド およびオプションに注意) 2. 実行 実行用ディレクトリを作成し、そこに乱数表(rand.8192)を コピーし symbolic link を貼る % ln -s rand.8192 @T11.RAND.DATA タイムステップ・計算の長さなどを指定するファイルを作成 (ここでは例として exparam.1 )する。 計算の実行 % E1.exe < exparam.1 > exout.1 & (なお、sun では計算速度の都合で、極めて小規模の計算しか 出来ないことに注意) 実行が始まると以下のファイルが作成される: @T11.KUBU.DATA 雲・雨領域の区分(診断用) @T11.PPAI.DATA 圧力 @T11.QCLW.DATA 雲水混合比 @T11.QRAI.DATA 雨水混合比 @T11.QVAP.DATA 水蒸気混合比 @T11.TPOT.DATA potential temperature @T11.TSFC.DATA 地表面フラックス積算値(診断用) @T11.TURB.DATA 乱流拡散係数 @T11.U.DATA 風の x 成分 @T11.V.DATA 風の y 成分 @T11.VB.DATA 基本場の変数の鉛直分布 @T11.VPRF.DATA 各種変数の水平平均(診断用) @T11.W.DATA 風の z 成分 3. ソースファイルの中身 3.1 メインルーチン + メインループ E1.f メインルーチン(MOIST) および one time step の計算ドライバ(SUBROUTINE TSTEP) grid_size.f 配列サイズ(include file) 3.2 初期設定関連ルーチン(原則的には最初に一度呼ばれるだけ) SETGRD3_E.f 差分格子設定 SETCST_E.f 物理定数の設定 EVSAT.f 飽和蒸気圧を計算する関数(雲物理からも呼ばれる) SETCS2_E.f 地表面条件・コリオリ定数の設定 VBASIC_E.f 基本場の計算 TEMPZ_E.f 基本場の鉛直温度 UBAR0.f 基本場の風速(レイリー摩擦の計算でも呼ばれる) HUMID_E.f 基準となる湿度鉛直分布 PSETUP.f 圧力方程式解法ルーチンの初期設定 3.3 初期変数の設定(マッさらから始める場合) DAINIT_E.f 初期条件の設定 3.4 ファイル I/O 関連 FOPEN_E.f 各種 file open FCLOSE.f 各種 file close FLREAD.f 継続計算などからの data 読み込み FLWRIT.f 計算した data の書きだし 3.5 診断ルーチン(収支など) CLZPRF.f 水平平均量の計算 KUBUN.f 雲・雨領域の決定(診断用) MONIT.f 力学的診断量の書きだし MONITW.f 湿潤変数の診断量の書きだし 3.6 下請けルーチン ACLEAR.f 配列変数のクリア BOUND.f 境界条件の設定 ADUMP.f 配列変数のデバッグ用出力 lasubset.f LAPACK のサブセット(逆行列・固有値問題) vfftorig.f FFT (倍精度に精度拡張してコンパイル) 3.7 時間積分の各部分(TSTEP から毎回呼ばれる): alphabet 順 ADDIF0.f 基本場の移流 ADDIF1.f 基本場からの偏差の移流 CDCOEF.f 乱流拡散係数の計算 CLBUOY.f 浮力の計算 CLCONM.f 格子点での質量収束(ゴミ堆積対策) CLCORIRD.f レイリー摩擦(下と排他) CLCORIS.f コリオリ力 CLPHYSB_E.f 雲物理(凝結を含む) CLPRES.f 圧力方程式を解く CLRAD_E1.f 放射冷却 CLTURB.f 乱流強度の時間変化 CLVISC_E.f 乱流粘性係数の計算 CLWADV.f 風から質量フラックスへの換算(温度の格子点) CLWFLX.f 風から質量フラックスへの換算(風の格子点) CLWMID.f 風の場の補間 FARAIN2_E.f 雨の落下 FXSURF2_E1.f 地表面フラックス NLDIFF2.f 人工非線形拡散(ノイズ対策) NLVISC.f 人工非線形粘性(ノイズ対策) QNFILL.f 穴埋め(負の水蒸気など) (以上)