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

\begin{itemize}
\item Developers: Morikawa Yasuhiro
\item Version: \$Id: init.f90,v 1.12 2005/01/20 16:37:40 morikawa Exp \$
\item Tag Name: \$Name:  \$
\item Change History: 
\end{itemize}
\subsection{\label{label:1} Overview}

Generate Various Initial Data

\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 type_mod, only: STRING, INTKIND, REKIND, DBKIND
use nmlfile_mod, only: nmlfile_init, nmlfile_open, nmlfile_close
use constants_mod, only: constants_init, pi, R0
\end{verbatim}
----- 格子点取得モジュール -----

\begin{verbatim}
use grid_3d_mod,         only: grid_3d_init, im, jm, km, grid_3d_end
use grid_wavenumber_mod, only: grid_wavenumber_init, nm, grid_wavenumber_end
\end{verbatim}
----- 座標データ生成モジュール -----

\begin{verbatim}
use axis_type_mod, only: AXISINFO
use axis_x_mod, only: axis_x_init, axis_x_weight, axis_x_spectral, axis_x_end
use axis_y_mod, only: axis_y_init, axis_y_weight, axis_y_spectral, axis_y_end
use axis_z_mod, only: axis_z_init, axis_z_sigmahalf_manual, axis_z_end
\end{verbatim}
----- データI/Oモジュール -----

\begin{verbatim}
use io_gt4_out_mod, only : io_gt4_out_init   , io_gt4_out_SetDims, &
     &                     io_gt4_out_SetVars, io_gt4_out_Put    , &
     &                     io_gt4_out_end
\end{verbatim}
----- 時刻管理モジュール -----

\begin{verbatim}
use time_mod, only: time_init, tvar, ttype, tname, tunit, time_end
\end{verbatim}
----- SPMODEL モジュール  -----

\begin{verbatim}
use spml_mod,  only: spml_init, xya_wa, wa_Div_xya_xya &
     &              ,wa_LaplaInv_wa, wa_xya, xya_GradLat_wa, xya_GradLon_wa
\end{verbatim}
----- デバッグ・汎用ツール -----

\begin{verbatim}
use dc_trace,  only: SetDebug, DbgMessage, BeginSub, EndSub, DataDump
use dc_string, only: toChar, StriEq, LChar, StrHead
use dc_message,only: MessageNotify
\end{verbatim}
\subsection{\label{label:7} NAMELIST}

初期値の種類の設定を行なう。
現在 condition に与えて有効なのは以下の値である。

\begin{itemize}
\item \verb! rigid body rotation ! 

\begin{itemize}
\item 剛体回転流を与える。風速の最大値は VelLonMax\_rbr に与える。

\begin{itemize}
\item これを選択した場合、強制的に VorDiv\_Priority は .false. 
        に設定される。
\end{itemize}
\end{itemize}
\item \verb! convex of surface pressure !

\begin{itemize}
\item 地表面気圧の「山」を与える。位置とサイズは、度数で与える場合は
      Lon\_Center\_Dig, Lat\_Center\_Dig, LonLatRadius\_Dig を用い、
      ラジアンで与える場合は Lon\_Center\_Rad, Lat\_Center\_Rad,
      LonLatRadius\_Rad を用いる (ただし、Rad\_Priority を .true.
      にする必要がある)。 最大値は PsMax で与える。
\end{itemize}
\item \verb! convex of temperature !

\begin{itemize}
\item 温度の「山」を与える。位置とサイズは、度数で与える場合は
      Lon\_Center\_Dig, Lat\_Center\_Dig, LonLatRadius\_Dig を用い、
      ラジアンで与える場合は Lon\_Center\_Rad, Lat\_Center\_Rad,
      LonLatRadius\_Rad を用いる (ただし、Rad\_Priority を .true.
      にする必要がある)。 最大値は TempMax で与える。
\end{itemize}
\item その他

\begin{itemize}
\item 等温無風の初期値を与える。
\end{itemize}
\end{itemize}
VelLonAve, VelLonAve, VelLatAve, VorAve, DivAve, TempAve, QVapAve, PsAve
には、それぞれ平均値を与える。

デフォルトでは風速から渦度発散を生成するが、
VorDiv\_Priority を .true. にする事で、渦度発散から風速を生成する。

\begin{verbatim}
character(STRING) :: condition = ''      ! 初期値の種類

real(DBKIND)      :: VelLonAve = 0.0d0   ! 速度経度成分平均値
real(DBKIND)      :: VelLatAve = 0.0d0   ! 速度緯度成分平均値
real(DBKIND)      :: VorAve    = 0.0d0   ! 渦度平均値
real(DBKIND)      :: DivAve    = 0.0d0   ! 発散平均値
real(DBKIND)      :: TempAve   = 273.0d0 ! 温度平均値
real(DBKIND)      :: QVapAve   = 0.0d0   ! 比湿平均値
real(DBKIND)      :: PsAve     = 1.0d5   ! 地表面圧力平均値

logical           :: VorDiv_Priority = .false. ! 渦度発散から風速を生成

!for 'rigid body rotation'
real(DBKIND)      :: VelLonMax_rbr = 1.0d2    ! Maximum of 'VelLon'

!for 'convex of surface pressure' or 'convex of temperature'
real(DBKIND)      :: LonLat_Radius_Deg  = 20.0   ! 半径 (度数)
real(DBKIND)      :: LonLat_Radius_Rad  = 0.349  ! 半径 (ラジアン)

real(DBKIND)      :: Lat_Center_Deg = 45.0  ! 緯度の中心位置 (度数)
real(DBKIND)      :: Lon_Center_Deg = 100.0 ! 経度の中心位置 (度数)
real(DBKIND)      :: Lat_Center_Rad = 0.785 ! 緯度の中心位置 (ラジアン)
real(DBKIND)      :: Lon_Center_Rad = 1.745 ! 経度の中心位置 (ラジアン)

logical           :: Rad_Priority   = .false. ! ラジアン表記を優先

!for 'convex of surface pressure'
real(DBKIND)      :: PsMax   = -200.0d2       ! Maximum of 'Ps'

!for 'convex of temperature'
real(DBKIND)      :: TempMax = 10.0d0         ! Maximum of 'Temp'

namelist /init_nml/ &
     & condition           , & ! 初期値の種類
     &
     & VelLonAve           , & ! 速度経度成分平均値
     & VelLatAve           , & ! 速度緯度成分平均値
     & VorAve              , & ! 渦度平均値        
     & DivAve              , & ! 発散平均値        
     & TempAve             , & ! 温度平均値        
     & QVapAve             , & ! 比湿平均値        
     & PsAve               , & ! 地表面圧力平均値  
     &
     & VorDiv_Priority     , & ! 渦度発散から風速を生成
     &
     & VelLonMax_rbr       , & ! 速度経度成分 (剛体回転流用)
     &
     & LonLat_Radius_Deg   , & ! 半径 (度数)
     & LonLat_Radius_Rad   , & ! 半径 (ラジアン)
     &
     & Lat_Center_Deg      , & ! 緯度の中心位置 (度数)
     & Lon_Center_Deg      , & ! 経度の中心位置 (度数)
     & Lat_Center_Rad      , & ! 緯度の中心位置 (ラジアン)
     & Lon_Center_Rad      , & ! 経度の中心位置 (ラジアン)
     &
     & Rad_Priority        , & ! ラジアン表記を優先
     &
     & PsMax               , & ! Maximum of 'Ps'
     &
     & TempMax                 ! Maximum of 'Temp'
\end{verbatim}

\end{document}
