%表題   MATH2 数学処理上位パッケージ
%
%履歴
%\Drireki{
%         91/12/20 塩谷雅人
%         92/03/14 塩谷雅人
%         92/04/22 林祥介   (4.1版)
%         95/04/21 塩谷雅人
%        }
%
\Dchapterhead
\label{rnmlib}

\section{概要}

  移動平均を計算するサブルーチンパッケージ.

\section{サブルーチンのリスト}

  \begin{tabular}{lp{10cm}}
    {\tt VRRNM(RX,RY,N,JX,JY,NB)} & 移動平均を計算する
       ({\tt GL}{\tt p}{\tt GET/}{\tt GL}{\it p}{\tt SET}の管理する
       内部変数{\tt 'LMISS'}が
       {\tt .TRUE.}なら欠損値処理をする;
       {\tt .FALSE.}なら欠損値処理をしない). \\
    {\tt VRRNM0(RX,RY,N,JX,JY,NB)} & 移動平均を計算する
       (欠損値処理をしない). \\
    {\tt VRRNM1(RX,RY,N,JX,JY,NB)} & 移動平均を計算する
       (欠損値処理をする).
  \end{tabular}

\section{サブルーチンの説明}

  \subsection{VRRNM/VRRNM0/VRRNM1}
  \label{rnmlib.sub.vrrnm}

    \begin{enumerate}
      \item 機能
      \begin{quote}
        移動平均を計算する.
        {\tt VRRNM}は
        {\tt GL}{\tt p}{\tt GET/}{\tt GL}{\it p}{\tt SET}の管理する
        内部変数{\tt 'LMISS'}が
        {\tt .TRUE.}なら欠損値処理をする;
        {\tt .FALSE.}なら欠損値処理をしない.
        {\tt VRRNM0}は欠損値処理をしない.
        {\tt VRRNM1}は欠損値処理をする.
        欠損値は
        {\tt GL}{\tt p}{\tt GET/}{\tt GL}{\it p}{\tt SET}の管理する
        内部変数{\tt 'RMISS'}で決まる.
      \end{quote}
      \item 呼び出し方法
      \begin{quote}
        {\tt CALL VRRNM(RX,RY,N,JX,JY,NB)} \\
        {\tt CALL VRRNM0(RX,RY,N,JX,JY,NB)} \\
        {\tt CALL VRRNM1(RX,RY,N,JX,JY,NB)}
      \end{quote}
      \item パラメーターの説明
      \begin{quote}
        \begin{tabular}{llp{10cm}}
          {\tt RX} & {\tt (R)} & 移動平均を計算する実数型の配列. \\
          {\tt RY} & {\tt (R)} & 計算結果を納める実数型の配列. \\
          {\tt N} & {\tt (I)} & 処理する配列要素の個数. \\
          {\tt JX}, {\tt JY} & {\tt (I)} &
             配列{\tt RX}, {\tt RY}において, 処理する配列要素の間隔. \\
          {\tt NB} & {\tt (I)} & 移動平均をとるデータ長.
        \end{tabular}
      \end{quote}
      \item 備考
      \begin{enumerate}
        \item {\tt NB}は1以上{\tt N}以下, かつ奇数でなければならない.
        \item {\tt RX}, {\tt RY}において, 処理する第$i$番めの要素を
              $ RX_{i} , RY_{i} $, また$ M = ({\tt NB}-1)/2 $とおくと,
              移動平均の結果は, $i=M+1$から${\tt N}-M$までについては,
              $ RY_{i} = ( \sum_{i=-M}^{M}RX_{i} ) / {\tt NB} $,
              それ以外については欠損値
              ({\tt GLRGET/GLRSET}の管理する内部変数{\tt 'RMISS'}
              で決まる)が代入される.
              欠損値処理をするような設定になっているときは,
              欠損値でないデータについて平均値を計算する.
              このとき上式の分母にあらわれる{\tt NB}は
              欠損値ではないデータの個数となる.
              また, 移動平均を計算する配列要素すべてが欠損値のときは
              欠損値が返される.
      \end{enumerate}
    \end{enumerate}
