Fortran 固定来源表格

示例

Fortran最初是为基于80列打孔卡的固定格式表单而设计的:

是:这是作者自己的代码行

这些是在打卡机上创建的,就像这样:

图像是作者原创的照片

如图所示的样本卡所示,该格式的前五列保留给语句标签。第一列用于用字母C表示注释。第六列用于表示语句继续(通过插入零“ 0”以外的任何字符)。最后8列用于卡片识别和排序,如果您将卡片组放在地板上,这将非常有价值!打孔卡的字符编码只有有限的一组字符,并且仅是大写字母。结果,Fortran程序如下所示:

       DIMENSION A(10)                                                    00000001
C THIS IS A COMMENT STATEMENT TO EXPLAIN THIS EXAMPLE PROGRAM             00000002
       WRITE (6,100)                                                      00000003
 100   FORMAT(169HTHIS IS A RATHER LONG STRING BEING OUTPUT WHICH GOES OVE00000004
      1R MORE THAN ONE LINE, AND USES THE STATEMENT CONTINUATION MARKER IN00000005
      2COLUMN 6, AND ALSO USES HOLLERITH STRING FORMAT)                   00000006
       STOP                                                               00000007
       END                                                                00000008

Hollerith字符常量内部(如上所示)外,空格字符在所有地方都被忽略。这意味着空格可能出现在保留字和常量内部,或者完全漏掉了。这产生了一些误导性陈述的副作用,例如:

       DO 1 I = 1.0

是对该变量的赋值,DO1I而:

       DO1I = 1,0

实际上是DO变量上的循环I。


Modern Fortran现在不再需要这种固定形式的输入,而是允许使用任何列的自由形式。注释现在由表示,!也可以附加到语句行。与大多数其他语言一样,现在不允许在任何地方使用空格,并且必须将空格用作分隔符。上面的程序可以用现代的Fortran编写为:

! This is a comment statement to explain this example program
Print *,"THIS IS A RATHER LONG STRING BEING OUTPUT WHICH no longer GOES OVER MORE THAN ONE LINE, AND does not need to USE THE STATEMENT CONTINUATION MARKER IN COLUMN 6, or the HOLLERITH STRING FORMAT"

尽管不再使用旧式延续,但是上面的示例说明仍然会出现很长的语句。Modern Fortran&在延续的结尾和结尾处使用符号。例如,我们可以以更具可读性的形式编写以上代码:

! This is a comment statement to explain this example program
Print *,"THIS IS A RATHER LONG STRING BEING OUTPUT WHICH still &
         &GOES OVER MORE THAN ONE LINE, AND does need to USE THE STATEMENT &
         &CONTINUATION notation"