fortran90程序设计chapter2

2019-03-29 16:59

第二章 Digital Visual FORTRAN 5.0 入门

FORTRAN语言是最早出现的计算机高级程序设计语言,它对程序设计语言的研究和发展产生了极其深刻的影响。随着计算机科学技术的飞速发展,FORTRAN语言也不断得到完善和充实,从传统FORTRAN,到结构化FORTRAN,再到具有现代特征的Digial Visual FORTRAN 5.0。

本章将介绍FORTRAN语言的发展历史、Digital Visual FORTRAN 5.0简介、Microsoft Developer Studio开发环境、FORTRAN 90语言书写格式,以及FORTRAN 90程序的编辑、创建、打开、保存、编译、连接和运行等内容。

2.1 FORTRAN语言发展概述

FORTRAN是英文“FORmula TRANslator”的缩写,译为“公式翻译器”,它是世界上最早出现的计算机高级程序设计语言,广泛应用于科学和工程计算领域。FORTRAN语言以其特有的功能在数值、科学和工程计算领域发挥着重要作用。

早在1951年,美国IBM公司约翰·贝克斯(John Backus)针对汇编语言的缺点着手研究开发FORTRAN语言,并于1954年在纽约正式对外发布。称约翰·贝克斯提出的FORTRAN语言为FORTRANⅠ,FORTRANⅠ虽然功能简单,但它的开创性工作,在社会上引起了极大的反响。到1957年第一个FORTRAN编译器在IBM704计算机上实现,并首次成功运行了FORTRAN程序。

在1958年,对FORTRANⅠ进行了扩充和完善,引进了子函数等概念,推出了商业化的FORTRANⅡ版本。之后,FORTRAN语言发展迅速,多种版本相继在其它计算机上实现。

在1962年,推出了FORTRAN Ⅳ。FORTRAN Ⅳ没有充分考虑兼容性,导致FORTRANⅡ程序不能在FORTRAN Ⅳ系统中运行,使其应用受到了很大限制,这时语言不兼容性问题和影响被突出表现出来。此前也出现过FORTRAN Ⅲ,但由于存在严重缺陷,没有在计算机上实现。

随着FORTRAN语言版本的不断更新和变化,语言不兼容性问题日益突出,语言标准化工作被提上了日程。1962年5月,美国标准化协会(简称ANSI)成立相关机构着手进行FORTRAN语言标准化的研究工作,并于1966年正式公布了两个标准文本:美国国家标准FORTRAN(ANSI X3.9-1966)和美国国家标准基本FORTRAN(ANSI X3.10-1966),前者相当于FORTRAN Ⅳ,后者相当于FORTRANⅡ。基本FORTRAN是美国国家标准FORTRAN的一个子集,从而实现了语言的向下兼容,初步解决了语言的兼容性问题。通常称美国国家标准FORTRAN为FORTRAN 66。FORTRAN 66的推出在国际上产生了广泛影响,1972年国际标准化组织(简称ISO)在FORTRAN 66基础上制定了FORTRAN语言三级国际标准:基本级、中间级和完全级。

20世纪60代末,结构化程序设计方法提出后,具有结构化特征的程序设计语言开始出现,如:ALGOL、PASCAL、MODULA、C等。如何将结构化特征引入FORTRAN 66引起计算机厂商和研究机构的高度重视,许多计算机厂商开始对FORTRAN 66进行不同程度的扩充,引入了结构化特征。针对这种情况,ANSI于1976年对FORTRAN 66(ANSI X3.9-1966)进行了修订,吸收了计算机厂商所扩充的一些行之有效的功能,同时增加了许多新内容。ANSI于1978年4月正式公布了新的美国国家标准(程序设计语言FORTRAN ANSI X3.9-1978),同时宣布撤消ANSI

第二章 Digital Visual FORTRAN 5.0 入门

FORTRAN 3.9-1966,通常称新标准为FORTRAN 77(该版本原计划1977年公布)。FORTRAN 77向下兼容FORTRAN 66。在1980年,FORTRAN 77被ISO正式确定为国际标准ISO 1539-1980,该标准分全集和子集。FORTRAN 77推出后,由于具有结构化特征,在社会上得到了广泛应用,同时由于扩充了字符处理功能,在非数值处理领域也能大显身手。

20世纪80年代末,FORTRAN 77结构化和现代化的研究开始兴起,到1991年5月,ANSI公布了新的美国国家标准FORTRAN(ANSI 3.198-1991)。之后,ISO采纳该标准,并确定为国际标准ISO/IEC 1539-1:1991,新国际标准还采纳了我国计算机和信息处理标准化技术委员会程序设计分会提出的多字节字符集数据类型及相应的内部函数,为非英语国家使用计算机提供了极大的方便。通常称新标准为FORTRAN 90,FORTRAN 90向下兼容FORTRAN 77。之后不久又出现了FORTRAN 95。

FORTRAN 90的推出,使传统FORTRAN语言具有了现代气息。微软公司将FORTRAN 90无缝集成在Developer Studio集成开发环境之中,推出了Microsoft FORTRAN PowerStation 4.0,使FORTRAN 90真正实现了可视化编程,彻底告别了传统DOS环境(字符界面),转到了现代Windows环境(视窗界面),共享微软公司Windows平台的丰富资源。在1997年3月,微软公司和数据设备公司(Digital Equipment Corp,简称DEC)强强联合,合作研究、开发和推出了功能更强的FORTRAN语言新版本:Digital Visual FORTRAN 5.0,它是Microsoft FORTRAN PowerStation 4.0的升级换代产品。DEC公司在高性能科学和工程计算方面拥有世界领先技术,其高质量的FORTRAN编译器遍及全球。1998年1月,DEC与Compag公司合并,DEC成为Compag公司的全资子公司,于是Digital Visual FORTRAN更名为Compag Visual FORTRAN,到目前为止,Visual FORTRAN的最新版本为Compag Visual FORTRAN 6.6。

FORTRAN语言发展简述如表2-1所示。

表2-1 FORTRAN语言发展简述

说明 由约翰.贝克斯提出,1957年在IBM704计算机上实现。该1954 FORTRAN Ⅰ 版功能简单,对高级语言发展贡献大 1958 FORTRAN Ⅱ 对FORTRAN Ⅰ进行扩充,引入子函数概念,投入商业运行 1960 FORTRAN Ⅲ 该版本有一定缺陷,未在计算机上实现和在实践中使用 功能趋于完善,语言趋于成熟,兼容性差,与早期版本不兼1962 FORTRAN Ⅳ 容,应用受限制 语言标准规范,ANSI有两个标准,ISO有三个标准,相当1966 FORTRAN 66 FORTRAN Ⅱ和FORTRAN Ⅳ 对FORTRAN 66进行了扩充,引入结构化特征,支持结构化程1978 FORTRAN 77 序设计,扩充字处理功能,可用于非数值处理领域,完全向下兼容 对FORTRAN 77进行了扩充,引入现代语言特征,功能强大,1991 FORTRAN 90 结构化程度和灵活性很高,缩短了与PASCAL、C、JAVA等语言的差距,完全向下兼容 微软公司产品,支持FORTRAN 90,Developer Studio集成环1995 FORTRAN PowerStation 4.0 境,视窗界面,可视化编程,可开发Windows程序 微软和DEC公司合作产品,是FORTRAN PowerStation 4.01997 Digital Visual FORTRAN 5.0 升级换代产品,功能十分强大 Compag与DEC公司合作产品,是Digital Visual FORTRAN 1998 Compag Visual FORTRAN 6.x 5.0升级换代产品,最新版本为6.6版 时间 版本 -22-

2.2 FORTRAN 90主要特征

2.2 FORTRAN 90主要特征

FORTRAN 90引入了许多新的特性,体现了现代气息,并保持了良好的兼容性,完全向下兼容FORTRAN 77。FORTRAN 90仍保留了过时内容,含有过时内容的FORTRAN 77程序在FORTRAN 90中认为是合法的,可以运行。在程序设计中提倡使用FORTRAN 90新特性编写程序。 1. 程序组织结构

FORTRAN 90采用模块化和结构化相结合的程序组织结构。FORTRAN 90程序由四部分组成:主程序单元、外部子程序单元、模块单元和数据块单元,可分别保存在独立的源程序文件中,分别编译,最后连接和运行。FORTRAN 90程序组织结构如图2-1所示。

FORTRAN 90程序 主程序单元 CONTAINS 外部子程序单元 外部子程序1 CONTAINS 内部子程序组 内部子程序组 外部子程序2 CONTAINS 内部子程序组 内部子程序组 数据块说明 模块单元 类型说明部分 CONTAINS 数据块单元 图2-1 FORTRAN 90程序组织结构

FORTRAN 90程序有且只能有一个主程序单元,其它程序单元可有可无,可多可少。子程序分内部子程序和外部子程序,有不同的使用范围,外部子程序只能在外部子程序单元中说明和定义,内部子程序只能在主程序、外部子程序模块中的CONTAINS和END语句之间说明和定义。模块单元中的子程序称为模块子程序。 2. 源程序书写形式

FORTRAN 90源程序有自由格式和固定格式两种书写格式,可任选一种格式书写。

固定格式采用FORTRAN 77书写格式,有严格的书写限制。固定格式规定:一个程序单元由若干行语句组成,每行80个字符,分四个区域:标号区、续行区、语句区和注释区,如图2-2所示。

? 1-5为列标号区,标号区第一个字符为“!”表示该行为注释行,FORTRAN 77规定第一个字符为“C”或“*”表示该行为注释行,之外,标号区只能写代表标号的整数。

? 6列为续行区,续行区字符为“&”,FORTRAN 77规定续行区字符为任意非0非空格字符。当语句在语句区一行内写不下时,可使用续行。

? 7-72列为语句区,语句区只能书写FORTRAN语句,从第7列开始,一行只能写一条语句,一条语句写不下,可使用一行或多行续行。语句区内空格被忽略(字符串内空格除外)。

? 73-80列为注释区,注释区给出该行语句的简要说明。注释区注释不需给出“!”字符。

-23-

第二章 Digital Visual FORTRAN 5.0 入门

标号区 续行区 (1-5列) (6列) 语句区

(7-72列) 注释区 (73-80列) ! 求一元二次方程两个实根 PROGRAM quadratic REAL a,b,c,d,x1,x2 READ *,a,b,c 输入系数 d=b*b–4*a*c 计算判别式 100 IF (d>=0) THEN x1=(–b+SQRT(d))/(2*a) x2=(–b–SQRT(d)) & /(2*a) PRINT *, 'x1=' , x1 PRINT *, 'x2=' , x2 ELSE PRINT *, '该方程有复数根。' END IF END 程序结束

图2-2 固定格式书写示例

自由格式采用PASCAL、C等现代语言书写格式,书写不再受分区和位置限制。自由格式规定:一个程序单元由若干行语句组成,一行长度可任意(默认为132个字符);“!”字符后均为注释说明文字;标号与语句之间用空格间隔;一行可写多条语句,语句之间用“;”字符间隔;语句可从任意位置开始书写,如图2-3所示。

! 求一元二次方程两个实根

PROGRAM quadratic

REAL a,b,c,d,x1,x2

READ *,a,b,c !输入方程系数

d=b*b–4*a*c !计算判别式

IF (d>=0) THEN

x1=(–b+SQRT(d))/(2*a); x2=(–b–SQRT(d))/(2*a)

PRINT *, 'x1=', x1

PRINT *, 'x2=', x2

ELSE

PRINT *, '该方程有复数根。'

END IF

END !程序结束

图2-3 自由格式书写示例

-24-

2.2 FORTRAN 90主要特征

3. 结构化控制语句

FORTRAN 90改善和扩充了FORTRAN 77中的结构化控制语句,提供了块IF、块CASE、DO循环和DO WHILE循环语句。语句中都将END IF、END SELECT或END DO作为语句的结束子句,取消了CONTINUE语句。FORTRAN 90还允许对结构化控制语句进行命名,如图2-4所示。

Sum:DO I<=10

S=S+I

I=I+1

END DO Sum

图2-4 循环语句命名

4. 过程

过程是被命名的一组语句,也称子程序,通过调用执行,完成一系列运算或操作,获得运行结果。过程分函数和子程序。FORTRAN 90增加了递归过程。

5. 作用域

作用域是指程序中名称(变量名、子程序名、函数名等)的作用范围,FORTRAN 90规定了名称的作用域。主程序单元中声明的名称其作用域为整个程序以及与公用块有关的所有外部子程序。子程序内声明的名称其作用域为子程序本身。不同作用域声明的名称可以重名,只在自身作用域内起作用,互不干扰。作用域说明如图2-5所示。

PROGRAM main

REAL a,b,c

CONTAINS

SUBROUTINE p1(?)

REAL b?,c?,d b?,c?,d a,b,c

的作用域 的作用域

END SUBROUTINE p1

SUBROUTINE p2(?)

REAL c?,d?,e c?,d?,e

的作用域

END SUBROUTINE p2

END

图2-5 作用域说明

6. 关联

关联是将同一作用域单元的变量联系起来,允许已声明的变量可被同一作用域内的其它变量访问。有三种关联:名称关联、指针关联和存储关联。

7. 数据类型

FORTRAN 90提供五种预定义的内部数据类型(INTEGER、REAL、COMPLEX、CHARACTER、LOGICAL),并引入了派生数据类型特征,提供了派生类型声明语句TYPE?ENDTYPE,使FORTRAN

-25-


fortran90程序设计chapter2.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:渝建安发〔2016〕22号-关于进一步深化危险性较大的分部分项工程

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: