A.2 f95 运行时 I/O 错误消息
f95 I/O 库在运行时检测到错误的时候发出诊断消息。下面是一个使用 f95 编译和运行的示例:
demo% cat wf.f
WRITE( 6 ) 1
END
demo% f95 -o wf wf.f
demo% wf
****** FORTRAN RUN-TIME SYSTEM ******
Error 1003: unformatted I/O on formatted unit
Location: the WRITE statement at line 1 of "wf.f"
Unit: 6
File: standard output
Abort
因为 f95 消息包含对原始源代码文件名和行号的引用,所以应用程序开发者应该考虑在 I/O 语句中使用 ERR= 子句以软件方式捕获运行时 I/O 错误。
表 A-1 列出了由 f95 发出的运行时 I/O 消息。
表 A-1 f95 运行时 I/O 消息
|
|
1000 |
格式错误 |
1001 |
非法单元编号 |
1002 |
未格式化单元上的格式化 I/O |
1003 |
格式化单元上的未格式化 I/O |
1004 |
顺序访问单元上的直接存取 I/O |
1005 |
直接访问单元上的顺序存取 I/O |
1006 |
设备不支持 BACKSPACE |
1007 |
偏离记录开始 |
1008 |
无法对文件执行 stat |
1009 |
重复计数后没有 * |
1010 |
记录过长 |
1011 |
截断失败 |
1012 |
无法理解的列表输入 |
1013 |
可用空间不足 |
1014 |
单元未连接 |
1015 |
读取意外的字符 |
1016 |
非法逻辑输入字段 |
1017 |
“新”文件存在 |
1018 |
无法找到“旧”文件 |
1019 |
未知系统错误 |
1020 |
需要查找能力 |
1021 |
非法参数 |
1022 |
负重复计数 |
1023 |
通道或设备非法操作 |
1024 |
可重入 I/O |
1025 |
不兼容的说明符处于打开状态 |
1026 |
名称列表非法输入 |
1027 |
FILEOPT 参数中有错误 |
1028 |
不允许写入 |
1029 |
不允许读取 |
1030 |
输入时整数溢出 |
1031 |
输入时浮点溢出 |
1032 |
输入时浮点下溢 |
1051 |
缺省的输入单元已关闭 |
1052 |
缺省的输出单元已关闭 |
1053 |
来自未连接单元的直接访问 READ |
1054 |
来自未连接单元的直接访问 WRITE |
1055 |
无联系的内部单元 |
1056 |
对内部单元的空引用 |
1057 |
空内部文件 |
1058 |
未格式化单元上的列表式 I/O |
1059 |
未格式化单元上的名称列表 I/O |
1060 |
试图在内部文件的结束之后写入 |
1061 |
无联系的 ADVANCE 说明符 |
1062 |
ADVANCE 说明符不是 'YES' 或 'NO' |
1063 |
前进式输入中存在 EOR 说明符 |
1064 |
前进式输入中存在 SIZE 说明符 |
1065 |
记录编号为负数或零 |
1066 |
记录不在文件中 |
1067 |
被破坏的格式 |
1068 |
无联系的输入变量 |
1069 |
I/O 列表项多于数据编辑描述符 |
1070 |
在下标三元组中有零跨距 |
1071 |
在隐含 DO 循环中有零步长 |
1072 |
负的字段宽度 |
1073 |
零宽度字段 |
1074 |
输入时遇到了字符串编辑描述符 |
1075 |
输入时遇到了霍尔瑞斯编辑描述符 |
1076 |
在数字串中未发现数字 |
1077 |
在指数中未发现数字 |
1078 |
比例因子超出范围 |
1079 |
数字等于或超出基数 |
1080 |
在整数字段中有意外的字符 |
1081 |
在实数字段中有意外的字符 |
1082 |
在逻辑字段中有意外的字符 |
1083 |
在整数值中有意外的字符 |
1084 |
在实数值中有意外的字符 |
1085 |
在复数值中有意外的字符 |
1086 |
在逻辑值中有意外的字符 |
1087 |
在字符值中有意外的字符 |
1088 |
在 NAMELIST 组名前有意外的字符 |
1089 |
NAMELIST 组名与程序中的名称不匹配 |
1090 |
在 NAMELIST 项中有意外的字符 |
1091 |
在 NAMELIST 项名中有不配对的括号 |
1092 |
变量不在 NAMELIST 组中 |
1093 |
NAMELIST 对象名中的下标过多 |
1094 |
NAMELIST 对象名中的下标不够 |
1095 |
NAMELIST 对象名中有零跨距 |
1096 |
NAMELIST 对象名中有空段下标 |
1097 |
NAMELIST 对象名中的下标超出界限 |
1098 |
NAMELIST 对象名中有空子串 |
1099 |
NAMELIST 对象名中的子串超出范围 |
1100 |
NAMELIST 对象名中有意外的组件名 |
1111 |
无联系的 ACCESS 说明符 |
1112 |
无联系的 ACTION 说明符 |
1113 |
无联系的 BINARY 说明符 |
1114 |
无联系的 BLANK 说明符 |
1115 |
无联系的 DELIM 说明符 |
1116 |
无联系的 DIRECT 说明符 |
1117 |
无联系的 FILE 说明符 |
1118 |
无联系的 FMT 说明符 |
1119 |
无联系的 FORM 说明符 |
1120 |
无联系的 FORMATTED 说明符 |
1121 |
无联系的 NAME 说明符 |
1122 |
无联系的 PAD 说明符 |
1123 |
无联系的 POSITION 说明符 |
1124 |
无联系的 READ 说明符 |
1125 |
无联系的 READWRITE 说明符 |
1126 |
无联系的 SEQUENTIAL 说明符 |
1127 |
无联系的 STATUS 说明符 |
1128 |
无联系的 UNFORMATTED 说明符 |
1129 |
无联系的 WRITE 说明符 |
1130 |
零长度的文件名 |
1131 |
ACCESS 说明符不是 'SEQUENTIAL' 或 'DIRECT' |
1132 |
ACTION 说明符不是 'READ'、'WRITE' 或 'READWRITE' |
1133 |
BLANK 说明符不是 'ZERO' 或 'NULL' |
1134 |
DELIM 说明符不是 'APOSTROPHE'、'QUOTE' 或 'NONE' |
1135 |
意外的 FORM 说明符 |
1136 |
PAD 说明符不是 'YES' 或 'NO' |
1137 |
POSITION 说明符不是 'APPEND'、'ASIS' 或 'REWIND' |
1138 |
RECL 说明符为零或负数 |
1139 |
直接访问文件未指定记录长度 |
1140 |
意外的 STATUS 说明符 |
1141 |
连接的单元指定了状态且不是 'OLD' |
1142 |
STATUS 说明符不是 'KEEP' 或 'DELETE' |
1143 |
为临时文件指定了状态 'KEEP' |
1144 |
状态值不可能 |
1145 |
为临时文件指定了文件名 |
1146 |
正在试图打开正被读取或写入的单元 |
1147 |
正在试图关闭正被读取或写入的单元 |
1148 |
正在试图打开目录 |
1149 |
状态为 'OLD' 且文件为悬空符号链接 |
1150 |
状态为 'NEW' 且文件为符号链接 |
1151 |
没有可用的临时文件名 |
1152 |
缺省单元的说明符 ACCESS='STREAM' |
1153 |
对缺省单元的流访问 |
1161 |
设备不支持 REWIND |
1162 |
BACKSPACE 需要读取权限 |
1163 |
直接访问单元上的 BACKSPACE |
1164 |
二进制单元上的 BACKSPACE |
1165 |
退格时遇到了文件结束 |
1166 |
ENDFILE 需要写入权限 |
1167 |
直接访问单元上的 ENDFILE |
1168 |
对顺序或直接访问单元的流访问 |
1169 |
对未连接单元的流访问 |
1170 |
对流访问单元的直接访问 |
1171 |
POS 说明符的值不正确 |
1172 |
无联系的 ASYNCHRONOUS 说明符 |
1173 |
无联系的 DECIMAL 说明符 |
1174 |
无联系的 IOMSG 说明符 |
1175 |
无联系的 ROUND 说明符 |
1176 |
无联系的 STREAM 说明符 |
1177 |
ASYNCHRONOUS 说明符不是 'YES' 或 'NO' |
1178 |
ROUND 说明符不是 'UP'、'DOWN'、'ZERO'、'NEAREST'、'COMPATIBLE' 或 'PROCESSOR-DEFINED' |
1179 |
DECIMAL 说明符不是 'POINT' 或 'COMMA' |
1180 |
流访问单元的 OPEN 语句中不允许 RECL 说明符 |
1181 |
正在试图分配一个已分配的数组 |
1182 |
正在对一个无联系的指针解除分配 |
1183 |
正在对一个未分配的可分配数组解除分配 |
1184 |
正在通过指针对一个可分配数组解除分配 |
1185 |
正在对一个未由 ALLOCATE 语句分配的对象解除分配 |
1186 |
正在对一个对象的一部分解除分配 |
1187 |
正在解除分配的对象比分配的大 |
1191 |
未分配的数组被传递给数组内部函数 |
1192 |
非法等级 |
1193 |
源大小较小 |
1194 |
数组大小为零 |
1195 |
形状中有负元素 |
1196 |
非法种类 |
1197 |
非整合的数组 |
1213 |
未连接单元上的异步 I/O |
1214 |
同步单元上的异步 I/O |
1215 |
数据编辑描述符与 I/O 列表项类型不兼容 |
1216 |
当前 I/O 列表项与任何数据编辑描述符不匹配 |
1217 |
非法 CORR_ACCTION 值 |
1218 |
由于启用 I/O 处理程序而发生死循环 |
1220 |
所请求的字节数大于目标平台上所支持的字节数 |
1221 |
UNION 中的数据无法从不兼容的文件类型读取,也不能写入不兼容的文件类型 |
2001 |
无效的常量、结构或组件名 |
2002 |
未创建句柄 |
2003 |
字符参数太短 |
2004 |
数组参数太长或太短 |
2005 |
文件、记录或目录流结束 |
2021 |
锁定未初始化 (OpenMP) |
2022 |
使用锁定变量时死锁 (OpenMP) |
2023 |
未设置锁定 (OpenMP) |
|