Fortran 2003標準に準拠しようとしている小さなスニペットを記述しました。コードはavailable on githubです。Fortran 2003ソースファイルの正しい接尾辞 - Intel Fortranコンパイラ
これが私のメイクです:
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
上記のコードは、メイクファイルとのgfortranを使用して問題なくコンパイルされます。
しかし、私はちょうど
ifort -o ifort-amd64-linux unit-test-hadvppm.f03 hadvppm.f03
を使用して、のifortでコンパイルしようとした場合、それは動作しません、以下の出力を参照してください。これは.f03フリーファイル形式と関係があると思います。 gfortranの-std = f2003フラグに似たiFortにフラグがありますか?私はこれをiFortドキュメンテーションで見つけようとしましたが、もっと見栄えが良いのでしょうか?
ファイル名を '* .f90'や' * .F90'に変更するのはなぜですか?ファイルの終りは標準から独立していなければなりません;-)私はFortran 2003/2008で主にコードしています。*常に* .F90'を使用します - 数年前に '* .F03'を使用するといくつかのコンパイラに問題がありましたファイルの名前を変更した後。 –
@AlexanderVogtありがとう、私はそれを試みる! – seb
Linux用のいくつかのコンパイラ(ifortを含む)は、デフォルトで '.F90'拡張子をプリプロセッサに渡すファイルとして解釈することに注意してください。もちろん、大文字の拡張子だけを使用するか、その両方を使用するかはスタイルの問題です。 – sigma