(完整版)FORTRAN90用法总结,推荐文档

合集下载

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)
实型 求正切

fortran90简易教程

fortran90简易教程

f90 real, parameter :: pi=3.14
real(8), parameter :: pi=3.1415926535d0
五、表达式 1. 算术表达式 运算符号+-* / 乘方**
*相同类型的数据,其计算结果仍为原类型
1/2=0 1./2.=0.5 *不同类型的数据之间进行混合运算时,将转换为同一类型(低级->高级),例如:
matmul(matrix_a,matrix_b) 矩阵相乘
dot_product(vector_a,vector_b) 向量点积
transpose(matrix) 转置矩阵
七、控制结构 1.if 语句 if (a>0 ) then
… elseif(a<0) then … else … endif
(逻辑型,.true. 或 .false.)主要不要漏写.
注意以下几点 1.Integer(1)、integer(2)赋值溢出,编译器不报错 比如 Integer(1):: x
x=128 write (*,*)x 输出:-128
而 integer、real、double precision 都可以判断溢出
integer x(3) real y(3,4) real(8) z(-2:2)
f90 integer ,dimension(3) :: x real ,dimension(3,4) :: y real(8), dimension(-2:2) ::z
数组赋值 x(1)=1 x(2)=3 x(3)=5
End
则输出二十个 1
2.1+(17/5)=2.1+3=2.1+3.0=5.1 2. 逻辑表达式
关系运算符:

fortran90总结第二章(部分) 林晓彤主编

fortran90总结第二章(部分) 林晓彤主编

第一章:类型说明(种别说明),属性说明1,属性说明2……Integer(kind=2),dimension(1:14),…….2.1程序program height_of_yaoimplicit noneinteger::height ,height_feet !声明整形变量real::h_inch,height_inches !声明实型变量integer,parameter::foot_inch=12 !整型符号常量real,parameter::inch_cm=2.54 !实型符号常量height=226 !身高厘米数h_inch=height/inch_cm !折合英尺print*,'The height is',h_inch,'inches.'height_feet=int(h_inch/foot_inch) !身高英尺数height_inches=h_inch-height_feet*foot_inch !身高英寸数print*,'The height is',height_feet,'feet',&height_inches,'inches.'end program height_of_yao!在不同处理器中,表示同样精度和范围的树枝,所采取的种别参数是不一样的。

2.2.1整形数据program testimplicit noneinteger::forty_two,sixty_three,max_byteforty_two=B'101010' !二进制赋值sixty_three=O"77" !十进制赋值max_byte=Z'ff' !十六进制赋值print*,'forty_two=',forty_two,'sixty_three=',sixty_three,'max_byte=',max_byteend program test'kind'的妙用:kind的数值依赖于处理器。

FORTRAN_90_复习

FORTRAN_90_复习

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整理

fortran90整理1语句编译1.Build—Compile:编译;Build—Build:连接;Build—Exetuce:运⾏;或单击⼯具栏相应按钮。

注意:a、保存⽂件时将⾃动创建同名的project⽂件,形成*.dsp⽂件;b、同时还将⾃动创建同名的workspace,形成*.opt和*.dsw⽂件;c、编译连接后⾃动形成Debug⽬录,该⽬录中存放编译连接后⽂件。

如:*.obj,*.lnk,*.exe等2.Free Format(⾃由格式)1.!感叹号后⾯的⽂本都是注释。

2.每⾏可以编写132个字符。

3.⾏号放在每⾏程序的最前⾯。

4.⼀⾏程序代码的最后如果是符号&,代表下⼀⾏程序会和这⼀⾏连接。

如果⼀⾏程序代码的开头是符号&,代表它会和上⼀⾏程序连接。

3.书写格式⾏的书写(⾏的长度、分⾏、续⾏)1⼀⾏可以是0~132个字符,空格有意义,2语句最长不超过2640个字符3⼀⾏可以有多个语句,⽤“;”分隔4⼀个语句可分⾏写,读⾏标记为&(放在尾部),但如为关键字,⾸尾均加&。

5最多可有511个续⾏。

4.语句的分类注释语句:!后的所有字符都被编译器忽略1.可独占⼀⾏,可在其它语句之后,a)空⾏为注释⾏(固定格式⽤C和*)2.说明语句:⽤于说明变量的类型、属性等3.可执⾏语句:输⼊、赋值、输出……5.语句有位置规定:说明语句必须出现在可执⾏语句之前,格式说明语句(FORMAT语句)除外。

6.标志符⼩结注释标志符:1⾃由格式:!固定格式:C *2语句分隔符:分号;(仅⾃由格式可以使⽤)3续⾏符:⾃由格式:&4申明标号:1到5位⽆符号整数5空格:关键字、变量、常量内部不能⽤空格,但相邻两者之间须⽤空格6.FORTRA90源程序基本结构1、FORTRAN90程序是⼀种分块结构,由若⼲个程序单元块组成:主程序、外部⼦程序、模块、块数据单元⽆论是主程序单元,还是⼦程序单元,都是独⽴的程序单位,应该独⽴编写,它们的形式相似。

第三章FORTRAN90基础知识

第三章FORTRAN90基础知识
使 用 变 元 关 键 字 可 提 高 程 序 的 可 读 性 , 如 内 部 函 数 CMPLX ( X [ , Y] [ , KIND] ) 的X、Y和KIND为变元关键字,可使用 下面语句调用CMPLX函数:
CMPLX (10, 20, 4)
! 按序指定参数。
CMPLX (y=20, kind=4, x=10) ! 按变元关键字指定参数。
_wrong,U.S.A.,
下面是几个使用合法名称的语句例子。
INTEGER total
!total命名了一个整型变量
SUBROUTINE example !example命名了一个过程
PROGRAM area
!area命名了一个程序单元
Lable:DO I=1,N !Lable命名了一个DO循环
第三章 FORTRAN 90基础知识
3.3 关键字/示例
END FUNCTION mul(x,y)
mul=x*y END FUNCTION
第三章 FORTRAN 90基础知识
09/10秋学期
概述 分类 描述 示例
3.4 程序单元
一个F90程序可由多个程序单元组成(至少一个主程序单元)。 程序单元由数据声明和相关操作(语句)构成,必须用END语句结束。
3.2 名称
概述 语法描述 作用域 示例
<名称>→<英gt;∣“_”∣“$”}
说明: ① 名称只能由英文字母、数字、下划线符“_”和美元
符号“$”组成。 ② 名称第一个字符必须是英文字母。
3.2 名称/语法描述
③ 名称不能超过31个字符。
第三章 FORTRAN 90基础知识
模块单元:能被其它程序单元访问的一组定义(数据类型定义、 过程定义)、过程接口定义)所构成的程序单元,其中模块子程序 允许本模块或其它程序单元调用执行。由MODULE语句开始。

FORTRAN 90

FORTRAN 90

FORTRAN 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-知识点整理

U(部件)
*:
系统约定设备
某个值: 指定通道号(设备逻辑号、文件号)
f(格式)
表控格式 I/O(*): 系统约定的格式。 基本格式(自定格式)I/O:按用户要求的格式组织 I/0。 带控制信息表的 I/O:
I:碰到回车(ENTER)为一个记录。 O:一行为一个记录。
程序执行过程中按表控格式输入数据 各数据间有分隔符: ,或空格 类型匹配:整型:带小数点只取整数部分;
1、计算条件表达式的值
2、真
右边语句
IF 的下一个语句
3、假
IF 的下一个语句
注意:
1.右边通常为一条且只一条可执行语句。
错例:IF (A<B) T=A;A=B;B=T
2.不能为以下语句:
END、另一个逻辑 IF、 块 IF、ELSIF、ENDIF、DO
错例:IF(X<2)END
3.常应用于简单的条件赋值或条件转移(在循环结构中)
USE 模块 1,模块 2,…
基本语句概述 程序的最基本的语句主要有四种:类型说明语句、赋值语句、输入语句、输出语句。运用 这些基本的语句,就可以编写一些简单的程序。 内在函数 FORTRAN 90 配置的函数称为内在函数。内在函数分为三种: 基本函数 :
SIGN 符号 函数值:|A1|(若 A2>0)
整型→实型→ 双精度 →复型 例: 8/5+2.0*5/2=6.0(逐步转化)
赋值语句
1、类型要求 逻辑型、字符型的赋值语句要求“=”两边类型相同 数值型赋值,不区别整型、实型和复型 2、种别方面 字符型要求种别相同 其余类型的 e、V 种别允许不同 输入输出语句 1、I/O 的对象 ——列在<I/O 表>中

FORTRAN90指导

FORTRAN90指导

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值为国家语言种类由一对单撇号或一对双撇号之间的字符序列组成。

第一章FORTRAN90概述

第一章FORTRAN90概述
开始
Y=2000
Y不能被 4整除
Y
N
Y不能被100 整除
N
N
打印Y “不是闰年” Y能被 400整除
Y
打印Y “是闰年”
Y
打印Y “是闰年” 打印Y “不是闰年”
Y=Y+1
Y
Y≤2500
N 结束
3.2 用N-S图表示算法
成立
P
不成立
A B 顺序结构
A
B
选择结构
当P1 A A 直到P2
当型循环
直到型循环
变量
•变量:在程序运行过程中其值可以发生变化。 每个变量都会分配到一个相应的存储空间,这个 空间就是该变量的存储地址,是相对固定的。
变量必须有名字和类型,它的值可以变化,与其类 型密切相关 变量名是变量的标志。 命名规则:以字母开头,由字母、数字、下划线组 成的字符串,允许长度为31个字符,并且不区分大小 写字母:Ab和 aB 是同一变量。 同一个程序模块中不能有相同名字的两个变量。 最好不要用FORTRAN中用到的名字作变量名。 FORTRAN中所有名字都遵守命名规则
例:求三个数(5,10,23)的平均值。
PROGRAM TEST ! 计算三个数的平均值 A=5;B=10;C=23 ave=(A+B+C)/3 write(*,*) 'AVE=',ave
END PROGRA&
&M TEST !注意续行方法
§1.5 FORTRAN 90字符集 FORTRAN90字符集包括:
§1.3 FORTRAN
90语言的特点
对FORTRAN77的扩充主要有:
引入数组运算
提高数值计算功能 内在数据类型参数化 用户定义的数据类型、运算和赋值 引入模块数据及过程定义的功能 引入指针概念

FORTRAN90复习

FORTRAN90复习

第三章 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语句的功能是:在循环体执行过程中强制性终止整个循环语句的执行,转循环语句后的第一条语句执行。

(最新整理)FORTRAN90第四章格式输入输出

(最新整理)FORTRAN90第四章格式输入输出
I=2345
WRITE(*,’(1X,I4)’)I,则输出结果为2345
2021/7/2W6 RITE(*,’(I4)’)I,则输出结果为345
13
定位编辑符:控制输入输出位置,称制表位。Tn 移动到第n列;TLn向左移动n列;TRn向右移动n列。 很显然,后两种移动是相对于当前位置的。例 如:READ(*,’(I4,TL3,I4)’)I, J
(最新整理)FORTRAN90第四章格式输入输出
2021/7/26
1
§4 格式输入输出
格式化输出/输入的具体格式由“格式说 明”规定。
格式说明是由各种格式编辑符组成的字符 串。编辑符之间用逗号(,)分隔。
例:3X,I5,F8.3,L2,A
一个数据所占列数叫“字段宽度”,用w表 示。负数的符号也包含在字段宽度之内。
当 输 入 数 据 为 12345678 时 , 执 行 该 语 句 后 I=1234,J=2345
/编辑符表示:结束本记录的输入输出并开 始下一个记录的输入输出。例如:
WRITE(*,’(1X,I3/1X,I4)’)I,J
当I=123,J=4567时,输出为
123
2021/7/26
14
4567
如果格式说明中有连续的相同的编辑符,可 以用重复系数“合并同类项”。 例 :FORMAT(1X,F8.3,F8.3,F8.3,F8.3) 等 价 于 FORMAT(1X,4F8.3)
•纵向走纸控制符.FORTRAN规定,输出记录的第
一个字符作纵向走纸控制符,不输出.实际输出从
输20出21/7/记26 录的第二个字符开始.
12
第一个字符 纵向走纸控制
空格 0 1 +
其它字符

Fortran用法小结

Fortran用法小结

Fortran用法小结目录:一、说明二、概述三、数据类型及基本输入输出四、流程控制五、循环六、数组七、函数八、文件一、说明本文多数内容是我读彭国伦《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和Fortran90。

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"以外的任何字符。

F90第三章

F90第三章

第三章 FORTRAN 90基础知识
3.4 程序单元
概述 分类 描述 示例
一个F90程序可由多个程序单元组成(至少 有一个主程序单元),程序单元由数据声明和 相关数据操作语句构成,必须用END语句结束。
PROGRAM main INTEGER length,width,area,price
3.1 字符集
FORTRAN 90字符集由四部分字符组成: 1.英文字母:A~Z和a~z 除字符型常量外,源程序中不区分字母 大小写。
2.阿拉伯数字:0~9
3.1 字符集/字符集
3.下划线:_
4.特殊字符:空格 + - * / ( ) , . ‘:!“%&;<>?$=
第三章 FORTRAN 90基础知识
3.7 数据类型
概述 数据 数据表示 数据类型
数据类型是数据取值范围和在其上定义 的一组操作的总称。数据类型有四个性质:
每个数据类型有一个唯一的名称。
每个数据类型规定了一个取值范围。
每个数据类型规定了其常量数据的表示方法。
3.7 数据每类型/数个据类型数据类型规定了一组操作。
F90具有丰富的数据类型,有内部数据类型、派 生数据类型、数组和指针类型等。
3.8 兼容性问题
3.2 名称
概述 语法描述 作用域
名称(标识符)在程序中用来标识有关实 体(如:变量、命名常量、函数、过程、程序 单元、公用块、和哑元等)。
PROGRAM main INTEGER length,width,area,price READ*,length,width area=mul(length,width)
<主程序单元>→ [ <PROGRAM语句> ] [ <说明部分> ]

FORTRAN90指导(汇编)

FORTRAN90指导(汇编)

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文件操作

(完整版)fortran文件操作

fortran文件操作From: 《Fortran 95 程序设计》彭国伦1.文件读取的概念:读取:“顺序读取”和“直接读取”。

保存:“文本文件”和“二进制文件”。

二进制文件:读取快,因为保存格式和数据在内存中的保存方法一样,同时也节省空间。

----------------------------------2. 文件的操作:----------------------------------open的使用:使用open命令打开文件之后,就可以对文件来做输入输出。

example:program ex0901impicit noneopen(unit=10, file='hello.txt') ! 打开hello.txt文件, unit指定文件代码,file 指定文件名称。

write(10, *) "hello" !在代码为10的文件中写入hellostopend program ex0901open中有很多参数可以使用,详细如下:OPEN(UNIT=number, FILE='filename', FORM='...', STATUS='...', ACCESS='...', RECL=length, ERR=label, IOSTAT=iostat, BLANK='...', POSITION='...', ACTION=action, PAD='...', DELIM='...')UNIT='number': number必须是一个正整数,它可以使用变量或是常量来赋值。

number最好避开1,2,5,6。

因为2,6是默认的输出位置,也就是屏幕。

1,5则是默认的输入位置,键盘。

FILE='filename':指定要打开的文件名称,文件名要符合系统规定。

(完整版)FORTRAN90用法总结,推荐文档

(完整版)FORTRAN90用法总结,推荐文档

(完整版)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。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
可执行语句
5>算术IF
IF(算术表达式)标号1,标号2,标号3
标号1 可执行语句1
标号2 可执行语句2
标号3T CASE(表达式)
CASE(表达式1)
块语句1
...
CASE(表达式N)
块语句N
CASE DEFAULT
默认块语句
END SELSCT
5、循环函数
1>循环控制语句
END IF
2> 双支IF
IF(逻辑表达式) THEN
块语句1
ELSE
块语句2
END IF
3>多支IF
IF(逻辑表达式1) THEN
块语句1
ELSE IF(逻辑表达式2) THEN
块语句1
...
ELSE IF(逻辑表达式N) THEN
块语句N
ELSE
块语句N+1
END IF
4>逻辑IF
IF(条件表达式)
标号 FORMAT(格式说明)
3>其他编辑符
①nX向右跳过n个字符
②nH输出字符串
③/换行
④\连接
7、数组
1>说明数组
DIMENSION数组名
类型说明,DIMENSION(维说明)::数组名
2>数组赋初值
DATA数组名/....../,数组名/....../,...
3>动态数组
①声明
[类型],DIMENSION(:[,:]...),ALLOCATABLE::数组名
10、指针
1>定义指针
类型说明,POINTER::指针变量名...
类型说明,TARGET::目标变量名...
P=>A
2>动态变量
例:INTEGER,POINTER::P
INTEGER S
ALLOCATE(P)
P=4
S=P
DEALLOCATE(P)
PRINT *,S
END
3>指针数组变量定义
类型说明,DIMENSION(:...:),POINTER::指针变量名
6>对指针初始化(对头指针清空)
SUBROUTINE SETUP(L)
TYPE(LIST)L
NULLIFY(L%END)
END SUBROUTINE SETUP
IF(e) EXIT 终止循环
2>CYCLE
跳出此次循环
3>DO循环
DO i=e1,e2[,e3]
循环体
END DO
4>DO WHILE循环
DO WHILE(逻辑表达式)
循环体
END DO
6、输入输出
1>表控输入输出
READ *,变量表
PRINT *,输出表
WRITE(*,*)输出表
2>自定义输入输出
ALLOCATE(X(20))
DEALLOCATE(X)
4>定义结点
TYPE NODE
INTEGER VALUE
TYPE(NOPE),POINTER::NEXT
END TYPE NODE
5>定义头指针
TYPE LIST
PRIVATE
TYPE(NODE),POINTER::END
END TYPE LIST
[类型],ALLOCATABLE::数组名(:[,:]...)...
②申请
ALLOCATE(数组名(维说明))
③释放
DEALLOCATE(数组名)
8、子程序
1>子程序
CONTAINS(内部子程序的标志(外部EXTERNAL))
[类型说明] FUNCTION函数名(虚参表)
函数体
END
2>子例行程序
SUBROUTINE子例行程序名(虚参表)
LGT(String1,String2)
LLE(String1,String2)
LLT(String1,String2)
10>字符串空格首位调整
ADJUSTL(String)、ADJUSTR(String)
11>字符串、ASSII码互相转化函数
①化为ASSII码 ICHAR(String)、IACHAR(String)
函数体
END
调用CALL子例行程序名(实参表)
3>递归调用
RECURSIVE FUNCTION(SUBROUTINE)函数名(虚参表) RESULT(返回值)
函数体
END
9、结构体
1>定义
TYPE [,ACCESS[::]]派生类名称(ACCESS=PRIVATE(私有),PUBLIC(公有))
分量表
3>** 乘方
4>STOP[标号]终止执行
5>PAUSE[标号]暂停程序
6>字符串长度函数 LEN(String)、 LEN_TRIM(String)
7>除去字符串尾部空格 TRIM(String)
8>字符串位置函数 INDEX(String1,String2)
9>字符串比较函数
LGE(String1,String2)
②化为字符串CHAR(I)、ACHAR(I)
12>.LT.(<) .LE.(<=) .EQ.(=) .NE.(/=) .GT.(>) .GE.(>=)
13>.AND.与 .OR.或 .NOT.非 .EQV.等于 .NEQV.不等 .XOR.异或
3、IF函数
1> 单支IF
IF(逻辑表达式) THEN
块语句
FORTRAN90用法总结
1、数据类型
整型 INTEGER
实型 REAL
复型 COMPLEX
字符型 CHARACTER
逻辑型 LOGICAL
2、特殊函数
1>定值函数 PARAMETER(变量列表) 或 类型说明符,PARAMETER::变量列表
2>IMPLICIT 类型说明符(字母表)类型定义函数(默认I-N规则,取消IMPLICIT NONE)
END TYPE派生类名称
2>类型定义
TYPE(派生类名称)::结构体变量名
3>结构体成员引用
①结构体名%成员名
②结构体名.成员名
4>定义的同时赋值
TYPE(派生数据类型名)::结构体变量名=派生数据类型名(成员初值表)
5>结构体数组
TYPE(派生数据类型名),DIMENSION(维说明符)::结构体数组名
相关文档
最新文档