我写了一小段代码,试图遵守Fortran 2003标准.代码可以在github上找到.
这是我的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
Run Code Online (Sandbox Code Playgroud)
使用上面的makefile和gfortran编译代码没有问题.
但是,如果我尝试用iFort编译它,只需使用
ifort -o ifort-amd64-linux unit-test-hadvppm.f03 hadvppm.f03
Run Code Online (Sandbox Code Playgroud)
它不起作用,请参阅下面的输出.我想这与.f03免费文件格式有关.iFort中有一个标志,类似于gfortran的-std = f2003标志吗?我试着在iFort文档中找到这个,我应该更加努力吗?

我正在尝试编写一个makefile来编译包含源文件.f和.f90扩展名的程序.我有编译对象的规则:
%.o: %.f90
$(FC) $(FFLAGS) -c $< -o $(OBJ)/$@
Run Code Online (Sandbox Code Playgroud)
如何扩展它以使用.f文件?