UDPACK は2次元等高線図を作画するメソッド(元サブルーチン)パッケージである. 等高線はU座標系で作画されるので, すべての正規化変換に対応している.
このパッケージにおいてラベルつきのコンターラインは, GRPH1 の
sgpget/sgpsetが管理する内部変数 'LCHAR' を
.true. として, 線分を描く下位ルーチンが描いている.
なおこのパッケージでは, 等高線図を描くだけで座標軸などの外枠は
描かない.
UDPACK において
ユーザーが使用するメソッド(元サブルーチン)としては以下のようなものがある.
udcntr | ... | 2次元等高線図を作画する (内部で用意した作業領域を使う). |
udcntz | ... | 2次元等高線図を作画する (ユーザーが作業領域を与える). |
udgcla | ... | 最小値・最大値・きざみ値で生成する. |
udgclb | ... | 格子点値を与える配列ときざみ値で生成する. |
udiclv | ... | コンターレベルを無効にする. |
udsclv | ... | 1本のコンターレベルを生成する. |
uddclv | ... | 1本のコンターレベルを削除する. |
udsfmt | ... | コンターレベルのフォーマットを指定する. |
udpget/udpset | ... | 内部変数を参照/変更する. |
格子点座標に関する情報はUWPACK (第11節参照)が管理している.
uwsgxa/uwsgya | ... | 各座標値で設定する. |
uwsgxb/uwsgyb | ... | 最小値と最大値で設定する. |
2次元データをとにかくコンタリングしたい(quick look)というときには,
単にudcntr (またはudcntz)を呼ぶだけでよい.
このときは, 現在設定されているウインドウいっぱいに
等間隔の格子点を設定し, コンターレベルも自動的に生成する.
もしも格子点が不等間隔の場合は,
udcntrを呼ぶ前にuwsgxa (X方向)/ uwsgya (Y方向)を呼んで
格子点の座標値をあらかじめ指定すればよい.
あるいはウインドウのある一部分に等間隔の格子点を設定したい場合は,
uwsgxb (X方向)/ uwsgyb (Y方向)をもちい
最小値と最大値を指定して格子点を設定すればよい.
またコンターレベルをあらかじめ指定したいときは,
udcntr(またはudcntz)を呼ぶ前に
udgclaまたはudgclbを呼べばよい.
ただしこの場合は, 等間隔のコンターレベルしか生成されない.
もしも, 不等間隔のコンターレベルを指定したい場合や,
特定のコンターレベルを追加したい場合は,
udsclvで1本1本のコンターレベルを生成してやればよい.
(1本のコンターレベルを無効にするにはuddclvを呼べばよい;
すべてのコンターレベルを無効にするにはudiclvを呼べばよい. )
内部的には, udblk1, udblk2, udblk3 という名前の
共通ブロックを使用している.
ユーザーは同じ名前の外部手続き名・共通ブ
ロック名を用いてはならない.