7.2 描画領域の変更

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

\resizebox{10cm}{!}{\includegraphics{layout/lay2.eps}}
lay2.f: frame1