gpt4 book ai didi

fortran - 在 (1) 处的表达式中应有右括号

转载 作者:行者123 更新时间:2023-12-02 08:42:45 24 4
gpt4 key购买 nike

我正在尝试在 gfortran 中编译以下代码:

  INTEGER F(10),G(14),LUN(5)
DIMENSION MESSG(NMESSG)
DATA F(1),F(2),F(3),F(4),F(5),F(6),F(7),F(8),F(9),F(10)
1 / 1H( ,1H1 ,1HX ,1H, ,1H ,1H ,1HA ,1H ,1H ,1H) /
DATA G(1),G(2),G(3),G(4),G(5),G(6),G(7),G(8),G(9),G(10)
1 / 1H( ,1H1 ,1HX ,1H ,1H ,1H ,1H ,1H ,1H ,1H /
DATA G(11),G(12),G(13),G(14)
1 / 1H ,1H ,1H ,1H) /
DATA LA/1HA/,LCOM/1H,/,LBLANK/1H /

我收到以下错误:

错误:在 (1) 处的表达式中需要一个右括号:

 1   / 1H( ,1H1 ,1HX ,1H, ,1H  ,1H  ,1HA ,1H  ,1H  ,1H) /           
1

错误中引用的行是代码片段的第四行。有人知道我的问题是什么吗?我知道这确实是旧代码,但我在科学应用程序中继承了它,需要让它发挥作用。

最佳答案

您的旧代码使用 Hollerith H 将字符值放入整数变量中。更现代的 Fortran 可能是:

character*10 F
DATA F / "(1X, A )" /

更现代:

character (len=10) :: F = "(1X,  A  )"

但是这些改变了 F 的类型,这会影响其余代码。因此,使用这些更改将需要其他重写,但如果是我的代码,我会考虑它,考虑到问题代码部分是多么陈旧和不可读。如果工作量太大,我会使用 gfortran 编译以下内容:

  program f2
INTEGER F(10),G(14),LUN(5)
DATA F(1),F(2),F(3),F(4),F(5),F(6),F(7),F(8),F(9),F(10)
$ / 1H( ,1H1 ,1HX ,1H, ,1H ,1H ,1HA ,1H ,1H ,1H) /
DATA G(1),G(2),G(3),G(4),G(5),G(6),G(7),G(8),G(9),G(10), G(11),G(12),G(13),G(14)
$ / 1H( ,1H1 ,1HX ,1H ,1H ,1H ,1H ,1H ,1H ,1H ,1H ,1H ,1H ,1H) /
DATA LA/1HA/,LCOM/1H,/,LBLANK/1H /
end

gfortran-mp-4.7  -O3  -ffixed-form  -ffixed-line-length-none  -std=legacy f2.f

关于fortran - 在 (1) 处的表达式中应有右括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15127074/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com