FC     = frt 
FFLAGS = -Am -Haesux 
DEF    = 

FC     = gfortran
FFLAGS = -Ofast -g -fopenmp -fbacktrace -ffpe-trap=invalid,zero,overflow -fbounds-check -Wall
FFLAGS = -fopenmp -g -O -fbacktrace -Wall -fbounds-check -Wuninitialized -ffpe-trap=invalid,zero,overflow 
DEF    = 


MTCKD_SRC = cntnm_progr_procedures.f90 contnm.f90
MTCKD_OBJ = $(MTCKD_SRC:.f90=.o)
#
MTCKD_MOD_SRC = cntnm_progr_procedures_mod.f90 contnm_mod.f90
MTCKD_MOD_OBJ = $(MTCKD_MOD_SRC:.f90=.o)

TEST00_LM  = test00.LM
TEST00_SRC = cntnm_progr.f90
TEST00_OBJ = $(TEST00_SRC:.f90=.o)

#TEST00MOD_LM  = test00_no_n2_o2_rf.LM
#TEST00MOD_SRC = cntnm_progr_no_n2_o2_rf.f90
#TEST00MOD_OBJ = $(TEST00MOD_SRC:.f90=.o)

TEST01_LM  = test01.LM
TEST01_SRC = test01_main.f90
TEST01_OBJ = $(TEST01_SRC:.f90=.o)

TEST02_LM  = test02.LM
TEST02_SRC = test02_main.f90 test02_mtckd_wrapper.f90
TEST02_OBJ = $(TEST02_SRC:.f90=.o)

TEST03_LM  = test03.LM
TEST03_SRC = test03_main.f90 vtype_module.f90 test03_mtckd_wrapper.f90
TEST03_OBJ = $(TEST03_SRC:.f90=.o)

TEST04_LM  = test04.LM
TEST04_SRC = test04_main.f90 vtype_module.f90 test04_mtckd_wrapper.f90
TEST04_OBJ = $(TEST04_SRC:.f90=.o)

TEST05_LM  = test05.LM
TEST05_SRC = test05_main.f90 vtype_module.f90 test05_mtckd_wrapper.f90
TEST05_OBJ = $(TEST05_SRC:.f90=.o)

TEST06_LM  = test06.LM
TEST06_SRC = test06_main.f90 vtype_module.f90 test06_mtckd_wrapper.f90
TEST06_OBJ = $(TEST06_SRC:.f90=.o)

TEST07_LM  = test07.LM
TEST07_SRC = test07_main.f90 vtype_module.f90 test07_mtckd_wrapper.f90
TEST07_OBJ = $(TEST07_SRC:.f90=.o)

TEST08_LM  = test08.LM
TEST08_SRC = test08_main.f90 vtype_module.f90 test08_mtckd_wrapper.f90
TEST08_OBJ = $(TEST08_SRC:.f90=.o)

TEST09_LM  = test09.LM
TEST09_SRC = test09_main.f90 vtype_module.f90 mtckd_wrapper.f90
TEST09_OBJ = $(TEST09_SRC:.f90=.o)

TEST10_LM  = test10.LM
TEST10_SRC = test10_main.f90 vtype_module.f90 mtckd_wrapper2.f90
TEST10_OBJ = $(TEST10_SRC:.f90=.o)

TEST11_LM  = test11.LM
TEST11_SRC = test11_main.f90 vtype_module.f90 mtckd_wrapper3.f90
TEST11_OBJ = $(TEST11_SRC:.f90=.o)

#$(TEST00MOD_OBJ)
#$(TEST00MOD_LM)
ALL_OBJ = $(MTCKD_OBJ) $(TEST00_OBJ) $(TEST01_OBJ) $(TEST02_OBJ) $(TEST03_OBJ) $(TEST04_OBJ) $(TEST05_OBJ) $(TEST06_OBJ) $(TEST07_OBJ) $(TEST08_OBJ) $(TEST09_OBJ) $(TEST10_OBJ) $(TEST11_OBJ)
ALL_LM  = $(TEST00_LM) $(TEST01_LM) $(TEST02_LM) $(TEST03_LM) $(TEST04_LM) $(TEST05_LM) $(TEST06_LM) $(TEST07_LM) $(TEST08_LM) $(TEST09_LM) $(TEST10_LM) $(TEST11_LM)

VPATH = src

.SUFFIXES : .f90 .o

all: $(ALL_LM)

$(TEST00_LM): $(TEST00_OBJ)
	$(FC) $(FFLAGS) $(DEF) -o $@ $(TEST00_OBJ)

#$(TEST00MOD_LM): $(TEST00MOD_OBJ) $(MTCKD_OBJ)
#	$(FC) $(FFLAGS) $(DEF) -o $@ $(TEST00MOD_OBJ) $(MTCKD_OBJ)

$(TEST01_LM): $(TEST01_OBJ)
	$(FC) $(FFLAGS) $(DEF) -o $@ $(TEST01_OBJ)

$(TEST02_LM): $(TEST02_OBJ)
	$(FC) $(FFLAGS) $(DEF) -o $@ $(TEST02_OBJ)

$(TEST03_LM): $(TEST03_OBJ)
	$(FC) $(FFLAGS) $(DEF) -o $@ $(TEST03_OBJ)

$(TEST04_LM): $(TEST04_OBJ)
	$(FC) $(FFLAGS) $(DEF) -o $@ $(TEST04_OBJ)

$(TEST05_LM): $(TEST05_OBJ)
	$(FC) $(FFLAGS) $(DEF) -o $@ $(TEST05_OBJ)

$(TEST06_LM): $(TEST06_OBJ)
	$(FC) $(FFLAGS) $(DEF) -o $@ $(TEST06_OBJ)

$(TEST07_LM): $(TEST07_OBJ)
	$(FC) $(FFLAGS) $(DEF) -o $@ $(TEST07_OBJ)

$(TEST08_LM): $(TEST08_OBJ)
	$(FC) $(FFLAGS) $(DEF) -o $@ $(TEST08_OBJ)

$(TEST09_LM): $(TEST09_OBJ)
	$(FC) $(FFLAGS) $(DEF) -o $@ $(TEST09_OBJ)

$(TEST10_LM): $(TEST10_OBJ)
	$(FC) $(FFLAGS) $(DEF) -o $@ $(TEST10_OBJ)

$(TEST11_LM): $(TEST11_OBJ)
	$(FC) $(FFLAGS) $(DEF) -o $@ $(TEST11_OBJ)

.f90.o:
	$(FC) $(FFLAGS) $(DEF) -c $<

clean:
	rm -f $(ALL_OBJ) *.mod *~
distclean: clean
	rm -f $(ALL_LM)
realclean: distclean


test02_main.o: test02_mtckd_wrapper.o
test03_main.o: vtype_module.o test03_mtckd_wrapper.o
test03_mtckd_wrapper.o: vtype_module.o
test04_main.o: vtype_module.o test04_mtckd_wrapper.o
test04_mtckd_wrapper.o: vtype_module.o
test05_main.o: vtype_module.o test05_mtckd_wrapper.o
test05_mtckd_wrapper.o: vtype_module.o
test06_main.o: vtype_module.o test06_mtckd_wrapper.o
test06_mtckd_wrapper.o: vtype_module.o
test07_main.o: vtype_module.o test07_mtckd_wrapper.o
test07_mtckd_wrapper.o: vtype_module.o
test08_main.o: vtype_module.o test08_mtckd_wrapper.o
test08_mtckd_wrapper.o: vtype_module.o
test09_main.o: vtype_module.o mtckd_wrapper.o
test10_main.o: vtype_module.o mtckd_wrapper2.o
test11_main.o: vtype_module.o mtckd_wrapper3.o
mtckd_wrapper.o: vtype_module.o
mtckd_wrapper2.o: vtype_module.o
mtckd_wrapper3.o: vtype_module.o
