Ich habe einen kleinen Codeschnipsel geschrieben, der versucht, den Fortran 2003 Standard einzuhalten. Der Code lautet available on github.Korrektes Suffix für Fortran 2003 Quelldatei - Intel Fortran Compiler
Das ist mein Make-Datei:
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
Der Code kompiliert, ohne ein Problem der oben Make-Datei und gfortran mit.
Allerdings, wenn ich versuche, es mit ifort zu kompilieren, mit nur
ifort -o ifort-amd64-linux unit-test-hadvppm.f03 hadvppm.f03
es nicht funktioniert, finden Sie in der unten ausgegeben. Ich nehme an, dass dies mit dem freien Dateiformat .f03 zu tun hat. Gibt es eine Flagge in iFort, die der gfortran's -std = f2003 Flagge ähnlich ist? Ich habe versucht, dies in der iFort-Dokumentation zu finden, sollte ich genauer hinschauen?
Warum benennen Sie Ihre Dateien nicht einfach in '* .f90' oder' * .F90' um? Die Dateiendung sollte unabhängig vom Standard sein ;-) Ich habe meistens in Fortran 2003/2008 programmiert und * immer * benutze '* .F90' - Ich hatte Probleme mit einigen Compilern, wenn ich' * .F03' 'vor ein paar Jahren verwendete, die verschwanden nach dem Umbenennen der Dateien. –
@AlexanderVogt Danke, ich werde das versuchen! – seb
Es ist erwähnenswert, dass mehrere Compiler für Linux (einschließlich ifort) die Erweiterung '.F90' standardmäßig als Dateien interpretieren, die an einen Präprozessor übergeben werden sollen. Natürlich ist es eine Frage des Stils, ob nur die Großbuchstaben-Erweiterung oder beides verwendet werden soll. – sigma