diff --git a/src/LIB/SURCOUCHE/src/mode_io.f90 b/src/LIB/SURCOUCHE/src/mode_io.f90 index 0077216d448936f23dff49265588acb7a6fa15f7..0434b5ea16e1eee43b1dda7f2d0f594c167090dd 100644 --- a/src/LIB/SURCOUCHE/src/mode_io.f90 +++ b/src/LIB/SURCOUCHE/src/mode_io.f90 @@ -187,7 +187,7 @@ CONTAINS CHARACTER(len=5) :: CFILE INTEGER :: IFILE, IRANK_PROCIO -#if defined(MNH_SX5) || defined(MNH_SP4) || defined(NAGf95) || defined(MNH_LINUX) +#if defined(MNH_SX5) || defined(MNH_SP4) || defined(MNH_LINUX) CHARACTER(len=20) :: YSTATUS CHARACTER(len=20) :: YACCESS CHARACTER(len=20) :: YFORM @@ -257,7 +257,7 @@ CONTAINS RETURN END IF -#if defined(MNH_SX5) || defined(MNH_SP4) || defined(NAGf95) || defined(MNH_LINUX) +#if defined(MNH_SX5) || defined(MNH_SP4) || defined(MNH_LINUX) !JUAN IF (PRESENT(STATUS)) THEN YSTATUS=STATUS @@ -355,7 +355,7 @@ CONTAINS PAD=PAD) #else -#if defined(MNH_SX5) || defined(MNH_SP4) || defined(NAGf95) || defined(MNH_LINUX) +#if defined(MNH_SX5) || defined(MNH_SP4) || defined(MNH_LINUX) !JUAN : 31/03/2000 modif pour acces direct IF (YACCESS=='STREAM') THEN OPEN(NEWUNIT=TPFILE%NLU, & @@ -482,7 +482,7 @@ CONTAINS PAD=PAD) #else -#if defined(MNH_SX5) || defined(MNH_SP4) || defined(NAGf95) || defined(MNH_LINUX) +#if defined(MNH_SX5) || defined(MNH_SP4) || defined(MNH_LINUX) IF (ACCESS=='DIRECT') THEN OPEN(NEWUNIT=TPFILE%NLU, & FILE=TRIM(YPREFILENAME)//SUFFIX(".P"), & diff --git a/src/Makefile b/src/Makefile index 15510f0803bbd63a00bc4d3d61538dfd813797c5..ef4e4220cf8b008d851c17ba137fa40a7bf4382a 100644 --- a/src/Makefile +++ b/src/Makefile @@ -326,7 +326,9 @@ A64=A64 endif gribapi : $(GRIBAPI_INC) $(GRIBAPI_INC) : - cd ${DIR_GRIBAPI} && ./configure --disable-shared --disable-jpeg --prefix=${GRIBAPI_PATH} CC="$(CC)" FC="$(FC)" ${GRIBAPI_CONF} && $(MAKE) -j 1 clean && $(MAKE) -j 1 && $(MAKE) -j 1 install && $(MAKE) -j 1 clean + cd ${DIR_GRIBAPI} && ./configure --disable-shared --disable-jpeg --prefix=${GRIBAPI_PATH} CC="$(CC)" \ + FC="$(FC)" FCFLAGS="$(GRIB_FLAGS)" ${GRIBAPI_CONF} && $(MAKE) -j 1 clean && \ + $(MAKE) -j 1 && $(MAKE) -j 1 install && $(MAKE) -j 1 clean gribapi_clean : - [ -d ${GRIBAPI_PATH} ] && rm -fr ${GRIBAPI_PATH} @@ -351,7 +353,7 @@ $(CDF_MOD) : CC="$(CC)" CFLAGS="$(NETCDF_OPT)" CPPFLAGS="${INC_NETCDF}" ${CDF_CONF} LDFLAGS="-L${CDF_PATH}/lib64" LIBS="-lhdf5_hl -lhdf5 -lsz -laec -lz" && \ $(MAKE) && $(MAKE) install && $(MAKE) clean cd ${DIR_CDFF} && ./configure --disable-shared --prefix=${CDF_PATH} --libdir=${CDF_PATH}/lib64 \ - CC="$(CC)" CFLAGS="$(NETCDF_OPT)" FC="$(FC)" FCFLAGS="$(NETCDF_OPT)" FFLAGS="$(NETCDF_OPT)" \ + CC="$(CC)" CFLAGS="$(NETCDF_OPT)" FC="$(FC)" FCFLAGS="$(NETCDF_OPT) $(NETCDF_SUPPFLAGS)" FFLAGS="$(NETCDF_OPT)" \ CPPFLAGS="${INC_NETCDF}" ${CDF_CONF} LDFLAGS="-L${CDF_PATH}/lib64" LIBS="-lnetcdf -lhdf5_hl -lhdf5 -lsz -laec -lz" && \ $(MAKE) && $(MAKE) install && $(MAKE) clean diff --git a/src/Rules.LXNAGf95.mk b/src/Rules.LXNAGfor.mk similarity index 55% rename from src/Rules.LXNAGf95.mk rename to src/Rules.LXNAGfor.mk index f8ac45d58e512b5083ec99d50d040a8429ac4664..d7a8adf967c88fa5ea120ee2497133d9ec976d60 100644 --- a/src/Rules.LXNAGf95.mk +++ b/src/Rules.LXNAGfor.mk @@ -1,18 +1,42 @@ -#MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +#MNH_LIC Copyright 1994-2019 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 version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt #MNH_LIC for details. version 1. ########################################################## # # # Compiler Options # # # ########################################################## -#OBJDIR_PATH=/home/escj/azertyuiopqsdfghjklm/wxcvbn/azertyuiopqsdfghjklmwxcvbn # -OPT_BASE = -r8 -mdir $(OBJDIR) -g -gline -kind=byte -w -maxcontin=200 -PIC +OPT_BASE = -g -gline -kind=byte -PIC -wmismatch=$(LIST_MISMATCH) OPT_PERF0 = -O0 OPT_PERF2 = -O2 OPT_CHECK = -C -nan +OPT_I8 = -i8 +OPT_R8 = -r8 +# +# Real/Integer 4/8 option +# +MNH_REAL ?=8 +MNH_INT ?=4 +LFI_RECL ?=512 +# +# +ifneq "$(MNH_REAL)" "4" +OPT_BASE += $(OPT_R8) +CPPFLAGS_SURCOUCHE += -DMNH_MPI_DOUBLE_PRECISION +endif +# +OPT_BASE_I4 := $(OPT_BASE) +ifeq "$(MNH_INT)" "8" +OPT_BASE += $(OPT_I8) +LFI_INT ?=8 +MNH_MPI_RANK_KIND ?=8 +else +MNH_MPI_RANK_KIND ?=4 +LFI_INT ?=4 +endif +# # OPT = $(OPT_BASE) $(OPT_PERF2) OPT0 = $(OPT_BASE) $(OPT_PERF0) @@ -22,37 +46,50 @@ ifeq "$(OPTLEVEL)" "DEBUG" OPT = $(OPT_BASE) $(OPT_PERF0) $(OPT_CHECK) OPT0 = $(OPT_BASE) $(OPT_PERF0) $(OPT_CHECK) OPT_NOCB = $(OPT_BASE) $(OPT_PERF0) +CFLAGS += -g -O0 +endif +# +# +CC = gcc +FC = nagfor +ifeq "$(VER_MPI)" "MPIAUTO" +F90 = mpifort +CPPFLAGS_SURCOUCHE += -DMNH_USE_MPI_STATUSES_IGNORE +else +F90 = nagfor endif # -# -F90 = f95 F90FLAGS = $(OPT) F77 = $(F90) -#F77FLAGS = $(OPT) -132 -fixed -F77FLAGS = $(OPT) -fixed +F77FLAGS = $(OPT) -dusty FX90 = $(F90) -#FX90FLAGS = $(OPT) -132 -fixed FX90FLAGS = $(OPT) -fixed # -LDFLAGS = -Wl,-Xlinker,-noinhibit-exec -Wl,-Xlinker,-warn-once +#LDFLAGS = -Wl,-Xlinker,-noinhibit-exec -Wl,-Xlinker,-warn-once # # preprocessing flags # CPP = cpp -P -traditional -Wcomment # CPPFLAGS_SURFEX = -CPPFLAGS_SURCOUCHE = -DMNH_MPI_DOUBLE_PRECISION -DMNH_LINUX -DMNH_MPI_BSEND -DNAGf95 +CPPFLAGS_SURCOUCHE += -DMNH_LINUX -DDEV_NULL -DMNH_MPI_RANK_KIND=$(MNH_MPI_RANK_KIND) CPPFLAGS_RAD = -CPPFLAGS_NEWLFI = -DSWAPIO -DLINUX +CPPFLAGS_NEWLFI = -DSWAPIO -DLINUX -DLFI_INT=${LFI_INT} -DLFI_RECL=${LFI_RECL} CPPFLAGS_MNH = -DMNH -DSFX_MNH # # Gribex flags # TARGET_GRIBEX=linux -CNAME_GRIBEX=f95 +CNAME_GRIBEX=_nagfor +GRIB_FLAGS = -dusty -kind=byte # -# LIBTOOLS flags +# Netcdf/HDF5 flags +# +HDF_CONF= CFLAGS=-std=c99 +NETCDF_SUPPFLAGS = -dusty -kind=byte +# +## LIBTOOLS flags # #if MNH_TOOLS exists => compile the tools MNH_TOOLS = yes @@ -62,7 +99,6 @@ MNH_TOOLS = yes # Source of MESONH PACKAGE Distribution # # # ########################################################## -#DIR_SURFEX += ARCH_SRC/surfex # include Makefile.MESONH.mk # @@ -74,31 +110,16 @@ include Makefile.MESONH.mk # etc ... # # # ########################################################## -# -# Where to find precompiled system module for "NAGf95" -# like "f90_unix.mod" , etc ... -#MODULE_SYSTEM = /opt/F95_42/lib/bytes -MODULE_SYSTEM = /usr/local/lib/NAGWare/bytes -all : $(MODULE_SYSTEM) -$(MODULE_SYSTEM) : - @test -d $@ || \ - ( echo ATTENTION :: Rules.LXNAGF95 ; \ - echo MODULE_SYSTEM=$@ n existe pas ; exit 1 ) -VPATH += $(MODULE_SYSTEM) -INC += -I$(MODULE_SYSTEM) -# -# non conformance des argument/routine dans les appels MPI -# -OBJS1 = spll_mode_exchange2_ll.o spll_mode_exchange_ll.o spll_mode_fm.o \ -spll_mode_fmread.o spll_mode_fmwrit.o spll_mode_gather_ll.o \ -spll_mode_init_ll.o spll_mode_io_ll.o spll_mode_scatter_ll.o \ -spll_mode_sum2_ll.o spll_mode_sum_ll.o spll_mode_tools_ll.o \ -spll_zdiffusetup.o spll_lapack.o spll_fm_writ_ll.o \ -spll_NEWLFI_ALL.o spll_fm_read_ll.o \ -mode_tools_ll.mod mode_gather_ll.mod \ -mode_fmwrit.mod mode_scatter_ll.mod \ -mode_fmread.mod mode_sum_ll.mod \ -mode_exchange_ll.mod -# -$(OBJS1): OPT = $(OPT_BASE) $(OPT_PERF0) -dusty +ifneq "$(findstring 8,$(LFI_INT))" "" +OBJS_I8=spll_NEWLFI_ALL.o +$(OBJS_I8) : OPT = $(OPT_BASE) $(OPT_PERF2) $(OPT_I8) +endif + +ifeq "$(MNH_INT)" "8" +OBJS_I4=spll_modd_netcdf.o +$(OBJS_I4) : OPT = $(OPT_BASE_I4) +endif +# +LIST_MISMATCH=MPI_Allgatherv,MPI_Allreduce,MPI_Bcast,MPI_Bsend,MPI_Gather,MPI_Gatherv,MPI_Recv,LEPOLY +