% 表題   AGCM5 第4部 コードリファレンス GCM基本ルーチンライブラリ
%                                       (機種依存ルーチン)
%
% 履歴   
\Drireki{91/12/18 竹広真一}
\Drireki{92/02/03 竹広真一}
\Drireki{95/08/17 竹広真一}
%
\Dchapterhead

{\tt SYSDEP} パッケージでは, 
計算機ハードウェアの機種に依存するルーチンを集めている. 
インストールの際には以下のような仕様のサブルーチンを用意する必要がある. 

\section{サブルーチン$\cdot$関数の説明 : 機種依存ルーチン}

\subsection{ERRTRA}
\label{errtra}
  \begin{enumerate}
    \item 機能 
        \begin{quote}
           エラーのトレースバックを出力する. 
        \end{quote}
    \item 呼び出し方法 
        \begin{verbatim}
              CALL ERRTRA
        \end{verbatim}
    \item 備考 
        \begin{enumerate}
          \item ダミーのサブルーチンであってもプログラムの実行に関して
                支障はない. 
        \end{enumerate}
  \end{enumerate}

\subsection{YCLOCP}
\label{yclocp}
\begin{enumerate}
  \item 機能
      \begin{quote}
          前回サブルーチンが呼ばれてからの計算に要したCPU時間, 
          並びにその時点のCPU時間を出力する. 
      \end{quote}
  \item 呼び出し方法 
      \begin{verbatim}
          CALL YCLOCP
         I         ( HREM   )
      \end{verbatim}
  \item パラメーターの説明 
      \begin{quote}
      \begin{tabular}{llp{11cm}}
          {\tt HREM} & {\tt [C*(*)]} & 
            出力の表題. 実際に出力されるのは 8 文字まで. \\
      \end{tabular}
      \end{quote}
  \item 備考 
      \begin{enumerate}
        \item 出力装置番号は 6 番である. 
      \end{enumerate}
\end{enumerate}

\subsection{YCLOCK}
\label{yclock}
  \begin{enumerate}
    \item 機能 
        \begin{quote}
           CPU時間を計測する. 
        \end{quote}
    \item 呼び出し方法 
        \begin{verbatim}
            CALL YCLOCK
           O         ( CPUTIM, VPUTIM )
        \end{verbatim}
    \item パラメーターの説明 
        \begin{quote}
        \begin{tabular}{llp{11cm}}
            {\tt CPUTIM} & {\tt [R]} & スカラー時間. \\
            {\tt VPUTIM} & {\tt [R]} & ベクトル時間. \\
        \end{tabular}
        \end{quote}
    \item 備考 
        \begin{enumerate}
          \item 特になし. 
        \end{enumerate}
  \end{enumerate}

\subsection{YCLOCL}
  \begin{enumerate}
    \item 機能
      \begin{quote}
        CPU時間をクリアーする. 
      \end{quote}
    \item 呼びだし方法
          \begin{verbatim}
            CALL YCLOCL
          \end{verbatim}
    \item 備考
  \end{enumerate}


\subsection{MKFILN}
\label{mkfiln}
  \begin{enumerate}
    \item 機能
      \begin{quote}
        ファイル名を機種に適合した形式に変更する. 
      \end{quote}
    \item 呼びだし方法
        \begin{verbatim}
            CALL MKFILN
           M         ( HFILE ,
           I           HCH   , HREP    )
        \end{verbatim}
    \item パラメーターの説明
        \begin{quote}
        \begin{tabular}{llp{11cm}}
            {\tt HFILE} & {\tt [C*(*)]} & ファイル名 \\
            {\tt HCH}   & {\tt [C*1]}   & 置換の対象とする文字 \\
            {\tt HREP}  & {\tt [C*(*)]} & 置換する文字列\\
        \end{tabular}
        \end{quote}
    \item 備考
        \begin{enumerate}
          \item 入力ファイル名 {\tt HFILE} の中の文字 {\tt HCH} を 
            文字列{\tt HREP} に置き換える. さらに {\tt /} が含まれてい
            た場合には, 機種に適合する区切子に置き換える. 
          \item 扱えるファイル名の最大長は内部変数 {\tt NFILN} によって
            定まっている(オリジナルは 38 文字). 
        \end{enumerate}
  \end{enumerate}

\subsection{REWNML}
\label{rewnml}
  \begin{enumerate}
    \item 機能
        \begin{quote}
            NAMELISTファイルの入力巻き戻しをし, 入出力装置番号を返す. 
        \end{quote}
    \item 呼びだし方法
        \begin{verbatim}
          CALL REWNML
         O         ( IFILE, JFILE )
        \end{verbatim}
    \item パラメーターの説明
        \begin{quote}
        \begin{tabular}{llp{11cm}}
            {\tt IFILE} & {\tt [I]} & NAMELIST入力ファイルの装置番号. \\
            {\tt JFILE} & {\tt [I]} & NAMELIST出力ファイルの装置番号. \\
        \end{tabular}
        \end{quote}
    \item 備考
        \begin{enumerate}
          \item NAMELIST入出力装置番号のデフォルトは5番と6番である. 
                装置番号はサブルーチン {\tt SETNML} で設定できる. 
        \end{enumerate}
  \end{enumerate}

\subsection{SETNML}
\label{setnml}
  \begin{enumerate}
    \item 機能
        \begin{quote}
            NAMELIST入出力装置番号を設定する. 
        \end{quote}
    \item 呼びだし方法
        \begin{verbatim}
          CALL SETNML
         I         ( IFILE, JFILE )
        \end{verbatim}
    \item パラメーターの説明 : {\tt REWNML} に同じ(\ref{rewnml}).
    \item 備考
  \end{enumerate}

\subsection{YERRST}
\label{yerrst}
  \begin{enumerate}
    \item 機能
        \begin{quote}
          エラー処理の変更を行う. 
        \end{quote}
    \item 呼びだし方法
        \begin{verbatim}
          CALL YERRST
        \end{verbatim}
    \item 備考
        \begin{enumerate}
          \item Lahey 版では underflow の処理を設定している. 
          \item Hitac 版では?
        \end{enumerate}
  \end{enumerate}

\subsection{YDATE}
\label{ydate}
  \begin{enumerate}
    \item 機能
        \begin{quote}
          現在の日付を取得する. 
        \end{quote}
    \item 呼びだし方法
        \begin{verbatim}
          CALL YDATE
         O         ( HDATE )
        \end{verbatim}
    \item パラメーターの説明
        \begin{quote}
        \begin{tabular}{llp{11cm}}
            {\tt HDATE} & {\tt [C*(*)]} & 日付. \\
        \end{tabular}
        \end{quote}
    \item 備考
        \begin{enumerate}
          \item 日付の書式は Lahey 版では (yyyy mm dd), 
                Hitac 版では (yyyy/mm/dd) である
        \end{enumerate}
  \end{enumerate}

\subsection{YTIME}
\label{ytime}
  \begin{enumerate}
    \item 機能
        \begin{quote}
          現在の時刻を取得する. 
        \end{quote}
    \item 呼びだし方法
        \begin{verbatim}
          CALL YTIME
         O         ( HTIME )
        \end{verbatim}
    \item パラメーターの説明
        \begin{quote}
        \begin{tabular}{llp{11cm}}
            {\tt HTIME} & {\tt [C*(*)]} & 時刻. \\
        \end{tabular}
        \end{quote}
    \item 備考
        \begin{enumerate}
          \item 時刻の書式は Lahey 版では (hh mm ss), 
                Hitac 版では (hh:mm:ss) である
        \end{enumerate}
  \end{enumerate}

\subsection{IOSLEV}
\label{ioslev}
  \begin{enumerate}
    \item 機能
        エラーレベルを返す. 
    \item 呼びだし方法
        \begin{verbatim}
            IOSLEV( IOS )
        \end{verbatim}
    \item パラメーターの説明
        \begin{quote}
        \begin{tabular}{llp{11cm}}
            {\tt IOS}    & {\tt [I]} &  \\
            {\tt IOSLEV} & {\tt [I]} &  \\
        \end{tabular}
        \end{quote}
    \item 備考
        \begin{enumerate}
          \item IOSLEV は 0, 2 の値をとることができる(Lahey)?
          \item IOSLEV は 0, 1, 2 の値をとることができる(HITAC)?
        \end{enumerate}
  \end{enumerate}

%\newpage
