前節と同様に, 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