簡體   English   中英

fortran中的數據聲明

[英]Data Statement in fortran

我試着在fortran中寫一些數據......

   program Problem

    DIMENSION X(8), W(8)
    DATA X /0.0950125098D0, 0.2816035507D0, 0.4580167776D0, 0.6178762444D0
 +         , 0.7554044083D0, 0.8656312023D0, 0.9445750230D0, 0.9894009349D0/
    DATA W /0.1894506104D0, 0.1826034150D0, 0.1691565193D0, 0.1495959888D0
 +        , 0.1246289712D0, 0.0951585116D0, 0.0622535239D0, 0.0271524594D0/

    D = 0.D0
    DO NJ=1,8
      D = D + X(NJ) + W(NJ) 
    ENDDO

    write(*,*) D

   end

但我總是在(1)得到錯誤消息Unexpected屬性聲明語句

有人知道為什么嗎?

正如其他人已經說過的那樣,你應該使用新的fortran標准。 如果你這樣做,你可以刪除用於表示延續線的“+”(應該在第6列),而是在應該繼續的行的末尾添加一個&符號“&”。 然后程序編譯並運行。 但由於X和W是單精度,因此在數據語句中使用了太多數字。 使用隱式none並聲明所有變量。 並得到一本教科書。

下面是您的代碼的一個小更新,允許它編譯:

      program Problemless

      dimension X(8), W(8)
      data X /0.0950125098D0, 0.2816035507D0, 0.4580167776D0,
     +        0.6178762444D0, 0.7554044083D0, 0.8656312023D0,
     +        0.9445750230D0, 0.9894009349D0/
      data W /0.1894506104D0, 0.1826034150D0, 0.1691565193D0,
     +        0.1495959888D0, 0.1246289712D0, 0.0951585116D0,
     +        0.0622535239D0, 0.0271524594D0/

      D = 0.D0
      do NJ=1,8
         D = D + X(NJ) + W(NJ) 
      enddo

      write(*,*) D

      end

您的代碼是用固定源代碼形式編寫的(參見Fortran標准的 6.3.3節)。 這意味着除了第72列之外你不能擁有任何東西。我所做的就是在上面糾正這一點。

如果您正在學習fortran,我建議您停止使用固定格式並開始使用免費格式。

此帖子不需要投票

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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