我已经写了一小段代码,试图遵循Fortran 2003标准。这段代码可以在github上找到。
这是我的makefile:
这是我的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 $@ $< $(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
呢?文件扩展名应该与编程语言标准无关。我主要使用Fortran 2003/2008,总是使用*.F90
- 几年前使用*.F03
时遇到了一些编译器问题,后来将文件重新命名后问题就解决了。 - Alexander Vogt.F90
扩展名解释为要传递给预处理器的文件。当然,只使用大写扩展名还是同时使用都是一种风格问题。 - sigma