簡體   English   中英

CHARACTER 聲明及其 DATA 語句可以在 IMPLICIT 語句之前嗎?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM