前章までの例では, 用紙の形は長方形なのに, そこに最大内接する正方形の領 域をとって [0,1]×[0,1] のV-座標系を考え, その中だけに図を描いてき ました. これに対して, 紙一杯に図を描く例が次のプログラム LAY2 で す. 物理的な描画範囲一杯に作画したい時は, SGLSET ルーチンを用い てレイアウトに関する論理型内部変数 'LFULL' を .TRUE. にし ます. 長辺がV-座標系で[0,1]となりますから, ここではビューポートを (0.15,0.95,0.15,0.65) として物理的な作画範囲に納まるようにとって います. この範囲は出力装置によって異なりますので, プログラムによっては 出力する際にエラーを起こす可能性もあります. 御注意下さい.
PROGRAM LAY2
PARAMETER( NMAX=401, XMIN=1600, XMAX=2000 )
REAL X(NMAX), Y(NMAX)
*- データ --
Y0 = 0.5
DO 10 N=1,NMAX
X(N) = XMIN + (XMAX-XMIN)*(N-1)/(NMAX-1)
Y(N) = 5.*Y0 + 10.
Y0 = 3.7*Y0*(1.-Y0)
10 CONTINUE
*- グラフ --
WRITE(*,*) ' WORKSTATION ID (I) ? ;'
CALL SGPWSN
READ (*,*) IWS
CALL GROPN( IWS )
CALL SGLSET( 'LFULL', .TRUE. )
CALL GRFRM
CALL GRSWND( XMIN, XMAX, 11.0, 15.0 )
CALL GRSVPT( 0.15, 0.95, 0.15, 0.65 )
CALL USPFIT
CALL GRSTRF
CALL USSTTL( 'TIME', 'YEAR', 'TEMPERATURE', 'DEG' )
CALL USDAXS
CALL UULIN( NMAX, X, Y )
CALL GRCLS
END
PROGRAM LAY2
lay2.f: frame1