座標軸は 'B', 'T', 'L', 'R' で指定する 以外のところにも描くことができます. また, 軸の表現もいろいろ変えられま す(UXYZ7).
      PROGRAM UXYZ7
      WRITE(*,*) ' WORKSTATION ID (I)  ? ;'
      CALL SGPWSN
      READ (*,*) IWS
      CALL GROPN( IWS )
      CALL GRFRM
      CALL GRSWND( 1990., 1995., -2.0, 2.0 )
      CALL GRSVPT(   0.2,   0.8,  0.3, 0.7 )
      CALL GRSTRN( 1 )
      CALL GRSTRF
      CALL UZRSET( 'UYUSER', 0. )
      CALL UZLSET( 'LBTWN', .TRUE. )
      CALL UXSFMT( '(I4)' )
      CALL UXAXDV( 'U', 0.25, 1. )
      CALL UZLSET( 'LBTWN', .FALSE. )
      CALL UXSTTL( 'U', 'YEAR', 1. )
      CALL UZISET( 'INNER', -1 )
      CALL UYSFMT( '(F4.1)' )
      CALL UYAXDV( 'L', 0.25, 1. )
      CALL UYSTTL( 'L', 'S.O.Index', 0. )
      CALL UXMTTL( 'T', 'UXAXDV/UYAXDV', 0. )
      CALL GRCLS
      END
  
 
PROGRAM UXYZ7  
 
  
  
座標軸をウインドウ・ビューポートの境界線以外のところへ描きたいときには,  
場所をあらわす引数としてユーザー指定の座標軸 'U' を指定します.   
この例では UXAXDV と UXSTTL のサブルーチンで 'U' を  
指定して, 座標軸とタイトルを描いています. 具体的にどこに軸を描くかは,  
UZRSET ルーチンを用いて, x軸については内部変数 'UYUSER'   
の値を, y軸については内部変数 'UXUSER' の値を指定ます. この例  
の場合, 'UYUSER' を0.0と指定することによって, U-座標系でみたy座標の値が0.0のところにユーザー指定のx軸を描きます.  
  
  
  
  
また, この例のx軸では, 目盛と目盛の間にラベルを描いてみました. UZLSET ルーチンで内部変数 'LBTWN' を .TRUE. とすれば, 目  
盛と目盛の間にラベルを描きます. ただし, 注意すべきことは, ほかの座標軸  
を描くときにもこの設定が影響しますので, ラベルを描き終ったら .FALSE.(初期値)に戻しておく必要があります.  
  
  
  
  
さらに, 17行めの UXSFMT ルーチンによってフォーマットを '(I4)' と陽に指定しています. これは, デフォルトでは有効数字3桁で数値  
を表現するフォーマットとなっているためで, 4桁目までちゃんと表現する必  
要があるときには, このようにユーザーがフォーマットを指定しなければなり  
ません.  
  
  
  
y軸では, UZISET で内部変数 'INNER' を-1に設定して, 目 盛を外向きにつけました. (初期値は1で, 内向きに目盛をつけます.) また, UYSFMT ルーチンによってフォーマットを '(F4.1)' と陽に指定し ました.