ファイルを開くには、事前結合されたファイルを使用 (端末出力のためなど) するか、または OPEN 文で明示的に開きます。暗黙的にファイルを開くこともできますが、その場合は、OPEN 文を使用してファイル結合特性やその他の情報を指定することができなくなります。
OPEN 文により、ユニット番号と外部ファイルが結合されるので、OPEN 文の指定子を使用してファイル属性とランタイム・オプションを明示的に指定することができます。事前結合されたファイルではない限り、一度ファイルを開いたら、再度開く前にファイルを閉じる必要があります。
以前、開いたユニット番号を (一度閉じないで) 開くと、次のいずれかが発生します。
最初に指定したファイルと異なるファイルを指定すると、インテル® Fortran ランタイム・システムは最初のファイルを閉じてから、新しいファイルを開きます。これにより、2 回目に開いたファイルに対する現在のレコード位置がリセットされます。
最初に開いたファイルで指定したファイルと同じファイルを指定すると、そのファイルは再結合されます。このとき、内部的に等価な CLOSE と OPEN は行いません。これにより、レコード位置の前後関係を維持したまま、OPEN 文のランタイム指定子を変更できます。
INQUIRE 文 を使うと、プログラムによりファイルが開かれているかどうかを知ることができます。
特に、OPEN 文を使用して、新しいファイルを作成する場合は、デフォルトを確認するか (『Intel® Fortran Language Reference』(英語) マニュアルの OPEN 文の説明を参照してください)、または適切な OPEN 文指定子でファイル属性を明示的に指定してください。
これらの指定子はファイルとユニット情報を識別します。
UNIT は論理ユニット番号を指定します。
FILE (または NAME) および DEFAULTFILE は、ディレクトリや外部ファイルの名前を指定します。
STATUS または TYPE により、新規ファイルの作成、既存ファイルへの上書き、既存ファイルを開く、またはスクラッチ・ファイルを使用するかどうかを示します。
STATUS または DISPOSE は、CLOSE 後のファイルの存在状態を指定します。
これらの指定子はファイルおよびレコード特性を識別します。
ORGANIZATION はファイル編成 (シーケンシャル・ファイルまたは相対ファイル) を示します。
RECORDTYPE は、使用するレコード型を示します。
FORM は、レコードが書式付きか書式なしかを示します。
CARRIAGECONTROL は、端末制御タイプを示します。
RECL または RECORDSIZE は、レコードサイズを指定します。
USEROPEN は、特別なコンテキストを確立するためのファイルを開くルーチンを指定します。これによって、後続のインテル Fortran I/O 文の効果を変更することができます。
これらの指定子はファイルのアクセス、処理、および位置を識別します。
ACCESS はアクセスモード (直接アクセスまたはシーケンシャル・アクセス) を示します。
SHARED により、他のユーザが同じファイルにアクセスできることを示し、レコードロックをアクティベートにします。インテル Fortran の現在のバージョンでは無視されます。
POSITION により、ファイルの位置をファイルの先頭、EOF レコードの前、または現在の位置 (変更なし) のいずれに配置するかを示します。
ACTION または READONLY により、ステートメント (文) をレコードの読み出しだけに使用するか、レコードの書き込みだけに使用するか、またはレコードの読み出しと書き込みの両方に使用するかを示します。
MAXREC により、直接アクセスのための最大レコード数を指定します。
ASSOCIATEVARIABLE により、直接アクセスのための次のレコード番号を含む変数を指定します。
これらの指定子はレコード転送特性を指定します:
BLANK により、数値フィールドで空白を無視するかどうかを示します。
DELIM により、リスト指定出力またはネームリスト出力の中の文字定数に対する区切り文字を指定します。
PAD は、書式付きレコードを読み出す際に、項目リストと書式仕様で指定したデータよりも、レコードに含まれるデータ量が少ない場合にパディング文字を挿入するかどうかを指定します。
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')
スラッシュは、デフォルトのファイル文字列の末尾に追加されます。