# Makefile for limited memory discrete gradient bundle method
FF = gfortran
OBJ = parameters.o tnsunc.o initialization.o ldgbm_objfun.o ldgbm_sub.o ldgbm.o lmbm.o tldgbm.o

all:	tldgbm


parameters.o: parameters.f95
	$(FF) -c parameters.f95

tnsunc.o: r_precision.mod tnsunc.f95
	$(FF) -c tnsunc.f95

initialization.o: r_precision.mod problem_data.mod large_problems.mod initialization.f95
	$(FF) -c initialization.f95

ldgbm_objfun.o: r_precision.mod problem_data.mod large_problems.mod ldgbm_objfun.f95
	$(FF) -c ldgbm_objfun.f95

ldgbm_sub.o: r_precision.mod param.mod ldgbm_sub.f95
	$(FF) -c ldgbm_sub.f95

ldgbm.o: r_precision.mod param.mod initializat.mod exe_time.mod obj_fun.mod lmbm_sub.mod ldgbm.f95
	$(FF) -c ldgbm.f95

lmbm.o: r_precision.mod param.mod initializat.mod exe_time.mod obj_fun.mod lmbm_sub.mod lmbm.f95
	$(FF) -c lmbm.f95

tldgbm.o: r_precision.mod initializat.mod exe_time.mod ldgbm_mod.mod lmbm_mod.mod problem_data.mod tldgbm.f95
	$(FF) -c tldgbm.f95

tldgbm: $(OBJ)
	$(FF) -o tldgbm $(OBJ)

clean:	
	rm tldgbm $(OBJ) *.mod *~