我写了一小段代码,试图遵守 Fortran 2003 标准。代码是available on github .
这是我的生成文件:
FC = gfortran
FLGS = -g -pg -std=f2003 -I. -fbounds-check
DEPS = camx.prm
OBJ = unit-test-hadvppm.o hadvppm.o
#linker macro
%.o: %.f03 $(DEPS)
$(FC) -c -o $@ $< $(FLGS)
#build targets
gnu-amd64-linux: $(OBJ)
$(FC) -o $@ $^ $(FLGS)
clean: gnu-amd64-linux
rm *.o
使用上述 makefile 和 编译代码没有问题。 gfortran .
但是,如果我尝试使用 iFort 编译它,只需使用
ifort -o ifort-amd64-linux unit-test-hadvppm.f03 hadvppm.f03
它不起作用,请参阅下面的输出。我想这与 .f03 免费文件格式有关。 iFort 中是否有类似于 gfortran 的 -std=f2003 标志的标志?我试图在 iFort 文档中找到这个,我应该更仔细地看吗?
最佳答案
标准中没有任何内容指定文件的后缀。英特尔一直声明,他们对待 *.f90
作为免费源格式的后缀,与标准版本无关。它只是一个不基于任何标准文件的约定。
也许是 f90
suffix 有点不幸,看起来就像 Fortran 90,但您应该毫不犹豫地将它用于每个自由格式的源文件。
我个人也不喜欢.f95
的做法。 , .f03
, .f08
文件。我是否应该仅仅因为我从更新的标准中调用一些内在函数而重命名源文件?
关于compiler-construction - Fortran 2003 源文件的正确后缀 - 英特尔 Fortran 编译器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20269076/