繁体   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