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 を使っているからです.