% 表題   Nakajima et al.,1992 test program  コード解説 -- サブルーチン
%
% 履歴
%\Drireki{2012/11/07 大西 将徳}
%\Drireki{2012/11/07 大西 将徳}
%
\section{サブルーチン}
\label{ss:変数命名法}

モデル中のサブルーチンについて述べる。

\subsection{calc\_AdiabLapse()}

湿潤断熱減率で温度、フラックスを計算するサブルーチン
温度は4段のルンゲクッタ法、光学的厚さは台形法を用いて鉛直積分を行う。
%
\vspace{-2ex}
\begin{verbatim}
calc_AdiabLapse( GasRUniv, StB, LatentHeat, Grav, MolWtDry, MolWtWet,          
    AbsCoefDryCom, AbsCoefWetCom, p_v_0, CpWet, CpDry,
    eps, kmax, z_Press,                                           
    knum, z_Temp, z_OptDep, z_RadLUwFlux, z_RadLDwFlux, z_FluxConv )
\end{verbatim} \vspace{-2ex}
%

%\vspace{-3ex}
\begin{itemize}
\item 引数
  \begin{itemize}
   \item {\tt GasRUniv \ \ \ \ }: 気体定数
   \item {\tt StB \ \ \ \ \ \ \ }: ステファンボルツマン定数
   \item {\tt LatentHeat \ \ }: 潜熱
   \item {\tt Grav \ \ \ \ \ }: 重力加速度
   \item {\tt MolWtDry \ \ }: 分子質量(非凝結性気体)
   \item {\tt MolWtWet \ \ }: 分子質量(凝結性気体)
   \item {\tt AbsCoefWetCom \ }: 吸収係数(非凝結性気体)
   \item {\tt AbsCoefDryCom \ }: 吸収係数(凝結性気体)
   \item {\tt pv0 \ \ \ \ \ \ \ \ \ }: 飽和蒸気圧曲線の係数
   \item {\tt CpDry \ \ \ \ \ \ \ }: 定圧モル比熱(非凝結性気体)
   \item {\tt CpWet \ \ \ \ \ \ \ }: 定圧モル比熱(凝結性気体)
   \item {\tt eps}: 計算精度(温度、光学的圧さ、フラックス)
   \item {\tt kmax}: 鉛直グリッド数
   \item {\tt z\_Press \ \ \ \ \ }: 圧力
   \item {\tt z\_Temp \ \ \ \ \ \ }: 気温
   \item {\tt z\_OptDep}: 光学的厚さ
   \item {\tt z\_RadLUwFlux}: 上向き長波フラックス
   \item {\tt z\_RadLDwFlux}: 下向き長波フラックス
   \item {\tt z\_FluxConv}: Flux Convergence
  \end{itemize}

\vspace{-0ex}
\end{itemize}

\subsection{calc\_RaiseTemp()}

Flux Convergence の値と大気の熱容量から、成層圏の温度を上昇させるサブルーチン。温度の上昇は下式による。

\begin{eqnarray}
\Delta T = \frac{mg}{c_{p}} \frac{FluxConv.(k)}{(p(k+1) - p(k))} \delta t
\end{eqnarray}

%
%\vspace{-2ex}
\begin{verbatim}
calc_RaiseTemp( GasRUniv, StB, LatentHeat, Grav, MolWtDry, MolWtWet,
    AbsCoefDryCom, AbsCoefWetCom, p_v_0, CpWet, CpDry,
    eps, DelTime, kmax, ktp, knum, z_Press,
    z_Temp, z_OptDep, z_RadLUwFlux, z_RadLDwFlux, z_FluxConv )
\end{verbatim} \vspace{-2ex}
%

%\vspace{-3ex}
\begin{itemize}
\item 引数

  \begin{itemize}
   \item {\tt GasRUniv \ \ \ \ }: 気体定数
   \item {\tt StB \ \ \ \ \ \ \ }: ステファンボルツマン定数
   \item {\tt LatentHeat \ \ }: 潜熱
   \item {\tt Grav \ \ \ \ \ }: 重力加速度
   \item {\tt MolWtDry \ \ }: 分子質量(非凝結性気体)
   \item {\tt MolWtWet \ \ }: 分子質量(凝結性気体)
   \item {\tt AbsCoefWetCom \ }: 吸収係数(非凝結性気体)
   \item {\tt AbsCoefDryCom \ }: 吸収係数(凝結性気体)
   \item {\tt p\_v\_0 \ \ \ \ \ \ \ }: 飽和蒸気圧曲線の係数
   \item {\tt CpDry \ \ \ \ \ \ \ }: 定圧モル比熱(非凝結性気体)
   \item {\tt CpWet \ \ \ \ \ \ \ }: 定圧モル比熱(凝結性気体)
   \item {\tt eps}: 計算精度(温度、光学的圧さ、フラックス)
   \item {\tt DelTime}: タイムステップ
   \item {\tt kmax}: 鉛直グリッド数
   \item {\tt ktp}: 対流圏界面のグリッド
   \item {\tt knum}: 積分計算のための作業変数
   \item {\tt z\_Press \ \ \ \ \ }: 圧力
   \item {\tt z\_Temp \ \ \ \ \ \ }: 気温
   \item {\tt z\_OptDep}: 光学的厚さ
   \item {\tt z\_RadLUwFlux}: 上向き長波フラックス
   \item {\tt z\_RadLDwFlux}: 下向き長波フラックス
   \item {\tt z\_FluxConv}: Flux Convergence
  \end{itemize}

\vspace{-0ex}
\end{itemize}

\subsection{calc\_Tropopause()}

対流圏界面の計算をするためのサブルーチン。
Flux Convergenceが負から正に変化するグリッド(地表から上空へ向かって)を挟んで、上下の層の中に対流圏界面が存在する。その上下の層をそれぞれ2つに分割し、新しくできた4つの層について、改めてFlux Convergenceが負から正に変化するグリッドを探す。この操作を繰り返し、Flux Convergenceが負から正に変わるグリッドの上下の層のFlux Convergenceが十分小さくなったとき、そのグリッドを対流圏界面とする。

%
%\vspace{-2ex}
\begin{verbatim}
calc_Tropopause( GasRUniv, StB, LatentHeat, Grav, MolWtDry, MolWtWet,
    AbsCoefDryCom, AbsCoefWetCom, p_v_0, eps, kmax,
    z_Press, z_Temp, z_OptDep, z_RadLUwFlux, z_RadLDwFlux, z_FluxConv,
    val_tropo )
\end{verbatim} \vspace{-2ex}
%

%\vspace{-3ex}
\begin{itemize}
\item 引数

  \begin{itemize}
   \item {\tt GasRUniv \ \ \ \ }: 気体定数
   \item {\tt StB \ \ \ \ \ \ \ }: ステファンボルツマン定数
   \item {\tt LatentHeat \ \ }: 潜熱
   \item {\tt Grav \ \ \ \ \ }: 重力加速度
   \item {\tt MolWtDry \ \ }: 分子質量(非凝結性気体)
   \item {\tt MolWtWet \ \ }: 分子質量(凝結性気体)
   \item {\tt AbsCoefWetCom \ }: 吸収係数(非凝結性気体)
   \item {\tt AbsCoefDryCom \ }: 吸収係数(凝結性気体)
   \item {\tt p\_v\_0 \ \ \ \ \ \ \ }: 飽和蒸気圧曲線の係数
   \item {\tt CpDry \ \ \ \ \ \ \ }: 定圧モル比熱(非凝結性気体)
   \item {\tt CpWet \ \ \ \ \ \ \ }: 定圧モル比熱(凝結性気体)
   \item {\tt eps}: 計算精度(温度、光学的圧さ、フラックス)
   \item {\tt kmax}: 鉛直グリッド数
   \item {\tt z\_Press \ \ \ \ \ }: 圧力
   \item {\tt z\_Temp \ \ \ \ \ \ }: 気温
   \item {\tt z\_OptDep}: 光学的厚さ
   \item {\tt z\_RadLUwFlux}: 上向き長波フラックス
   \item {\tt z\_RadLDwFlux}: 下向き長波フラックス
   \item {\tt z\_FluxConv}: Flux Convergence
   \item {\tt val\_tropo}: 対流圏界面の物理量(val$\_$tropo(1,2,3,4,5,6,7)=(圧力, 温度, 光学的厚さ, 上向きフラックス, 下向きフラックス, 上の層のFlux Convergence, 下の層のFlux Convergence))
  \end{itemize}

\vspace{-0ex}
\end{itemize}