5.3 g(jΔy)

前節と同様に, y 方向に座標値が等間隔な場合にも, Y を指定するか わりに RUNDEF を指定します. 次のプログラム U1D2 では, USSPNT, UUMRK, UULIN の各ルーチンで Y を未定義値と しています. ここでは USSPNT ルーチンを使ってウインドウを決め, ビュー ポートの設定は初期値に頼りますので, GRSTRF ルーチンの前に USPFIT を呼んでいることを再確認しておきましょう. なお, 変換関数番号を 3として, 片対数座標にしています.

      PROGRAM U1D2

      PARAMETER( NMAX=50, YMIN=0., YMAX=50. )
      REAL X1(0:NMAX), X2(0:NMAX)

*- データ --
      ISEED = 1
      DO 10 N=0,NMAX
        Y = YMIN + (YMAX-YMIN)*N/NMAX
        X1(N) = 10.*(EXP(-Y/20))**2 * EXP((RNGU3(ISEED)-0.5)*2)**2
        X2(N) = 10.*(EXP(-Y/20))**2
   10 CONTINUE
   
   CALL GLRGET( 'RUNDEF', RUNDEF )

*- グラフ --
      WRITE(*,*) ' WORKSTATION ID (I)  ? ;'
      CALL SGPWSN
      READ (*,*) IWS

      CALL GROPN( IWS )
      CALL GRFRM

      CALL GRSWND( RUNDEF, RUNDEF, YMIN, YMAX )
      CALL USSPNT( NMAX+1, X1, RUNDEF )
      CALL USSPNT( NMAX+1, X2, RUNDEF )
      CALL GRSTRN( 3 )
      CALL USPFIT
      CALL GRSTRF

      CALL USSTTL( 'MIXING RATIO', 'ppmv', 'HEIGHT', 'km' )
      CALL USDAXS

      CALL UUSMKT( 2 )
      CALL UUMRK( NMAX+1, X1, RUNDEF )

      CALL UULIN( NMAX+1, X2, RUNDEF )

      CALL GRCLS

      END
PROGRAM U1D2

\resizebox{10cm}{!}{\includegraphics{u1d/u1d2.eps}}
u1d2.f: frame1