%表題   GRPH2 図形処理上位パッケージ
%
%履歴
%\Drireki{
%         90/03/22 塩谷雅人
%         91/09/05 林祥介
%         91/12/10 林祥介
%         92/02/05 塩谷雅人
%         92/02/22 塩谷雅人
%         92/04/22 林祥介   (4.1版)
%         94/03/18 塩谷雅人
%        }
%
\section{サブルーチンのリスト}

\subsubsection{上位応用ルーチン (ULA)}
  \begin{quote}
  \begin{tabular}{lp{10cm}}
    {\tt UXAXDV(CSIDE,DX1,DX2)} & 目盛とラベルを描く間隔を指定して
                                  座標軸を描く. \\
    {\tt UYAXDV(CSIDE,DY1,DY2)} &               \\
    {\tt UXAXNM(CSIDE,UX1,N1,UX2,N2)} & 目盛とラベルを描く場所を
                                        指定して座標軸を描く. \\
    {\tt UYAXNM(CSIDE,UY1,N1,UY2,N2)} &                       \\
    {\tt UXAXLB(CSIDE,UX1,N1,UX2,CH,NC,N2)} & 目盛とラベルを描く場所を
                                              指定して座標軸を描く. \\
    {\tt UYAXLB(CSIDE,UY1,N1,UY2,CH,NC,N2)} &                       \\
    {\tt UXMTTL(CSIDE,CTTL,PX)}	& 大きめのタイトルを描く. \\
    {\tt UYMTTL(CSIDE,CTTL,PY)}	&                         \\
    {\tt UXSTTL(CSIDE,CTTL,PX)}	& 小さめのタイトルを描く. \\
    {\tt UYSTTL(CSIDE,CTTL,PY)} &                         \\
  \end{tabular}
  \end{quote}
  \vspace{1em}

\subsubsection{下位応用ルーチン (LLA)}
  \begin{quote}
  \begin{tabular}{lp{10cm}}
    {\tt UXPAXS(CSIDE,ISLCT)} & 軸を示す線分を描く. \\
    {\tt UYPAXS(CSIDE,ISLCT)} &                     \\
    {\tt UXPTMK(CSIDE,ISLCT,UX,N)} & 目盛を描く. \\
    {\tt UYPTMK(CSIDE,ISLCT,UY,N)} &             \\
    {\tt UXPLBL(CSIDE,ISLCT,UX,CH,NC,N)} & 文字列で指定したラベルを描く. \\
    {\tt UYPLBL(CSIDE,ISLCT,UY,CH,NC,N)} &                               \\
    {\tt UXPNUM(CSIDE,ISLCT,UX,N)} & 数値で指定したラベルを描く. \\
    {\tt UYPNUM(CSIDE,ISLCT,UY,N)} &                             \\
    {\tt UXPTTL(CSIDE,ISLCT,CTTL,PX)} & タイトルを描く. \\
    {\tt UYPTTL(CSIDE,ISLCT,CTTL,PY)} &                 \\
  \end{tabular}
  \end{quote}
  \vspace{1em}

\subsubsection{\bf UZPACK}

  \begin{quote}
  \begin{tabular}{lp{10cm}}
    {\tt \UZPGET (CP,IPARA)} & 内部変数を参照する. \\
    {\tt \UZPSET (CP,IPARA)} & 内部変数を変更する. \\
    {\tt \UZPSTX (CP,IPARA)} & 内部変数を変更する
                             (実行時オプションによる変更を許す). \\
    {\tt UZINIT}           & 内部変数を初期化する. \\
    {\tt UZFACT(RFACT)}    & 内部変数を何倍かする. \\
    {\tt UZPSAV}           & 内部変数をスクラッチファイルに書き出す. \\
    {\tt UZPRST}           & スクラッチファイルに書いた値で再設定する.
  \end{tabular}
  \end{quote}
  \vspace{1em}

\newpage

\section{サブルーチンの説明 : 上位応用ルーチン (ULA)}
\label{uxyzpack.refULA}

このサブルーチンパッケージ UXPACK/UYPACK/UZPACK
において, 実際にユーザーが使用するであろうルーチン群.
下位応用ルーチン (LLA)を組み合わせて書かれており,
座標軸の構成要素の属性は \UZPGETSET によって
参照/変更することができる.
上位応用ルーチン(ULA)に関する以下の説明では,
内部で呼ばれている下位応用ルーチン名が
しばしば引用されるので, くわしくは\ref{uxyzpack.refLLA}節を参照のこと.

\vspace{1em}
上位応用ルーチン(ULA)に含まれるサブルーチンとしては以下のものがある.
\begin{itemize}
  \item 座標軸(目盛とラベル)の描画ルーチン
  \begin{description}
    \item {\tt UXAXDV/UYAXDV} $ \cdots $
      目盛とラベルを描く間隔を指定して座標軸を描く.
    \item {\tt UXAXNM/UYAXNM} $ \cdots $
      目盛とラベルを描く場所を指定して座標軸を描く.
    \item {\tt UXAXLB/UYAXLB} $ \cdots $
      目盛とラベルを描く場所, つけるラベルを指定して座標軸を描く.
  \end{description}
  \item タイトルの描画ルーチン
  \begin{description}
    \item {\tt UXMTTL/UYMTTL} $ \cdots $ 大きめのタイトルを描く.
    \item {\tt UXSTTL/UYSTTL} $ \cdots $ 小さめのタイトルを描く.
  \end{description}
\end{itemize}
等間隔の目盛と数値ラベルを描くだけなら{\tt UXAXDV/UYAXDV}を用いればよい.
不等間隔の目盛と数値ラベルを描きたければ{\tt UXAXNM/UYAXNM}を
用いればよい.
数値ラベルのフォーマットはユーザーが指定することも可能なので,
数値ラベル座標軸の描画はほぼこれらのルーチンで事足りる.
それでも満足できない場合は, 目盛とラベルを描く位置さらには
描くラベルを指定するルーチン{\tt UXAXLB/UYAXLB}を用いればよい.
また, タイトルは{\tt UXMTTL/UYMTTL}, {\tt UXSTTL/UYSTTL}によって,
描いたラベル等のオフセット量を気にしなくても
次々と重ならないように描くことができる.

\vspace{1em}
以下の説明で共通してあらわれる引数 {\tt CSIDE} は,
座標軸の構成要素を描く場所を指定するパラメーターで,
X軸については {\tt 'B'}, {\tt 'T'}, {\tt 'U'} が指定できる;
Y軸については {\tt 'L'}, {\tt 'R'}, {\tt 'U'} が指定できる
(くわしくは\ref{uxyzpack.struct.basho}節参照).

\vspace{1em}
目盛は{\tt CSIDE}すべての選択について描かれる.
しかしラベルを描くかどうかは, 場所に依存した内部変数\LABELZS が決める.
この内部変数が{\tt .TRUE.}なら描く, {\tt .FALSE.}なら描かない
(初期値は, {\tt .TRUE.}, {\tt .FALSE.}, {\tt .TRUE.},
{\tt .TRUE.}, {\tt .FALSE.}, {\tt .TRUE.}).
つまり初期設定では, 下({\tt 'B'})の座標軸と左({\tt 'L'})の
座標軸についてラベルを描くが, 上({\tt 'T'})の座標軸と右({\tt 'R'})の
座標軸についてはラベルを描かない
(ユーザーの座標軸はラベルを描く).

\vspace{1em}
以下のルーチンのうち, {\tt UXAXLB/}{\tt UYAXLB},
{\tt UXAXNM/}{\tt UYAXNM}, {\tt UXAXDV/}{\tt UYAXDV}については,
内部変数{\tt 'LOFFSET'}が{\tt .TRUE.}なら
座標系をリニアオフセットする;{\tt .FALSE.}ならしない
(初期値は{\tt .FALSE.}).
つまり, 内部変数{\tt 'LOFFSET'}が{\tt .TRUE.}のとき
次のように座標系の変換がおこなわれウインドウが再設定される
(この設定はルーチン内でのみ有効であって,
ルーチンを抜け出すとき最初の設定に戻される;
つまり座標軸を描くときのみ有効である).
\begin{quote}
  UXPACKについては内部変数{\tt 'XOFFSET'}, {\tt 'XFACT'}を参照して
  次の変換をおこなう.
  \[ f(x) = {\tt XFACT} \times x + {\tt XOFFSET} \]
\end{quote}
\begin{quote}
  UYPACKについては内部変数{\tt 'YOFFSET'}, {\tt 'YFACT'}を参照して
  次の変換をおこなう.
  \[ g(y) = {\tt YFACT} \times y + {\tt YOFFSET} \]
\end{quote}
これはたとえば,
温度に関するデータがあってデータの単位はセ氏で与えられているが,
目盛は華氏で打ちたいというときなどに有効である.

\subsection{UXAXDV/UYAXDV}
\label{uxyzpack.refULA.uxaxdv}
\begin{enumerate}
  \item 機能
  \begin{quote}
    目盛とラベルを描く間隔を指定して座標軸を描く.
  \end{quote}
  \item 呼び出し方法
  \begin{quote}
    {\tt CALL UXAXDV(CSIDE,DX1,DX2)} \\
    {\tt CALL UYAXDV(CSIDE,DY1,DY2)}
  \end{quote}
  \item パラメーターの説明
  \begin{quote}
    \begin{tabular}{llp{10cm}}
      {\tt CSIDE} & {\tt (C*1)} & 座標軸を描く場所を指定する
        (\ref{uxyzpack.struct.basho}節参照). \\
      {\tt DX1}, {\tt DY1} & {\tt (R)} & 小さめの目盛を描く
        間隔を指定する(U座標系の値で指定する). \\
      {\tt DX2}, {\tt DY2} & {\tt (R)} & 大きめの目盛および
        ラベルを描く間隔を指定する(U座標系の値で指定する).
        {\tt DX2}および{\tt DY2}はそれぞれ{\tt DX1}および{\tt DY1}の
        整数倍でなければならない. \\
    \end{tabular}
  \end{quote}
  \item 備考
  \begin{enumerate}
    \item 目盛およびラベルは指定した間隔の整数倍の場所に描かれる.
    \item {\tt UXAXDV/}{\tt UYAXDV}はそれぞれ
      {\tt UXPAXS/}{\tt UYPAXS} ({\tt ISLCT=2})で軸を描いている;
      {\tt UXPTMK/}{\tt UYPTMK} ({\tt ISLCT=1})で小さめの目盛を描いている;
      {\tt UXPTMK/}{\tt UYPTMK} ({\tt ISLCT=2})で大きめの目盛を描いている;
      {\tt UXPNUM/}{\tt UYPNUM} ({\tt ISLCT=1})でラベルを描いている.
    \item このルーチンは目盛とラベルを描く場所を内部で生成して
      {\tt UXPTMK/}{\tt UYPTMK}などを呼んでいる. この作業用配列の制約から
      目盛を打つ最大数は200以下でなければならない.
    \item 規定値は{\tt CHVAL}で{\tt B}のオプションによって作成される.
      3桁以下で作成されるので、4桁以上のラベルのフォーマットは
      {\tt UXSFMT/}{\tt UYSFMT}
      (\ref{uxyzpack.refLLA.uxpnum}節参照)を使用して作成できる.
%    \item 目盛は{\tt CSIDE}すべての選択について描かれる.
%     しかしラベルを描くかどうかは, 場所に依存した内部変数\LABELZS が決める.
%     この内部変数が{\tt .TRUE.}なら描く, {\tt .FALSE.}なら描かない
%     (初期値は, {\tt .TRUE.}, {\tt .FALSE.}, {\tt .TRUE.},
%     {\tt .TRUE.}, {\tt .FALSE.}, {\tt .TRUE.}).
  \end{enumerate}
\end{enumerate}

\subsection{UXAXNM/UYAXNM}
\label{uxyzpack.refULA.uxaxnm}
\begin{enumerate}
  \item 機能
  \begin{quote}
    目盛とラベルを描く場所を指定して座標軸を描く.
  \end{quote}
  \item 呼び出し方法
  \begin{quote}
    {\tt CALL UXAXNM(CSIDE,UX1,N1,UX2,N2)} \\
    {\tt CALL UYAXNM(CSIDE,UY1,N1,UY2,N2)}
  \end{quote}
  \item パラメーターの説明
  \begin{quote}
    \begin{tabular}{llp{10cm}}
      {\tt CSIDE} & {\tt (C*1)} & 座標軸を描く場所を指定する
        (\ref{uxyzpack.struct.basho}節参照). \\
      {\tt UX1}, {\tt UY1} & {\tt (R)} & 小さめの目盛を描く
        場所を格納した長さ{\tt N1}の配列(U座標系の値で指定する). \\
      {\tt N1} & {\tt (I)} & 配列{\tt UX1}, {\tt UY1}の長さ. \\
      {\tt UX2}, {\tt UY2} & {\tt (R)} & 大きめの目盛および
        ラベルを描く場所を格納した長さ{\tt N2}の配列
        (U座標系の値で指定する). \\
      {\tt N2} & {\tt (I)} & 配列{\tt UX2}, {\tt UY2}の長さ. \\
    \end{tabular}
  \end{quote}
  \item 備考
  \begin{enumerate}
    \item {\tt UXAXNM/}{\tt UYAXNM}はそれぞれ
      {\tt UXPAXS/}{\tt UYPAXS} ({\tt ISLCT=2})で軸を描いている;
      {\tt UXPTMK/}{\tt UYPTMK} ({\tt ISLCT=1})で小さめの目盛を描いている;
      {\tt UXPTMK/}{\tt UYPTMK} ({\tt ISLCT=2})で大きめの目盛を描いている;
      {\tt UXPNUM/}{\tt UYPNUM} ({\tt ISLCT=1})でラベルを描いている.
    \item {\tt N1}として0以下の値を指定すると{\tt UXPTMK/}{\tt UYPTMK}
      ({\tt ISLCT=1})を呼ばない.
      このとき{\tt UX1}, {\tt UY1}にはダミーの変数を与えればよい.
    \item {\tt N2}として0以下の値を指定すると{\tt UXPTMK/}{\tt UYPTMK}
      ({\tt ISLCT=2}), {\tt UXPNUM/}{\tt UYPNUM} ({\tt ISLCT=1})を呼ばない.
      このとき{\tt UX2}, {\tt UY2}には
      ダミーの変数を与えればよい.
    \item ラベルのフォーマットは{\tt UXSFMT/}{\tt UYSFMT}
      (\ref{uxyzpack.refLLA.uxpnum}節参照)によって変更できる.
%   \item 目盛は{\tt CSIDE}すべての選択について描かれる.
%     しかしラベルを描くかどうかは, 場所に依存した内部変数\LABELZS が決める.
%     この内部変数が{\tt .TRUE.}なら描く, {\tt .FALSE.}なら描かない
%     (初期値は, {\tt .TRUE.}, {\tt .FALSE.}, {\tt .TRUE.},
%     {\tt .TRUE.}, {\tt .FALSE.}, {\tt .TRUE.}).
  \end{enumerate}
\end{enumerate}

\subsection{UXAXLB/UYAXLB}
\label{uxyzpack.refULA.uxaxlb}
\begin{enumerate}
  \item 機能
  \begin{quote}
    目盛とラベルを描く場所を指定して座標軸を描く.
    描くラベルも指定する.
  \end{quote}
  \item 呼び出し方法
  \begin{quote}
    {\tt CALL UXAXLB(CSIDE,UX1,N1,UX2,CH,NC,N2)} \\
    {\tt CALL UYAXLB(CSIDE,UY1,N1,UY2,CH,NC,N2)}
  \end{quote}
  \item パラメーターの説明
  \begin{quote}
    \begin{tabular}{llp{10cm}}
      {\tt CSIDE} & {\tt (C*1)} & 座標軸を描く場所を指定する
        (\ref{uxyzpack.struct.basho}節参照). \\
      {\tt UX1}, {\tt UY1} & {\tt (R)} & 小さめの目盛を描く
        場所を格納した長さ{\tt N1}の配列(U座標系の値で指定する). \\
      {\tt N1} & {\tt (I)} & 配列{\tt UX1}, {\tt UY1}の長さ. \\
      {\tt UX2}, {\tt UY2} & {\tt (R)} & 大きめの目盛および
        ラベルを描く場所を格納した長さ{\tt N2}の配列
        (U座標系の値で指定する). \\
      {\tt CH} & {\tt (C*(NC))} & 描くラベルを格納した文字長{\tt NC}
        長さ{\tt N2}の文字型配列. \\
      {\tt NC} & {\tt (I)} & 配列{\tt CH}の文字長. \\
      {\tt N2} & {\tt (I)} & 配列{\tt UX2}, {\tt UY2}, {\tt CH}の長さ. \\
    \end{tabular}
  \end{quote}
  \item 備考
  \begin{enumerate}
    \item {\tt UXAXLB/}{\tt UYAXLB}はそれぞれ
      {\tt UXPAXS/}{\tt UYPAXS} ({\tt ISLCT=2})で軸を描いている;
      {\tt UXPTMK/}{\tt UYPTMK} ({\tt ISLCT=1})で小さめの目盛を描いている;
      {\tt UXPTMK/}{\tt UYPTMK} ({\tt ISLCT=2})で大きめの目盛を描いている;
      {\tt UXPLBL/}{\tt UYPLBL} ({\tt ISLCT=1})でラベルを描いている.
    \item {\tt N1}として0以下の値を指定すると{\tt UXPTMK/}{\tt UYPTMK}
      ({\tt ISLCT=1})を呼ばない.
      このとき{\tt UX1}, {\tt UY1}にはダミーの変数を与えればよい.
    \item {\tt N2}として0以下の値を指定すると{\tt UXPTMK/}{\tt UYPTMK}
      ({\tt ISLCT=2}), {\tt UXPLBL/}{\tt UYPLBL} ({\tt ISLCT=1})を呼ばない.
      このとき{\tt UX2}, {\tt UY2}, {\tt CH}, {\tt NC}には
      ダミーの変数を与えればよい.
%   \item 目盛は{\tt CSIDE}すべての選択について描かれる.
%     しかしラベルを描くかどうかは, 場所に依存した内部変数\LABELZS が決める.
%     この内部変数が{\tt .TRUE.}なら描く, {\tt .FALSE.}なら描かない
%     (初期値は, {\tt .TRUE.}, {\tt .FALSE.}, {\tt .TRUE.},
%     {\tt .TRUE.}, {\tt .FALSE.}, {\tt .TRUE.}).
  \end{enumerate}
\end{enumerate}

\subsection{UXMTTL/UYMTTL}
\label{uxyzpack.refULA.uxmttl}
\begin{enumerate}
  \item 機能
  \begin{quote}
    大きめのタイトルを描く.
  \end{quote}
  \item 呼び出し方法
  \begin{quote}
    {\tt CALL UXMTTL(CSIDE,CTTL,PX)} \\
    {\tt CALL UYMTTL(CSIDE,CTTL,PY)}
  \end{quote}
  \item パラメーターの説明
  \begin{quote}
    \begin{tabular}{llp{10cm}}
      {\tt CSIDE} & {\tt (C*1)} & 座標軸を描く場所を指定する
        (\ref{uxyzpack.struct.basho}節参照). \\
      {\tt CTTL} & {\tt (C*(*))} & 描くタイトル. \\
      {\tt PX}, {\tt PY} & {\tt (R)} & --1から+1の間の実数値で
        タイトルを描く位置を
        指定する. \mbox{--1}のとき左よせ, 0のときセンタリング,
        +1のとき右よせする. \\
    \end{tabular}
  \end{quote}
  \item 備考
  \begin{enumerate}
    \item このルーチンは{\tt UXPTTL/}{\tt UYPTTL} ({\tt ISLCT=2})を使って
      タイトルを描いている.
  \end{enumerate}
\end{enumerate}

\subsection{UXSTTL/UYSTTL}
\label{uxyzpack.refULA.uxsttl}
\begin{enumerate}
  \item 機能
  \begin{quote}
    小さめのタイトルを描く.
  \end{quote}
  \item 呼び出し方法
  \begin{quote}
    {\tt CALL UXSTTL(CSIDE,CTTL,PX)} \\
    {\tt CALL UYSTTL(CSIDE,CTTL,PY)}
  \end{quote}
  \item パラメーターの説明
  \begin{quote}
    \begin{tabular}{llp{10cm}}
      {\tt CSIDE} & {\tt (C*1)} & 座標軸を描く場所を指定する
        (\ref{uxyzpack.struct.basho}節参照). \\
      {\tt CTTL} & {\tt (C*(*))} & 描くタイトル. \\
      {\tt PX}, {\tt PY} & {\tt (R)} & --1から+1の間の実数値で
        タイトルを描く位置を
        指定する. \mbox{--1}のとき左よせ, 0のときセンタリング,
        +1のとき右よせする. \\
    \end{tabular}
  \end{quote}
  \item 備考
  \begin{enumerate}
    \item このルーチンは{\tt UXPTTL/}{\tt UYPTTL} ({\tt ISLCT=1})を使って
      タイトルを描いている.
  \end{enumerate}
\end{enumerate}

\newpage

\section{サブルーチンの説明 : UZPACK}
\label{uxyzpack.refuz}

内部変数の管理や初期化をおこなうサブルーチンパッケージ.

\subsection{UZ{\it p}GET/UZ{\it p}SET(UZ{\it p}STX)}
\label{uxyzpack.refuz.uzpget}
\begin{enumerate}
  \item 機能
  \begin{quote}
    UXPACK/UYPACK/UZPACKで使う内部変数を参照/変更する.
    ({\tt UZPSTX} は実行時オプションによる変更を許す. )
  \end{quote}
  \item 呼び出し方法
  \begin{quote}
    {\tt CALL \UZPGET (CP,IPARA)} \\
    {\tt CALL \UZPSET (CP,IPARA)} \\
    {\tt CALL \UZPSTX (CP,IPARA)}
  \end{quote}
  \item パラメーターの説明
  \begin{quote}
    \begin{tabular}{llp{10cm}}
      {\tt CP} & {\tt (C*8)} & 内部変数の名前. \\
      {\tt IPARA} & {\tt (I,R,L)} & 内部変数の値.
    \end{tabular}

    \vspace{1em}
    以下に{\tt CP}として指定できる名前のリストを記す.
    \ROFFZS , \INDEXTI などの略記法については\ref{uxyzpack.struct.zokusei}節を
    参照のこと.

    \vspace{1em}
    \begin{tabbing}
      123456789 \= 1234 \=                                         \kill
      {\tt 'UXUSER'} \> {\tt (R)} \>
        \parbox[t]{10cm}
        {Y軸の作画ルーチンにおいて場所を示すパラメーターとして
        '{\tt U}'serを指定したときに用いられるX座標値
        (初期値は不定). 詳しくは\ref{uxyzpack.struct.basho}節参照.
        \rule[-1ex]{0ex}{1ex}} \\
      {\tt 'UYUSER'} \> {\tt (R)} \>
        \parbox[t]{10cm}
        {X軸の作画ルーチンにおいて場所を示すパラメーターとして
        '{\tt U}'serを指定したときに用いられるY座標値
        (初期値は不定). 詳しくは\ref{uxyzpack.struct.basho}節参照.
        \rule[-1ex]{0ex}{1ex}} \\
      \ROFFZS \> {\tt (R)} \>
        \parbox[t]{10cm}
        {最後に描いたラベルやタイトルの軸からの距離を保持している
        内部変数(初期値は, 0, 0, 0, 0, 0, 0).
        \ref{uxyzpack.refLLA.uxpaxs}節参照.
        \rule[-1ex]{0ex}{1ex}} \\
      \ROFGZS \> {\tt (R)} \>
        \parbox[t]{10cm}
        {座標軸を本来描く場所からどれだけ平行移動して描くかを
        指定する内部変数(初期値は, 0, 0, 0, 0, 0, 0).
        \ref{uxyzpack.refLLA.uxpaxs}節参照.
        \rule[-1ex]{0ex}{1ex}} \\
      \LABELZS \> {\tt (L)} \>
        \parbox[t]{10cm}
        {ラベルを描くかどうかを指定する内部変数;
        {\tt .TREU.}なら描く, {\tt .FALSE.}なら描かない
        (初期値は, {\tt .TRUE.}, {\tt .FALSE.}, {\tt .TRUE.},
        {\tt .TRUE.}, {\tt .FALSE.}, {\tt .TRUE.}).
        \ref{uxyzpack.refULA.uxaxlb}, \ref{uxyzpack.refULA.uxaxnm},
        \ref{uxyzpack.refULA.uxaxdv}節参照.
        \rule[-1ex]{0ex}{1ex}} \\
      \IROTLZS \> {\tt (I)} \>
        \parbox[t]{10cm}
        {ラベルの文字列の回転角を指定する内部変数;
        回転角は90度を単位とする整数値で指定する
        (初期値は, 0, 0, 0, 0, 0, 0).
        \ref{uxyzpack.struct.zokusei}, \ref{uxyzpack.refLLA.uxplbl}節参照.
        \rule[-1ex]{0ex}{1ex}} \\
      \IROTCZS \> {\tt (I)} \>
        \parbox[t]{10cm}
        {タイトルの文字列の回転角を指定する内部変数;
        回転角は90度を単位とする整数値で指定する
        (初期値は, 0, 0, 0, +1, +1, +1).
        \ref{uxyzpack.struct.zokusei}, \ref{uxyzpack.refLLA.uxpttl}節参照.
        \rule[-1ex]{0ex}{1ex}} \\
      \ICENTZS \> {\tt (I)} \>
        \parbox[t]{10cm}
        {ラベルの文字列のセンタリングオプションを指定する内部変数;
        --1のとき左よせ, 0のときセンタリング, +1のとき右よせする
        (初期値は, 0, 0, 0, +1, +1, +1).
        \ref{uxyzpack.struct.zokusei}, \ref{uxyzpack.refLLA.uxplbl}節参照.
        \rule[-1ex]{0ex}{1ex}} \\
      \INDEXTI \> {\tt (I)} \>
        \parbox[t]{10cm}
        {座標軸および目盛を描く線分のラインインデクスを指定する内部変数
        (初期値は, 不定, 1, 3).
        \ref{uxyzpack.struct.zokusei}, \ref{uxyzpack.refLLA.uxptmk}節参照.
        \rule[-1ex]{0ex}{1ex}} \\
      \INDEXLI \> {\tt (I)} \>
        \parbox[t]{10cm}
        {ラベルおよびタイトルの文字を描く線分の
        ラインインデクスを指定する内部変数
        (初期値は, 不定, 3, 3).
        \ref{uxyzpack.struct.zokusei}, \ref{uxyzpack.refLLA.uxplbl}節参照.
        \rule[-1ex]{0ex}{1ex}} \\
      \RSIZETI \> {\tt (R)} \>
        \parbox[t]{10cm}
        {目盛の長さを指定する内部変数
        (単位はV座標系;初期値は, 不定, 0.007, 0.014).
        \ref{uxyzpack.struct.zokusei}, \ref{uxyzpack.refLLA.uxptmk}節参照.
        \rule[-1ex]{0ex}{1ex}} \\
      \RSIZELI \> {\tt (R)} \>
        \parbox[t]{10cm}
        {ラベルの文字の高さを指定する内部変数
        (単位はV座標系;初期値は, 不定, 0.021, 0.028).
        \ref{uxyzpack.struct.zokusei}, \ref{uxyzpack.refLLA.uxplbl}節参照.
        \rule[-1ex]{0ex}{1ex}} \\
      \RSIZECI \> {\tt (R)} \>
        \parbox[t]{10cm}
        {タイトルの文字の高さを指定する内部変数
        (単位はV座標系;初期値は, 不定, 0.028, 0.035).
        \ref{uxyzpack.struct.zokusei}, \ref{uxyzpack.refLLA.uxpttl}節参照.
        \rule[-1ex]{0ex}{1ex}} \\
      {\tt 'LOFFSET'} \> {\tt (L)} \>
        \parbox[t]{10cm}
        {座標系をリニアオフセットするかどうかを指定する内部変数.
        {\tt .TRUE.}ならリニアオフセットする;
        {\tt .FALSE.}ならしない(初期値は{\tt .FALSE.}).
        \ref{uxyzpack.refULA}節参照.
        \rule[-1ex]{0ex}{1ex}} \\
      {\tt 'XOFFSET'} \> {\tt (R)} \>
        \parbox[t]{10cm}
        {{\tt 'LOFFSET'}が{\tt .TRUE.}のとき,
        X軸のオフセット値を指定する内部変数
        (初期値は0.0).
        \ref{uxyzpack.refULA}節参照.
        \rule[-1ex]{0ex}{1ex}} \\
      {\tt 'YOFFSET'} \> {\tt (R)} \>
        \parbox[t]{10cm}
        {{\tt 'LOFFSET'}が{\tt .TRUE.}のとき,
        Y軸のオフセット値を指定する内部変数
        (初期値は0.0).
        \ref{uxyzpack.refULA}節参照.
        \rule[-1ex]{0ex}{1ex}} \\
      {\tt 'XFACT'} \> {\tt (R)} \>
        \parbox[t]{10cm}
        {{\tt 'LOFFSET'}が{\tt .TRUE.}のとき,
        X軸のファクター値を指定する内部変数
        (初期値は1.0).
        \ref{uxyzpack.refULA}節参照.
        \rule[-1ex]{0ex}{1ex}} \\
      {\tt 'YFACT'} \> {\tt (R)} \>
        \parbox[t]{10cm}
        {{\tt 'LOFFSET'}が{\tt .TRUE.}のとき,
        Y軸のファクター値を指定する内部変数
        (初期値は1.0).
        \ref{uxyzpack.refULA}節参照.
        \rule[-1ex]{0ex}{1ex}} \\
      {\tt 'PAD1'} \> {\tt (R)} \>
        \parbox[t]{10cm}
        {1つ前に描いた座標軸の構成要素からどれだけ離して
        ラベルを描くかを指定する内部変数
        (初期値は0.7; 単位は今描こうとしているラベルの高さを1とする).
        \rule[-1ex]{0ex}{1ex}} \\
      {\tt 'PAD2'} \> {\tt (R)} \>
        \parbox[t]{10cm}
        {座標軸のオフセット量を内部的に決める時に用いる内部変数
        (初期値は1.5; 単位は内部変数{\tt 'RSIZEC2'}の大きさを1とする).
        \rule[-1ex]{0ex}{1ex}} \\
      {\tt 'IFLAG'} \> {\tt (I)} \>
        \parbox[t]{10cm}
        {座標軸の設定を'{\tt U}'serでおこなった場合,
        ラベルとタイトルを軸のどちら側に描くかを指定する内部変数.
        {\tt 'IFLAG'}が正のときラベルは{\tt UXPLBL}については上側,
        {\tt UYPLBL}については右側に描かれる.
        負のときはその逆である. 初期値は--1.
        \ref{uxyzpack.refLLA.uxplbl}節参照.
        \rule[-1ex]{0ex}{1ex}} \\
      {\tt 'LBTWN'} \> {\tt (L)} \>
        \parbox[t]{10cm}
        {ラベルを描く場所に関するオプションを指定する内部変数.
        {\tt 'LBTWN'}が{\tt .TRUE.}なら間に描く;
        {\tt .FALSE.}ならその場所に描く(初期値は{\tt .FALSE.}).
        \ref{uxyzpack.refLLA.uxplbl}節参照.
        \rule[-1ex]{0ex}{1ex}} \\
      {\tt 'RBTWN'} \> {\tt (R)} \>
        \parbox[t]{10cm}
        {ラベルを間に描くとき
        ({\tt 'LBTWN'}が{\tt .TRUE.}のとき),
        さらにその位置を詳しく指定する.
        --1.0のとき左よせ, 0.0のときセンタリング, +1.0のとき右よせする
        (初期値は0.0).
        \rule[-1ex]{0ex}{1ex}} \\
      {\tt 'LBOUND'} \> {\tt (L)} \>
        \parbox[t]{10cm}
        {タイトルを描こうとして, 文字幅がビューポートの幅を
        越えてしまうようなとき,
        タイトルを描くかどうかを指定する.
        {\tt .TRUE.}なら描かない, {\tt .FALSE.}なら描く
        (初期値は{\tt .FALSE.}).
        \rule[-1ex]{0ex}{1ex}} \\
      {\tt 'LBMSG'} \> {\tt (L)} \>
        \parbox[t]{10cm}
        {{\tt 'LBOUND'}が{\tt .TRUE.}でタイトルを描くスペースがないとき,
        エラーメッセージを出力するかどうかを指定する.
        {\tt .TRUE.}なら出力する, {\tt .FALSE.}なら出力しない
        (初期値は{\tt .TRUE.}).
        \rule[-1ex]{0ex}{1ex}} \\
      {\tt 'INNER'} \> {\tt (I)} \>
        \parbox[t]{10cm}
        {目盛を内側に向かって打つか,
        外側に向かって打つかを指定する内部変数.
        {\tt 'INNER'}が正のとき内側に向かって目盛を打つ;
        負のとき外側に向かって目盛を打つ(初期値は+1).
        \rule[-1ex]{0ex}{1ex}} \\
%     {\tt 'IUNIT'} \> {\tt (I)} \>
%       \parbox[t]{10cm}
%       {{\tt UZPSAV} (\ref{uxyzpack.refuz.uzpsav}節),
%       {\tt UZPRST} (\ref{uxyzpack.refuz.uzprst}節)が
%       用いるスクラッチファイルの装置番号を指定する内部変数.
%       (初期値は51).
%       \rule[-1ex]{0ex}{1ex}} \\
      {\tt 'IUNDEF'} \> {\tt (I)} \>
        \parbox[t]{10cm}
        {値が不定であることを示す内部変数
        (初期値は-999).
        \rule[-1ex]{0ex}{1ex}}
     \end{tabbing}
  \end{quote}
  \item 備考
  \begin{enumerate}
    \item 内部変数を管理するための下請けルーチンとして
      以下のものがある.
      \begin{quote}
      \begin{tabular}{lp{8cm}}
        {\tt UZPQNP(NCP)}       &
          内部変数の総数{\tt NCP}を求める. \\
        {\tt UZPQID(CP,IDX)}    &
          内部変数{\tt CP}の位置{\tt IDX}を求める.  \\
        {\tt UZPQCP(IDX,CP)}    &
          {\tt IDX}の位置にある内部変数の名前{\tt CP}を参照する.  \\
        {\tt UZPQVL(IDX,IPARA)} &
          {\tt IDX}の位置にある内部変数の値{\tt IPARA}を参照する.  \\
        {\tt UZPSVL(IDX,IPARA)} &
          {\tt IDX}の位置にある内部変数の値{\tt IPARA}を変更する.  \\
      \end{tabular}
      \end{quote}
    \item \UZPGET は上に述べた{\tt UZPQID}を呼んで
      内部変数の位置を求め, {\tt UZPQVL}によって値を参照する;
      \UZPSET は{\tt UZPQID}を呼んで内部変数の位置を求め,
      {\tt UZPSVL}によって値を設定する.
      したがって指定した内部変数名が見つからないとき,
      エラーメッセージは{\tt UZPQID}が出力する.
    \item 内部変数の型に応じ, {\tt IPARA}として適切な型の
      定数あるいは変数を指定すること.
  \end{enumerate}
\end{enumerate}

\subsection{UZINIT}
\label{uxyzpack.refuz.uzinit}
\begin{enumerate}
  \item 機能
  \begin{quote}
    内部変数 \ROFFZS , \ROFGZS をすべて0にセットする.
  \end{quote}
  \item 呼び出し方法
  \begin{quote}
    {\tt CALL UZINIT}
  \end{quote}
  \item パラメーターの説明
  \begin{quote}
    なし.
  \end{quote}
  \item 備考
  \begin{enumerate}
    \item 普通{\tt UZINIT}は{\tt GRFRM}中に記述されているので,
      GRPACK (第\ref{grpack}章参照)を用いていれば
      ユーザーは{\tt UZINIT}を陽に呼ぶ必要はない.
  \end{enumerate}
\end{enumerate}

\subsection{UZFACT}
\label{uxyzpack.refuz.uzfact}
\begin{enumerate}
  \item 機能
  \begin{quote}
    内部変数 \RSIZETI, \RSIZELI, \RSIZECI \ $(i=1,2)$ をすべて何倍かする.
  \end{quote}
  \item 呼び出し方法
  \begin{quote}
    {\tt CALL UZFACT(RFACT)}
  \end{quote}
  \item パラメーターの説明
  \begin{quote}
    \begin{tabular}{llp{10cm}}
      {\tt RFACT} & {\tt (R)} & 何倍するかを指定する実数値.
    \end{tabular}
  \end{quote}
  \item 備考
  \begin{enumerate}
    \item なし.
  \end{enumerate}
\end{enumerate}

\subsection{UZPSAV}
\label{uxyzpack.refuz.uzpsav}
\begin{enumerate}
  \item 機能
  \begin{quote}
    現在設定されている内部変数の値すべてをスクラッチファイルに書き出す.
  \end{quote}
  \item 呼び出し方法
  \begin{quote}
    {\tt CALL UZPSAV}
  \end{quote}
  \item パラメーターの説明
  \begin{quote}
    なし.
  \end{quote}
  \item 備考
  \begin{enumerate}
    \item スクラッチファイルは MISC1/MISCLIB の {\tt IUFOPN} が
      返す装置番号に対してオープンされる.
  \end{enumerate}
\end{enumerate}

\subsection{UZPRST}
\label{uxyzpack.refuz.uzprst}
\begin{enumerate}
  \item 機能
  \begin{quote}
    スクラッチファイルに書き出してあった値ですべての内部変数を再設定する.
  \end{quote}
  \item 呼び出し方法
  \begin{quote}
    {\tt CALL UZPRST}
  \end{quote}
  \item パラメーターの説明
  \begin{quote}
    なし.
  \end{quote}
  \item 備考
  \begin{enumerate}
    \item なし.
  \end{enumerate}
\end{enumerate}

\newpage

\section{サブルーチンの説明 : 下位応用ルーチン (LLA)}

\label{uxyzpack.refLLA}

このサブルーチンパッケージ UXPACK/UYPACK/UZPACK
において, 具体的な作画をおこなうルーチン群.
基本ルーチン(Basic Routines)を使って書かれており
普通ユーザーが直接呼ぶことはなく,
上位応用ルーチン(ULA)を作成するのに用いられる.

\vspace{1em}
以下の説明で共通してあらわれる引数 {\tt CSIDE} は
座標軸の構成要素を描く場所を指定するパラメーターで,
X軸については {\tt 'B'}, {\tt 'T'}, {\tt 'U'} が指定できる;
Y軸については {\tt 'L'}, {\tt 'R'}, {\tt 'U'} が指定できる
(くわしくは\ref{uxyzpack.struct.basho}節参照).
また, 引数 {\tt ISLCT} は
座標軸の構成要素の属性を指定するパラメーターで,
0, 1, 2のうち1つが指定できる
(くわしくは\ref{uxyzpack.struct.zokusei}節参照).

\subsection{UXPAXS/UYPAXS}
\label{uxyzpack.refLLA.uxpaxs}
\begin{enumerate}
  \item 機能
  \begin{quote}
    軸を示す線分を描く.
  \end{quote}
  \item 呼び出し方法
  \begin{quote}
    {\tt CALL UXPAXS(CSIDE,ISLCT)} \\
    {\tt CALL UYPAXS(CSIDE,ISLCT)}
  \end{quote}
  \item パラメーターの説明
  \begin{quote}
    \begin{tabular}{llp{10cm}}
      {\tt CSIDE} & {\tt (C*1)} & 線分を描く座標軸の場所を指定する
        (\ref{uxyzpack.struct.basho}節参照). \\
      {\tt ISLCT} & {\tt (I)} & 描く軸の属性を指定する
        (\ref{uxyzpack.struct.zokusei}節参照). \\
    \end{tabular}
  \end{quote}
  \item 備考
  \begin{enumerate}
    \item 軸を示す線分のラインインデクスは内部変数\INDEXTI が決める.
    \item 構成要素を描く場所に依存する内部変数として\ROFFZS がある.
      これは, 最後に描いたラベルやタイトルの軸からの距離を保持している
      内部変数である.
      この内部変数を初期化しなければ, ラベルやタイトルは次々と
      ウインドウの外側に向かって重ならないよう描かれる.
    \item 座標軸は, 本来描くべき場所から平行移動した場所に描くことができる
      (\ref{uxyzpack.struct.basho}節参照).
      この移動量は, 描く場所に依存する内部変数\ROFGZS が管理する
      (初期値はすべて0).
      この値はX/Y軸それぞれについて, サブルーチン
      \begin{quote}
        {\tt UXSAXZ(CSIDE,ROFFX) / UYSAXZ(CSIDE,ROFFY)}
      \end{quote}
      によって設定できる. またオフセット量を内部的に決定するルーチン
      \begin{quote}
        {\tt UXSAXS(CSIDE) / UYSAXS(CSIDE)}
      \end{quote}
      によっても設定できる.
      オフセット量は内部変数{\tt 'PAD2'}にもとづいて計算される.
    \item 内部変数\ROFFZS と\ROFGZS が等しいときに限って軸を示す線分を描く.
      これらの内部変数はサブルーチン{\tt UZINIT}によって0にセットされる.
      普通{\tt UZINIT}は{\tt GRFRM}中に記述されているので,
      GRPACK (第\ref{grpack}章参照)を用いていれば
      ユーザーは{\tt UZINIT}を陽に呼ぶ必要はない.
  \end{enumerate}
\end{enumerate}

\subsection{UXPTMK/UYPTMK}
\label{uxyzpack.refLLA.uxptmk}
\begin{enumerate}
  \item 機能
  \begin{quote}
    目盛を描く.
  \end{quote}
  \item 呼び出し方法
  \begin{quote}
    {\tt CALL UXPTMK(CSIDE,ISLCT,UX,N)} \\
    {\tt CALL UYPTMK(CSIDE,ISLCT,UY,N)}
  \end{quote}
  \item パラメーターの説明
  \begin{quote}
    \begin{tabular}{llp{10cm}}
      {\tt CSIDE} & {\tt (C*1)} & 目盛を描く座標軸の場所を指定する
        (\ref{uxyzpack.struct.basho}節参照). \\
      {\tt ISLCT} & {\tt (I)} & 描く目盛の属性を指定する
        (\ref{uxyzpack.struct.zokusei}節参照). \\
      {\tt UX}, {\tt UY} & {\tt (R)} & 目盛を描く場所を格納した長さ{\tt N}の
        配列. (U座標系の値で指定する. ) \\
      {\tt N} & {\tt (I)} & 配列{\tt UX}, {\tt UY}の長さ. \\
    \end{tabular}
  \end{quote}
  \item 備考
  \begin{enumerate}
    \item 目盛の長さは内部変数\RSIZETI が決める.
    \item 目盛を描く線のラインインデクスは内部変数\INDEXTI が決める.
    \item 目盛を内側に向かって打つか, 外側に向かって打つかは
      内部変数{\tt 'INNER'}が決める.
      {\tt 'INNER'}が正のとき内側に向かって目盛を打つ;
      負のとき外側に向かって目盛を打つ
      (初期値は+1).
  \end{enumerate}
\end{enumerate}

\subsection{UXPLBL/UYPLBL}
\label{uxyzpack.refLLA.uxplbl}
\begin{enumerate}
  \item 機能
  \begin{quote}
    文字列で指定したラベルを描く.
  \end{quote}
  \item 呼び出し方法
  \begin{quote}
    {\tt CALL UXPLBL(CSIDE,ISLCT,UX,CH,NC,N)} \\
    {\tt CALL UYPLBL(CSIDE,ISLCT,UY,CH,NC,N)}
  \end{quote}
  \item パラメーターの説明
  \begin{quote}
    \begin{tabular}{llp{10cm}}
      {\tt CSIDE} & {\tt (C*1)} & ラベルを描く座標軸の場所を指定する
        (\ref{uxyzpack.struct.basho}節参照). \\
      {\tt ISLCT} & {\tt (I)} & 描くラベルの属性を指定する
        (\ref{uxyzpack.struct.zokusei}節参照). \\
      {\tt UX}, {\tt UY} & {\tt (R)} & ラベルを描く場所を格納した
        長さ{\tt N}の配列.(U座標系の値で指定する.) \\
      {\tt CH} & {\tt (C*(NC))} & 描くラベルを格納した文字長{\tt NC}
        長さ{\tt N}の文字型配列. \\
      {\tt NC} & {\tt (I)} & 配列{\tt CH}の文字長. \\
      {\tt N} & {\tt (I)} & 配列{\tt UX}, {\tt UY}, {\tt CH}の長さ. \\
    \end{tabular}
  \end{quote}
  \item 備考
  \begin{enumerate}
    \item このパッケージでは次の2通りのラベルの描きかたがある.
      {\tt UXPLBL/UYPLBL}それぞれについて
      \begin{itemize}
        \item {\tt UX(}{\it i}{\tt )/}{\tt UY(}{\it i}{\tt )}の
          場所に{\tt CH(}{\it i}{\tt )}の
          ラベルを描く.
        \item {\tt UX(}{\it i}{\tt )/}{\tt UY(}{\it i}{\tt )}と
          {\tt UX(}{\it i}+1{\tt )/}{\tt UY(}{\it i}+1{\tt )}の
          間に{\tt CH(}{\it i}{\tt )}のラベルを描く.
      \end{itemize}
      2つの方法のどちらを選ぶかは内部変数{\tt 'LBTWN'}が決める.
      {\tt 'LBTWN'}が{\tt .TRUE.}なら間に描く;
      {\tt .FALSE.}ならその場所に描く(初期値は{\tt .FALSE.}).
      ただし, ラベルを間に描くように指定していても, ラベルが2点の間隔より
      大きいときラベルは描かれない.
      またメッセージも出力されない.
    \item ラベルの文字の高さは内部変数\RSIZELI が決める.
    \item ラベルの文字列の回転角は内部変数\IROTLZS が決める.
    \item ラベルの文字列のセンタリングオプションは内部変数\ICENTZS が決める.
    \item ラベルの文字を描く線分のラインインデクスは内部変数\INDEXLI が決める.
    \item 文字列{\tt CH(}{\it i}{\tt )}の文字長は{\tt LENC}
      (「MATH1」マニュアルのCHRLIB参照)が決める.
      つまり後続のブランクは無視される.
    \item {\tt CSIDE}として{\tt 'U'}以外を指定した場合,
      ラベルは常にウインドウの外側に描かれる.
      {\tt CSIDE}として{\tt 'U'}を指定した場合, ラベルの描かれる位置は
      内部変数{\tt 'IFLAG'}が決める.
      {\tt 'IFLAG'}が正のときラベルは{\tt UXPLBL}については上側,
      {\tt UYPLBL}については右側に描かれる.
      負のときはその逆である. 初期値は--1.
    \item 1つ前に描いた座標軸の構成要素からどれだけ離してラベルを描くかは
      内部変数{\tt 'PAD1'}が決める. 初期値は0.7.
      単位は今描こうとしているラベルの高さを1とする.
  \end{enumerate}
\end{enumerate}

\subsection{UXPNUM/UYPNUM}
\label{uxyzpack.refLLA.uxpnum}
\begin{enumerate}
  \item 機能
  \begin{quote}
    数値で指定したラベルを描く.
  \end{quote}
  \item 呼び出し方法
  \begin{quote}
    {\tt CALL UXPNUM(CSIDE,ISLCT,UX,N)} \\
    {\tt CALL UYPNUM(CSIDE,ISLCT,UY,N)}
  \end{quote}
  \item パラメーターの説明
  \begin{quote}
    \begin{tabular}{llp{10cm}}
      {\tt CSIDE} & {\tt (C*1)} & ラベルを描く座標軸の場所を指定する
        (\ref{uxyzpack.struct.basho}節参照). \\
      {\tt ISLCT} & {\tt (I)} & 描くラベルの属性を指定する
        (\ref{uxyzpack.struct.zokusei}節参照). \\
      {\tt UX}, {\tt UY} & {\tt (R)} & ラベルを描く場所を格納した
        長さ{\tt N}の配列.(U座標系の値で指定する.)\\
      {\tt N} & {\tt (I)} & 配列{\tt UX}, {\tt UY}の長さ. \\
    \end{tabular}
  \end{quote}
  \item 備考
  \begin{enumerate}
    \item このルーチンは, サブルーチン{\tt CHVAL}
      (「MISC1」マニュアルのFMTLIB参照)を
      使って{\tt UX}, {\tt UY}の値を文字化したあとで
      {\tt UXPLBL/}{\tt UYPLBL}を呼んでいる.
      (ラベルの属性については, {\tt UXPLBL/}{\tt UYPLBL}を参照のこと. )
      {\tt UXPLBL/}{\tt UYPLBL}に渡す文字型配列を内部で用意しているため
      {\tt UX}, {\tt UY}の長さ{\tt N}は40以下でなければならない.
    \item サブルーチン{\tt CHVAL}に渡すフォーマットは,
      {\tt UXPNUM}についてはサブルーチン
      \begin{quote}
        {\tt UXSFMT(CFMT) / UXQFMT(CFMT)}
      \end{quote}
      で設定/参照することができる.
      {\tt UYPNUM}についてはサブルーチン
      \begin{quote}
        {\tt UYSFMT(CFMT) / UYQFMT(CFMT)}
      \end{quote}
      で設定/参照することができる.
      {\tt CFMT}は長さ16以下の文字型変数. たとえば{\tt CFMT}として
      {\tt '(F6.1)'}のように指定する.
      初期値は{\tt CHVAL}に固有のオプションである{\tt 'B'}
      (有効数字3ケタで文字化し, 小数点以下に続く後方の0は取り除く;
      さらに小数点が最下位ならそれも取り除く).
      {\tt CHVAL}は自動的に文字を左詰めする.
      つまり実数値1.2を文字化するために{\tt '(F4.1)'}としても
      {\tt '(F8.1)'}としても{\tt CHVAL}が返す値はどちらも{\tt '1.2'}である.
  \end{enumerate}
\end{enumerate}

\subsection{UXPTTL/UYPTTL}
\label{uxyzpack.refLLA.uxpttl}
\begin{enumerate}
  \item 機能
  \begin{quote}
    タイトルを描く.
  \end{quote}
  \item 呼び出し方法
  \begin{quote}
    {\tt CALL UXPTTL(CSIDE,ISLCT,CTTL,PX)} \\
    {\tt CALL UYPTTL(CSIDE,ISLCT,CTTL,PY)}
  \end{quote}
  \item パラメーターの説明
  \begin{quote}
    \begin{tabular}{llp{10cm}}
      {\tt CSIDE} & {\tt (C*1)} & タイトルを描く座標軸の場所を指定する
        (\ref{uxyzpack.struct.basho}節参照). \\
      {\tt ISLCT} & {\tt (I)} & 描くタイトルの属性を指定する
        (\ref{uxyzpack.struct.zokusei}節参照). \\
      {\tt CTTL} & {\tt (C*(*))} & 描くタイトル. \\
      {\tt PX}, {\tt PY} & {\tt (R)} & --1から+1の間の実数値でタイトルを
        描く位置を指定する.
        \mbox{--1}のとき左よせ, 0のときセンタリング, +1のとき右よせする. \\
    \end{tabular}
  \end{quote}
  \item 備考
  \begin{enumerate}
    \item タイトルの文字の大きさは内部変数\RSIZECI が決める.
    \item タイトルの文字列の回転角は内部変数\IROTCZS が決める.
    \item タイトルの文字を描く線分のラインインデクスは
      内部変数\INDEXLI が決める.
    \item 内部変数{\tt 'LBOUND'}が{\tt .TRUE.}で
      タイトルがウインドウの幅をこえるとタイトルを描かない;
      {\tt .FALSE.}ならウインドウの幅をこえても描く
      (初期値は{\tt .FALSE.}).
      また, 内部変数{\tt 'LBOUND'}が{\tt .TRUE.}で
      タイトルがウインドウの幅をこえて描けないとき
      内部変数{\tt 'LBMSG'}が{\tt .TRUE.}なら
      その旨メッセージを出力する;{\tt .FALSE.}なら出力しない
      (初期値は{\tt .TRUE.}).
  \end{enumerate}
\end{enumerate}

\section{その他のサブルーチン・関数のリスト}

\label{uxyzpack.refsonota}

このパッケージにはこのほかに以下の下位ルーチン・関数がある.
ここではそれらの名前をあげるにとどめる.

\vspace{1em}
\begin{quote}
\begin{tabular}{llllll}
    {\tt LUXCHK} & {\tt UXPLBA} & {\tt UXPLBB} &
    {\tt UXPTMZ} & {\tt UXSOFF} & {\tt UXROFF} \\
    {\tt LUYCHK} & {\tt UYPLBA} & {\tt UYPLBB} &
    {\tt UYPTMZ} & {\tt UYSOFF} & {\tt UYROFF}
\end{tabular}
\end{quote}
