6.3 ベクトル場

今度は, 2次元のベクトル場を手早く矢印で描きたいというときの例題です. 次のプログラム U2D3 は簡単な変形場を描くものですが, サブルーチン UGVECT 1つを呼ぶだけで十分です. 前節の等高線図の場合と同様に, お まかせの座標軸を描画したあとで UGVECT ルーチンを呼んでベクトル場 を描いています.

この例でも, 等間隔の格子点を設定して, それぞれの格子点でのベクトルを矢 印で表現します. おまかせ描画のときには, ベクトルの長さが格子点間隔を越 えないようにスケーリングファクターが決定され, それを乗じてベクトルが描 かれます. この場合, x 成分とy 成分のスケーリングファクターは同じに なっていて, 図の下部マージンにはその値が表示されています.

      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



\resizebox{10cm}{!}{\includegraphics{u2d/u2d3.eps}}
u2d3.f: frame1