今度は, 2次元のベクトル場を手早く矢印で描きたいというときの例題です.      
次のプログラム U2D3 は簡単な変形場を描くものですが, サブルーチン      
UGVECT 1つを呼ぶだけで十分です. 前節の等高線図の場合と同様に, お     
まかせの座標軸を描画したあとで UGVECT ルーチンを呼んでベクトル場     
を描いています.     
     
     
     
この例でも, 等間隔の格子点を設定して, それぞれの格子点でのベクトルを矢 印で表現します. おまかせ描画のときには, ベクトルの長さが格子点間隔を越 えないようにスケーリングファクターが決定され, それを乗じてベクトルが描 かれます. この場合, x 成分とy 成分のスケーリングファクターは同じに なっていて, 図の下部マージンにはその値が表示されています.
U (実数型) ベクトルのx 成分を与える MU×NYの2次元配列. 作画には NX× NYの部分を使う. MU (整数型) 配列 Uの第1次元整合寸法. V (実数型) ベクトルのy 成分を与える MV× NYの2次元配列. 作画には NX× NYの部分を使う. MV (整数型) 配列 Vの第1次元整合寸法. NX (整数型) 作画に使う配列 U, Vの第1次元寸法. NY (整数型) 作画に使う配列 U, Vの第2次元寸法. 
      PROGRAM U2D3
      PARAMETER( NX=21, NY=21 )
      PARAMETER( XMIN=-1, XMAX=1, YMIN=-1, YMAX=1 )
      PARAMETER( DX=(XMAX-XMIN)/(NX-1), DY=(YMAX-YMIN)/(NY-1) )
      REAL U(NX,NY), V(NX,NY)
*- データ -- 
      DO 10 J=1,NY 
      DO 10 I=1,NX 
        X = XMIN + (I-1)*DX 
        Y = YMIN + (J-1)*DY 
        U(I,J) =   X 
        V(I,J) = - Y 
   10 CONTINUE 
 
 
*- グラフ -- 
      WRITE(*,*) ' WORKSTATION ID (I)  ? ;' 
      CALL SGPWSN 
      READ (*,*) IWS 
 
      CALL GROPN( IWS ) 
      CALL GRFRM 
 
      CALL GRSWND( XMIN, XMAX, YMIN, YMAX ) 
      CALL USPFIT 
      CALL GRSTRF 
 
      CALL USSTTL( 'X', 'km', 'Y', 'km' ) 
      CALL USDAXS 
 
      CALL UGVECT( U, NX, V, NX, NX, NY ) 
  
      CALL GRCLS 
 
      END 
    
PROGRAM U2D3