Fortran语言程序设计基础教程.doc
《Fortran语言程序设计基础教程.doc》由会员分享,可在线阅读,更多相关《Fortran语言程序设计基础教程.doc(393页珍藏版)》请在沃文网上搜索。
1、局校共建精品教材FORTRAN语言程序设计内容提要FORTRAN语言是国内外在科学计算领域广泛使用的计算机编程语言,灵活使用FORTRAN语言进行程序设计对科学计算领域的编程人员来说是一项非常重要的基本技能,尤其是对气象领域的科研工作者。本书以FORTRAN90/95语言规范为蓝本,循序渐进、深入浅出、系统全面地讲解了从语法到问题编程求解的各个环节。主要包括:程序设计理论基础、FORTRAN语言程序设计基础篇、提高篇、应用篇等内容。本书是作者总结多年FORTRAN教学和编程的实践经验编写而成的,全书以浅显易懂的语言进行讲解,配有大量的图解、例题和程序实例等,力争让非计算机专业人员也能快速地理解
2、和掌握编程的过程与精髓,具备能使用FORTRAN语言进行熟练编程的基本技能。作为一本计算机语言类的教材,其主要的特点和创新之处在于:考虑到FORTRAN语言的应用领域气象专业特点,例子的选取上尽量与气象相关,并增加与气象业务处理相关的数据分析、并行计算、数值预报模式等内容;因此最大限度地丰富了教材内容,提高学生的学习兴趣,让学生切实领会本课程的重要性,从而使学生能系统、全面、快速地掌握FORTRAN语言程序设计方法。本书语言表达严谨、流畅、实例丰富,非常适合作为气象类等非计算机类专业本科生的学习教材,也可作为使用FORTRAN语言编程的科技工作者的参考书。序信息化是当今社会发展的大趋势,用信息
3、化推动工业化是21世纪初我国的必然选择。随着计算机技术的飞速发展,计算机已广泛应用于国民经济和人们社会生活的各个方面,它在社会发展中处的地位日益提高,并已成为国民经济与科学技术发展水平的一个重要衡量标志。众所周知,气象科学和技术的跨越式大发展得益于观测、通信和计算机技术的发展,如数值天气预报的水平的不断提高,目前的五天预报的水平与20年前两天预报的水平相当。信息技术应用在气象现代化建设的进程中正扮演着越来越重要的角色。FORTRAN语言是世界上最早出现的高级程序设计语言,它的诞生对程序设计语言的研究和发展产生了极其深刻而广泛的影响。FORTRAN语言已被广泛应用于数值分析、工程计算和科研等领域
4、。在气象领域,FORTRAN语言的应用尤其普遍,主要表现在:1)目前在业务上使用的主流数值预报模式均采用FORTRAN语言编写,如WRF、MM5等;2)已积累大量宝贵、经得起业务考验的FORTRAN语言程序资源,如各类分析工具与算法等。随着计算技术和大气数值模拟的发展,对我国的气象人才提出新的要求,更重视专业水平和编程设计能力培养,适合气象业务部门急需的复合设计人才。在新的时代背景下,如何培养气象类学生的FORTRAN语言程序设计能力和在气象上的应用正面临巨大的挑战。当然,FORTRAN语言本身具有顽强的生命力。在50多年的发展过程中,FORTRAN语言始终以积极的姿态吸收和借鉴先进的程序设计
5、思想,其功能不断增强,版本不断更新,影响不断扩大。更为重要的是,编者以适合我国气象专业人才培养目标为立足点,在深入调研的基础上,组织编写了重点培养大气科学计算能力的FORTRAN语言程序设计教程。突出表现在为气象类学生量身定做,如选取了与气象相关的问题作为程序例程。本教程循序渐进、由浅到深、以简单明了的方式把FORTRAN语言介绍给读者。全书内容丰富、体系结构严谨、概念清晰、易学易懂。特色与创新主要体现在:1)教材内容精心组织。针对非计算机专业学生学习程序设计的主要困难,增加了程序设计方法学方面的基础知识;2)教材内容以FORTRAN90/95语言规范为蓝本,并加大气象应用方面需要的FORTR
6、AN语言内容,包括:二维数组、文件操作、面向对象技术、并行计算和IMSL函数库等;3)结合我国气象学科培养人才的目标,增加FORTRAN在气象业务部门中应用方面的内容。总之,我坚信本教材的出版旨在规范FORTRAN语言教学,提高教学质量,深化教学改革,以期培养出更多满足气象发展需要的高素质复合型人才。前 言从所周知,尽管计算机技术及其应用的迅猛发展,但科学计算仍然是计算机最重要的应用之一。而FORTRAN语言是世界上最早出现的高级程序设计语言,诞生之初就是用于科学计算,包括数值分析、工程计算和科学研究等。在FORTRAN语言50多年的发展过程中,各个行业的工程师、科学家们编写出了经得起实践检验
7、的大量高效的源程序。多年来的应用已表明:在JAVA,C+大行其道的年代,FORTRAN语言仍以其规范,严谨、跨平台和高效等特点,在数值、科学和工程计算领域发挥着重要的作用,FORTRAN语言的强大的数值计算能力是世界公认的。其实FORTRAN语言的发展推动了其它程序设计语言的研究和发展;更重要的是,随着计算机科学技术的飞速发展,FORTRAN语言也不断得到完善和充实,从传统的FORTRAN 66,到结构化FORTRAN 77,再到具有现代气息的FORTRAN 90,FORTRAN 95以及最新的版本FORTRAN 2003。因此,FORTRAN语言始终以积极的姿态吸收和借鉴先进的程序设计思想,
8、其功能不断增强,版本不断升级,影响不断扩大;正受到越来越多的程序开发人员的欢迎。由于我国特定的地理位置、特殊的地形地貌和气候特征,导致我国是世界上气象灾害较重的国家之一。从1980年至2008年,全球88.5的灾害是气象灾害及其衍生灾害;自然灾害里面大概有72.5%的人员伤亡是跟气象灾害有关;气象灾害及其衍生灾害造成75的经济损失。因此,科学准确的数值天气预报就显得至关重要,有利于防灾减灾。所谓数值天气预报,就是在给定初始条件和边界条件的情况下,通过大型计算机作数值计算,求解描写天气演变过程的流体力学和热力学的方程组,预测未来一定时段的大气运动状态和天气现象的方法。其实,1948年的世界上第一
9、台电子计算机ENIAC就是用于数值天气预报计算的;气象始终是高性能计算最重要的应用领域。数值天气预报的核心是预报模式,是一个大型的程序;且主流的预报模式WRF、MM5等都是用FORTRAN语言编写的。编者在FORTRAN语言教学过程,发现没有一本适合我国气象专业进行大气科学计算编程方面的FORTRAN语言程序设计教程。主要的缺陷表现在:1)现有的FORTRAN语言方面的教材几乎是针对工科中的科学计算进行编写的且不够深入,而对气象学科方面的应用没有涉及,无法为气象类学生量身定做,进而导致无法提高学生的积极性。2)随着气象专业对科学计算要求的提高,越来越需要去设计高效和并行的算法,而FORTRAN
10、95语言已支持并行计算和面向对象技术。而现已出版的教材几乎没有涉及,而恰恰这两方面的发展是气象专业急需的。在编写教材时,编者对现有教材的不足之处进行总结,并吸收相关高级语言程序设计教材的优点,结合长期教学过程中积累的丰富教学经验,更为重要的是结合大气科学专业本科人才的培养目标,精心设计课程内容和内容组织方式,通过此教材的编写和教学,最终达到熟练掌握FORTRAN语言程序设计方法和技巧,培养学生的编程能力,达到气象业务部门对软件设计和开发的要求。体现在如下几个方面:1)教材内容精心组织,能让非计算机专业的学生更能系统、全面、快速地掌握FORTRAN语言程序设计方法,为今后的应用开发建立坚实的语言
11、基础。2)在能力培养方面,更突出与气象专业方面的结合,在教材实例的选取上要以气象的应用为背景。重点提高气象类学生的FORTRAN语言程序设计能力和在气象上的业务应用,有利于提高学生的学习积极性和主动性。3)增加了FORTRAN语言提高篇和应用篇。在提高篇部分增加面向对象技术、并行计算和IMSL函数库等;应用篇部分以气象应用为背景,增加了气象数据分析和处理、简单数值预报等内容。至此,本教材编写体现了目的主要目的:一方面学好FORTRAN语言能读懂和吸收现有业务系统的算法精髓;更重要的是,能结合各地的业务系统,进行必要的二次开发和设计;切实起到非计算机专业学生编程能力提升的作用。当然,本书可用作其
12、他高等院校FORTRAN语言程序设计教材和工程技术人才的参考书。本教材的编写是在南京信息工程大学计算机与软件学院薛胜军教授的主持下进行的。薛胜军、耿焕同老师负责对全书进行统稿和主审,耿焕同老师负责编写了第一、二、三、十五章和第十七章中的第三节;吴婷婷老师负责编写了第四、五、六、七章;孙菁老师负责编写了第八章和附录;宣文霞老师负责编写了第九、十一和十二章;王新芝老师负责编写了第十章和第十七章中的第一、二节;郑玉老师负责编写了第十三、十四和十五章。在成书过程,曾得到南京信息工程大学大气科学学院闵锦忠教授、南京大学计算机系陶先平老师的指导,也得到了其他许多老师无私的帮助,在此一并表示衷心感谢!限于编
13、者水平有限,加上时间比较仓促,书中难免有错误和不足之处,恳请专家和读者批评指正。编者2009年8月FORTRAN语言程序设计目 录第一篇 程序设计基础1第一章 程序设计方法学21.1程序设计方法学简介21.2结构化程序设计方法31.2.1概述31.2.2程序设计步骤41.2.3方法举例51.3面向对象程序设计方法51.3.1概述51.3.2程序设计步骤81.3.3方法举例8习题一10第二章 算法程序的关键112.1算法的含义及其特征112.1.1算法的含义112.1.2算法的特征112.2算法的表示112.2.1程序的三种基本结构122.2.2流程图及其表示122.2.3 N-S图及其表示13
14、2.3简单算法举例14习题二17第三章 程序设计过程与FORTRAN语言开发环境183.1高级语言与编译器183.2程序设计过程183.3 FORTRAN语言开发环境203.3.1 PC机上FORTRAN程序开发环境203.3.2大型计算机上的FORTRAN程序开发环境273.4常见的程序调试方法与步骤29习题三34第二篇 FORTRAN语言程序设计基础篇35第四章 科学计算语言FORTRAN概述364.1 始于计算、终于计算364.2 FORTRAN语言发展364.3 FORTRAN 90/95语言源程序书写格式384.3.1 固定格式384.3.2 自由格式404.4 FORTRAN 90
15、/95语言源程序的结构404.4.1程序构造形式404.4.2语句及其顺序414.4.3空白与注释的作用42习题四43第五章 FORTRAN语言基础445.1 字符集与保留字445.2 基本数据类型455.3 常量465.3.1 数值型常量及其类型465.3.2 字符型常量475.3.3 逻辑型常量475.3.4 符号常量475.4 变量485.4.1 数值型变量及其类型485.4.2 字符型变量505.4.3逻辑型变量515.4.4 变量的初始化515.5 运算符与表达式535.5.1 运算符号535.5.2 算术运算符及其表达式535.5.3 关系运算符及其表达式555.5.4 逻辑运算符
16、及其表达式565.6语句575.6.1 赋值语句585.6.2 程序控制语句595.7 系统内部函数60习题五63第六章 顺序结构程序设计646.1表控输入、输出语句656.1.1 表控输入语句656.1.2表控输出语句666.2可控格式输入、输出语句676.2.1整数的有格式输入输出696.2.2 小数型实数的有格式输入输出706.2.3 指数型实数的有格式输入输出726.2.4 复数的有格式输入输出736.2.5 字符串的有格式输入输出746.2.6 逻辑值的有格式输入输出746.2.7 非重复编辑符746.2.8纵向走纸符控制756.3 程序举例77习题六80第七章 选择结构程序设计82
17、7.1 IF语句837.2 SELECT CASE语句887.3 选择语句的嵌套917.4 程序举例93习题七98第八章 循环结构程序设计998.1 DO语句998.1.1带循环变量的DO循环格式998.1.2 DO循环的执行过程1018.1.3 DO循环的有关规定1018.2 DO WHILE语句1048.2.1 DO WHILE循环的格式1048.2.2 DO WHILE循环的执行过程1058.3循环流程控制语句1078.3.1 EXIT语句1078.3.2 CYCLE语句1098.4 无循环变量的DO语句1098.4.1无循环变量的DO语句格式1098.4.2无循环变量的DO语句的执行过
18、程1098.5 循环语句的嵌套1108.5.1 嵌套DO循环的执行过程1118.5.2嵌套DO循环的有关规定1128.6 几种循环形式的比较和关系1148.7 程序举例115习题八123第九章 数组1249.1 概述1249.2 数组的定义与引用1259.2.1 数组的定义1259.2.2 数组元素的引用1279.3数组的逻辑结构与存储结构1289.4 数组的输入输出1309.4.1 使用DO循环输入输出数组元素1319.4.2 用数组名或数组片段对数组进行输入和输出1329.4.3 用隐含的DO循环对数组进行输入和输出1339.5 给数组赋初值1349.5.1 使用DATA语句赋初值1349
19、.5.2 使用数组赋值符赋初值1359.6 动态数组1369.6.1动态数组的定义1369.6.2 ALLOCATE语句1369.6.3 DEALLOCATE语句1379.7 数组常用算法举例1399.7.1 求数组元素的累加和1399.7.2 求最大(小)值及其位置1409.7.3 查找1419.7.4 排序1449.7.5 插入1459.7.6 删除1479.7.7 矩阵运算1499.7.8 应用实例151习题九155第十章 子程序15710.1基本概念15710.2 外部子程序15710.2.1外部函数子程序15710.2.2外部子例行程序16010.3 实参和虚参之间的数据传递1621
20、0.3.1 变量作为虚参16210.3.2 数组作为虚参16410.3.3 子程序名作为虚参17110.3.4 星号(*)作为虚参17310.3.5 变量的作用域17310.4 递归子程序17410.4.1递归的概念17410.4.2 递归子例行程序17410.4.3 递归函数17510.5 数据公用存储单元与数据块子程序17610.5.1公用语句(COMMON语句)17610.5.2 数据块子程序17810.6 内部子程序17910.6.1内部子程序的定义17910.6.2内部子程序的调用18010.7 子程序应用举例182习题十192第十一章 结构体与指针19411.1派生类型定义1941
21、1.2 结构体变量的定义与引用19511.2.1结构体变量定义19511.2.2结构体成员的引用19611.3 结构体的初始化19611.3.1 定义结构体变量的同时初始化19611.3.2 使用赋值语句进行初始化19711.3.3 使用输入语句进行初始化19711.4 结构体数组19811.5 结构体应用实例20211.6 指针的概念和指针变量的定义20811.6.1指针的概念20811.6.2指针变量的定义20911.6.3 指针变量的使用20911.6.4悬空指针和无法访问的内存21311.7 指针与数组21311.7.1指向数组的指针21311.7.2指针数组21511.8 指针与链表
22、21611.8.1 链表的概念21711.8.2 建立链表21711.8.3 插入结点21911.8.4 删除结点222习题十一226第十二章 文件22712.1 FORTRAN 90/95文件概述22712.1.1文件与记录22812.1.2文件的存取方式22812.1.3文件的结构22912.1.4文件的定位22912.2文件操作语句23012.2.1文件打开(OPEN)语句23012.2.2文件关闭(CLOSE)语句23312.2.3文件输入输出(READ/WRITE)语句23312.3 其它文件操作23412.3.1查询文件状态(INQUIRE)语句23512.3.2反绕文件指针(RE
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
15 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Fortran 语言程序设计 基础教程