DclNewFrameは、新しい描画領域を設定する役割をもっている。このルーチンは図を描く前に必ず呼ばなければならないが、2回目以降は「改ページ」の操作になる。これを繰り返し用いれば何枚も図をかくことができる。
このように描いた図は、ウィンドウ・紙1ページに1つずつ描かれる。複数の図を1ページに沢山並べたい時には、DclDivideFrameを使うと非常に簡単にできる。このルーチンは、DclOpenGraphicsよりも後、DclNewFrameよりも前に呼ぶ。最初の引数で割り付ける方向を指定する。'Y' なら ば横方向に, 'T' ならば縦方向に割り付けられる。次の引数で、縦・横の分割数を指定する。
このように分割されたフレームは、それ以降は1枚のウィンドウ・紙のように扱われる。したがって文字の大きさも分割されたフレームの大きさに応じて小さくなっていることに注意されたい。DclDivideFrameは2回まで呼ぶことができて、分割されたフレームをさらにもう一度分割することが可能である。  
  
  
  
program multi
  use dcl
  character(len=7) :: ctxt = 'frame??'
    call DclOpenGraphics()
    call DclSetFrameMargin( 0.1, 0.1, 0.05, 0.05 )
    call DclDivideFrame( 'y', 3, 2 )
    call DclSetFrameMargin( 0.05, 0.05, 0.05, 0.05 )
    do i=1,12
      call DclNewFrame
      call DclSetViewPort( 0.1,0.9,0.1,0.9 )
      call DclDrawViewPortFrame( 1 )
      write(ctxt(6:7),'(i2.2)') i
      call DclDrawTextNormalized( 0.5, 0.5, ctxt )
    end do
    call DclCloseGraphics
end program
  
 | 
  
![]()  | 
  
![]()  | 
|   
  
                DclDivideFrame (SLDIV)  |   
  
    フレームを分割する. | 
|   
  
                DclSetFrameMargin (SLMGN)  |   
  
    マージンを設定する. | 
|   
  
                DclDrawViewPortFrame (SLPVPR)  |   
  
    ビューポートの枠を描く. |