其中,u为部件说明符,用以指出在哪个设备上进行输出,通常也称为通道号,当u为记号*时,表示在显示器(标准输出设备)上进行输出。f为格式说明,它通常是一个格式语句的标号,用以指出输出数据所采用的格式。
格式语句的一般形式为:
标号 FORMAT(格式说明)
例如:WRITE(*,10)A,B,A*B
10 FORMAT(1X,F6.2,F7.3,F10.4)
FORMAT语句中,第一个“1X'’称为纵向控制符,它表示前进一空格后再输出后面的数据,后面的三个项分别说明了三个实型数据输出的,称为格式编辑符。FORTRAN 77允许在WRITE语句中直接指定输出格式,从而可以省略格式语句FORMAT。例如,上面的输出语句与格式语句可以合并成一个,即:WRITE(x,(1X,F6.2,F7.3,F10.4)’)A,B,A*B
2.格式编辑符
FORTRAN常用的格式符有十几种,详细可参照任何一本FORTRAN教材或专用手册。
(三)隐循环的输入输出
数组元素的输入输出可以采用循环方式实现。例如:
DIMENSIONX(20)
DO 10 I=1,20
20 READ*,X(I)
程序段执行时进行20次循环,每次输入1个数据。这个输入程序段可以改写如下:
DIMENSIONX(20)
READ*,(X(1),I=1,20)
其中第2句就是隐循环的输入语句。循环控制变量I的初值为1,终值为20,步长而予以省略。隐循环语句的作用与DO语句是相同的;但使用隐循环语句时,20个数据允许一次性输入,当然,数据与数据之间要用空格符或逗号区别开来。 隐循环语句也用于输出语句,也可使用多重循环。例如
DIMENSIONY(10,6)
READ(*,*) ((Y(I,J),J=1,6),I=1,10)
WRITE(*,5) ((Y(I,J),J=1,6),I=1,10)
5 FORMAT(1X,6F10.2)
运行程序段时,首先读人60个数据,Y(1,1),Y(1,2),……,Y(1,6),Y(2,
1),Y(2,2),……,Y(2,6),……,Y(10,1),Y(10,2),……,Y(10,6),
然后输出60个数据,每行输出6个数据,数据的排列顺序与输入时相同。
六、控制语句
一般情况下,FORTRAN程序是按语句顺序执行的,但需要时,可以改变这种顺序。
这种改变可以通过各种控制转移语句、逻辑条件语句等来实现。
(一)转移语句
1.无条件转移语句
无条件转移语句的一般形式为:
GOTO n
当程序流程到达GOTO语句时,随后就转向语句标号为n的语句。标号为n的语句必须是可执行语句,但它在程序中的排列位置,可以在引导到它的GOTO语句之后,也可以在该GOTO语句之前。无条件转移语句常和其他控制语句结合起来使用。
2.算术条件转移语句
算术条件转移语句的一般形式为:
IF (e) n1,n2,n3
其中,e必须是算术表达式,当表达式运算结果e<0时,程序转向标号为n1的语句;当e=0时,转向标号为心的语句;当e>0时,转向标号为n3的语句。
例如,计算边长为B的正方形中挖去半径为R的圆后的面积,若B<2R,则给出相关信息。该问题的FORTRAN程序可用算术条件转移语句编写如下。
c Computation Of area.
READ*,B,R
IF(B-2*R) 5, 15, 15
5 WRITE(*,10)
10 FORMAT(’Error message:Bless than 2*R)
GOT0 20
15 AREA=B*B-3.14159*R*R
WRITE*,AREA
20 CONTINUE
END
本例中,在算术条件转移语句的第1个分支后,使用了GOTO语句;倘没有此语句,则程序按顺序仍会执行标号为15的语句,从而得出不正确的结果。
3.计算转移语句
计算转移语句的一般形式为:
GOTO(n1,n2,……,nm),e
其中,ni(i=1,2,……,m)是被转向的语句标号,共m个;e是一个整型算术表达式,其值不得小于1且不得大于m。当e的值等于1时,程序转向标号n1的语句,当e的值等于2时转向标号心的语句,当e的值为m时转向标号为nm的语句。整型算术表达式e前的逗号可以省略。计算转移语句通常也和GOTO语句结合起来使用。