戻る|進む
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 : ベクトル場表示ルーチン:サブルーチンの説明