同じ様な図形を沢山並べたい時, GROPN のあとで SLDIVルーチン
を呼ぶと, 第1レベルめ(用紙全体)のフレームが分割され, 次のレベルのフレー
ムが定義されます. 分割されたフレームをあたかも1枚の紙のように扱って,
GRFRM の実行により, 次のフレームに自動的に移っていきます.
次のプログラム LAY1 では, DO 20 のループの中で, 普通に改 ページをしながら描画するのと同じように, GRFRM と USGRPH を 呼んで折れ線グラフを描いています. 21行めの SLDIV ルーチンでは 3×2=6分割していますから, 7番めの図は自動的に次のページに移って います. また, 第5.2節の出力結果と比較して, 文字の大きさが 分割されたフレームの大きさに応じて小さくなっていることにも注意して下さ い.
CFORM (文字型) フレームを順に割り付けていく方向. 'T':縦方向, 'Y':横方向. IX, IY (整数型) x 方向, y 方向の分割数.
PROGRAM LAY1 PARAMETER( NMAX=401, JMAX=51 ) REAL Y(NMAX), YY(JMAX) *- データ -- Y0 = 0.5 DO 10 N=1,NMAX Y(N) = 5.*Y0 + 10. Y0 = 3.7*Y0*(1.-Y0) 10 CONTINUE CALL GLRGET( 'RUNDEF', RUNDEF ) *- グラフ -- WRITE(*,*) ' WORKSTATION ID (I) ? ;' CALL SGPWSN READ (*,*) IWS CALL GROPN( IWS ) CALL SLDIV( 'Y', 3, 2 ) DO 20 I=1,8 CALL GRFRM IJMIN = (I-1)*(JMAX-1) + 1 IJ = IJMIN DO 30 J=1,JMAX IJ = IJ + 1 YY(J) = Y(IJ) 30 CONTINUE XMIN = IJMIN + 1599 XMAX = XMIN + JMAX - 1 CALL GRSWND( XMIN, XMAX, RUNDEF, RUNDEF ) CALL USSTTL( 'TIME', 'YEAR', 'TEMPERATURE', 'DEG' ) CALL USGRPH( JMAX, RUNDEF, YY ) 20 CONTINUE CALL GRCLS ENDPROGRAM LAY1