インテル® Fortran コンパイラー 19.0 デベロッパー・ガイドおよびリファレンス
ファイルを開くには、事前結合されたファイル (「論理デバイス」を参照) を使用するか、または OPEN 文で開きます。OPEN 文は、ファイル結合特性やその他の情報を指定することができます。
OPEN 文により、ユニット番号と外部ファイルが結合されるので、OPEN 文の指定子を使用してファイル属性とランタイムオプションを明示的に指定することができます。事前結合されたファイルでない限り、一度ファイルを開いたら、再度開く前にファイルを閉じる必要があります。
以前、開いたユニット番号を (一度閉じないで) 開くと、次のいずれかが発生します。
最初に指定したファイルと異なるファイルを指定すると、インテル® Fortran ランタイムシステムは最初のファイルを閉じてから、新しいファイルを開きます。これにより、2 回目に開いたファイルに対する現在のレコード位置がリセットされます。
最初に開いたファイルと同じファイルを指定すると、そのファイルは再結合されます。このとき、内部的に CLOSE と OPEN に相当する処理は行いません。これにより、レコード位置の前後関係を維持したまま、OPEN 文のランタイム指定子を変更できます。
INQUIRE 文を使うと、プログラムによりファイルが開かれているかどうかを知ることができます。
特に、OPEN 文を使用して、新しいファイルを作成する場合は、デフォルトを確認 (OPEN の説明を参照) するか、または適切な OPEN 文指定子でファイル属性を明示的に指定してください。
これらの指定子はファイルとユニット情報を識別します。
UNIT は論理ユニット番号を指定します。
NEWUNIT はインテル® Fortran ランタイム・ライブラリーで未使用の論理ユニット番号を選択するように指定します。
FILE (または NAME) および DEFAULTFILE は、ディレクトリーや外部ファイルの名前を指定します。
STATUS または TYPE により、新規ファイルの作成、既存ファイルへの上書き、既存ファイルを開く、またはスクラッチファイルを使用するかどうかを示します。
STATUS または DISPOSE は、CLOSE 後のファイルの存在状態を指定します。
これらの指定子はファイルおよびレコード特性を識別します。
ORGANIZATION は、ファイル編成 (シーケンシャル・ファイルまたは相対ファイル) を示します。
RECORDTYPE は、使用するレコード型を示します。
FORM は、レコードが書式付きか書式なしかを示します。
CARRIAGECONTROL は、端末制御タイプを示します。
RECL または RECORDSIZE は、レコードサイズを指定します。
USEROPEN は、特別なコンテキストを確立するためのファイルを開くルーチンを指定します。これによって、後続のインテル® Fortran I/O 文の効果を変更することができます。
これらの指定子はファイルのアクセス、処理、および位置を識別します。
ACCESS はアクセスモード (直接、シーケンシャル、またはストリーム) を示します。
SHARED は、ファイルロックを共有アクセスに設定します。他のユーザーが同じファイルにアクセスできることを示します。
NOSHARED は、ファイルロックを排他アクセスに設定します。ファイルロックのメカニズムを使用する他のユーザーが同じファイルにアクセスできないことを示します。
SHARE は、共有または排他アクセスを指定します。例えば、SHARE='DENYNONE' または SHARE='DENYRW' です。
POSITION により、ファイルの位置をファイルの先頭、EOF レコードの前、または現在の位置 (変更なし) のいずれに配置するかを示します。
ACTION または READONLY により、文 (文) をレコードの読み出しだけに使用するか、レコードの書き込みだけに使用するか、またはレコードの読み出しと書き込みの両方に使用するかを示します。
MAXREC により、直接アクセスのための最大レコード数を指定します。
ASSOCIATEVARIABLE により、直接アクセスのための次のレコード番号を含む変数を指定します。
ASYNCHRONOUS は、入出力を非同期に行うかどうかを指定します。
これらの指定子はレコード転送特性を指定します。
BLANK により、数値フィールドで空白を無視するかどうかを示します。
DELIM により、リスト指定出力またはネームリスト出力の中の文字定数に対する区切り文字を指定します。
PAD は、書式付きレコードを読み出す際に、項目リストと書式仕様で指定したデータよりも、レコードに含まれるデータ量が少ない場合にパディング文字を挿入するかどうかを指定します。
BUFFERED は、バッファー I/O か、またはバッファーなし I/O のどちらを使用するかを示します。
BLOCKSIZE は、物理 I/O バッファーまたは転送サイズを指定します。
BUFFERCOUNT は、物理 I/O バッファーの数を指定します。
CONVERT は、書式なし数値データの形式を指定します。
これらの指定子はエラー処理に使用されます。
ERR 指定子では、エラー発生時に分岐するラベルを指定します。
IOSTAT により、エラーが発生した場合、エラー (IOSTAT) 番号を受け取るための整数変数を指定します。
DISPOSE は、ファイルが閉じられたときに行う処理を識別します。
OPEN 文の FILE 指定子および DEFAULTFILE 指定子を使って、論理ユニットで開かれる特定のファイルの完全な定義を指定します (OPEN 文についての詳細は、「Language Reference」(英語) マニュアルを参照)。
次に例を示します。
OPEN (UNIT=4, FILE='/usr/users/smith/test.dat', STATUS='OLD')
/usr/users/smith ディレクトリーの test.dat ファイルが論理ユニット 4 で開かれます。ディレクトリーとファイル名が指定されているため、デフォルトは適用されません。FILE 指定子の値は文字定数、変数、または式で表記します。
次の例では、ユーザーによりファイル名が指定され、DEFAULTFILE 指定子によりフルパス名文字列に対するデフォルト値が指定されています。開かれるファイルは /usr/users/smith にあり、ユーザーにより入力されたファイル名は変数 DOC に連結されます。
CHARACTER(LEN=9) DOC
WRITE (6,*) 'Type file name '
READ (5,*) DOC
OPEN (UNIT=2, FILE=DOC, DEFAULTFILE='/usr/users/smith',STATUS='OLD')
スラッシュ (Windows* ではバックスラッシュ) がデフォルトのファイル文字列の末尾に追加されます。