%表題 AGCM5 GCM基本ルーチンライブラリ (行列計算)
%
%履歴 
%\Drireki{92/09/27 竹広真一}
%\Drireki{93/02/07 竹広真一}
%
\section{サブルーチンの説明 : 行列計算}
\label{umtlu}

\subsection{LUMAKE}
\label{lumake}
\begin{enumerate}
  \item 機能 
  \begin{quote}
     行列の LU 分解(部分ピボット選択)を行なう. 
  \end{quote}
  \item 呼び出し方法 
      \begin{verbatim}
          CALL LUMAKE
     M         ( ALU   ,
     O           KP    ,
     D           JDIM  , NDIM   )
      \end{verbatim}
  \item パラメーターの説明 
  \begin{quote}
    \begin{tabular}{llp{11cm}}
      {\tt JDIM} & {\tt [I]} & 配列の寸法. 係数行列の数.  \\
      {\tt NDIM} & {\tt [I]} & 配列の寸法. 連立方程式の次数. \\
      {\tt ALU}  & {\tt [R]} & 
          {\tt JDIM}$\times${\tt NDIM}$\times${\tt NDIM} の配列. 
          {\tt NDIM}$\times${\tt NDIM} の行列が {\tt JDIM} 個
          ならんでいるものを同時に扱う. 
          入力の行列が上書きされて LU 分解行列で出力される. \\
      {\tt  KP}  & {\tt [I]} & 
          {\tt JDIM}$\times${\tt NDIM}の配列. ピボット情報を記録する. \\
    \end{tabular}
  \end{quote}
  \item 備考 
  \begin{enumerate}
    \item 特になし
  \end{enumerate}
\end{enumerate}

\subsection{LUSOLV}
\label{lusolv}
\begin{enumerate}
  \item 機能 
  \begin{quote}
     LU 分解により連立 1 次方程式の解の計算を行なう. 
  \end{quote}
  \item 呼び出し方法 
      \begin{verbatim}
          CALL LUSOLV
     M         ( XV    ,
     I           ALU   , KP    ,
     D           IDIM  , JDIM  , NDIM   )
      \end{verbatim}
  \item パラメーターの説明 
  \begin{quote}
    \begin{tabular}{llp{11cm}}
      {\tt IDIM} & {\tt [I]} & 
           配列の寸法. 連立方程式の右辺ベクトルの数.\\ 
      {\tt JDIM} & {\tt [I]} & 配列の寸法. 係数行列の数.  \\
      {\tt NDIM} & {\tt [I]} & 配列の寸法. 連立方程式の次数.  \\
      {\tt XV}   & {\tt [R]} & 
          {\tt IDIM}$\times${\tt JDIM}$\times${\tt NDIM}の配列.
          連立方程式の右辺ベクトルを入力として与え, 解が上書きされて出
          力される. \\
      {\tt ALU}  & {\tt [R]} & 
          {\tt JDIM}$\times${\tt NDIM}$\times${\tt NDIM}の配列. 
          {\tt NDIM}$\times${\tt NDIM}の LU 分解された行列が 
          {\tt JDIM} 個ならんでいるものを同時に扱う. \\
      {\tt KP}   & {\tt [I]} & 
          {\tt JDIM}$\times${\tt NDIM}の配列. ピボット情報を記録したも
          の.\\
     \end{tabular}
  \end{quote}
  \item 備考 
  \begin{enumerate}
    \item 特になし. 
  \end{enumerate}
\end{enumerate}

\subsection{LUMAK3}
\label{lumak3}
\begin{enumerate}
  \item 機能 
      \begin{quote}
        3 重対角行列の LU 分解を行なう. 
      \end{quote}
  \item 呼び出し方法 
      \begin{verbatim}
          CALL LUMAK3
     M         ( ALU   ,
     D           JDIM  , NDIM )
      \end{verbatim}
  \item パラメーターの説明 
  \begin{quote}
    \begin{tabular}{llp{11cm}}
      {\tt JDIM} & {\tt [I]} & 配列の寸法. 係数行列の数. \\
      {\tt NDIM} & {\tt [I]} & 配列の寸法. 連立方程式の次数.\\
      {\tt ALU}  & {\tt [R]} & 
          {\tt JDIM}$\times${\tt NDIM}$\times${\tt (-1:1)} の配列. 
          {\tt NDIM}$\times${\tt NDIM} の 3 重対角行列が {\tt JDIM} 個
          ならんでいるものを同時に扱う. 
          {\tt ALU(J,N,-1)} が下三角, {\tt ALU(J,N,1)} が上三角,
          {\tt ALU(J,N,0)} が対角成分を表す.  
          入力の行列が上書きされて LU 分解行列で出力される. \\
    \end{tabular}
  \end{quote}
  \item 備考 
  \begin{enumerate}
    \item {\tt ALU(J,1,-1)}, {\tt ALU(J,NDIM,1)} はダミー変数である. 
  \end{enumerate}
\end{enumerate}

\subsection{LUSOL3}
\label{lusol3}
\begin{enumerate}
  \item 機能 
  \begin{quote}
     3 重対角行列の LU 分解により連立 1 次方程式の解の計算を行なう. 
  \end{quote}
  \item 呼び出し方法 
      \begin{verbatim}
          CALL LUSOL3
     M         ( XV    ,
     I           ALU   ,
     D           IDIM  , JDIM , NDIM )
      \end{verbatim}
  \item パラメーターの説明 
  \begin{quote}
    \begin{tabular}{llp{11cm}}
      {\tt IDIM} & {\tt [I]} & 
           配列の寸法. 連立方程式の右辺ベクトルの数.\\ 
      {\tt JDIM} & {\tt [I]} & 配列の寸法. 係数行列の数.  \\
      {\tt NDIM} & {\tt [I]} & 配列の寸法. 連立方程式の次数.  \\
      {\tt XV}   & {\tt [R]} & 
          {\tt IDIM}$\times${\tt JDIM}$\times${\tt NDIM}の配列.
          連立方程式の右辺ベクトルを入力として与え, 解が上書きされて出
          力される. \\
      {\tt ALU}  & {\tt [R]} & 
          {\tt JDIM}$\times${\tt NDIM}$\times${\tt (-1:1)}の配列. 
          {\tt NDIM}$\times${\tt NDIM}の LU 分解された 3 重対角行列が 
          {\tt JDIM} 個ならんでいるものを同時に扱う. \\
    \end{tabular}
  \end{quote}
  \item 備考 
  \begin{enumerate}
    \item {\tt ALU(J,1,-1)}, {\tt ALU(J,NDIM,1)} はダミー変数である. 
  \end{enumerate}
\end{enumerate}
%\newpage
