gfortran 需要格式宽度而 ifort 不需要?
gfortran requires format widths while ifort doesn't?
我正在尝试将 .FOR 文件(用于练习)从 ifort 迁移到 gfortran。该文件在我的 Intel 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中运行不流畅?
你的观察是正确的,我自己也遇到过。 Intel Fortran 不强制执行此要求,而 gfortran 执行此要求。 Fortran 标准实际上要求字段宽度。我不知道有任何编译器选项可以改变这种行为。我知道的唯一选择是修复代码以使其符合标准。
如何操作可以在 Error: Nonnegative width required in format string at (1) 中找到。请注意,您询问的 g0
不是接受 I
的编译器选项。它是放入代码中的不同格式描述符,而不是 I
。
我正在尝试将 .FOR 文件(用于练习)从 ifort 迁移到 gfortran。该文件在我的 Intel 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中运行不流畅?
你的观察是正确的,我自己也遇到过。 Intel Fortran 不强制执行此要求,而 gfortran 执行此要求。 Fortran 标准实际上要求字段宽度。我不知道有任何编译器选项可以改变这种行为。我知道的唯一选择是修复代码以使其符合标准。
如何操作可以在 Error: Nonnegative width required in format string at (1) 中找到。请注意,您询问的 g0
不是接受 I
的编译器选项。它是放入代码中的不同格式描述符,而不是 I
。