7.8.1 uspget/uspset(uspstx)

1.
機能
実数, 整数, 論理内部変数を参照/設定する. (uspstx は実行時オプションによる変更が可能.)

2.
呼び出し方法
rpara = NumRu::DCL.uspget(cp)
NumRu::DCL.uspset(cp,rpara)
NumRu::DCL.uspstx(cp,rpara)

3.
引数
cp (C*(*)) パラメータ名 (i)
ipara (I/R/L) パラメータ値 (i/o)

4.
パラメータリスト

ireset (I) usinitで自動的にパラメータを リセットすることを指定する変数. 初期値は1.
0: スケーリングパラメタなど ( * 印のついた変数) のリセットのみ行なう.
1: ireset=0 に加えてタイトルのリセットをする.
2: us p setのすべてのパラメタを リセットする.
usinitは通常 grfrmから呼ばれる.

xdtmin*, xdtmax* (R) usspnt で設定された X 座標の最大最小値.
ydtmin*, ydtmax* (R) usspnt で設定された Y 座標の最大最小値.

lxinv (L) .true.の時, X軸の左右を逆にする.
lyinv (L) .true.の時, Y軸の上下を逆にする.
lmatch (L) .true.の時, X軸とY軸のラベル間隔及び 文字間隔を同じにする.
rmrgn (R) マージンの幅. 単位は文字幅. (9.524)

xfac* (R) X座標のファクター値 (999.)
yfac* (R) Y座標のファクター値 (999.)
xoff* (R) 一様X座標のオフセット値 (999.)
yoff* (R) 一様Y座標のオフセット値 (999.)

dxt* (R) 一様X座標の目盛の間隔 (999.)
dyt* (R) 一様Y座標の目盛の間隔 (999.)
dxl* (R) 一様X座標のラベルの間隔 (999.)
dyl* (R) 一様Y座標のラベルの間隔 (999.)

tfact (R) 一様座標の目盛間隔の目安 (2)
これらの値に文字幅 ( rsizel1) を掛けた幅よりも 小さな間隔で, 切りのよい値をDUTとして設定する.
mxdgtx (I) 一様X座標のラベルの最大桁数 (4)
mxdgty (I) 一様Y座標のラベルの最大桁数 (4)
ラベルの桁数がこれらの値よりも大きくなるとき, uoff, ufac を設定して これらの桁数以内におさまるように試みる.

nblank1 (I) ラベルが座標軸と平行な場合の, ラベル間の最小空白数. (一様座標) (1)
nblank2 (I) ラベルが座標軸と直角な場合の, ラベル間の最小空白数. (一様座標) (2)

nlblx* (I) 対数X座標のラベル形式 (999)
nlbly* (I) 対数Y座標のラベル形式 (999)
nticksx* (I) 対数X座標の一桁の間の目盛の数 (999)
nticksy* (I) 対数Y座標の一桁の間の目盛の数 (999)
itypex* (I) 対数X座標のタイプ (999)
itypey* (I) 対数Y座標のタイプ (999)

mxdgtsx (I) X軸のサブラベルが水平方向の場合, mxsdgtxで指定された文字数のラベルの範囲を 越えないようにサブラベルを描く.
mxdgtsy (I) Y軸のサブラベルが垂直方向の場合, mxdgtsyで指定された文字数のラベルの範囲を 越えないようにサブラベルを描く.
lprtct (L) サブラベルを他方の軸のラベル領域に まで描かないことを指定する. これが .true.の時には mxdgtsx/mxdgtsy の指定は無視される.

soffx sp * (R) X軸のサブラベルのオフセット値. sp= 'TR', 'TL', 'BR', 'BL', 'UR', 'UL'.
soffy sp * (R) X軸のサブラベルのオフセット値. sp= 'RT', 'RB', 'LT', 'LB', 'UT', 'UB'.
roffx s * (R) Y軸のサブラベルがX軸のラベル 領域に侵入したときのX軸のオフセット値. s = 'T', 'B'.
roffy s * (R) X軸のサブラベルがY軸のラベル 領域に侵入したときのY軸のオフセット値. s = 'L', 'R'.

* がついた変数は常にリセットされる.

5.
備考
(a)
内部変数を管理するための下請けルーチンとして 以下のものがある.
ncp = NumRu::DCL.uspqnp() 内部変数の総数 ncpを求める.
idx = NumRu::DCL.uspqid(cp) 内部変数 cpの位置 idxを求める.
cp = NumRu::DCL.uspqcp(idx) idxの位置にある内部変数の名前 cpを参照する.
ipara = NumRu::DCL.uspqvl(idx) idxの位置にある内部変数の値 iparaを参照する.
NumRu::DCL.uspsvl(idx,ipara) idxの位置にある内部変数の値 iparaを変更する.
(b)
USpGETは上に述べたUSPQIDを呼んで 内部変数の位置を求め, uspqvlによって値を参照する; uspsetuspqidを呼んで内部変数の位置を求め, uspsvlによって値を設定する. したがって指定した内部変数名が見つからないとき, エラーメッセージはuspqidが出力する.
(c)
ITYPEとしては適切な型の定数または変数を指定すること.