
TOPDIR=../..
SUBDIR=mw_scatt_coef

FFLAGS_ARCH_convert_mietable            = $(FFLAGS_ARCH)
FFLAGS_ARCH_create_tables_spectra       = $(FFLAGS_ARCH)
FFLAGS_ARCH_density_totalice            = $(FFLAGS_ARCH)
FFLAGS_ARCH_gamma_dsd                   = $(FFLAGS_ARCH)
FFLAGS_ARCH_melting_layer               = $(FFLAGS_ARCH)
FFLAGS_ARCH_mg_ellips                   = $(FFLAGS_ARCH)
FFLAGS_ARCH_mie_coated_sphere           = $(FFLAGS_ARCH)
FFLAGS_ARCH_mie_one_wc                  = $(FFLAGS_ARCH)
FFLAGS_ARCH_mie_sphere                  = $(FFLAGS_ARCH)
FFLAGS_ARCH_mod_gamma_dsd               = $(FFLAGS_ARCH)
FFLAGS_ARCH_mod_mie                     = $(FFLAGS_ARCH)
FFLAGS_ARCH_n0_t                        = $(FFLAGS_ARCH)
FFLAGS_ARCH_perm_ice                    = $(FFLAGS_ARCH)
FFLAGS_ARCH_perm_melt                   = $(FFLAGS_ARCH)
FFLAGS_ARCH_perm_water                  = $(FFLAGS_ARCH)
FFLAGS_ARCH_permittivity                = $(FFLAGS_ARCH)
FFLAGS_ARCH_predict_mom07               = $(FFLAGS_ARCH)
FFLAGS_ARCH_predict_psd                 = $(FFLAGS_ARCH)
FFLAGS_ARCH_predict_psd_F07             = $(FFLAGS_ARCH)
FFLAGS_ARCH_rttov_scatt_make_coef       = $(FFLAGS_ARCH)
FFLAGS_ARCH_set_spectra                 = $(FFLAGS_ARCH)
FFLAGS_ARCH_vol_fracs                   = $(FFLAGS_ARCH)

F90_INTF=convert_mietable.F90 gamma_dsd.F90 melting_layer.F90 mg_ellips.F90 mie_coated_sphere.F90 mie_one_wc.F90 mie_sphere.F90 mod_gamma_dsd.F90 n0_t.F90 perm_ice.F90 perm_melt.F90 perm_water.F90 predict_mom07.F90 predict_psd.F90 predict_psd_F07.F90 set_spectra.F90 vol_fracs.F90

INTF=$(INCDIR)/convert_mietable.interface $(INCDIR)/gamma_dsd.interface $(INCDIR)/melting_layer.interface $(INCDIR)/mg_ellips.interface $(INCDIR)/mie_coated_sphere.interface $(INCDIR)/mie_one_wc.interface $(INCDIR)/mie_sphere.interface $(INCDIR)/mod_gamma_dsd.interface $(INCDIR)/n0_t.interface $(INCDIR)/perm_ice.interface $(INCDIR)/perm_melt.interface $(INCDIR)/perm_water.interface $(INCDIR)/predict_mom07.interface $(INCDIR)/predict_psd.interface $(INCDIR)/predict_psd_F07.interface $(INCDIR)/set_spectra.interface $(INCDIR)/vol_fracs.interface

LIB=$(LIBDIR)/librttov$(RTTOV_VERSION)_$(SUBDIR)$(EXT_LIB)

OBJSUB=$(OBJDIR)/convert_mietable$(EXT_OBJ) $(OBJDIR)/density_totalice$(EXT_OBJ) $(OBJDIR)/gamma_dsd$(EXT_OBJ) $(OBJDIR)/melting_layer$(EXT_OBJ) $(OBJDIR)/mg_ellips$(EXT_OBJ) $(OBJDIR)/mie_coated_sphere$(EXT_OBJ) $(OBJDIR)/mie_one_wc$(EXT_OBJ) $(OBJDIR)/mie_sphere$(EXT_OBJ) $(OBJDIR)/mod_gamma_dsd$(EXT_OBJ) $(OBJDIR)/n0_t$(EXT_OBJ) $(OBJDIR)/perm_ice$(EXT_OBJ) $(OBJDIR)/perm_melt$(EXT_OBJ) $(OBJDIR)/perm_water$(EXT_OBJ) $(OBJDIR)/permittivity$(EXT_OBJ) $(OBJDIR)/predict_mom07$(EXT_OBJ) $(OBJDIR)/predict_psd$(EXT_OBJ) $(OBJDIR)/predict_psd_F07$(EXT_OBJ) $(OBJDIR)/set_spectra$(EXT_OBJ) $(OBJDIR)/vol_fracs$(EXT_OBJ) 

OBJMOD=$(OBJDIR)/mod_mie$(EXT_OBJ)

OBJBIN=$(OBJDIR)/create_tables_spectra$(EXT_OBJ) $(OBJDIR)/rttov_scatt_make_coef$(EXT_OBJ)

LIBS=$(LIBDIR)/librttov$(RTTOV_VERSION)_mw_scatt_coef$(EXT_LIB) $(LIBDIR)/librttov$(RTTOV_VERSION)_main$(EXT_LIB)

BINS=$(BINDIR)/create_tables_spectra$(EXT_BIN) $(BINDIR)/rttov_scatt_make_coef$(EXT_BIN)

MODS=$(MODDIR)/mod_mie$(EXT_MOD)

include $(TOPDIR)/build/Makefile.inc

lib: dir intf $(LIB)

bin: lib $(BINS)

dir: 
	@mkdir -p $(TMPDIR)/$(SUBDIR) $(BINDIR) $(OBJDIR) $(INCDIR) $(MODDIR) $(LIBDIR)

intf: 
	@$(MKINTF) $(F90_INTF) $(INTF)
	@$(CPINCH) $(INCDIR)

$(LIB): $(OBJSUB) $(OBJMOD)
	\rm -f $(LIB)
	$(AR) $(LIB) $(OBJSUB) $(OBJMOD)

clean:
	\rm -f $(INTF) $(LIB) $(BINS) $(OBJSUB) $(OBJMOD) $(OBJBIN) $(MODS)


$(BINDIR)/create_tables_spectra$(EXT_BIN): $(OBJDIR)/create_tables_spectra$(EXT_OBJ) $(LIBS)
	cd $(TMPDIR) && $(FC) -o $(BINDIR)/create_tables_spectra$(EXT_BIN) $(OBJDIR)/create_tables_spectra$(EXT_OBJ) -L$(LIBDIR) -lrttov$(RTTOV_VERSION)_mw_scatt_coef -lrttov$(RTTOV_VERSION)_main $(LDFLAGS_EXTERN) $(LDFLAGS_ARCH)

$(BINDIR)/rttov_scatt_make_coef$(EXT_BIN): $(OBJDIR)/rttov_scatt_make_coef$(EXT_OBJ) $(LIBS)
	cd $(TMPDIR) && $(FC) -o $(BINDIR)/rttov_scatt_make_coef$(EXT_BIN) $(OBJDIR)/rttov_scatt_make_coef$(EXT_OBJ) -L$(LIBDIR) -lrttov$(RTTOV_VERSION)_mw_scatt_coef -lrttov$(RTTOV_VERSION)_main $(LDFLAGS_EXTERN) $(LDFLAGS_ARCH)

$(OBJDIR)/convert_mietable$(EXT_OBJ): convert_mietable.F90  $(MODDIR)/mod_mie$(EXT_MOD) $(MODDIR)/parkind1$(EXT_MOD)
	cd $(TMPDIR) && $(FC) -I$(INCDIR) $(FFLAGS_EXTERN) $(FFLAGS_ARCH_convert_mietable) $(FFLAG_MOD)$(MODDIR) -c $(SRCDIR)/convert_mietable.F90 -o $(OBJDIR)/convert_mietable$(EXT_OBJ)


$(OBJDIR)/density_totalice$(EXT_OBJ): density_totalice.F90  $(MODDIR)/parkind1$(EXT_MOD)
	cd $(TMPDIR) && $(FC) -I$(INCDIR) $(FFLAGS_EXTERN) $(FFLAGS_ARCH_density_totalice) $(FFLAG_MOD)$(MODDIR) -c $(SRCDIR)/density_totalice.F90 -o $(OBJDIR)/density_totalice$(EXT_OBJ)


$(OBJDIR)/gamma_dsd$(EXT_OBJ): gamma_dsd.F90 $(INCDIR)/n0_t.interface $(MODDIR)/mod_mie$(EXT_MOD) $(MODDIR)/parkind1$(EXT_MOD)
	cd $(TMPDIR) && $(FC) -I$(INCDIR) $(FFLAGS_EXTERN) $(FFLAGS_ARCH_gamma_dsd) $(FFLAG_MOD)$(MODDIR) -c $(SRCDIR)/gamma_dsd.F90 -o $(OBJDIR)/gamma_dsd$(EXT_OBJ)


$(OBJDIR)/melting_layer$(EXT_OBJ): melting_layer.F90 $(INCDIR)/perm_melt.interface $(INCDIR)/mie_coated_sphere.interface $(MODDIR)/mod_mie$(EXT_MOD) $(MODDIR)/parkind1$(EXT_MOD)
	cd $(TMPDIR) && $(FC) -I$(INCDIR) $(FFLAGS_EXTERN) $(FFLAGS_ARCH_melting_layer) $(FFLAG_MOD)$(MODDIR) -c $(SRCDIR)/melting_layer.F90 -o $(OBJDIR)/melting_layer$(EXT_OBJ)


$(OBJDIR)/mg_ellips$(EXT_OBJ): mg_ellips.F90  $(MODDIR)/parkind1$(EXT_MOD)
	cd $(TMPDIR) && $(FC) -I$(INCDIR) $(FFLAGS_EXTERN) $(FFLAGS_ARCH_mg_ellips) $(FFLAG_MOD)$(MODDIR) -c $(SRCDIR)/mg_ellips.F90 -o $(OBJDIR)/mg_ellips$(EXT_OBJ)


$(OBJDIR)/mie_coated_sphere$(EXT_OBJ): mie_coated_sphere.F90  $(MODDIR)/mod_mie$(EXT_MOD) $(MODDIR)/parkind1$(EXT_MOD)
	cd $(TMPDIR) && $(FC) -I$(INCDIR) $(FFLAGS_EXTERN) $(FFLAGS_ARCH_mie_coated_sphere) $(FFLAG_MOD)$(MODDIR) -c $(SRCDIR)/mie_coated_sphere.F90 -o $(OBJDIR)/mie_coated_sphere$(EXT_OBJ)


$(OBJDIR)/mie_one_wc$(EXT_OBJ): mie_one_wc.F90 $(INCDIR)/set_spectra.interface $(INCDIR)/perm_water.interface $(INCDIR)/perm_ice.interface $(INCDIR)/melting_layer.interface $(INCDIR)/mie_sphere.interface $(MODDIR)/mod_mie$(EXT_MOD) $(MODDIR)/parkind1$(EXT_MOD)
	cd $(TMPDIR) && $(FC) -I$(INCDIR) $(FFLAGS_EXTERN) $(FFLAGS_ARCH_mie_one_wc) $(FFLAG_MOD)$(MODDIR) -c $(SRCDIR)/mie_one_wc.F90 -o $(OBJDIR)/mie_one_wc$(EXT_OBJ)


$(OBJDIR)/mie_sphere$(EXT_OBJ): mie_sphere.F90  $(MODDIR)/parkind1$(EXT_MOD)
	cd $(TMPDIR) && $(FC) -I$(INCDIR) $(FFLAGS_EXTERN) $(FFLAGS_ARCH_mie_sphere) $(FFLAG_MOD)$(MODDIR) -c $(SRCDIR)/mie_sphere.F90 -o $(OBJDIR)/mie_sphere$(EXT_OBJ)


$(OBJDIR)/mod_gamma_dsd$(EXT_OBJ): mod_gamma_dsd.F90  $(MODDIR)/parkind1$(EXT_MOD)
	cd $(TMPDIR) && $(FC) -I$(INCDIR) $(FFLAGS_EXTERN) $(FFLAGS_ARCH_mod_gamma_dsd) $(FFLAG_MOD)$(MODDIR) -c $(SRCDIR)/mod_gamma_dsd.F90 -o $(OBJDIR)/mod_gamma_dsd$(EXT_OBJ)


$(OBJDIR)/n0_t$(EXT_OBJ): n0_t.F90  $(MODDIR)/mod_mie$(EXT_MOD) $(MODDIR)/parkind1$(EXT_MOD)
	cd $(TMPDIR) && $(FC) -I$(INCDIR) $(FFLAGS_EXTERN) $(FFLAGS_ARCH_n0_t) $(FFLAG_MOD)$(MODDIR) -c $(SRCDIR)/n0_t.F90 -o $(OBJDIR)/n0_t$(EXT_OBJ)


$(OBJDIR)/perm_ice$(EXT_OBJ): perm_ice.F90  $(MODDIR)/parkind1$(EXT_MOD)
	cd $(TMPDIR) && $(FC) -I$(INCDIR) $(FFLAGS_EXTERN) $(FFLAGS_ARCH_perm_ice) $(FFLAG_MOD)$(MODDIR) -c $(SRCDIR)/perm_ice.F90 -o $(OBJDIR)/perm_ice$(EXT_OBJ)


$(OBJDIR)/perm_melt$(EXT_OBJ): perm_melt.F90 $(INCDIR)/vol_fracs.interface $(INCDIR)/mg_ellips.interface $(MODDIR)/mod_mie$(EXT_MOD) $(MODDIR)/parkind1$(EXT_MOD)
	cd $(TMPDIR) && $(FC) -I$(INCDIR) $(FFLAGS_EXTERN) $(FFLAGS_ARCH_perm_melt) $(FFLAG_MOD)$(MODDIR) -c $(SRCDIR)/perm_melt.F90 -o $(OBJDIR)/perm_melt$(EXT_OBJ)


$(OBJDIR)/perm_water$(EXT_OBJ): perm_water.F90  $(MODDIR)/parkind1$(EXT_MOD)
	cd $(TMPDIR) && $(FC) -I$(INCDIR) $(FFLAGS_EXTERN) $(FFLAGS_ARCH_perm_water) $(FFLAG_MOD)$(MODDIR) -c $(SRCDIR)/perm_water.F90 -o $(OBJDIR)/perm_water$(EXT_OBJ)


$(OBJDIR)/permittivity$(EXT_OBJ): permittivity.F90 $(INCDIR)/perm_water.interface $(INCDIR)/perm_ice.interface $(INCDIR)/mg_ellips.interface $(MODDIR)/mod_mie$(EXT_MOD) $(MODDIR)/parkind1$(EXT_MOD)
	cd $(TMPDIR) && $(FC) -I$(INCDIR) $(FFLAGS_EXTERN) $(FFLAGS_ARCH_permittivity) $(FFLAG_MOD)$(MODDIR) -c $(SRCDIR)/permittivity.F90 -o $(OBJDIR)/permittivity$(EXT_OBJ)


$(OBJDIR)/predict_mom07$(EXT_OBJ): predict_mom07.F90  $(MODDIR)/parkind1$(EXT_MOD)
	cd $(TMPDIR) && $(FC) -I$(INCDIR) $(FFLAGS_EXTERN) $(FFLAGS_ARCH_predict_mom07) $(FFLAG_MOD)$(MODDIR) -c $(SRCDIR)/predict_mom07.F90 -o $(OBJDIR)/predict_mom07$(EXT_OBJ)


$(OBJDIR)/predict_psd$(EXT_OBJ): predict_psd.F90  $(MODDIR)/mod_mie$(EXT_MOD) $(MODDIR)/parkind1$(EXT_MOD)
	cd $(TMPDIR) && $(FC) -I$(INCDIR) $(FFLAGS_EXTERN) $(FFLAGS_ARCH_predict_psd) $(FFLAG_MOD)$(MODDIR) -c $(SRCDIR)/predict_psd.F90 -o $(OBJDIR)/predict_psd$(EXT_OBJ)


$(OBJDIR)/predict_psd_F07$(EXT_OBJ): predict_psd_F07.F90 $(INCDIR)/predict_mom07.interface $(MODDIR)/mod_mie$(EXT_MOD) $(MODDIR)/parkind1$(EXT_MOD)
	cd $(TMPDIR) && $(FC) -I$(INCDIR) $(FFLAGS_EXTERN) $(FFLAGS_ARCH_predict_psd_F07) $(FFLAG_MOD)$(MODDIR) -c $(SRCDIR)/predict_psd_F07.F90 -o $(OBJDIR)/predict_psd_F07$(EXT_OBJ)


$(OBJDIR)/set_spectra$(EXT_OBJ): set_spectra.F90 $(INCDIR)/predict_psd.interface $(INCDIR)/predict_psd_F07.interface $(INCDIR)/gamma_dsd.interface $(INCDIR)/mod_gamma_dsd.interface $(MODDIR)/mod_mie$(EXT_MOD) $(MODDIR)/parkind1$(EXT_MOD)
	cd $(TMPDIR) && $(FC) -I$(INCDIR) $(FFLAGS_EXTERN) $(FFLAGS_ARCH_set_spectra) $(FFLAG_MOD)$(MODDIR) -c $(SRCDIR)/set_spectra.F90 -o $(OBJDIR)/set_spectra$(EXT_OBJ)


$(OBJDIR)/vol_fracs$(EXT_OBJ): vol_fracs.F90  $(MODDIR)/parkind1$(EXT_MOD)
	cd $(TMPDIR) && $(FC) -I$(INCDIR) $(FFLAGS_EXTERN) $(FFLAGS_ARCH_vol_fracs) $(FFLAG_MOD)$(MODDIR) -c $(SRCDIR)/vol_fracs.F90 -o $(OBJDIR)/vol_fracs$(EXT_OBJ)


$(OBJDIR)/create_tables_spectra$(EXT_OBJ): create_tables_spectra.F90 $(INCDIR)/convert_mietable.interface $(MODDIR)/mod_mie$(EXT_MOD) $(MODDIR)/parkind1$(EXT_MOD)
	cd $(TMPDIR) && $(FC) -I$(INCDIR) $(FFLAGS_EXTERN) $(FFLAGS_ARCH_create_tables_spectra) $(FFLAG_MOD)$(MODDIR) -c $(SRCDIR)/create_tables_spectra.F90 -o $(OBJDIR)/create_tables_spectra$(EXT_OBJ)


$(OBJDIR)/rttov_scatt_make_coef$(EXT_OBJ): rttov_scatt_make_coef.F90 $(INCDIR)/convert_mietable.interface $(INCDIR)/mie_one_wc.interface $(INCDIR)/perm_water.interface $(MODDIR)/mod_mie$(EXT_MOD) $(MODDIR)/parkind1$(EXT_MOD)
	cd $(TMPDIR) && $(FC) -I$(INCDIR) $(FFLAGS_EXTERN) $(FFLAGS_ARCH_rttov_scatt_make_coef) $(FFLAG_MOD)$(MODDIR) -c $(SRCDIR)/rttov_scatt_make_coef.F90 -o $(OBJDIR)/rttov_scatt_make_coef$(EXT_OBJ)


$(OBJDIR)/mod_mie$(EXT_OBJ): mod_mie.F90  $(MODDIR)/parkind1$(EXT_MOD)
	cd $(TMPDIR) && $(FC) -I$(INCDIR) $(FFLAGS_EXTERN) $(FFLAGS_ARCH_mod_mie) $(FFLAG_MOD)$(MODDIR) -c $(SRCDIR)/mod_mie.F90 -o $(OBJDIR)/mod_mie$(EXT_OBJ)
	@cd $(TMPDIR) && $(MVDMOD) mod_mie$(EXT_MOD) $(MODDIR)/mod_mie$(EXT_MOD)

$(MODDIR)/mod_mie$(EXT_MOD): mod_mie.F90  $(MODDIR)/parkind1$(EXT_MOD)
	cd $(TMPDIR) && $(FC) -I$(INCDIR) $(FFLAGS_EXTERN) $(FFLAGS_ARCH_mod_mie) $(FFLAG_MOD)$(MODDIR) -c $(SRCDIR)/mod_mie.F90 -o $(OBJDIR)/mod_mie$(EXT_OBJ)
	@cd $(TMPDIR) && $(MVDMOD) mod_mie$(EXT_MOD) $(MODDIR)/mod_mie$(EXT_MOD)

