gpt4 book ai didi

compiler-errors - Fortran “Error:Expected expression in WRITE statement”

转载 作者:行者123 更新时间:2023-12-02 10:51:50 25 4
gpt4 key购买 nike

我浏览了Fortran指南并尝试了示例程序,在网上查找了错误,但似乎无济于事。

我的程序如下:

    program TYPE_CHECK
character(30), dimension(10) :: buff
integer, dimension(10) :: x
integer :: i

do i=1,10
x(i) = i
enddo

write(*, "(I3)") (x(j), j=1,10)
do j=1,10
write(buff(j), *)(x(j)),
* 'hi '
enddo
do j=1,10
write(*, 776) (buff(j))
776 format(' NO OF ',A20, '=')
enddo

end program TYPE_CHECK

上面应该给出如下输出:
  1
2
3
4
5
6
7
8
9
10
NO OF 1 hi =
NO OF 2 hi =
NO OF 3 hi =
NO OF 4 hi =
NO OF 5 hi =
NO OF 6 hi =
NO OF 7 hi =
NO OF 8 hi =
NO OF 9 hi =
NO OF 10 hi =

但是却出现以下错误:
myfoo2.F:12.30:

write(buff(j), *)(x(j)),
1
Error: Expected expression in WRITE statement at (1)
myfoo2.F:13.7:

* 'hi '
1
Error: Invalid character in name at (1)

你能告诉我我哪里出问题了。谢谢!

最佳答案

如果您在发帖时非常小心,则可以执行以下操作:

write(buff(j), *)(x(j)),
* 'hi '

是问题的根源。它不是格式正确的固定格式源,也不是正确的连续自由格式源。我建议您确保您了解这些格式之间的区别,并且您符合自由格式源的要求。 (好吧,如果您使用打孔卡为编译器准备源代码,则固定格式更合适,但这在21世纪相对不常见。)

改变你必须
write(buff(j), *)(x(j)), &
'hi '

在固定格式源中,连续字符在该行的第6列中,该行继续未完成的表达式。您的代码段显然不是固定格式的,因为您的星号直接位于 wwrite的下面,但是在固定格式的源代码语句中,它始于第7列。

在自由格式的源代码行中,通过在要继续执行的行的末尾附加一个&符号( &)来继续。

关于compiler-errors - Fortran “Error:Expected expression in WRITE statement”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21200896/

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