ぬりわけの設定は, DclSetShadeLevelでおこないます. 引数の与え方によりさまざまな設定方法を用いることができます.
最小値・最大値・きざみ値(またはおよそのレベル数)を設定する場合(旧UEGTLA), データの配列を与えて自動で設定する場合(旧UEGTLB)には, 色でぬりわけをおこないます. 色はパラメータ'SHADE_COLOR_MIN'と'SHADE_COLOR_MAX'で指定した色番号のあいだを等分割して 用い(初期値は15,94), 'AUTO_SHADE_PATTERN'(初期値999,べた塗り)をパターン番号とする シェードで描きます. また, ぬりわけるレベルとパターンを1レベルごとに指定したり(旧UESTLV), 複数のレベルとパターンを配列で指定したり(旧UESTLN)することもできます. 何枚も図をかくときにdoループの中でこれらを指定すると, 同じレベルを何重にも指定しまう. これらの指定はdoループの外に書くか, 毎回DclClearShadeLevelを呼ぶようにするとよいでしょう.
これらの設定を指定しなかったときでも, 'ENABLE_AUTO_SHADE_LEVEL'を.true.にすると自動でレベルを設定し(内部で DclSetShadeLevelを呼んでいる), 色でぬりわけをおこないます.
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インターフェイス名.