CReSS 計算領域設定支援プログラム

dcl_draw_calc_region は CReSS における計算領域を表示するプログラムです.

必要ライブラリ

  • 描画ライブラリ DCL, dclf90.
  • DCLf90 描画補助ライブラリ DCLAF90.
  • 数値解析ライブラリ STPK.
    • 上記リンクからソースを取得し, ビルド, インストールして頂きたい.
    • インストール時にエンディアンは "big endian" で統一して頂きたい. 以下では CReSS の統一エンディアンである big endian を前提に進める.

コンパイル

make でコンパイル.

namelist.txt の設定

domain セクション

  • user.conf の各変数名に合わせた変数に user.conf で設定した値をそのまま入力.
  • 例えば, namelist.txt の mpopt は要素数 5 の変数であるが, mpopt(1) には, user.conf の "mpopt" を, mpopt(2) には, user.conf の "mpopt_gpv" をという要領で設定する.
  • draw_flag には "o" か "x" を指定し, "o" なら図示, "x" なら図示しない.
    • 各要素の意味は

      calc = 計算領域
      _gpv = 3 次元大気データの領域
      _trn = 2 次元地形データの領域
      _sst = 2 次元 SST データの領域
      _lnd = 2 次元土地利用データの領域

      を表す (CReSS の user.conf に対応する変数名).

  • 最も外側の描画領域は計算領域 (calc) でとるので, 計算領域が他の各データの中にちゃんと収まっていれば, 他のデータによる領域線は描かれない. もし, 他のデータ線が描かれている場合は, 計算領域が計算に必要な外部データの領域外に出ていることを表しており, この場合には CReSS のプリプロセッサの実行段階で異常終了する. したがって, 実際の気象の再現実験を行う場合は, 本プログラムで計算領域を確定した後, CReSS の user.conf の各変数を設定すればスムーズに計算領域を設定することが可能である.
  • draw_flag 以下の mpopt から tlat2 までは CReSS の user.conf の各値とまったく同じ値を代入すること.
  • lidx から psiz までは DCL 側の設定でそれぞれ

    lidx = ラインインデックス
    ltyp = ラインタイプ
    pidx = マーカーインデックス
    ptyp = マーカータイプ
    psiz = マーカーの大きさ

    を表す.

  • 他に,

    IWS = DCL の出力装置番号
    char_list = 任意の文字を任意の場所に記述するためのリストファイル名 (リストのフォーマットは f90 プログラム内に詳述.)
    line_num = line セクションで描く line の数
    coast = 海岸線情報
    mlit = 地図の経緯度グリッド描画間隔

line セクション

  • line_list に描画したい折れ線情報を第 1 列に経度, 第 2 列に緯度 [deg] を列挙する.
    • 追加機能に関しては f90 プログラム内を参照.
  • それ以外の指定項目は domain セクションと同じ DCL でのインデックスやタイプの設定.

デモ