Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vim Fortran错误fmt:读取意外错误。可能隐藏的字符?_Vim_Fortran - Fatal编程技术网

Vim Fortran错误fmt:读取意外错误。可能隐藏的字符?

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 我理解此错误一定与需要

我正在运行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
我理解此错误一定与需要(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
应该没有什么可读的了。出于好奇,我可能会添加一个空格,如果这是问题的话,那么就抛弃旧的编译器。