这个 1977 年前的 fortran 程序中参数中的参数是什么意思?

What is the meaning of arguments in the arguments in this pre-1977 fortran program?

以下片段是 TOMS 494 驱动程序的前几行,发布于 1975 年左右。虽然第二个参数似乎可能指的是磁带驱动器,但了解这些参数的含义会很有趣。该行似乎在 gfortran 4.x

中出错
  PROGRAM BURGER(PDEOUT, TAPE3=PDEOUT)
  COMMON /MESH/ X(201)
  COMMON /COORD/ ICORD
  COMMON /SIZES/ NPDE,NPTS
  DIMENSION U(201)

编译输出:

   PROGRAM BURGER(PDEOUT, TAPE3=PDEOUT)
         1

错误:(1) 处的 PROGRAM 语句格式无效

可以在本手册中找到FORTRAN EXTENDED VERSION 4 用户指南 来自 CDC (CONTROL DATA CORPORATION)

这是一种在 calling/launching 程序时传递要连接的文件名的方法。请参阅第 7-3 页 (pdf 91)。

Example 1

PROGRAM statement:
PROGRAM  FOIST  (INPUT,  OUTPUT,  TAPE3)

Name call statement:

LGO(FIRST, SECOND)

File names actually used:

FIRST
SECOND
TAPE3

LGO(file1, file2) 语句属于加载程序,如前几页所述,LGO 是默认程序名称(有点像今天的 a.out)。

name(p1,p2,...  ,pn) 

Logical file name of the file to be loaded and executed, or name of the main program to be loaded and executed. Alternate file names for execution time file name substitution.

...

The file name call is the commonest call and is usually used for the simple case in which the object code is written by default to the file LGO.

INPUTOUTPUT 文件就是我们今天所说的标准输入和输出,并且被 READ *,PRINT *, 和类似文件访问过。 TAPE3 连接到第 3 单元,TAPE5 连接到第 5 单元,如第 1-3 页 (pdf 13) 中的示例。

PROGRAM NEWTON (INPUT, OUTPUT, TAPE5=OUTPUT)
...
READ *, XO, EPS, ITMAX
...
WRITE (5,20) ITMAX

这些磁带实际代表的内容是在 Fortran 之外控制的,并且在手册中也有解释。


所以在现代,您要么通过其他一些特定于系统的方法将文件预先连接到那些单元,要么使用 OPEN() 语句将外部文件连接到 Fortran 单元号。我们没有您的其余代码,因此我无法推荐更多细节。