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

\subsection{UBPLU}
%\label{ubpack.refub.ubplu}
\begin{enumerate}
  \item 機能
  \begin{quote}
    WCでラベル付き折れ線を描く.
  \end{quote}
  \item 呼び出し方法
  \begin{quote}
    {\tt CALL UBPLU(N,UPX,UPY)}
  \end{quote}
  \item パラメーターの説明
  \begin{quote}
    \begin{tabular}{llp{11cm}}
      {\tt N} & {\tt (I)} & 配列{\tt UPX}, {\tt UPY}の長さ. \\
      {\tt UPX} & {\tt (R)} & 長さ{\tt N}の配列.
        折れ線を結ぶ点のWCにおけるX座標の値を与える. \\
      {\tt UPY} & {\tt (R)} & 長さ{\tt N}の配列.
        折れ線を結ぶ点のWCにおけるY座標の値を与える. \\
    \end{tabular}
  \end{quote}
  \item 備考
  \begin{enumerate}
    \item {\tt N}は2以上でなければならない.
    \item 描く折れ線の属性は{\tt UBSPLT}, {\tt UBSPLI}で設定する.
    \item ラベルとして付ける文字列は{\tt UBSPLC}で設定する;
      その高さは{\tt UBSPLS}で設定する.
    \item このルーチンを呼ぶと,
      設定されている文字列の最後の文字の文字番号が1つふやされる.
      つまり文字列として{\tt 'X=1'}が指定されていたとすると,
      まず第1回目の呼び出しで{\tt 'X=1'}を描き,
      第$i$回目の呼び出しでは{\tt 'X=}{\it i}{\tt '} $( i=1... 9)$を
      描く.
  \end{enumerate}
\end{enumerate}

\subsection{UBPLV}
%\label{ubpack.refub.ubplv}
\begin{enumerate}
  \item 機能
  \begin{quote}
    NDCでラベル付き折れ線を描く.
  \end{quote}
  \item 呼び出し方法
  \begin{quote}
    {\tt CALL UBPLV(N,VPX,VPY)}
  \end{quote}
  \item パラメーターの説明
  \begin{quote}
    \begin{tabular}{llp{11cm}}
      {\tt N} & {\tt (I)} & 配列{\tt VPX}, {\tt VPY}の長さ. \\
      {\tt VPX} & {\tt (R)} & 長さ{\tt N}の配列.
        折れ線を結ぶ点のNDCにおけるX座標の値を与える. \\
      {\tt VPY} & {\tt (R)} & 長さ{\tt N}の配列.
        折れ線を結ぶ点のNDCにおけるY座標の値を与える. \\
    \end{tabular}
  \end{quote}
  \item 備考
  \begin{enumerate}
    \item {\tt N}は2以上でなければならない.
    \item 描く折れ線の属性は{\tt UBSPLT}, {\tt UBSPLI}で設定する.
    \item ラベルとして付ける文字列は{\tt UBSPLC}で設定する;
      その高さは{\tt UBSPLS}で設定する.
    \item このルーチンを呼ぶと,
      設定されている文字列の最後の文字の文字番号が1つふやされる.
      つまり文字列として{\tt 'X=1'}が指定されていたとすると,
      まず第1回目の呼び出しで{\tt 'X=1'}を描き,
      第$i$回目の呼び出しでは{\tt 'X=}{\it i}{\tt '} $( i=1... 9)$を
      描く.
  \end{enumerate}
\end{enumerate}

\subsection{UBSPLT}
\label{ubpack.refub.ubsplt}
\begin{enumerate}
  \item 機能
  \begin{quote}
    {\tt UBPLU}, {\tt UBPLV}で描く折れ線のラインタイプを設定する.
  \end{quote}
  \item 呼び出し方法
  \begin{quote}
    {\tt CALL UBSPLT(ITYPE)}
  \end{quote}
  \item パラメーターの説明
  \begin{quote}
    \begin{tabular}{llp{10cm}}
      {\tt ITYPE} & {\tt (I)} & 折れ線の線種(初期値は1).
    \end{tabular}
  \end{quote}
  \item 備考
  \begin{enumerate}
    \item {\tt ITYPE}は0以外でなければならない.
    \item 現在設定されているラインタイプは
      \begin{quote}
        {\tt CALL UBQPLT(ITYPE)}
      \end{quote}
      によって参照できる.
  \end{enumerate}
\end{enumerate}

\subsection{UBSPLI}
\label{ubpack.refub.ubspli}
\begin{enumerate}
  \item 機能
  \begin{quote}
    {\tt UBPLU}, {\tt UBPLV}で描く折れ線のラインインデクスを設定する.
  \end{quote}
  \item 呼び出し方法
  \begin{quote}
    {\tt CALL UBSPLI(INDEX)}
  \end{quote}
  \item パラメーターの説明
  \begin{quote}
    \begin{tabular}{llp{10cm}}
      {\tt INDEX} & {\tt (I)} & 折れ線のラインインデクス(初期値は1).
    \end{tabular}
  \end{quote}
  \item 備考
  \begin{enumerate}
    \item {\tt INDEX}は1以上でなければならない.
    \item 現在設定されているラインインデクスは
      \begin{quote}
        {\tt CALL UBQPLI(INDEX)}
      \end{quote}
      によって参照できる.
  \end{enumerate}
\end{enumerate}

\subsection{UBSPLC}
\label{ubpack.refub.ubsplc}
\begin{enumerate}
  \item 機能
  \begin{quote}
    {\tt UBPLU}, {\tt UBPLV}でラベルとして付ける文字列を設定する.
  \end{quote}
  \item 呼び出し方法
  \begin{quote}
    {\tt CALL UBSPLI(CHARX)}
  \end{quote}
  \item パラメーターの説明
  \begin{quote}
    \begin{tabular}{llp{10cm}}
      {\tt CHARX} & {\tt (C*(*))} & ラベルとして付ける文字列
        (初期値は{\tt 'A'}).
        文字数は16文字以内でなければならない.
    \end{tabular}
  \end{quote}
  \item 備考
  \begin{enumerate}
    \item 現在設定されている文字列は
      \begin{quote}
        {\tt CALL UBQPLC(CHARX)}
      \end{quote}
      によって参照できる.
  \end{enumerate}
\end{enumerate}

\subsection{UBSPLS}
\label{ubpack.refub.ubspls}
\begin{enumerate}
  \item 機能
  \begin{quote}
    {\tt UBPLU}, {\tt UBPLV}でラベルとして付ける文字列の高さを設定する.
  \end{quote}
  \item 呼び出し方法
  \begin{quote}
    {\tt CALL UBSPLS(RSIZE)}
  \end{quote}
  \item パラメーターの説明
  \begin{quote}
    \begin{tabular}{llp{10cm}}
      {\tt RSIZE} & {\tt (R)} & ラベルとして付ける文字列の高さを
        NDC空間における単位で指定する(初期値は0.02).
    \end{tabular}
  \end{quote}
  \item 備考
  \begin{enumerate}
    \item 現在設定されている文字列の高さは
      \begin{quote}
        {\tt CALL UBQPLS(RSIZE)}
      \end{quote}
      によって参照できる.
  \end{enumerate}
\end{enumerate}

\subsection{UBPLZU}
%\label{ubpack.refub.ubplzu}
\begin{enumerate}
  \item 機能
  \begin{quote}
    WCでラベル付き折れ線を描く. 属性も同時に指定する.
  \end{quote}
  \item 呼び出し方法
  \begin{quote}
    {\tt CALL UBPLZU(N,UPX,UPY,ITYPE,INDEX,CHARX,RSIZE)}
  \end{quote}
  \item パラメーターの説明
  \begin{quote}
    \begin{tabular}{llp{11cm}}
      {\tt N} & {\tt (I)} & 配列{\tt UPX}, {\tt UPY}の長さ. \\
      {\tt UPX} & {\tt (R)} & 長さ{\tt N}の配列.
        折れ線を結ぶ点のWCにおけるX座標の値を与える. \\
      {\tt UPY} & {\tt (R)} & 長さ{\tt N}の配列.
        折れ線を結ぶ点のWCにおけるY座標の値を与える. \\
      {\tt ITYPE} & {\tt (I)} & {\tt UBSPLT}(\ref{ubpack.refub.ubsplt})参照. \\
      {\tt INDEX} & {\tt (I)} & {\tt UBSPLI}(\ref{ubpack.refub.ubspli})参照. \\
      {\tt CHARX} & {\tt (C*(*))} & {\tt UBSPLC}(\ref{ubpack.refub.ubsplc})
                                    参照. \\
      {\tt RSIZE} & {\tt (R)} & {\tt UBSPLS}(\ref{ubpack.refub.ubspls})参照.
    \end{tabular}
  \end{quote}
  \item 備考
  \begin{enumerate}
    \item {\tt N}は2以上でなければならない.
    \item ここで指定した
      {\tt ITYPE}, {\tt INDEX}, {\tt CHARX}, {\tt RSIZE}は,
      {\tt UBPLU}, {\tt UBPLV}が参照する
      {\tt ITYPE}, {\tt INDEX}, {\tt CHARX}, {\tt RSIZE}を変更しない.
  \end{enumerate}
\end{enumerate}

\subsection{UBPLZV}
%\label{ubpack.refub.ubplzv}
\begin{enumerate}
  \item 機能
  \begin{quote}
    NDCでラベル付き折れ線を描く. 属性も同時に指定する.
  \end{quote}
  \item 呼び出し方法
  \begin{quote}
    {\tt CALL UBPLZV(N,VPX,VPY,ITYPE,INDEX,CHARX,RSIZE)}
  \end{quote}
  \item パラメーターの説明
  \begin{quote}
    \begin{tabular}{llp{11cm}}
      {\tt N} & {\tt (I)} & 配列{\tt VPX}, {\tt VPY}の長さ. \\
      {\tt VPX} & {\tt (R)} & 長さ{\tt N}の配列.
        折れ線を結ぶ点のNDCにおけるX座標の値を与える. \\
      {\tt VPY} & {\tt (R)} & 長さ{\tt N}の配列.
        折れ線を結ぶ点のNDCにおけるY座標の値を与える. \\
      {\tt ITYPE} & {\tt (I)} & {\tt UBSPLT}(\ref{ubpack.refub.ubsplt})参照. \\
      {\tt INDEX} & {\tt (I)} & {\tt UBSPLI}(\ref{ubpack.refub.ubspli})参照. \\
      {\tt CHARX} & {\tt (C*(*))} & {\tt UBSPLC}(\ref{ubpack.refub.ubsplc})
                                    参照. \\
      {\tt RSIZE} & {\tt (R)} & {\tt UBSPLS}(\ref{ubpack.refub.ubspls})参照.
    \end{tabular}
  \end{quote}
  \item 備考
  \begin{enumerate}
    \item {\tt N}は2以上でなければならない.
    \item ここで指定した
      {\tt ITYPE}, {\tt INDEX}, {\tt CHARX}, {\tt RSIZE}は,
      {\tt UBPLU}, {\tt UBPLV}が参照する
      {\tt ITYPE}, {\tt INDEX}, {\tt CHARX}, {\tt RSIZE}を変更しない.
  \end{enumerate}
\end{enumerate}

\subsection{UBPGET/UBPSET}
%\label{ubpack.refub.ubpget}
\begin{enumerate}
  \item 機能
  \begin{quote}
    UBPACKサブルーチンパッケージで使用する内部変数を参照/変更する.
  \end{quote}
  \item 呼び出し方法
  \begin{quote}
    {\tt CALL UBPGET(CP,IPARA)} \\
    {\tt CALL UBPSET(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}として指定できる名前のリストを記す.

    \vspace{1em}
    \begin{tabbing}
      123456789 \= 1234 \=                                         \kill
      {\tt 'LROT'} \> {\tt (L)} \>
        \parbox[t]{10cm}
        {ラベルとして付ける文字列を一定の回転角で描くか,
        あるいは線分に沿って描くかを指定する.
        {\tt .TRUE.}のとき一定の回転角で描く;
        {\tt .FALSE.}のとき線分に沿って描く(初期値は{\tt .FALSE.}).
        \rule[-1ex]{0ex}{1ex}} \\
      {\tt 'IROT'} \> {\tt (I)} \>
        \parbox[t]{10cm}
        {ラベルとしてつける文字列を一定の回転角で描くとき
        ({\tt 'LROT'}が{\tt .TRUE.}のとき)の
        回転角を指定する(単位は度;初期値は0).
        \rule[-1ex]{0ex}{1ex}} \\
      {\tt 'FWC'} \> {\tt (R)} \>
        \parbox[t]{10cm}
        {文字列を描くための空白域の幅を
        全文字幅を単位としてどれだけとるかを指定する係数
        (初期値は1.25).
        \rule[-1ex]{0ex}{1ex}} \\
      {\tt 'CWL'} \> {\tt (R)} \>
        \parbox[t]{10cm}
        {1サイクルあたり, 線分部分の長さを文字高を単位として何文字分
        とるかを指定する係数
        (初期値は30.0).
        \rule[-1ex]{0ex}{1ex}} \\
      {\tt 'FFCT'} \> {\tt (R)} \>
        \parbox[t]{10cm}
        {ラベル付き折れ線を描くにあったて,
        線分部分を1単位としてどれだけ進んだところから
        描き始めるかを指定する(初期値は0.5).
        \rule[-1ex]{0ex}{1ex}} \\
      {\tt 'INDEX'} \> {\tt (I)} \>
        \parbox[t]{10cm}
        {ラベルとして描く文字列のラインインデクスを指定する
        (初期値は不定; {\tt IUNDEF}が参照する値).
        値が不定のとき, 線分部分を描くために現在設定されている
        ラインインデクスと同じ値をとる.
        \rule[-1ex]{0ex}{1ex}} \\
      {\tt 'IUNDEF'} \> {\tt (I)} \>
        \parbox[t]{10cm}
        {内部変数が不定であることを示す値
        (初期値は9999).
        \rule[-1ex]{0ex}{1ex}}
    \end{tabbing}
  \end{quote}
  \item 備考
  \begin{enumerate}
    \item {\tt IPARA}としては適切な型の定数または変数を指定すること.
    \item 他のサブルーチンパッケージと値をやりとりするため上記以外に
      {\tt 'RLINE'}, {\tt 'RCHAR'}, {\tt 'RCYCL'}, {\tt 'RINIT'}
      という内部変数名がある.
      これらの初期値はすべて不定である.
  \end{enumerate}
\end{enumerate}

\subsection{その他のサブルーチン}

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

\vspace{1em}
\begin{quote}
\begin{tabular}{llllll}
  {\tt UBOPCV} & {\tt UBMVCV} & {\tt UBPLCV} &
  {\tt UBCLCV} & {\tt UBCSET} & {\tt UBCRST}
\end{tabular}
\end{quote}
