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

\section{力学過程メイン {\tt DYNMCS} の流れ}


図 \ref{図:DYNMCSの流れ} に力学過程メインルーチン {\tt DYNMCS} の流れを
示す. 太文字はサブルーチン名, タイプライター文字は変数名, 変数名等のうし
ろの括弧は中身や時刻に関する補足説明である. 変数の命名法は第1章に述べた. 
内部変数の一部は変数名でなく物理量名をそのまま記してある. このうち 
$\underline{M}$ はセミインプリシット用行列 
(\ref{eq:3bu_Dsemiimp_schematic} 参照), その他の量についてはは第1, 2部を
参照のこと. 

{\tt DYNMCS} で呼ばれている {\tt GRDDYN} は時間変化率の非重力波(NG)項を
計算する. 物理過程 {\tt PHYSCS} から引き渡された時間変化項 {\tt GT*}
({\tt *} には適当な物理量名が入る) に, 時刻 $t$ のデータから計算した非線
型項等を加えたものが NG 項である. {\tt TINTGR} はセミインプリシット時間
積分(\ref{ss:3bu_semiimp_abs}の1,2とも)を行う. 以上の2つが {\tt
DYNMCS} の主な下請ルーチンであるので, 節を改めて詳しく説明する.  

{\tt GRDDYN} 以前に呼ばれるサブルーチンは必要な定数等の準備にあてられる.
{\tt DMTRIX} までは基本的に時間に依存しない. {\tt SETPHS} は外部のファイ
ルから地表面のジオポテンシャルを読み込む. 但し, 現在のところ下請のサブルー
チン {\tt RDCON} の仕様により, 最初の一回しか読み込まれないようになって
いる. なお, 地表面高度を一定とする場合はファイルを用意しなくて良い.
{\tt TINTGR} の前後, 計4つのサブルーチンは主にグリッド値とスペクトルの間
の変換を行う. その後, 水平粘性に失われたなわれた運動エネルギーを補償する
摩擦熱を行い, {\tt DYNMCS} 外に出ない量の出力({\tt HISTIN})を行う. 但し, 
ここでは配列にためておくだけで, 実際の出力はメインループの最後の方でまと
めて行われる(図 \ref{図:構造概要}). 最後の「診断」はモニターのためであり, 
時間積分には影響しない.

\begin{figure}
  \vspace*{-5mm}
  \begin{center}
   \epsfile{file=dynamics/dynmcs.kdraw_ps,height=20cm}
  \end{center}
  \caption[力学過程メインDYNMCSの流れ]{
            {\bf 力学過程メイン {\tt DYNMCS} の流れ}.
            太文字はサブルーチン名, タイプライター文字は変数名,
            変数名等のうしろの括弧は中身や時刻に関する補足説明である.
            {\tt DYNMCS} が呼ぶサブルーチンと引数を示しているが, 座標変
            数などの定数の入力はほとんど省略した. {\tt DYNMCS} の内部変
            数の一部は変数名でなく物理量名をそのまま記した.
            呼ばれているサブルーチンの中で実質的な計算をしているのは
            {\tt GRDDYN} と{\tt TINTGR} である.
            }
  \label{図:DYNMCSの流れ}
\end{figure}
