固定來源表格

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"