
#
# gfortran
#
FC     = gfortran
FFLAGS = -g -O -fbacktrace -Wall -fcheck="all" -Wuninitialized -ffpe-trap=invalid,zero,overflow -finit-real=nan
DEF    = 

#
# gt5frt
#
FC     = gt5frt
FFLAGS = -g -O -fbacktrace -Wall -fcheck="all" -Wuninitialized -ffpe-trap=invalid,zero,overflow -finit-real=nan
DEF    = 

###############################################################################

RM = rm -f

###############################################################################


LM = radt1d

MAIN_OBJS = \
	rad1d_main.o gridset.o rad_Earth_V2_wrapper.o rad_Earth_V2_mod.o


MAIN_OBJS_F = 

DUMMY_OBJS = \
	timeset.o axesset.o

FILES_DCPAM_OBJS = \
	constants0.o 		constants.o 		namelist_util.o \
	rad_Earth_LW_V2_4.o	rad_Earth_SW_V2_7.o \
	rad_CK1991.o		rad_C2001.o		rad_rte_nonscat.o \
	planck_func.o		gauss_quad.o		cloud_utils.o \
	constants_snowseaice.o \
	saturate.o		saturate_DennouAGCM.o	snowice_frac.o \
	netcdf_wrapper.o \
	rad_rte_two_stream_app.o \
	rad_CL1996.o		rad_C1998.o

TMP_OBJS =

MAIN_DIR        = src/main
DUMMY_DIR       = src/dummy
FILES_DCPAM_DIR = src/files_dcpam
TMP_DIR = src/tmp


VPATH = $(MAIN_DIR) $(DUMMY_DIR) $(FILES_DCPAM_DIR) $(TMP_DIR)

OBJS_ALL = $(MAIN_OBJS) $(MAIN_OBJS_F) $(DUMMY_OBJS) $(FILES_DCPAM_OBJS) $(TMP_OBJS)


.SUFFIXES: 
.SUFFIXES: .f .f90 .F90 .o


all: $(LM)

$(LM): $(OBJS_ALL)
	$(FC) $(FFLAGS) $(DEF) -o $@ $(OBJS_ALL)

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

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

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


cleanLM:
	$(RM) $(LM)

clean:
	$(RM) core $(OBJS_ALL) *.mod *~
	$(RM) $(MAIN_DIR)/*~
	$(RM) $(DYN_DIR)/*~

resclean:
	$(RM) \
		out/*

distclean: cleanLM clean resclean
realclean: realclean


###############################################################################
#
# Dependence
#
#
rad1d_main.o: rad_Earth_V2_wrapper.o constants.o namelist_util.o
rad_Earth_V2_wrapper.o: rad_Earth_V2_mod.o
rad_Earth_V2_mod.o: rad_Earth_LW_V2_4.o rad_Earth_SW_V2_7.o 
rad_Earth_LW_V2_4.o: constants0.o gridset.o timeset.o rad_CK1991.o rad_C2001.o rad_rte_nonscat.o cloud_utils.o
rad_rte_nonscat.o: constants.o planck_func.o
planck_func.o: gauss_quad.o
constants.o: namelist_util.o
cloud_utils.o: constants_snowseaice.o saturate.o
saturate.o: saturate_DennouAGCM.o snowice_frac.o
rad_Earth_SW_V2_7.o: rad_CL1996.o rad_C1998.o rad_rte_two_stream_app.o
