前章までの例では, 用紙の形は長方形なのに, そこに最大内接する正方形の領 域をとって [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 ENDPROGRAM LAY2
lay2.f: frame1