<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">% 表題   AGCM5 第3部 コード解説    力学過程
%
% 履歴
\Drireki{97/03/06  堀之内武}
\Drireki{97/05/19  堀之内武} %%マイナーチェンジ
%


\section{セミインプリシット時間積分の詳細}\label{s:semiimp詳細}

\ref{ss:3bu_semiimp_abs} 節で述べたように, セミインプリシット時間積分
は2つのステップに分けられる. これを詳しく書くと以下のようになる.

\noindent
● 第1段階: $\overline{\Dvect{D}}^{t}$ の計算\label{semiimp手続き1}
\begin{equation}
\label{eq:3bu.Dsemiimp_schematic.2}
  \underline{M}\, \overline{\Dvect{D}}^{t} = \Dvect{f}
\end{equation}
という形の式（ドキュメント第2部の(2.55)式: 間違い有り）を解くのが第1段階
である. ここでは第2部の 2.4 節と同様, 太字で鉛直に離散化したベクトルを表
し, 下線で行列を表す. 水平方向に関しては, 各スペクトル係数が独立に計算され
るので離散化したことが表向きは現れない. $\Dvect{D}$ は発散で,
\begin{equation}
\label{eq:3bu.Dbar^t}
  \overline{\Dvect{D}}^{t} \equiv 
     \frac{1}{2} (\Dvect{D}^{t+\Delta t} + \Dvect{D}^{t-\Delta t})
\end{equation}
である. 行列 $\underline{M}$ は
\begin{equation}
\label{eq:3bu.M}
 \underline{M} \equiv ( 1-2\Delta t {\cal D}_H )( 1-2\Delta t {\cal D}_M )
           \underline{I}  
      - ( \Delta t )^{2}  [ \underline{W} \ \underline{h} 
           + ( 1-2\Delta t {\cal D}_H )\Dvect{G} \Dvect{C}^{T} ]
        \nabla^{2}_{\sigma}
\end{equation}
であり(第2部の(2.55)式と若干違うことに注意), ベクトル $\Dvect{f}$ は,
\begin{eqnarray}
\label{eq:3bu.f}
\Dvect{f} &amp;\equiv&amp;  ( 1-2\Delta t {\cal D}_H )( 1-\Delta t {\cal D}_M ) 
       \Dvect{D}^{t-\Delta t}
  + ( 1-2\Delta t {\cal D}_H ) \Delta t 
         \left( \DP{\Dvect{D}}{t} \right)_{NG}  
 \nonumber \\
&amp; &amp; -  \Delta t \nabla^{2}_{\sigma}     
                   \left\{  ( 1-2\Delta t {\cal D}_H ) \Dvect{\Phi}_{S} 
                          + \underline{W} 
                            \left[ ( 1-\Delta t {\cal D}_H ) 
                                    \Dvect{T}^{t-\Delta t}
                                  + \Delta t 
                                      \left( \DP{\Dvect{T}}{t}     
                                      \right)_{NG} \right]
                   \right.
 \nonumber \\
  &amp;  &amp;             \left.  \hspace*{20mm} 
                          + ( 1-2\Delta t {\cal D}_H ) \Dvect{G} 
                            \left[ \pi^{t-\Delta t} 
                                  + \Delta t
                                     \left( \DP{\pi}{t} \right)_{NG}  
                            \right]
                   \right\} . 
\end{eqnarray}
である. ここでは第2部の(2.55)式では $( 1-2\Delta t {\cal D}_H )$となって
いる $\Dvect{T}^{t-\Delta t}$ の係数を $( 1-\Delta t {\cal D}_H )$ に直
していることに注意. 
%%この間違いはプログラム中に残っている. --&gt; 直した. 97/05/19

$\underline{M}$ はサブルーチン {\tt DMTRIX} で計算され, LU分解される. 
$\underline{M}$ は時間刻みの大きさが変らない限り設定し直す必要がない.
$\Dvect{f}$ の計算と (\ref{eq:3bu.Dsemiimp_schematic.2}) を解く作業
はサブルーチン {\tt TINTGR} で行われる. 

\noindent
● 第2段階: 時間積分 \\
時間積分も {\tt TINTGR} が行う. 第1段階で $\overline{\Dvect{D}}^{t}$ が
求まったので発散の時間積分は容易である:
\begin{equation}
\label{eq:3bu.Dtintg}
 \Dvect{D}^{t+\Delta t} = 2 \overline{\Dvect{D}}^{t} - \Dvect{D}^{t-\Delta t} .
\end{equation}
他の物理量についても, $\overline{\Dvect{D}}^{t}$ と時刻 $t$ における時間
変化率の非重力波(NG)項から, $t+\Delta t$ での値が求まる:
\begin{equation}
\label{eq:3bu.Xtintg}
 {\cal X}^{t+\Delta t} = \gamma_{\cal X}^{-1} \left\{ {\cal X}^{t-\Delta t}
      + 2\Delta t \left[ \left(\frac{\partial{\cal X}}{\partial t}\right)_{NG}
                        + {\cal G}_{{\cal X}} \overline{\Dvect{D}}^{t}
                  \right] \right\} \, ,
\end{equation}
ここで,
\renewcommand{\arraystretch}{1.5}
\begin{equation}
 \begin{array}{cccccc}
  \dS {\cal X} &amp; = &amp; \dS \pi, &amp; \dS \Dvect{\zeta}, &amp; \dS \Dvect{T}, &amp;
                 \dS \Dvect{q}, \\

  \dS \left(\frac{\partial{\cal X}}{\partial t}\right)_{NG}
          &amp;=&amp;\dS \left(\frac{\partial\pi}{\partial t}\right)_{NG}, &amp;
             \dS \left(\frac{\partial\Dvect{\zeta}}{\partial t}\right)_{NG}, &amp;
             \dS \left(\frac{\partial\Dvect{T}}{\partial t}\right)_{NG}, &amp;
             \dS \left(\frac{\partial\Dvect{q}}{\partial t}\right)_{NG},\\

  \dS \gamma_{\cal X} &amp; = &amp; \dS 1, &amp; \dS (1-2\Delta t {\cal D}_M), &amp; 
         \dS (1-2\Delta t {\cal D}_H), &amp; \dS (1-2\Delta t {\cal D}_H),  \\
  \dS {\cal G}_{{\cal X}}&amp; = &amp; \dS -\Dvect{C}^T, &amp; \dS \underline{0},  &amp; 
         \dS -\underline{h}, &amp; \dS \underline{0}. 
 \end{array}
\end{equation}
\renewcommand{\arraystretch}{1}

以下の各小節で, 具体的な計算手順とプログラムソースとの対応を述べる.
ソースを見る際にはタグファイルを用いた支援システム等を利用せよ(cf.「極
楽AGCM体験」).
</pre></body></html>