戻る|進む
DCL:GRPH2:UDPACK : 等高線ルーチン:サブルーチンの説明
8.2.1 UDCNTR
- 1.
- 機能
2次元等高線図を描く(内部で用意した作業領域を使う).
- 2.
- 呼び出し方法
CALL UDCNTR(Z,MX,NX,NY)
- 3.
- パラメーターの説明
Z |
(R) |
MX X NYの2次元配列.
作画には NX X NYの部分を使う. |
MX |
(I) |
配列 Zの第1次元整合寸法. |
NX |
(I) |
作画に使う配列 Zの第1次元寸法. |
NY |
(I) |
作画に使う配列 Zの第2次元寸法. |
- 4.
- 備考
- (a)
- 作業配列の大きさの制約から配列Zの大きさは
1語のビット長がNBのとき
- (NX+2)×(NY+2)×2/NB+1≤1000
でなければならない.
NBは GLpGET/GLpSETの管理する
内部変数'NBITSPW'を参照する.
普通この値は32である
(「MATH1」のマニュアル参照).
もしもこの制限を越える大きさの配列を用いて作画したいときは,
作業領域をユーザーが指定するサブルーチンUDCNTZ
(次節参照)を用いるとよい.
- (b)
- X方向の格子点の座標が
UWSGXA (11.2.1節参照)または
UWSGXB (11.2.2節参照)
によって設定されていない場合, SGQWNDでウインドウ情報を
取得し
ウインドウのUXMIN, UXMAXをNX-1等分するような
格子点を設定する.
- (c)
- Y方向の格子点の座標が
UWSGYA (11.2.1節参照)または
UWSGYB (11.2.2節参照)
によって設定されていない場合, SGQWNDでウインドウ情報を
取得し
ウインドウのUYMIN, UYMAXをNY-1等分するような
格子点を設定する.
- (d)
- コンターを引くレベルの値がUDGCLA, UDGCLBまたは
UDSCLVによって設定されていない場合, 次のサブルーチンを内部で呼んで
約NLEV本のコンターレベルを設定する.
CALL UDGCLB(Z,MX,NX,NY,-REAL(NLEV))
NLEVは UDpGET/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を呼ぶべきである.
いっぽう, 地図投影変換が設定されているとき,
下部マージンの真中に書く.
Copyright (C) 2000 GFD Dennou Club. All rights reserved.