fortran90-知识点整理
FORTRAN90第2章
2.3 变量
3.变量的类型 变量类型说明一般形式: 变量说明符[ [,属性] … :: ] 变量列表 类型说明符可以是固有的或派生的,基本类型变 量说明符: INTEGER REAL、DOUBLE PRECISION COMPLEX LOGICAL CHARACTER 通常要求::不省略
2.2 常量
主要了解: • 常量的概念 • 固有数据类型及其常量表示
2.2.1 固有数据类型
• 固有数据类型有五种:
– – – – – 整型( INTEGER) 实型(REAL) 复型(COMPLEX) 字符型(CHARACTER) 逻辑型(LOGICAL)
1、整型数据
• – – – – 整型表示: INTEGER INTEGER INTEGER INTEGER
2、实型数据
• 实型表示: – REAL或REAL ( 4 ) 表示单精度实数 – REAL ( 8 ) 或 DOUBLE PRECISION 表示双精度实数
2、实型数据
• 每种实型数据所占的字节和范围:
数据类型 REAL (4 ) REAL (8 ) 或
DOUBLE
字 节
精 度
范 围
负数: -3.40282347E+38~-1.17549435E-38 正数: +1.17549435E-38~+3.40282347E+38 负数: -1.7976931348623158D+308 ~ -2.2250738585072013D-308 正数: +2.2250738585072013D-308 ~+1.7976931348623158D+308
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概述
用类型说明语句定义变量的类型 ,可以改变隐含说 明语句和“I--N”规则的约定,有六种类型语句: INTEGER(整型说明语) REAL (实型说明语句) DOUBLE PRECISION(双精度型) COMPLEX (复型说明语句) LOGICAL(逻辑型说明语句) CHARACTER(字符型说明语句) 例:INTEGER A,K3,MAXW,CL REAL AREA,KEY,MAXL 类型说明语句优先级高于隐含说明语句 ,又高于隐 含规则 说明语句是非执行语句,应出现在所有执行语句前, 隐含说明语句还必须出现在类型说明语句前。
每条READ语句都从新的输入行开始读数。
输入数据类型要正确。 数据的之间用空格或逗号或回车符来分隔。 输入数据只有在按下回车键之后才有效。在上 机操作时,一定要记得在输入数据后按回车。 当输入数据中有 /符号时 ,/后面的输入数据没有 作用;如果/前面输入的数据不够用,其余要输入 的数据已经有值的保持不变,否则,数值(算术)型 与字符型数据取零值 ; 逻辑型数据取真值 ; 输入 多余的数据是没有作用的。 输入的数据,算术型数据必须是与对应的变量有 相同类型的常量 ; 字符型数据 , 当长度不够时以 空格填充 , 当长度超过时截掉多余部分 ; 逻辑型 可用以T或F或.T或.F打头的任意字符串输入。
例:求三个数(5,10,23)的平均值。 PROGRAM TEST ! 计算三个数的平均值 A=5;B=10;C=23 ave=(A+B+C)/3 write(*,*) 'AVE=',ave END PROGRA&
&M TEST !注意续行方法
§1.4 FORTRAN 90字符集 FORTRAN90字符集包括: 1) 大写与小写英文字母
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基础知识
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 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-知识点整理
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基础知识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程序设计1、2、3
[例2-1]
PROGRAM H_TO_C !Given the F temprature,to calculate the Centigrade REAL::TC,TH READ *,TH TC=5*(TH-32)/9 PRINT *,TH,TC END PROGRAM H_TO_C
[例2-2] PROGRAM CAL_M_SUM IMPLICIT NONE INTEGER::N,M REAL::T,A N=0;T=0 PRINT *,'Input number of data:' READ *,M DO READ *,A T=T+A ;N=N+1 IF(N>=M)EXIT END DO PRINT *,T END PROGRAM CAL_M_SUM
输出结果S
[例1-1]N-S图
FORTRAN 语言的发展 源程序及其构成
语言元素
程序单元概念
FORTRAN 是 FORmula TRANslation 的缩写 1954年 1978年 第一个FORTRAN文本的提出 推出FORTRAN77
1991年
FORTRAN90问世
几个简单的FORTRAN90程序 FORTRAN90程序的构成
PROGRAM CAL_FACTOR IMPLICIT NONE INTEGER::FACTOR,S=0,I DO I=4,8 S=S+FACTOR(I) END DO PRINT *,'S=',S END PROGRAM CAL_FACTOR
FORTRAN90程序的构成
1.FORTRAN90是分块形式的程序,一个程序含有 多个程序单元,每个程序有且仅有一个主程序单元。 2.各程序单元由若干行构成。程序行主要有: 说明语句行 可执行语句行 注释行(用!开始)
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语句的功能是:在循环体执行过程中强制性终止整个循环语句的执行,转循环语句后的第一条语句执行。
总结
(八)字符处理 1.字符串、字符型变量和字符型数组。 2.字符型数据的赋值和运算。
3.字符型数据的输入与输出。
(九)文件
1.文件与记录的概念。 2.文件的打开与关闭。
3.顺序文件的存取方法。
4.直接文件的存取方法。
练习题:
一、填空题: 1.表达式1 / 2 * 3.6 + 1.3的值是 。
2.若A=2,B=7.5,C=-3.6,L1 = .TRUE.,L2 = .FALSE.。
Fortran90 程序设计
课程总结
(一)FORTRAN程序的结构、书写规则 1.FORTRAN程序的构成(主程序和子 程序)。 2.FORTRAN源程序的书写格式。
(二)、数据类型及其运算 1.常量和变量的类型(整型、实型、双精度型、 复型、逻辑型、字符型) 2.定义变量类型的方法(用I——N规则隐式说明 和显示说明)。
则表达式 .NOT. L2 .OR. B – A <= C /2 .AND. C>= -3.6的值 是 。
3.若DO I=1.5, 3.6 , 1.2,计算循环次数是
4.若I=10,J=20,A=12.3,B=156.0,C=846.0, 执行语句PRINT ‘(1X, I3, I4/1X, 3F6.1)’, I, J, A, B, C
3.符号常量及其定义方法(PARAMETER语句)。
4.运算符及运算优先级。 5.表达式(算术表达式、关系表达式、逻辑表 达式和字符表达式)及其求值规则。不同类型 数据的混合运算。
(三)最基本的语句
1.赋值语句(算术、逻辑和字符型赋值语句)。 2.表控格式的输入和输出。 3.格式输入与输出。 (1)格式编辑符(X、H、I、F、E、D、A、L、/ ),Байду номын сангаас式的重复作用。 (2)格式语句与输入输出语句(包括READ, WRITE语句)的相互作用。 (3)在输入输出语句中包括含格式说明的方法。
FORTRAN90第1章
【方法】 采取自顶向下、逐步求精、模块化设 计和结构化编码的分析方法。
4 结构化程序设计
【自顶向下】 是指对设计的系统要有一个全面的理解,从问题的 全局入手,把一个复杂问题分解成若干个相互独立的子 问题,然后对每个子问题再作进一步的分解,如此反复, 直到每个问题都容易解决为止。 【逐步求精】 是指程序设计的过程是一个渐进的过程,先把一个 子问题用一个程序模块来描述,再把每个模块的功能逐 步分解细化为一系列的具体步骤,以至能用某种程序设 计语言的基本控制语句来实现。逐步求精总是和自顶向 下结合使用,一般把逐步求精看作是自顶向下设计的具 体表现。
• 算法:对解决一个实际问题而采取 的方法和步骤的描述 • 数据结构+算法=程序 • 算法分类:
数值运算算法和非数据运算算法
算法基本特征
• (1)输入性 • (2)输出性 • (3)确定性 • (4)有效性
• (1)正确性 • (2)可读性 • (3)健壮性 • (4)效率与低存储量需求
4 结构化程序设计
【模块化设计】 其设计思想实际上是一种“分而治之”思想,把一 个大任务分为若干个子任务。一般来讲,一个程序由一 个主控模块和若干个子模块组成。
4 结构化程序设计
【结构化编码 】 在设计好一个结构化的算法之后,还 要善于进行结构化编码。所谓编码就是将 已设计好的算法用计算机语言来表示,即 根据已经细化的算法正确地写出计算机程 序。
2 算法的描述
(1)用自然语言表示 (2)用传统流程图表示 (3)用N_S流程图表示 (4)用伪代码表示
流程图表示算法
常用的符号:
起始框
数据输入输出框 处理框图
流程线
判断框
连接点
流程图表示算法三种基本结构
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语句> ] [ <说明部分> ]
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) 产生一个种别值,它表示某一精度和范围。
Fortran90-数据类型
双(单)引号不属于字符串
2024/10/23
FORTRAN90
21
2.当字符中出现单(双)引号时,有两种表 示方法。
1)当字符为"时,用´将字符串括起; 当字符为´时,用"将字符串括起。
2)将单(双)引号重复一次。
例: fh"dl ´fh"dl´ "fh""dl"
I’m a teacher "I´m a teacher" ´I´´m a teacher´
2024/10/23
FORTRAN90
7
2024/10/23
FORTRAN90
8
5.4 复型数据
一、复型常量的形式:
(实型数1,实型数2)
低 级
表示:实型数1+实型数2*I
向 高
级
复型数据的类别类型
转
换
1.默认复型:当省略类别类型参数时, 的
则称此复型数据为默认复型。
原 则
2.实部及虚部类型不同时,复型数据的
FORTRAN90
33
比较字符串大小
• ‘that’ ‘this’ • ‘FORTRAN’ ‘FORTRAN90’ • ‘FORTRAN’ ‘FORTRAN ’ • ‘FORTRAN 90’ ‘FORTRAN90’ • ‘FORTRAN90’ ‘fortran90’
先化为双精度型, 化为双精度型,
再赋值
赋值
直接赋值
将实部扩展为 双精度型,赋
值
复型
化为实型,加虚 部0,变成复型,
再赋值
舍去多余有效数字,
实部赋值,虚部 化为实型,再赋值,
赋0
虚部赋0
(完整版)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。
fortran90整型定义初始化
fortran90整型定义初始化摘要:一、引言二、Fortran90 整型定义1.整型数据类型2.整型变量定义与初始化三、整型变量的使用1.整型变量在Fortran90 中的表示2.整型变量的运算与操作四、整型变量与实型变量的转换1.隐式转换2.显式转换五、总结正文:Fortran(Formula Translation)是一种高级编程语言,主要用于数值计算和科学计算领域。
Fortran90 是Fortran 语言的一个版本,它具有许多现代编程语言的特性,例如结构体、模块化等。
在Fortran90 中,整型定义和初始化是编程的基础,下面我们来详细了解一下。
一、引言Fortran90 中,整型数据类型是一种基本的数据类型,用于表示整数。
在编程过程中,我们需要对整型变量进行定义和初始化,以便后续进行运算和操作。
二、Fortran90 整型定义1.整型数据类型在Fortran90 中,整型数据类型包括:integer、logical、character 等。
其中,integer 表示整数类型,取值范围为-2147483648 到2147483647。
logical 表示逻辑类型,取值范围为.FALSE.和.TRUE.。
character 表示字符类型,用于表示单个字符或字符串。
2.整型变量定义与初始化在Fortran90 中,我们可以使用以下方式定义和初始化整型变量:```integer :: a = 10logical :: b = .TRUE.character :: c = "A"```这里,我们定义了三个整型变量a、b、c,并分别为它们赋值。
三、整型变量的使用1.整型变量在Fortran90 中的表示在Fortran90 中,我们可以使用整型变量进行各种运算和操作,例如加法、减法、乘法、除法等。
```integer :: a, b, ca = 10c = a + b```这里,我们定义了两个整型变量a 和b,并将它们的和赋值给变量c。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
WRITE (*,”(I3,I5,I7)”)J,K,L
□10□□-12□□□□123
注意:
1.数字在指定的区域内右端对齐,不足w则左边补空格。
2.负数的符号也包含在字段宽度内
3.如果应输出的列数超过了规定的字段宽度,则不输出有效数据,以w个*填充。
4、BN, BZ:Blank interpretation
3、假IF的下一个语句
注意:
1.右边通常为一条且只一条可执行语句。
错例:IF (A<B) T=A;A=B;B=T
2.不能为以下语句:
END、另一个逻辑IF、块IF、ELSIF、ENDIF、DO
错例:IF(X<2)END
3.常应用于简单的条件赋值或条件转移(在循环结构中)
4、不论条件真假都执行IF的下一个语句
注意:5/2=2 1/2=0!!
运算对象类型不同时,系统一般先转换成相同类型后再运算
转换规则是:较低级的类型转换为较高级的类型
数据类型隐含的高低次序为(由低到高):
整型→实型→双精度→复型
例:8/5+2.0*5/2=6.0(逐步转化)
赋值语句
1、类型要求
逻辑型、字符型的赋值语句要求“=”两边类型相同
数值型赋值,不区别整型、实型和复型
2、种别方面
字符型要求种别相同
其余类型的e、V种别允许不同
输入输出语句
1、I/O的对象——列在<I/O表>中
I/O是相对于内存而言的,
键盘属于输入设备,
显示器属于输出设备,
优盘、硬盘既是输入设备,又是输出设备。
2、I/O的方向及语句
READ(U,f)<I/O表> U:设备(部件) f:格式
COMPLEX(X,Y,KIND):将X,Y转换为复型,以KIND的值作为种别参数
查询函数
KIND()
SELECTED_INT_KIND()
SELECTED_REAL_KIND
PRECISION()
RANGE()
……
不轻易使用整型量除整型量1.0/2 2.0**(-1)
运算对象类型相同时,运算结果的类型为同一类型
IF结构可:无名或有名
IF结构的取名与变量的取名方法相同
IF结构名:IF (e1) THEN
块1
ELSEIF (e2) THEN[IF结构名]
块2
…
ELSEIF(en) THEN[IF结构名]
块n
ELSE [IF结构名]
块n+1
END IFIF结构名
同一IF结构中的结构名一定要一致!
CASE结构
使用范围:多分支结构
3.如果均不匹配,则执行默认块
4.执行END Select的下一个语句
情况表达式:
整型变量、逻辑变量、字符型变量或相应的表达式
不能是实型或复型表达式
表达式列表(情况选择器):
只能是常量,不能为变量,可有多条语句;
类型与情况表达式类型应一致,尤其字符型时种别参数必须一致,但长度可以不同;
,(逗号)分隔符表示分隔单个值的列表。
Eg : SIGN(-3.0,2.0)=3.0
SIGN(3.0,-2.0)=-3.0
某些函数参数只能为实型
如:log(2.0) (loG(2)错)
转换函数
函数名
含义
FORTRAN举例
INT(X)
实型转换整型、
复型的实部转换整型
INT(2.3)=2
INT((1.2,3.5))=1
REAL(X)
整型转换实型、
Fortran90关于变量说明的新功能:
1.在变量说明的同时,可以给变量赋初值。
INTEGER::I=5,J=126
REAL::X=7.2,Z,W=774.2
2.在说明变量的同时也可说明其种别
REAL(KIND=4)::X,Y或REAL(4)::X,Y
3.在说明变量的同时,还可说明变量的属性
INTEGER,PARAMETER::I=5,J=123
TYPE(STUDENT)::PERSON
变量的赋值:
PERSON=(”COMPUTER”,”92_2”,”LI LIN”,21)
成员的表示:
PERSON%CLASS=“92_2”
PERSON%NAME=“LI LIN”
主程序其他限制
主程序的可执行部分不能包含有RETURN语句或者ENTRY语句。
程序名对可执行程序是全局的,而且不得于该可执行程序中的任何其它程序单元名、外部过程名或公用块名相同,也不得于主程序内的任何局部名相同。
Specifies interpretation of blanks in numeric fields(空格是否当0处理)仅用于输入格式语句,如
read“(BN,2I3)”,I,J
例2.如果将格式串改为:
“(I3,I5.4,I7.5)”
则输出:
□10-0012□□00123
例3.如果L=123456
WRITE
其中:输入READ语句
输出PRINT语句,只输出到显示器
WRITE语句,适合任何输出设备
U(部件)、文件号)
表控格式I/O(*):系统约定的格式。
f(格式)基本格式(自定格式)I/O:按用户要求的格式组织I/0。
带控制信息表的I/O:
I:碰到回车(ENTER)为一个记录。
注意:
1. IF—then标记语句的开始,ENDIF与之匹配,标记语句块结束
2.条件表达式写法
IF结构的缺省形式:
缺省ELSE块:
IF(lexp)THEN
语句体1
ENDIF
缺省THEN块:
IF(lexp)THEN
ELSE
语句体2
ENDIF
多分支结构
方法1:转化为单分支,逻辑IF语句并列
方法2:逐次二分,转化为块IF结构嵌套
O:一行为一个记录。
程序执行过程中按表控格式输入数据
各数据间有分隔符:,或空格
类型匹配:整型:带小数点只取整数部分;
复数:(实部,虚部);
字符:‘一串字符’:赋值时长度转化或一串字符即‘’可省略。
逻辑:以T或F作为第一个字母的字符串(点号1个、空格多个在前忽略)
3.输入的数据必须是常数,不能是变量和表达式
如:TYPE STUDENT (定义开始)
CHARACTER(LEN=20)::DEPARTMENT
CHARACTER(LEN=10)::CLASS
CHARACTER(LEN=15)::NAME
INTEGER::NUMBER(成员定义)
END TYPE STUDENT(定义结束)
派生类型变量的定义:
关系运算符:
>、>=、<、<=、==(等于)、/=(不等于) (常用)
.GT.、.GE.、.LT.、.LE.、.EQ.、.NE.
注意
1、每个关系表达式中的关系运算符只准出现1次,运算符两侧都是表达式;
错例:2<X<3(2.LT.X.LT.3)或(a>b)<c
2、运算对象:
关系运算符两边的运算对象类型应相容:
□10-0012□123456
!!Iw.m:m<位数,则按照实际数输出
实型编辑符
1.编辑符格式
[r]Fw.d将数据按小数形式输出
[r]Ew.d将数据按指数形式输出
[r]Gw.d根据数据大小决定采用E或F格式
r—重复系数
w—字段宽度(总宽度)
d—小数部分宽度
F编辑符
功能:用于实数编辑,小数形式的输出(定点数:单精度实数,4个字节,7个有效数字)
如输入2+1,则出错。
4.输入数据个数:
1)不得少于变量的个数;
2)可分行输入;
3)多余的数据不起作用
5.空格可以多个,/表示输入数据结束,后面的数据被取消,没有输入数据的变量值为原值;
Read*,A,B,C
输入:2,1/3
结果:A=2 B=1 C=0
6、如果几个连续变量需要赋同一个值,可以使用重复因子r,即r*[c]:r为重复数
类型运算符优先级
括号()1
算术运算**2
*,/3
+,-4
关系运算>,>=,<,<=,==,/=5
逻辑运算.NOT.6
.AND.7
.OR.8
.EQV.,.NEQV.9
IF语句
使用范围:特殊单分支
语句写法:
IF(条件)一条语句
例:IF (X>0) PRINT*,X
执行过程:
1、计算条件表达式的值
2、真右边语句IF的下一个语句
SELECT CASE(情况表达式)
CASE(情况选择器1)
block1(块1)
CASE(情况选择器2)
block(块2)
--------
CASE(情况选择器n)
block n
[CASE DEFAULT
默认块]
END SELECT
执行过程:
1.计算情况表达式的值
2.顺序匹配各情况选择器,执行相应的block1,再到END Select下一个语句
嵌套过多容易出错,也不易维护,因此应尽量减少嵌套的层次;
方法是把条件分细,列成多条ELSEIF语句,ELSEIF结构为:
Elseif结构:
IF(e1)THEN
block1
ELSEIF(e2)then
block2
ELSEIF(e3)then
block3
--------
ELSE
block n
ENDIF
IF结构的取名