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) 产生一个种别值,它表示某一精度和范围。
FORTRAN简明教程
《FORTRAN》程序设计原理1、程序结构及书写规则一个程序由不同的程序单元组成,每一程序单元均以end结束,一般情况下,主程序的结构为:Program程序单元名说明语句可执行语句……STOPEND子程序的结构为:SUBROUTINE 程序单元名(哑元名表)说明语句可执行语句………RETURNEND以及FUNCTION 程序单元名(哑元名表)说明语句可执行语句………RETURNEND程序单元名由字母和数字组成,各程序单元中的变量独立编译,同名变量相互不影响。
1-5列为行号,可以是1-99999之间的任意数,6列为续行号,可以是任何字符,正文从第8列写到72列。
当第1列为字符C时,此行为注释行。
2、说明语句说明语句分为二类,一类必须放在程序单元的开头,另一类可以放在任何地方。
2.1 变量说明语句这一类说明语句,必须放在程序单元的开头,以表明变量的性质。
若不加以说明,以I-N开头的变量均为整型,其余变量均为实型,称之为I-N规则。
同一变量经下列显式说明语句说明后,I-N规则失效,没有经显式说明的变量,I-N规则仍然有效。
PARAMETER(变量名=const,……)REAL 变量名表INTEGER变量名表CHARACTER变量名表LOGICAL变量名表COMPLEX 变量名表IMPLICIT 变量基本类型(字符名表)DOUBLE PRECISION变量名表DIMENSION变量名表COMMON 变量名表COMMON /公共区名/ 变量名表DATA 变量名表/数值名表/一个变量可由多个语句说明,其中类型说明语句的级别最高,例如:Implicit real (a-c,e) 由a,b,c,e开头的变量均为实型Dimension ax(100) 定义一个100个元系的实型数组Integer bx, ax 重新定义bx, ax为整型变量2.2 格式说明语句这一类语句可以放在程序单元内的任何地方,常用的有:FORMAT(nFw.d, nX, nAw, nIw, ‘…….’, \ ,nEw.d)这里,n是重复使用该格式码的次数,F表示实型,X表示空格,A表示字符,I表示整型,E科学记数法,w是输入/出的宽度,d是小数位数,引号‘’内的内容原样输出,斜线‘\’表示输入/出时换行。
fortran中module用法
fortran中module用法Fortran是一种用于科学和工程计算的古老编程语言,但仍然被广泛使用。
Fortran中的module是一个非常有用的特性,它可以通过提供重用的代码和封装可重用代码的抽象来提高代码的可读性和维护性。
在Fortran中,module是一个存储在独立文件中的代码单元。
在文件中,module定义了一个作用域,其中包含变量、子程序和所有其他可以在模块之外访问的内容。
在Fortran中,模块是为了方便地组织这些内容而设计的。
让我们看一下如何使用Fortran 中的module。
要创建一个module,我们需要在一个Fortran文件中定义一个module块。
例如,在一个名为myModule.f90的文件中,我们可以定义一个名为myModule的module块。
在开始的module关键字之后,我们可以定义module的变量和子程序。
Module myModuleImplicit NoneInteger :: i, j, kPublic :: myFunctionFunction myFunction(x)Integer, Intent(In) :: xInteger :: yy = x ** 2myFunction = yEnd FunctionEnd Module在上面的代码中,我们定义了一个包含三个整数变量(i,j,k)和一个名为myFunction的子程序的module。
我们还定义了一个public关键字,以便从module之外访问myFunction。
在myFunction子程序中,我们将一个整数x作为输入参数,并将其平方放入变量y中,最后将其返回。
x=2result = myFunction(x)Write(*,*) 'Result: ',resultEnd Program在上述代码中,我们使用了myModule,并调用了myFunction子程序,并将变量x的值传递给它。
FORTRAN95第六章 Fortran 过程程序设计
普通的外部函数子程序形式之二为:
例6.2 利用函数子程序,计算N的阶乘。
! 计算N!的函数子程序
function fact (n)
!fact为外部函数子程序名, n为哑元
implicit none
integer:: n,i
! 说明哑元n和函数体中所用变量i的类型
real*8:: fact
! 说明函数名的类型
fact=1d0
!函数名作为变量名使用
do
write(*,*)'输入正整数m:'
read (*,*)m
if (m>0) exit
write(*,*)'输入了一个负整数或零,重输!'
end do
do
write(*,"('输入正整数n(n<=',i4,'):')")m
read (*,*)n
if (n>0 .and. n<m) exit
read *,n
h=(b-a)/n
do i=1,n-1
s=s+f (a+i*h) !调用语句函数f的语句
end do
s=h*(f (a)+f (b)+2.0*s)/2.0 !调用语句函f
write ( *,"('定积分的值为: ',f10.6)")s
第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语言是一种面向科学与工程计算的编程语言,因其在数值计算和科学应用方面的高效性而受到广泛使用。
本文将重点介绍Fortran语言程序设计的一些重要知识点。
一、基础语法1.1 变量与数据类型在Fortran中,变量是用于存储数据的容器。
常见的数据类型包括整型(INTEGER)、实型(REAL/DOUBLE PRECISION)、复数型(COMPLEX)、逻辑型(LOGICAL)等。
变量的命名需遵循一定规则,如以字母开头,长度不超过31个字符等。
1.2 运算符与表达式Fortran支持常见的算术运算符(如+、-、*、/)以及逻辑运算符(如. AND.、. OR.、. NOT.)等。
表达式由变量、常数和运算符组成,可以进行数值运算和逻辑判断。
1.3 控制结构Fortran提供循环结构(DO)、条件结构(IF-THEN-ELSE)和选择结构(SELECT CASE)等控制语句,用于控制程序的流程。
二、数组与数据处理2.1 数组定义与操作Fortran中数组是由相同类型的数据元素组成的集合。
可以使用DIMENSION语句定义数组的维度和大小,通过下标访问和修改数组元素。
2.2 数组运算与函数Fortran提供了许多对数组进行运算和处理的函数,如数组求和(SUM)、最大最小值(MAX、MIN)、数组重排(RESHAPE)等,方便对数据进行统计和处理。
2.3 文件读写操作Fortran支持对文件进行读写操作,可以通过OPEN语句打开文件,使用READ和WRITE语句读取和写入数据。
可以根据需要设置文件的访问模式和格式。
三、过程与模块3.1 过程(Subroutine/Function)过程是一段独立的代码块,可接受传入参数并返回值。
在Fortran中,过程可以是子程序(Subroutine)或函数(Function)。
子程序用于完成一系列操作,而函数则返回一个值。
3.2 模块(Module)Fortran中的模块是一个编译单元,用于组织和管理相关的过程和变量。
fortran中module用法
fortran中module用法Fortran中的module用法Fortran是一种高级编程语言,它被广泛用于科学计算和工程应用。
Fortran的模块化编程是一种重要的编程技术,它可以帮助程序员更好地组织代码,提高代码的可读性和可维护性。
在Fortran中,module是一种重要的模块化编程工具,它可以将相关的变量、函数和子程序组织在一起,形成一个独立的模块。
module的定义在Fortran中,module是一种独立的代码单元,它可以包含变量、函数和子程序。
module的定义通常放在一个单独的文件中,文件名以.mod或.f90为后缀。
module的定义格式如下:module module_nameimplicit none! 声明变量、函数和子程序contains! 定义函数和子程序end module module_name在module中,可以声明和定义变量、函数和子程序。
变量的声明和定义方式与普通的Fortran程序相同。
函数和子程序的定义方式也与普通的Fortran程序相同,只是需要在module中使用contains关键字来定义。
module的使用在Fortran程序中,可以使用use语句来引用module中的变量、函数和子程序。
use语句的格式如下:use module_name在使用module之前,需要先编译module文件,生成.mod文件。
在编译Fortran程序时,需要将.mod文件和程序文件一起编译。
使用module的示例代码如下:program mainuse mymoduleimplicit none! 使用mymodule中的变量和函数end program main在程序中使用module时,需要先使用use语句引用module,然后就可以使用module中的变量和函数了。
module的优点使用module可以带来以下几个优点:1. 模块化编程:module可以将相关的变量、函数和子程序组织在一起,形成一个独立的模块,使程序更易于理解和维护。
FORTRAN语言程序设计
n 是一个十进制数字(0~9)序列。
Kind值为:1、2、4、8之一。分别表示1、2、4、8个字节个数。
FORTRAN 90/95标准中整型常量的范围没有明确规定。
例如:122、0、-36、559_2
均为合法的整型常量
100.0、100,000、100 0、1002 均为非法的整型常量
5.6.2.2 实型常量
5.5 程序的书写格式 (1)固定格式:将一个语句行分为若干个区域,如下图所示
:
5.6 数据类型
5.6.1 基本概念 1.内部数据类型 FORTRAN语言将内部数据划分为以下类型: 整型 实型 算术型 数据类型 复型 逻辑型 字符型 2.种别 一个数据在内存中均占有一定字节个数的存储单元。上述每类数据都有 其不同的种别(即Kind)特性,即上述每类数据根据其种别特性(即 Kind值)的不同分别拥有不同字节个数的存储单元。 3.数据对象 1)常量:程序运行时,其值不能改变的量,称为常量。如:5,3等等。 2)变量:程序运行时,其值可以改变的量,如:变量a, a是一个存储单元
第四章 FORTRAN语言开发环境
详见教材:3.3 FORTRAN语言 开发环境
第五章 FORTRAN 语言基础知识
5.1 字符集
FORTRAN语言允许使用的字符集为:
FORTRAN90第6章1
子程序分类
Fortran90程序中的过程有两种: Fortran90程序中的过程有两种:函数子 程序中的过程有两种 程序过程和子例子程序过程。 程序过程和子例子程序过程。这两者的 形式、功能与调用方法都有所不同, 形式、功能与调用方法都有所不同,但 总称为过程或子程序。 总称为过程或子程序。
内在(系统 函数分类 内在 系统)函数分类 系统
a = (L + L2 + L3) / 2 1 s = a(a L )(a L2 )(a L3) 1 S = ∑s
–
图 计算多边形面积
以上问题要经过三次完全相同的运算,但参加运算的 、 、 以上问题要经过三次完全相同的运算,但参加运算的L1、L2、L3 量值不同。我们可以编写一段程序实现这一功能, 量值不同。我们可以编写一段程序实现这一功能,并为该程序段 命名。在计算每个三角形面积时调用该程序, 命名。在计算每个三角形面积时调用该程序,并代入不同的参数 完成运算,从而简化设计,便于结构化的程序设计。 完成运算,从而简化设计,便于结构化的程序设计。
子程序 子程序是具有特定功能的程序段 子程序是具有特定功能的程序段 功能 子程序不能独立执行, 子程序不能独立执行,只能被主程序单元或 被其它子程序单元调用,甚至可以递归调用 被其它子程序单元调用, 调用 调用本身) (调用本身)
含有子程序的结构
主程序: 主程序: 单位定义 说明部分 输入 调用子程序 输出 END 子程序: 子程序: 计算或处理
求X的绝对值 的绝对值
Function f(x) result(r) real::x,r if (x>0)then r=x else r=-x endif end Program main real::I,f read *,i Print *,f(i) end
fortran知识点总结
fortran知识点总结一、语法结构Fortran语言的语法结构遵循一套严格的规则。
下面是一些常见的语法结构:1. 程序单元:Fortran程序由一个或多个程序单元组成。
每个程序单元由一个或多个声明和执行语句组成。
2. 注释:在Fortran中,注释可以用来提高代码的可读性。
注释以感叹号(!)开头,直到行末为止。
3. 标识符:Fortran中的标识符由字母、数字和下划线组成,且区分大小写。
标识符用于表示变量、函数、子程序等。
4. 变量声明:在Fortran中,变量声明使用关键字“REAL”、“INTEGER”、“LOGICAL”等来指定变量的数据类型。
例如,REAL :: x 表示声明了一个实数类型的变量x。
5. 程序控制结构:Fortran提供了多种控制结构,包括顺序结构、条件结构和循环结构。
这些结构提供了程序的流程控制和逻辑控制。
6. 函数和子程序:Fortran支持函数和子程序的定义和调用。
函数和子程序可以帮助程序员组织和重用代码。
7. 模块和接口:Fortran中的模块和接口提供了一种组织代码的方式。
模块可以包含多个子程序和全局变量,接口可以用来定义子程序的接口。
二、数据类型在Fortran中,数据类型用于表示数据的类型和大小。
Fortran提供了多种数据类型,包括整数、实数、逻辑值、字符、复数等。
下面是一些常见的数据类型:1. 整数:整数类型用于表示整数值。
在Fortran中,整数类型包括“INTEGER”、“LOGICAL” 和“CHARACTER”类型。
2. 实数:实数类型用于表示实数值。
在Fortran中,实数类型包括“REAL”和“COMPLEX”类型。
REAL类型用于表示实数,COMPLEX类型用于表示复数。
3. 字符:字符类型用于表示字符值。
在Fortran中,字符类型使用CHARACTER关键字进行声明。
字符类型可以表示单个字符或者字符数组。
4. 数组:数组类型用于表示多个相同类型的数据。
2-Visual_Fortran_简介
[例2-3] 使用函数
FUNCTION FACTOR(N) RESULT(FAC_RESULT) IMPLICIT NONE INTEGER::N,FAC_RESULT,I FAC_RESULT=1 DO I=1,N FAC_RESULT=FAC_RESULT*I END DO END FUNCTION FACTOR
输入:文件名(扩展名不输入) 其它默认,
选中add to project复选项 会自动形成*.f90或*.for的文件。
5、输入文件内容、存盘(文件菜等) 注意自由格式和固定格式输入的区别。 6、Build—Compile:编译 Build—Build: 连接
Build—Exetuce: 运行
重复3~6进行第二个源程序
1、界面组成:菜单、工具栏——上端
左边:项目工作区窗口 右边:可用于编辑文件和阅读文档的主工作区 下端:输出窗口和状态栏
三、开发自己的简单应用程序
1、运行Visual Fortran 6.0
2、文件——新建——Workspaces标签: 输入:Workspace name; Location默认值:c:\program File\devstudio 此步可省略,直接进入第3步(最好改为d:\)
A*BC
整型常量
实型常量
复型变量
字符型常量
逻辑型常量
0
+456
-19
34_2
种别
× 10.0 10.
二进制数: 八进制数: 十六进制数:
B'101101' 或 B"101101" O'76210' 或 O"76210" Z'1FA2' 或 Z"1FA2"
fortran中use的用法
在Fortran中,使用USE 语句可以将一个模块中的所有程序单元(包括变量、常量、子程序和函数)引入到当前程序单元中。
在引入之后,可以直接使用这些程序单元,而不需要使用程序单元所在的模块名或文件名。
USE 语句的一般语法如下:cssUSE module_name [, ONLY: program_unit_name1, program_unit_name2, ...]其中,module_name 是要引入的模块的名称,program_unit_name1, program_unit_name2, ... 是要引入的程序单元的名称,用逗号分隔。
如果没有指定ONLY 子句,则引入模块中的所有程序单元。
下面是一个使用USE 语句的示例:fortranMODULE my_moduleREAL, PARAMETER :: pi = 3.1415926REAL :: circle_area(radius)REAL, INTENT(IN) :: radiuscircle_area = pi * radius**2END FUNCTION circle_areaEND MODULE my_modulePROGRAM mainUSE my_moduleREAL :: r = 2.0, areaarea = circle_area(r)WRITE(*,*) 'Area of circle with radius', r, 'is', areaEND PROGRAM main在上面的示例中,USE my_module 语句将my_module 模块中的所有程序单元引入到main 程序中。
在main 程序中,直接调用了circle_area 函数,而不需要使用my_module 或my_module.circle_area 的形式。
需要注意的是,引入模块中的所有程序单元可能会导致命名冲突。
fortran语言的基本概念
fortran语言的基本概念Fortran语言的基本概念概述Fortran(Formula Translation)是一种用于科学计算和数值分析的高级编程语言。
它是最早的编程语言之一,由IBM公司在20世纪50年代开发。
Fortran语言以其高效、可靠和快速的特点,长期被广泛应用于科学和工程计算领域。
基本结构Fortran程序以程序单元作为基本的执行单位,程序单元分为主程序和子程序两种类型。
主程序•主程序是Fortran程序的入口点,每个Fortran程序必须包含一个主程序。
•主程序由PROGRAM关键字定义,后接程序名称。
•主程序内包含了程序的执行逻辑和控制流程,通过调用子程序完成具体的计算任务。
•子程序是主程序的辅助部分,用于定义重复使用的计算任务或功能模块。
•子程序由SUBROUTINE或FUNCTION关键字定义。
•SUBROUTINE用于定义过程(Procedure),只执行特定的计算任务,不返回结果。
•FUNCTION也是定义过程,但它还可以返回一个值作为结果。
变量与数据类型Fortran语言使用变量来存储和操作数据,变量需要先进行声明。
Fortran提供了多种数据类型,用于存储不同类型的数据。
声明变量•变量声明使用DIMENSION或INTEGER/REAL/COMPLEX/LOGICAL等关键字。
•变量声明语句通常出现在主程序的开头或子程序的参数列表中。
数据类型•INTEGER用于表示整数类型的数据。
•REAL用于表示浮点数类型的数据。
•COMPLEX用于表示复数类型的数据。
•LOGICAL用于表示逻辑类型的数据,可取值为TRUE或FALSE。
Fortran语言提供了多种控制流程语句,用于在程序中实现条件判断和循环操作。
条件判断•IF-THEN语句用于根据条件执行不同的代码块。
•IF-THEN-ELSE语句可根据条件选择执行不同的代码块。
循环•DO语句用于实现循环操作,可指定循环的起始值、结束值和步进值。
fortran 简明教程
fortran 简明教程Fortran是世界上最早的高级程序设计语言之一,广泛应用于科学计算、工程和数值分析等领域。
以下是Fortran的简明教程:1. 程序结构:一个Fortran程序由不同的程序单元组成,包括主程序、子程序和模块等。
每个程序单元都以END结束。
主程序是程序的入口点,可以包含变量声明、执行语句和控制语句等。
子程序可以包含函数和子例程,用于执行特定的任务。
模块用于提供程序中的公共代码和数据。
2. 变量声明:在Fortran中,变量必须先声明后使用。
变量类型包括整数型、实数型、字符型等。
例如,声明一个整数型变量可以这样写:INTEGER :: x3. 执行语句:执行语句用于控制程序的流程和执行顺序。
Fortran提供了多种控制语句,如IF语句、DO循环、WHILE循环等。
例如,使用IF语句进行条件判断:IF (x > 0) THEN y = x x ELSE y = -x x END IF4. 输入输出:Fortran提供了基本的输入输出功能。
可以使用READ语句从标准输入读取数据,使用WRITE语句将数据输出到标准输出。
例如,读取一个实数并输出到屏幕:READ(,) x WRITE(,) x5. 数组和矩阵:Fortran支持一维和多维数组,以及矩阵运算。
例如,声明一个二维实数数组并赋值:REAL :: A(3,3) A =RESHAPE((/1,2,3,4,5,6,7,8,9/), (/3,3/))6. 子程序和模块:子程序可以用于封装特定的功能或算法,并在主程序中调用。
模块可以包含公共的函数、子例程和变量等,用于提供可重用的代码和数据。
7. 调试和优化:Fortran提供了多种调试工具和技术,如断点、单步执行、变量监视等。
还可以使用性能分析工具来检查程序的性能瓶颈并进行优化。
以上是Fortran的简明教程,希望能帮助您快速入门Fortran编程。
chapter3-FORTRAN90基础知识
第三章 FORTRAN 90 基础知识FORTRAN 90是一种内容丰富、功能强大、特色鲜明的高级程序设计语言。
本章将介绍FORTRAN 90的一些基本知识,如:字符集、名称、关键字、程序单元、书写格式、数据类型和兼容性等,为进一步学习其它内容奠定基础。
3.1 字符集FORTRAN 90源程序是一个符合FORTRAN 90词法、语法和语义规定的特殊文本,它由FORTRAN 90字符集规定的字符按照词法、语法和语义规定进行描述。
FORTRAN 90字符集由下面四部分字符组成:1.英文字母大写字母:A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 。
小写字母:a b c d e f g h I j k l m n o p q r s t u v w x y z 。
2.阿拉伯数字数字字符:0 1 2 3 4 5 6 7 8 9。
3.下划线下划线字符:_。
4.特殊字符特殊字符:空格 <Tab> + - * / ( ) , . ' : ! " % & ; < > ? $。
Digital Visual FORTRAN 5.0字符集增加了一些可打印字符,包括十六进制ASCII码为09h(Tab符)、20h至7Eh之间的字符和某些特殊字符集(如:IBM字符集)中字符。
说明:①除字符型常量和Hollerith常量外,源程序中词法和语法描述不区分字母的大小写,如语句“INTEGER I”和语句“integer i”是等价的。
②FORTRAN 90字符集以外的可打印字符,只能出现在注释、字符常量、Hollerith常量、字符串编辑符和输入输出记录中。
③字符:_ ! " % & ; > < ?为FORTRAN 90新增字符。
3.2 名称名称在FORTRAN 77中称“符号名”,在其它语言中称“标识符”。
Fortran程序总结
Fortran程序总结1.⾏的书写(⾏的长度、分⾏、续⾏)⼀⾏可以是0~132个字符,空格有意义,语句最长不超过2640个字符⼀⾏可以有多个语句,⽤“;”分隔⼀个语句可分⾏写,读⾏标记为&(放在尾部),但如为关键字,⾸尾均加&。
最多可有511个续⾏。
2.说明语句必须出现在可执⾏语句之前,格式说明语句(FORMAT语句)除外。
3.注释标志符:⾃由格式:!固定格式:C *语句分隔符:分号;(仅⾃由格式可以使⽤)续⾏符:⾃由格式:&申明标号:1到5位⽆符号整数空格:关键字、变量、常量内部不能⽤空格,但相邻两者之间须⽤空格4.信息处理的分类:数值处理和信息处理现代计算机⼯作原理:程序存储和程序控制(冯·诺依曼)1、运算器——算术运算、逻辑运算2、控制器——根据指令控制计算机⼯作运算器、控制器和寄存器称为中央处理器CPU3、I/O设备——提供数据传输服务4、总线——数据传输的公共通道1.机器语⾔:⼆进制代码形式,可以被计算机直接执⾏,不可移植2.汇编语⾔:⽤助记符来代替机器指令,容易记忆,不可移植3.⾼级语⾔:接近⾃然语⾔(英语)的程序设计语⾔,⼜称算法语⾔,易学、易⽤、易维护,可移植性好例:FORTRAN、BASIC、PASCAL、C、LISP、PROLOG等5.FORTRAN90程序是⼀种分块结构,由若⼲个程序单元块组成:主程序、外部⼦程序、模块、块数据单元⽆论是主程序单元,还是⼦程序单元,都是独⽴的程序单位,应该独⽴编写,它们的形式相似。
⾮语句⾏:注释语句:!后的所有字符都被编译器忽略。
可独占⼀⾏,也可在其它语句之后,空⾏为注释⾏(固定格式⽤C和*)6.常量的定义:常量是程序执⾏过程中不能变化的量。
基本数据类型有五种:整型、实型、复型、字符型和逻辑型前三种属于数值类型,后两种为⾮数值类型,主要⽤于⽂字处理和控制。
FORTRAN 90通过KIND值确定整数的存储开销、最⼤位数和取值范围,如表所⽰。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• [可执行部分]
• [CONTAINS
• 内部过程]
• END [PROGRAM[程序名]]
10.2 语句函数
• 语句函数通过一句代码定义来实现某种特定的处 理功能,它是Fortran 77时代的遗留产物。严格 来说,语句函数不属于程序单元的范畴。但是在 实际应用中,语句函数以其灵活的应用、小巧的 结构在程序中发挥着重要的作用。
•
'8','9','A','B','C','D','E','F'/)
• INTEGER :: n, j, nn
•
• HEX= ' '
•
• DO j=8,1,-1
•
nn = n/16
•
HEX(j:j) = H(n - 16*nn)
•
IF(nn == 0) EXIT
•
n = nn
• END DO
•
• END FU后,就可以在程序单元中进 行引用了。实际上,在前一小节的例程中已经演 示了语句函数引用的一般方式。本小节将对语句 函数的引用方式进行具体的说明。
• 语句函数的引用方式与Fortran中内部函数的引用 方式完全一致,就是用程序中定义的实参替换掉 语句函数定义中的虚参。实参必须是与虚参类型 相同的常量、变量或表达式。
第10章 Fortran程序单元
• 一个Fortran程序中通常不是只由一个主程序组成, 而是由几个按某种方式划分的不同程序单元来共 同组成。尽管Fortran程序中允许只有主程序而没 有子程序,但绝不允许只有子程序而没有主程序。 在Fortran中,程序的执行总是从主程序开始的。
• Fortran中的程序单元可以大体划分为主程序、子 程序两种,其中子程序又可以进一步划分为函数 子程序、子例行子程序和数据块子程序。数据块 子程序通常用于实现变量的初始化赋值,函数子 程序和子例行子程序在用途上基本是一致的,但 是也有许多不同之处。本章将详细介绍Fortran中 的程序单元和它们的基本用法。
10.3 函数子程序
• 函数子程序和子例行子程序是子程序的两种常用 基本形式。它们的共同特征就是作为数据处理过 程的集合。但是这两种子程序也不完全相同,函 数子程序会返回一个函数值,且通常不会改变哑 元的数值。因此,函数子程序更像是数学上的一 个函数。而子例行子程序通常用于完成一项更为 复杂的任务,通过哑元或者其他手段返回几个结 果,哑元的数值通常会在程序的执行过程中改变。
10.1 主程序
• 顾名思义,主程序是一个实际程序中的主体,其 他类型的程序单元都是以某种方式来辅助主程序 的执行。在Fortran语言中,一个程序的执行始终 是从主程序的第一条可执行语句开始的,所以每 个完整的Fortran程序都必须有且只允许有一个主 程序。主程序定义的一般语法形式如下:
• [PROGRAM [程序名]]
则哑元列表可以省略,但是函数名后的括号不能省略。 • 3.RESULT关键字 • RESULT关键字用于声明将函数的返回值保存在其后的变量名中,
称为函数结果名。
10.3.2 调用函数子程序
• 函数子程序的调用与内在函数的调用形式一样。 在主调程序的任意位置,可以通过下面的语句形 式将函数子程序的计算结果赋值给变量:
10.3.1 定义函数子程序
• 下面给出函数子程序的一般形式为: • [prefix] FUNCTION name ([d-arg-list]) [RESULT (r-name)] • ... • END [FUNCTION name] • 1.prefix说明项 • prefix说明项是一个可选参数,可以使用如下两种形式来书写: • type [keyword] •或 • keyword [type] • 2.d-arg-list • d-arg-list表示函数的哑元列表。如果函数子程序不包含哑元,
• 在实际的编程过程中,程序员往往会遇到这种情 况:一些简单的函数会在一个程序单元中的不同 地方重复用到,而Fortran系统并不提供这种内部 函数;如果采用函数子程序的形式来描述这些简 单的函数又会觉得没有这种必要。例如,要求解 函数的值,将其编写成函数子程序可以顺利解决。 但是,Fortran语言提供了一种更为简单的手段— —语句函数。
义时才使用; • 语句函数是一种非执行语句,需要放置在所有可执行语句之前和相关的类
型说明语句之后; • 语句函数的作用范围仅限于定义它的程序单元之内,不允许跨程序单元进
行语句函数的调用; • 语句函数不能作为子程序调用时的实参,也不允许在EXTERNAL语句中出现; • 语句函数中出现的虚参必须是变量名,不能是常量、表达式或是数组元素; • 语句函数通过表达式得到的函数值的类型必须与函数名的类型一致。
10.2.1 语句函数的定义
• 在Fortran中定义一个语句函数的形式如下: • fun ([d-arg [, d-arg] ...]) = expr • 1.Fun 2.d-arg 3.Expr 4.语句函数示例 5.需要注意的问题:
在使用语句函数进行编程时,下面一些问题是需要引起注意的: • 语句函数通常在函数比较简单,能够用一条语句(包括换行)就能进行定
10.3.3 函数子程序示例——进制转换
• 下面来看一段函数子程序的实例,代码将一个4字节的整数用16进制的形式表示出来。 首先给出的是程序的函数子程序单元HEX。
• FUNCTION HEX(n)
• IMPLICIT NONE
•
• CHARACTER(LEN=8) :: HEX
• CHARACTER(LEN=1) :: H(0:15)=(/'0','1','2','3','4','5','6', '7',&
• V = 函数名(实元表) • 其中,V表示用于接收函数计算结果的变量;实元
表是程序中实际传入函数子程序的变量列表,除 非有特殊说明,变量列表中的实元个数以及类型 必须与函数子程序定义时的虚参在个数和类型上 一致。如果函数不包含哑元,则调用形式是在表 达式中直接写上函数名再跟空括号即可: • V = 函数名()