Я написал небольшой фрагмент кода, пытаясь придерживаться стандарта Fortran 2003. Код доступен на github.
Это мой make-файл:
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
Код без проблем компилируется с помощью вышеуказанного make-файла и gfortran.
Однако, если я попытаюсь скомпилировать его с помощью iFort, используя только
ifort -o ifort-amd64-linux unit-test-hadvppm.f03 hadvppm.f03
это не работает, см. вывод ниже. Я предполагаю, что это связано с бесплатным форматом файлов .f03. Есть ли в iFort флаг, похожий на флаг gfortran -std=f2003? Я пытался найти это в документации iFort, стоит ли искать повнимательнее?
*.f90
или*.F90
? Окончание файла не должно зависеть от стандарта ;-) В основном я пишу на Фортране 2003/2008 и всегда использую*.F90
- у меня были проблемы с некоторыми компиляторами при использовании*.F03
несколько лет назад, которые исчезли после переименования файла. файлы. - person Alexander Vogt   schedule 28.11.2013.F90
как файлы, которые необходимо передать препроцессору. Конечно, это вопрос стиля, использовать ли только расширение верхнего регистра или и то, и другое. - person sigma   schedule 21.06.2014