\documentclass[titlepage]{jarticle}
\title{DCPAM Reference Manual}
\author{GFD Dennou Club}
\begin{document}
\maketitle
\tableofcontents
\clearpage
\section{\label{label:0} Module dycore\_in\_mod}

\begin{itemize}
\item Developers: Morikawa Yasuhiro
\item Version: \$Id: dycore\_in.f90,v 1.5 2005/01/09 15:14:24 morikawa Exp \$
\item Tag Name: \$Name:  \$
\item Change History: 
\end{itemize}
\subsection{\label{label:1} Overview}

gtool4 netCDF data Input module directly called by GCM run program.

\subsection{\label{label:2} Error Handling}

\subsection{\label{label:3} Known Bugs}

\subsection{\label{label:4} Note}

\subsection{\label{label:5} Future Plans}

まだテストケースが少なく、上部モジュールと下部モジュールで切り分ける
べきかも知れない部分が多く残っている。
その切り分けを将来的にはすべきである。

\subsection{\label{label:6} Dependency}

\begin{verbatim}
use dycore_type_mod, only : STRING, DBKIND
use dycore_grid_mod, only : im, jm, km
\end{verbatim}
\subsection{\label{label:7} Public Interface}

\begin{verbatim}
private
public :: dycore_in_init, dycore_in_dims  ! subroutines
public :: dycore_in_vars, dycore_in_end   ! subroutines
\end{verbatim}
\subsection{\label{label:8} Procedure Interface}

\subsubsection{\label{label:9} Initialize module and acquire NAMELIST}

モジュールを初期化し、NAMELIST から値を取得する。
NAMELIST から値が取得できないものに関しては上記のデフォルト値が
用いられる。

NAMELIST ファイルは、メインプログラムにて  nmlfile\_mod  の
 nmlfile\_init  で指定されることが想定されているが、
もしもこの初期化ルーチンより以前に指定されていなければ、
 nmlfile\_init  のデフォルトで指定される NAMELIST ファイルを
読む。

\begin{verbatim}
subroutine dycore_in_init
\end{verbatim}
\paragraph{\label{label:10} Dependency} \

\begin{verbatim}
use dycore_type_mod, only : STRING, DBKIND, INTKIND
use nmlfile_mod, only : nmlfile_init, nmlfile_open, nmlfile_close
use axis_x_mod, only: axis_x_init
use axis_y_mod, only: axis_y_init
use axis_z_mod, only: axis_z_init
use dc_trace,  only: BeginSub, EndSub, DbgMessage
use dc_message,only: MessageNotify
use dc_string, only: toChar
\end{verbatim}
\paragraph{\label{label:11} NAMELIST} \

\begin{verbatim}
character(STRING) :: &
     &
     & input_file = 'init.nc'  , &  ! 初期値ファイル
     &
     & vlonname   = 'vlon'     , &  ! 速度経度成分の変数名
     & vlatname   = 'vlat'     , &  ! 速度緯度成分の変数名
     & vorname    = 'vor'      , &  ! 渦度の変数名
     & divname    = 'div'      , &  ! 発散の変数名
     & psname     = 'ps'       , &  ! 地表面気圧の変数名
     & tempname   = 'temp'     , &  ! 温度の変数名
     & qvapname   = 'qvap'          ! 比湿の変数名

real(DBKIND) :: input_time(2) = (/0,0/)  ! 入力データの時刻

namelist /dycore_in_nml/ &
     &
     & input_file   , &  ! 初期値ファイル
     & input_time   , &  ! 入力データの時刻 (t-Δt, t)
     &
     & vlonname     , &  ! 速度経度成分の変数名
     & vlatname     , &  ! 速度緯度成分の変数名
     & vorname      , &  ! 渦度の変数名
     & divname      , &  ! 発散の変数名
     & psname       , &  ! 地表面気圧の変数名
     & tempname     , &  ! 温度の変数名
     & qvapname          ! 比湿の変数名
\end{verbatim}
\subsubsection{\label{label:12} Return Data and Information of Dimensions}

 axis\_x\_mod ,  axis\_y\_mod ,  axis\_z\_mod 
から座標情報を取得し、Dims に格納して返す。

\begin{verbatim}
subroutine dycore_in_dims(Dims)
\end{verbatim}
\paragraph{\label{label:13} Dependency} \

\begin{verbatim}
use dycore_type_mod, only: DYCORE_DIMS
use dycore_grid_mod, only: im, jm, km
use axis_x_mod, only: axis_x_spectral, axis_x_manual, axis_x_netcdf
use axis_y_mod, only: axis_y_spectral, axis_y_manual, axis_y_netcdf
use axis_z_mod, only: axis_z_manual, axis_z_netcdf, &
     &                axis_z_sigmahalf_manual, axis_z_sigmahalf_netcdf
use gt4_history,only: HistoryGetPointer
use dc_trace,   only: BeginSub, EndSub, DbgMessage
use dc_string,  only: toChar
\end{verbatim}
\paragraph{\label{label:14} Output} \

\begin{verbatim}
type(DYCORE_DIMS), intent(out):: Dims  ! 次元データ全種
\end{verbatim}
\subsubsection{\label{label:15} Return Data and Information of Dimensions}

 dycore\_in\_init  の NAMELIST  dycore\_in\_nml 
の情報に従い、変数データのデータを入力して、
Vars\_B および Vars に返す。

\begin{verbatim}
subroutine dycore_in_vars(Vars_B, Vars)
\end{verbatim}
\paragraph{\label{label:16} Dependency} \

\begin{verbatim}
use dycore_type_mod, only: DYCORE_VARS
use dycore_grid_mod, only: im, jm, km
use gt4_history,     only: HistoryGetPointer
use dc_trace,        only: BeginSub, EndSub, DbgMessage
use dc_string,       only: toChar
\end{verbatim}
\paragraph{\label{label:17} Output} \

\begin{verbatim}
type(DYCORE_VARS), intent(out):: Vars_B  ! 格子点データ全種 (t-Δt)
type(DYCORE_VARS), intent(out):: Vars    ! 格子点データ全種 (t)
\end{verbatim}
\subsubsection{\label{label:18} Terminate module}

 dycore\_in\_init で設定された値を破棄し、
デフォルトの値に戻します。

\begin{verbatim}
subroutine dycore_in_end
\end{verbatim}
\paragraph{\label{label:19} Dependency} \

\begin{verbatim}
use dc_trace,  only: BeginSub, EndSub, DbgMessage
use dc_error,  only: StoreError, USR_ECHAR
use dc_string, only: toChar
\end{verbatim}

\end{document}
