我正在尝试将一个.FOR文件(用于练习目的)从ifort迁移到gfortran。此文件在我的英特尔Visual Fortran解决方案中编译,没有任何问题。但是当我使用以下命令在gfortran中编译它时:
gfortran -ffree-form -ffree-line-length-200 -Dinternal_debug -c MyFile.FOR -o MyFile.o
我收到以下错误消息:
MyFile.FOR:4561:22:
102 format(A, I)
1
Error: Nonnegative width required in format string at (1)
ifort根本不需要格式宽度,还是有额外的ifort选项可以放宽这个要求?为什么文件在ifort中运行顺利但在gfortran中没有?
答案 0 :(得分:1)
你的观察是正确的,我以前自己遇到过。当gfortran执行此操作时,英特尔Fortran不会强制执行此要求。 Fortran标准实际上需要字段宽度。我不知道任何可能会改变此行为的编译器选项。我所知道的唯一选择是修复代码以使其符合标准。
如何在Error: Nonnegative width required in format string at (1)找到它。请注意,您询问的g0
不是接受I
的编译器选项。它是一个不同的格式描述符,可以放入代码而不是I
。