大きい図形の隣に小さな図形を並べる時には, DclSetViewportを使って陽にビューポートを設定することになります. 下のプログラムを見ると, まず, ビューポートを (0.15,0.45,0.65,0.95) として, 描画範囲の左上に正方形の図を描いています. 次に, DclNewFigルーチンを呼んで2番めの図を描くために必要な初期化をします. DclNewFrameと違って, 改ページはされません. そして, ビューポートを (0.15,0.95,0.1,0.5)として下の図を描いています. こうすれば縦横比が1:2の長方形の図となります.
| 
program layout03
  use dcl
  integer,parameter :: nmax=400
  real :: x(nmax), y(nmax)
!-- データ 1 ----
    dt = 2.*3.14159 / (nmax-1)
    do n=1,nmax
      t = dt*(n-1)
      x(n) = 5.*sin(4.*t)
      y(n) = 5.*cos(5.*t)
    end do
!-- グラフ 1 ----
    call DclOpenGraphics()
    call DclNewFrame
    call DclSetWindow(  -6.,   6.,  -6.,   6. )
    call DclSetViewPort( 0.15, 0.45, 0.65, 0.95 )
    call DclSetTransNumber( 1 )
    call DclSetTransFunction
    call DclSetTitle( 'x1', 'y1', '', '' )
    call DclDrawScaledAxis
    call DclDrawLine( x, y )
!-- データ 2 ----
    iseed = 1
    x(1) = 2.*(rngu3(iseed)-0.5)
    do n=2,nmax
      x(n)   = 2.*(rngu3(iseed)-0.5)
      y(n-1) = x(n)
    end do
    y(nmax) = x(1)
!-- グラフ 2 ----
    call DclNewFig
    call DclSetWindow(  -1.1,  1.1, -1.1, 1.1 )
    call DclSetViewPort(  0.15, 0.95,  0.1, 0.5 )
    call DclSetTransNumber( 1 )
    call DclSetTransFunction
    call DclSetTitle( 'x2-title', 'y2-title', '', '' )
    call DclDrawScaledAxis
    call DclDrawMarker( x, y )
    call DclCloseGraphics
end program
 | 
|  | 
| DclNewFrame (GRFRM) | 新たなフレーム(ページ)を設定する. | 
| DclNewFig (GRFIG) | 新たな図を設定する. | 
| DclSetViewPort (GRSVPT) | ビューポートを設定する. |