この章では,2次元データA(x,y)をグラフ化します.Aがスカラーなら同じ 値のところを結ぶ等高線図(コンター・プロット)になり,Aが2次元のベクト ルならば矢印を用いた「流れ図」となります.これらの場合,作画範囲 (x,y) は自分で把握できているので,ウインドウは自分で陽に設定し,コン ターや矢印を「おまかせ」で描くことにします.
格子点で与えられた2次元のスカラーデータを手早く等高線図で描きたいとい うときには,サブルーチン UDCNTR を呼びます(U2D1). UDCNTR ルーチンは等高線を描くだけですから,まず正規化変換を設定します. ウインドウはGRSWND ルーチンで[TMIN,TMAX][ZMIN,ZMAX]([0,5][20,50])と陽に設定 しますが,ビューポート( [0.2,0.8][0.2,0.8])と変換関数番号(1: 直角一様座標)は括弧内の初期値を用いるので,USPFIT ルーチンを呼び, さらに GRSTRF ルーチンでこれらを確定しています.
次に,USSTTL ルーチンで座標軸タイトルの情報を与え,USDAXS ルーチンでおまかせの座標軸を描きます.
そして,最後に UDCNTR ルーチンを呼んで等高線を描きます.現在設定 されているウインドウいっぱいに等間隔の格子点が設定されて,コンタリング が行なわれます.つまり,座標軸の目盛に関係なく,U(1,1) が左下隅, U(NT,NZ) が右上隅にくるように等間隔の格子点座標が設定されます. コンターレベルは自動的に決定され,図の下にそのコンター間隔が表示されま す.UDCNTR の引数の2番目以降で配列の寸法を指定しますが,第1次元 寸法を2度指定するのは,配列の一部分だけを作画できるようにするためです. この例のようにデータ全部を描く場合は,2番目の引数と3番目の引数を同じ (NT)にします.
Z (実数型) MX NYの2次元配列. 作画にはNX NYの部分を使う. MX (整数型) 配列Zの第1次元整合寸法. NX (整数型) 作画に使う配列Zの第1次元寸法. NY (整数型) 作画に使う配列Zの第2次元寸法.
u2d1.f: frame1
サブルーチン UETONE を呼ぶだけで,とりあえず負の領域にトーンをつ けることができます.次のプログラム例 U2D2 は,U2D1 の結果 に加えて,負の領域に斜線のハッチをつけます.ここで,24行めで SGLSET ルーチンを呼んで,トーンに関する論理型内部変数 'LSOFTF' を .TRUE. に設定しています.これを .FALSE.(初期値)で描く と,出力装置によっては先に描かれた図形が消えてしまうことがあります. 'LSOFTF' の設定を変えたり,UETONE を呼ぶ順序を USDAXS の前にしたりして,結果がどのようになるか確かめてみましょう.ま た,この例では,ビューポートを陽に設定して長方形にしている点にも注意し て下さい.
Z (実数型) MX NYの2次元配列. 作画にはNX NYの部分を使う. MX (整数型) 配列Zの第1次元整合寸法. NX (整数型) 作画に使う配列Zの第1次元寸法. NY (整数型) 作画に使う配列Zの第2次元寸法.塗り分けの設定を陽に行なわなければ,負の領域に斜線を引く. この塗り分けレベルとパターンの設定は第[here]節を参照のこと.
u2d2.f: frame1
今度は,2次元のベクトル場を手早く矢印で描きたいというときの例題です. 次のプログラム U2D3 は簡単な変形場を描くものですが,サブルーチン UGVECT 1つを呼ぶだけで十分です.前節の等高線図の場合と同様に,お まかせの座標軸を描画したあとで UGVECT ルーチンを呼んでベクトル場 を描いています.
この例でも,等間隔の格子点を設定して,それぞれの格子点でのベクトルを矢 印で表現します.おまかせ描画のときには,ベクトルの長さが格子点間隔を越 えないようにスケーリングファクターが決定され,それを乗じてベクトルが描 かれます.この場合,x 成分とy 成分のスケーリングファクターは同じに なっていて,図の下部マージンにはその値が表示されています.
U (実数型) ベクトルのx 成分を与える MU NYの2次元配列. 作画にはNX NYの部分を使う. MU (整数型) 配列Uの第1次元整合寸法. V (実数型) ベクトルのy 成分を与える MV NYの2次元配列. 作画にはNX NYの部分を使う. MV (整数型) 配列Vの第1次元整合寸法. NX (整数型) 作画に使う配列U, Vの第1次元寸法. NY (整数型) 作画に使う配列U, Vの第2次元寸法.
u2d3.f: frame1
TLEV1 (実数型) 塗り分けるレベルの下限値. TLEV2 (実数型) 塗り分けるレベルの上限値. IPAT (整数型) トーンパターン番号.
i パターンの種類.0:ドット,1:横線, 2:斜線(右上がり), 3:縦線, 4:斜線(左上がり), 5:格子(縦横), 6:格子(斜め). j ドットの大きさや斜線の太さ. 0から5まで値が大きくなるにつれて,ドットは大きく,線は太くなる . k ドットや斜線の密度. 0から5まで値が大きくなるにつれて,密度が高くなる.
u2d4.f: frame1
NUMAGUTI Atusi <a1n@gfdl.gov> Last Modified: Thu Aug 31 13:12:35 EDT 1995