FORTRAN语句
出处:按学科分类—工业技术 企业管理出版社《工程师手册》第832页(6172字)
1.赋值语句
形式如下
v=e
其中v为变量名或数组元素。e是一个表达式。不同类型数据的赋值规则见表3.2.2-1。
表3.2.2-1 不同类型数据的赋值规则(v=e)
2.终端输入输出语句
(1)表控格式的输入输出
①表控输出(又称自由格式输出)语句形式如下:
WRITE(*,*)输出项表
WRITE(*,*)
PRINT*,输出项表
PRINT*
其中输出项可以是常量、变量、表达式、字符串等,各项之间以逗号分隔。没有输出项时表示输出一个空行。
表控格式输出是按系统隐含规定的格式,将各输出项的值输出到系统隐含指定的设备(一般为终端显示器)上。
②表控输入(又称自由格式输入)
READ(*,*)输入项表
READ(*,*)
READ*,输入项表
READ*
其中输入项可以是变量名或数组名,各项之间以逗号分隔。没有输入项时要求输入一个空行。
输入时,各数据之间可以用逗号,空格或回车换行符分隔。输入数据的类型应与相应的变量类型一致。当输入数据的个数少于变量的个数时,计算机将继续等待用户输入;若输入的数据多于变量的个数时,多余数据弃之不用。
(2)有格式的输入输出
①格式输出语句
形式一:
WRITE (输出设备号,语句标号)输出项表
语句标号FORMAT(格式说明)
形式二:
PRINT 语句标号,输出项表
语句标号FORMAT(格式说明)
其中“语句标号”为一个FORMAT语句的标号,此FORMAT语句规定了输出数据的格式(见FORMAT语句)。“输出设备号”可以用数字1-99或、*号来表示,*号代表系统隐含指定设备。通常用6来代表终端显示器。
WRITE语句用FORMAT语句指定的格式向指定设备输出数据,输出数据中的第一个字符将作为走纸控制符被“吃掉”。走纸控制符功能见表3.2.2-2。
表3.2.2-2 走纸控制符
③格式输入语句
形式一:
READ (输入设备号,语句标号)输入项表
语句标号 FORMAT(格式说明)
②FORMAT语句和格式编辑符
FORMAT语句的形式:
语句标号 FORMAT(格式说明)
其中“语句标号”为相应用输入输出语句中引用的标号。“格式说明”由各种格式编辑符组成,各编辑符之间以逗号分隔。常见格式编辑符见表3.2.2-3。
表3.2.2-3 常用格式编辑符
形式二:
READ 语句标号,输入项表
语句标号 FORMAT(格式说明)
其中“语句标号”为一个FORMAT语句的标号,此FORMAT语句规定了输入数据的格式(见FORMAT语句)。“输入设备号”可以用数字1~99或*号来表示,*号代表系统隐含指定设备。通常用5来代表终端键盘。
READ语句用FORMAT语句指定的格式从指定设备上读入数据赋给相应的输入项。
(3)在输入输出语句中包含格式说明
语句形式如下:
WRITE (输出设备号,格式说明)输出项表
PRINT 格式说明,输出项表
READ (输入设备号,格式说明)输入项表
例如:
WRITE (*,′(Ix,F10.2,15)′)X,M
相当于:
WRITE (*,100)x,M
100 FORMAT(1x,F10.2,15)
3.END、STOP和PAUSE语句
(1)END语句
格式如下:
END
在编译时遇到END语句,标志本程序单位的结束;运行时,在主程序中遇到END语句,使程序停止运行,在子程序中遇到END语句,使流程返回调用程序。
(2)STOP语句
格式如下:
STOP n
其中n为可选项,是不超过5位的数字或字符串。
该语句停止程序运行并显示n的值。
(3)PAUSE语句
格式如下:
PAUSE n
其中n为可选项,可以是不超过5位的数字或字符串。
该语句暂停程序运行,并显示n的值。暂停后恢复运行的方法随系统而异。
4.分支语句
(1)GOTO语句
格式如下:
GOTO 语句标号
(2)计算GOTO语句
格式如下:
GOTO (S1,S2,…,Sn),e
其中(S1,S2,…,Sn),e代表n个语句标号,e是整型算术表达式。e之前的逗号可省略。
该语句根据e的值决定程序的转向。当e的值为1时,转向标号为S1的语句;当e的值为n时,转向标号为Sn的语句。若e的值不在1~n的范围内,则顺序执行此GO TO语句的下一条语句。
(3)赋标号语句和赋标号GOTO语句
①赋标号语句格式如下:
ASSIGN 标号 TO v
该语句将语句标号赋给整型变量v。
②赋标号GO TO语句格式如下:
GOTO v,(S1,S2,…Sn)
其中V是一个整型变量,S1,S2,…Sn代表n个语句标号。V后的逗后可省略。
该语句根据v的值确定程序的转向。若v的值等于S1~Sn其中之一时,则转向相应的标号;即当v的值等于S1时,转向标号为S1的语句。若v的值与这n个值都不相等,则顺序执行此GOTO语句的下一条语句。
(4)算术IF语句
格式如下:
IF (e)S1,S2,S3
其中e是一个算术表达式,S1,S2,S3为语句标号。
该语句根据e的值确定程序的转向。若e的值小于零,执行标号为S1的语句;e的值等于零,执行标号为S2的语句;e的值大于零,执行标号为S3的语句。
(5)逻辑IF-语句
格式如下:
IF (e) S
其中e为一关系表达式或逻辑表达式,S为一条可执行语句。
当e的值为“真”时,执行语句S。
(6)块IF语句
块IF语句有以下三种格式:
其中e为一个关系表达式或逻辑表达式,if块,else if块,else块都可以是一组语句。每个块IF语句中的IF和END IF必须配对。
语句功能见图3.2.2-1。
图3.2.2-1 块IF语句功能
5.循环结构
(1)DO循环
格式如下:
其中1是循环终端语句的语句标号,1后的逗号可省略。v为循环变量名,可以是整型、实型或双精型。e1,e2,e3是算术表达式,分别代表循环变量的初值,终值和增量(又称步长)。当增量为1时,e3和前边的逗号可省略。
DO循环的执行过程见图3.2.2-2。
图3.2.2-2 DO循环的执行过程
(2)CONTINUE 语句
格式如下:
CONTINUE
该语句为空操作,多用作循环终端语句。
6.PARAMETER语句和DATA语句
(1)PARAMETER语句
格式如下:
PARAMETER (P1=C1,P2=C2…)
其中P1,P2,…为符号常数名,其命名方法与变量相同。C1,C2,…是由常数和已定义过的符号常数组成常数表达式。
该语句用以指定本程序单位中的某些名字为符号常量。符号常量可用于除FORMAT语句,语句标号,复型常数以外的任何出现常量的地方,例如:
PARAMETER (PI=3.,415、ALFA=30.0)
X=ALFA*PI/180.0
(2)DATA语句
格式如下:
DATA list1/datal/、list2/data2/,
其中list1,list2.…为变量名表,可以含变量名、数组名、数组元素和隐含DO循环,各项之间以逗号隔开。data1,data2,…代表常数表,各常数之间以逗号分隔。
该语句用于在编译期间给变量赋初值。例如:
DATA A,B、C,D/3.0,2.8,5.7,6.9/
DATA M/10/,x/5.825/
DATA(A(1).1=1,10,2)/2.4,6,8.10