
#         Makefile for SOSIE
#         ******************



#          L. Brodeau, 2011


include make.macro

NCDF_LIB=$(NCDF)/lib
NCDF_INC=$(NCDF)/include


#========================================================
#          You should not change anything below
#========================================================

LIB_SOSIE = lib/libsosie.a

# LIBRARY :
LIB_CDF = -L$(NCDF_LIB) -lnetcdf $(EXTRA_NCDF_LIB)
LIB     = -L./lib -lsosie $(LIB_CDF)


OBJ = obj/io_ezcdf.o \
      obj/sosie_conf.o \
      obj/prepare.o \
      obj/mod_drown.o \
      obj/mod_akima_2d.o \
      obj/mod_bilin_2d.o \
      obj/mod_akima_1d.o \
      obj/interpolate.o


# Modules to install in $INSTALL_DIR/include :
MOD_INST= mod/io_ezcdf.mod \
          mod/mod_akima_2d.mod \
          mod/mod_drown.mod


all: bin/sosie.x bin/corr_vect.x bin/interp_to_line.x bin/mask_drown_field.x

util_2d: bin/apply_zon_corr.x





#bin/proj_vect_to_line.x

bin/sosie.x: src/sosie.F90 obj/rd_nmlst.o $(LIB_SOSIE)
	$(FC) $(FF) obj/rd_nmlst.o src/sosie.F90 -o bin/sosie.x $(LIB)

bin/corr_vect.x: src/corr_vect.f90 obj/rd_nmlst.o $(LIB_SOSIE)
	$(FC) $(FF) obj/rd_nmlst.o src/corr_vect.f90 -o bin/corr_vect.x $(LIB)

bin/interp_to_line.x: src/interp_to_line.f90 obj/rd_nmlst.o $(LIB_SOSIE)
	$(FC) $(FF) obj/rd_nmlst.o src/interp_to_line.f90 -o bin/interp_to_line.x $(LIB)

#bin/proj_vect_to_line.x: src/proj_vect_to_line.f90 obj/rd_nmlst.o $(LIB_SOSIE)
#	$(FC) $(FF) obj/rd_nmlst.o src/proj_vect_to_line.f90 -o bin/proj_vect_to_line.x $(LIB)


$(LIB_SOSIE): $(OBJ)
	@echo
	@mkdir -p lib
	ar -rv $(LIB_SOSIE) $(OBJ)
	ranlib $(LIB_SOSIE)
	@echo



# Objects :
# ---------

obj/io_ezcdf.o: src/io_ezcdf.f90
	$(FC) $(FF) -I$(NCDF_INC) -c src/io_ezcdf.f90 -o obj/io_ezcdf.o

obj/rd_nmlst.o: src/rd_nmlst.F90 obj/sosie_conf.o
	$(FC) $(FF) -c src/rd_nmlst.F90 -o obj/rd_nmlst.o

obj/sosie_conf.o: src/sosie_conf.F90
	@mkdir -p obj
	@mkdir -p mod
	$(FC) $(FF) -c src/sosie_conf.F90 -o obj/sosie_conf.o

obj/prepare.o: src/prepare.F90
	$(FC) $(FF) -c src/prepare.F90 -o obj/prepare.o

obj/interpolate.o: src/interpolate.F90
	$(FC) $(FF) -c src/interpolate.F90 -o obj/interpolate.o

obj/mod_drown.o: src/mod_drown.F90
	$(FC) $(FF) -c src/mod_drown.F90 -o obj/mod_drown.o

obj/mod_akima_2d.o: src/mod_akima_2d.f90
	$(FC) $(FF) -c src/mod_akima_2d.f90 -o obj/mod_akima_2d.o

obj/mod_bilin_2d.o: src/mod_bilin_2d.f90
	$(FC) $(FF) -c src/mod_bilin_2d.f90 -o obj/mod_bilin_2d.o

obj/mod_akima_1d.o: src/mod_akima_1d.f90
	$(FC) $(FF) -c src/mod_akima_1d.f90 -o obj/mod_akima_1d.o



bin/mask_drown_field.x: src/mask_drown_field.f90 $(LIB_SOSIE)
	$(FC) $(FF) -o bin/mask_drown_field.x src/mask_drown_field.f90 $(LIB)



# util_2d
###########

bin/apply_zon_corr.x: src/util_2d/apply_zon_corr.f90 obj/io_ezcdf.o obj/mod_akima_1d.o
	$(FC) $(FF) src/util_2d/apply_zon_corr.f90 -o bin/apply_zon_corr.x $(LIB)







install: all
	@mkdir -p $(INSTALL_DIR)/bin $(INSTALL_DIR)/lib/$(EC_ARCH) $(INSTALL_DIR)/include/$(EC_ARCH)
	cp bin/*.x      $(INSTALL_DIR)/bin/
	cp $(LIB_SOSIE) $(INSTALL_DIR)/lib/$(EC_ARCH)
	cp $(MOD_INST)  $(INSTALL_DIR)/include/$(EC_ARCH)


uninstall:
	rm -f $(INSTALL_DIR)/bin/sosie.x $(INSTALL_DIR)/bin/corr_vect.x
	rm -f $(INSTALL_DIR)/bin/interp_to_line.x $(INSTALL_DIR)/bin/proj_vect_to_line.x
	rm -f $(INSTALL_DIR)/lib/$(LIB_SOSIE) $(INSTALL_DIR)/bin/apply_zon_corr.x
	rm -f $(INSTALL_DIR)/include/io_ezcdf.mod


clean:
	rm -f *.o *.mod bin/* $(LIB_SOSIE) *.out mod/*.mod *.x *~ *\# src/*~ src/*\# *.log
	rm -rf mod lib obj




