Juan 8/12/2016: add management of LEN_HREC in MNH & SURFEX
[MNH-git_open_source-lfs.git] / src / Makefile.MESONH.mk
index abb294b..eb5f093 100644 (file)
@@ -14,7 +14,7 @@ OBJDIR_ROOT=${PWD}/dir_obj
 endif
 LIB_OBJS_ROOT=lib
 #
-ARCH_XYZ=${ARCH}${MNH_REAL}${MNH_INT}-${VERSION_XYZ}
+ARCH_XYZ=${ARCH}${MNH_REAL}I${MNH_INT}-${VERSION_XYZ}
 ##########################################################
 #                                                        #
 #            Source DIRECTORY                            #
@@ -27,9 +27,6 @@ ARCH_XYZ=${ARCH}${MNH_REAL}${MNH_INT}-${VERSION_XYZ}
 ifdef VER_USER
 DIR_USER += ${VER_USER}
 endif
-ifdef MNH_NCWRIT
-CPPFLAGS_MNH += -D${MNH_NCWRIT}
-endif
 ##########################################################
 #           Source MNH                                   #
 ##########################################################
@@ -46,6 +43,16 @@ DIR_MASTER += $(DIR_MNH)
 CPPFLAGS   += $(CPPFLAGS_MNH)
 INC        += $(INC_MNH)
 
+ifeq "$(MNH_INT)" "8"
+CPPFLAGS   += -DMNH_INT8
+endif
+
+#
+#  Len of HREC characters 
+#
+CPPFLAGS   += -DLEN_HREC=$(LEN_HREC)
+#
+
 OBJS_NOCB +=  spll_dxf.o spll_dxm.o spll_dyf.o spll_dym.o \
         spll_dzf.o spll_dzm.o spll_mxf.o \
         spll_mxm.o spll_myf.o spll_mym.o spll_mzf.o \
@@ -56,7 +63,7 @@ OBJS_NOCB +=  spll_dxf.o spll_dxm.o spll_dyf.o spll_dym.o \
 
 $(OBJS_NOCB) : OPT = $(OPT_NOCB)
 
-OBJS0 += spll_switch_sbg_lesn.o
+OBJS0 += spll_switch_sbg_lesn.o spll_mode_mppdb.o
 
 $(OBJS0)     : OPT = $(OPT0) 
 
@@ -70,7 +77,7 @@ endif
 #
 DIR_SURFEX += ARCH_SRC/surfex
 DIR_SURFEX += SURFEX
-#CPPFLAGS_SURFEX=
+CPPFLAGS_SURFEX += -DMNH_PARALLEL
 #
 ifdef DIR_SURFEX
 DIR_MASTER += $(DIR_SURFEX)
@@ -136,12 +143,13 @@ endif
 ##########################################################
 ifdef MNH_RTTOV
 DIR_RTTOV      +=  LIB/RTTOV/src
-#CPPFLAGS_RTTOV =
+CPPFLAGS_RTTOV = -DMNH_RTTOV
 INC_RTTOV      = -I$(B)LIB/RTTOV/src
 #
 DIR_MASTER  += $(DIR_RTTOV)
 CPPFLAGS    += $(CPPFLAGS_RTTOV)
 INC         += $(INC_RTTOV)
+CPPFLAGS_MNH += -DMNH_RTTOV=${MNH_RTTOV}
 #VER_RTTOV      = RTTOV87
 #ARCH_XYZ    := $(ARCH_XYZ)-$(VER_RAD)
 endif
@@ -175,6 +183,35 @@ VPATH               += $(DIR_NEWLFI)
 #ARCH_XYZ    := $(ARCH_XYZ)-$(VER_NEWLFI)
 endif
 ##########################################################
+#           Source NCWRIT                                #
+##########################################################
+ifdef MNH_NCWRIT
+CPPFLAGS_MNH += -DMNH_NCWRIT=${MNH_NCWRIT}
+endif
+##########################################################
+#           Source FOREFIRE                              #
+##########################################################
+ifdef MNH_FOREFIRE
+DIR_FOREFIRE          += LIB/FOREFIRE
+INC_FOREFIRE           = -I$(B)$(DIR_FOREFIRE)
+DIR_MASTER            += $(DIR_FOREFIRE)
+OBJS_LISTE_MASTER     += C_ForeFire_Interface.o
+INC                   += $(INC_FOREFIRE)
+VPATH                 += $(DIR_FOREFIRE)
+CPPFLAGS              += -DMNH_FOREFIRE
+endif
+##########################################################
+#           Source TOOLS                                 #
+##########################################################
+ifdef MNH_TOOLS
+DIR_TOOLS  += ../LIBTOOLS/tools/lfi2cdf/src
+INC_TOOLS  += -I$(B)$(DIR_TOOLS)
+DIR_MASTER += $(DIR_TOOLS)
+INC        += $(INC_TOOLS)
+VPATH      += $(DIR_TOOLS)
+CPPFLAGS   += -DLOWMEM
+endif
+##########################################################
 #           Source MPIVIDE                               #
 ##########################################################
 #
@@ -191,7 +228,7 @@ INC_MPI                = -I$(B)$(DIR_MPI)
 DIR_MASTER            += $(DIR_MPI)
 OBJS_LISTE_MASTER     += mpivide.o
 INC                   += $(INC_MPI)
-mpivide.o  : CPPFLAGS += -DFUJI \
+mpivide.o  : CPPFLAGS += -DFUJI -DMNH_INT=$(MNH_INT)\
                         -I$(DIR_MPI)/include
 VPATH                 += $(DIR_MPI)
 endif
@@ -336,21 +373,27 @@ VPATH         += $(GRIBAPI_PATH)/include
 R64_GRIBAPI=R64
 endif
 ##########################################################
-#           Librairie NETCDF                             #
+#           Librairie NETCDF4                            #
 ##########################################################
+# NETCDF4 INPUT/OUTPUT in MesoNH 
+ifdef MNH_IOCDF4
+CPPFLAGS_MNH += -DMNH_IOCDF4
+endif
 #
-# NetCDF  : AUTO install of netcdf-3.6.X on PC linux to avoid problem with compiler
+# NetCDF  : AUTO install of netcdf-4.X.X on PC linux to avoid problem with compiler
 #  
 #
 ifeq "$(VER_CDF)" "CDFAUTO"
 DIR_CDF?=${SRC_MESONH}/src/LIB/netcdf-${VERSION_CDF}
-CDF_PATH?=${DIR_CDF}-${ARCH}${MNH_INT}
+CDF_PATH?=${DIR_CDF}-${ARCH}I${MNH_INT}
 CDF_INC?=${CDF_PATH}/include/netcdf.inc
 #
 INC_NETCDF     ?= -I${CDF_PATH}/include
-LIB_NETCDF     ?= -L${CDF_PATH}/lib -L${CDF_PATH}/lib64 -lnetcdf_c++ -lnetcdf
+LIB_NETCDF     ?= -L${CDF_PATH}/lib -L${CDF_PATH}/lib64 -lnetcdff -lnetcdf  -lhdf5_hl -lhdf5
 INC            += $(INC_NETCDF)
 LIBS           += $(LIB_NETCDF)
+#
+DIR_HDF?=${SRC_MESONH}/src/LIB/hdf5-${VERSION_HDF}
 endif
 #
 # NetCDF in beaufix (bull meteo-france)
@@ -476,6 +519,9 @@ NSOURCE=8
 PROG_LIST += MESONH  LATLON_TO_XY PREP_IDEAL_CASE PREP_REAL_CASE PREP_PGD \
             PREP_NEST_PGD SPAWNING DIAG PREP_SURFEX ZOOM_PGD SPECTRE \
            MNH2LPDM
+ifdef MNH_TOOLS
+PROG_LIST += LFI2CDF
+endif
 #endif
 ##########################################################
 #                                                        #