# Use vpath patterns to pick up source files from
# other directories, e.g., set_precision, etc
#

INCSRC= ../Src
vpath %.f90 $(INCSRC)
vpath %.f9h $(INCSRC)

# Set the Fortran compiler and copilatio/execution flags
FC= gfortran
FOPTS= -g -fbounds-check

# Rule for building .o from .f90
%.o: %.f90
	$(FC) $(FOPTS) -o $@ -c $<

SRC= Compute_Solution.f9h Compute_Z_Matrix.f9h Connected_m.f90 Decay.f90 \
     Dose_Factors_m.f90 ENDF_m.f90 ENDF_data.f9h \
     Triangular_ODE.f90 Triangularize_m.f90

OBJ= Connected_m.o Decay.o Dose_Factors_m.o ENDF_m.o  Triangular_ODE.o \
     Triangularize_m.o

# make all to just build the executables and 
# make results for running all the sample drivers
#     results files should be compared with *.res files
all: Decay Demo_Remark
results: Eu-152.out Sr-Cs-solution-10.out Demo_Remark.out

Demo_Remark: Demo_Remark.o Triangular_ODE.o
	$(FC) -o $@ $^

Decay: $(OBJ)
	$(FC) -o Decay $(OBJ)

Decay.o: Connected_m.o Dose_Factors_m.o ENDF_m.o  \
         Triangular_ODE.o Triangularize_m.o

# Dependencies of all .o files
Demo_Remark.o: Triangular_ODE.o

Connected_m.o: 

Dose_Factors_m.o: 

ENDF_m.o:  ENDF_data.f9h

Triangular_ODE.o: Compute_Solution.f9h  Compute_Z_Matrix.f9h

Triangularize_m.o:

Demo_Remark.out: Demo_Remark
	./Demo_Remark > Demo_Remark.out

Eu-152.out: Decay Eu-152.in
	./Decay -s 30 -t 300 -u y -v 9 Eu-152.in Eu-152.out

Sr-Cs-solution-10.out: Decay Sr-Cs-solution-10.txt
	./Decay -s 50 -t 1000 -u y Sr-Cs-solution-10.txt Sr-Cs-solution-10.out

clean:
	rm -f Decay Demo_Remark *.o *.mod

