Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ ioinit(3F7768) — NEWS-os 4.2.1R

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

getarg(3F7768)

getenv(3F7768)

IOINIT(3F7768)  —  NEWS-OS Programmer’s Manual

名称

ioinit  −  f77 の I/O の初期化を変更する

形式

logical function ioinit (cctl, bzro, apnd, prefix, vrbose)
logical cctl, bzro, apnd, vrbose
character∗(∗) prefix

解説

このルーチンは、 f77 の 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/libI7768.a   f77 の I/O ライブラリ
/usr/lib/libI66.a   古い fortran の I/O モード設定

関連事項

getarg(3F7768), getenv(3F7768),
“Intdoduction to the f77 I/O Library”

バグ

prefix は、 30 バイトを超えることはできません。 環境名に接続するパス名は、255 バイトを超えることはできません。

“+”キャリッジ制御は動作しません。

NEWS-OSRelease 4.2.1R

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026