% 表題   AGCM5 第3部 コード解説    力学過程
%
% 履歴
\Drireki{97/03/06  堀之内武}
%

\subsection{非重力波項の計算 (サブルーチン {\tt GRDDYN})}\label{ss:GRDDYN}


非重力波(NG)項はサブルーチン {\tt GRDDYN} で計算される.

NG項はドキュメント第2部の式 (2.38)$\sim$(2.41), (2.9), (2.22) で与えられ
る. これらを再掲し, 各項の下にモデル中の変数名を記す. 以下で, 数式と対応
させて書く場合のモデル変数の表記法は表 \ref{tbl:ArrayIOnotat} に従って統一
する.
\begin{equation}
 \label{eq:3bu.PI_NG}
  \left( \DP{\pi}{t} \right)_{NG}
   =   \underbrace{ Z_{k} }_{\Oarray{GTPI}}
\end{equation}

\begin{equation}
 \label{eq:3bu.D_NG}
  \left( \DP{D}{t} \right)^{NG}
   =   \frac{\partial}{a(1-\mu^{2})\partial\lambda}
            \underbrace{(\mbox{\sl UA})_{k}}_{\Oarray{GTUA}}
          + \frac{\partial}{a\partial\mu} 
            \underbrace{(\mbox{\sl VA})_{k}}_{\Oarray{GTVA}}
          - \nabla^{2}_{\sigma} 
               \underbrace{\left[ (\mbox{\sl KE})_{k} 
                    + \sum_{k=1}^{K} W_{kl} ( T_{v,l}-T_{l} ) 
               \right]}_{\Oarray{GTKE}}
\end{equation}

\begin{equation}
 \label{eq:3bu.zeta_NG}
  \left( \DP{\zeta}{t} \right)^{NG}
   =   \frac{\partial}{a(1-\mu^{2})\partial\lambda}
            \underbrace{(\mbox{\sl VA})_{k}}_{\Oarray{GTVA}}
          - \frac{\partial}{a\partial\mu} 
            \underbrace{(\mbox{\sl UA})_{k}}_{\Oarray{GTUA}}
\end{equation}

\begin{equation}
 \label{eq:3bu.T_NG}
  \left( \DP{T_{k}}{t} \right)^{NG} 
      \equiv   -    \frac{\partial}{a(1-\mu^{2})\partial\lambda}
               \underbrace{ (U_k T'_k) }_{\Oarray{GTUT}}
          - \frac{\partial}{a\partial\mu}
               \underbrace{ (V_k T'_k) }_{\Oarray{GTVT}}
          + \underbrace{ H_k }_{\Oarray{GTH}}
\end{equation}

\begin{equation}
 \label{eq:3bu.q_NG}
  \left( \DP{q_{k}}{t} \right)^{NG} 
      \equiv   -    \frac{\partial}{a(1-\mu^{2})\partial\lambda}
               \underbrace{ (U_k q'_k) }_{\Oarray{GTUQ}}
          - \frac{\partial}{a\partial\mu}
               \underbrace{ (V_k q'_k) }_{\Oarray{GTVQ}}
          + \underbrace{ R_{k} }_{\Oarray{GTR}}
\end{equation}

\begin{table}
 \begin{center}
  \begin{tabular}{|c|l|}\hline
    当該サブルーチンからの出力変数(入力に上書きする場合を含む)の出力時 &
       $\Oarray{GTU}$ \\  \hline 
    当該サブルーチン内の作業変数または, 入/出力変数が入/出力時の値と違う
       場合 & $\Warray{GTU}$ \\ \hline
    当該サブルーチンへの入力変数 & $\Iarray{GTU}$ \\  \hline
    当該サブルーチンへの入力に上書きして出力される変数の入力時 &
       $\IOarray{GTU}$ \\  \hline
  \end{tabular}
 \end{center}
 \caption[数式対応時のモデル変数の表記法]{数式と対応させて書く場合の
   モデル変数の表記法. 変数名 {\tt GTU} の場合を例にして書く. 
   表の上二行(黒)は当該サブルーチン内で設定/変更された変数を表し, 下二
   行(灰)は引数として入力された変数を表す. 入力された変数もサブルーチン
   内で値が書き変わると色が黒くなる. 
   本文中で入力変数の下に付した文字列は, 値を設定したサブルーチン名を示す.
   作業変数等の下の文字列は, 値を設定する下請サブルーチンを示す.}
 \label{tbl:ArrayIOnotat}
\end{table}


\clearpage
\renewcommand{\arraystretch}{0.5}

{\tt GRDDYN} の{\bf 出力変数}は, 以上の10個の時間変化項と, 2つの出力変数
\begin{eqnarray}
  \OarrayS{GSIGD}{PSDOT} &\equiv& \dot{\sigma}, \nonumber \\
  \Oarray{GPID}  &\equiv& 
      \DP{\pi}{t} + \sum_{l=1}^{K} \Dvect{v}_{l}\cdot\nabla\pi \Delta\sigma_{l}
      = - \sum_{l=1}^{K} \Dvect{D}_{l} \Delta\sigma_{l}, \nonumber 
\end{eqnarray}
である\footnote{{\tt GSIGD} は当然だろうが {\tt GPID} を出力する意味は良
くわからない. $\DP{\pi}{t}$ ではないことに注意.
}. 

{\tt GRDDYN} の{\bf 入力変数}は時刻 $t$ でのグリッド値 
$\Iarray{GA\,\lower.4ex\hbox{*}}$ \,($\ast$ = 変数名) と,物理過程
{\tt PHYSCS} で計算された $u$, $v$, $T$, $q$ の時間変化項(それぞれ 
$\IOarray{GTUA}$, $\IOarray{GTVA}$, $\IOarray{GTH}$, $\IOarray{GTR}$ に
格納; これらは {\tt PHYSCS} の中では {\tt GTU, GTV, GTT, GTQ} という名前
である)と, 水平・鉛直離散化や熱力学に関する定数配列である. 

次に時間変化項の具体的な中身とモデル変数の対応を見ることにする. 但し
\ref{ss:変数命名法} 節の命名規則から明らかなものは省略する. 第2部の式 
(2.10), (2.12), (2.42), (2.23) より,
\vspace*{2ex}
\begin{equation}
 \label{eq:3bu.GTPI}
 \underbrace{ Z_{k} }_{\Oarray{GTPI}}
   =   - \underbrace{ \sum_{k=1}^{K} \Dvect{v}_{k} \cdot 
          \overbrace{ \nabla \pi  }^{\!\!\!\!\!\!\!\!\!\!\!\!
          \mbox{\scriptsize (\ref{eq:3bu.GTUA}),(\ref{eq:3bu.GTVA})参照}
          \!\!\!\!\!\!\!\!\!\!\!\!\!\!\!\!\!\!}
         \Delta  \sigma_{k} }_{\WarrayS{GSUMPA$_{k=1}$}{PSDOT}}
\end{equation}

\begin{eqnarray}
 \label{eq:3bu.GTUA}
 \underbrace{(\mbox{\sl UA})_k}_{\Oarray{GTUA}}
   & = & ( \zeta_k + \underbrace{f}_{\!\!\!\!\!\!\!\!\!\!\!\!\!\!\!\!\!\IarrayS{CORIOL}{DSETC}\!\!\!\!\!\!\!\!\!\!} ) V_k 
             - \frac{1}{2 \Delta \sigma_k} 
             [   \dot{\sigma}_{k-1/2} ( U_{k-1} - U_k   )
               + \dot{\sigma}_{k+1/2} ( U_k   - U_{k+1} ) ]
           \nonumber \\
   &   &     - C_{p} 
  \underbrace{\hat{\kappa}_k}_{
         \!\!\!\!\!\!\!\!\!\!\!\!\IarrayS{SKAPPA}{DSETV}\!\!\!\!\!\!\!\!\!\!\!}
       \overbrace{T_{v,k}'}^{
                 \!\!\!\!\!\!\!\!\Warray{GATVED}\!\!\!\!\!\!\!\!}
                 \frac{1}{a} 
     \underbrace{\frac{\partial \pi}{\partial \lambda}}_{
                 \!\!\!\!\!\!\!\!\IarrayS{GAPIX}{PIXPIY}\!\!\!\!\!\!}
             + \underbrace{F_{\lambda k}}_{\!\!\!\!\!\IOarrayS{GTUA}{PHYSCS}\!\!\!\!\!}
       \!\!\! \cos \varphi \, ,
\end{eqnarray}

\begin{eqnarray}
 \label{eq:3bu.GTVA}
 \underbrace{(\mbox{\sl VA})_k}_{\Oarray{GTVA}}
   & = & -( \zeta_k + \underbrace{f}_{\!\!\!\!\!\!\!\!\!\!\!\!\!\!\!\!\!\IarrayS{CORIOL}{DSETC}\!\!\!\!\!\!\!\!\!\!} ) U_k 
             - \frac{1}{2 \Delta \sigma_k} 
             [   \dot{\sigma}_{k-1/2} ( V_{k-1} - V_k   )
               + \dot{\sigma}_{k+1/2} ( V_k   - V_{k+1} ) ]
           \nonumber \\
   &   &     - C_{p} 
  \underbrace{\hat{\kappa}_k}_{
         \!\!\!\!\!\!\!\!\!\!\!\!\IarrayS{SKAPPA}{DSETV}\!\!\!\!\!\!\!\!\!\!\!}
       \overbrace{T_{v,k}'}^{
                 \!\!\!\!\!\!\!\!\Warray{GATVED}\!\!\!\!\!\!\!\!}
                 \frac{1}{a} 
     \underbrace{(1-\mu^{2})\frac{\partial \pi}{\partial \mu}}_{
                  \IarrayS{GAPIY}{PIXPIY}}
             + \underbrace{F_{\varphi k}}_{\!\!\!\!\!\IOarrayS{GTVA}{PHYSCS}\!\!\!\!\!}
     \!\!\!  \cos \varphi \, , \nonumber 
\end{eqnarray}

\begin{equation}
 \label{eq:3bu.GTKE}
 \underbrace{ (\mbox{\sl KE})_{k} + \sum_{k=1}^{K}W_{kl} (T_{v,l}-T_{l})
   }_{\Oarray{GTKE}} \,\,\, = \,\,\,
      \frac{U^{2}_k+V^{2}_k}{2(1-\mu^{2})} \,\,
      + \underbrace{\sum_{k=1}^{K} W_{kl} (T_{v,l}-T_{l})}_{\!\!\!\!
      \mbox{\footnotesize {\tt GHYDRO}を呼ぶと $W_{kl}$がかかる}\!\!\!\!\!\!} ,
\end{equation}

\clearpage
\begin{eqnarray}
 \label{eq:3bu.GTH}
\underbrace{ H_k }_{\Oarray{GTH}}
     & = & \underbrace{T_{k}^{\prime}}_{
                   \!\!\!\!\!\!\!\!\Warray{GDTED}\!\!\!\!\!\!\!\!} D_{k}
           + \underbrace{\frac{Q_k}{c_p}}_{
                    \!\!\!\!\IOarrayS{GTH}{PHYSCS}\!\!\!\!} \nonumber \\
     &   & - \; \frac{1}{\Delta \sigma_{k}} 
             [   \dot{\sigma}_{k-1/2} ( 
                    \underbrace{\hat{T^{\prime}}_{k-1/2}}_{
                    \!\!\!\!\Warray{GATEDM}}
                  - \underbrace{\hat{T^{\prime}_{k}}}_{
                    \!\!\!\Warray{GATED}\!\!\!\!\!\!\!\!\!}  )
               + \dot{\sigma}_{k+1/2} (T^{\prime}_{k}
                      - \hat{T^{\prime}}_{k+1/2}   ) ]
               \nonumber \\
     &   & - \; \frac{1}{\Delta \sigma_{k}} 
             [   \underbrace{ \dot{\sigma}^{NG}_{k-1/2}}_{
                        \WarrayS{GSIGDA}{PSDOT}} 
                    (  \underbrace{\hat{\bar{T}}_{k-1/2}}_{
                        \!\!\!\IarrayS{TBARM}{DSETV}\!\!\!\!\!} 
                     -  \underbrace{\bar{T}_{k}}_{
                        \!\!\!\!\!\!\IarrayS{TBAR}{DSETV}\!\!\!\!\!\!\!\!}   )
               + \dot{\sigma}^{NG}_{k+1/2} ( \bar{T}_{k}  
                                         - \hat{\bar{T}}_{k+1/2} ) ]
               \nonumber \\
     &   & + \underbrace{\hat{\kappa}_k}_{
                      \!\!\!\!\!\!\!\!\IarrayS{SKAPPA}{DSETV}\!\!\!\!\!\!\!\!}
             \! T_{v,k} \!\!\! \underbrace{\Dvect{v}_{k} \cdot \nabla \pi}_{
                    \WarrayS{GAPADV}{PSDOT}}
               \nonumber \\
     &   & - \frac{1}{\Delta \sigma_{k} } 
             \underbrace{\alpha_{k}}_{\!\!\!\!\!\!\!\!\!\!\!\!
                 \IarrayS{SALPHA}{DSETV}\!\!\!\!\!\!\!\!\!\!\!\!}
             T_{v,k}
             \underbrace{ \sum_{l=k}^{K} \Dvect{v}_{l} \cdot \nabla \pi 
               \Delta \sigma_{l}}_{\WarrayS{GSUMPA}{PSDOT}}
           - \frac{1}{\Delta \sigma_{k} }
             \underbrace{\beta_{k}}_{\!\!\!\!\!\!\!\!\!\!\!\!
                 \IarrayS{SBETA}{DSETV}\!\!\!\!\!\!\!\!\!\!\!\!}
              T_{v,k}
             \underbrace{ \sum_{l=k+1}^{K} \Dvect{v}_{l} \cdot \nabla \pi 
               \Delta \sigma_{l}}_{\WarrayS{GSUMPA}{PSDOT}}
               \nonumber \\
     &   & - \frac{1}{\Delta \sigma_{k} }\alpha_{k} 
             \underbrace{ T'_{v,k}}_{\!\!\!\!\!\!\!\!\!\!\!\!\!\!\!\!\!\!\!
                 \Warray{GATVED}\!\!\!\!\!\!\!\!}
             \underbrace{ \sum_{l=k}^{K}
                          D_l  \Delta \sigma_{l}}_{\WarrayS{GSUMPD}{PSDOT}}
           - \frac{1}{\Delta \sigma_{k} } \beta_{k}
             \underbrace{ T'_{v,k}}_{\!\!\!\!\!\!\!\!\!\!\!\!\!\!\!\!\!\!\!
                 \Warray{GATVED}\!\!\!\!\!}
             \underbrace{ \sum_{l=k+1}^{K}
                          D_l  \Delta \sigma_{l}}_{\WarrayS{GSUMPD}{PSDOT}}\, .
\end{eqnarray}

ここで,

\begin{equation}
  \underbrace{ \dot{\sigma}^{NG}_{k-1/2}}_{\WarrayS{GSIGDA}{PSDOT}} 
 = - \sigma_{k-1/2} 
     \underbrace{ \left( \DP{\pi}{t} \right)^{NG} }_{\!\!\!\!\!\!\!\!\!\!\!\!
   \!\!\!\!\!\!\!\!\WarrayS{{\footnotesize $(-1)\times$}GSUMPA$_{k=1}$}{PSDOT}
              \!\!\!\!\!\!\!\!\!\!\!\!}
   - \underbrace{ \sum_{l=k}^{K} \Dvect{v}_{l} \cdot \nabla \pi 
              \Delta \sigma_{l}}_{\WarrayS{GSUMPA}{PSDOT}}  \, .
\end{equation}

そして,

\begin{eqnarray}
 \label{eq:3bu.GTR}
\underbrace{R_k}_{\Oarray{GTR}}  &=&  q_k D_k \: +  
          \underbrace{R_{\mbox{\scriptsize PHYSCS},k}}_{
             \IOarrayS{GTR}{PHYSCS}}  \nonumber \\
     & &  - \frac{1}{2 \Delta \sigma_k} 
             [   \dot{\sigma}_{k-1/2} ( q_{k-1} - q_k   )
               + \dot{\sigma}_{k+1/2} ( q_k   - q_{k+1} ) ] \, .
\end{eqnarray}

\renewcommand{\arraystretch}{1}
