gpt4 book ai didi

linux - Fortran `write (*, '(3G24.16 )')` 错误

转载 作者:太空宇宙 更新时间:2023-11-04 11:03:51 25 4
gpt4 key购买 nike

我有一个 Fortran 文件,必须写这些复杂的数字,基本上我不能改变这些数字:

文件名:complicatedNumbers.f

      implicit none

write (*,'(3G24.16)') 0.4940656458412465-323, 8.651144521298990, 495.6336980600139
end

然后在我的 Ubuntu 上使用 gfortran -o outa complicatedNumbers.f 运行它,但是出现了这个错误:

Error: Expected expression in WRITE statement at (1)

我确定它与复杂的数字有关,因为如果我将三个复杂的数字更改为简单的数字,如 11.11, 22.2, 33.3,不会有错误。

这实际上是一个复杂的 Fortran 文件的精简版本,其中包含许多变量和指向其他文件的链接。因此理想情况下,不应更改 3G24.16。

3G24.16是什么意思?

我该如何修复它以便最终可以使用 ./outa 打印出这些数字?

最佳答案

您向我们展示的片段在语法上没有任何错误。但是,您使用后缀为 .f 的文件名让我认为编译器假设您的代码是以固定形式编写的。这是 gfortran 的通常默认行为。如果是这种情况,它可能会在大约最后一个 , 处截断该行,这意味着编译器会看到

write (*,'(3G24.16)')  0.4940656458412465-323, 8.651144521298990, 

并提出您与我们分享的投诉。加入我们的 21 世纪并切换到自由格式源文件,将 .f 更改为 .f90 并看看接下来会发生什么有趣的事情,或者正确地继续该行下一行的第 6 列。

关于 3G24.16 的含义,请参阅您最喜欢的 Fortran 引用资料,标题为数据编辑描述符,尤其是 g 数据编辑描述符.

哦,如果我对术语固定形式源代码自由形式源代码的混淆使您感到困惑,那么也可以在您最喜欢的 Fortran 引用资料中阅读它们。

关于linux - Fortran `write (*, '(3G24.16 )')` 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26030359/

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