Fortran语言F77和F90的区别+F90简明教程

合集下载

Fortran77和90 95编程入门(丁泽军)

Fortran77和90 95编程入门(丁泽军)

本节介绍Fortran的起源与发展历史,讲述Fortran由产生到形成标准FortranIV、Fortran77,并进一步形成新标准Fortran90/95的发展历程。

a)FortranIªFortranIVFortran是目前国际上广泛流行的一种高级语言,适用于科学计算。

Fortran是英文FORmula TRANslation的缩写,意为“公式翻译”。

它是为科学、工程问题中的那些能够用数学公式表达的问题而设计的语言,主要用于数值计算。

这种语言简单易学,因为可以像抄写数学教科书里的公式一样书写数学公式,它比英文书写的自然语言更接近数学语言。

Fortran语言是第一个真正推广的高级语言。

至今它已有四十多年历史,但仍历久不衰,始终是数值计算领域所使用的主要语言。

Fortran语言问世以来,根据需要几经发展,先后推出形成了很多版本。

第一代Fortran语言是在1954年提出来的,称为FortranI。

它于1956年在IBM 704计算机上得以实现。

在此之前编写计算机程序是极为繁琐的,程序员需要详细了解为之编写代码的计算机的指令、寄存器和中央处理器(CPU)等方面的知识。

源程序本身是用数学符号(八进制码)编写的,后来采用了助记符,即所谓机器码或汇编码,这些编码由汇编程序转换为指令字。

在50年代书写和调试一个程序要很长时间,因为用这种方式编写程序显然是很不方便的,尽管它能使CPU高效地工作。

正是这些原因,促使由John Backus率领的IBM公司的一个小组研究开发最早的高级程序设计语言Fortran。

其目的是开发一种容易理解、简单易学又能几乎像汇编一样高效运行的语言,他们取得了极大的成功。

Fortran语言作为第一种高级语言不仅是一次创新,也是一次革命。

它使程序员摆脱了使用汇编语言的冗长乏味的负担,而且它使得不再只是计算机专家才能编写计算机程序,任何一名科学家或工程技术人员,只要稍加努力学习和使用Fortran,就能按自己的意图编写出用于科学计算的程序。

fortran语法手册

fortran语法手册

1 FORTRAN77四则运算符+ - * / ** (其中**表示乘方)在表达式中按优先级次序由低到高为: +或-→*或/→**→函数→()2 FORTRAN77变量类型2.1 隐含约定:I-N规则凡是以字母I,J,K,L,M,N六个字母开头的,即认为是整型变量,其它为实型变量。

2.2 用类型说明语句确定变量类型:可以改变I-N规则2.3 用IMPLICIT语句将某一字母开头的全部变量指定为所需类型如 IMPLICIT REAL (I,J)三种定义的优先级别由低到高顺序为:I-N规则→IMPLICIT语句→类型说明语句,因此,在程序中IMPLICIT语句应放在类型说明语句之前。

2.4 数组的说明与使用使用I-N规则时用DIMENSION说明数组,也可在定义变量类型同时说明数组,说明格式为:数组名(下标下界,下标上界),也可省略下标下界,此时默认为1,例:DIMENSION IA(0:9),ND(80:99),W(3,2),NUM(-1:0),A(0:2,0:1,0:3)REAL IA(10),ND(80:99)使用隐含DO循环进行数组输入输出操作:例如WRITE(*,10) ('I=',I,'A=',A(I),I=1,10,2)10FORMAT(1X,5(A2,I2,1X,A2,I4))2.5 使用DATA语句给数组赋初值变量表中可出现变量名,数组名,数组元素名,隐含DO循环,但不许出现任何形式的表达式:例如DATA A,B,C/-1.0,-1.0,-1.0/DATA A/-1.0/,B/-1.0/,C/-1.0/DATA A,B,C/3*-1.0/CHARACTER*6 CHN(10)DATA CHN/10*' '/INTEGER NUM(1000)DATA (NUM(I),I=1,500)/500*0/,(NUM(I),I=501,1000)/500*1/3 FORTRAN77程序书写规则程序中的变量名,不分大小写;变量名称是以字母开头再加上1到5位字母或数字构成,即变更名字串中只有前6位有效;一行只能写一个语句;程序的第一个语句固定为PROGRAM 程序名称字符串某行的第1个字符至第5个字符位为标号区,只能书写语句标号或空着或注释内容;某行的第1个字符为C或*号时,则表示该行为注释行,其后面的内容为注释内容;某行的第6个字符位为非空格和非0字符时,则该行为上一行的续行,一个语句最多可有19个续行;某行的第7至72字符位为语句区,语句区内可以任加空格以求美观;某行的第73至80字符位为注释区,80字符位以后不能有内容。

F90第2章_FORTRAN90开发环境解析

F90第2章_FORTRAN90开发环境解析
第二章
2.2 FORTRAN90主要特征/关联
FORTRAN90开发环境
2.2 FORTRAN90主要特征

组织结构 书写形式


结构化
过程 作用域 FORTRAN 90提供五种预定义的内部数据类型(INTEGER、 REAL 、 COMPLEX 、 CHARACTER 、 LOGICAL), 并引入了派生数据 类 型 特 征 , 提 供 了 派 生 类 型 声 明 语 句 TYPE…ENDTYPE, 使 FORTRAN 90能说明和定义复杂的数据结构。 FORTRAN 90 同时对五种预定义的数据类型进行了扩充 , 为其指定了一个类型参数值 (KIND 值), 用于指定数据类型在 内存中的存储方式和取值范围。
66,美国标准,后被ISO采用。
77,兼容性好,结构化特征。 90,现代化语言。
1995年,微软公司在Developer
Studio集成开发平台 上推出FORTRAN PowerStation 4.0,实现可视化编程。
2.1 FORTRAN语言发展概述/发展历程
1997年,微软和数据设备公司合作推出Digital
著名编程语言Fortran 创始人巴库斯
2.1 FORTRAN语言发展概述
第二章
FORTRAN90开发环境
2.1 FORTRAN语言发展概述

语言地位 发展历程
1951年,美国IBM公司着手研究开发FORTRAN语言,并
于1954年对外发布,称FORTRANⅠ。
1966年,推出FORTRAN 1978年,推出FORTRAN 1991年,推出FORTRAN
FORTRAN90开发环境
2.2 FORTRAN90主要特征

计算物理

计算物理
运算符 + * / ** 描述 加法运算符,相加两个操作数。 减法运算,第一减去第二操作数。 乘法运算符,相乘两个操作数。 除法运算符,通过分子除以分母。 乘方运算,计算一个操作数的幂。 例子 A+B=8 A-B=2 A * B = 15 A/B=1 A ** B = 125
例:(a-b)/c**2+sin(x+y) 算数运算优先级:括号、函数、乘方(**)、乘除、加减。
IF结构嵌套: if(逻辑判断式) then if(逻辑判断式) then if(逻辑判断式) then …… else if(逻辑判断式) then …… else …… end if end if end if
IF结构嵌套要慎用,一般可以有逻辑判断式组合代 替嵌套!
20
五、循环结构
1、DO语句: Fortran 90中的格式: do i=1,10,1 print*,i end do Fortran 77中的格式: do 20, i=1,10,1 print*,i 20 continue
21
2、DO循环嵌套
在一个DO循环中又完整地包含另一个DO循环, 称为DO循环的嵌套。嵌套层数可以不限,各层的循 环变量不允许同名。注意内循环应当完整地嵌套在 外循环之内,即内循环是外循环体中的一部分,内 外循环不能交叉。即: do i=1,10 do j=1,20 ……… end do end do
操作 符 描述 示例
.and.
.or. .not. .eqv.
如果这两个操作数都为非零,则条件变为真。 (A .and. B) 为 false.
两者之一不为零,则条件变为真。 (A .or. B) 为 true.
使用反转操作数的逻辑状态。如果条件为真, !(A .and. B) 则逻辑非运算符将返回false。 为 true. 用于检查两个逻辑值等价。 (A .eqv. B) 为 false. (A .neqv. B) 为 17 true.

第一章 F90基础

第一章 F90基础
输出z的值
12
图1.5 用N-S结构图描述的算法 已经证明,任何复杂的问题都可以三种基本算 法结构来描述:顺序、选择、循环。因此用计 算机语句描述的程序也包含三种基本结构。
1.2 程序设计方法
1语 言编写计算机程序的过程,称为程序设计。
目前,有两种重要的程序设计方法:

F90影响
2.1 FORTRAN语言发展概述/F90影响
第一章
FORTRAN90开发环境
西安科技大学计算机学院
1.2 FORTRAN90主要特征

组织结构 书写形式

FORTRAN 90采用模块化和结构化相结合的程序组织结构。 FORTRAN 90程序由四部分组成:主程序单元、外部子程 序单元、模块单元和数据块单元。
第一章 程序设计概述
1. FORTRAN语言发展概述 2. FORTRAN90主要特征 3. Visual FORTRAN 4.0主要特性 4 . 字符集 5. 名称 6. 关键字 7. 程序单元 8. 语句 9. 书写格式 10. 习题一
8
《FORTRAN90程序设计》课多媒体课件
西安科技大学计算机学院
1.1 计算机语言及其发展 1. 计算机语言

6

是人与计算机进行交流的工具 计算机语言分为:
机器指令(由0 和 1组 难学、难记 机器语言 成),可直接执行 依赖机器的类型 用助记符代替机器指 克服记忆的难点 汇编语言 令,用变量代替各类 其他与机器语言类 地址。 似 类似数学语言、接近自然语言、具有通用 高级语言 性和可移植性,不依赖具体的计算机类型。
算法的属性
1 2 3 4 5
有穷性 确定性 有零个或多个输入 有一个或多个输出 有效性

[转载]Fortran程序基本特点及不同版本之间的区别

[转载]Fortran程序基本特点及不同版本之间的区别

[转载]Fortran程序基本特点及不同版本之间的区别原⽂地址:Fortran程序基本特点及不同版本之间的区别作者:caodanping_7141、F77和F90的区别名称:F77固定格式(fixed format),程序代码扩展名:.f或.for,F90⾃由格式(free format),扩展名:.f90格式:F77每⾏前六个字符不写程序代码,可以空着或者1-5字符使⽤数字来标注⾏代码(⽤作格式化输⼊出等),7-72为程序代码编写区,73⾏后被忽略,超过的话可以续⾏,F90每⾏可132字符注释:F77以C,c或*开头的⾏被当成注释;F90以"!"引导注释,也可放在⾏尾续⾏:F77所续⾏的第六个字符是"0"以外的字符,通过⽤+表⽰,F90以&续⾏,放在该⾏末或下⾏初均可变量名:F77⽀持6个字符长,F90⽀持31个字符长常数:F90中PARAMETER可以做形容词,和变量声明同时写在⼀起Real, parameter :: pi=3.1415926关系运算符:F90: == /= > >= < <= (更接近标准的数学符号)F77: .EQ. .NE. .GT. .GE. .LT. .LE.逻辑运算符:.AND. .OR. .NOT. .EQV. .NEQV.变量声明赋值:(1)integer: kind=1,2,4(长整型)F90: integer(kind=2) aInteger(kind=4)::a=15(加上两个冒号可以在定义时就直接赋值)F77: integer*2 b or integer(2) c⽤DATA命令单独赋值(属于声明),data b,c /1, 2.0/Fortran规定变量名以字母IJKLMN六个字母开头的即认为是整型变量(I-N规则),其他字母开头的为实型变量(2)real:kind=4,8(双精度)/real* 8=double precision(1.23E3/1.23D3)F90:real(kind=4) a, F77:real*4 a or real(4) a(3)complex kind=4,8(双精度)F90: complex(kind=4) a a=(3.1,2.5)(4)character len为最⼤长度(26个字母,数字0-9,专⽤字符13个:空格'$()+-*/,=.:)F90: character(len=10) c c=”Hello”, F77: c=’Hello’(5)logical kind=4,2(最少只需要1即可)F90: logical(kind=4) a a=.true.(6)⾃定义类型type:类似于C中的structF90: type::person ……引⽤时变量和元素直接以%区隔,visual fortran可以⽤.来表⽰全局变量全局变量:F77采⽤command来声明全局变量,编译器只提供内存共享⽽不去检查数据类型,使⽤时需要注意定义的是否⼀主程序和主程序中致,⽽F90则提供了module(不是函数,⽤于封装程序模块),可以把全局变量都声明在module中,这样主程序和主程序中就不需要编写重复的程序代码来声明全局变量就不需要编写重复的程序代码来声明全局变量了,函数在需要使⽤时只需要⽤use来调⽤该module_name即可:module module_name...end module还可以把功能上相关的函数放在同⼀个module模块中,程序想要调⽤时use该module才能调⽤,这样⽐较符合模块化的概念,在该module中⽤contains引导函数即可。

第三章FORTRAN90基础知识

第三章FORTRAN90基础知识
使 用 变 元 关 键 字 可 提 高 程 序 的 可 读 性 , 如 内 部 函 数 CMPLX ( X [ , Y] [ , KIND] ) 的X、Y和KIND为变元关键字,可使用 下面语句调用CMPLX函数:
CMPLX (10, 20, 4)
! 按序指定参数。
CMPLX (y=20, kind=4, x=10) ! 按变元关键字指定参数。
_wrong,U.S.A.,
下面是几个使用合法名称的语句例子。
INTEGER total
!total命名了一个整型变量
SUBROUTINE example !example命名了一个过程
PROGRAM area
!area命名了一个程序单元
Lable:DO I=1,N !Lable命名了一个DO循环
第三章 FORTRAN 90基础知识
3.3 关键字/示例
END FUNCTION mul(x,y)
mul=x*y END FUNCTION
第三章 FORTRAN 90基础知识
09/10秋学期
概述 分类 描述 示例
3.4 程序单元
一个F90程序可由多个程序单元组成(至少一个主程序单元)。 程序单元由数据声明和相关操作(语句)构成,必须用END语句结束。
3.2 名称
概述 语法描述 作用域 示例
<名称>→<英gt;∣“_”∣“$”}
说明: ① 名称只能由英文字母、数字、下划线符“_”和美元
符号“$”组成。 ② 名称第一个字符必须是英文字母。
3.2 名称/语法描述
③ 名称不能超过31个字符。
第三章 FORTRAN 90基础知识
模块单元:能被其它程序单元访问的一组定义(数据类型定义、 过程定义)、过程接口定义)所构成的程序单元,其中模块子程序 允许本模块或其它程序单元调用执行。由MODULE语句开始。

fortran多文件编译命令

fortran多文件编译命令

Fortran 是一种面向科学计算和工程计算的编程语言,它广泛应用于数值分析、科学计算、大气和地球物理学等领域。

在使用 Fortran 进行程序开发时,经常会遇到需要将多个源文件编译为可执行文件的情况。

本文将介绍如何使用不同编译器来编译 Fortran 多个源文件,以及对应的编译命令。

一、使用 gfortran 编译器编译 Fortran 多个源文件1. 编写多个 Fortran 源文件在进行编译之前,首先需要编写多个 Fortran 源文件,这些文件通常以 .f90 或 .f95 作为后缀。

假设我们有三个源文件分别为 m本人n.f90、sub1.f90 和 sub2.f90。

2. 使用 gfortran 进行编译使用 gfortran 进行编译时,可以通过以下命令将多个源文件编译为可执行文件:```gfortran -o program m本人n.f90 sub1.f90 sub2.f90```其中,-o 选项用于指定输出的可执行文件名,后面紧跟着可执行文件名 program,然后列出所有需要编译的源文件名。

3. 运行可执行文件编译完成后,可执行文件 program 就会生成,可以通过以下命令运行该可执行文件:```./program```二、使用 ifort 编译器编译 Fortran 多个源文件1. 编写多个 Fortran 源文件与使用 gfortran 编译器相似,使用 ifort 编译器编译 Fortran 多个源文件也需要首先编写多个源文件,这些文件的后缀通常为 .f90 或 .f95。

假设我们有三个源文件分别为 m本人n.f90、sub1.f90 和 sub2.f90。

2. 使用 ifort 进行编译使用 ifort 进行编译时,可以通过以下命令将多个源文件编译为可执行文件:```ifort -o program m本人n.f90 sub1.f90 sub2.f90```同样地,-o 选项用于指定输出的可执行文件名,后面紧跟着可执行文件名 program,然后列出所有需要编译的源文件名。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
另一点关于声明的不同是Fortran有"等价声明":
integer a,b
equivalence(a,b)
使得a,b使用同一块内存。这样可以节省内存;有时可精简代码。如:equivalence(很长名 字的变量如三维数组的某个元素,a),之后使用a来编写程序就简洁多了。
2、基本输入输出
输入:read(*,*) a
4、Fortran的基本程序结构
先看一看所谓的"Hello Fortran"程序。
program main
!程序开始,main是program的名字,完全自定义
write(*,*) "Hello" !主程序
stop
!终止程序
end [program[main]] !end用于封装代码,表示代码编写完毕。[ ]中的内容可省略, 下同。
Fortran 90:自由格式(free format), 扩展名:.f90
(1)以"!"引导注释;
(2)每行可132字符,行代码放在每行最前面;
(3)以&续行,放在该行末或下行初。
以下都是讨论Fortran 90。
3、Fortran的一些特点,和C的一些不同
其实很多,在下面涉及具体方面时可以看到。这里只是大致提一些。
ห้องสมุดไป่ตู้
Page 3 of 19
登录 注册
2015-04-18
Fortran语言F77和F90的区别+F90简明教程
1、数据类型,声明及赋初值首 页
阅览室
馆友
(1)integer: 短整型kind=2, 长整型kind=4
我的图书馆
integer([kind=]2) :: a=3
如果声明成integer:: a,则默认为长整型。
三、流程控制
1、运算符
(1)逻辑运算符
== /= > >= < <=
!Fortran 90用法
.EQ. .NE. .GT. .GE. .LT. .LE. !Fortran 77用法
/content/11/1008/23/7562873_154470765.shtml
(1)不分大小写
(2)每句末尾不必要写分号
(3)程序代码命令间的空格没有意义
(4)不像C,Fortran不使用{ }
(5)数据类型多出了复数和逻辑判断类型。比如复数类型
complex :: a !声明复数的方法。复数显然方便了科学计算,满足了工程方面需求
a=(1.0,2.0) ! a=1+i
最新文章
(1) 基本 :
if(逻辑判断式) then
……
end if
如果then后面只有一句,可写为
if(逻辑判断式) ……
!then和end if可省略
(2) 多重判断:
if(条件1) then
……
else if(条件2)then …… else if (条件3)then ……
2、Fortran的主要版本及差别
按其发展历史,Fortran编译器的版本其实很多。现在在广泛使用的是Fortran 77和 Fortran90。Fortran 90在Fortran 77基础上添加了不少使用的功能,并且改良了F77编 程的版面格式,所以编程时推荐使用F90。鉴于很多现成的程序只有F77版本,有必要知道F77 的一些基本常识,至少保证能够看懂F77程序。以下是F77和F90的一些格式上的区别。
complex([kind=]4) b (4)character character([len=]10) c !len为最大长度 (5)logical logical*2 :: d=.ture. (等价于logical(2)::d=.ture.) (6)自定义类型type:类似于C中的struct Fortran 77中给变量赋初值常用DATA命令,可同时给多个变量赋初值
!"::" 在声明并同时赋初值时必须要写上;类型名后面有形容词时也必须保留::;其他情况可 略去
!所谓形容词,可以看一下这个。比如声明常数 real,parameter :: pi=3.1415926 。parameter就是形容词。 (2)real:单精度kind=4(默认),双精度kind=8
real([kind=]8) :: a=3.0 还有指数的形式,如1E10为单精度,1D10为双精度 (3)complex 单精度和双精度
(2011-08-25 11:47:59) 转载
标签: 分类: Fortran
it
一、概述
1、名词解释
Fortran=Formula Translator/Translation,一看就知道有什么特色了:可以把 接近数学语言的文本翻译成机械语言。的确,从一开始,IBM设计的时候就是为了方便数值计算 和科学数据处理。设计强大的数组操作就是为了实现这一目标。Fortran奠定了高级语言发展 的基础。现在Fortran在土木工程和机械领域应用很广。
data a,b,string /1, 2.0, 'fortran'/
与C不同的是,Fortran中变量不声明也能使用,即有默认类型(跟implicit命令有关)。按 照默认的定,以i,j,k,l,m,n开头的变量被定义为integer,其余为real。取消该设置需在程 序声明部分之前implicit none。彭国伦建议一般都使用该语句。
!cycle 相当于C里的continue
end if
! Compute area. The ** means "raise to a power."
area = 2 * pi * (radius**2 + radius*height)
! 指数运算比C方便
! Write the input variables (radius, height)
Fortran 77: 固定格式(fixed format),程序代码扩展名:.f或.for
(1)若某行以C,c或*开头,则该行被当成注释;
(2)每行前六个字符不能写程序代码,可空着,或者1~5字符以数字表明行代码(用作格式化 输入出等);7~72为程序代码编写区;73往后被忽略;
(3)太长的话可以续行,所续行的第六个字符必须是"0"以外的任何字符。
!键盘输入。isotat的值用判断输入成
! If radius and height could not be read from input,
/content/11/1008/23/7562873_154470765.shtml
Page 2 of 19
登录 注册
! and output (area) to the screen.
write (*,'(1x,a7,f6.2,5x,a7,f6.2,5x,a5,f6.2)') & !"&"表示续行。这里还显示了格式化输出
'radius=',radius,'height=',height,'area=',area
yn = ' ' yn_loop: do
万能在线查询(值得收藏)
安卓智能手机操作说明
世界上最不能将就的事情就是结婚,你...
教你炒面秘诀,以后终于不用天天吃泡... 最感动的一句话,送给我爱的人
五十岁的男人和女人
【奇闻异录】?奇闻异事500件(46)
更多>>
/content/11/1008/23/7562873_154470765.shtml
Fortran语言F77和F90的区别+F90简明教程
首页
阅览室
馆友
我的图书馆
搜文章 找馆友
Page 1 of 19
登录 注册
Fortran语言F77和F90的区别+F90简明教程
收藏人:北极闲人 2011-10-08 | 阅:4099 转:28 | 来源
| 分享
Fortran语言F77和F90的区别+F90简明教程
2015-04-18
Fortran语言F77和F90的区别+F90简明教程
(6)多出了乘幂运算(**)首。页乘幂除了整阅数览还室可以是实馆数友形式。如开我方的,图开书立馆方
a=4.0**0.5,a=8.0**(1.0/3.0)。
(7)数组有一些整体操作的功能;可以方便的对部分元素进行操作
(8)有些情况下可以声明大小待定的数组,很实用的功能
end do yn_loop
!结束内嵌do循环
end do interactive_loop
end program cylinder
Fortran程序的主要结构就是这样了。一般还会有些module的部分在主函数前,函数在主函数 后。
二、数据类型及基本输入输出
/content/11/1008/23/7562873_154470765.shtml
艺术极品*犀角雕 上 犀角雕精品 二 红酒瓶塞的创意 废物利用红酒瓶木塞制... 自制“醋蛋液”的神奇功效 牛人组装家用太阳能发电站全过程(转) ... 一张图告诉你夫妻怎样成为一辈子的情人
更多
热门文章
赚钱的5道铁律,不是每个人都懂 裸女美姿
朱子治家格言
33款家居隐身术,探秘隐形门里的世界! 【创意面食】烙饼做法专辑
2015-04-18
Fortran语言F77和F90的区别+F90简明教程
首页
阅览室
! then cycle through the loop.
馆友
我的图书馆
if (ierr /= 0) then
write(*,*) 'Error, invalid input.'
相关文档
最新文档