错误:Fortran中格式字符串中格式字符串的意外结束

时间:2010-10-06 15:51:10

标签: format fortran fortran77 fortran90

尝试从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)

我不确定错误的含义。

2 个答案:

答案 0 :(得分:1)

我的猜测(基于行中的错误位置,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 Standard(Final Committee Draft,PDF,5MB)中,“3.3源表单”部分包含相关信息。

答案 1 :(得分:0)

你的线太长了。

在自由格式文件(.f90)中,您只能使用132个字符行。你可以打破你的界限并继续下一行。放&个字符 在继续下一行之前,在该行的末尾。

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

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