IOINIT(3F) — UNIX Programmer’s Manual
名称
ioinit − f77のI/Oの初期化を 変更する
形式
logical function ioinit (cctl, bzro, apnd, prefix, vrbose)
logical cctl, bzro, apnd, vrbose
character∗(∗) prefix
解説
このルーチンは、 ff77 の I/O システム中にある、 いくつかのグローバルパラメータを 初期化し、 外部で定義されたファイルを 実行時に論理ユニットに接続します。 フラグ引数の効果は、 ioinit が呼び出された後オープンされた論理ユニットに適用されます。 割り当て済みのユニット5 とユニット6 は例外で、 これらに対しては常に cctl と bzro が適用されています。 ioinit は Fortran-77 に書き込まれています。
デフォルトでは、 キャリッジ制御は論理ユニット上では認識されません。 cctl が .true. の場合には、 キャリッジ制御は、 ユニット0(診断チャネル)以外のすべての論理ユニットに対して、 フォーマットされた出力上で認識されます。 そうでない場合には、 デフォルト時の状態に戻ります。
デフォルトでは、 入力データフィールド内の後ろを 埋める空白は無視されます。 bzro が .true. の場合には、 このような空白は、 ゼロとして扱われます。 そうでなければ、 デフォルト時の状態に戻ります。
デフォルトでは、 ファイルはすべてシーケンシャルアクセス用にオープンされ、 ポインタは先頭にセットされます。 END-OF-FILE の位置でオープンすることが、 必要または便利なこともあります。 そうすると、 書き込みは既存データに追加されます。 apnd が .true. の場合には、 後で任意の論理ユニットでオープンされたファイルは、 オープン時に最後の位置がポイントされます。 値が .false. の場合はデフォルトの動作に戻ります。
ioinit は、 環境変数を 介してファイル名を fortran の論理ユニット番号に接続するために使用することができます ("Introduction to the f77 I/O Library" を参照)。 引数の prefix が非空白文字列の場合には、 prefixNN 形式の名前はプログラム環境の中で探されます。 このように見つけられた各名前に与えられた値は、 フォーマットされたシーケンシャルアクセスに対して論理ユニットNNを オープンするために使用されることになります。 例えば、 f77 プログラムの myprogram が次のような呼び出しを 含んでいる場合には、
call ioinit (.true., .false., .false., ’FORT’, .false.)
次のようなシーケンスにより、
% setenv FORT01 mydata
% setenv FORT12 myresults
% myprogram
論理ユニット1はファイル mydata に対してオープンされ、 論理ユニット12 はファイル myresults に対してオープンされることになります。 両方のファイルは先頭の位置がポイントされます。 フォーマットされた出力はどれも、 カラム 1 が削除され、 キャリッジ制御として解釈されます。 後ろに埋め込まれた空白は、 入力では無視されます。
vrbose 引数が .true. の場合には、 ioinit はその動作を 出力するようになります。
call ioinit (.true., .true., .false., ”, .false.)
の効果は、 実際の呼び出しがなくても、 f77 のコマンド行上に“−lI66”を 含めることによって達成されます。 これは、 0 以外のすべての論理ユニットにキャリッジ制御を 与え、 ファイルが先頭の位置でオープンされるようにし、 空白がゼロと解釈されるようにします。
内部フラグは、 次のような定義で、 ラベル付きの共通ブロックに記憶されています。
integer∗2 ieof, ictl, ibzr
common /ioiflg/ ieof, ictl, ibzr
関連ファイル
/usr/lib/libI77.a f77 のI/Oライブラリ
/usr/lib/libI66.a 古い fortran のI/Oモード設定
関連事項
getarg(3F), getenv(3F), “Intdoduction to the f77 I/O Library”
バグ
prefix は、 30バイトを超えることはできません。 環境名に接続するパス名は、255バイトを超えることはできません。
“+”キャリッジ制御は動作しません。
NEWS-OSRelease 3.3