
#########################################################################
# machine dependencies
#
include ${SPFLAME}/Makefile_host
#
#########################################################################


FOR_FILES = \
blue.F             driver.F           isopycnic.F        \
adv_vel.F          checks.F           passive_tracer.F   rigid_lid.F \
stevens_obc.F      clinic.F           freesurf.F  \
setup.F            tracer.F           bbl_module.F       congrad.F   \
implvmix.F         setup_template.F   vert_mixing.F      bc_io.F     \
dens.F             isoneutral.F       spflame_module.F   gridtopo.F  \
isobiharm.F        npzd_model.F       cfc_module.F       co2_module.F 


CPP_FILES = \
blue.f             driver.f           isopycnic.f        \
adv_vel.f          checks.f           passive_tracer.f   rigid_lid.f \
stevens_obc.f      clinic.f           freesurf.f  \
setup.f            tracer.f           bbl_module.f       congrad.f   \
implvmix.f         setup_template.f   vert_mixing.f      bc_io.f     \
dens.f             isoneutral.f       spflame_module.f   gridtopo.f  \
npzd_model.f       cfc_module.f       co2_module.f 

OBJ_FILES = \
blue.o             driver.o           isopycnic.o        \
adv_vel.o          checks.o           passive_tracer.o   rigid_lid.o \
stevens_obc.o      clinic.o           freesurf.o  \
setup.o            tracer.o           bbl_module.o       congrad.o   \
implvmix.o         setup_template.o   vert_mixing.o      bc_io.o     \
dens.o             isoneutral.o       spflame_module.o   gridtopo.o  \
npzd_model.o       cfc_module.o       co2_module.o 


all: ${OBJ_FILES}

clean:
	@echo "--------------------------------------"
	@echo "Cleaning everything up in model"
	@echo "--------------------------------------"
	rm -f *.o *.f *~ *.mod V* *.vo *.L
	(cd setup; ${MAKE} SPFLAME=${SPFLAME} clean)

test_dens:
	$(CPP) $(CPP_DIRECTIVES) $(CPP_INCL) -Ddrive_test_dens \
         dens.F > dens.f
	${F90} ${F90_OPTS} ${F90_INCL} -c dens.f
	${LINKER} ${F90_OPTS}  dens.o \
            ${SPFLAME}/misc_modules/util.o \
            ${SPFLAME}/misc_modules/timing.o \
            $(ALL_LIBS_PATHS) -o ${SPFLAME}/bin/test_dens.x $(LIBS)
	rm dens.o

test_co2:
	$(CPP) $(CPP_DIRECTIVES) $(CPP_INCL) -Ddrive_test_co2 \
         co2_module.F > co2_module.f
	${F90} ${F90_OPTS} ${F90_INCL} -c co2_module.f
	${LINKER} ${F90_OPTS}  co2_module.o \
            ${SPFLAME}/misc_modules/util.o \
            ${SPFLAME}/misc_modules/timing.o \
            $(ALL_LIBS_PATHS) -o ${SPFLAME}/bin/test_co2.x  $(LIBS)
	rm co2_module.o


${CPP_FILES}    : ${SPFLAME}/include/options.inc

dens.o          : ${SPFLAME}/misc_modules/timing.o
spflame_module.o: ${SPFLAME}/misc_modules/time_manager.o dens.o \
                  ${SPFLAME}/misc_modules/timing.o
bbl_module.o    : spflame_module.o
bc_io.o         : spflame_module.o
isoneutral.o    : spflame_module.o
isopycnic.o     : spflame_module.o
blue.o          : spflame_module.o
freesurf.o      : spflame_module.o isoneutral.o
setup.o          : spflame_module.o freesurf.o
driver.o         : spflame_module.o ${SPFLAME}/misc_modules/timing.o
congrad.o        : spflame_module.o ${SPFLAME}/misc_modules/island_module.o
clinic.o         : spflame_module.o freesurf.o
tracer.o         : spflame_module.o bbl_module.o
rigid_lid.o      : spflame_module.o ${SPFLAME}/misc_modules/island_module.o
vert_mixing.o    : spflame_module.o  
adv_vel.o        : spflame_module.o freesurf.o
stevens_obc.o    : spflame_module.o
checks.o         : spflame_module.o
implvmix.o       : spflame_module.o
setup_template.f : setup/*.F
setup_template.o : spflame_module.o blue.o freesurf.o setup/*.F
gridtopo.o       : spflame_module.o

passive_tracer.o : spflame_module.o
cfc_module.o     : spflame_module.o passive_tracer.o
co2_module.o     : ${SPFLAME}/misc_modules/timing.o
npzd_model.o     : spflame_module.o passive_tracer.o

