8.2.1 UDCNTR

1.
機能
2次元等高線図を描く(内部で用意した作業領域を使う).
2.
呼び出し方法
CALL UDCNTR(Z,MX,NX,NY)
3.
パラメーターの説明
Z (R) MX X NYの2次元配列. 作画には NX NYの部分を使う.
MX (I) 配列 Zの第1次元整合寸法.
NX (I) 作画に使う配列 Zの第1次元寸法.
NY (I) 作画に使う配列 Zの第2次元寸法.
4.
備考
(a)
作業配列の大きさの制約から配列Zの大きさは 1語のビット長がNBのとき
(NX+2)×(NY+2)×2/NB+11000
でなければならない. NBGLpGET/GLpSETの管理する 内部変数'NBITSPW'を参照する. 普通この値は32である (「MATH1」のマニュアル参照). もしもこの制限を越える大きさの配列を用いて作画したいときは, 作業領域をユーザーが指定するサブルーチンUDCNTZ (次節参照)を用いるとよい.
(b)
X方向の格子点の座標が UWSGXA (11.2.1節参照)または UWSGXB (11.2.2節参照) によって設定されていない場合, SGQWNDでウインドウ情報を 取得し ウインドウのUXMIN, UXMAXNX-1等分するような 格子点を設定する.
(c)
Y方向の格子点の座標が UWSGYA (11.2.1節参照)または UWSGYB (11.2.2節参照) によって設定されていない場合, SGQWNDでウインドウ情報を 取得し ウインドウのUYMIN, UYMAXNY-1等分するような 格子点を設定する.
(d)
コンターを引くレベルの値がUDGCLA, UDGCLBまたは UDSCLVによって設定されていない場合, 次のサブルーチンを内部で呼んで 約NLEV本のコンターレベルを設定する.
CALL UDGCLB(Z,MX,NX,NY,-REAL(NLEV))
NLEVUDpGET/UDpSETの管理する 内部変数'NLEV'が参照する値である (初期値は12). (以下, 特に断らない限り, 単に「内部変数」というのは UDpGET/UDpSETの管理する 内部変数のことをさす. )
(e)
コンターを引くアルゴリズムの制約から, 格子点の値は どのコンターレベルの値とも等しくてはならない. もしもそのような格子点値があると内部で微小量が修正される (その際メッセージが出力される).
(f)
GLpGET/GLpSETの管理する内部変数'LMISS'.TRUE.なら欠損値処理をおこなう. (その際, 参照する欠損値は GLpGET/GLpSETの管理する 内部変数'RMISS'である. ) .FALSE.なら欠損値処理をおこなわない. くわしくは「MATH1」のマニュアル参照.
(g)
コンタリングの前にすべての格子点値のチェックをおこなう. 次の2つの場合コンタリングはおこなわずその旨メッセージが出力される. さらに内部変数'LMSG'.TRUE.のときグラフの下部マージンにもメッセージを書く. .FALSE.のときメッセージを書かない (初期値は.TRUE.). 2つの場合とは:
  • すべての格子点が欠損値のとき(missing field).
  • すべての格子点が同一な値のとき(constant field).
(h)
内部変数'LMSG'.TRUE.で引くべきコンターレベルの数が2本以上あるとき, 実数型の関数RUDLEV(1) (8.2.8節参照)を呼んで 第1コンターレベルの値(CZL1)と第2コンターレベルの値(CZL2)の差 (CZL2-CZL1)をグラフの下部マージンに書き出す. これらのメッセージは, 地図投影変換以外が設定されているとき, UZPACKが管理する情報を使って書く. したがって, このような場合は, まず座標軸を描いた後で UDCNTRを呼ぶべきである. いっぽう, 地図投影変換が設定されているとき, 下部マージンの真中に書く.