Я пытаюсь использовать make-файл, чтобы связать некоторые модули с основной программой.makefile module compilation gfortran in fortran 90
У меня есть модуль под названием SimParam_mod.f90, который имеет:
MODULE simParam
integer, parameter:: yDim = 80
integer, parameter:: xDim = 80
integer, parameter:: iterper = 100
integer, parameter:: tMax = 2000
END MODULE simParam
После компиляции с помощью опции грима:
MODDIR =../module
CFLAGS=-I$(IDIR)
OBJDIR=obj
LIBDIR =../lib
LIBS=-lm
CF=gfortran
CFLAGS=-I.
OBJ = main.o D2Q9Const_mod.o SimParam_mod.o
%.o: %.f90
$(CF) -c -O3 -o [email protected] $< -I$(MODDIR)
run: $(OBJ)
$(CF) -o [email protected] $^ $(CFLAGS)
значения сохраненной для iterper и Tmax не обновлено. Я сохраняю его правильно, и модули, скомпилированные с помощью gfortran -c, не видят никаких проблем и создают файлы .mod.
Я проверил файлы .mod и сохранил их со значениями, которые не указаны в модуле.f90, iterper = 1 и tMax = 20 и должны быть соответственно 100 и 2000. Все, что я могу сказать, это то, что я не знаю, как использовать инструкции make и что эти неправильные значения, которые хранятся, являются прежними значениями, которые я определил намного раньше .. есть что-то, что я пропустил.
Заранее спасибо за вашу помощь!
Puigar
Удалить все '.mod' файлы, которые вы можете найти и все' .o' файлы. Постройте снова заново. –
появляется сообщение о том, что основная программа не восстанавливает модули, потому что они не скомпилированы ранее, возможно, мне нужно сначала их скомпилировать отдельно? –
ОК, проблема решена, мне просто пришлось скомпилировать сначала модули, а затем основные. Спасибо в любом случае –