第2章 Fortran语法基础

合集下载

fortran教程

fortran教程

fortran教程Fortran是一种编程语言,用于科学和工程计算。

它具有高性能和可靠性,适用于大规模的数值计算和数据处理。

Fortran的基本语法是由一系列语句组成的程序。

每个语句都以一个数字标签开头,可用于控制程序的执行顺序。

以下是Fortran的一些基本语法和常用功能。

1. 变量和数据类型Fortran支持多种数据类型,包括整数(Integer)、实数(Real)和字符(Character)。

变量声明可以在程序的开头部分完成,例如:```fortranINTEGER :: iREAL :: xCHARACTER(len=10) :: name```注意,每个变量声明必须以两个冒号(::)开头。

2. 数学运算Fortran提供了一系列的数学运算符,用于执行基本的算术和逻辑运算,例如加法(+)、减法(-)、乘法(*)、除法(/)和求余(MOD)。

运算符的使用与其他编程语言相似。

3. 控制结构Fortran支持常用的控制结构,例如条件语句(IF-ELSE)和循环语句(DO LOOP)。

条件语句可以根据条件来执行不同的代码块,例如:```fortranIF (i > 0) THENPRINT*, 'i is positive'ELSEPRINT*, 'i is non-positive'END IF```循环语句可以根据条件重复执行一部分代码,例如:```fortranDO i = 1, 10PRINT*, iEND DO```上述代码将打印出1到10的数字。

4. 数组和矩阵运算Fortran支持多维数组和矩阵运算。

声明数组时可以指定维度和元素类型,例如:```fortranREAL, DIMENSION(3,3) :: matrix```然后,可以使用多个索引访问数组元素,例如:```fortranmatrix(1,2) = 3.14```这将给数组中的第1行第2列的元素赋值为3.14。

fortran 语言编程

fortran 语言编程

fortran 语言编程Fortran 语言编程Fortran(Formula Translation)是一种面向科学计算和工程计算的高级编程语言。

它于1957年诞生于IBM,是最早被广泛采用的科学计算语言之一,目前已经发展到第四个版本(Fortran 2018)。

Fortran是一种编译型语言,它通过编写源代码并使用编译器将其转换成机器语言来执行。

本文将详细介绍Fortran语言的基础知识、语法规则和常用的编程技巧,以帮助读者了解和掌握这门强大的科学计算语言。

第一步:安装Fortran编译器要开始编写和运行Fortran程序,首先需要安装Fortran编译器。

有多种Fortran编译器可供选择,其中最常用的是GNU Fortran(gfortran)和Intel Fortran Compiler(ifort)。

可以从官方网站或其他可信的来源获得这些编译器的安装程序,并按照提示进行安装。

第二步:编写并编译Fortran程序在开始编写Fortran程序之前,需要了解Fortran的基本语法规则。

Fortran使用固定格式或自由格式,固定格式的源代码按照列格式排列,每行的前6列被保留用于行号和注释,从第7列开始是可执行代码。

自由格式没有列格式的限制,更加灵活,但在编译阶段需要指定自由格式。

下面是一个简单的Fortran程序示例,用于计算并输出两个数的和:fortranprogram additionimplicit noneinteger :: a, b, sumprint *, "Enter two numbers:"read *, a, bsum = a + bprint *, "The sum is:", sumend program addition将以上代码保存为一个以.f90为后缀名的文件(例如addition.f90),然后使用编译器将其编译成可执行程序。

chapter2FORTRAN基本语句

chapter2FORTRAN基本语句

第四节
表控输入语句
在应用READ语句进行表控输入操作时,输入的数据应 该符合READ语句中的要求,即输入的数据个数应该与 READ语句中的变量个数一致;输入数据的类型应与 READ语句中相应变量的类型一致。如果输入的数据不 够,READ语句将会等待用户继续输入,直到输入所需 的全部数据为止。如果输入的数据过多,则多余的数 据不起作用。如果输入的数据与READ语句中的变量类 型2 bx c 0
(设Δ>=0)
4ac
x
1, 2

b
b
2
2a
第三节
赋值语句
三、赋值过程的类型转换作用 □在不同的类型之间进行转换是有限制条件的:数值型以及逻辑 型数据之间允许相互赋值转换;数值型数据与字符型数据之间则 不允许进行直接赋值转换,需要使用专用的字符函数;逻辑型数 据不允许与字符型数据之间进行直接或间接的转换。 □整型数据与实型数据的相互转换遵循如下规则:整型向实型转 换时,保持数值的大小不变;实型向整型转换时,直接将实型的 小数部分截去。 □在由整型数据向逻辑型数据转换时,逻辑型数据的值由整型数 据的奇偶来决定:当整型数据为奇数时,转换成的逻辑型数据的 值为TRUE;当整型数据为偶数(包括0)时,转换成的逻辑型数据 的值为FALSE。 □在由实型数据向逻辑型数据转换时,实型数据会首先转换成整 型,然后再由整型向逻辑型转换。
⑹ 类型说明时,可进行变量的初始化,此时一定要 注意变量名前的::符号不可省略。 real::score=89.5
Parameter 语句
(1)功能:用一个符号代表一个常量,称为符号常量(常
数),这样在程序中用到这个常数时直接写这个常数名即可,
从而给编写程序、阅读程序以及修改程序带来方便。 (2)写法: Parameter(PI=3.14159,g=9.81) (3)位置:位于所有可执行语句之前。符号常量的定名规则 与定变量名相同。名字本身隐含类型,也遵循I-N规则。可以 用类型说明语句定义符号常量的类型。例: INTEGER P

FORTRAN知识点总结

FORTRAN知识点总结

F O R T R A N第2章FORTRAN90基础知识:程序单元的概念:fortran90程序是一种分块形式的程序,整个程序由若干程序单元块组成。

每个程序只有一个主程序单元。

各单元体的程序体形式上相同。

程序单元可以是主程序、子程序(外部过程或内部过程)、模块MODULE (供其他程序单元引用即把该程序单元内的全部语句复制到程序单元中)或块数据程序单元BLOCK 。

语言元素:指在程序设计中用到的基本成分,如字符集、常量、变量、记号(标号、关键字、名字、常数、运算符和定界符)以及其他的基本结构等。

字符集:英文字母、阿拉伯数字、下划线、21个特殊字符($和?没有规定用法)。

数据结构:整型INTEGER (34-2下划线后面是种别参数),n 位字长的计算机的数据表示范围一般为12~211-+---n n ,种别参数由内在询问函数KIND 送回,种别值提供的最小范围由内在函数SELECTED-INT-KIND 送回,表示十进制幂的范围由内在函数RANGE 送回;实型REAL ,小数形式和指数形式;复型COMPLEX (种别类型参数值取实部与虚部中较大者);字符型CHARACTER,由一对单撇号或双撇号之间的字符序列组成;逻辑型LOGICAL。

派生数据类型TYPE;数组INTEGER,DIMENSION(1,50)::A,可直接对数组元素进行运算如3*A,SQRT(A);字符子串,在字符串CHARACTER(LEN=80)::ROW中,ROW(1:3)就表示字符串ROW中第1到第3个元素组成的子串。

变量名的命名规则:不能超过31个字符;组成成分是字母、数字、下划线;第一个字符必须是字母。

第3章基本语句:类型说明语句:类型说明(种别说明),属性说明::变量名表尽量避免把两个实数作相等或不相等的比较。

淘汰隐式说明IMPLICIT NONE种别说明:种别参数即对可移植数据精度和范围进行选择的机制KIND(X) 返回变元X的种别参数值SELECTED-REAL-KIND(n,m) 产生一个种别值,它表示某一精度和范围。

fortran90第二章

fortran90第二章

2.1.2 符号常量
£ 符号常量,是用一个标识符来代表一个常量。符号常量常用 PARAMETER语句来定义。例如: PARAMETER (PI=3.1416,M=10)
£ 该语句定义了两个符号常量PI和M,在该程序单位内,PI代表3.1 416,M代表10
£ PARAMETER为特有的常量定义标识,要定义的项必须放在() 内,如果有多项,项之间要用逗号隔开。
FORTKAINND值中字变节量二的进位类型精度的定义取有值三范种围(方绝对式值:)
1.
类型说4 明语4句
8
8
32 64
7位 15位
0,[10-38,10+38] 0,[10-308,10+308]
£格式为:类型说明符 变量名1,变量名2…
说明:大于最大值,产生上溢错,小于最小值,按0处理。
£其中类型说明字为:
£ 符号常量与变量有着本质的区别,PARAMETER语句是非执行语 句,变量对应于一个存储单元,程序执行时,可将表达式的值存 放到变量所对应的存储单元中(即给变量赋值)或从变量所对应 的存储单元中取出相应的值。 符号常量不能当变量使用
例1 输入圆柱体的半径和高,求圆柱体的表面积和体积
PROGRAM fex REAL R, H, S, V PARAMETER (PI=3.141593) PRINT *, “请输入半径和高:” READ *, R, H S=PI*R*2*H V=PI*R**2*H PRINT *, “表面积为:”, S PRINT *, “体积为:”, V END
SIN(x)
实型 求正弦
sinx
SQRT(x)
实型 求平方根 √x
TAN(x)
实型 求正切

Fortran语言基本语法

Fortran语言基本语法

Fortran语⾔基本语法a、Fortran 之基本规定:在Fortran的规定中,程序的开始需先宣告变量形式,接着才能⽤这些变量来写程序内容,再整个程序中的第⼀⾏必须空⽩,除⾮键⼊英⽂字母c或*⽤以表⽰那⼀列为说明项⽽⾮实际之计算式⼦。

第⼆⾏⾄第五⾏为地址⾏,可⽤数字标⽰其地址,⽤以执⾏程序时控制之⽤。

第六⾏⽤以填⼊⼀个⾮零的数字或字母表⽰连结上⼀列的式⼦。

第7⾏⾄72⾏则为程序主体之所在,若不⼩⼼在72⾏之后键⼊程序Fortran将不于理会。

再程序的最后⼀列⽤ end命令告知程序终了。

b、变量(Variable)Fortran语法中的变量相当于函数上变量,但其种类则更多,举凡复数(complex)、整数(integer)、实数(real)、逻辑(logical)和字符串(character)等等。

对于变量的规定是变量的第⼀个字母为英⽂字母,其长度最长为6个字,除刚刚说的第⼀个字之外,其余的可为数字或字母,以下为⼏个简单范例: Integer count,pg1real time,po2pc、运算符号与内定函数:Fortran 基本的运算符号如下:+加法;-减法;*乘法;/ 除法**平⽅;**(n) n次⽅除了上列之基本运算符号之外,数值计算上常⽤之函数如三⾓等等亦以写成内定含式,常⽤的以下⼏项:log 对数函数;exp 指数函数;sin、cos、tan、cot、sec和csc等三⾓函数;abs 绝对值;asin、acos、atan、acot、asec和acsc等反三⾓函数。

D、控制结构:结构化Fortran有⼀些控制的结构,关系控制即是其中之⼀种,⽤以⽐较两变量之间关系,包含有:.lt. 表⽰⼩于.gt. 表⽰⼤于.eq. 表⽰等于.le. 表⽰⼩于或等于.ge. 表⽰⼤于或等于.ne. 表⽰不等于另⼀种重要的控制为逻辑控制,包含有:.not. .not. p => 若p为⾮真则为真.and. p .and. q => p和q为真则为真.or. p .or. q => p或q其⼀为真则为真.eqv. p .eqv. q => p和q同为真或同为⾮真则为真.neqv. p .neqv. q => p或q之中⼀为真⼀为⾮真则为真e、输⼊与输出结构:> Fortran 经常会有⼀些数值需要输⼊或计算的值需要输出,这时 Fortran 便提供了⼀些格式码好让使⽤者将欲输⼊或输出的数值针对其变量的特性作较佳的安排设计,兹举例如下,其中输出之资料格式完全相同:a、write(*,10) i,j,k10 format (1x,2I5,I3)b、assign 10 to ifmt10 format (1x,2I5,I3)write (*,ifmt) i,j,kc、write (*,'(1x,2I5,I3)') i,j,kd、character*11 fmtchfmtch='(1x,2I5,I3)'write (*,fmtch) i,j,k其中X表⽰空格之意,1x即是空⼀格, write为输出的指令,若改为 read 则为输⼊指令,I为整数的格式码, 2I5 表⽰输出的总位数为五,⽽这样的格式重复两次,其余尚有不同之各种格式码,常⽤的有:1. F 格式码,⽤于实数变量,其⼀般型态为 rFw.d ,其中F表实数,r为重复次数,w为总位数,⽽d为⼩数字数。

2FORTRAN基本语句

2FORTRAN基本语句

第一节
类型说明语句
I-N规则
(3)隐含说明变量的类型
根据变量名称的第一个字母自动决定变量的类型, 根据变量名称的第一个字母自动决定变量的类型, 变量名称的第一个字母自动决定变量的类型 且仅适用于整型和实型变量。 且仅适用于整型和实型变量。 IMax,Number,JOB,COUNT,TOTAL, 例 J,IMax,Number,JOB,COUNT,TOTAL,BOOK 最好不用这种不经说明就使用变量的方法。 最好不用这种不经说明就使用变量的方法。好的 程序员在编写程序时都会先对变量进行说明才使用变 这样能清楚了解程序执行时的内存使用情况, 量,这样能清楚了解程序执行时的内存使用情况,同 时也可避免很多“人为错误” 时也可避免很多“人为错误”。
第三节
赋值语句
三、赋值过程的类型转换作用 在一个算术赋值语句V=e V=e中 赋值变量( 在一个算术赋值语句V=e中,赋值变量(V)和表达式 的类型既可以相同,也可以不相同。Fortran中对于赋 (e)的类型既可以相同,也可以不相同。Fortran中对于赋 值时的类型转换问题作了如下规定。 值时的类型转换问题作了如下规定。 如果变量V与表达式e的类型相同,则直接进行赋值, □如果变量V与表达式e的类型相同,则直接进行赋值, 不需进行类型转换。 不需进行类型转换。 如果变量V与表达式e的类型不同, □如果变量V与表达式e的类型不同,则首先进行表达式 的求值,然后求值的结果转换为赋值变量的类型。 的求值,然后求值的结果转换为赋值变量的类型。 例1、交换A,B值; 交换A 例2、 计算
答案: 、 答案:1、2.0*SIN(3.14/4)/3.0 ( ) 2、(Sin(4.0)+cos(10*3.14/180))*exp(2.5)/ 、 (Sqrt(2.0)+abs(a*x)+log(3.0*5))

第2章Fortran语法基础

第2章Fortran语法基础
• 可执行程序单元,在程序中主要用来执行一个完 整的功能。可执行程序单元主要包括以下三种: 主程序单元、外部函数子程序单元和外部子例行 子程序单元。
• 不可执行程序单位,在程序中主要用来为其他程 序单元提供定义。不可执行程序单元有两种:模 块程序单元和数据块程序单元。
2.5 命名方式
• 在Fortran中为对象命名有一定的要求。简单的说, Fortran 77的命名要求和Fortran 90/95的命名要求是不同 的。本节主要介绍不同标准下的命名方式。
• 在Fortran 77标准中,程序和变量等对象的名字是由不多 于6个字符(包括英文字母A-Z、a-z和数字0-9)组成的字 符段。同时,对象名字的第1个字符必须是字母,名字的有 效使用范围原则上仅限于一个程序单元之中(内部过程除 外)。下面的代码段演示了Fortran 77标准的对象命名方 式。
• 在C语言程序中,需要使用“/*”和“*/”这样的特殊标 记来界定注释的内容而不管行边界。采用这种方式进行注 释时经常出现的错误就是漏掉结束的界定符,使得后面的 语句也变成了注解;好处也很明显,就是能够方便的实现 代码的块注释。
• 而Fortran 95语言中的“!”,Ada语言中的“-”,或是 C++语言中的“//”,注释都是在行的任意位置开始直到行 的末尾结束。这种做法更为合理、不容易出错,但要实现 大段代码的整体注释就不是特别方便了。
• INTEGER 0B
!错误
• INTEGER C-10
!错误
• REAL sin
!正确
• REAL test:real
!错误
2.6 程序单元和语句顺序
• 程序单元是程序中的基本组成部分,了解程序单 元的用途可以加深对计算机程序的理解。本节主 要介绍Fortran程序中的程序单元和句顺序的基本 概念及相关规定。Fortran中的程序单元分为两大 类:可执行程序单元和不可执行程序单元。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2.3 空格的使用
• 在Fortran 90/95标准中,空格不能出现在语句和变量名中间;除 了在字符串常量或是输入输出中外,不代表任何具体意义。其主 要作用是分隔语句和变量,使代码更为易读。在国外的一些科学 研究和工程设计机构,如美国航空航天局(NASA)等,在开发科 学计算程序时对空格的使用有一些很好的规定。 在程序中要确保不在Fortran定义的语句或变量名中出现空格,不 要尝试通过空格来对变量名进行区别; 在编写公式时,尽量通过空格来使公式的书写和阅读更为清晰易 懂; 在编写大段代码时,可以使用整行的空格来对代码段进行功能划 分。 建议在编写程序时,尽量遵守这些规定。下面来看一段使用空格 来确分四则运算的实例,先给出不使用空格进行区分的范例: Y=X+A*B/C-(0.5+C*D)**2
2.6 程序单元和语句顺序
• 程序单元是程序中的基本组成部分,了解程序单 元的用途可以加深对计算机程序的理解。本节主 要介绍Fortran程序中的程序单元和句顺序的基本 概念及相关规定。Fortran中的程序单元分为两大 类:可执行程序单元和不可执行程序单元。 • 可执行程序单元,在程序中主要用来执行一个完 整的功能。可执行程序单元主要包括以下三种: 主程序单元、外部函数子程序单元和外部子例行 子程序单元。 • 不可执行程序单位,在程序中主要用来为其他程 序单元提供定义。不可执行程序单元有两种:模 块程序单元和数据块程序单元。

• •

2.2 字符集
• “字符集”是指能够用于编写Fortran程序的所有字符及符号。不 是所有的外文字母或数字符号都能被某一高级计算机语言接受, 每一种高级计算机语言都会规定它所能使用的字符。Fortran中允 许使用的基本字符主要分为两大类:文字字符和特殊字符。文字 字符主要包括26个英文字母、10个自然数字和下划线。如表所示。



• •
2.1.3 兼顾两种格式的代码写法
• 由于现存大量旧的Fortran代码(Fortran 77程序)都是采用固定 格式编写的,在一些编译器上可能会由于格式的问题而出现编译 错误。因此,有必要提供一种能够兼顾两种格式的代码写法,以 便于将固定格式的代码转换为符合自由格式要求的代码。能够兼 顾两种格式的代码在书写时需要注意的要点有以下几条: 开始列。除注释行外的每一行代码只能从第7列开始编写。这主要 是由于自由格式中并没有规定代码编写的起始列,因此可以套用 固定格式的规定。 注释行。标明注释行的符号只能用感叹号“!”,并且应该写在第 一列。注释行必须单独占一行,不能出现其他语句的行尾。 续行方式。续行标志只能使用符号“&”。在接续的两行中,前一 行应该在72列后、132列前添加续行标志;后一行则应该在第6列 书写续行标志。 空格使用。在Fortran 90/95标准中,语句和变量中间不允许出现 空格。因此,兼顾两种格式的源代码中也不允许在语句和变量中 出现空格。
2.1.1 固定格式(Fixed )
• 采用固定格式书写的Fortran源代码,文件扩展名 为*.F或*.FOR。在固定格式中,Fortran标准规定 了若干个列范围。每一个列范围都有自己的用途 和约定,程序必须严格按照这些约定进行编写。
2.1.2 自由格式(Free Format)
2.1 程序书写格式
• 在1.6小节中,程序HELLO已经展示了Fortran的一 种源代码书写格式,即自由格式(Free Format), 这种格式是Fortran 90/95标准中的一大特色。同 Fortran 77标准中的旧格式,即固定格式(Fixed Format)相比,取消了在源代码书写上的诸多限 制,程序编制起来更为灵活。两种格式书写的源 代码通过文件扩展名来进行区别。
• • • • •
2.4 注释格式
• 尽管注释在编译过程中是一定会被编译器忽略的,但却是 源代码文件中十分重要的一部分。因为注释是保证源代码 具有可读性的一个非常重要的手段。在不同的高级计算机 语言中,表示注释的方法各有不同,甚至在一种语言里, 也可能有几种引入注释的方法。不同的注释方法各有优缺 点,在使用中应该根据实际情况进行选择。 • 在C语言程序中,需要使用“/*”和“*/”这样的特殊标 记来界定注释的内容而不管行边界。采用这种方式进行注 释时经常出现的错误就是漏掉结束的界定符,使得后面的 语句也变成了注解;好处也很明显,就是能够方便的实现 代码的块注释。 • 而Fortran 95语言中的“!”,Ada语言中的“-”,或是 C++语言中的“//”,注释都是在行的任意位置开始直到行 的末尾结束。这种做法更为合理、不容易出错,但要实现 大段代码的整体注释就不是特别方便了。
• 采用自由格式书写的Fortran源代码,文件扩展名为*.F90。自由格式是Fortran 90标 准中的一大特色,废除了固定格式中的许多限制。它并不规定程序代码中每一行第几 列字符的具体作用,在源代码的编写上显得相当自由。同固定格式相比,自由格式主 要在以下几个方面进行了改进。 行的定义。在自由格式中每行可以书写132个字符。程序语句的位置没有了只能从第7 列后开始书写的固定约定,可以在任意一列开始书写。同一行中可以顺序书写多条程 序语句,语句之间用分号“;”进行分隔。 注释行的定义。在自由格式中,惊叹号“!”后的字符均被视为注释。但是,字符串 中的“!”出外,如“PRINT *, ‘Hello! Fortran 90/95’”中,“Fortran 90/95’”不会被认为是注释。 续行的定义。在Fortran 90/95标准中规定,当程序代码中的一行超过132个字符时, 至多可以有39个续行。续行标志固定为“&”。当一行代码的最后一个字符为“&”时, 则表示下一行与本行接续;当一行代码的第一个字符为“&”时,则表示本行与上一 行接续。 行号的定义。在Fortran 90/95标准中规定,行号只需写在代码行的最前面即可。 空格的应用。Fortran 90/95标准中规定,语句和变量名中间不能有空格。例如,关 系运算符“==”不能写成“= =”;“ABS(-2.0)”与“AB□S(-□2.0)”作用不再相 同,“AB□S(-□2.0)”不能正常通过编译。
第2章 Fortran语法基础
• Fortran从诞生至今,已经走过了长达50余年的发 展历程中。在这一发展历程中,相关的语言标准 先后制定了5部。具体的语法也随着标准的变更而 变化着。在每一个新标准中,前一个标准中的一 些旧语句、语法或是被废弃、或是建议减少使用, 如Fortran 90标准中就建议减少使用“COMMON” 语句;或者新增了一些新的语句,如Fortran 95 标准中的“FORALL”语句。本章将主要介绍 Fortran的基本语法。
2.5 命名方式
• 在Fortran中为对象命名有一定的要求。简单的说, Fortran 77的命名要求和Fortran 90/95的命名要求是不同 的。本节主要介绍不同标准下的命名方式。 • 在Fortran 77标准中,程序和变量等对象的名字是由不多 于6个字符(包括英文字母A-Z、a-z和数字0-9)组成的字 符段。同时,对象名字的第1个字符必须是字母,名字的有 效使用范围原则上仅限于一个程序单元之中(内部过程除 外)。下面的代码段演示了Fortran 77标准的对象命名方 式。 • INTEGER 0B !错误 • INTEGER C-10 !错误 • REAL sin !正确 • REAL test:real !错误
相关文档
最新文档