%
%   森川のメモ書き
%
%   履歴 2004/06/28 森川 靖大
%        2004/07/02 森川 靖大  2004/07/01 GCM セミナーにて
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%             Style  Setting             %%%%%%%%
\documentclass[a4j,12pt,openbib,oneside]{jarticle}
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%             Package Include            %%%%%%%%
\usepackage{Dennou6}		% 電脳スタイル ver 6
\usepackage{ascmac}
\usepackage{tabularx}
\usepackage{graphicx}
\usepackage{amssymb}
\usepackage{amsmath}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%            PageStyle Setting           %%%%%%%%
\pagestyle{Dmyheadings}	% カスタマイズ可能なスタイル

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%             Text Start                 %%%%%%%%
\begin{document}


\section*{
■ 変数命名法}

以下では, DCPAM における変数名法の草案を述べる.
基本的には AGCM5 を踏襲するものの, spmodel を利用することから,
spmodel で書いた時に分かりやすいようなものにする.

例: xxx\_A\_t

\begin{Dlist}[$\bullet$]
 %\setlength{\itemsep}{-5pt}	% Space between \item
 \item[$\bullet$]
		xxx\_ : グリッド値かスペクトル値かを示す.
		 (例: xya\_ はグリッド値, wa\_ はスペクトル)
 \item[$\bullet$]
		 A\_： 物理量を示す.
		 (例: 東西風速 VLon, 南北風速 VLat, 渦度 Vor, 発散 Div,
		      気温 Temp, 仮温度 TempV, 地表面気圧 Ps, ln(ps) LnPs,
		      比湿 QVap)
 \item[$\bullet$]
		 t ： 時間レベルを示す.
		 (例: t+Δt A , t-Δt B)
		            ↑ After  ↑ Before
\end{Dlist}



\section*{
■ DCPAM のメインプログラムの流れ}

\subsection*{
□ 全体構造の概要 (AGCM5との比較)}

\subsubsection*{
・ AGCM5}
   \begin{verbatim}
   初期化部分─┬SETPAR 実験パラメタ設定 (NAMELIST 利用)
      │       ├SETCOR 座標値設定
      ｜       ├RDSTRT 初期値読み込み
      ｜       └SETTIM 時刻登録
      ↓
   メインループ┬ADVSTP 時間制御
         ↑    ｜
         ｜    ├PHYSCS 物理過程 (「調節」以外)
         ｜    ├DYNMCS 力学過程
         ｜    ├PADJST 物理過程 (調節過程)
         ｜    ├TFILT  時間フィルタ
         ｜    ｜       ※ これで t+Δt, t の値を t, t-Δt へ※
         ｜    ├HISTOU 出力
         ｜    ｜
         ｜    ├TIMSTP 時間を進める
         ｜    ├WRRSTR, WRRSTG リスタートファイル出力
         ｜    ｜               └ グリッドデータを書き出す.
         ｜    ｜←(GO TO 文で戻る)
         └──┘
   \end{verbatim}

\subsubsection*{
・ DCPAM}
   \begin{verbatim}
   モジュール読み込み─┬ Dynamics & ...  (計算用モジュール)
      ｜               ├ ???             (基礎物理定数読み込み)
      ｜               └ 変数定義用モジュール???
      ↓
   初期化部分─┬SetParameter(?) [???]    実験パラメタ設定
      ｜       ｜                             (NAMELIST 利用)
      │       ├wa_initial    [spmodel] 座標系設定
      │       ├HistorySuccess?? [gt4f90io] ファイルから座標変数読み込み
      │       ├????          wa_initial により設定されたものと
      │       ｜              ファイルから読み込んだものの整合性をチェック
      ｜       ├HistoryGet    [gt4f90io] ファイルから予報変数の初期値読み込み
      ｜       └HistoryCreate [gt4f90io] 出力の初期化
      ｜                                      (NAMELIST 利用)
      ↓
   メインループ┬do ループ
         ↑    ｜
         ｜    ｜
         ｜    ├Physics(???)  [????]     物理過程 (「調節」以外)
         ｜    ├Dynamics      [dynamics] 力学過程
         ｜    ｜               ↑ ※ どこからモジュール化するか??? ※
         ｜    ｜                  ※ 差分化に応じて名前を変える? ※
         ｜    ├PhysAdjust(??)[????]     物理過程 (調節過程)
         ｜    ├TimeFilter    [filter]   時間フィルタ 
         ｜    ｜               ↑ ※ どこからモジュール化するか??? ※
         ｜    ｜                  ※ これで t+Δt, t の値を t, t-Δt へ※ 
         ｜    ├HistoryPut    [gt4f90io] 出力
         ｜    ｜   ↑                    └グリッドデータ出力
         ｜    ｜  dcpam\_nc\_io みたいなモジュールを作っておくと良いかな?
         ｜    ｜
         ｜    ｜
         ｜    ├enddo (時間ステップ +1)
         ｜    ├??????                   リスタートファイル出力
         └──┘
   \end{verbatim}


\subsection*{
□ 力学過程の流れ (AGCM5との比較) ※ まだ書き途中…}

\subsubsection*{
・ AGCM5}
   \begin{verbatim}
   DYNMCS───┬DSETC  スペクトル計算用の定数設定
         ↑    ｜       (コリオリ係数, 水平拡散係数, 緯度, 緯度荷重)
         ｜    ｜
         ｜    ├DSETV  鉛直差分
         ｜    ｜
         ｜    ｜
         ｜    ｜
         ｜    ├DYNMCS 力学過程
         ｜    ├PADJST 物理過程 (調節過程)
         ｜    ├TFILT  時間フィルタ
         ｜    ├HISTOU 出力
         ｜    ｜
         ｜    ├TIMSTP 時間を進める
         ｜    ├WRRSTR, WRRSTG リスタートファイル出力
         ｜    ｜
         ｜    ｜←(GO TO 文で戻る)
         └──┘
   \end{verbatim}

\subsubsection*{
・ DCPAM}
   \begin{verbatim}
   Dynamics──┬Dyn_??? スペクトル計算用の定数設定は spmodel 
   (仮名)↑    ｜        があるので必要なし.
         ｜    ｜        コリオリ係数等は, 初期設定の
         ｜    ｜        SetParameter(?)で設定??
         ｜    ｜
         ｜    ├Dyn_VirtualSet(????)
         ｜    ｜        
         ｜    ｜
         ｜    ｜
         ｜    ├Dynamics      [dynamics] 力学過程
         ｜    ｜               ↑ ※ どこからモジュール化するか??? ※
         ｜    ├PhysAdjust(??)[????]     物理過程 (調節過程)
         ｜    ├TimeFilter    [filter]   時間フィルタ
         ｜    ｜               ↑ ※ どこからモジュール化するか??? ※
         ｜    ├HistoryPut    [gt4f90io] 出力
         ｜    ｜
         ｜    ├enddo (時間ステップ +1)
         ｜    ├??????                   リスタートファイル出力
         └──┘
   \end{verbatim}


   dynamics (モジュール)
   ├────────────────┬───────…
   ｜                                ｜
   リープフロッグsemiinplicit      ルンゲクッタ...
   ｜                                ｜
   ├────────────────┴───────…
   dynamics\_basis

\section*{
■ モジュールの利用の際には}

\texttt{http://www.gfd-dennou.org/arch/prepri/2003/iugg/gtool/poster/note-iugg2003.html}
を参照し, 直接モジュールを呼ぶのではなく, interface を介するようにする.
(いまだ, このご利益が良く分かってないけど…)

とりあえず, モジュール化 (オブジェクト指向???) して作ってみる.

 
\subsection*{
■ 利用するモジュール}

   wa\_module を使用する.
   (今まで未使用)


\subsection*{
■ AGCM5 マニュアル 第2部 離散化 第2章 支配方程式・力学過程と
   Haltiner and Williams(1980) の対応}

   ・ 連続の式
      - AGCM5 (2.1)
      - HW    (7-46)

   ・ 静水圧の式
      - AGCM5 (2.4)  (第1部 第2章の静水圧の式 (2.2) を積分することで導出)
      

\subsection*{
■ 力学過程のみを考えた支配方程式 (微分系)}

\subsubsection{連続の式}



\end{document}
%%%%%%%%              Text End                  %%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
