Juan 8/12/2016: add management of LEN_HREC in MNH & SURFEX
[MNH-git_open_source-lfs.git] / src / Makefile.MESONH.mk
index f35c17a..eb5f093 100644 (file)
@@ -1,3 +1,7 @@
+#MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
+#MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
+#MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
+#MNH_LIC for details. version 1.
 ##########################################################
 #                                                        #
 #           Initialisation of some variables             #
@@ -10,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                            #
@@ -23,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                                   #
 ##########################################################
@@ -42,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 \
@@ -52,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) 
 
@@ -66,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)
@@ -130,14 +141,15 @@ endif
 ##########################################################
 #           Source RTTOV                                 #
 ##########################################################
+ifdef MNH_RTTOV
 DIR_RTTOV      +=  LIB/RTTOV/src
-#CPPFLAGS_RTTOV =
+CPPFLAGS_RTTOV = -DMNH_RTTOV
 INC_RTTOV      = -I$(B)LIB/RTTOV/src
 #
-ifdef DIR_RTTOV
 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
@@ -171,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                               #
 ##########################################################
 #
@@ -187,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
@@ -332,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)
@@ -472,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
 ##########################################################
 #                                                        #