5.1 基本概念(5): 内部変数「未定義値」

DCLでは xxpget, xxpset 型の内部変数管理ルーチンが多く使わ れています(いままで一度もお目にかかっていませんが). xx は通常パッ ケージの先頭2文字で, p は変数の型によって, i(整数型), r(実数型), l(論理型), c(文字型)のうちのひとつになります. 内部変数はそれぞれのパッケージ毎に数多くあり, 「未定義値」'RUNDEF' もそのような実数型内部変数のひとつで, SYSLIB パッケージで管 理されています. 一般に, 内部変数は, あらかじめシステムが用意した値「初 期値」をデフォルトで保持しています. 'RUNDEF'の場合, この値を glrget ルーチンによって参照し, glrset ルーチンによって変更 することがでます.

ところで, 'RUNDEF' は「ユーザーが陽に指定していない」ことを表す 内部変数で, その値 rundef を「未定義値」と呼びます. これまで, お まかせメソッド(元サブルーチン)の説明で「○○が陽に指定されていなければ」というくだ りがいくつかでてきましたが, これは「○○が rundef に等しい時には」 ということだったのです. この rundefusgrph ルーチンなど の引数に用いると, x または y の座標値を「おまかせ」にすることが出 来ます.

この rundef の値は初期値として -999. が与えられていますが, こ の値が不都合な時(例えば, -1000 から -999 までのグラフを描く場合な ど)は grfrm ルーチンを呼ぶ前に CALL glrset('RUNDEF', -999999.) などとして未定義値の値を変更しておきます. grfrm ルー チンでこの rundef を使っているからです.