Fortran90程序设计.ppt
《Fortran90程序设计.ppt》由会员分享,可在线阅读,更多相关《Fortran90程序设计.ppt(68页珍藏版)》请在课桌文档上搜索。
1、Fortran 90 程序设计,编译器简介,4 程序单元概念,1Fortran语言的发展,2源程序及其构成,3 语言元素,作用:把高级语言翻译成机器码,也就是常常可以看到扩展名为EXE、COM的文件。相同的程序代码可用不同厂商的编译器来编译,所生成的文件也不会完全相同。编译器的好坏主要取决于编译结果。,1.1 编译器简介,第一章FORTRAN语言的发展简史,2.1 Fortran语言的发展简史,一、FORTRAN 含义及其适用范围 FORmula TRANslator 公式翻译器 科学和工程计算问题的程序设计语言,二、发展简史 代表性:1957,1958 FORTRAN,1962 FORTRA
2、N,1978 FORTRAN77,1991.FORTRAN 901997.FORTRAN95,FORRAN95不象FORTRAN90在FORTRAN77添加很多内容,只能视为90的修正版,加强了并行运算方面的支持,2.2 FORTRA90源程序基本结构,例:见书P15页例题2-12-22-3。1、由若干个程序单元(位)组成:主程序、外部子程序、模块、块数据单元2、主程序结构 program 程序名称一般省略 声明语句部分 执行语句部分 ENDprogram 程序名称3、END,停止运行结束标记,书写格式,Fortran程序代码的编写格式有两种:Free Format(自由格式)扩展名:.F90
3、 建议所有程序全部改用自由格式来编程 Fixed Format(固定格式)本教材不采用 扩展名:.F或.FOR,书写格式,Fixed Format(固定格式),书写格式,1.C FIXED FORMAT DEMO PROGRAM MAIN WRITE(*,*)HELLO WRITE(*,*)1HELLO100 WRITE(*,*)HELLO10 STOP END 程序代码命令之间的空格,不会有任何意义。FIXED FORMAT是为了配合早期使用穿孔卡片输入程序所发明的格式。,Free Format(自由格式)基本上允许非常自由的编写格式,它没有规定每一行的第几个字符有什么作用,但要注意:1.!
4、感叹号后面的文本都是注释。2.每行可以编写132个字符。3.行号放在每行程序的最前面。4.一行程序代码的最后如果是符号&,代表下一行程序会和这一行连接。如果一行程序代码的开头是符号&,代表它会和上一行程序连接。5.程序命令之间的空格,无意义。,书写格式,书写格式,1.!Free Format2.program main3.write(*,*)”Hello”!这也是注释4.write(*,*)&5.”Hello”6.wri&7.&te(*,*)”Hello”8.end 如果把Fortran的关键字分为两行书写,则两行都要加续行符号。如6、7行。,注释语句:!后的所有字符都被编译器忽略(非语句行)
5、可独占一行,可在其它语句之后,空行为注释行(固定格式用C和*),语句行:可执行语句:输入、赋值、输出 说明语句:用于说明变量的类型、属性等,注意:,行的书写(行的长度、分行、续行)一行可以是0132个字符,空格有意义,语句最长不超过2640个字符 一行可以有多个语句,用“;”分隔 一个语句可分行写,读行标记为&(放在尾部),但如为关键字,首尾均加&。最多可有511个续行。例 pro&gram main,书写格式,空格:关键字、变量、常量内部不能用空格,但相邻两者之间须用空格语句前标号仅用于标识一个语句,与运行顺序无关。语句有位置规定 说明语句必须出现在可执行语句之前,格式说明语句(FORMAT
6、语句)除外。,书写格式,2.3 语言元素,Fortran90的语言元素是指在程序设计中所用到的基本成分,例如字符集、常量、变量、记号以及其它的基本结构等。只有了解并掌握了这些基本要素,才可能正确自如地使用该种语言。,2.3.1 FORTRAN90字符集:编写Fortran90程序时,所能使用的所有字符及符号。AZ(az)程序中不区分大小写 26个 在大多数处理系统中允许使用小写字母,除了字符串内的字符外,小写字母等价于相应的大写字母。,09 10个 空格=+-*/(),:.$22个 _(下划线)、!、”、%、&、;、?注意:1、在FOR源程序中,只能使用以上字符 2、字符型数据内可以出现任意字
7、符(包括汉字)命名规则:131个字符,由字母、数字、下划线组成,第一个字符为字母 全局名:主程序单元、外部过程、数据块、模块,2.3.1 FORTRAN90字符集,在Fortran90中,将字母、数字或专用字符的基本有效的序列称为记号,它包括标号、关键字、名字、常数、运算符和定界符。例如:A*SIN(x)+5.3 这个表达式包括6个记号,即A、*、SIN、x、+、5.3。注意:在字符串内部,不能随意地添加空格。在记号内部,也不许随意地使用空格。记号与记号之间的空格可以随意地使用。多个空格在语法上与一个空格的作用相同。一个记号与相邻关键字、名字、常数或标号之间,应当用一个或多个空格分开,以避免错
8、误,同时也使结构清晰。,2.3.2 记号,常量的定义:常量是程序执行过程中不能变化的量。基本数据类型有五种:整型、实型、复型、字符型和逻辑型 前三种属于数值类型,后两种为非数值类型,主要用于文字处理和控制。,2.3.3基本类型常量,Fortran的数据类型,种别参数是由内在询问函数KIND送回的。提供的最小范围是由内在函数Selected_int_kind送回的。表示十进制幂的范围是由内在函数range送回的。缺省种别是指有符号或无符号的整数值。可在数值后用下划线标明种别,没有下划线为缺省种别。缺省种别整数的范围一般取决于所用计算机的字长。说明了种别参数后,提高了程序的可移植性。简而言之,种别
9、即决定数值在计算机中存储的字节数。,整型数据:微机支持3种kind_Value:1,2,4(1)范围:-128127(2)范围:-3276832767(4)-21474836482147483647(-231231-1)Integer 默认kind_Value的值为4,1.整型常量(INTEGER)整型常量又叫整数,整数值的集合就是数学整数的子集。,123_2&kind_Value常量也可如此指定,Fortran的数据类型,在FORTRAN90中,也可以表示二进制、八进制、十六进制形式的无符号整数。其形式如下:二进制数:B101101 或 B”101101”八进制数:O76210 十六进制数:
10、Z1FA2,Fortran的数据类型,2.实型常量(REAL)实型常量又叫实数,它具有数学实数的近似值。实数最常见的两种表示形式是:小数形式和指数形式 小数形式:由十个数字、小数点及数符组成的数。指数形式:对绝对值相对较小或很大的实数。规格化指数形式:(两种形式)1。数字部分的值小于1,且小数点后的第一位数字非0 2。数字部分有且仅有一位非零的整数。,Fortran的数据类型,一般分为两种 real(4)单精度(默认)real(8)双精度,小数形式:+/-m.n,+/-m.,+/-.n 例 100.0.5 5.注:小数点必须有。指数形式:数字部分E指数部分e 科学计数法 0.876=87610
11、-3 876E-3=87.6 10-2 87.6E-2=0.0876 10+1 0.0876E+1。数字部分,小数形式实数整数,Fortran的数据类型,指数部分:e只能为整数 错例:4E5.6 数字部分不能丢;例:10-4:E-4(错)1E-4(正确)以标准化形式输出(=1)实数:存储7位有效数字。如:2.300000 上溢:overflow 下溢:当0处理 4.实数种别为8时常量的表示(双精度数)有效位:15位;数字部分De 例:0D0,Fortran的数据类型,3.复数(COMPLEX)复型常数又叫复数。具有数学复数的近似值。在科学和工程计算中被广泛用到。复数是实数的有序对,将两个实数中
12、间用逗号分隔,然后再放在一对括号中就构成了一个复数。复数以a+bi的形式来表示数值,复数中的a、b称为实部和虚部。可为实数,也可为整数。Complex(4)(默认)例:Complex(4):b Complex(8)双精度 Complex(8):c,d,e 常量:符号(实部_kind_Value,虚部_kind_Value)例:f=(1,2.0_8),Fortran的数据类型,复型常量的表示:数学 2+3i,一般形式:(实部系数,虚部系数),错例:(1.0/2,3)正例:6i,(0,6)当复数的实部或虚部为变量或表达式进行赋值时,必须使用CMPLX()函数。,FORTRAN90(2,3),For
13、tran的数据类型,4.字符(CHARACTER)计算机除了存储数字之外,也可以在内存中记录一段文本,字符类型可以记录的东西非常广,从键盘输入的任何东西,不论是数字、文本或任何特殊符号,它都可以记录,只记录一个字母、符号时的数据类型称为“字符”,记录一连串的字符时,就称为“字符串”,记录一个西文字符需要一个字节的存储空间。一个汉字为两个字节的存储空间。kind 指明计算机系统支持的字符种类.字符常量:例:ASCII_”abcde”!kind值放在常量前面例:Character(LEN=10,kind=GREEK):Greek_word len=10可以直接写为10 或缺省长度为1;如只有一个没
14、有命名的参数,一定是长度整数,Fortran的数据类型,字符常量的表示:一串字符或“一串字符”(双引号),空格 算一个“算一个起止界不算长度可为0,字符中含改写为 abcd,长度:字符的个数,注:区分字符大小写 a A 空格有效 a b ab,Fortran的数据类型,5.逻辑判断(LOGICAL)逻辑判断只能保存两种逻辑结果,分别为“true”和“false”。LOGICAL(_kind_value)LOGICAL(1)LOGICAL(2)LOGICAL(4)(默认,值存储在第一个字节中)对数据的二进制最低位进行判断,如果为1,则接受为真,否则接受为假。,Fortran的数据类型,2.3.4
15、 名字,对于名字有下列要求:1.名字的长度不能超过31个字符 2.名字的组成成分可以是字母、数字和下划线 3.名字的第一个字符必须是字母 4.在名字中不能出现空格 提倡使用具有一定含义的名字,提高程序的清晰度和可读性。,1、定义:程序运行过程中值可变化的量2、命名的规则,字母、数字、下划线组成字母开头长度1-31个,错例 3A、x-3、3.14、A3$,2.3.5 变量,3、变量含义:实际是内存中的一个存储单元,存放变量的值。特性:取之不尽,一冲就跑,总采用当前值参与运算。例:A=2.0 A B B=3.0 A=A+B 5.0 15.0 B=A*B 注:A、B必须有确定值,如未定义,值不可预测
16、(有时按0处理),2.0,3.0,4、变量类型:基本类型有五种,同常量 I-N规则(隐式说明):在程序变量名中,凡以字母I、J、K、L、M、N六个字母开头的变量为整型变量。implizcit none 可以取消I-N规则。五种变量的类型说明关键字:整型:INTEGER 实型:REAL复型:COMPLEX 逻辑型:LOGICAL字符型:CHARACTER 待说明的变量放在后面,中间用双分隔符:隔开,对于同时说明多个变量,变量之间用逗号分隔。,Fortran90关于变量说明的新功能:1.在变量说明的同时,可以给变量赋初值。INTEGER:I=5,J=126 REAL:X=7.2,Z,W=774.2
17、 2.在说明变量的同时也可说明其种别 3.在说明变量的同时,还可说明变量的属性 INTEGER,PARAMETER:I=5,J=123 REAL,DIMENSION(1:10):A,2.3.6 派生数据类型,根据需要而由基本数据类型定义新的数据类型。在一个派生类型中可包含多个基本类型。如:TYPE STUDENT(定义开始)CHARACTER(LEN=20):DEPARTMENT CHARACTER(LEN=10):CLASS CHARACTER(LEN=15):NAME INTEGER:NUMBER(成员定义)END TYPE STUDENT(定义结束),派生类型变量的定义:TYPE(STU
18、DENT):PERSON变量的赋值:PERSON=(”COMPUTER”,”92_2”,”LI LIN”,21)成员的表示:PERSON%CLASS=“92_2”PERSON%NAME=“LI LIN”,2.3.7 基本类型数组,数组是具有相同类型的元素的有序集合。数组在使用之前必须说明。数组的说明:INTEGER,DIMENSION(1:50):X;数组名为X,类型为整型,元素个数为50。INTEGER,DIMENSION(5,3):B;数组名为B,类型为整型,元素个数为5*3个 维界:1:50 上界:下界 缺省下界为1 数组中元素的个数称为它的大小,维数称为秩,每维中元素的个数称为维的长度
19、,长度的序列称为形。,数组的引用:通过指定下标值的办法来实现。下标值可为整数或整型表达式。下标值不能越界,个数必须与数组的秩相等。注意:1.允许对数组名进行运算。2.允许对数组片段进行操作。所谓数组片段是指数组中某些连续元素的重新组合。数组片段也是一个数组。,2.3.8 字符子串,字符型常量又叫字符串。一个字符串的一部分称为子字符串或字符子串。字符数组:CHARACTER(LEN=1),DIMENSION(80):ROW引用:ROW(I)字符串:CHARACTER(LEN=80):ROW引用:ROW(I:I);ROW(4:7)特殊:ROW(:I)相当于 ROW(1:I)ROW(I:)相当于 R
20、OW(I:80)ROW(:)相当于 ROW(1:80)特定长度字符数组:CHARACTER(LEN=80),DIMENSION(25):ROWC引用:ROWC(I)(J:J),2.3.9 数据对象和子对象,由一个名引用的对象:有名标量有名数组由子对象标志符引用的子对象是:数组元素数组片段结构分量子串,2.4 程序单元概念,程序单元是FORTRAN语言的基本成分。程序单元可以是主程序、子程序、模块或块数据程序单元。子程序可以是函数子程序或子例行子程序。模块包含的说明是对其它的程序单元形成可访问性。块数据单元用来对有名公用区中的数据对象赋初值。(F90中不提倡使用),2.4.1 主程序,主程序是不
21、包含SUBROUTINE、FUNCTION、MODULE或BLOCK DATA语句作为其第一条语句的程序单元。主程序的可执行部分不能包含有RETURN语句或者ENTRY语句。程序名对可执行程序是全局的,而且不得于该可执行程序中的任何其它程序单元名、外部过程名或公用块名相同,也不得于主程序内的任何局部名相同。在主程序的作用范围内的说明不得包含OPTIONAL语句、INTENT语句、PUBLIC语句或它们的等价属性,在主程序内SAVE语句不起作用。主程序内的任何内部过程的定义必须跟在CONTAINS语句之后。,2.3.2 子程序,子程序是可以完成某一独立算法或功能的程序单元,但它功能的具体体现要通
22、过主程序(或子程序)的调用来实现。按子程序与主程序的位置关系分为内部过程和外部过程。内部过程可以出现在主程序、外部过程或模块内。,2.4.3 模块,模块也是一种在程序单元之外独立编写的程序单元。它有独特的形式,即模块程序单元内没有可执行语句,除了说明语句外,最多包含内部过程。模块的主要作用是供其它程序单元引用。程序单元引用模块,实际是将模块内的全部语句复制到本程序单元。模块的引用采用语句:USE 模块1,模块2,,2.4.4 块数据程序单元,块数据程序单元对有名公用块内的数据对象提供初值。由于块数据程序单元赖以支持的COMMON语句和DATA语句在F90中已成为过时特性,因此,不提倡使用块数据
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Fortran90 程序设计
链接地址:https://www.desk33.com/p-241912.html