% 表題   らくらく DCPAM5 -- 鉛直 1 次元計算を行うには
%
% 履歴 
%\Drireki{2011/09/30 高橋芳幸}
%
\chapter{鉛直 1 次元計算を行うには}

\section{はじめに}

\Dmodel は 3 次元モデルであるが, 設定を変更することで鉛直 1 次元計算も可能である. 
この章では, \Dmodel を用いて鉛直 1 次元計算の実行方法について述べる. 


\section{\Dmodel の鉛直 1 次元化の概要}

鉛直 1 次元計算の実行方法について述べる前に, \Dmodel での鉛直 1 次元化の
概要について簡単に説明しておく.

\Dmodel の鉛直 1 次元化は, 緯度, 経度方向の格子点数をそれぞれ 1 にし, 
移流を計算しないように設定することで実現している 
\footnote{
鉛直一次元計算においては, 水平方向の格子点数が 1 であるため, スペクトル変換法を
用いた力学過程モジュールでは計算できない. 
このため, スペクトル変換法を用いた力学過程を用いないモジュールを選択する必要がある. 
(yot, 2011/09/30)
}.
移流計算以外は 3 次元計算の時に用いていたモジュールをそのまま用いている. 

このため, 例えば短波放射計算のように惑星上の緯度, 経度に依存するような計算の
ために, 計算する 1 次元カラムが位置する緯度, 経度を指定する必要があり, 
その位置における適当な日変化, 季節変化が計算される
\footnote{
  もちろん, 日変化, 季節変化をなくす設定をすれば話は別.
}.

また, 例えば海表面温度など, 外部データを読み込む際には, モデルに合わせて
緯度, 経度方向の格子点数がそれぞれ 1 のデータを用意する必要がある. 


\section{コンパイル}

鉛直 1 次元計算を行うためのコンパイル方法は, 3 次元モデルのコンパイル方法と
全く同じである. 
コンパイルの基本的な方法の詳細は, 
「\Dmodel インストールガイド」
(\url{http://www.gfd-dennou.org/library/dcpam/dcpam5/dcpam5\_latest/INSTALL.htm}) 
を参照すること.


\section{鉛直 1 次元計算のための設定}

鉛直 1 次元計算の特有の設定は, 水平格子点数, 力学過程, 鉛直 1 次元カラムの
緯度, 経度の指定である. 
それぞれ, 下に示すように指定する. 

\subsection{格子点数の指定}

既に述べたように, 鉛直 1 次元計算は, 緯度, 経度方向の格子点数をそれぞれ 1 にする
ことで実現している. 
緯度, 経度方向の格子点数は, gridset\_nml namelist ブロックにより, 下のように指定する.
%
\begin{verbatim}
&gridset_nml
  ...
  imax   =  1,                 ! 経度格子点数.
                               ! Number of grid points in longitude
  jmax   =  1,                 ! 緯度格子点数.
                               ! Number of grid points in latitude
  kmax   = 16,                 ! 鉛直層数.
                               ! Number of vertical level
  kslmax =  9                  ! 地下の鉛直層数.
                               ! Number of subsurface vertical level
/
\end{verbatim}


\subsection{力学過程の指定}

既に述べたように, 鉛直 1 次元計算では, スペクトル変換法を用いた力学過程モジュールを
使えないため, 別のモジュールを選択する
\footnote{
この「別のモジュール」は, 与えられた物理過程による時間変化率を用いて時間積分する.
%, 与えた地衡風に対応する圧力傾度力, 
%およびコリオリ力を用いて時間積分する.
}. 
異なるモジュールは, 下のように指定する.
%
\begin{verbatim}
&dcpam_main_nml
  ...
    DynMode                 = 'NoHorAdv',
  ...
/
\end{verbatim}


\subsection{緯度, 経度の指定}

既に述べたように, 鉛直 1 次元計算では, そのカラムの緯度, 経度を指定する必要がある. 
緯度, 経度方向の格子点数は, axesset\_nml namelist ブロックにより, 下のように指定する.
%
\begin{verbatim}
&axesset_nml
  LonInDeg = 0.0d0,    ! 経度 (degree)
  LatInDeg = 0.0d0     ! 緯度 (degree)
/
\end{verbatim}



\section{鉛直 1 次元計算の実行}

鉛直 1 次元計算の実行方法は, 3 次元モデルの実行方法と
全く同じである. 
詳細は, 「ごくらく \Dmodel」
(\url{http://www.gfd-dennou.org/library/dcpam/dcpam5/dcpam5\_latest/doc/tutorial/gokuraku/}) 
を参照すること. 

