CALL SB(A)
END
SUBROUTINE SB(D)
CHARACTERD(4)*2
…
END
则形参数组D中元素的值为:
D(1):’AB’
D(2):’CD’
D(3):’EF’
D(4):’GH’
(5)过程名的虚实结合
FORTRAN允许子程序中的形参为过程名,此时,调用程序中的实参必须是过程名。
如果实参是外部过程名(如函数子程序名、子程序名),则该外部过程名在调用程序中必须用EXTERNAL语句说明。
如果实参是内部过程名(如内部函数名),则该内部过程名在调用中必须用INTRINSIC语句说明。
(二)公用区语句
1.公用区语句的一般形式 -
COMMON[/公共区名1/]变量表1,[/公共区名2/变量表2]…
没有公用区名的就称为无名公用区,其他都是有名公用区;一个完整的程序只能设置一个无名公用区,但可以有多个有名公用区;变量表中,可以是变量名、数组名、数组说明符,互相之间用逗号隔开。例如:
COMMON a,b(3),c(2)
定义了b是3个元素的一维数组,c是2个元素的一维数组。这条语句与下面两句语句是等价的:
DIMENSION b(3),c(2)
COMMON a,b,c
2.利用公用区进行数据传递时,在无名公用区或同名的有名公用区中,位置排列相同的变量、数组,实际上使用同一存储地址,亦即共享同一数据。例如:
PROGRAMMAIN
COMMON a,I(2)/COM l/d,c
…
CALL SB
…
END
SUBROUTINE SB
COMMON aa,JK(2)/COM l/f,g
END
其中,主程序中的变量a的数据与子程序的变量aa共享,数组1的数据与JK共享,而d,c的数据分别与f,g共享。由此可以知道,各个程序单位中COMMON语句中的变量类型必须按位置一一对应一致才能正确传递数据。
九、文件
FORTRAN程序输入输出的基本单位称为记录。记录是数值或字符的序列。记录的集合称作文件。
(一)文件的存取方式
1.顺序文件
顺序文件中的记录是一个接一个按顺序存放的,即总从第1个记录开始,然后是第2个记录,第3个记录,…,要取任何一个记录,都必须从第1个记录开始。
2。直接文件
直接文件又称直接存取文件,或随机文件。它可以按任意顺序读写某一记录。直接文件中每个记录的长度都是相等的。
(二)文件操作语句
文件操作语句有打开文件的OPEN语句和关闭文件的CLOSE语句。此外还有文件的读写语句READ语句和WRITE语句。
(三)文件定位
设想在文件的读写操作时存在一根指针。起先指针停在文件的开始处,随着文件存取的进行,指针在文件中移动。控制指针的位置,即定位,在FORTRAN中可以通过如下语句来实现。
1.REWIND语句
REWIND语句也称回绕语句。它的形式是:
REWIND设备号
它使与指定设备号相连的文件中的指针定位在文件的开头。
在FORTRAN中,用OPEN语句打开一个文件,指针也是在文件的开头位置。因此对一个已经打开的文件,要使指针移到开头,也可组合使用CLOSE和OPEN语句。
2.BACKSPACE语句
语句BACKSPACE的形式是:
BACKSPACE设备号
它使与指定设备号相连的文件中的指针退回一个记录。