#-
#- $Id: AA_make 2658 2015-04-17 13:57:46Z josefine.ghattas $
#-
PARALLEL_LIB = $(LIBDIR)/libparallel.a
SXPARALLEL_LIB = $(PARALLEL_LIB)
#-Q- sxnec  SXPARALLEL_LIB = $(LIBDIR)/libsxparallel.a
#-Q- sx6nec SXPARALLEL_LIB = $(LIBDIR)/libsxparallel.a
#-Q- eshpux SXPARALLEL_LIB = $(LIBDIR)/libsxparallel.a
#-Q- sx8brodie SXPARALLEL_LIB = $(LIBDIR)/libsxparallel.a
#-
PARAM_LIB = $(LIBDIR)/libparameters.a
SXPARAM_LIB = $(PARAM_LIB)
#-Q- sxnec  SXPARAM_LIB = $(LIBDIR)/libsxparameters.a
#-Q- sx6nec SXPARAM_LIB = $(LIBDIR)/libsxparameters.a
#-Q- eshpux SXPARAM_LIB = $(LIBDIR)/libsxparameters.a
#-Q- sx8brodie SXPARAM_LIB = $(LIBDIR)/libsxparameters.a
#-
ORGLOB_LIB = $(LIBDIR)/liborglob.a
SXORGLOB_LIB = $(ORGLOB_LIB)
#-Q- sxnec  SXORGLOB_LIB = $(LIBDIR)/libsxorglob.a
#-Q- sx6nec SXORGLOB_LIB = $(LIBDIR)/libsxorglob.a
#-Q- eshpux SXORGLOB_LIB = $(LIBDIR)/libsxorglob.a
#-Q- sx8brodie SXORGLOB_LIB = $(LIBDIR)/libsxorglob.a
#-
STOMATE_LIB = $(LIBDIR)/libstomate.a
SXSTOMATE_LIB = $(STOMATE_LIB)
#-Q- sxnec  SXSTOMATE_LIB = $(LIBDIR)/libsxstomate.a
#-Q- sx6nec SXSTOMATE_LIB = $(LIBDIR)/libsxstomate.a
#-Q- eshpux SXSTOMATE_LIB = $(LIBDIR)/libsxstomate.a
#-Q- sx8brodie SXSTOMATE_LIB = $(LIBDIR)/libsxstomate.a
#-
MODS1 =              \
  qsat_moisture.f90 \
  sechiba_io_p.f90   \
  sechiba_io.f90     \
  slowproc.f90       \
  diffuco.f90        \
  condveg.f90        \
  enerbil.f90        \
  explicitsnow.f90       \
  hydrol.f90         \
  hydrolc.f90        \
  thermosoil.f90     \
  routing.f90        \
  sechiba.f90        \
  ioipslctrl.f90     \
  intersurf.f90 
OBJSMODS1 = $(MODS1:.f90=.o)
#-
.PRECIOUS : $(MODEL_LIB)
#-Q- sxnec  .PRECIOUS : $(SXMODEL_LIB)
#-Q- sx6nec .PRECIOUS : $(SXMODEL_LIB)
#-Q- eshpux .PRECIOUS : $(SXMODEL_LIB)
#-Q- sx8brodie .PRECIOUS : $(SXMODEL_LIB)
#-
all:
	$(M_K) libparallel
	$(M_K) libparameters
	$(M_K) liborglob
	$(M_K) libstomate
	$(M_K) m_all
	@echo sechiba is OK

m_all: $(MODEL_LIB)($(OBJSMODS1))
#-Q- intel m_all: WORK_MOD $(MODEL_LIB)($(OBJSMODS1))

libparallel:
	(cd ../src_parallel; $(M_K) -f Makefile)

libparameters:
	(cd ../src_parameters; $(M_K) -f Makefile)

liborglob:
	(cd ../src_global; $(M_K) -f Makefile)

libstomate:
	(cd ../src_stomate; $(M_K) -f Makefile)

$(MODEL_LIB)(%.o) : %.f90
	$(F_C) $(F_O) -I$(NCDF_INC) $*.f90
	$(A_C) $(MODEL_LIB) $*.o
	$(A_C) $(ORCHIDEE_LIB) $*.o
#-Q- sxnec 	$(A_X) $(SXMODEL_LIB) $*.o
#-Q- sxnec 	mv $*.mod $(MODDIR)
#-Q- sx6nec 	$(A_X) $(SXMODEL_LIB) $*.o
#-Q- sx6nec 	mv $*.mod $(MODDIR)
#-Q- eshpux 	$(A_X) $(SXMODEL_LIB) $*.o
#-Q- eshpux 	mv $*.mod $(MODDIR)
#-Q- sx8mercure 	mv $*.mod $(MODDIR)
#-Q- sx9mercure 	mv $*.mod $(MODDIR)
#-Q- sx8brodie	$(A_X) $(SXMODEL_LIB) $*.o
#-Q- sx8brodie	mv $*.mod $(MODDIR)
#-Q- solaris 	mv $*.mod $(MODDIR)
	$(RM) $*.o
#-Q- intel
#-Q- intel WORK_MOD :
#-Q- intel 	$(RM) work.pcl
#-Q- intel 	@echo "work.pc" > work.pcl
#-Q- intel 	@echo "../src_parameters/work.pc" >> work.pcl
#-Q- intel 	@echo "../src_stomate/work.pc" >> work.pcl
#-Q- intel 	@echo "../../IOIPSL/src/work.pc" >> work.pcl

config : 
	$(BINDIR)/Fparser -name SECHIBA $(MODS1)
	echo 'Configuration of SECHIBA done'

clean:
	$(RM) $(MODEL_LIB)

$(MODEL_LIB)(sechiba.o):          \
  $(PARAM_LIB)(pft_parameters.o)  \
  $(MODEL_LIB)(sechiba_io_p.o)    \
  $(MODEL_LIB)(sechiba_io.o)      \
  $(MODEL_LIB)(diffuco.o)         \
  $(MODEL_LIB)(condveg.o)         \
  $(MODEL_LIB)(enerbil.o)         \
  $(MODEL_LIB)(hydrolc.o)         \
  $(MODEL_LIB)(hydrol.o)          \
  $(MODEL_LIB)(thermosoil.o)      \
  $(MODEL_LIB)(slowproc.o)        \
  $(MODEL_LIB)(routing.o)
 
$(MODEL_LIB)(sechiba_io_p.o): \
  $(PARAM_LIB)(constantes.o)  \
  $(PARALLEL_LIB)(mod_orchidee_para.o)

$(MODEL_LIB)(sechiba_io.o): \
  $(MODEL_LIB)(sechiba_io_p.o) \
  $(PARAM_LIB)(constantes.o)

$(MODEL_LIB)(hydrol.o):           \
  $(PARAM_LIB)(constantes.o)  \
  $(MODEL_LIB)(explicitsnow.o)  \
  $(MODEL_LIB)(sechiba_io.o)      \
  $(ORGLOB_LIB)(grid.o)

$(MODEL_LIB)(explicitsnow.o):         \
  $(PARAM_LIB)(pft_parameters.o)  \
  $(PARAM_LIB)(constantes.o)      \
  $(PARAM_LIB)(constantes_soil.o) \
  $(MODEL_LIB)(qsat_moisture.o)   \
  $(MODEL_LIB)(sechiba_io.o)

$(MODEL_LIB)(hydrolc.o):          \
  $(PARAM_LIB)(constantes.o)  \
  $(MODEL_LIB)(explicitsnow.o)  \
  $(MODEL_LIB)(sechiba_io.o)

$(MODEL_LIB)(slowproc.o):         \
  $(PARAM_LIB)(pft_parameters.o)  \
  $(STOMATE_LIB)(stomate.o)       \
  $(MODEL_LIB)(sechiba_io.o)      \
  $(ORGLOB_LIB)(interpol_help.o)

$(MODEL_LIB)(diffuco.o):          \
  $(PARAM_LIB)(pft_parameters.o)  \
  $(MODEL_LIB)(qsat_moisture.o)  \
  $(MODEL_LIB)(sechiba_io.o)

$(MODEL_LIB)(enerbil.o):          \
  $(PARAM_LIB)(constantes.o)      \
  $(MODEL_LIB)(qsat_moisture.o)   \
  $(MODEL_LIB)(explicitsnow.o)        \
  $(MODEL_LIB)(sechiba_io.o)

$(MODEL_LIB)(condveg.o):          \
  $(PARAM_LIB)(pft_parameters.o)  \
  $(PARAM_LIB)(constantes.o)  \
  $(PARAM_LIB)(constantes_soil.o)  \
  $(PARAM_LIB)(pft_parameters.o)  \
  $(MODEL_LIB)(sechiba_io.o) \
  $(ORGLOB_LIB)(interpol_help.o)

$(MODEL_LIB)(thermosoil.o): \
  $(PARAM_LIB)(constantes.o)  \
  $(PARAM_LIB)(constantes_soil.o)  \
  $(PARAM_LIB)(pft_parameters.o)  \
  $(MODEL_LIB)(sechiba_io.o)

$(MODEL_LIB)(routing.o):          \
  $(PARAM_LIB)(constantes.o)  \
  $(MODEL_LIB)(sechiba_io.o)

$(MODEL_LIB)(intersurf.o):   \
  $(PARAM_LIB)(constantes.o)  \
  $(PARAM_LIB)(control.o)    \
  $(ORGLOB_LIB)(grid.o)      \
  $(MODEL_LIB)(thermosoil.o) \
  $(MODEL_LIB)(sechiba.o)

$(MODEL_LIB)(ioipslctrl.o):   \
  $(PARAM_LIB)(constantes.o)  \
  $(PARAM_LIB)(constantes_soil.o)  \
  $(PARAM_LIB)(pft_parameters.o)  \
  $(MODEL_LIB)(thermosoil.o) 
