Vim Fortran错误fmt:读取意外错误。可能隐藏的字符?
我正在运行Fortran代码,在MacOSX 10.9.4上使用g77 3.4.0版进行编译。我在代码中遇到以下错误:Vim Fortran错误fmt:读取意外错误。可能隐藏的字符?,vim,fortran,Vim,Fortran,我正在运行Fortran代码,在MacOSX 10.9.4上使用g77 3.4.0版进行编译。我在代码中遇到以下错误: fmt: read unexpected character apparent state: unit 4 named P_resids_inversion last format: (6(I3,X,F7.2,X,I2,X)) lately reading sequential formatted external IO 我理解此错误一定与需要
fmt: read unexpected character
apparent state: unit 4 named P_resids_inversion
last format: (6(I3,X,F7.2,X,I2,X))
lately reading sequential formatted external IO
我理解此错误一定与需要(6(I3,X,F7.2,X,I2,X))格式的输入格式有关。我已经找到了该格式在脚本中的位置,并检查了输入。上述格式与以下示例数据行相对应:
27 -0.23 1 26 -0.03 1 28 0.52 1 17 1.09 1 29 0.07 1 25 0.14 1
30 0.09 1 24 -0.13 1 4 -0.01 1 35 -0.48 1 23 -0.28 1 22 -0.08 1
21 -0.66 1 0 0.00 0 0 0.00 0 0 0.00 0 0 0.00 0 0 0.00 0
我将这个输入文件与另一个使用Fortran代码的输入文件进行了比较,没有任何格式问题——我多次检查了间距,没有发现任何差异。以下是我的假设,说明了为什么会发生这种错误,即使间距是正确的:
我使用Perl脚本创建了输入文件,该脚本在第6组输入(I3、F7.2、I2)完成后应用“\n”换行符。可能有一个隐藏的换行符未在输入文件中删除,这使Fortran适合。但是,我在VIM中打开了两个输入文件并执行了“:set list”命令,每行末尾的唯一字符是一个美元符号
我想知道您是否知道如何删除我输入文件中的隐藏字符,或者fortran代码中出现这种问题是否有其他原因,即使输入是正确的(在文本文件中)
作为旁注,我知道可以工作的输入文件是一个Unix可执行文件,而出现故障的输入文件是一个文本文件,故障文件是在Mac上创建的 我认为这种格式要求每行末尾至少有一个空格。也就是说,简单的列表定向读取应该可以正常工作。我也这么认为,因此尝试了类似的测试程序,但我发现至少gfortran似乎能够正确处理最后一个空白不存在的情况。所以我想知道这是否是77国集团的一个具体问题?也同意阅读(4,*)。。。那就容易多了,我得查一下。(我基本上从不使用格式化读取…)我认为最后的
x
应该没有什么可读的了。出于好奇,我可能会添加一个空格,如果这是问题的话,那么就抛弃旧的编译器。