我写了一小段代码,尝试遵守Fortran 2003标准。代码是available on github。Fortran 2003源文件的正确后缀 - 英特尔Fortran编译器
这是我的makefile:
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 [email protected] $< $(FLGS)
#build targets
gnu-amd64-linux: $(OBJ)
$(FC) -o [email protected] $^ $(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'?文件结尾应该独立于标准;-)我主要在Fortran 2003/2008中编码,并且*总是*使用'* .F90' - 几年前,当使用'* .F03'时,我遇到了一些编译器问题,消失了重命名文件后。 –
@AlexanderVogt谢谢,我会尝试! – seb
可能值得注意的是,一些针对Linux的编译器(包括ifort)默认将'.F90'扩展名解释为要传递给预处理器的文件。当然,仅仅使用大写扩展还是两者都是风格问题。 – sigma