1

尝试从 Fortran 77 程序编译复制代码时出现此错误。

代码:

900 FORMAT(1H0,2X,'ABSOLUTE GRID LIMITS FOR DATA RETENTION FOR RADAR',I3,' XMIN-XMAX ',2F8.3,' YMIN-YMAX ',2F8.3,' ZMAX ',F8.3, /3X,'WITH AZIMUTH LIMITS OF',2F8.2, 3X,'AND RANGE LIMITS OF',2F10.3,/)

编译器错误:

messy21.f90:529.132:

N FOR RADAR',I3,' XMIN-XMAX ',2F8.3,' YMIN-YMAX ',2F8.3,' ZMAX ',F8.3, /3X,(1)

Error: Unexpected end of format string in format string at (1)

我不确定错误是什么意思。

4

2 回答 2

3

我的猜测(根据第 132 行中的错误位置)是:从 Fortran 90 开始,我们使用自由源格式(自由格式源输入)。每行最多可包含 132 个字符。如果您的语句更大,您最多可以使用 39 行(在当前的 Fortran 2003 标准中为 255)续行。Fortran 77 使用固定源格式,这只是另一回事。

使用所谓的连续标记(&) 来划分你很长的 FORMAT 语句,即

900 FORMAT(1H0,2X,'ABSOLUTE GRID LIMITS FOR DATA RETENTION FOR RADAR',I3,' XMIN-XMAX ',2F8.3,' YMIN-YMAX ',2F8.3,' ZMAX ',F8.3, &
/3X,'WITH AZIMUTH LIMITS OF',2F8.2, 3X,'AND RANGE LIMITS OF',2F10.3,/)

阅读一些 Fortran 90/95/2003 书籍或 Fortran 标准的相关部分。例如,在 Fortran 2003 标准(最终委员会草案,PDF,5MB)中,“3.3 Source form”部分包含相关信息。

于 2010-10-09T20:41:24.647 回答
1

你的行太长了。

在自由格式文件 (.f90) 中,您只能使用 132 个字符行。您可以换行并继续下一行。&在继续下一行之前将字符放在行尾。

在固定格式的 Fortran (.f .for) 中,您只能使用 72 个字符行。您可以换行并继续下一行。将任何字符放在当前行的第五列。

有一些编译器选项可以放宽这些限制。

于 2017-08-07T14:34:20.447 回答