严重错误

即使使用值 YES指定了 ERR_RECOVERY 运行时选项,也无法从中恢复严重错误。 严重错误会导致 IOSTAT= 说明符设置为下面定义的值之一,并且如果输入/输出语句中存在这些说明符,那么会将 ERR= 标签分支到这些说明符。 如果迂到严重错误情况时输入/输出语句上不存在 IOSTAT=ERR= 说明符,那么程序将停止。

表 1. 严重错误条件的 IOSTAT 值
IOSTAT 值 错误描述
1 未在直接访问 READ 上指定 END=,并且该记录不存在。
2 内部文件的 WRITE 遇到文件结尾。
6 找不到文件,并且在 OPEN 语句中指定了 STATUS='OLD'。
10 直接文件上发生读取错误。
11 直接文件上发生写入错误。
12 个月 顺序或流文件上发生读取错误。
13 顺序文件上发生写入错误。
14 日 打开文件时出错。
15 日 在文件中遇到永久性 I/O 错误。
37 动态内存分配失败 - 内存不足。
38 REWIND 错误。
39 ENTFILE 错误。
400 BACKSPACE 错误。
107 文件存在并且在 OPEN 语句中指定了 STATUS='NEW'。
119 在连接到磁带设备的单元上尝试了 BACKSPACE 语句。
122 在直接访问 READ 期间遇到不完整的记录。
130 在 OPEN 语句上指定了 ACTION='READWRITE' 以连接管道。
135 用户程序正在调用不受支持的 IBM® Open XL Fortran 运行时环境版本。
139 设备上不允许进行 I/O 操作,因为未使用 ACTION= 说明符的适当值打开文件。
142 CLOSE 错误。
144 错误。
152 对于只能顺序访问的文件,在 OPEN 语句上指定了 ACCESS='DIRECT'。
153 在 OPEN 语句中指定 POSITION='REWIND' 或 POSITION='APPEND',并且文件是管道。
156 OPEN 语句上的 RECL= 说明符的值无效。
159 无法清空外部文件输入,因为关联的设备不可搜寻。
165 可以读取或写入的下一条记录的记录号超出了使用 INQUIRE 语句的 NEXTREC= 说明符指定的变量范围。
169 无法完成异步 I/O 语句,因为连接单元仅用于同步 I/O。
172 连接失败,因为该文件不允许异步 I/O。
173 天 异步 READ 语句在同一单元的异步 WRITE 语句暂挂时执行,或者异步 WRITE 语句在同一单元的异步 READ 语句处于暂挂状态时执行。
174 同步 I/O 语句无法完成,因为之前的异步 I/O 语句尚未完成。
175 无法完成 WAIT 语句,因为 ID= 说明符的值无效。
176 无法完成 WAIT 语句,因为相应的异步 I/O 语句位于不同的作用域单元中。
178 不允许记录的异步直接 WRITE 语句,因为同一记录之前的异步直接 WRITE 语句尚未完成。
179 无法在该单元上执行 I/O 操作,因为该单元上仍有未完成的异步 I/O 操作。
181 一个文件不能连接到一个单元,因为只有同步 I/O 才允许多个连接。
182 UWIDTH= 选项的值无效。 必须设置为 32 或 64。
183 单元的最大记录长度超出 INQUIRE 语句中使用 RECL= 说明符指定的标量变量的范围。
184 传输的数据字节数超出了在 I/O 语句中使用 SIZE= 或 NUM= 说明符指定的标量变量的范围。
185 一个文件不能连接到具有不同 UWIDTH 值的两个单元。
186 单元号必须在 0 到 2,147,483,647 范围内
192 文件位置的值超出了在 INQUIRE 语句中使用 POS= 说明符指定的标量变量的范围。
193 文件大小的值超出 INQUIRE 语句中使用 SIZE= 说明符指定的标量变量的范围。
200 FLUSH 错误。
201 FLUSH 语句中指定的单元将连接到不可种子文件。