%表題   MATH1下位基本数学処理ライブラリリファレンスマニュアル
%
%履歴
%\Drireki{
%         90/03/22 塩谷雅人
%         91/09/05 林祥介
%         91/12/09 塩谷雅人
%         92/04/22 林祥介   (4.1版)
%         94/04/04 塩谷雅人
%        }
%
%\Dchapter{SUBLIB : 基本サブルーチン(自然数列の生成)}
\Dchapterhead
\label{sublib}

\section{概要}

  基本的なサブルーチンパッケージ.

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

  \begin{tabular}{lp{10cm}}
    {\tt VIGNN(IX,N,JX)} & 自然数列を生成して整数型配列で返す. \\
    {\tt VRGNN(RX,N,JX)} & 自然数列を生成して実数型配列で返す. \\
    {\tt DXFLOC(ND,NS,NP,NCP)} & 添字の値から配列要素の位置を求める. \\
    {\tt DXILOC(ND,NS,NP,NCP)} & 配列要素の位置から添字の値を求める.
  \end{tabular}

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

  \subsection{VIGNN/VRGNN}
  \label{sublib.sub.vignn}

    \begin{enumerate}
      \item 機能
        \begin{quote}
           自然数列を生成して整数型配列/実数型配列で返す.
        \end{quote}
      \item 呼び出し方法
        \begin{quote}
          {\tt CALL VIGNN(IX,N,JX)}\\
          {\tt CALL VRGNN(RX,N,JX)}
        \end{quote}
      \item パラメーターの説明
        \begin{quote}
          \begin{tabular}{llp{10cm}}
            {\tt IX}   & {\tt (I)} & 自然数列を返す整数型配列.\\
            {\tt RX}   & {\tt (R)} & 自然数列を返す実数型配列.\\
            {\tt N}    & {\tt (I)} & 数列を構成する配列要素の個数.\\
            {\tt JX}   & {\tt (I)} & 数列を構成する配列要素の間隔.
          \end{tabular}
        \end{quote}
      \item 備考
        \begin{enumerate}
          \item なし.
        \end{enumerate}
    \end{enumerate}

  \subsection{DXFLOC/DXILOC}
  \label{sublib.sub.vignn}

    \begin{enumerate}
      \item 機能
        \begin{quote}
           {\tt DXFLOC} : 添字の値から配列要素の位置を求める. \\
           {\tt DXILOC} : 配列要素の位置から添字の値を求める.
        \end{quote}
      \item 呼び出し方法
        \begin{quote}
          {\tt CALL DXFLOC(ND,NS,NP,NCP)}\\
          {\tt CALL DXILOC(ND,NS,NP,NCP)}
        \end{quote}
      \item パラメーターの説明
        \begin{quote}
          \begin{tabular}{llp{10cm}}
            {\tt ND}   & {\tt (I)} & 配列の次元数.\\
            {\tt NS}   & {\tt (R)} & 配列の寸法を収めた長さ{\tt ND}の
                                     整数型配列.\\
            {\tt NP}   & {\tt (I)} & 配列の添字を収めた長さ
                                     {\tt ND}の整数型配列.
                                     {\tt DXFLOC}では入力パラメータ;
                                     {\tt DXILOC}では出力パラメータ. \\
            {\tt NCP}  & {\tt (I)} & 配列要素の位置.
                                     {\tt DXFLOC}では出力パラメータ;
                                     {\tt DXILOC}では入力パラメータ.
          \end{tabular}
        \end{quote}
      \item 備考
        \begin{enumerate}
          \item FORTRAN では, たとえば, 3次元配列{\tt X(3,4,5)}が
            宣言してあったとき, {\tt X(2,2,2)}であらわされる配列要素の
            位置は記憶列の先頭から数えて17番めである.
            (FORTRAN では, 記憶列の先頭から順に,
            {\tt X(1,1,1)}, {\tt X(2,1,1)}, {\tt X(3,1,1)}, $\ldots$,
            {\tt X(1,2,1)}, {\tt X(2,2,1)}, {\tt X(3,2,1)}, $\ldots$,
            {\tt X(1,1,2)}, {\tt X(2,1,2)}, {\tt X(3,1,2)}, $\ldots$,
            のように添字が動く. )
            {\tt DXFLOC} では, {\tt ND}=3,
            {\tt NS(1)}=3, {\tt NS(2)}=4, {\tt NS(3)}=5,
            {\tt NP(1)}=2, {\tt NP(2)}=2, {\tt NP(3)}=2,
            とすると, {\tt NCP}=17 が返される;
            {\tt DXILOC} では, {\tt ND}=3,
            {\tt NS(1)}=3, {\tt NS(2)}=4, {\tt NS(3)}=5,
            {\tt NCP}=17 とすると,
            {\tt NP(1)}=2, {\tt NP(2)}=2, {\tt NP(3)}=2
            が返される.
          \item 与える引数の妥当性(たとえば, {\tt NP}の値が1以上で
            対応する{\tt NS}の値より小さいか, など)はチェックされない.
        \end{enumerate}
    \end{enumerate}
