fortran语法手册
fortran if语句
fortran if语句
逻辑数据类型:TRUE、FALUE。
逻辑常数:.TRUE.、.FALUE.数值的两边需要有句点以区别于变量名。
逻辑变量:保存逻辑数据类型数值的变量。
声明方式:与算术计算相似,逻辑计算是用赋值语句来完成的,其形式为:等号右边的表达式可以是任何有效的逻辑常量、逻辑变量和逻辑运算符的组合。
逻辑运算符是数字、字符或逻辑数据的运算符,产生逻辑结果。
逻辑运算符有两种基本类型:关系运算符和组合运算符。
运行示例:关系运算
符在所有的算术运算符计算之后才计算。
在操作级别中,组合逻辑运算符是在所有的算术运算和所有的关系运算计算完之后才进行计算。
表达式中运算符的计算顺序如下:与算术运算符一样,圆括号可以用来改变默认的计算顺序。
分支是允许跳过其他代码段而选择执行特定代码段(称为程序块)的Fortran语句。
主要有IF语句和SELECT CASE结构。
IF结构块的形式:注意:结构形式:可以给IF结构块一个指定名称。
形式为:注意:上述IF结构块还有另一种可供使用的形式。
它只是单条语句,形式是:逻辑IF 语句这种形式与在IF块中只带有一个语句的IF结构块等价。
SELECT CASE结构是分支结构的另一种形式。
一般形式:注意:由于四舍五入误差会引起应该相等的两个变量在测试相等性时失败的问题,所以取代的方法是,应注意在IF结构中将测试实数变量的相等性问题改为测试近似相等性。
LOGICAL语句是一种类型声明语句,声明逻辑数据类型的变量。
LOGICAL变量的数值可以在声明时初始化。
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语法手册
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字符位以后不能有内容.4 FORTRAN77关系运算符。
fortran语言语法
FORTRAN是世界上最早出现的高级编程语言,是工程界最常用的编程语言,它在科学计算中(如航空航天、地质勘探、天气预报和建筑工程等领域)发挥着极其重要的作用。
经过40多年的发展,伴随着FORTRAN语言多次版本的更新及相应开发系统的出现,其功能不断完善,最新版本的开发系统几乎具备了VC、VB的所有特点,如图形界面编程、数据库等。
目前,工科院校开设的计算机编程语言课首选仍然是FORTRAN :<说实话,从科技发展的趋势来说这不是好事。
您可以设想一下,如果需要用鹅毛笔抄写大量的古籍是什么感受!强烈建议阅读《发掘C#特性赋予科学计算项目以威力》1 FORTRAN77四则运算符+ - * / ** (其中**表示乘方)在表达式中按优先级次序由低到高为: +或-→*或/→**→函数→()2 FORTRAN77变量类型隐含约定:I-N规则凡是以字母I,J,K,L,M,N六个字母开头的,即认为是整型变量,其它为实型变量。
用类型说明语句确定变量类型:可以改变I-N规则用IMPLICIT语句将某一字母开头的全部变量指定为所需类型如IMPLICIT REAL (I,J)三种定义的优先级别由低到高顺序为:I-N规则→IMPLICIT语句→类型说明语句,因此,在程序中IMPLICIT语句应放在类型说明语句之前。
数组的说明与使用使用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))使用DATA语句给数组赋初值变量表中可出现变量名,数组名,数组元素名,隐含DO循环,但不许出现任何形式的表达式:例如DATA A,B,C/,,DATA A/,B/,C/DATA A,B,C/3*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字符位以后不能有内容。
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为⼩数字数。
fortran语法手册
1F O R T R A N77四则运算符+ - */ ** (其中**表示乘方)在表达式中按优先级次序由低到高为:+或-→*或/→**→函数→()2 FORTRAN77变量类型隐含约定:I-N规则凡是以字母I,J,K,L,M,N六个字母开头的,即认为是整型变量,其它为实型变量。
如IMPLICIT REAL (I,J)三种定义的优先级别由低到高顺序为:I-N规则→IMPLICIT语句→类型说明语句,因此,在程序中IMPLICIT语句应放在类型说明语句之前。
数组的说明与使用使用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))使用DATA语句给数组赋初值变量表中可出现变量名,数组名,数组元素名,隐含DO循环,但不许出现任何形式的表达式:例如DATA A,B,C/,,DATA A/,B/,C/DATA A,B,C/3*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字符位以后不能有内容。
第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中的程序单元分为两大 类:可执行程序单元和不可执行程序单元。
fortran循环结构及基本语句
fortran循环结构及基本语句Fortran中的循环结构包括DO循环和DO WHILE循环。
基本语句包括赋值语句、条件语句和IO语句。
1.DO循环结构:DO循环结构用于重复执行一段代码块,语法如下:DO variable = start, end, step!代码块ENDDO在循环开始前,将变量初始化为start的值,然后执行代码块。
然后将变量增加step的值,并检查是否达到end的值,如果没有达到则继续执行代码块,直到达到end的值为止。
2.DOWHILE循环结构:DOWHILE循环结构用于在满足条件时重复执行一段代码块,语法如下:DO WHILE (condition)!代码块ENDDO在每次循环开始前,检查condition是否为真,如果为真则执行代码块,然后再次检查condition。
只有当condition为假时,循环才会结束。
3.赋值语句:赋值语句用于将一个值赋给一个变量,语法如下:variable = expression可以使用算术运算符和函数来计算expression的值,并将结果赋给变量。
4.条件语句:条件语句用于根据条件选择执行不同的代码块,常用的条件语句有IF语句和SELECTCASE语句。
-IF语句的语法如下:IF (condition) THEN!代码块1ELSE IF (condition) THEN!代码块2ELSE!代码块3ENDIF根据condition的值选择执行代码块1、代码块2或代码块3-SELECTCASE语句的语法如下:SELECT CASE (expression)CASE (value1)!代码块1CASE (value2)!代码块2CASEDEFAULT!代码块3ENDSELECT根据expression的值选择执行相应的代码块,如果没有匹配的值,则执行默认的代码块。
5.IO语句:IO语句用于输入和输出数据,常用的IO语句有WRITE和READ语句。
Fortran语法(中级)
Fortran语法(中级)!-----------------------------------------------------------------------EXTERNAL属性和哑过程 (哑元为外部过程,即哑过程)指定EXTERNAL语句或属性说明实元实际上是外部过程类型定义语句:类型,EXTERNAL :: 外部函数名[,外部函数名]…或EXTERNAL语句:EXTERNAL [外部函数名][,⼦程序名][,块数据名]…哑元也可以是⼀个过程,这时作为哑元的过程称为哑过程。
(⾄少两层调⽤)例如:!-----------------------------------------------------------------------Programm mainReal x,yExternal Plus !外部过程名作实元,必须⽤External说明,或者具有External属性x=1.0 ; y=2.0Print,* Calculate(x,y,Plus) !调⽤Calculate函数,实元为外部过程PlusEnd Program mainReal Function Plus(a,b) !(第⼆层被调⽤的外部函数)Real, Intent(In) :: a,bPlus=a+bEnd Function PlusReal Function Calculate (x,y,func)Real, Intent(In) :: x,yReal, External func !类型定义语句, 说明哑元时⼀个外部过程, 也可以直接⽤External说明Calculate=func(x,y) !调⽤⾃定义的外部函数End Function Calculate!-----------------------------------------------------------------------或者将 Real, External func 改为接⼝程序:InterfaceReal Function Plus(a,b) !Plus被接⼝块说明为⼀个哑元,即⼀个哑过程Real, Intent(In) :: a,bEnd Function PlusEnd InterfaceINTENT属性 (过程的哑元说明)在类型定义语句中:类型,INTENT(意图说明符) :: 哑元名表或⽤INTENT语句: INTENT(意图说明符) :: 哑元名表意图说明符为以下字符串:IN 指明哑元仅⽤于向过程提供数据,过程的执⾏期间哑元不能被重定义或成为未定义的,相联合的实元可以是常数、变量、数组以及它们的算术表达式。
第2章 Fortran语法基础
• • • • •
2.4 注释格式
• 尽管注释在编译过程中是一定会被编译器忽略的,但却是 源代码文件中十分重要的一部分。因为注释是保证源代码 具有可读性的一个非常重要的手段。在不同的高级计算机 语言中,表示注释的方法各有不同,甚至在一种语言里, 也可能有几种引入注释的方法。不同的注释方法各有优缺 点,在使用中应该根据实际情况进行选择。 • 在C语言程序中,需要使用“/*”和“*/”这样的特殊标 记来界定注释的内容而不管行边界。采用这种方式进行注 释时经常出现的错误就是漏掉结束的界定符,使得后面的 语句也变成了注解;好处也很明显,就是能够方便的实现 代码的块注释。 • 而Fortran 95语言中的“!”,Ada语言中的“-”,或是 C++语言中的“//”,注释都是在行的任意位置开始直到行 的末尾结束。这种做法更为合理、不容易出错,但要实现 大段代码的整体注释就不是特别方便了。
2.1 程序书写格式
• 在1.6小节中,程序HELLO已经展示了Fortran的一 种源代码书写格式,即自由格式(Free Format), 这种格式是Fortran 90/95标准中的一大特色。同 Fortran 77标准中的旧格式,即固定格式(Fixed Format)相比,取消了在源代码书写上的诸多限 制,程序编制起来更为灵活。两种格式书写的源 代码通过文件扩展名来进行区别。
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 !错误
fortran 编程指南
fortran 编程指南英文回答:Fortran is a programming language that was developed in the 1950s and is still widely used today, especially in scientific and engineering applications. It stands for Formula Translation and was designed to be used for numerical and scientific computing. Fortran has evolved over the years and the latest version is Fortran 2018.One of the main advantages of Fortran is its efficiency in handling numerical computations. It has built-in support for arrays and mathematical functions, making it ideal for scientific calculations. Fortran also has a strong static typing system, which helps catch errors at compile-time and improves performance.Another benefit of Fortran is its extensive library of mathematical and scientific functions. These libraries provide a wide range of pre-written code for tasks such aslinear algebra, numerical integration, and solving differential equations. This saves programmers time and effort, as they don't have to write these functions from scratch.Fortran also has a long history and a large communityof users, which means there are plenty of resourcesavailable for learning and troubleshooting. There are numerous books, tutorials, and online forums dedicated to Fortran programming. This makes it easier for beginners to get started and for experienced programmers to find help when needed.One of the drawbacks of Fortran is its syntax, whichcan be seen as outdated compared to modern programming languages. It uses a fixed-format style, where each linehas a specific structure and indentation is not significant. This can make the code look less readable and harder to maintain.Furthermore, Fortran is not as versatile as some other languages when it comes to non-numerical tasks. It lacksbuilt-in support for string manipulation and file I/O operations, which can be limiting in certain applications. However, there are ways to work around these limitations by using external libraries or interfacing with other languages.In conclusion, Fortran is a powerful language for numerical and scientific computing, with a long history and a large community of users. It offers efficiency, extensive libraries, and plenty of resources for learning and troubleshooting. While its syntax may be seen as outdated, it remains a popular choice for scientific and engineering applications.中文回答:Fortran是一种编程语言,于1950年代开发,并且至今仍广泛应用于科学和工程领域。
Fortran语言快速学习指南
Fortran语言快速学习指南Fortran是一种高级程序设计语言,专门用于科学和工程计算。
它是最早的计算机编程语言之一,在科学计算领域一直具有广泛的应用。
本篇文章将提供一份Fortran语言的快速学习指南,帮助读者快速掌握该语言的基本概念和用法。
一、Fortran简介Fortran是一种编译型语言,最初于1957年由IBM公司开发。
它的名字源自“Formula Translation”的缩写,最早用于数值计算和科学研究。
Fortran的设计目标是简化数值计算的编程过程,提高程序的效率和可读性。
二、Fortran的基本语法1. 变量和数据类型在Fortran中,变量是用于存储数据的容器,每个变量都必须先声明后使用。
Fortran提供了多种数据类型,包括整型、实型、字符型等,用于存储不同类型的数据。
2. 数组Fortran中的数组是一种特殊的变量类型,可以同时存储多个值。
数组的声明方式为:TYPE, DIMENSION(下标范围) :: 数组名。
例如,声明一个包含10个整数的数组可以写作:INTEGER, DIMENSION(10) :: array。
3. 条件语句和循环Fortran提供了条件语句(IF语句)和循环结构(DO循环)来控制程序的执行流程。
条件语句根据某个条件的真假来选择不同的执行路径,而循环结构可以重复执行一段代码块多次。
4. 子程序和函数Fortran支持子程序和函数的定义和调用。
子程序用于执行一段特定的代码块,而函数则返回一个值给调用者。
子程序和函数的定义方式为:SUBROUTINE 子程序名和 FUNCTION 函数名。
三、Fortran的特性和优势1. 高效性:Fortran在科学计算领域具有很高的效率和性能优势。
它能够直接利用计算机硬件的特性,进行高速、大规模的数值计算。
2. 数值计算支持:Fortran提供了丰富的数值计算库和函数,方便进行复杂的科学计算。
这些库包括矩阵运算、线性代数、微分方程求解等。
Fortran95基本语法
Fortran95基本语法字符:Fortran不区分大小写Fortran 格式:自由格式和固定格式。
Fortran程序代码扩展名为:*.For 或*.F的文件就是指固定格式;以*.F90为扩展名的文件,就是自由格式。
à固定格式:规定了程序代码每一行中每个字段的意义。
第7~72个字符,是可以用来编写程序的字段。
每一行的前5个字符只能是空格或数字,数字用来作为“行代码”。
每一行的第6个字符只能是空格或“0”以外的字符。
à自由格式:叹号(!)后面的文本都是注释。
每行可以编写13 2个字符。
行号放在每行程序的最前面。
一行程序代码的最后如果是符号&,代表下一行程序会和这一行连接;如果一行程序代码的开头是符号&,代表它会和上一行程序连接。
Fortran的数据类型à整型(Integer)à浮点数(Real) à复数(Complex) à字符(Character)à逻辑判断(Logical)—True or FalseRemark: Visual Fortran安装好后,默认的安装目录C:\Program Files\Microsoft Visual Studio\DV98\bin下有一个Bitviewer程序可以用来表看各种数据格式实际在内存中的二进制数据。
Fortran的数学表达式()(括号)、**(乘幂)、*(乘法)or /(除法)、+(加法)or –(减法)à优先级(高à低).输入(Write)输出(Print)命令Fortran程序通常以Program描述来开头,Program后面还要接一个自定义的程序名称(这个名称可以完全自定义,不需要和文件名有任何关系)。
Fortran程序最后还要有End描述,表示程序代码写到这一行结束。
Write(*,*)命令:括号中的两个星号都有各自的意义,第一个星号代表输出的位置使用默认值,也就是屏幕,第二个星号则代表不特别设置输出格式。
Fortran语法
Fortran语法(转载)2010-08-02 09:45目录:一、说明二、概述三、数据类型及基本输入输出四、流程控制五、循环六、数组七、函数八、文件一、说明本文多数内容是我读彭国伦《Fortran 95 程序设计》的笔记。
只读到第九章,主要是3~9章,都是些最基本的用法(原书共16章)。
这里主要摘录了我看书过程中总结的一些Fortran和C不同的地方,主要是语法方面。
希望这份笔记能够给学过C但没有接触过Fortran 的同学带去一些帮助。
要想弄得更清楚些,推荐看一下原书,觉得作者真的写得很好,很清楚;如果有C语言的基础,看完前九章应该很快的,花一两天就行了。
觉得如果耐心看完本文,基本功能应该也可以顺利用起来了。
另外,由于我之前没有用过Fortran,这次为了赶文档看书又看得很粗浅,大多数东西看过之后都没来得及仔细想,只是按着作者的意思去理解。
所以这份笔记还处于纸上谈兵的层次。
文中蓝色的部分是程序代码,!后面的内容为注释。
二、概述1、名词解释Fortran=Formula Translator/Translation一看就知道有什么特色了:可以把接近数学语言的文本翻译成机械语言。
的确,从一开始,IBM设计它的时候就是为了方便数值计算和科学数据处理。
设计强大的数组操作就是为了实现这一目标。
Fortran奠定了高级语言发展的基础。
现在Fortran在科研和机械方面应用很广。
2、Fortran的主要版本及差别按其发展历史,Fortran编译器的版本其实很多。
现在在广泛使用的是Fortran 77和Fortran90。
Fortran 90在Fortran 77基础上添加了不少使用的功能,并且改良了77编程的版面格式,所以编程时推荐使用90。
鉴于很多现成的程序只有77版本,有必要知道77的一些基本常识,至少保证能够看懂77程序。
以下是77和90的一些格式上的区别。
Fortran 77:固定格式(fixed format),程序代码扩展名:.f或.for(1)若某行以C,c或*开头,则该行被当成注释;(2)每行前六个字符不能写程序代码,可空着,或者1~5字符以数字表明行代码(用作格式化输入输出等);7~72为程序代码编写区;73往后被忽略;(3)太长的话可以续行,所续行的第六个字符必须是"0"以外的任何字符。
fortran 编程指南
fortran 编程指南英文回答:Fortran is a programming language that is widely usedin scientific and engineering applications. It was developed in the 1950s and has gone through several versions since then. Fortran is known for its efficiency and performance in numerical calculations, making it a popular choice for scientific computing.One important aspect of Fortran programming is understanding the syntax and structure of the language. Fortran uses a fixed-format layout, where each line of code is divided into specific columns. This can be a bit different from other modern programming languages that use free-formatting. It's important to pay attention to the column layout to ensure the code is correctly interpreted by the compiler.Another key aspect of Fortran programming is the use ofarrays. Fortran provides extensive support for arrays, allowing for efficient manipulation of large sets of data. Arrays in Fortran are declared using the DIMENSION statement, and they can be used for various purposes, such as storing data, performing calculations, and passing data between subroutines.Fortran also has a rich set of built-in functions and mathematical libraries that make it easy to perform complex mathematical operations. For example, the intrinsicfunction SIN calculates the sine of an angle, and the intrinsic function SQRT calculates the square root of a number. These functions are designed to work efficientlywith arrays, making it easy to perform calculations onlarge datasets.In addition to its numerical capabilities, Fortran also supports character manipulation and input/output operations. This allows for the creation of user-friendly programs that can interact with the user through text-based interfaces. For example, a Fortran program can prompt the user for input, perform calculations, and display the results in aformatted manner.中文回答:Fortran是一种广泛应用于科学和工程领域的编程语言。
Fortran 90-70基本语法
2. 浮點數(real): 單精確度,雙精確度 單精確度: Real*4, 雙精確度: Real*8
單精確度 (32 bits): 1.18E-38~3.4E+38
Fortran 基本語法
Fortran 的資料型態
資料型態:Fortran所能夠在電腦的記憶當 中記憶文字.數值等等資料. Bit的觀念: 一個bit只能儲存一個0或是1, 組合8個bits,叫一個位元組,為電腦最小儲 存單位.
Fortran 基本語法
1. 整數(integer): 一種是長整數,一種是短整數.
雙精確度 (64 bits): 2.23E-308~1.79E+308 3. 複數(complex): Ex: a+bi 4. 字元(character):
Fortran 基本語法
5. 邏輯判斷(logical): Fortran的邏輯半段只能儲存兩種邏輯結果,就是 真(true)或假(false).
Fortran 基本語法
Fortran 的數學算式
Fortran數學算式的規則及方法都很直覺 化,和在紙上的四則運算是只有一點差別.
Fortran 基本語法
實例 - Fortran 77
Fortran 基本語法
實例 - Fortran 90
Fortran 基本語法
Fortran 90/77
第三章 Fortran 基本語法
寫作 Fortran 的格式
Fortran 77程式在版面上的規定
Fortran语法备忘录(初级)
Fortran语法备忘录(初级)转自:最简单的fortran程序:END•目录:•【注释】•【并行】•【续行】•【程序开始】•【常量】◆整型◆实型◆复型◆逻辑型◆字符◆例子◆其他进制•【变量】•【变量声明】◆类型说明&种别说明◆属性说明◆例子◆赋初值•【数组】◆三元下标◆向量下标◆数组赋值◆数组运算◆WHERE构造◆FORALL构造◆函数名称◆动态数组•【派生类型】•【算术运算】•【关系运算】•【逻辑运算】•【判断IF构造】•【GOTO循环】•【DO循环】◆隐DO循环◆无循环变量◆跳出循环◆DO WHILE •【多重选择CASE构造】•【READ,WRITE 输入输出】◆文件◆WRITE语句◆READ◆I/O列表◆OPEN◆CLOSE◆定位语句◆内部文件•【FORMAT语句】•【一些说明】•【一些建议】••【注释】•整行注释,第一个字母为 C 或者 *•附加注释,与句后面用!•!--------------------------------------------------------•! 说明(F90)•!--------------------------------------------------------•【并行】•!--------------------------------------------------------•a=1.0 ; b=2.0•!--------------------------------------------------------•【续行】•F90中一行为132列,允许有39个续行。
在语句行最后加上续行符“&”号。
如果字符串被打断,跨2行以上,则在续行的开始位置也要加&号。
•第6列上写一个非空格和非零的字符(任何ASCII字符), 常用C •【程序开始】•!--------------------------------------------------------•PROGRAM main•END PROGRAM main•!--------------------------------------------------------•【常量】•◆整型 (默认4字节)•100_1 !单字节整型常量•2000•2000_4 !4字节整型常量•◆实型 (默认4字节)•print *, 3.14159265358979_8 ! 直接打印双精度数•print *, 3.14159265358979_4 ! 直接打印单精度数(7位有效数字)•◆复型 (默认2×4字节)•(a,b)=(实数,实数)•◆逻辑型 (默认4字节) .TRUE. 和 .FALSE.•a=.TRUE.•◆字符型 (F90用"")•name="char"•例:"I'm a boy." (长为10字节)•'I''m a boy.' (长为10字节)•字符子串:•A(3:11) -> 'CDE12345F',•A(I+4:9) -> 'E1234'(I=1),'1234'(I=2)•A(:5) -> 'ABCDE'•A(11:) -> 'FGH'•A(:) -> 'ABCDE12345FGH'•A(3:3) -> 'C'•A=A(:5)//A(6:) !字符串的合并运算•求字符串长度的函数:LEN(字符串)•不计尾部空格的字符串长度函数:LEN_TRIM(字符串)•求子串在父串位置的函数:INDEX•验证字符串的函数:VERIFY•除去尾部空格函数:TRIM•比较字符大小的函数:LGE、LGT、LLE、LLT•••◆例如:•21_2+7.6_4 表示整型种别为2的数21与实型种别为4的数7.6相加。
第3章 最基本的FORTRAN语句
前一页 休息
2
算术赋值语句
算术赋值语句的一般格式:
xxxxx v=e 其中:v是变量名或数组元素。 e是算术表达式。
作用:将算术表达式e的结果赋给变量v
前一页 休息
3
参数说明语句
参数说明语句的一般格式:
parameter(参数名=常数,……) 作用:将常数赋给参数名。 例如:
parameter(pi=3.1415926,k=100,a0=214.0,imax=5) 程序中定义的参数名只能够在表达式中使用,
FORTRAN程序设计
第3章 最基本的FORTRAN语句
FORTRAN语句
FORTRAN语句分为可执行语句和不可语句。
可执行语句:计算机在执行的过程中是要执行 的。标准格式书写时,根据具体情况语句标号可以 写也可以不写。
不可执行语句:计算机在执行的过程中是不执 行的。标准格式书写时,语句标号一定不能写或语 句标号一定要写(仅指FORMAT语句)。
据宽度,d表示指数型小数部分的位数
前一页 休息
6
输入和输出
非数值型格式说明符:
X型格式符: nX n为十进制正整数,空n格
H型格式符:
nHh1h2…hn n为十进制正整数,原样输出h1h2 …hn 或‘h1h2…hn’ 原样输出h1h2 …hn
格式符的重复数:
n格式符 n为十进制正整数,表示格式符的重复数
不能对它赋值。
前一页 休息
4
输入和输出
一:带格式输出语句的一般形式
XXXXX write(设备号,格式语句标号)变量名表 语句标号 format(1x,格式说明符表) 变量名表:由若干个变量名或数组元素相互间用逗号分
割组成的内容。 格式说明符表:由若干个格式说明符相互间用逗号分
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1 FORTRAN77四则运算符+ - * / ** (其中**表示乘方)在表达式中按优先级次序由低到高为: +或-→*或/→**→函数→()2 FORTRAN77变量类型2.1 隐含约定:I-N规则凡是以字母I,J,K,L,M,N六个字母开头的,即认为是整型变量,其它为实型变量。
如 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字符位以后不能有内容。
4 FORTRAN77关系运算符.GT. 大于.GE. 天于或等于.LT. 小于.LE. 小于或等于.EQ. 等于.NE. 不等于 .AND. 逻辑与.OR. 逻辑或.NOT. 逻辑非.EQV. 逻辑等.NEQV. 逻辑不等运算符优先级由高到低顺序为:()→**→*或/→+或-→.GT.或.GE.或.LT.或.LE.或.EQ.或.NE.→.NOT.→.AND.→.OR.→.EQV.或.NEQV5 FORTRAN77语句6 FORTRAN77选择判断语句6.1 逻辑IF语句IF (逻辑表达式) 程序语句6.2 无ELSE块IF (逻辑表达式) THEN程序块END IF6.3 标准选择IF (逻辑表达式) THEN程序块1ELSE程序块2END IF6.4 多重选择块IF (逻辑表达式1) THEN程序块1ELSE IF (逻辑表达式2) THEN程序块2ELSE IF (逻辑表达式2) THEN程序块2......ELSE IF (逻辑表达式N) THEN程序块NELSE程序块N+1END IF7 FORTRAN77循环语句7.1 GO TO语句标号程序行程序块GO TO 标号7.2 DO语句DO 标号,记数变量=起始值,终止值,步距”语句,如DO 标号,N=1,100,1程序块标号CONTINUE7.3 DO WHILE 语句DO 标号,WHILE(PI.EQ.3.14159)程序块标号CONTINUE7.4 DO UNTIL语句DO 标号,UNTIL (逻辑表达式)”语句,如DO 标号,UNTIL(PI.GT.3.14159)程序块标号CONTINUE8 FORTRAN77内部函数9 FORTRAN77函数与子程序9.1 FORTRAN77语句函数当函数十分简单,用一条语句足以定义时(允许使用继续行)才用;应该放在所有可执行语句之前和有关类型说明语句之后,是非执行语句;只在其所在程序单位中有意义;语句函数中的虚参就是变量名,不能是常量、表达式或数组元素等;语句函数定义语句中的表达式可以包含已经定义过的语句函数、外部函数或内部函数。
语句函数通过表达式得一个函数值,此数值类型必须与函数名的类型一致。
语句函数的使用同内部函数相同。
语句函数例子:YMJ(R)=3.14159265*R*RZMJ=YMJ(5)9.2 FORTRAN77自定义函数定义格式:类型说明 FUNCTION 函数名(虚拟参数1,虚拟参数2,……,虚拟参数N)程序块(可以含有RETURN)函数名=函数值END调用格式与内部函数相同。
9.3 FORTRAN77子程序定义格式:SUBROUTINE 子程序名(虚拟参数1,虚拟参数2,……,虚拟参数N)程序块(可以含有RETURN)END调用格式:CALL 子程序名(实在参数1,实在参数2,……,实在参数N)数据块子程序:只是用来给有名公用区中的变量赋初值,格式如下:BLOCK DATA 子程序名DATA语句块END附录一、FORTRAN77控制输入输出格式3.输出字段宽度不够时用*号填充。
附录二、FORTRAN77控制输入输出格式语句目录:一、说明二、概述三、数据类型及基本输入输出四、流程控制五、循环六、数组七、函数八、文件一、说明本文多数内容是我读彭国伦《Fortran 95 程序设计》的笔记。
只读到第九章,主要是3~9 章,都是最基本的用法(原书共16章)。
这里主要摘录了我看书过程中总结的一些Fortran和C不同的地方,主要是语法方面。
希望这份笔记能够给学过C但没有接触过Fortran的同学带去一些帮助。
要想得更清楚些,推荐看一下原书,觉得作者真的写得很好,很清楚;如果有C语言的基础,看完前九应该很快的,花一两天就行了。
觉得如果耐心看完本文,基本功能应该也可以顺利用起来了。
外,由于我之前没有用过Fortran,这次为了赶文档看书又看得很粗浅,大多数东西看过之后都没得及仔细想,只是按着作者的意思去理解。
所以这份笔记还处于纸上谈兵的层次。
如果有不妥的方,希望大家指正。
谢谢!文中蓝色的部分是程序代码,!后面的内容为注释。
二、概述1、名词解释 Fortran=For mula Tran slator/Translation 一看就知道有什么特色了:可以把接近数学语言的文本翻译成机械语言。
的确,从一开始,IBM设计的时候就是为了方便数值计算和科学数据处理。
设计强大的数组操作就是为了实现这一目标。
ortran奠定了高级语言发展的基础。
现在Fortran在科研和机械方面应用很广。
2、Fortran的主要版本及差别按其发展历史,Fortran编译器的版本其实很多。
现在在广泛使用的是Fortran 77和Fortr an90。
ortran 90在Fortran 77基础上添加了不少使用的功能,并且改良了77编程的版面格式,所以编程时推荐使用90。
鉴于很多现成的程序只有77版本,有必要知道77的一些基本常识,至少保证能够看77程序。
以下是77和90的一些格式上的区别。
Fortran 77:固定格式(fixed format),程序代码扩展名:.f或.for (1)若某行以C,c或*开头,则该行被当成注释;(2)每行前六个字符不能写程序代码,可空着,或者1~5字符以数字表明行代码(用作格式化输入出等);7~72为程序代码编写区;73往后被忽略;(3)太长的话可以续行,所续行的第六个字符必须是"0"以外的任何字符。
Fortran 90:自由格式(free format),扩展名:.f90 (1)以"!"引导注释;(2)每行可132字符,行代码放在每行最前面;(3)以&续行,放在该行末或下行初。
以下都是讨论Fortran 90。
3、Fortran的一些特点,和C的一些不同其实很多,在下面涉及具体方面时可以看到。
这里只是大致提一些。
(1)不分大小写(2)每句末尾不必要写分号(3)程序代码命令间的空格没有意义(4)不像C,Fortran不使用{ } (5)数据类型多出了复数和逻辑判断类型。
比如复数类型complex :: a !声明复数的方法。
复数显然方便了科学计算,满足了工程方面需求a=(1.0,2.0) ! a=1+i (6)多出了乘幂运算(**)。
乘幂除了整数还可以是实数形式。
如开方,开立方a=4.0**0.5,a=8.0**(1.0/3.0)。
(7)数组有一些整体操作的功能;可以方便的对部分元素进行操作(8)有些情况下可以声明大小待定的数组,很实用的功能4、Fortran 的基本程序结构先看一看所谓的"Hello Fortran"程序。
program main !程序开始,main是program的名字,完全自定义write(*,*) "Hello" !主程序stop !终止程序end [program[main]]!end用于封装代码,表示代码编写完毕。
[ ]中的内容可省略,下同。
再看一段实用一些的程序,好有点感性认识。
程序用于计算圆柱的表面积,要求输入底面半径和。
其中展示了Fortran的一些特色用法。
程序摘自维基。
其实是一个叫的网上引的维基的网页。
推荐去看看!能查到不少有意思的东西。
program cylinder !给主函数起个名字! Calculate the area of a cylinder.! Declare variables and constants.! constants=pi! variables=radius squared and heightimplicit none ! Require all variables to be explicitly declared !这个一般都是要写上的。
下面会进一步说明。
integer :: ierrcharacter :: ynreal :: radius, height, areareal, parameter :: pi = 3.1415926536 !这是常量的声明方法interactive_loop: do !do循环,Fortran 中的循环可以加标签,如d前面的 !interactive_loop就是标签! Prompt the user for radius and height and read them.write (*,*) 'Enter radius and height.' !屏幕输出read (*,*,iostat=ierr) radius,height !键盘输入。