第一章 概论 1
1.1 用语的说明 1
1.2 FORTRAN F的概要 2
1.2.1 编译程序 2
1.2.2 FORTRAN库2 5
1.3 服务程序 6
1.3.1 静态连接程序 7
1.3.2 源程序库维护程序 7
1.3.3 编译单元库维护程序 8
1.3.4 装入模库维护程序 8
1.3.5 调试后援程序 8
1.3.6 程序之间的相互关系 8
第二章 目标程序 10
2.1 编译单元名 10
2.2 编译单元的结构 13
2.3 公用块 15
2.3.1 不分段公用块 15
2.3.2 分段公用块 16
2.4 数组的存储分配 17
2.5 数据的内部描述 17
2.5.1 整型数据 17
2.5.2 实型数据 18
2.5.3 双精度型数据 19
2.5.4 4倍精度型数据 20
2.5.5 复数型数据 22
2.5.6 双精度复数型数据 22
2.5.7 4倍精度复数型数据 23
2.5.8 逻辑型数据 23
2.5.9 字符型数据 24
2.5.10 Hollerith型数据 24
2.5.11 16进制型数据 25
第三章 关于程序设计的一些考虑 26
3.1 有关程序设计方面的注释 26
3.1.1 字符和行 26
3.1.2 Hollerith常数 26
3.1.3 数组 27
3.1.4 子串 28
3.1.5 表达式 29
3.1.6 COMMON语句 32
3.1.7 EQUIVALENCE语句 34
3.1.8 EXTERNAL语句 34
3.1.9 DATA语句 34
3.1.10 赋值语句 35
3.1.11 GOSO语句 36
3.1.12 IF语句 36
3.1.13 DO语句和隐含循环表 37
3.1.14 STOP语句 39
3.1.15 输入/输出语句 39
3.1.16 主程序 40
3.1.17 语句函数 40
3.1.18 副程序 41
3.1.19 内部函数 45
3.1.20 内部子程序 54
3.1.21 数据块副程序 57
3.2 优化功能 58
3.2.1 优化级 58
3.2.2 0级优化项目 60
3.2.3 1级优化项目 64
3.2.4 2级优化项目 70
3.2.5 优化功能的使用注解 78
3.3 精度自动提高功能 89
3.3.1 精度自动提高处理 90
3.3.2 AUTODBL选择项 95
3.3.3 精度自动提高功能的使用注解 99
3.4 与其它FORTRAN兼容的功能 102
3.5 对FORTRANF编译程序的限制 106
第四章 程序调试 109
4.1 调试行 109
4.2 在可执行程序中的错误检测 110
4.2.1 SUBCHECK语句 111
4.2.2 SUBSTRCHK语句 112
4.2.3 在编译中带一个错误的可执行语句 114
4.2.4 赋值GO TO语句 115
4.3 调试支援程序 115
4.3.1 调试支援程序的功能 116
4.3.2 调试支援程序的使用 117
4.3.3 Debug Command调试命令 119
(1)调试命令语法 119
(2)调试命令的一般规则 122
(3)控制命令 122
(4)动作命令 123
(i)IF条件 123
(ii)EVERY条件 124
(a)TRACE跟踪 125
(b)SUSPEND挂起 128
(c)RESUME继续 129
(d)DUMP转储 131
(e)CHANGE变更 135
(f)GOTO转向 138
第五章 输入/输出方法 140
5.1 输入/输出语句与外部文件之间的关系 140
5.1.1 输入/输出语句与文件结构 140
5.1.2 输入/输出语句与记录格式 141
5.1.3 输入/输出语句与数据格式 145
5.1.4 记录与数据格式之间的关系 147
5.2 FORTRAN记录和文件之间的关系 149
5.2.1 格式记录 149
5.2.2 无格式记录 152
5.3 外部设备标识符与文件之间的关系 155
5.3.1 外部设备标识符和内部文件名之间的对应关系 156
5.3.2 内部文件名和外部文件之间的关系 158
5.4 顺序文件输入/输出 177
5.4.1 SYSIN 177
5.4.2 SYSOUT 179
5.4.2.1 使用标准SYSOUT文件的打印 181
5.4.2.2 使用?人SYSOUT文件的打印 182
5.4.3 SYSPUNCH 183
5.4.3.1 使用标准SYSOUT文件穿孔卡片 183
5.4.3.2 借助私人SYSOUT文件的卡片穿孔 183
5.4.4 顺序磁盘文件 184
5.4.5 磁带文件 185
5.4.5.1 磁带文件的标准输入/输出 187
5.4.5.2 磁带文件的非标准输入/输出 189
5.4.6 直接从卡片阅读机输入 191
5.4.7 直接向行式打印机输出 192
5.4.8 直接向卡片穿孔输出 193
5.4.9 软盘 194
5.4.10 纸带文件 194
5.4.10.1 纸带文件的输入 196
5.4.10.2 纸带文件的输出 203
5.4.11 向操作员控制台的输入/输出 204
5.4.11.1 REA D语句的执行 205
5.4.11.2 WRI TE语句的执行 206
5.4.11.3 从操作员控制台输入的文件结束记录 206
5.5 直接文件的输入/输出 207
5.6 内部文件的输入/输出 209
5.7 内部文件的子例行程序 212
第六章 编译时的输出信息 215
6.1 输出表 215
6.1.1 标题 217
6.1.2 源程序 218
6.1.3 相互对照表 221
6.1.4 格式表 228
6.1.5 代码映象表 232
6.1.6 目标程序 234
6.1.7 诊断信息 239
6.1.7.1 当指定MRGMSG选择项时的诊断信息 240
6.1.7.2 当指定SFPMSG选择项时的诊断信息 242
6.1.8 程序单位概略表 245
6.1.9 所有被编译程序的概略信息 248
6.2 系统信息 250
6.3 结束代码 251
第七章 源程序库的作成和更新 254
7.1 源程序库文件 254
7.2 源程序库维护程序功能概要 255
7.2.1 关于处理源程序库的功能 255
7.2.2 关于处理成员的功能 255
7.2.3 关于行的处理功能 257
7.2.4 输入输出文件 257
7.3 源程序的登录 259
7.3.1 ADD命令的形式 259
7.3.2 源程序卡片的形式 262
7.3.3 建立源程序库的例子 264
7.4 修改源程序文件 266
7.4.1 UPDATE命令的形式 266
7.4.2 修改卡的形式 268
7.4.3 源程序库的修改例 269
第八章 程序的编译到执行 270
8.1 表示法 274
8.2 作业控制的概要 277
8.2.1 概述 277
8.2.2 作业控制语句 279
8.2.3 输入流的构成 293
8.3 编译 294
8.3.1 编译时的输入输出文件 294
8.3.2 编译程序的启动 297
8.4 连接 324
8.4.1 连接时的输入/输出文件 324
8.4.2 连接程序的启动 326
8.4.3 连接命令 335
8.5 可执行程序的执行 338
8.5.1 可执行程序的启动 338
8.5.2 外部设备标识符和文件的对应关系 339
8.5.3 文件属性的改变 341
8.5.4 可执行程序的选择 342
8.5.5 PAUSE语句 344
第九章 执行过程中的错误处理 348
9.1 错误处理流程 348
9.2 错误处理控制信息 352
9.3 报错信息输出结果 373
9.4 追溯信息 374
9.5 非法数据的指示 376
9.6 可执行程序结束代码 378
9.7 错误控制内部子程序 382
9.7.1 ERROPT 382
9.7.2 ERRALT 383
9.7.3 ERRANY 383
9.7.4 ERRCNT 384
9.7.5 ERRSAV和ERRSTR 385
9.7.6 MESPUT 386
第十章 IFCF的使用 387
10.1 指令文件名字的一般方法 387
10.1.1 文件名 387
10.1.2 子文件名 389
10.2 源程序的建立和更新 389
10.2.1 EDIT命令 390
10.2.2 建立源程序 392
10.2.3 更新源程序 394
10.3 编译和执行用的命令 396
10.3.1 LINK命令 398
10.3.2 CALL命令 401
10.3.3 TEST命令 403
10.3.3.1 用会话式调试支援程序进行调试 404
10.3.4 RUN命令 408
10.4 程序的编译 411
10.4.1 FORTF命令 411
10.4.2 FORTF命令的诊断信息 422
10.4.3 向终端输出的编译信息 422
10.5 程序的执行 425
10.5.1 外部文件的输入/输出 426
10.5.2 终端输入/输出 429
10.5.2.1 从终端输入 430
10.5.2.2 向终端输出 432
10.5.2.3 在象控制台的终端上输入/输出 433
10.5.3 PAUSE语句 436
附录B FR2 FDGEN宏(MACRO)指令 438
B.1 宏形式 440
B.2 操作法 448
B.3 FR2 FDGEN的错误信息 450
附录C 程序例 454
附录D 运行时例外代码一览表 459
附录E 在FORTRANF,FORTRANE和FORTRAN中产生的编译单元的差异 469
附录F 系统标准纸带代码变换表 472