論文内の第3章2節の計算をするためのコード (Lindzen and Hou (1988) の追試) * 必要なライブラリ * spml * gtool * ソースコード * test.f90 * 計算は5回に分けて行う * 5つの加熱中心の緯度 phi0=0.0, 2.0, 4.0, 6.0, 8.0 の値で計算する * その他の設定は同じ * 以下のようにする * 計算方法 * 加熱中心の緯度を変える * 変数名: phi0 * コンパイル $ spmfrt -o test test.f90 * 実行ファイル test ができる * 実行 $ ./test * ユーザーリソースの制限によってできない場合がある * その場合は実行の前に $ ulimit -s 819200 などとしておき, そのあとに実行する * 別セッションとして実行したい場合は, screen コマンドを使うとよい * 出力 * 出力ファイル * test.nc * ソース内の output_file で指定 * 毎回の計算で上書きされることに注意 * 出力変数 * 東西流 (u) * 南北流 (v) * 鉛直流 (w) * 温位 (T) * 流線関数 (msf) * Lindzen and Hou (1988) は質量流線関数であるが, ここでは流線関数として出力する * 描画の際に質量流線関数にする * ソースコード (test.f90) 内のパラメータ説明 * jm: 南北格子点数 * km: 鉛直格子点数 (実際はkm+1の格子点) * nm: 南北切断波数 * lm: 鉛直切断波数 * ri: 内半径 (惑星半径) * ro: 外半径 * xl=ro-ri: モデル上端の高さ * PI: 円周率 * g: 重力加速度 * omega: 自転角速度 * delta_h: 南北温位勾配を決めるパラメータ * delta_v: 鉛直温位勾配を決めるパラメータ * nu_V: 鉛直拡散係数 * phi0: 加熱中心の緯度 * T0: 温位場の初期値 * const: 摩擦係数 * tau: 放射緩和時定数 * dt: 時間刻み幅 (秒) * nt: ステップ数 * total_day=dt*nt: 積分時間 (日) * ndisp: ファイル出力間隔ステップ数 * nprog: 表示間隔ステップ数