サブルーチンの説明

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. 備考
    1. ベクトルの各成分の単位はV座標系における単位とする. ただし普通は,V座標系の単位に変換した配列U, V を与える必要はなく,スケーリングファクターを与えてやればよい. このスケーリングファクターは, 内部変数'LNRMAL'.TRUE.(初期値)なら 内部的に決定される; .FALSE.なら内部変数'XFACT1', 'YFACT1' (初期値はそれぞれ1.0)を参照する. したがって,スケーリングファクターを陽に指定したければ, 'LNRMAL'.FALSE.として 'XFACT1', 'YFACT1'を設定してやればよい. さらに,'LNRMAL'.TRUE.のとき, 内部変数'LEQRAT'.TRUE.ならばXとYの スケーリングファクターを同じにする (初期値は .TRUE.).
    2. ベクトルはUFPACK(第[here]章参照)のなかの UFLNZVによって描かれる. したがってベクトルの形はUFPGET/UFPSETの管理する 内部変数によって決まる. ただし,ベクトルを描く線分のラインインデクスは内部変数'INDEX'が 決める(初期値は3). また,内部変数'ICENT'によってベクトルの始点を格子点に対して どこにとるか指定できる. 'ICENT'が+1ならベクトルの終点が格子点と一致するように描く; 0ならベクトルの中点が格子点と一致するように描く; -1ならベクトルの始点が格子点と一致するように描く (初期値は0).
    3. X方向の格子点の座標がUWSGXAまたはUWSGXB によって設定されていない場合,SGQWNDでウインドウ情報を 取得し ウインドウのUXMIN, UXMAXNX-1等分するような 格子点を設定する.
    4. Y方向の格子点の座標がUWSGYAまたはUWSGYB によって設定されていない場合,SGQWNDでウインドウ情報を 取得し ウインドウのUYMIN, UYMAXNY-1等分するような 格子点を設定する.
    5. 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. )
    6. 作画をおこなう前にすべてのベクトル値のチェックをおこなう. 次の2つの場合作画はおこなわずその旨メッセージが出力される. さらに内部変数'LMSG'.TRUE.のときグラフの下部マージンにもメッセージを書く; .FALSE.のときメッセージを書かない (初期値は.TRUE.). 2つの場合とは:
      • すべてのベクトルが欠損値ベクトルのとき(missing field).
      • すべてのベクトルがゼロベクトルのとき(zero field).
    7. 内部変数'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, UYUNITVXUNIT, VYUNITと違って ユニットベクトルが示す次元量の単位で指定する. さらに'LUNIT'.TRUE.のとき, 内部変数'LUMSG'.TRUE.ならユニットベクトルの 大きさを図の下部マージンに書く(初期値は.TRUE.); 'LUNIT'.FALSE.のとき, 内部変数'LMSG'.TRUE.ならスケーリングファクターを 図の下部マージンに書く(初期値は.TRUE.). これらのメッセージはUXPTTL ([here]節参照)を使って書く. したがって,まず座標軸を描いた後でUGVECTを呼ぶべきである.

UGSUT

  1. 機能
    ユニットベクトルにつけるタイトルを設定する.
  2. 呼び出し方法
    CALL UGSUT(CSIDE,CTTL)
  3. パラメーターの説明
                                                                            
      CSIDE   (C*1)     タイトルをつける位置を指定する. 'X'                
                        (X方向のベクトル), 'Y'                             
                        (Y方向のベクトル)が指定できる.                    
                                                                            
      CTTL    (C*(*))   つけるタイトル.                                    
                                                                            
    
  4. 備考
    1. 設定できるタイトルの数は最大10個, またタイトルの長さは最大32文字である.
    2. タイトル文字のラインインデクスは, 内部変数'IUINDX'が決める(初期値は3). また,タイトルの回転角はXおよびY方向についてそれぞれ内部変数 'IUTXRO', 'IUTYRO'が決める (初期値はそれぞれ0, 90:単位は度).

UGpGET/UGpSET(UGpSTX)

  1. 機能
    UGPACKサブルーチンパッケージで使用する内部変数を参照/変更する. (UGpSTXは実行時オプションによる変更を許す.)
  2. 呼び出し方法
    CALL UGpGET(CP,IPARA)
    CALL UGpSET(CP,IPARA)
    CALL UGpSTX(CP,IPARA)
  3. パラメーターの説明
                                          
      CP      (C*8)     内部変数の名前.  
                                          
      IPARA   (I,R,L)   内部変数の値.    
                                          
    

    以下にCPとして指定できる名前のリストを記す.

                                                                            
      'INDEX'     (I)   ベクトルを描く線分のラインインデクス.              
                        および'LMISSP', 'LSMALL'が.TRUE.のときに            
                        描くマーカーのラインインデクス(初期値は3 )         
                        . [-1ex]0ex1ex}                                     
                                                                            
      'LNRMAL'    (L)   内部的にスケーリングファクターを決めるかどうかを指  
                        定する. .TRUE.のとき内部的に決める;                
                        .FALSE.のとき内部変数'XFACT1', 'YFACT1を            
                        参照する(初期値は.TRUE.). [-1ex]0ex1ex}            
                                                                            
      'LEQRAT'    (L)   内部的にスケーリングファクターを決めるとき          
                        ('LNRNAL'が.TRUE.のとき)X方向とY方向の スケーリン  
                        グファクターを同じにするかどうかを指定する.        
                        .TRUE.なら同じにする (初期値は.TRUE.)              
                        . [-1ex]0ex1ex}                                     
                                                                            
      'XFACT1'    (R)   'LNRNAL'が.FALSE.のときに参照する                   
                        X方向のスケーリングファクター(初期値は1.0)         
                        . [-1ex]0ex1ex}                                     
                                                                            
      'YFACT1'    (R)   'LNRNAL'が.FALSE.のときに参照する                   
                        Y方向のスケーリングファクター(初期値は1.0)         
                        . [-1ex]0ex1ex}                                     
                                                                            
      'XFACT2'    (R)   実際に用いられるX方向のスケーリングファクター       
                        (初期値は不定).                                   
                        ユーザーが指定しても意味がない. [-1ex]0ex1ex}      
                                                                            
      'YFACT2'    (R)   実際に用いられるY方向のスケーリングファクター       
                        (初期値は不定).                                   
                        ユーザーが指定しても意味がない. [-1ex]0ex1ex}      
                                                                            
      'LMSG'      (L)   グラフの下部マージンにスケーリングファクターなどの  
                        タイトルを書くかどうかを指定する.                  
                        .TRUE.なら書く;.FALSE.なら書かない                  
                        (初期値は.TRUE.). [-1ex]0ex1ex}                    
                                                                            
      'ICENT'     (I)   ベクトルの始点を格子点に対してどこにとるか指定する  
                        .                                                  
                        +1ならベクトルの終点が格子点と一致するように描く;   
                        0ならベクトルの中点が格子点と一致するように描く;    
                        -1ならベクトルの始点が格子点と一致するように描く    
                        (初期値は0). [-1ex]0ex1ex}                         
                                                                            
      'LMISSP'    (L)   欠損値ベクトルのとき,                              
                        その格子点にマーカーを描くかどうか                  
                        (欠損値処理をおこなうかどうか)を指定する.        
                        .TRUE.なら描く;.FALSE.なら描かない                  
                        (初期値は.FALSE.). [-1ex]0ex1ex}                   
                                                                            
      'ITYPE1'    (I)   欠損値処理をおこなうとき,その格子点に描くマーカー  
                        の マーカータイプ(初期値は5). [-1ex]0ex1ex}        
                                                                            
      'LSMALL'    (L)   ベクトルの大きさが内部変数'RSMALL'で決まる値以下の  
                        とき 欠損値処理と同じように,                       
                        その格子点にマーカーを描くかどうか指定する.        
                        .TRUE.なら描く;.FALSE.なら描かない                  
                        (初期値は.FALSE.). [-1ex]0ex1ex}                   
                                                                            
      'RSMALL'    (R)   内部変数'LSMALL'が参照するベクトルの大きさのしきい  
                        値 (初期値は0.001). [-1ex]0ex1ex}                  
                                                                            
      'ITYPE2'    (I)   内部変数'LSMALL'が.TRUE.のとき,                    
                        その格子点に描くマーカーのマーカータイプ(初期値は  
                        1). [-1ex]0ex1ex}                                   
                                                                            
      'RSIZEM'    (R)   'LMISSP', 'LSMALL'が.TRUE.のときに描く              
                        マーカーのマーカーサイズ(初期値は0.01)             
                        . [-1ex]0ex1ex}                                     
                                                                            
      'RSIZET'    (R)   グラフの下部マージンに書くタイトルの文字高          
                        (単位はV座標系;初期値は不定).                     
                        この内部変数が不定のとき UZpGET/UZpSETの管理する    
                        内部変数'RSIZEL1'を 参照する(                       
                        [here] 節参照). [-1ex]0ex1ex}                      
                                                                            
      'XTTL'      (R)   グラフの下部マージンに書くタイトルの位置を決める内  
                        部変数. -1から+1までの実数値をとりうる.           
                        -1のとき左よせ,0のときセンタリング,+1のとき右よ   
                        せする (初期値は0). [-1ex]0ex1ex}                  
                                                                            
      'LUNIT'     (L)   ユニットベクトルを描くかどうかを指定する.          
                        .TRUE.なら描く; .FALSE.なら描かない                 
                        (初期値は.FALSE.). [-1ex]0ex1ex}                   
                                                                            
      'LUMSG'     (L)   ユニットベクトルを描くときグラフの下部マージンに    
                        ユニットベクトルの単位を書くかどうかを指定する.    
                        .TRUE.なら書く;.FALSE.なら書かない                  
                        (初期値は.TRUE.). [-1ex]0ex1ex}                    
                                                                            
      'VXULOC'    (R)   ユニットベクトルの始点のX座標(単位はV座標系;初期   
                        値は不定). [-1ex]0ex1ex}                           
                                                                            
      'VYULOC'    (R)   ユニットベクトルの始点のY座標(単位はV座標系;初期   
                        値は不定). [-1ex]0ex1ex}                           
                                                                            
      'VXUOFF'    (R)   'VXULOC', 'VYULOC'が陽に指定されていないとき,      
                        ユニットベクトルをビューポートの右下隅からX方向に   
                        どれだけ離すかを                                    
                        与えるオフセット値(単位はV座標系;初期値は0.02)     
                        . [-1ex]0ex1ex}                                     
                                                                            
      'VYUOFF'    (R)   'VXULOC', 'VYULOC'が陽に指定されていないとき,      
                        ユニットベクトルをビューポートの右下隅からY方向に   
                        どれだけ離すかを                                    
                        与えるオフセット値(単位はV座標系;初期値は0.0)      
                        . [-1ex]0ex1ex}                                     
                                                                            
      'UXUNIT'    (R)   X方向のユニットベクトルの長さ(単位は次元量;初期値  
                        は不定). [-1ex]0ex1ex}                             
                                                                            
      'UYUNIT'    (R)   Y方向のユニットベクトルの長さ(単位は次元量;初期値  
                        は不定). [-1ex]0ex1ex}                             
                                                                            
      'VXUNIT'    (R)   X方向のユニットベクトルの長さ(単位はV座標系;初期   
                        値は0.05). [-1ex]0ex1ex}                            
                                                                            
      'VYUNIT'    (R)   Y方向のユニットベクトルの長さ(単位はV座標系;初期   
                        値は0.05). [-1ex]0ex1ex}                            
                                                                            
      'IUNTTL'    (I)   設定されている,ユニットベクトルにつけるタイトルの  
                        数. ユーザーは値を設定してはいけない.             
                        [-1ex]0ex1ex}                                       
                                                                            
      'RSIZEUT'   (R)   ユニットベクトルにつけるタイトルの文字高(単位はV   
                        座標系;初期値は不定). この内部変数が不定のとき     
                        UZpGET/UZpSETの管理する内部変数                     
                        'RSIZEL1'を参照する([here]                          
                        節参照). [-1ex]0ex1ex}                             
                                                                            
      'IUINDX'    (I)   ユニットベクトルにつけるタイトルのラインインデクス  
                        (初期値は3). [-1ex]0ex1ex}                         
                                                                            
      'IUTXRO'    (I)   X方向のユニットベクトルにつけるタイトルの回転角     
                        (単位は度;初期値は0). [-1ex]0ex1ex}                
                                                                            
      'IUTYRO'    (I)   Y方向のユニットベクトルにつけるタイトルの回転角     
                        (単位は度;初期値は90)                              
                        .                                                   
                        タイトルの長さが1のときに限って'IUTYRO'は90以外の   
                        値を とることが許される. [-1ex]0ex1ex}             
                                                                            
      'IUNDEF'    (I)   値が不定であることを示す内部変数 (初期値は-999)    
                        . [-1ex]0ex1ex}                                     
                                                                            
    
  4. 備考
    1. 内部変数を管理するための下請けルーチンとして 以下のものがある.
                                                                          
        UGPQNP(NCP)         内部変数の総数NCPを求める.                   
                                                                          
        UGPQID(CP,IDX)      内部変数CPの位置IDXを求める.                 
                                                                          
        UGPQCP(IDX,CP)      IDXの位置にある内部変数の名前CPを参照する.   
                                                                          
        UGPQVL(IDX,IPARA)   IDXの位置にある内部変数の値IPARAを参照する.  
                                                                          
        UGPSVL(IDX,IPARA)   IDXの位置にある内部変数の値IPARAを変更する.  
                                                                          
      
    2. UGpGETは上に述べたUGPQIDを呼んで 内部変数の位置を求め,UGPQVLによって値を参照する; UGpSETUGPQIDを呼んで内部変数の位置を求め, UGPSVLによって値を設定する. したがって指定した内部変数名が見つからないとき, エラーメッセージはUGPQIDが出力する.
    3. ITYPEとしては適切な型の定数または変数を指定すること.

その他のサブルーチン・関数

このパッケージにはこのほかに以下の下位ルーチン・関数がある. ここではその名前をあげるにとどめる.

                           
  UGVXVY   UGUNIT   UGDUT  
                           


Back to Main


Latex Source


地球流体電脳倶楽部 : 95/6/9 (Version 5.0)

NUMAGUTI Atusi <a1n@gfdl.gov>
Last Modified: Thu Aug 31 13:08:38 EDT 1995