第1章 计算机和Fortran语言简介 1
1.1 计算机 2
1.2 计算机中数据的表示 3
1.3 计算机语言 9
1.4 Fortran语言发展史 9
1.5 Fortran的演进 11
1.6 小结 14
第2章 Fortran基础知识 17
2.1 介绍 17
2.2 Fortran字符集 17
2.3 Fortran语句结构 18
2.4 Fortran程序结构 19
2.5 常数与变量 21
2.6 赋值语句和算术运算 27
2.7 内置函数 35
2.8 表控输入和输出语句 37
2.9 变量初始化 41
2.10 IMPLICIT NONE语句 42
2.11 程序举例 43
2.12 调试Fortran程序 49
2.13 小结 50
第3章 程序设计与分支结构 61
3.1 自顶向下设计技术入门 61
3.2 伪代码和流程图的使用 65
3.3 逻辑常数、变量和运算符 65
3.4 控制结构:分支 71
3.5 有关调试Fortran程序的问题 89
3.6 小结 90
第4章 循环和字符操作 96
4.1 控制结构:循环 96
4.2 字符赋值和字符操作 118
4.3 Fortran循环的调试 129
4.4 小结 130
第5章 基本的I/O概念 139
5.1 格式和格式化WRITE语句 139
5.2 输出设备 140
5.3 格式描述符 142
5.4 格式化READ语句 159
5.5 文件及文件处理介绍 164
5.6 小结 180
第6章 数组 191
6.1 声明数组 192
6.2 在Fortran语句中使用数组元素 193
6.3 在Fortran语句中使用整个数组和部分数组 203
6.4 输入和输出 206
6.5 程序举例 211
6.6 什么时候该用数组? 224
6.7 小结 225
第7章 过程 231
7.1 子例程 232
7.2 用模块共享数据 249
7.3 模块过程 255
7.4 Fortran函数 257
7.5 过程作为参数传递给其他过程 263
7.6 小结 267
第8章 数组的高级特性 281
8.1 二维数组 281
8.2 多维数组 290
8.3 对数组使用Fortran内置函数 293
8.4 加掩码的数组赋值:WHERE结构 295
8.5 FORALL结构 297
8.6 可分配数组 299
8.7 小结 306
第9章 过程的附加特性 316
9.1 给子例程和函数传递多维数组 316
9.2 SAVE属性和语句 325
9.3 过程中的可分配数组 329
9.4 过程中的自动数组 329
9.5 在过程中作为形参的可分配数组 335
9.6 纯过程和逐元过程 338
9.7 内部过程 340
9.8 子模块 341
9.9 小结 347
第10章 字符变量的更多特性 356
10.1 字符比较操作 357
10.2 内置字符函数 360
10.3 把字符变量传入子例程或函数 363
10.4 可变长字符函数 367
10.5 内部文件 369
10.6 例题 369
10.7 小结 374
第11章 附加的内置数据类型 379
11.1 REAL数据类型的可选择类别 379
11.2 INTEGER数据类型的可选长度 398
11.3 CHARACTER数据类型的可选类别 399
11.4 COMPLEX数据类型 400
11.5 小结 407
第12章 派生数据类型 411
12.1 派生数据类型简介 411
12.2 派生数据类型的使用 412
12.3 派生数据类型的输入与输出 413
12.4 在模块中声明派生数据类型 414
12.5 从函数返回派生类型 421
12.6 派生数据类型的动态内存分配 425
12.7 参数化派生数据类型 425
12.8 类型扩展 426
12.9 类型绑定过程 427
12.10 ASSOCIATE结构 431
12.11 小结 432
第13章 过程和模块的高级特性 438
13.1 作用范围和作用域 438
13.2 块 443
13.3 递归过程 444
13.4 关键字参数和可选参数 446
13.5 过程接口和接口块 450
13.6 通用过程 454
13.7 用用户自定义操作符和赋值符扩展Fortran 464
13.8 绑定赋值符和操作符 474
13.9 限制对模块内容的访问 474
13.10 USE语句的高级选项 477
13.11 内置模块 480
13.12 访问命令行参数和环境变量 480
13.13 VOLATILE属性和语句 482
13.14 小结 483
第14章 高级I/O概念 495
14.1 更多格式描述符 495
14.2 表式输入的默认值 503
14.3 Fortran I/O语句详述 504
14.4 I/O名称列表 522
14.5 未格式化文件 524
14.6 直接访问文件 526
14.7 流访问模式 529
14.8 派生数据类型的非默认I/O 530
14.9 异步I/O 536
14.10 访问特定处理器相关的I/O系统信息 538
14.11 小结 539
第15章 指针和动态数据结构 546
15.1 指针和目标变量 547
15.2 在赋值语句中使用指针 551
15.3 使用数组指针 553
15.4 使用指针的动态内存分配 554
15.5 指针当作派生数据类型的元素 557
15.6 指针数组 567
15.7 在过程中使用指针 569
15.8 过程指针 573
15.9 二叉树结构 576
15.10 小结 591
第16章 Fortran面向对象程序设计 597
16.1 面向对象程序设计介绍 598
16.2 Fortran类的结构 602
16.3 CLASS保留字 602
16.4 在Fortran中实现类和对象 604
16.5 第一个例子:timer类 606
16.6 方法的分类 611
16.7 对类成员的访问控制 617
16.8 析构函数 618
16.9 继承性和多态性 621
16.10 禁止在子类中重载方法 633
16.11 抽象类 633
16.12 小结 649
第17章 优化数组和并行计算 654
17.1 Fortran中优化数组的并行处理 655
17.2 创建简单并行程序 655
17.3 优化数组 657
17.4 映像间的同步 658
17.5 例题:排序大数据集合 664
17.6 动态优化数组和派生数据类型 669
17.7 优化数组传给过程 670
17.8 临界区 671
17.9 并行程序中的极大危险 671
17.10 小结 675
第18章 冗余、废弃以及已被删除的Fortran特性 680
18.1 Fortran 90前的字符限制 680
18.2 已被废除的源码格式 681
18.3 冗余数据类型 682
18.4 过时、废弃、和/或不必要的说明语句 682
18.5 共享内存空间:COMMON和EQUIVALENCE 685
18.6 不必要的子程序特性 690
18.7 其他执行控制特性 696
18.8 被废除的分支和循环结构 698
18.9 I/O语句的冗余特性 702
18.10 小结 702
附录A ASCII字符集 708
附录B Fortran/C交互操作 709
附录C Fortran内置过程 717
附录D Fortran程序中的语句序列 758
附录E术语表 760
附录F各章测验的答案 782
作者介绍 801