%表題   MISC1 (その他の基本処理下位パッケージ)
%
%履歴
%\Drireki{
%         91/12/17 塩谷雅人
%         92/03/14 塩谷雅人
%         92/04/13 塩谷雅人
%         92/04/22 林祥介   (4.1版)
%        }
%
\Dchapterhead
\label{fmtlib}

\section{概要}

数値を編集して文字列化するサブルーチンパッケージ.

\section{サブルーチンのリスト}
\begin{tabular}{lp{10cm}}
  {\tt CHVAL(CFMT,VAL,CVAL)} & 数値を文字列化する \\
\end{tabular}

\section{サブルーチンの説明}
\subsection{CHVAL}
\label{fmtlib.sub.chval}
\begin{enumerate}
  \item 機能
  \begin{quote}
    実数値を文字書式仕様にしたがって文字列化する.
    8文字以内におさまるよう(有効数字は3桁以下)
    自動的に書式仕様を生成するオプションもある.
  \end{quote}
  \item 呼び出し方法
  \begin{quote}
    {\tt CALL CHVAL(CFMT,VAL,CVAL)}
  \end{quote}
  \item パラメーターの説明
  \begin{quote}
    \begin{tabular}{llp{10cm}}
      {\tt CFMT} & {\tt (C*(*))} & 文字書式仕様あるいは{\tt CHVAL}が
        解釈するオプション. {\tt CFMT}の最初の文字が{\tt '('}で
        始まるとき文字書式仕様と解釈する. これ以外のときの
        オプションとして次の4つが指定可能である. \\
      & & \hspace{0.5cm}{\tt 'A'}: 書式仕様を自動的に生成する. \\
      & & \hspace{0.5cm}{\tt 'B'}: {\tt 'A'}かつ後続の'0'と小数点を除く. \\
      & & \hspace{0.5cm}{\tt 'C'}: {\tt 'B'}かつ小数点の前の'0'を除く. \\
      & & \hspace{0.5cm}{\tt 'D'}: {\tt 'C'}, ただし指数形式のときに限る.\\
      & & たとえば{\tt CFMT}として{\tt 'A'}, {\tt '(F6.1)'}のように指定する. \\
      {\tt VAL}  & {\tt (R)}     & 文字化する実数値. \\
      {\tt CVAL} & {\tt (C*(*))} & 文字化された実数値を返す
        長さが8文字以上の文字型の引数.
    \end{tabular}
  \end{quote}
  \item 備考
  \begin{enumerate}
    \item {\tt CFMT}の長さは16文字以下でなければならない.
    \item {\tt CFMT}として整数型の編集記述子も指定できる.
      このとき{\tt VAL}の小数点以下を四捨五入して文字列化される.
    \item {\tt CHVAL}は自動的に文字を左詰めする.
      つまり実数値1.2を文字化するために{\tt '(F4.1)'}としても
      {\tt '(F8.1)'}としても{\tt CHVAL}が返す値はどちらも{\tt '1.2'}である.
    \item システムによっては, F型編集記述子によって1より小さい
      値を編集するとき, 小数点の左隣にゼロがつかない場合があるが,
      このルーチンはそのような場合{\tt '0'} (ゼロ)を補う.
    \item 指数部を示す文字は{\tt 'e'} (小文字)を用いている.
    \item 整数は有効数字の桁数以下になる.
  \end{enumerate}
\end{enumerate}
