固定来源表格

Fortran 最初设计用于基于 80 列穿孔卡的固定格式表单

http://i.stack.imgur.com/oJiKo.jpg

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

这些是在打卡机上创建的,非常类似:

http://i.stack.imgur.com/jMhV0m.jpg

图像是作者的原创摄影作品

如图所示的样本卡所示,格式为语句标签保留了前五列。第一列用于表示字母 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 

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

现代 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"

虽然不再使用旧式延续,但上面的例子说明仍然会发生很长的语句。现代 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"