diff --git a/src/Rules.LXarm.mk b/src/Rules.LXarm.mk new file mode 100644 index 0000000000000000000000000000000000000000..7622b6807a92a23c80581b34ac798fbae9d1b04a --- /dev/null +++ b/src/Rules.LXarm.mk @@ -0,0 +1,154 @@ +#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. +########################################################## +# # +# Compiler Options # +# # +########################################################## +# +# Gfortran version +#GFV=$(shell gfortran --version | grep -E -m1 -o ' [[:digit:]\.]{2,}( |$$)' | sed 's/\.//g' ) +GFV=123 +# +#OBJDIR_PATH=/home/escj/azertyuiopqsdfghjklm/wxcvbn/azertyuiopqsdfghjklmwxcvbn +# +OPT_BASE = -g -fno-backslash +#OPT_BASE = -g -fPIC -fno-backslash +# +OPT_PERF0 = -O0 +OPT_PERF2 = -O2 -mcpu=thunderx2t99 +OPT_PERF3 = -O3 -mcpu=thunderx2t99 -ffp-contract=fast +OPT_CHECK = +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) +OPT_NOCB = $(OPT_BASE) $(OPT_PERF2) +# +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 +# +ifeq "$(OPTLEVEL)" "O3" +OPT = $(OPT_BASE) $(OPT_PERF3) +OPT0 = $(OPT_BASE) $(OPT_PERF0) +OPT_NOCB = $(OPT_BASE) $(OPT_PERF3) +endif +# +# +CC = armclang +FC = armflang +ifeq "$(VER_MPI)" "MPIAUTO" +F90 = mpif90 +CPPFLAGS_SURCOUCHE += -DMNH_USE_MPI_STATUSES_IGNORE +else +F90 = armflang +endif +# +F90FLAGS = $(OPT) +F77 = $(F90) +F77FLAGS = $(OPT) +FX90 = $(F90) +FX90FLAGS = $(OPT) +# +#LDFLAGS = -Wl,-warn-once +# +# preprocessing flags +# +CPP = cpp -P -traditional -Wcomment +# +CPPFLAGS_SURFEX = +CPPFLAGS_SURCOUCHE += -DMNH_LINUX -DDEV_NULL -DMNH_MPI_RANK_KIND=$(MNH_MPI_RANK_KIND) +CPPFLAGS_RAD = +CPPFLAGS_NEWLFI = -DSWAPIO -DLINUX -DLFI_INT=${LFI_INT} -DLFI_RECL=${LFI_RECL} +CPPFLAGS_MNH = -DMNH -DSFX_MNH +ifdef VER_GA +CPPFLAGS_SURCOUCHE += -DMNH_GA +INC += -I${GA_ROOT}/include +LIBS += -L${GA_ROOT}/lib -larmci -lga +endif +# +# Gribex flags +# +TARGET_GRIBEX=linux +CNAME_GRIBEX=_gfortran +# +# Netcdf/HDF5 flags +# +HDF_CONF= CFLAGS=-std=c99 +# +## LIBTOOLS flags +# +#if MNH_TOOLS exists => compile the tools if gfortran >= 5.X +ifeq "$(MNH_INT)" "4" +ifeq ($(shell test $(GFV) -ge 500 ; echo $$?),0) +MNH_TOOLS=yes +endif +endif +# +# +# +########################################################## +# # +# Source of MESONH PACKAGE Distribution # +# # +########################################################## +# +include Makefile.MESONH.mk +# +########################################################## +# # +# extra VPATH, Compilation flag modification # +# systeme module , etc ... # +# external precompiled module librairie # +# etc ... # +# # +########################################################## + +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 + +ifeq ($(shell test $(GFV) -le 482 ; echo $$?),0) +ifneq "$(OPTLEVEL)" "DEBUG" +OBJS_O0= spll_lima_phillips_integ.o +$(OBJS_O0) : OPT = $(OPT_BASE) $(OPT_PERF0) +endif +endif + diff --git a/src/Rules.LXgfortran.mk b/src/Rules.LXgfortran.mk index 2ada33c135deedc776974a60b4bdc4a30aa7f30d..26ff8eee58007d53025fb64547e1bada45341e7c 100644 --- a/src/Rules.LXgfortran.mk +++ b/src/Rules.LXgfortran.mk @@ -13,7 +13,7 @@ GFV=$(shell gfortran --version | grep -E -m1 -o ' [[:digit:]\.]{2,}( |$$)' | s # #OBJDIR_PATH=/home/escj/azertyuiopqsdfghjklm/wxcvbn/azertyuiopqsdfghjklmwxcvbn # -OPT_BASE = -g -fno-second-underscore -fpic -ffpe-trap=overflow,zero,invalid -fbacktrace +OPT_BASE = -g -fno-second-underscore -fPIC -ffpe-trap=overflow,zero,invalid -fbacktrace # OPT_PERF0 = -O0 OPT_PERF2 = -O2