% 表題  中島健介対流モデル解説  初期条件の設定
%
% 履歴  1998/07/03  小高正嗣
%       1999/06/14  小高正嗣
%
\subsection{初期条件の設定}

初期条件を設定する. パラメータ {\tt TIME0} を参照し, {\tt TIME0 = 0.}
が真であるなら {\tt DAINIT} を呼ぶ. 偽りであれば {\tt FLREAD} を呼び
既に存在するデータファイルを読み込みそれを初期値とする.

\subsubsection{DAINIT}

\begin{enumerate}
  \item 機能
    \begin{quote}
      新規初期条件を設定する.
    \end{quote}
  \item パラメータ
    \begin{quote}
      \begin{tabular}{lllp{10cm}}
        {\tt IROUT} & (整数) & & 時間方向次元 \\
        {\tt TIME}  & (実数) & & 時刻(単位: 秒) \\
        {\tt U}     & (実数) & {\tt ( -2:NXB, -2:NZB, NROT )} & 風速 x 成分 \\
        {\tt V}     & (実数) & {\tt ( -2:NXB, -2:NZB, NROT )} & 風速 y 成分 \\
        {\tt W}     & (実数) & {\tt ( -2:NXB, -2:NZB, NROT )} & 風速 z 成分 \\
        {\tt TPOT}  & (実数) & {\tt ( -2:NXB, -2:NZB, NROT )} & 温位 \\
        {\tt QVAP}  & (実数) & {\tt ( -2:NXB, -2:NZB, NROT )} & 水蒸気混合比 \\
        {\tt QCLW}  & (実数) & {\tt ( -2:NXB, -2:NZB, NROT )} & 雲水混合比 \\
        {\tt QRAI}  & (実数) & {\tt ( -2:NXB, -2:NZB, NROT )} & 雨水混合比 \\
        {\tt CDTURB}& (実数) & {\tt ( -2:NXB, -2:NZB, NROT )} & 乱流拡散係数 \\
        {\tt PRES0} & (実数) & {\tt ( -2:NZB )} & 基本場の圧力 \\
        {\tt DENS0} & (実数) & {\tt ( -2:NZB )} & 基本場の密度 \\
        {\tt TEMP0} & (実数) & {\tt ( -2:NZB )} & 基本場の温度 \\
        {\tt TPOT0} & (実数) & {\tt ( -2:NZB )} & 基本場の温位 \\
        {\tt PPAI0} & (実数) & {\tt ( -2:NZB )} & 基本場の無次元圧力関数 \\
        {\tt QVAP0} & (実数) & {\tt ( -2:NZB )} & 基本場の水蒸気混合比 \\
        {\tt RVAP0} & (実数) & {\tt ( -2:NZB )} &  \\
        {\tt ZGRID} & (実数) & {\tt ( -2:NZB )} & 鉛直方向格子点座標 \\
        {\tt RMVAP} & (実数) & & 水蒸気分子量 \\
        {\tt NX   } & (整数) & & 水平方向格子点数 \\
        {\tt NZ   } & (整数) & & 鉛直方向格子点数 \\
        {\tt NXB  } & (整数) & & 水平方向次元数 {\tt (=nx+2)} \\
        {\tt NZB  } & (整数) & & 鉛直方向次元数 {\tt (=nz+2)} \\
        {\tt NROT}  & (整数) & & 時間方向次元数 
      \end{tabular}
    \end{quote}
  \item 解説

    \begin{enumerate}
      \item 引数 {\tt IROUT} はデフォルトで {\tt 1} を与える.
      \item 引数 {\tt TIME} は {\tt 0.0D} を出力する.
      \item サブルーチン {\tt ACLEAR} を呼び, 全ての予報変数を初期化(0)する.
      \item {\tt @T1\{CNUM(IRUN)\}.RAND.DATA} から乱数を読み込んで,
        {\tt TPOT} の初期値を与える. ここではある高度に最大振幅 0.3 K
        の温度擾乱を与えている.
      \item {\tt QVAP} の初期値を与える. 外部関数 {\tt EVSAT}を呼んで
        初期温度分布から飽和蒸気圧を計算する. これに外部関数 {\tt
        HUMID} で計算した鉛直相対湿度分布を掛けて混合比の初期値を計算する.
      \item 場合によっては局所的に {\tt QVAP} を飽和させておく. これは上の
        ルーチンで {\tt HUMID = 1.0} とし計算する.
      \item 境界条件をサブルーチン {\tt BOUND} で設定する.
      \end{enumerate}
\end{enumerate}

\subsubsection{ACLEAR}

\begin{enumerate}
  \item 機能
    \begin{quote}
      予報変数の初期化を行なう.
    \end{quote}
  \item パラメータ
    \begin{quote}
      \begin{tabular}{lllp{10cm}}
        {\tt Q}     & (実数) & {\tt ( -2:NXB, -2:NZB, NROT )} & 予報変数 \\
        {\tt NXB  } & (整数) & & 水平方向次元数 {\tt (=nx+2)} \\
        {\tt NZB  } & (整数) & & 鉛直方向次元数 {\tt (=nz+2)} \\
        {\tt NROT}  & (整数) & & 時間方向次元数 \\
        {\tt IR}    & (整数) & & 時間方向次元数用ループ引数
      \end{tabular}
    \end{quote}
  \item 解説

    引数 {\tt Q} の値を全て 0 にする.
\end{enumerate}

\subsubsection{EVSAT}

\begin{enumerate}
  \item 機能
    \begin{quote}
      飽和蒸気圧を計算する.
    \end{quote}
  \item パラメータ
    \begin{quote}
      \begin{tabular}{llp{10cm}}
        {\tt TT}    & (実数) & 温度
      \end{tabular}
    \end{quote}
  \item 解説

    温度 $T$ を与えた場合の飽和蒸気圧を
    \[
      p_{s} = p_{s0} \times \exp 
      \left[ C \frac{ T - T_{0} }{ T - T_{1}} \right]
    \]
    に従い計算する. ここで $p_{s0}=611$hPa, $C=17.27$, $T_{0}=273$K,
    $T_{1}=35.86$K とする. これらのパラメータはこの関数内部で定義され
    ている.

    なおこのルーチンは雲物理過程の計算においても呼ばれる. 
\end{enumerate}

\subsubsection{HUMID}

\begin{enumerate}
  \item 機能
    \begin{quote}
      高度 $z$ の相対湿度を与える.
    \end{quote}
  \item パラメータ
    \begin{quote}
      \begin{tabular}{llp{10cm}}
        {\tt ZZ}    & (実数) & 高度温度
      \end{tabular}
    \end{quote}
  \item 解説

    高度 $z$ における相対湿度を与える. 相対湿度分布(\%)はこの関数内部
    で風の z 成分を評価する高度において定義される.

\end{enumerate}

\subsubsection{BOUND}

\begin{enumerate}
  \item 機能
    \begin{quote}
      予報変数の境界条件を与える.
    \end{quote}
  \item パラメータ
    \begin{quote}
      \begin{tabular}{lllp{10cm}}
        {\tt Q}    & (実数) & {\tt ( -2:NXB, -2:NZB, NROT )} & 予報変数 \\
        {\tt NX  } & (整数) & & 水平方向格子点数 \\
        {\tt NZ  } & (整数) & & 鉛直方向格子点数 \\
        {\tt NXB } & (整数) & & 水平方向次元数 {\tt (=nx+2)} \\
        {\tt NZB } & (整数) & & 鉛直方向次元数 {\tt (=nz+2)} \\
        {\tt NROT} & (整数) & & 時間方向次元数 \\
        {\tt ISZ}  & (整数) & & 境界条件指定パラメータ 1 \\
        {\tt ICZ}  & (整数) & & 境界条件指定パラメータ 2 \\
        {\tt IROUT}& (整数) & & 時間方向次元
      \end{tabular}
    \end{quote}
  \item 解説

    予報変数の境界条件を与える. 水平方向には周期境界とする. 鉛直方向の
    境界条件は引数 {\tt ISZ=1}, {\tt ICZ=1} の場合は壁で対称, {\tt
    ISZ=-1}, {\tt ICZ=0} の場合は反対称とする.

\end{enumerate}

\subsubsection{FLREAD}

\begin{enumerate}
  \item 機能
    \begin{quote}
      入力データファイルを読み込んで予報変数の初期条件を与える.
    \end{quote}
  \item パラメータ
    \begin{quote}
      \begin{tabular}{lllp{10cm}}
        {\tt TIME0} & (整数) & & 計算開始時刻(単位: 秒) \\
        {\tt IREAD} & (整数) & & 時間方向次元 \\
        {\tt TIME}  & (実数) & & 時刻(単位: 秒) \\
        {\tt U}     & (実数) & {\tt ( -2:NXB, -2:NZB, NROT )} & 風速 x 成分 \\
        {\tt V}     & (実数) & {\tt ( -2:NXB, -2:NZB, NROT )} & 風速 y 成分 \\
        {\tt W}     & (実数) & {\tt ( -2:NXB, -2:NZB, NROT )} & 風速 z 成分 \\
        {\tt TPOT}  & (実数) & {\tt ( -2:NXB, -2:NZB, NROT )} & 温位 \\
        {\tt QVAP}  & (実数) & {\tt ( -2:NXB, -2:NZB, NROT )} & 水蒸気混合比 \\
        {\tt QCLW}  & (実数) & {\tt ( -2:NXB, -2:NZB, NROT )} & 雲水混合比 \\
        {\tt QRAI}  & (実数) & {\tt ( -2:NXB, -2:NZB, NROT )} & 雨水混合比 \\
        {\tt CDTURB}& (実数) & {\tt ( -2:NXB, -2:NZB, NROT )} & 乱流拡散係数 \\
        {\tt PRES0} & (実数) & {\tt ( -2:NZB )} & 基本場の圧力 \\
        {\tt DENS0} & (実数) & {\tt ( -2:NZB )} & 基本場の密度 \\
        {\tt TEMP0} & (実数) & {\tt ( -2:NZB )} & 基本場の温度 \\
        {\tt TPOT0} & (実数) & {\tt ( -2:NZB )} & 基本場の温位 \\
        {\tt PPAI0} & (実数) & {\tt ( -2:NZB )} & 基本場の無次元圧力関数 \\
        {\tt QVAP0} & (実数) & {\tt ( -2:NZB )} & 基本場の水蒸気混合比 \\
        {\tt RVAP0} & (実数) & {\tt ( -2:NZB )} &  \\
        {\tt ZGRID} & (実数) & {\tt ( -2:NZB )} & 鉛直方向格子点座標 \\
        {\tt RMVAP} & (実数) & & 水蒸気分子量 \\
        {\tt NX   } & (整数) & & 水平方向格子点数 \\
        {\tt NZ   } & (整数) & & 鉛直方向格子点数 \\
        {\tt NXB  } & (整数) & & 水平方向次元数 {\tt (=nx+2)} \\
        {\tt NZB  } & (整数) & & 鉛直方向次元数 {\tt (=nz+2)} \\
        {\tt NROT}  & (整数) & & 時間方向次元数 
      \end{tabular}
    \end{quote}
  \item 解説
    \begin{enumerate}
    \item {\tt IREAD} はデフォルトで 1 を入力, {\tt TIME} は {\tt
      TIME0} と同じ値が出力される.
    \item 装置番号 31 から 39 のデータファイル({\tt FOPEN} で定義)から
      各予報変数を読み込む. 境界条件は {\tt BOUND} で設定する.
    \end{enumerate}
\end{enumerate}
