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

\begin{itemize}
\item Developers: Morikawa Yasuhiro
\item Version: \$Id: dycore\_time.f90,v 1.8 2005/01/12 02:31:32 morikawa Exp \$
\item Tag Name: \$Name:  \$
\item Change History: 
\end{itemize}
\subsection{\label{label:1} Overview}

Time manage 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
use time_mod        , only: StepInterval, OutputStep  , &
     &                      CurrentLoop , CurrentTime , &
     &                      DelTime
\end{verbatim}
\subsection{\label{label:7} Public Interface}

\begin{verbatim}
private
public :: dycore_time_init, dycore_time_progress ! subroutines
public :: dycore_time_filter                     ! subroutines
public :: dycore_time_end                        ! subroutines
public :: StepInterval, OutputStep               ! variables
public :: CurrentLoop , CurrentTime              ! variables
public :: DelTime                                ! variables
\end{verbatim}
\subsection{\label{label:8} Procedure Interface}

\subsubsection{\label{label:9} Initialize module}

 time\_mod  の初期化を行なう。

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

\begin{verbatim}
use time_mod,        only: time_init
use dycore_type_mod, only: DYCORE_VARS, DYCORE_DIMS, &
     &                     STRING, DBKIND, INTKIND
use dc_trace,        only: BeginSub, EndSub, DbgMessage
\end{verbatim}
\subsubsection{\label{label:11} Progress Time}

Vars\_a 内の各種データを Vars に、
Vars\_n 内の各種データを Vas\_b に移す。
Vars\_a 内のデータは全てゼロにクリアする。

また、 time\_mod  の  time\_progress  を呼ぶ事によって
 time\_mod  の CurrentTime と CurrentLoop を進める。

\begin{verbatim}
subroutine dycore_time_progress( Vars_b, Vars_n, Vars_a )
\end{verbatim}
\paragraph{\label{label:12} Dependency} \

\begin{verbatim}
use dycore_type_mod, only: DYCORE_VARS,  &
     &                     STRING, REKIND, DBKIND, INTKIND
use time_mod       , only: time_progress
use dc_trace       , only: BeginSub, EndSub, DbgMessage
\end{verbatim}
\paragraph{\label{label:13} In/Out} \

\begin{verbatim}
type(DYCORE_VARS), intent(inout):: Vars_b ! 格子点データ全種(t-Δt)
type(DYCORE_VARS), intent(inout):: Vars_n ! 格子点データ全種(t)
type(DYCORE_VARS), intent(inout):: Vars_a ! 格子点データ全種(t+Δt)
\end{verbatim}
\subsubsection{\label{label:14} Time Filter}

Vars\_b, Vars\_n, Vars\_a を用い、Vars\_n に時間フィルターをかける

 constants\_mod  の TimeFilter を時間フィルターの係数として
用いる。ゼロの場合は実質的にフィルターがかからない。

 constants\_mod  の TimeFilterStepInt から、何ステップ毎に
フィルターがかかるか制御される。

\begin{verbatim}
subroutine dycore_time_filter( Vars_b, Vars_n, Vars_a )
\end{verbatim}
\paragraph{\label{label:15} Dependency} \

\begin{verbatim}
use dycore_type_mod, only: DYCORE_VARS,  &
     &                     STRING, REKIND, DBKIND, INTKIND
use constants_mod  , only: TimeFilter, TimeFilterStepInt
use dc_trace       , only: BeginSub, EndSub, DbgMessage
\end{verbatim}
\paragraph{\label{label:16} In/Out} \

\begin{verbatim}
type(DYCORE_VARS), intent(in)   :: Vars_b ! 格子点データ全種(t-Δt)
type(DYCORE_VARS), intent(inout):: Vars_n ! 格子点データ全種(t)
type(DYCORE_VARS), intent(in)   :: Vars_a ! 格子点データ全種(t+Δt)
\end{verbatim}
\subsubsection{\label{label:17} Terminate module}

今の所、何もしない。

\begin{verbatim}
subroutine dycore_time_end
\end{verbatim}
\paragraph{\label{label:18} Dependency} \

\begin{verbatim}
use time_mod       , only: time_end
use dycore_type_mod, only: STRING, REKIND, DBKIND, INTKIND
use dc_trace,        only: BeginSub, EndSub, DbgMessage
\end{verbatim}

\end{document}
