タイトルを描く

1d04.f90
program sample_1d04

  use dcl
  integer, parameter :: n=200
  real(kind=selected_real_kind(12)) :: x=0.d0, y=1.d0, z=1.d0
  real(kind=selected_real_kind(12)) :: dx, dy, dz, dt=0.01d0
  real(kind=selected_real_kind(12)) :: s=10.d0, r=26.d0, b=2.6d0
  real, dimension(n)                :: t, a

!-----------------------------------------------------------------------

    do i=1, n
      do  j=1, 8
        dx = -s*x + s*y
        dy = -x*z + r*x - y
        dz =  x*y - b*z
        x = x + dx*dt
        y = y + dy*dt
        z = z + dz*dt
      end do
      t(i) = (i-1)*1000
      a(i) = y + 20.
    end do

!-----------------------------------------------------------------------

    call DclOpenGraphics()
    call DclNewFrame

    call DclSetTitle ('Time', 'Heat Flux', 'Sec', 'W/m|2"')
    call DclDrawScaledGraph(t, a)

    call DclCloseGraphics

end program


とにかくグラフは描けるようになった. しかし, 座標軸にタイトルがないと何のグラフだったかわからなくなってしまう.

USSTTLを使えば, X軸とY軸のタイトルや単位を 描くことができる. これらは, 以下に述べるように USCGET/USCSETが管理する 内部変数を設定してやることによっても指定できる. また, USSTTLUSCSETを使わずに, USGRPHを呼んだ後でUXPACK/UYPACKのタイトル作画ルーチンを 使って適当なタイトルを付けてもよい.

USGRPHで座標軸にタイトルを付けるには, USGRPHの前にUSCSETを使って, 内部変数'CXTTL', 'CYTTL'を設定しておけばよい (タイトルは80文字まで設定できる).

また, USGRPHではファクター値やオフセット値を描くために USXSUB/USYSUBというサブラベル(座標軸の端に付け足すラベル)を 描くためのルーチンを用意したので, ついでに座標軸の単位などもこのサブラベルに含めることができるようにしてある. これも, タイトルと同様にUSCSET'CXUNIT', 'CYUNIT'を設定すればよい. ここで指定した文字列は, ファクター値やオフセット値がある場合 これらの後に書かれる.

なお, タイトル等はGRFRM, GRFIGにより初期化される. 同じタイトルで沢山の図を描きたい時にはUSISET'IRESET'を0にすれば, タイトルの設定は1度で済む.

関連リンク