我寫了一小段代碼,嘗試遵守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