======================================= 2D cumulus model - kaminari Author : TAKAHASHI Koko Date : 2003/12/09 最終更新 2003/11/12 新規作成 ======================================= I. 2 次元積雲モデル - kaminari - の概要 コンパイルに必要なもの - Fujitsu Fortran Compiler ver 3.0 - SSLII ライブラリ使用 - gtool4 ライブラリ - netCDF 形式に出力する データ出力形式 - NetCDF 形式 II. プログラムリスト Makefile : make 用ファイル README : このファイル - 設定 init_value.f90 : 初期値 - 方程式系を解くためのプログラム kaminari_2d.f90 : メインプログラム - 基礎方程式を解くサブルーチン vel_u.f90 : 水平方向の運動方程式 vel_w.f90 : 鉛直方向の運動方程式 non_dim_pi.f90 : 圧力方程式 (鉛直方向を求める) ptemp_1stp.f90 : 1ステップ目の温位の式 ptemp.f90 : 2ステップ目以降の温位の式 eddymx_sub_1stp.f90 : 1ステップ目の渦混合係数 (サブグリッド運動エネルギーの式) eddymx_sub.f90 : 2ステップ目以降の渦混合係数 (サブグリッド運動エネルギーの式) - その他のサブルーチン omgw.f90 : 地形に沿った座標系での鉛直速度 ver_ptemp.f90 : 仮温位 mxrt_satu.f90 : 水蒸気の飽和混合比 base.f90 : 基本場 boundary_bs.f90 : 基本場の境界を与える init_value.f90 : 初期値を与える boundary.f90 : 擾乱場の境界を与える vel_u_tb.f90 : 水平方向の運動方程式の移流項,生成消滅項,拡散項 vel_w_tb.f90 : 鉛直方向の運動方程式の移流項,生成消滅項,拡散項 div_diff.f90 : 音波減衰項 jacobian.f90 : ヤコビアン prss2pi.f90 : 圧力<=>無次元圧力変換 cal_value.f90 : 計算領域だけを出力するための変数入れ換え III. 使用方法 1) Makefile を自分の環境に合わせて編集 2) コンパイルする $ make 3) 実行ファイルを実行する $ ./kaminari_2d.out 境界を含む kaminari_2d_u.nc (速度 u のデータ) kaminari_2d_w.nc (速度 w のデータ) kaminari_2d_scl.nc (スカラー量 prss_bs, pi_bs, dens_bs, qv_bs, temp_bs, ptemp_bs, prss, pi_all, temp, ptemp, densのデータ) 計算領域のみ kaminari_2d_u_cal.nc (速度 u のデータ) kaminari_2d_u_cal.nc (速度 w のデータ) kaminari_2d_scl_cal.nc (スカラー量 prss_bs, pi_bs, dens_bs, qv_bs, temp_bs, ptemp_bs, prss, pi_all, temp, ptemp, densのデータ) というファイルが作成される 4) 描画する -------------------------------------------------------- □ PNG画像の作り方メモ PostScript画像作成 予報変数 u について計算時間 100 秒時の絵を出力する $ gtview kaminari_2d.nc@u,t=100 wsn=2 -shade 大きいサイズの画像作成 名前の付け方: kami(次元数)d_(予報変数名)_t(計算時間).png $ convert -rotate 90 dcl.ps kami2d_u_t100.png 小さいサイズの画像作成 名前の付け方: kami(次元数)d_(予報変数名)_t(計算時間)_s.png $ convert -rotate 90 -resize 200x140 dcl.ps kami2d_u_t100_s.png 一度にやる gtview kaminari_2d.nc@u,t=100 wsn=2 -shade; convert -rotate 90 dcl.ps kami2d_u_t100.png; convert -rotate 90 -resize 200x140 dcl.ps kami2d_u_t100_s.png gtview kaminari_2d.nc@w,t=100 wsn=2 -shade; convert -rotate 90 dcl.ps kami2d_w_t100.png; convert -rotate 90 -resize 200x140 dcl.ps kami2d_w_t100_s.png gtview kaminari_2d.nc@pi,t=100 wsn=2 -shade; convert -rotate 90 dcl.ps kami2d_pi_t100.png; convert -rotate 90 -resize 200x140 dcl.ps kami2d_pi_t100_s.png gtview kaminari_2d.nc@pi,t=0 wsn=2 -shade; convert -rotate 90 dcl.ps kami2d_pi_t0.png; convert -rotate 90 -resize 200x140 dcl.ps kami2d_pi_t0_s.png; gtview kaminari_2d.nc@pi,t=10 wsn=2 -shade; convert -rotate 90 dcl.ps kami2d_pi_t10.png; convert -rotate 90 -resize 200x140 dcl.ps kami2d_pi_t10_s.png; gtview kaminari_2d.nc@pi,t=50 wsn=2 -shade; convert -rotate 90 dcl.ps kami2d_pi_t50.png; convert -rotate 90 -resize 200x140 dcl.ps kami2d_pi_t50_s.png; gtview kaminari_2d.nc@pi,t=100 wsn=2 -shade; convert -rotate 90 dcl.ps kami2d_pi_t100.png; convert -rotate 90 -resize 200x140 dcl.ps kami2d_pi_t100_s.png; gtview kaminari_2d.nc@pi,t=500 wsn=2 -shade; convert -rotate 90 dcl.ps kami2d_pi_t500.png; convert -rotate 90 -resize 200x140 dcl.ps kami2d_pi_t500_s.png