XL Fortran for AIX V8.1.1

ランゲージ・リファレンス

OPEN

目的

OPEN ステートメントは既存の外部ファイルを装置に接続するため、事前結合された外部ファイルを作成し、それを装置に接続するため、あるいは外部ファイルと装置の間の接続に関する特定の指定子を変更するために使用できます。

構文



>>-OPEN--(--open_list--)---------------------------------------><
 
 

open_list
装置指定子 (UNIT=u) を必ず 1 つ含んでいなければならないリストです。このリストには、許可されている他の指定子をそれぞれ 1 つずつ入れることができます。有効な指定子は次のとおりです。

[UNIT=] u
装置指定子です。u は外部装置識別子で、その値はアスタリスクであってはなりません。外部装置識別子はスカラー整数式 (0 〜 2,147,483,647 の値を持つ) で表される外部ファイルを示します。オプションの文字である UNIT= を省略する場合は、uopen_list の最初の項目でなければなりません。

+----------------------------------IBM 拡張----------------------------------+

ASYNCH= char_expr
明示的に接続された装置が非同期 I/O 用に使用されるかどうかを示す、非同期 I/O 指定子です。

char_expr はスカラー文字式で、その値は YES または NO のいずれかになります。 YES は、この接続に非同期データ転送ステートメントを許可することを指定します。 NO は、この接続に非同期データ転送ステートメントを許可しないことを指定します。指定される値は、そのファイルに対して許可される一連の転送方法になります。この指定子が省略される場合、デフォルト値は NO です。

事前接続された装置は、ASYNCH= に値 NO を指定して接続されています。

暗黙接続される装置の ASYNCH= 値は、装置上で実行される最初のデータ転送ステートメントによって決まります。最初のステートメントが非同期データ転送を実行し、暗黙接続されるファイルが非同期データ転送を許可する場合、ASYNCH= 値は YES になります。そうでない場合、ASYNCH= 値は NO になります。

+--------------------------------IBM 拡張の終り-------------------------------+

IOSTAT= ios
I/O 操作の状況を示す I/O 状況指定子です。 ios は、INTEGER(4) タイプのスカラー変数またはデフォルトの整数です。この指定子を含む I/O ステートメントの実行が完了すると、ios は以下の値に定義されます。

ERR= stmt_label
エラーが発生した場合に制御が移される、同じ有効範囲単位内の実行可能ステートメントのステートメント・ラベルを指定するエラー指定子です。 ERR= 指定子は、エラー・メッセージを抑制します。

FILE= char_expr

指定した装置に接続するファイルの名前を指定するファイル指定子です。

+----------------------------------IBM 拡張----------------------------------+

char_expr はスカラー文字式で、この式の後続ブランクを除去した後の値は、有効な AIX オペレーティング・システム・ファイル名です。 ファイル指定子が必要であるときにそれを省略した場合は、装置は (デフォルトにより) fort.u に暗黙に接続されます。ここで、u は先行ゼロを除去して指定した装置です。 暗黙接続されるファイルに代替ファイル名を使用できるようにするには、UNIT_VARS 実行時オプションを使用してください。

注:
AIX オペレーティング・システム・ファイル名が有効であるためには、各ファイル名の長さが 255 文字以下で、絶対パス名の合計長が 1023 文字以下でなければなりません (ただし、絶対パス名は指定しなくてもかまいません)。

+--------------------------------IBM 拡張の終り-------------------------------+

STATUS= char_expr
ファイルのオープン後の状況を指定します。 char_expr はスカラー文字式で、この式の後続ブランクを除去した後の値は、以下のうちの 1 つです。

デフォルトは UNKNOWN です。

ACCESS= char_expr
ファイルの接続のためのアクセス方式を指定します。 char_expr はスカラー文字式で、式の値は、後続ブランクを除去すると、SEQUENTIALDIRECT、または STREAM のいずれかになります。デフォルトは SEQUENTIAL です。 ACCESS=DIRECT の場合は、RECL= を指定しなければなりません。 ACCESS=STREAM の場合は、RECL= を指定しなければなりません。

FORM= char_expr
ファイルを定様式 I/O 用に接続するのか、あるいは不定様式 I/O 用に接続するのかを指定します。 char_expr はスカラー文字式で、式の値は、後続ブランクを除去すると FORMATTED または UNFORMATTED のいずれかになります。ファイルを順次アクセス用に接続する場合、デフォルトは FORMATTED です。ファイルを直接アクセス用またはストリーム・アクセス用に接続する場合、デフォルトは UNFORMATTED です。

RECL= integer_expr

直接アクセス用に接続するファイル内の各レコードの長さ、あるいは順次アクセス用に接続するファイル内のレコードの最大長を指定します。 integer_expr はスカラー整数式で、式の値は正でなければなりません。ファイルを直接アクセス用に接続する場合、この指定子を指定しなければなりません。定様式 I/O の場合、長さは文字データを含むすべてのレコードの文字数です。不定様式 I/O の場合、長さはデータの内部形式に必要なバイト数です。不定様式の順次レコードの長さには、そのデータを取り囲む 4 バイト・フィールドは計算に入れません。

+----------------------------------IBM 拡張----------------------------------+

ファイルを 32 ビットの順次アクセス用に接続するときに RECL= を省略した場合、その長さは 2**31 からレコード・ターミネーターの長さを引いたものです。 32 ビットの定様式順次ファイルの場合、デフォルトのレコードの長さは 2**31-1 です。 32 ビットでアクセス可能な不定様式ファイルの場合、デフォルトのレコードの長さは 2**31-8 です。 32 ビットで無作為にアクセスできないファイルの場合、デフォルトの長さは 32,768 です。

ファイルを 64 ビットの順次アクセス用に接続するときに RECL= を省略した場合、その長さは 2**64 からレコード・ターミネーターの長さを引いたものです。 UWIDTH 実行時オプションが 64 に設定されるとき、64 ビットの定様式順次ファイルの場合、デフォルトのレコードの長さは、2**64-1 です。不定様式のファイルの場合、デフォルトのレコードの長さは 2**64-16 です。

+--------------------------------IBM 拡張の終り-------------------------------+

BLANK= char_expr
形式仕様を使用する場合の、ブランクのデフォルトの解釈を制御します。 char_expr はスカラー文字式で、式の値は、後続ブランクを除去すると NULL または ZERO のいずれかになります。 BLANK= を指定する場合、FORM='FORMATTED' を指定しなければなりません。 BLANK= を指定しないで、FORM='FORMATTED' を指定した場合、デフォルトは NULL です。

POSITION= char_expr
順次アクセス用またはストリーム・アクセス用に接続されたファイルのファイル位置を指定します。以前に存在していなかったファイルは、その初期点に位置付けられます。 char_expr はスカラー文字式で、式の値は、後続ブランクを除去すると、ASISREWINDAPPEND のいずれかになります。 REWIND はファイルを初期点に位置付けます。APPEND はファイルをファイル終了レコードの前に位置付けます。ファイル終了レコードが存在しない場合は、終端点に位置付けます。 ASIS は位置を変更しません。以下の場合を除き、デフォルト値は ASIS です。

このような場合、WRITE ステートメントが実行されると、POSITION= 指定子のデフォルト値は APPEND になります。

ACTION= char_expr
認められる I/O 操作を指定します。 char_expr はスカラー文字式で、その値は、READWRITE、または READWRITE となります。 READ を指定した場合、WRITE および ENDFILE ステートメントはこの接続を参照できません。 WRITE を指定した場合、READ ステートメントはこの接続を参照できません。 READWRITE を指定した場合、どの I/O ステートメントもこの接続を参照できます。 ACTION= 指定子を省略した場合、デフォルト値は実際のファイル許可により決まります。

DELIM= char_expr
区切り文字がある場合に、リスト指示または名前リスト形式設定により書き込まれた文字定数を区切るために、どのような区切り文字を使用するかを指定します。 char_expr は、スカラー文字式で、その値は、APOSTROPHEQUOTE、または NONE とならなければなりません。 APOSTROPHE を指定した場合、アポストロフィによって文字定数が区切られます。文字定数の中のすべての アポストロフィは 2 個指定されます。 QUOTE を指定した場合、二重引用符によって文字定数が区切られます。文字定数の中の二重引用符はすべて 2 個指定されます。 NONE を指定した場合、文字定数は区切られません。また、文字定数の中のどの文字も 2 個指定される必要はありません。デフォルト値は NONE です。 DELIM= 指定子は定様式 I/O 用に接続されるファイルにのみ有効です。ただし、定様式レコードの入力時には無視されます。

PAD= char_expr
入力レコードをブランクで埋め込むかどうかを指定します。char_expr はスカラー文字式で、式の値は、YES または NO のいずれかになります。 YES を指定した場合、入力リストが指定され、かつ、定様式仕様でレコードに含まれるものよりも多くのデータが必要なときは、定様式入力レコードはブランクで埋め込まれます。 NO を指定した場合、入力リストと定様式仕様に対してレコードに含まれるものよりも多くの文字を与えることはできません。デフォルト値は YES です。 PAD= 指定子は定様式 I/O 用に接続されるファイルにのみ有効です。ただし、定様式レコードの出力時には無視されます。

+----------------------------------IBM 拡張----------------------------------+

-qxlf77 コンパイラー・オプションに noblankpad サブオプションを指定し、ファイルが定様式直接 I/O 用に接続される場合、PAD= 指定子を省略すると、デフォルト値は NO になります。

+--------------------------------IBM 拡張の終り-------------------------------+

規則

装置が既存のファイルに接続している場合、その装置に対して OPEN ステートメントを実行することができます。 OPEN ステートメントに FILE= 指定子を指定しない場合、その装置に接続されるファイルは、その装置が現在接続されているファイルと同じものになります。

装置に接続したいファイルが、その装置が現在接続されているファイルと異なる場合は、OPEN ステートメントの実行の直前に、STATUS= 指定子を指定せずに CLOSE ステートメントをその装置に対して実行した場合と同じ結果になります。

装置に接続したいファイルが、その装置が現在接続されているファイルと同じである場合は、現在有効な値と異なる値をとることのできる指定子は、BLANK=DELIM=PAD=ERR=、および IOSTAT= だけです。 OPEN ステートメントを実行すると、BLANK=DELIM=、または PAD= 指定子の新しい値が有効になります。しかし、指定しない指定子およびファイルの位置は何の影響も受けません。事前に実行された OPENERR=IOSTAT= 指定子は、現在の OPEN ステートメントには効果がありません。 STATUS= 指定子を指定する場合、値 OLD でなければなりません。現在装置に接続されているファイルと同一のファイルを指定するには、同一のファイル名を指定するか、FILE= 指定子を省略するか、または同一のファイルにシンボリック・リンクされているファイルを指定します。

ファイルが装置に接続されている場合、そのファイルおよび異なる装置に対する OPEN ステートメントは実行されません。

+----------------------------------IBM 拡張----------------------------------+

STATUS= 指定子の値が OLDNEW、または REPLACE の場合、FILE= 指定子はオプションです。

事前接続ファイルと標準エラー・デバイス以外のファイルに装置 0 を接続することはできません。しかし、BLANK=DELIM=、および PAD= 指定子の値を変更することはできます。

+--------------------------------IBM 拡張の終り-------------------------------+

ERR=IOSTAT= 指定子が設定されているときにエラーが検出されると、ERR= 指定子によって指定されたステートメントに対して転送が行われ、正の整数値が ios に割り当てられます。

+----------------------------------IBM 拡張----------------------------------+

IOSTAT=ERR= も指定していない場合は、以下のとおりです。

+--------------------------------IBM 拡張の終り-------------------------------+

!   Open a new file with name fname
 
CHARACTER*20 FNAME
FNAME = 'INPUT.DAT'
OPEN(UNIT=8,FILE=FNAME,STATUS='NEW',FORM='FORMATTED')
 
OPEN (4,FILE="myfile")
OPEN (4,FILE="myfile", PAD="NO")  ! Changing PAD= value to NO
 
!   Connects unit 2 to a tape device for unformatted, sequential
!   write-only access:
 
OPEN (2, FILE="/dev/rmt0",ACTION="WRITE",POSITION="REWIND", &
&   FORM="UNFORMATTED",ACCESS="SEQUENTIAL",RECL=32767)

関連情報


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]