戻る|進む
DCL:GRPH2:UGPACK : ベクトル場表示ルーチン:サブルーチンの説明
10.2.1 UGVECT
- 1.
- 機能
2次元ベクトル場を描く.
- 2.
- 呼び出し方法
CALL UGVECT(U,MU,V,MV,NX,NY)
- 3.
- パラメーターの説明
U |
(R) |
ベクトルのX成分を与える
MU×NYの2次元配列.
作画には NX×NYの部分を使う. |
MU |
(I) |
配列 Uの第1次元整合寸法. |
V |
(R) |
ベクトルのY成分を与える
MV×NYの2次元配列.
作画には NX×NYの部分を使う. |
MV |
(I) |
配列 Vの第1次元整合寸法. |
NX |
(I) |
作画に使う配列 U, Vの第1次元寸法. |
NY |
(I) |
作画に使う配列 U, Vの第2次元寸法. |
- 4.
- 備考
- (a)
- ベクトルの各成分の単位はV座標系における単位とする.
ただし普通は, V座標系の単位に変換した配列U, V
を与える必要はなく, スケーリングファクターを与えてやればよい.
このスケーリングファクターは,
内部変数'LNRMAL'が.TRUE.(初期値)なら
内部的に決定される;
.FALSE.なら内部変数'XFACT1', 'YFACT1'
(初期値はそれぞれ1.0)を参照する.
したがって, スケーリングファクターを陽に指定したければ,
'LNRMAL'を.FALSE.として
'XFACT1', 'YFACT1'を設定してやればよい.
さらに, 'LNRMAL'が.TRUE.のとき,
内部変数'LEQRAT'が.TRUE.ならばXとYの
スケーリングファクターを同じにする
(初期値は .TRUE.).
- (b)
- ベクトルはUFPACK (第14章参照)のなかの
UFLNZVによって描かれる.
したがってベクトルの形はUFPGET/UFPSETの管理する
内部変数によって決まる.
ただし, ベクトルを描く線分のラインインデクスは内部変数'INDEX'が
決める(初期値は3).
また, 内部変数'ICENT'によってベクトルの始点を格子点に対して
どこにとるか指定できる.
'ICENT'が+1ならベクトルの終点が格子点と一致するように描く;
0ならベクトルの中点が格子点と一致するように描く;
-1ならベクトルの始点が格子点と一致するように描く
(初期値は0).
- (c)
- X方向の格子点の座標がUWSGXAまたはUWSGXB
によって設定されていない場合, SGQWNDでウインドウ情報を
取得し
ウインドウのUXMIN, UXMAXをNX-1等分するような
格子点を設定する.
- (d)
- Y方向の格子点の座標がUWSGYAまたはUWSGYB
によって設定されていない場合, SGQWNDでウインドウ情報を
取得し
ウインドウのUYMIN, UYMAXをNY-1等分するような
格子点を設定する.
- (e)
- GLpGET/GLpSET(「MATH1」のマニュアル参照)の
管理する内部変数'LMISS'が
.TRUE.なら欠損値処理をおこなう;
(その際, 参照する欠損値は GLpGET/GLpSETの管理する
内部変数'RMISS'である)
.FALSE.なら欠損値処理をおこなわない.
ここでいう欠損値処理とは, ベクトルのXまたはY成分のうち
少なくとも一方が欠損値
(以下では, このようなベクトルを欠損値ベクトルと呼ぶ)
のときにおこなわれる処理のことである.
具体的には, 内部変数'LMISSP'が
.TRUE.のときその格子点にマークを描く
(描くマークのマーカータイプ, マーカーインデクス,
マーカーサイズは内部変数
'ITYPE1', 'INDEX', 'RSIZEM'を参照する.
初期値はそれぞれ5, 3, 0.01. );
.FALSE.なら, なにも描かない
(初期値は.FALSE.).
また, 内部変数'LSMALL'が.TRUE.なら
内部変数'RSMALL'が決める値以下のベクトル長の
ベクトルについても上と同様な処理をおこなう.
ただし描くマーカーのマーカータイプは,
内部変数'ITYPE2'を参照する.
('LSMALL', RSMALL, ITYPE2の初期値はそれぞれ
.FALSE., 0.001, 1. )
- (f)
- 作画をおこなう前にすべてのベクトル値のチェックをおこなう.
次の2つの場合作画はおこなわずその旨メッセージが出力される.
さらに内部変数'LMSG'が
.TRUE.のときグラフの下部マージンにもメッセージを書く;
.FALSE.のときメッセージを書かない
(初期値は.TRUE.).
2つの場合とは:
- すべてのベクトルが欠損値ベクトルのとき(missing field).
- すべてのベクトルがゼロベクトルのとき(zero field).
- (g)
- 内部変数'LUNIT'が.TRUE.ならユニットベクトルを描く;
.FALSE.なら描かない(初期値は.FALSE.).
ユニットベクトルは, 内部変数'VXULOC', 'VYILOC'
(V座標系におけるx,y座標値:初期値は不定)を陽に指定しなければ
ビューポートの右下隅から内部変数
'VXUOFF', 'VYUOFF'で決まる量だけはなれた位置に描かれる
('VXUOFF', 'VYUOFF'の初期値は0.02, 0).
またユニットベクトルの長さは, 内部変数VXUNIT, VYUNITで
決まる(単位はV座標系;初期値は0.05, 0.05).
ただし内部変数UXUNIT, UYUNITが陽に設定されていれば
それらの値を用いる(初期値は不定).
UXUNIT, UYUNITはVXUNIT, VYUNITと違って
ユニットベクトルが示す次元量の単位で指定する.
さらに'LUNIT'が.TRUE.のとき,
内部変数'LUMSG'が.TRUE.ならユニットベクトルの
大きさを図の下部マージンに書く(初期値は.TRUE.);
'LUNIT'が.FALSE.のとき,
内部変数'LMSG'が.TRUE.ならスケーリングファクターを
図の下部マージンに書く(初期値は.TRUE.).
これらのメッセージはUXPTTL
(3.8.5節参照)を使って書く.
したがって, まず座標軸を描いた後でUGVECTを呼ぶべきである.
戻る|進む
DCL:GRPH2:UGPACK : ベクトル場表示ルーチン:サブルーチンの説明