ぬりわけの設定

ぬりわけの設定は、DclSetShadeLevelでおこなう。 引数の与え方によりさまざまな設定方法を用いることができる。

最小値・最大値・きざみ値(またはおよそのレベル数)を設定する場合(DclSetShadeA)、 データの配列を与えて自動で設定する場合(DclSetShadeB)には、色でぬりわけをおこなう。 色は'SHADE_COLOR_MIN'と'SHADE_COLOR_MAX'で指定した色番号のあいだを等分割して 用い(初期値は15,94)、'AUTO_SHADE_PATTERN'(初期値999,べた塗り)をパターン番号とする シェードで描く。 また、ぬりわけるレベルとパターンを1レベルごとに指定したり(DclSetShadeV)、 複数のレベルとパターンを配列で指定したり(DclSetShadeN)することもできる。 何枚も図をかくときにdoループの中でこれらを指定すると、同じレベルを何重にも指定しまう。 これらの指定はdoループの外に書くか、毎回DclClearShadeLevelを呼ぶようにするとよい。

これらの設定を指定しなかったときでも、 'ENABLE_AUTO_SHADE_LEVEL'を.true.にすると自動でレベルを設定し(内部で DclSetShadeBを呼んでいる)、色でぬりわけをおこなう。

2d03.f90

program sample_2d03

  use dcl
  integer,parameter :: nx=18, ny=18
  real,parameter :: xmin=  0, xmax=360, dx1=20, dx2=60
  real,parameter :: ymin=-90, ymax=+90, dy1=10, dy2=30
  real,parameter :: pi=3.141592, drad=pi/180, dz=0.05, dp=0.2
  real,dimension(0:nx,0:ny) :: p

    do j = 0, ny
      do i = 0, nx
        alon = ( xmin + (xmax-xmin) * i/nx ) * drad
        alat = ( ymin + (ymax-ymin) * j/ny ) * drad
        slat = sin(alat)
        p(i,j) = cos(alon) * (1-slat**2) * sin(2*pi*slat) + dz
      end do
    end do

    call DclOpenGraphics()
!    rmiss = DclGetReal( 'GLOBAL:rmiss' )
    call DclGetParm( 'GLOBAL:rmiss', rmiss )
    call DclSetParm( 'GRAPH:LSOFTF', .false. )
    call DclNewFrame

    call DclSetWindow( xmin, xmax, ymin, ymax )
    call DclSetViewPort( 0.2, 0.8, 0.2, 0.8 )
    call DclSetTransNumber( DCL_UNI_UNI )
    call DclSetTransFunction

    call DclSetShadeLevel( rmiss,  -dp, 201 )
    call DclSetShadeLevel(    dp, dp*2, 401 )
    call DclSetShadeLevel( dp*2, rmiss, 402 )
    call DclShadeContour( p )

    call DclDrawAxis( 'bt', dx2, dx1 )
    call DclDrawTitle( 'b', 'LONGITUDE', 0.0 )

    call DclDrawAxis( 'lr', dy2, dy1 )
    call DclDrawTitle( 'l', 'LATITUDE', 0.0 )

    call DclSetContourLevel( p, dp )
    call DclDrawContour( p )

    call DclCloseGraphics

end program



DclSetShadeLevel
(UEGTLA,UEGTLB,
UESTLV,UESTLN)
ぬりわけレベルを設定する.
DclClearShadeLevel
(UEITLV)
ぬりわけレベルを無効にする.
DclShadeContourEx
(UETONF)
image 機能を使って2次元等値線図を色でぬりわける.

* 括弧の中は、対応するf77インターフェイス名.

関連リンク