第1章 概述 1
第2章 计算机系统概述 5
2.1 计算机系统的核心 5
2.2 计算机系统的其他组件 6
2.3 软件 7
2.4 思考题 7
2.5 参考书目 8
第3章 操作系统概述 9
3.1 操作系统的历史 9
3.2 连网 10
3.3 思考题 11
3.4 参考书目 11
第4章 计算机系统的使用 12
4.1 文件 12
4.2 编辑器 12
4.3 单用户系统 12
4.4 网络系统 13
4.5 多用户系统 13
4.6 其他有用知识 13
4.7 使用计算机系统开发Fortran程序的常用方法 14
4.8 参考书目 14
第5章 解决问题 15
5.1 自然语言 16
5.2 人工语言 16
5.3 小结 17
5.4 算法 17
5.5 系统分析与设计 18
5.6 小结 20
5.7 思考题 20
5.8 参考书目 21
第6章 编程语言简介 23
6.1 早期的理论工作 23
6.2 什么是编程语言 23
6.3 编程语言的发展与工程技术 23
6.4 早期 24
6.5 乔姆斯基与编程语言的发展 25
6.6 Lisp 26
6.7 Snobol 26
6.8 第二代语言 26
6.9 程序语言发展的其他标准 28
6.10 Ada 28
6.11 Modula 29
6.12 Modula 2 29
6.13 其他语言的发展 29
6.14 OOP 30
6.15 Fortran 90 33
6.16 Fortran 1995 34
6.17 ISO技术报告TR15580和TR 15581 34
6.18 Fortran 2003 35
6.19 DTR 19767增强模块工具 35
6.20 因特网资源 36
6.21 小结 37
6.22 参考书目 37
第7章 编程概述 42
7.1 Fortran语言的优点和缺点 42
7.2 编程语言的元素 43
7.3 变量——名称、类型和值 45
7.4 说明 46
7.5 更多Fortran规则 46
7.6 Fortran字符集 47
7.7 良好的编程指导 48
7.8 编译器 48
7.9 程序开发 48
7.10 思考题 49
第8章 运算 50
8.1 舍入和截断 53
8.2 计算光从太阳传播到地球需要的时间 54
8.3 PARAMETER语句 55
8.4 数值的范围、精度和大小 55
8.5 高级主题 57
8.6 变量的状态 66
8.7 小结 66
8.8 思考题 67
8.9 参考书目 69
第9章 数组一:基本原理 70
9.1 数据表 70
9.2 Fortran中的数组 72
9.3 DIMENSION属性 72
9.4 索引 72
9.5 控制结构 73
9.6 月降雨量 73
9.7 体重 74
9.8 小结 75
9.9 思考题 76
第10章 数组二:更多示例 78
10.1 运行时改变数组大小 78
10.2 多维数组 79
10.3 DIMENSION属性和DO循环语句的其他形式 83
10.4 DO循环和直接重复 84
10.5 小结 85
10.6 思考题 86
第11章 整个数组和数组片段的特性 88
11.1 术语 88
11.2 操作整个数组 89
11.3 数组片段 91
11.4 数组构造函数 93
11.5 屏蔽的数组赋值和WHERE语句 97
11.6 FORALL语句和FORALL构造 98
11.7 小结 99
11.8 思考题 99
11.9 参考书目 99
第12章 结果输出 100
12.1 整数:I格式或编辑描述符 100
12.2 实数:F格式或编辑描述符 102
12.3 实数:E格式或编辑描述符 105
12.4 空格 106
12.5 字符:A格式或编辑描述符 106
12.6 在FORMAT语句中混用多种输出类型 107
12.7 常见错误 107
12.8 OPEN(和CLOSE) 108
12.9 重复 109
12.10 其他例子 111
12.11 数组输出中隐式的DO循环和数组片段 112
12.12 针对行式打印机的格式化 113
12.13 输出有格式文件所需的时间 115
12.14 输出无格式文件所需的时间 116
12.15 小结 117
12.16 思考题 117
第13章 读取数据 119
13.1 从终端或键盘读取内容与从文件读取内容 119
13.2 固定字段的输入 119
13.3 空格、null和零 123
13.4 字符 124
13.5 跳过空格和多行内容 124
13.6 读取 125
13.7 再次操作文件 125
13.8 使用数组片段进行读取 126
13.9 读取有格式文件使用的时间 127
13.10 读取无格式文件使用的时间 128
13.11 读取时出现错误 128
13.12 小结 129
13.13 思考题 129
第14章 文件 130
14.1 Fortran中的数据文件 130
14.2 OPEN选项小结 132
14.3 更简单的I/O 133
14.4 小结 134
14.5 思考题 134
第15章 函数 135
15.1 预定义函数及其应用 136
15.2 泛型函数 137
15.3 基本函数 137
15.4 转换函数 137
15.5 关于函数使用的注意事项 138
15.6 示例6:计算指定年份的复活节日期 138
15.7 完整的预定义函数列表 140
15.8 提供用户定义函数 141
15.9 变量的作用域和局部变量 142
15.10 递归函数 143
15.11 示例9:GCD函数的递归形式 144
15.12 示例10:移除递归 145
15.13 纯函数 145
15.14 基本函数 145
15.15 内部函数 145
15.16 小结 146
15.17 函数语法 146
15.18 规则和限制 147
15.19 思考题 147
15.20 参考书目 148
第16章 控制结构 149
16.1 选择操作过程 150
16.2 DO语句的3种形式 155
16.3 小结 159
16.4 思考题 160
16.5 参考书目 161
第17章 字符 162
17.1 输入字符 163
17.2 字符运算符 163
17.3 字符子串 164
17.4 字符函数 165
17.5 排序序列 166
17.6 小结 167
17.7 思考题 168
第18章 复数 169
18.1 示例 170
18.2 复数和种类类型 171
18.3 小结 171
18.4 思考题 171
第19章 逻辑型 172
19.1 I/O 174
19.2 小结 174
19.3 思考题 175
第20章 用户定义的类型 176
20.1 示例1:日期 176
20.2 类型定义 177
20.3 变量定义 177
20.4 示例2:地址列表 177
20.5 示例3:嵌套用户定义的类型 178
20.6 思考题 179
20.7 参考书目 179
第21章 指针概述 180
21.1 指针的基本概念 180
21.2 ASSOCIATED内置函数 181
21.3 在赋值前引用A和B 182
21.4 NULL内置函数 184
21.5 用等号赋值 184
21.6 单链表 186
21.7 读入任意数量的数值数据 187
21.8 指针数组 190
21.9 指针数组和变长数据集:1 190
21.10 指针数组和变长数据集:2 191
21.11 内存泄漏示例 191
21.12 非标准指针的示例 193
21.13 思考题 197
第22章 子例程概述 198
22.1 示例1 199
22.2 示例2 202
22.3 示例3:使用接口块的二次方程示例 202
22.4 示例4:二次方程示例与CONTAINS语句 204
22.5 将一个问题分解成多个小问题 206
22.6 小结 206
22.7 思考题 206
第23章 深入理解子例程 208
23.1 传递参数 208
23.2 公共代码示例 209
23.3 显式形状数组示例 209
23.4 假定形状数组示例 210
23.5 字符参数和假定长度哑元 212
23.6 将秩不小于2的数组作为参数 213
23.7 自动数组与中值的计算 217
23.8 两种中值计算算法 221
23.9 递归子例程:Quicksort 224
23.10 小结 228
23.11 思考题 228
23.12 参考书目 229
23.13 商用数值和统计子例程库 230
第24章 模块概述 231
24.1 全局数据模块 232
24.2 精度规范和常量定义模块 232
24.3 共享数组模块 233
24.4 派生数据类型模块 234
24.5 包含过程的模块:快速排序示例 236
24.6 包含过程的模块:统计示例 239
24.7 使用高斯消元法求解线性方程 241
24.8 模块使用和编译过程的说明 245
24.9 小结 245
24.10 思考题 245
24.11 参考书目 246
第25章 实现从Fortran 77的转换 247
25.1 删减的特性 247
25.2 废弃的特性 247
25.3 改善的替代方法 248
25.4 示例1 249
25.5 示例2 255
25.6 商业转换工具 256
25.7 小结 277
25.8 思考题 277
第26章 案例分析 278
26.1 使用链表求解稀疏矩阵 278
26.2 利用Runga-Kutta-Merson方法求解一阶常微分方程组 282
26.3 泛型过程 289
26.4 返回变长数组的函数 294
26.5 运算符和赋值重载 295
26.6 将矩阵对角元素开方的子例程 296
26.7 完全平衡二叉树 298
26.8 纯函数示例 299
26.9 基本函数示例 300
26.10 基本子例程示例 302
26.11 日期类 302
26.12 图形示例 314
26.13 思考题 319
26.14 参考书目 320
第27章 ISO TR 15580 IEEE算术 321
27.1 历史 321
27.2 IEEE 754规范 323
27.3 小结 326
27.4 ISO TR 15580 326
27.5 小结 332
27.6 参考书目 332
第28章 ISO TR 15581可分配增强功能 335
28.1 可分配哑数组示例 335
28.2 可分配函数结果示例 337
28.3 可分配结构组件示例 339
28.4 小结 339
28.5 注意事项 339
第29章 Fortran 2003和增强的模块特性 340
29.1 派生类型增强功能 340
29.2 面向对象的编程支持 340
29.3 数据操作增强功能 340
29.4 输入/输出增强功能 341
29.5 与C编程语言的互操作性 341
29.6 过程指针 341
29.7 作用域增强功能 341
29.8 支持IEC 60559(IEEE 754)异常和运算 342
29.9 支持国际使用:(ISO 10646) 342
29.10 与主机操作系统的增强集成功能 342
29.11 ASSOCIATE结构 342
29.12 增强的模块特性 343
29.13 小结 343
第30章 并行编程 344
30.1 消息传递接口 344
30.2 Co-array Fortran 344
30.3 Openmp 344
30.4 PVM 345
30.5 HPF 345
30.6 并行编程和高性能计算 345
30.7 小结 346
第31章 杂项 347
31.1 程序开发和软件工程 347
31.2 数据结构 349
31.3 算法 349
31.4 递归 349
31.5 结构化编程和GOTO语句 349
31.6 效率、时间和空间的平衡 350
31.7 程序测试 350
31.8 简单的调试技术 350
31.9 软件工具 351
31.10 数值软件资源 351
31.11 尾声 352
31.12 参考书目 352
附录A 词汇表 354
附录B 样本程序示例 359
附录C ASCII字符集 362
附录D 内置函数和过程 363
附录E 英语和拉丁语文本 387
附录F 编码文本摘录 388
附录G 正式语法 389
附录H 编译器选项 393