1 FORTRAN77四则运算符
+ - * / ** (其中**表示乘方)
在表达式中按优先级次序由低到高为: +或-→*或/→**→函数→()
2 FORTRAN77变量类型
2.1 隐含约定:I—N规则
凡是以字母I,J,K,L,M,N六个字母开头的,即认为是整型变量,其它为实型变量。
2.2 用类型说明语句确定变量类型:可以改变I—N规则
INTEGER
整型
REAL
实型
字段字符串去重复DOUBLE PRECISION
双精度实型
COMPLEX
复型,赋值形式为(实部,虚部),如D=(8.76E+0。5,—67。8E—3),C=(3。0,6.3),如果含表达式则用CMPLX,如C=CMPLX(3。0*A,6.0+B)
LOGICAL
逻辑型,逻辑常量有“T”和“F”,“T"表示“.TRUE.”,“F”表示“。FALSE.”
CHARACTER*N
字符型,N为字符串长度,可以在变量名称后重新指定长度,如CHARACTER*8 STR1,STR2*10 ,赋值形式为STR2=’I'’M A BOY.’
2。3 用IMPLICIT语句将某一字母开头的全部变量指定为所需类型
如 IMPLICIT REAL (I,J)
三种定义的优先级别由低到高顺序为:I—N规则→IMPLICIT语句→类型说明语句,因此,在程序中IMPLICIT语句应放在类型说明语句之前。
2。4 数组的说明与使用
使用I-N规则时用DIMENSION说明数组,也可在定义变量类型同时说明数组,说明格式为:数组名(下标下界,下标上界),也可省略下标下界,此时默认为1,例:
DIMENSION IA(0:9),ND(80:99),W(3,2),NUM(—1:0),A(0:2,0:1,0:3)
REAL IA(10),ND(80:99)使用隐含DO循环进行数组输入输出操作:例如
WRITE(*,10) ('I=’,I,’A=’,A(I),I=1,10,2)
10FORMAT(1X,5(A2,I2,1X,A2,I4))
2。5 使用DATA语句给数组赋初值
变量表中可出现变量名,数组名,数组元素名,隐含DO循环,但不许出现任何形式的表达式:例如
DATA A,B,C/—1.0,-1。0,—1。0/
DATA A/-1.0/,B/-1.0/,C/—1。0/
DATA A,B,C/3*-1.0/CHARACTER*6 CHN(10)
DATA CHN/10*’     ’/INTEGER NUM(1000)
DATA (NUM(I),I=1,500)/500*0/,(NUM(I),I=501,1000)/500*1/
3 FORTRAN77程序书写规则
程序中的变量名,不分大小写;
变量名称是以字母开头再加上1到5位字母或数字构成,即变更名字串中只有前6位有效;
一行只能写一个语句;
程序的第一个语句固定为PROGRAM 程序名称字符串
某行的第1个字符至第5个字符位为标号区,只能书写语句标号或空着或注释内容;
某行的第1个字符为C或*号时,则表示该行为注释行,其后面的内容为注释内容;
某行的第6个字符位为非空格和非0字符时,则该行为上一行的续行,一个语句最多可有19个续行;
某行的第7至72字符位为语句区,语句区内可以任加空格以求美观;
某行的第73至80字符位为注释区,80字符位以后不能有内容.
4 FORTRAN77关系运算符
。GT。 大于
.GE。 天于或等于
。LT。 小于
。LE。 小于或等于
。EQ. 等于
。NE。 不等于 。AND。 逻辑与
。OR. 逻辑或
。NOT。 逻辑非
。EQV。 逻辑等
.NEQV. 逻辑不等
运算符优先级由高到低顺序为:()→**→*或/→+或—→.GT。或。GE.或。LT。或.LE.或.EQ.或.NE.→。NOT.→。AND。→.OR。→。EQV。或。NEQV
5 FORTRAN77语句
语句
说明
备注
WRITE(*,*) X1,X2
输出语句
第一个*号是指输入输出文件设备号或其它设备,如果不指定则是指显示器或打印机,第二个*号是指表控格式语句的行号,如不指定则用默认格式
PRINT *,X1,X2
输出语句
*号是指表控格式语句的行号,如不指定则用默认格式
READ *,X1,X2
输入语句
*号是指表控格式语句的行号,如不指定则用默认格式
FORMAT(格式符)
请见附录一.
请见附录二。
END
结束程序或子程序
STOP [N]
结束程序并输出信息[N]
[N]为数字或字符串信息
PAUSE [N]
暂停程序执行并输出信息[N],输入回车后继续执行
[N]为数字或字符串信息
PARAMETER (PI=3.14)
参数语句,用来定义常量,在程序中应放在类型说明语句之后
EQUIVALENCE (变量表)
等价语句,()内变量共用一个存储单元。
EQUIVALENCE(X1,X2,…XN),(X1,X2,…XN),…
COMMON X1,……
公用语句,其后变量相等,用来在程序单位间传递数据,同时可以用来说明数组。程序中可有一个无名公用区和多个有名公用区。
无名公用区:在主程序各子程序中相同,均在可执行语句之前,如
COMMON A(5),I
有名公用区:名称放在两个“/”之间,如
COMMON //X1,X2,X3/C1/X4,X5,X6
OPEN (说明项1)
打开旧文件或创建新文件
说明项1中内容:UNIT=N, FILE=NAM, STATUS=STR1, ACCESS=STR2, FORM=STR3, RECL=C, BLANK=STR4, ERR=BH, IOSTAT=M
其中:
1。N=1~99;
2.NAM为文件名,可以是字符常量或变量;
3.STR1=’NEW’时新建文件;’OLD’时打开文件;'SCRATCH'时表示临时文件,关闭时自动删除,且不能与FILE=NAM项共存;’UNKNOWN'时由计算机系统规定文件状态;
4。STR2为文件存取方式,'SEQUENTIAL'表示顺序存取,’DIRECT'表示直接存取,省略此项时表示按顺序存取;
5.STR3为记录格式说明,’FORMATTED’表示记录按有格式形式存放, ’UNFORMATTED'表示记录按无格式形式存放。省略此项时,对于顺序文件是有格式的,对于直接存取文件是无格式的;
6.C表示记录长度,以字节为单位,直接存取文件必指定,顺序文件必省略;
7.STR4表示数字值格式输入字段中空格含意,’NULL’时表示忽略不计,'ZERO'时表示按0计.省略此项时按0计;
8.BH表示出错时处理语句行标号,可以省略此项;
9.M为整数,出错时返回该整数,可以省略此项。
CLOSE (说明项2)
关闭已打开文件
说明项2中内容:UNIT=N,STATUS=STR5,ERR=BH,IOSTAT=M
其中STR5为文件关闭状态,'KEEP'时保留,’DELETE’删除,省略此项时为保留;
ERR=BH,IOSTAT=M可以省略.
REWIND (说明项3)
将文件读写指针置于文件开头
说明项3中内容:UNIT=N,ERR=BH,IOSTAT=M
ERR=BH,IOSTAT=M可以省略
BACKSPACE (说明项3)
将文件读写指针回退一行
6 FORTRAN77选择判断语句
6。1 逻辑IF语句
IF (逻辑表达式) 程序语句
6.2 无ELSE块
IF (逻辑表达式) THEN
程序块
END IF
6.3 标准选择
IF (逻辑表达式) THEN
程序块1
ELSE
程序块2
END IF
6.4 多重选择块
IF (逻辑表达式1) THEN
程序块1
ELSE IF (逻辑表达式2) THEN
程序块2
ELSE IF (逻辑表达式2) THEN
程序块2
..。.。.
ELSE IF (逻辑表达式N) THEN
程序块N
ELSE
程序块N+1
END IF
7 FORTRAN77循环语句
7。1 GO TO语句
标号程序行
程序块
GO TO 标号
7.2 DO语句
DO 标号,记数变量=起始值,终止值,步距"语句,如
DO 标号,N=1,100,1
程序块
标号CONTINUE
7.3 DO WHILE 语句
DO 标号,WHILE(PI.EQ。3。14159)
程序块
标号CONTINUE
7.4 DO UNTIL语句
DO 标号,UNTIL (逻辑表达式)”语句,如
DO 标号,UNTIL(PI。GT.3.14159)
程序块
标号CONTINUE
8 FORTRAN77内部函数
INT(X)
将数字串或数值X转换为整型数
REAL(X)
将数字串或数值X转换为实型数
DBEL(X)
将数字串或数值X转换为双精度型数
CMPLX(X)
将数字串或数值X转换为复型数
CHAR(X)
将数值X转换为字符(0≤X≤255)
ICHAR(X)
将字符X转换为整数
AINT(X)
截去X的小数部分
ANINT(X)
将X舍入到最接近的整数
NINT(X)
将X舍入到最接近的整型数
ABS(X)
返回X的绝对值
MOD(X1,X2)
返回X1/X2的余数
SIGN(X1,X2)
取X2的符号,取X1的绝对值
DIM(X1,X2)
当X1〉X2时,等于X1—X2,当X1≤X2时,等于0
DPROD(X1,X2)
双精度乘(X1,X2均为实数)
AIMAG(X)
返回字符串X的虚部
CONJG(X)
返回字符串X的共轭
MAX(X1,X2,X3,..。,XN)
返回X1,X2,X3,.。.,XN中最大值
MIN(X1,X2,X3,。。。,XN)
返回X1,X2,X3,。.。,XN中最小值
SQRT(X)
返回X的平方根(X≥0)
EXP(X)
返回E的X次方

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。