7.4 中途半端なウインドウ

ウインドウの最小値・最大値は必ずしも切りのよい値でなくても大丈夫です. uxyz4 のプログラム例では, x軸については-50から50の範囲で, y軸については1000から0.4の範囲でウインドウを設定しています. このと き, uxaxdv はきざみ値の整数倍となるところに目盛とラベルを描きま す. また, ulylog は10nから10n+1を1サイクルとして目盛とラ ベルを描きます. このように, 目盛やラベルは切りのよいサイクルを単位とし て作画がおこなわれます. さらに, 好みの間隔で目盛をうち, 好みのところに ラベルを描きたい場合は, 次章を見て下さい.

なお, この例では, ulylog を用いて対数座標軸を描画する際に, uliset ルーチンで整数型内部変数 'IYTYPE' を3に変更してラベルの 書式を変えました. 対数軸に付けるラベルの書式は全部で4種類用意されてい ます.

# uxyz4.rb


require "narray"
require "numru/dcl"
include NumRu
include Math


#-- graph ---
iws = (ARGV[0] || (puts ' WORKSTATION ID (I)  ? ;'; DCL::sgpwsn; gets)).to_i
DCL::gropn iws

DCL::grfrm

DCL::grswnd(-50.0, 50.0, 1.0e3, 0.4)
DCL::grsvpt(0.2, 0.8, 0.2, 0.8)
DCL::grstrn(2)
DCL::grstrf

DCL::uxaxdv('B', 5.0, 20.0)
DCL::uxaxdv('T', 5.0, 20.0)
DCL::uxsttl('B', 'LATITUDE (deg)', 0.0)

DCL::uliset('IYTYPE', 3)
DCL::ulylog('L', 3, 9)
DCL::ulylog('R', 3, 9)
DCL::uysttl('L', 'PRESSURE (hPa)', 0.0)

DCL::uxmttl('T', 'UXAXDV/ULYLOG', 0.0)

DCL::grcls

program uxyz4

\resizebox{10cm}{!}{\includegraphics{uxyz1/uxyz4.eps}}
uxyz4.rb: frame1
 

計算機のなまり 3

文字の内部表現

文字の内部表現も実数表現と同様に機種に依存しています.DCL の CHGLIB と CHKLIB のサブパッケージは,機種依存する文字処理を規格化するためのものです.

FORTRAN では以下の FORTRAN 文字集合が定められており,プログラムは,注釈行や文字型データの中は例外として,これらの文字だけで書かなければなりません.

                                           
  英字:       ABCDEFGHIJKLMNOPQRSTUVWXYZ   
                                           
  数字:       0123456789                   
                                           
  特殊文字:   空白 !'()                    
              *+,-./:=! 通貨記号           
                                           

したがって,小文字で FORTRAN プログラムを書くのは厳密に言えば文法違反になります.

これらのFORTRAN文字を含めて,文字の内部表現方法はFORTRANの規格では特に規定されていません.文字の内部表現方法は実数の場合と同様に,IBM規格であるEBCDICと,アメリカの標準規格であるASCIIとに大別されます.

EBCDIC は,IBM によって定められた拡張2進化10進情報交換用コード (Extended Binary Coded Decimal Interchange Code)です. 富士通,日立などのいわゆる IBM 互換の汎用機でも採用されていますが,各社で微妙に定義が異なります.富士通のコードには,IBM規格以外の制御コードも定義されており,日立のEBCDIK(最後のKはカナ)ではアルファベットの小文字のコードが異なります.

ASCIIコードはアメリカ規格協会(ANSI)で規定された文字コード体系です. UNIX, MS-DOS などで採用されている文字コードです.日本では,ほぼ同じものがJIS X0201として規定されています. ASCII コードは7ビットで,最上位桁は0ですが,JISには8ビット全部使ってカタカナまで規定した8単位符号表があります.

詳細は,MISC1 のマニュアル(dcl-x.x/doc/misc1/gaiyou/char.tex)を御覧下さい.