[英]Can a CHARACTER declaration and its DATA statement come before an IMPLICIT statement?
FORTRAN 是我在 1970 年代的第一門編程語言,但我無法確定以下 FORTRAN 代碼是否有效。 我無法編譯或運行代碼。
SUBROUTINE ABC(PARM1, PARM2)
CHARACTER*40 projName
DATA projName /'...values...'/
C Lots of comments...
C VARIABLE DECLARATIONS BEGIN HERE (the exact wording)
IMPLICIT REAL*8(A-H,O-Z)
(the rest of the declarations)
. . .
所有的參考資料都說隱式聲明必須在任何聲明之前; 但是,這段代碼顯然可以運行。 我的想法是 (1) IMPLICIT 語句被忽略,或者 (2) 此代碼在 FORTRAN 的某些風格中有效。 如果 IMPLICIT 被忽略,編譯標志可以用於相同目的。
我需要確定有效/無效並簡要證明我的回答。 任何想法將不勝感激。
謝謝,拉克
CHARACTER 類型是隨 Fortran 77 引入的。Fortran 77 第 3.5 節“語句和行的順序”說“在程序單元的規范語句中,隱式語句必須在除 PARAMETER 語句之外的所有其他規范語句之前。”
類似的限制存在於后來的標准中。
所描述的代碼不符合要求。
(Fortran 77 甚至不需要 Fortran 處理器來診斷最基本的語言規則。編譯器可能已經接受了不同的語句順序作為擴展,或者是偶然的。)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.