実行時エラー:570 ~ 614

この節では,Visual Fortran 実行時エラー番号の 570 ~ 614 番までのエラーについて詳細に説明します。

以下の表では,第 1 列に,I/O エラーが検知された時に IOSTAT 変数に返されるエラー番号を一覧表示しています。

第 2 列の第 1 行は,(forrtl: に続いて表示される) 重大度レベル,メッセージ番号,およびメッセージ・テキストを示しています。第 2 列の第 2 行は,状態条件シンボル (たとえば,FOR$IOS_INCRECTYP) とメッセージの説明を示しています。

重大度レベルについては,「Visual Fortran 実行時エラー」を参照してください。

番号 重大度レベル,番号,メッセージ・テキスト。条件シンボルと説明
570 severe (570): Illegal STATUS value

FOR$IOS_F6304。不正な値が STATUS オプションで使用されました。

STATUS には以下の値が使用できます。

  • CLOSE 文では 'KEEP' または 'DELETE'

  • OPEN 文では 'OLD''NEW''SCRATCH',または 'UNKNOWN'

571 severe (571): Illegal MODE value

FOR$IOS_F6305。不正な値が MODE オプションで使用されました。

MODE には 'READ''WRITE',または 'READWRITE' が使用できます。

572 severe (572): Illegal ACCESS value

FOR$IOS_F6306。不正な値が ACCESS オプションで使用されました。

ACCESS には 'SEQUENTIAL' および 'DIRECT' が使用できます。

573 severe (573): Illegal BLANK value

FOR$IOS_F6307。不正な値が BLANK オプションで使用されました。

BLANK には 'NULL' および 'ZERO' が使用できます。

574 severe (574): Illegal FORM value

FOR$IOS_F6308。不正な値が FORM オプションで使用されました。

FORM には 'FORMATTED''UNFORMATTED',および 'BINARY' が使用できます。

575 severe (575): Illegal SHARE value

FOR$IOS_F6309。不正な値が SHARE オプションで使用されました。

SHARE には 'COMPAT''DENYRW''DENYWR''DENYRD',および 'DENYNONE' が使用できます。

577 severe (577): Illegal record number

FOR$IOS_F6311。不正な数字が直接探査ファイルに対して記録番号として指定されました。

直接探査ファイルに対する正しい第 1 記録番号は 1 です。

578 severe (578): No unit number associated with *

FOR$IOS_F6312INQUIRE 文で,NUMBER オプションが * (コンソール) に関連付けられたファイルに対して指定されました。

580 severe (580): Illegal unit number

FOR$IOS_F6314。不正な装置番号が指定されました。

正しい装置番号は,0 以上 2**31-1 以下の範囲内になければなりません。

581 severe (581): Illegal RECL value

FOR$IOS_F6315。負またはゼロの記録長が直接探査ファイルに指定されました。

直接探査ファイルに対する最小の正しい記録長は 1 です。

582 severe (582): Array already allocated

FOR$IOS_F6316。プログラムが,既に割り付けられている配列に対して ALLOCATE を実行しようとしました。

583 severe (583): Array size zero or negative

FOR$IOS_F6317ALLOCATE 文で配列に対して指定する大きさは,ゼロより大きくなければなりません。

584 severe (584): Non-HUGE array exceeds 64K

FOR$IOS_F6318

585 severe (585): Array not allocated

FOR$IOS_F6319。プログラムが,割り付けられていない配列に対して DEALLOCATE を実行しようとしました。

586 severe (586): BACKSPACE illegal on terminal device

FOR$IOS_F6400BACKSPACE 文が,ターミナルやプリンタのようなターミナル装置に接続された装置に指定されました。

587 severe (587): EOF illegal on terminal device

FOR$IOS_F6401EOF 組込み関数が,ターミナルやプリンタのようなターミナル装置に接続された装置に指定されました。

588 severe (588): ENDFILE illegal on terminal device

FOR$IOS_F6402ENDFILE 文が,ターミナルやプリンタのようなターミナル装置に接続された装置に指定されました。

589 severe (589): REWIND illegal on terminal device

FOR$IOS_F6403REWIND 文が,ターミナルやプリンタのようなターミナル装置に接続された装置に指定されました。

590 severe (590): DELETE illegal for read-only file

FOR$IOS_F6404CLOSE 文が,読取り専用のファイルに対して STATUS='DELETE' を指定しました。

591 severe (591): External I/O illegal beyond end of file

FOR$IOS_F6405ENDFILE 文の実行後,または,読み取り操作中にファイル終了記録に遭遇した後,プログラムがファイルを探査しようとしました。

BACKSPACEREWIND,または OPEN 文は,データを転送する I/O 文の実行の前にファイルの位置を変更するために使用されなければなりません。

592 severe (592): Truncation error: file closed

FOR$IOS_F6406

593 severe (593): Terminal buffer overflow

FOR$IOS_F6407。131 文字より多い文字が,ターミナル (キーボード) に接続された装置の記録に入力されました。オペレーティング・システムが,1 記録としてターミナルに入力することができる文字数の付加的な制限を設けているかもしれないことに注意してください。

594 severe (594): Comma delimiter disabled after left repositioning

FOR$IOS_F6408。記録に関連付けられたバッファの大きさを超える記録長がある場合 (たとえば,記録が OPEN 文の BLOCKSIZE で設定されるバッファを持つファイルである場合),記録内での左位置付けを行うべきではありませんし,欄区切り子としてコンマを使うべきではありません。これは,左位置付けが前のバッファの記録位置に残る場合,コンマが入力欄区切り子として利用不可になるためです。

たとえば,カンマで区切られるデータ欄を持つ 1 つの連続した記録のファイル LONG.DAT を持っていると仮定します。ファイルに関連するバッファを 512 バイトに設定し,データの 1 バッファ・サイズ以上を読み取り,前のバッファのデータに左位置付けを行い,次のデータを読み込みます。以下のようになります。

	INTEGER value(300)
	OPEN (1, FILE = 'LONG.DAT', BLOCKSIZE = 512)
	READ (1, 100) (value(i), i = 1, 300)
100	FORMAT (290I2,TL50,10I2)

この場合,エラー 594 が発生します。

599 severe (599): File already connected to a different unit

FOR$IOS_F6413。プログラムが,新しい装置に既に接続されているファイルを接続しようとしました。

ファイルは,一度に 1 装置にのみ接続することができます。

600 severe (600): Access not allowed

FOR$IOS_F6414。このエラーは,以下の 1 つが原因で発生します。

  • OPEN 文で指定したファイル名がディレクトリでした。

  • OPEN 文が読取り専用のファイルを書き込みのために開こうとしました。

  • 他のプロセスが SHARE='DENYRW' でファイルを開いていました。

601 severe (601): File already exists

FOR$IOS_F6415OPEN 文が既に存在しているファイルに対して STATUS='NEW' を指定しました。

602 severe (602): File not found

FOR$IOS_F6416OPEN 文が存在していないファイルまたはディレクトリ・パスに対して STATUS='OLD' を指定しました。

603 severe (603): Too many open files

FOR$IOS_F6417。 プログラムが,オペレーティング・システムが許容する開くことができるファイル数を超えたファイルを開こうとしました。

604 severe (604): Too many units connected

FOR$IOS_F6418。プログラムが,一度に接続できる装置数を超えました。装置は,OPEN 文で接続されます。

605 severe (605): Illegal structure for unformatted file

FOR$IOS_F6419。ファイルが FORM='UNFORMATTED' および ACCESS='SEQUENTIAL' で開かれましたが,内部物理構造が不正または矛盾していました。考えられる原因は,ファイルが他のモードで作成されたか,非 Fortran プログラムがファイルを作成したかです。

606 severe (606): Unknown unit number

FOR$IOS_F6420BACKSPACE または ENDFILE 文のような文が,まだ開かれていないファイルに指定されました。(READ および WRITE 文は,この問題を引き起こしません。これは,ファイルが開かれていなければ,これらはファイルを問い合わせるからです。)

607 severe (607): File read-only or locked against writing

FOR$IOS_F6421。プログラムが,読取り専用モードで開かれたファイルまたは書き込みに対してロックされているファイルにデータを転送しようとしました。

エラー・メッセージは,失敗が実際には WRITE から来る時も CLOSE でのエラーとして示されます。これは,ファイルが閉じられた時にプログラムがバッファリングしていたデータを書き出そうとするまで,このエラーが発見されないためです。

608 severe (608): No space left on device

FOR$IOS_F6422。プログラムが,記憶域不足している 装置 (たとえば,ハードディスク) 上にあるファイルにデータを転送しようとしました。

609 severe (609): Too many threads

FOR$IOS_F6423。同時にアクティブになるスレッドが多すぎました。1 度にアクティブにできるスレッドは,最大で 32 です。アプリケーション内の不要なプロセスまたは子ウィンドウを閉じてください。

610 severe (610): Invalid argument

FOR$IOS_F6424

611 severe (611): BACKSPACE illegal for SEQUENTIAL write-only files

FOR$IOS_F6425BACKSPACE 文は,MODE='WRITE' (書き込み専用) で開かれたファイルには使用できません。これは,BACKSPACE 文 が位置を決定するためにファイル中の記録を読む必要があるためです。

ファイルに読み取り特権を与えるか,BACKSPACE 文を使わないようにするかして,この問題を解決します。REWIND 文は,書き込み専用で開かれたファイルに対して有効であることに注意してください。

612 severe (612): File not open for reading or file locked

FOR$IOS_F6500。プログラムが,読み取りのために開かれていないファイルまたはロックされているファイルから読み取ろうとしました。

613 severe (613): End of file encountered

FOR$IOS_F6501。プログラムが,ファイルに含まれているデータ以上のデータを読み取ろうとしました。

614 severe (614): Positive integer expected in repeat field

FOR$IOS_F6502i*c 書式が並び入力で使用される時,i は正の整数でなければなりません。たとえば,以下の文を考えます。

READ(*,*) a, b

入力 2*56.7 は受け付けられますが,入力 2.1*56.7 はエラー 614 を返します。