FORTRAN90第十章 指针与递归
- 格式:ppt
- 大小:209.50 KB
- 文档页数:17
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指导辅导资料――*****90 楚红*****90学习指导一、*****90基础知识1.源程序及其构成书写格式:主程序定义语句、结束语句注意:在没有程序名称的时候,程序开头的*****也不要出现。
如果使用了程序名称且在END语句中出现,则END语句中的*****不能省略。
语句行可以是0~132个字符;除赋值语句外,每个语句都要使用关键字开头。
如果希望一行中出现多个语句,语句一定要用分号隔开。
空格不能随便使用,关键字、变量和常量名以及操作符中的空格会使字符失去其原有的含义。
但它们之间一定要加空格。
注释行:以感叹号为标记,或“C”、“*”(*****90中不提倡此用法)续行标记:在句末尾添加续行符,如果将关键字分成两行,则下一行开头也要加续行标记。
如果续行符出现在注释语句中,则失去了续行的功能。
2.*****90字符集1 26个英文字母(大小写字母等价)2 10个阿拉伯数字3 下划线4 21个特殊字符:空格= + - * / (),. ‘ : !“ % ;? $5 其他字符(只可以出现在字符常量、字符串编辑描述符、注释和输入输出记录中)3.基本数据类型1 整型KIND值可以为1、2、4 类型说明关键字:*****KIND值决定数据的范围。
对于整数没有误差。
I=3/2=1;I=1/2=0 *****(KIND=4)::A ******4::A *****(4)::A2 实型KIND值可以为4(单精度7位有效数字)、8(双精度15~17位有效数字)类型说明关键字:REAL小数表示形式、指数表示形式(规格化的指数形式)错误表示形式:E34、.E34、0.14E2.3 8开3次方:8.0**(1.0/3.0)3 复型KIND值为4、8是实数的有序对,将两个实数中间用逗号分隔,然后放在一对括号中类型说明关键字:***** 复数的运算:+、―、*、/4 字符型KIND值为国家语言种类由一对单撇号或一对双撇号之间的字符序列组成。
前言FORTRAN90的新特性1、淘汰了所有转移语句,增加了新的控制结构,使程序结构化。
增加了结构块,模块及过程的调用灵活形式。
2、加强数组的算法功能。
提出超载概念与实现方法。
提高了文字处理功能。
3、更接近自然语言与公式演算。
允许在字符数据用选取不同种别。
特别:语句书写对列的要求放宽:一般一行写一条语句(也可也多个语句,用“;”分隔),没有标号区、续行区、正文区的区别。
一行最多为132列,可以在任何列处中断语句,中断处写一个“&”,随后在下一行任意列处继续。
一个语句最长不能超过2640个字符。
语句结尾不可有标号、符号。
注释以“!”开始,可以位于任何位置。
***以下只讨论与FORTRAN77不相同处。
第一章FORTRAN90的基本语句第一节类型说明语句1、变量名全长不得超过31个字符。
2、变量类型定义:INTEGER::X,YREAL::ACOMPLEX::B,C,D3、建议淘汰隐式说明,在程序说明部分一开始就写:IMPLICIT NONE向系统声明不使用隐式说明。
4、可以在变量说明时就置初值。
如:REAL::X=1.1,Y,Z=2.25、种别——决定变量的精度和所占内存单元数。
a.如:REAL(KIND=2)::X 说明变量X为REAL型,种别为2。
KIND是种别说明关键字。
如没有种别说明,则采用系统省缺值。
b.有关函数:KIND(X) 返回X的种别参数。
当X取常数0时,返回省缺种别参数。
如KI ND(0)、KIND(0.0)、KIND(.FALSE.)、KIND('A')分别返回整型、实型、逻辑型、字符型的省缺种别参数。
SELECTED_REAL_KIND(N,M) 返回种别参数,使之满足十进制有效位为N, 值范围在10**(-M)和10**M之间的实数。
SELECTED_INT_KIND(N,M) 与上类似,选择整型类别。
c.常数类别表示对数值型常数、逻辑型常数用后缀法,即在常数后加一下划线,再跟种别参数。
FORTRAN 90 基础知识第三章基本知识,如:字符集、名称、关键字、程序单元、书写格式、数据类型。
名称:①名称只能由英文字母、数字、下划线符“_”和美元符号“$”组成。
②名称第一个字符必须是英文字母。
③名称不能超过31个字符。
合法名称: Number,Max, PrOgRaM, FIND_IT, read, x, a3b7, china, total, x$y$z 。
非法名称:X-Y-Z, 8q, a.5, _wrong,U.S.A., DR.WANG,$abcd,r a t e 。
书写格式:自由格式,固定格式3个通用标志符:注释标志符“!”、语句分隔标志符“;”和续行标志符“&”。
数据类型第四章 内部数据类型常量和变量:语法描述; 精度(kind 值)和取值范围 整型常量:整数(10进制)。
实型常量:实数。
复型常量:复数。
字符型常量:字符串。
逻辑型常量:逻辑值,布尔值。
.true. .false.变量的申明。
表达式算术表达式:算术运算符的优先级和结合规则;操作数的类型转换FORTRAN 90 数据类型内部数据类型派生类型(记录类型)数组类型指针类型 公用区类型类型整数类型 实数类型 复数类型字符类型 逻辑类型运算符 含义 结合顺序 优先级 运算速度 说明 ( ) 最高 ** 乘方 左←右 高 慢 两个**之间不能出现空格 * / 乘 除 左→右 ↑ ↑ 数学符号× ÷为非法字符,用*和/代替 + - 加(二元加) 减(二元减) 左→右 ↓ ↓ + - 正(一元加) 负(一元减) 低 快不同优先级运算符,“先高后低”结合先乘方、后乘除、再加减,括号最优先相同优先级运算符,“从左向右”结合,如9-4+12/3*2**3 = ?乘方算符,“从右向左”结合,如2**3**2 = ?尽量多地使用( ),以使意义明确,避免出现歧义和产生错误转换规则“由低级向高级转换”①数据类型和KIND相同的两个算术操作数,计算时不转换,运算结果的类型和KIND与原数据相同。
FORTRAN90学习指导一、FORTRAN90基础知识1.源程序及其构成书写格式:主程序定义语句、结束语句注意:在没有程序名称的时候,程序开头的PROGRAM也不要出现。
如果使用了程序名称且在END语句中出现,则END语句中的PROGRAM不能省略。
语句行可以是0~132个字符;除赋值语句外,每个语句都要使用关键字开头。
如果希望一行中出现多个语句,语句一定要用分号隔开。
空格不能随便使用,关键字、变量和常量名以及操作符中的空格会使字符失去其原有的含义。
但它们之间一定要加空格。
注释行:以感叹号为标记,或“C”、“*”(FORTRAN90中不提倡此用法)续行标记:在句末尾添加续行符&,如果将关键字分成两行,则下一行开头也要加续行标记。
如果续行符出现在注释语句中,则失去了续行的功能。
2.FORTRAN90字符集126个英文字母(大小写字母等价)210个阿拉伯数字3下划线421个特殊字符:空格= + - * / (),. ‘ :!“% & ;< > ? $5其他字符(只可以出现在字符常量、字符串编辑描述符、注释和输入输出记录中)3.基本数据类型1 整型KIND值可以为1、2、4类型说明关键字:INTEGERKIND值决定数据的范围。
对于整数没有误差。
I=3/2=1;I=1/2=0INTEGER(KIND=4)::AINTEGER*4::AINTEGER(4)::A2 实型KIND值可以为4(单精度7位有效数字)、8(双精度15~17位有效数字)类型说明关键字:REAL小数表示形式、指数表示形式(规格化的指数形式)错误表示形式:E34、.E34、0.14E2.38开3次方:8.0**(1.0/3.0)3 复型KIND值为4、8是实数的有序对,将两个实数中间用逗号分隔,然后放在一对括号中类型说明关键字:COMPLEX复数的运算:+、—、*、/4 字符型KIND值为国家语言种类由一对单撇号或一对双撇号之间的字符序列组成。
编译原理第十章目标程序运行时的存储组织课前索引【课前思考】◇回顾通常的编译过程,能否找到本章所讲内容在哪个过程?◇为什么编译程序要考虑目标程序运行时存储区的管理与组织?◇请归纳C语言与PASCAL语言的程序结构与数据类型的不一致点【学习目标】全面熟悉目标程序运行时存储区的整体布局;每种存储区的组织方式与管理方法;并通过实例着重掌握,对同意过程嵌套定义的情况,栈式动态存储分配的组织方式与运行时进栈退栈的活动实现方法。
【学习指南】在代码生成前,编译程序务必进行目标程序运行环境的配置与数据空间的分配。
通常来讲,假如编译程序从操作系统中得到一块存储区以使目标程序在其上运行,该存储区需容纳生成的目标代码与目标代码运行时的数据空间。
我们这里所说的运行时的存储区组织,是指目标程序运行时的数据空间的管理与组织。
【难重点】◇目标程序运行时,存储区域的整体布局,与各区域的作用。
◇各类不一致类型的数据表示。
◇同意过程嵌套定义的情况,栈式动态分配的组织管理。
◇对过程的调用,进入与退出时,栈式动态分配的工作原理。
◇过程活动纪录的各项内容与它们的作用,与活动纪录的组织方式。
◇过程参数传递的不一致方式。
【知识结构】从逻辑上看,在代码生成前,编译程序务必进行目标程序运行环境的配置与数据空间的分配。
通常来讲,假如编译程序从操作系统中得到一块存储区以使目标程序在其上运行,该存储区需容纳生成的目标代码与目标代码运行时的数据空间。
数据空间应包含:用户定义的各类类型的数据对象(变量与常数)所需的存储空间,作为保留中间结果与传递参数的临时工作单元,调用过程时所需的连接单元,与组织输入/输出所需的缓冲区。
目标代码所占用空间的大小在编译时能确定。
有些数据对象所占用的空间也能在编译时确定,其地址能够编译进目标代码中。
而有些数据对象具有可变体积与待分配性质,无法在编译时确定存储空间的位置。
因此运行时的存储区常常划分成:目标区、静态数据区、栈区与堆区,如图10.1就是一种典型划分,代码(code)区用以存放目标代码,这是固定长度的,即编译时能确定的;静态数据区(static data)用以存放编译时能确定所占用空间的数据;堆栈区(stack and heap)用于可变数据与管理过程活动的操纵信息。
FORTRAN90学习指导一、FORTRAN90基础知识1.源程序及其构成书写格式:主程序定义语句、结束语句注意:在没有程序名称的时候,程序开头的PROGRAM也不要出现。
如果使用了程序名称且在END语句中出现,则END语句中的PROGRAM不能省略。
语句行可以是0~132个字符;除赋值语句外,每个语句都要使用关键字开头。
如果希望一行中出现多个语句,语句一定要用分号隔开。
空格不能随便使用,关键字、变量和常量名以及操作符中的空格会使字符失去其原有的含义。
但它们之间一定要加空格。
注释行:以感叹号为标记,或“C”、“*”(FORTRAN90中不提倡此用法)续行标记:在句末尾添加续行符&,如果将关键字分成两行,则下一行开头也要加续行标记。
如果续行符出现在注释语句中,则失去了续行的功能。
2.FORTRAN90字符集126个英文字母(大小写字母等价)210个阿拉伯数字3下划线421个特殊字符:空格= + - * / (), . ‘: !“% & ;< > ? $5其他字符(只可以出现在字符常量、字符串编辑描述符、注释和输入输出记录中)3.基本数据类型1 整型KIND值可以为1、2、4类型说明关键字:INTEGERKIND值决定数据的范围。
对于整数没有误差。
I=3/2=1;I=1/2=0INTEGER(KIND=4)::AINTEGER*4::AINTEGER(4)::A2 实型KIND值可以为4(单精度7位有效数字)、8(双精度15~17位有效数字)类型说明关键字:REAL小数表示形式、指数表示形式(规格化的指数形式)错误表示形式:E34、.E34、0.14E2.38开3次方:8.0**(1.0/3.0)3 复型KIND值为4、8是实数的有序对,将两个实数中间用逗号分隔,然后放在一对括号中类型说明关键字:COMPLEX复数的运算:+、—、*、/4 字符型KIND值为国家语言种类由一对单撇号或一对双撇号之间的字符序列组成。
第三章 FORTRAN 90 基础知识基本知识,如:字符集、名称、关键字、程序单元、书写格式、数据类型。
名称:①名称只能由英文字母、数字、下划线符“_”和美元符号“$”组成。
②名称第一个字符必须是英文字母。
③名称不能超过31个字符。
合法名称: Number,Max, PrOgRaM, FIND_IT, read, x, a3b7, china, total, x$y$z 。
非法名称:X-Y-Z, 8q, a.5, _wrong,U.S.A., DR.WANG,$abcd,r a t e 。
书写格式:自由格式,固定格式3个通用标志符:注释标志符“!”、语句分隔标志符“;”和续行标志符“&”。
数据类型第四章 内部数据类型与表控输入输出常量和变量:语法描述; 精度(kind 值)和取值范围整型。
实型。
复型。
字符型。
CH(1:5)是什么?逻辑型。
变量的申明(几种声明方式,谁优先)。
表达式 (会写正确的表达式,表达式计算结果)如:e算术表达式:算术运算符的优先级和结合规则;操作数的类型转换不同优先级运算符,“先高后低”结合先乘方、后乘除、再加减,括号最优先相同优先级运算符,“从左向右”结合,如9-4+12/3*2**3 = ?乘方算符,“从右向左”结合,如2**3**2 = ?尽量多地使用( ),以使意义明确,避免出现歧义和产生错误转换规则“由低级向高级转换”①数据类型和KIND相同的两个算术操作数,计算时不转换,运算结果的类型和KIND与原数据相同。
②数据类型相同但KIND值不同的两个算术操作数,计算时,将KIND值低的操作数转换为高KIND值,运算结果为高KIND值的原类型。
③数据类型不同的两个算术操作数,将低级别类型的操作数高级别类型,运算结果的类型及KIND值与高级别类型操作数相同。
字符表达式字符串连接操作符//“I” // ‘ ‘ // “Love” // ‘ ‘ // “Fortran 90” I Love Fortran 90逻辑变量逻辑与逻辑或逻辑非逻辑等于逻辑不等逻辑异或X Y X.AND.Y X.OR.Y.NOT.X X.EQV.Y X.NEQV.Y X.XOR.Y T T T T F T F FT F F T F F T TF T F T T F T TF F F F T T F F逻辑运算的优先级:.NOT. →.AND.→.OR.→.EQV.、.NEQV.、.XOR、相同优先级时,运算按从左到右的顺序进行(“左结合”)(3>5).and.(4>1))的计算结果是什么?赋值语句 (能写出正确的赋值语句)第五章数据的有格式输入输出I编辑符F编辑符E编辑符D编辑符A编辑符READ(*,*)a,bWRITE(*,*)a,bWRITE(1,"(1X,I5)")WRITE(1,100)100 FORMAT(1X,I5)Open(10, FILE=“FILE1.txt” ,STATUS=“new”)WRITE( * , '(1X, A, "=", I2)') '2+3', 2+3第六章选择结构程序设计逻辑IF语句块IF语句多支块IF语句会写多支块IF程序,块CASE语句第七章循环结构程序设计EXIT语句的功能是:在循环体执行过程中强制性终止整个循环语句的执行,转循环语句后的第一条语句执行。
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. 数组:数组类型用于表示多个相同类型的数据。
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) 产生一个种别值,它表示某一精度和范围。
FORTRAN90FORTRAN 90第一章绪论一、特点在FORTRAN 77的基础上增添了许多具有现代特性的功能、递归、数组直接运算、派生类型、指针和过程。
二、与FORTRAN 77的区别1、不区分书写格式2、不赞成语句标号3、不使用BLOCK DATA 数据块子程序、语句函数4、主程序以PROGRAM 开头,以END PROGRAM为结尾函数子程序:区分函数名与函数值5、不使用GOTO 10、STOP、PAUSE语句6、不使用DO 10 I=1,3,而以DO与END DO 匹配使用。
7、不使用:I-N规则、双精度、DATA语句、多条RETURN语句。
而使用REAL ::A=0,B=2.58、不使用COMMON语句,而用模块MODULE9、用假定形状数组取代假定大小数组10、DIMENSION A(10)在FORTRAN 90中不再定义数组11、FORMAT 语句不再使用第二章F ORTRAN 90 基础知识第2.1节语言元素一、字符集1、A-Z (26个)2、0-9 (10个)3、_(下划线)(1个)4、特殊符号(21个):空格、等号、加号、减号、*、/、(、)、,、.、’、:、!、”、%、&、;、<、>、?、$二、数据类型本身:INTEGER real complex character logical派生类型种别参数:对可移值数据精度和范围进行选择的机制,他提供了对每种内部数据类型的不同机器表示进行选择的参数化方式,种别参数均为整数。
用法:KIND=种别参数。
函数KIND(X)表示返回X的种别参数。
1、常量(字符型:双、单引号表示)常数的种别标示:例15_2 14.36_3 .false._4 5_’ang’带种别参数的常量的运算:15_2+14.36_3=29.36_3定义常量:REAL(KIND=2),PARAMETER::N=52、变量(1)变量名(程序名、常量、虚参、派生类型)命名规则:长度小于等于31个字符、须以字母开头、由字母、数字、下划线构成,其中不出现空格。
(完整版)FORTRAN90用法总结,推荐文档FORTRAN90用法总结1、数据类型整型 INTEGER实型 REAL复型 COMPLEX字符型 CHARACTER逻辑型 LOGICAL2、特殊函数1>定值函数PARAMETER(变量列表) 或类型说明符,PARAMETER::变量列表2>IMPLICIT 类型说明符(字母表)类型定义函数(默认I-N规则,取消IMPLICIT NONE)3>** 乘方4>STOP[标号]终止执行5>PAUSE[标号]暂停程序6>字符串长度函数 LEN(String)、 LEN_TRIM(String)7>除去字符串尾部空格 TRIM(String)8>字符串位置函数 INDEX(String1,String2)9>字符串比较函数LGE(String1,String2)LGT(String1,String2)LLE(String1,String2)LLT(String1,String2)10>字符串空格首位调整ADJUSTL(String)、ADJUSTR(String)11>字符串、ASSII码互相转化函数①化为ASSII码 ICHAR(String)、IACHAR(String)②化为字符串CHAR(I)、ACHAR(I)12>.LT.(<) .LE.(<=) .EQ.(=) .NE.(/=) .GT.(>) .GE.(>=)13>.AND.与 .OR.或 .NOT.非 .EQV.等于 .NEQV.不等 .XOR.异或3、IF函数1> 单支IFIF(逻辑表达式) THEN块语句END IF2> 双支IFIF(逻辑表达式) THEN块语句1ELSE块语句2END IF3>多支IFIF(逻辑表达式1) THEN块语句1ELSE IF(逻辑表达式2) THEN块语句1...ELSE IF(逻辑表达式N) THEN块语句NELSE块语句N+1END IF4>逻辑IFIF(条件表达式)可执行语句5>算术IFIF(算术表达式)标号1,标号2,标号3 标号1 可执行语句1 标号2 可执行语句2标号3 可执行语句3 4、CASE块SELECT CASE(表达式) CASE(表达式1)块语句1...CASE(表达式N)块语句NCASE DEFAULT默认块语句END SELSCT5、循环函数1>循环控制语句IF(e) EXIT 终止循环2>CYCLE跳出此次循环3>DO循环DO i=e1,e2[,e3]循环体END DO4>DO WHILE循环DO WHILE(逻辑表达式) 循环体END DO6、输入输出1>表控输入输出READ *,变量表PRINT *,输出表WRITE(*,*)输出表2>自定义输入输出标号 FORMAT(格式说明)3>其他编辑符①nX 向右跳过n个字符②nH 输出字符串③/ 换行④\ 连接7、数组1>说明数组DIMENSION 数组名类型说明,DIMENSION(维说明)::数组名2>数组赋初值DA TA 数组名/....../,数组名/....../,...3>动态数组①声明[类型],DIMENSION(:[,:]...),ALLOCA TABLE::数组名[类型],ALLOCATABLE::数组名(:[,:]...)...②申请ALLOCATE(数组名(维说明))③释放DEALLOCATE(数组名)8、子程序1>子程序CONTAINS(内部子程序的标志(外部EXTERNAL))[类型说明] FUNCTION 函数名(虚参表)函数体END2>子例行程序SUBROUTINE 子例行程序名(虚参表)函数体END调用CALL 子例行程序名(实参表)3>递归调用RECURSIVE FUNCTION(SUBROUTINE)函数名(虚参表) RESULT(返回值) 函数体END9、结构体1>定义TYPE [,ACCESS[::]] 派生类名称(ACCESS=PRIV ATE(私有),PUBLIC(公有)) 分量表END TYPE 派生类名称2>类型定义TYPE(派生类名称)::结构体变量名3>结构体成员引用①结构体名%成员名②结构体名.成员名4>定义的同时赋值TYPE(派生数据类型名)::结构体变量名=派生数据类型名(成员初值表)5>结构体数组TYPE(派生数据类型名),DIMENSION(维说明符)::结构体数组名10、指针1>定义指针类型说明,POINTER::指针变量名...类型说明,TARGET::目标变量名...P=>A2>动态变量例:INTEGER,POINTER::PINTEGER SALLOCA TE(P)P=4S=PDEALLOCA TE(P)PRINT *,SEND3>指针数组变量定义类型说明,DIMENSION(:...:),POINTER::指针变量名ALLOCATE(X(20))DEALLOCA TE(X)4>定义结点TYPE NODEINTEGER V ALUETYPE(NOPE),POINTER::NEXTEND TYPE NODE5>定义头指针TYPE LISTPRIV ATETYPE(NODE),POINTER::ENDEND TYPE LIST6>对指针初始化(对头指针清空)SUBROUTINE SETUP(L) TYPE(LIST)LNULLIFY(L%END)END SUBROUTINE SETUP。
fortran90知识点整理Fortran90关于变量说明的新功能:1.在变量说明的同时,可以给变量赋初值。
INTEGER::I=5,J=126REAL::X=7.2,Z,W=774.22.在说明变量的同时也可说明其种别REAL(KIND=4)::X,Y 或REAL(4)::X,Y3.在说明变量的同时,还可说明变量的属性INTEGER,PARAMETER::I=5,J=123Ps :PARAMETER 属性(1)功能:⽤⼀个符号代表⼀个常量,称为符号常量(常数)(2)写法:Real,Parameter ::G=9.8 &&说明类型时赋值(3)位置:位于可执⾏语句之前REAL,DIMENSION(1:10)::A2.3.6 派⽣数据类型根据需要⽽由基本数据类型定义新的数据类型。
在⼀个派⽣类型中可包含多个基本类型。
如:TYPE STUDENT (定义开始)CHARACTER(LEN=20)::DEPARTMENTCHARACTER(LEN=10)::CLASSCHARACTER(LEN=15)::NAMEINTEGER::NUMBER (成员定义)END TYPE STUDENT (定义结束)派⽣类型变量的定义:TYPE(STUDENT)::PERSON变量的赋值:PERSON=(”COMPUTER”,”92_2”,”LI LIN”,21)成员的表⽰:PERSON%CLASS=“92_2”PERSON%NAME=“LI LIN”主程序其他限制主程序的可执⾏部分不能包含有RETURN语句或者ENTRY语句。
程序名对可执⾏程序是全局的,⽽且不得于该可执⾏程序中的任何其它程序单元名、外部过程名或公⽤块名相同,也不得于主程序内的任何局部名相同。
在主程序的作⽤范围内的说明不得包含OPTIONAL语句、INTENT语句、PUBLIC语句或它们的等价属性,在主程序内SAVE语句不起作⽤。
主程序内的任何内部过程的定义必须跟在CONTAINS语句之后。