%表題   力学過程 定数設定 ( 水平差分 )
%
%履歴
\Drireki{93/09/02 保坂征宏}
%

\section{サブルーチンの説明 : 水平差分定数設定}

\subsection{DSETC}
\label{dsetc}
\begin{enumerate}
  \item 機能 
    \begin{quote}
      力学過程の定数設定を行なう. 
    \end{quote}
      
  \item 呼び出し方法
    \begin{verbatim}
      SUBROUTINE DSETC     !"  力学パートの定数セット(水平差分)
     O         ( NMO   , FLAPLA, EDEL  ,
     O           CORIOL, UVFACT, DIFV  , DIFT  ,
     C           ALAT  , DLAT                   )
    \end{verbatim}
    
  \item パラメータの説明
    \begin{verbatim}
*
*   [OUTPUT] 
      INTEGER    NMO   ( 2, 0:MMAX, 0:LMAX ) !" スペクトルの添字順番
      REAL       FLAPLA( NMDIM  )            !" ラプラシアンの係数
      REAL       EDEL  ( NMDIM  )            !" ζ，Ｄ→Ｕ，Ｖ
*"       : 球関数展開定数
*
      REAL       CORIOL ( IDIM, JDIM )       !" コリオリ係数 ｆ
      REAL       UVFACT ( IDIM, JDIM )       !" u→U のファクター
*"       : 力学定数
*
      REAL       DIFV  ( NMDIM  )            !" 運動量水平拡散係数
      REAL       DIFT  ( NMDIM  )            !" 熱，水水平拡散係数
*"       : 時間積分定数
*
      REAL       ALAT  ( JDIM )              !" 緯度
      REAL       DLAT  ( JDIM )              !" 緯度荷重
*        : 座標格子定数
*
    \end{verbatim}

  \item 備考

    \begin{enumerate}
    \item 手順は以下のとおり. 
          もう少し組合わせを考える必要がありそうである. 
      \begin{enumerate}
      \item 力学定数の設定. ( \verb!DYNPAR! )
            一日の長さ \verb!IDAYL!, 
            最大波数減衰時間 \verb!IEFOLD!, 
            水平拡散のオーダー \verb!ORDERY! . 
      \item 球面調和展開パラメータの計算. 
            \begin{itemize}
              \item ガウス格子・荷重の計算\footnotemark . 
                    (\verb!GAUSS!)
                     \footnotetext{
                        ただし JMAX=1 の時, 
                        ガウス格子・ガウス荷重はそれぞれ 
                        SIN ( ALAT( 1 ) ), 
                        DLAT( 1 ) とする.
                           }
              \item 球面調和函数詰め込み配列 \verb!NMO! の作成. 
                    ( \verb!SPSTUP!) 
              \item 変換係数計算. ( \verb!SETCOF! ) \\
                    ラプラシアンの係数 \verb!FLAPLA! と 
                    渦度発散から U,V 作成係数 \verb!EDEL! の計算. 
            \end{itemize}
      \item コリオリ因子, U ファクター \verb!UVFACT=COS( ALAT( J ) )! 
            の設定. 
      \item 水平拡散のファクター \verb!DIFV,DIFT! の設定. 
            (  \verb!SETDIF! )
            設定する. 
      \end{enumerate}
   \end{enumerate}
\end{enumerate}


\subsection{DYNPAR}
\label{dynpar}
\begin{enumerate}
  \item 機能 
    \begin{quote}
       力学パラメータとして一日の長さ, 最大波数減衰時間, 
       水平拡散のオーダーを設定する. 
    \end{quote}
      
  \item 呼び出し方法
    \begin{verbatim}
      SUBROUTINE DYNPAR           !" 力学パラメーター
     O         ( IDAYL ,
     O           IEFOLD, ORDERY  )
    \end{verbatim}
    
  \item パラメータの説明
    \begin{verbatim}
*
*   [OUTPUT] 
      INTEGER    IDAYL                       !" 一日の長さ(秒)
      INTEGER    IEFOLD                      !" 最大波数減衰時間
      INTEGER    ORDERY                      !" 水平拡散のオーダー
*
*   [NAMELIST]
      NAMELIST    NMDAYL
      NAMELIST    NMHDIF
    \end{verbatim}
    
  \item 備考
    \begin{enumerate}
      \item なし. 
    \end{enumerate}
    
\end{enumerate}

\subsection{SETCOF}
\label{setcof}
\begin{enumerate}
  \item 機能 
    \begin{quote}
       スペクトル係数, 
       すなわちラプラシアンの係数
       および $\zeta,D$ から $U,V$ への変換係数の計算. 
    \end{quote}
      
  \item 呼び出し方法
    \begin{verbatim}
      SUBROUTINE SETCOF              !" スペクトル計算の係数
     O        ( FLAPLA, EDEL  ,
     I          ER    , NMO   )
    \end{verbatim}
  
  \item パラメータの説明
    \begin{verbatim}
*
*   [OUTPUT] 
      REAL       FLAPLA( NMDIM  )            !" ラプラシアンの係数
      REAL       EDEL  ( NMDIM  )            !" ζ,Ｄ→Ｕ,Ｖ
*
*   [INPUT] 
      REAL       ER                          !" 地球半径
      INTEGER    NMO   ( 2, 0:MMAX, 0:LMAX ) !" スペクトルの添字順番
*
     \end{verbatim}
     
  \item 備考
     \begin{enumerate}
       \item ラプラシアンの係数 \verb!FLAPLA! は
             ${ \displaystyle -\frac{N(N+1)}{R_e^2} }$, 
             \verb!EDEL! は 
             ${ \displaystyle -\frac{R_e}{N(N+1)} }$ である. 
       \item 拡散しない $M=L=0$ については, 
             \verb!FLAPLA!, \verb!EDEL! 共 0 である. 
             ただし, \verb!LMAX! が0 の場合\footnotemark の  
                    \footnotetext{
                          どういう場合か？}
             \verb!EDEL(NMO(1,0,0)! に限り $R_E$ である. 
     \end{enumerate}
\end{enumerate}


\subsection{SETDIF}
\label{setdif}
\begin{enumerate}
  \item 機能 
    \begin{quote}
       水平拡散のファクター設定. 波数に依存する. 
    \end{quote}
      
  \item 呼び出し方法
    \begin{verbatim}
      SUBROUTINE SETDIF               !" 水平拡散のファクター
     O         ( DIFV  , DIFT  ,
     I           IEFOLD, IDORDR,
     I           NMO             )
    \end{verbatim}
    
  \item パラメータの説明

    \begin{verbatim}
*   [OUTPUT] 
      REAL       DIFV  ( NMDIM  )            !" 運動量水平拡散係数
      REAL       DIFT  ( NMDIM  )            !" 熱，水水平拡散係数
*
*   [INPUT] 
      INTEGER    IEFOLD                      !" 最大波数減衰時間
      INTEGER    IDORDR                      !" 水平拡散のオーダー
      INTEGER    NMO   ( 2, 0:MMAX, 0:LMAX ) !" スペクトルの添字順番
    \end{verbatim}

  \item 備考
  
    \begin{enumerate}
      \item なし.
    \end{enumerate}

\end{enumerate}
