From 170e2db1f50dc986650d5afc5cff6b9789df34e7 Mon Sep 17 00:00:00 2001
From: Juan ESCOBAR <juan.escobar@aero.obs-mip.fr>
Date: Fri, 26 Aug 2022 15:02:19 +0000
Subject: [PATCH] Juan 26/08/2022:Rules.LXcray.mk, set CPP to use
 mnh_expand+LOOP+OPENACC , use OBJS_LST for source needing openacc report

---
 src/Rules.LXcray.mk | 44 +++++++++++++++++++++++++++++++++++++++-----
 1 file changed, 39 insertions(+), 5 deletions(-)

diff --git a/src/Rules.LXcray.mk b/src/Rules.LXcray.mk
index 4f3ec47b9..cd2b52045 100644
--- a/src/Rules.LXcray.mk
+++ b/src/Rules.LXcray.mk
@@ -11,8 +11,8 @@
 #
 OPT_BASE   =  -hpic -emf -h acc_model=auto_async_none:no_fast_addr:no_deep_copy
 OPT_PERF0  =  -O0 -g
-OPT_PERF1  =  -O1 -hflex_mp=intolerant -Ofp0 -hnoomp -K trap=fp
-OPT_PERF2  =  -O2 -hflex_mp=intolerant -Ofp0 -hnoomp
+OPT_PERF1  =  -O1 -hflex_mp=intolerant -Ofp0 -hnofma -hnoomp -K trap=fp
+OPT_PERF2  =  -O2 -hflex_mp=intolerant -Ofp0 -hnofma -hnoomp
 #
 OPT_NOOPENACC     = -hnoacc
 OPT_OPENACC       = -hacc
@@ -72,7 +72,7 @@ MNH_BITREP_OMP=YES
 CPPFLAGS    += -DMNH_OPENACC -D_FAKEOPENACC
 OPT       = $(OPT_BASE) $(OPT_PERF2) $(OPT_NOOPENACC)  
 OPT0      = $(OPT_BASE) $(OPT_PERF0) $(OPT_NOOPENACC) 
-OPT_NOCB  = $(OPT_BASE) $(OPT_PERF2) $(OPT_NOOPENACC) 
+OPT_NOCB  = $(OPT_BASE) $(OPT_PERF2) $(OPT_NOOPENACC)
 #CXXFLAGS = -Kieee -Mnofma $(OPT_NOOPENACC)
 #OBJS_REPROD= spll_mode_sum_ll.o
 #$(OBJS_REPROD) : OPT = $(OPT_BASE) $(OPT_PERF2) $(OPT_NOOPENACC) -Mvect=nosimd -Minfo=all -g
@@ -129,8 +129,8 @@ LDFLAGS    =   -Wl,-warn-once $(PAR) $(OPT_BASE)
 #
 # preprocessing flags 
 #
-#CPP = /bin/cpp -P -traditional -Wcomment
-CPP = cpp -P -Wcomment -traditional -D_OPENACC=201306
+#CPP = cpp -P -Wcomment -traditional -D_OPENACC=201306
+CPP = mnh_expand -D_OPENACC=201306
 #
 CPPFLAGS_C         = -DLITTLE_endian
 CPPFLAGS_SURFEX    = 
@@ -138,6 +138,7 @@ CPPFLAGS_SURCOUCHE +=  -DDEV_NULL -DMNH_COMPILER_CCE
 CPPFLAGS_RAD       = 
 CPPFLAGS_NEWLFI    = -DSWAPIO -DLINUX -DLFI_INT=${LFI_INT}
 CPPFLAGS_MNH       = -DMNH -DSFX_MNH -DMNH_NO_MPI_LOGICAL48 -DMNH_COMPILER_CCE
+CPPFLAGS_MNH       += -DMNH_EXPAND -DMNH_EXPAND_LOOP -DMNH_EXPAND_OPENACC
 CPPFLAGS_MNH       += -imacros MNH_OPENACC_NV_CR.CPP
 ifdef VER_GA
 CPPFLAGS_SURCOUCHE += -DMNH_GA
@@ -164,6 +165,15 @@ OBJS_LISTE_MASTER += br_transcendentals.o
 LIBS += -lstdc++
 %.o : %.cpp
 	$(CXX) $(INC) $(CXXFLAGS) $(CPPFLAGS) -c $< -o $(OBJDIR)/$(*F).o
+#
+# Add gu.c , for Zero Floating Point Graduate UnderFlow on CPU & GPU
+#
+DIR_MASTER += ARCH_SRC/cray_gu
+VPATH += ARCH_SRC/cray_gu
+OBJS_LISTE_MASTER += gu.o
+gu.o : CC=gcc
+gu.o : INC=
+gu.o : CPPFLAGS_C=
 endif
 #
 # LIBTOOLS flags
@@ -234,3 +244,27 @@ OBJS_I4=spll_modd_netcdf.o
 $(OBJS_I4) : OPT = $(OPT_BASE_I4)
 endif
 
+OBJS_LST = spll_condensation.o spll_turb_ver_thermo_flux.o spll_rotate_wind.o spll_mode_mnh_zwork.o spll_contrav_device.o \
+           spll_advection_metsv.o \
+           spll_mym_device.o spll_myf_device.o spll_dyf_device.o \
+           spll_gx_m_u_device.o spll_gy_m_v_device.o \
+           spll_gravity.o spll_gravity_impl.o \
+           spll_advection_uvw.o spll_resolved_cloud.o spll_mode_tools.o spll_mode_rain_ice_sedimentation_split.o spll_ice_adjust.o \
+           spll_countjv1d_device.o spll_countjv2d_device.o spll_countjv3d_device.o \
+           spll_mode_turb.o spll_phys_param_n.o spll_model_n.o spll_tridiag_tke.o \
+           spll_turb_ver_thermo_corr.o spll_tke_eps_sources.o spll_turb_ver_dyn_flux.o \
+           spll_turb_hor_uv.o spll_turb_hor_uw.o spll_turb_hor_vw.o \
+           spll_turb_hor_dyn_corr.o spll_turb_hor_thermo_flux.o \
+           spll_pressurez.o spll_p_abs.o spll_zsolver.o spll_zsolver_inv.o spll_dotprod.o \
+           spll_communication.o spll_discretisation.o spll_multigrid.o spll_datatypes.o \
+           spll_get_halo_start_d.o spll_get_halo_stop_d.o spll_mass_leak.o \
+           spll_ppm_01_x.o spll_ppm_01_y.o spll_ppm_01_z.o \
+           spll_ppm_s0_x.o spll_ppm_s0_y.o spll_ppm_s0_z.o \
+           spll_mode_rain_ice_slow.o spll_mode_rain_ice_fast_rs.o \
+           spll_prandtl.o spll_mode_rain_ice_fast_rg.o spll_mode_rain_ice_fast_ri.o \
+           spll_mode_rain_ice.o spll_mode_rain_warm.o \
+           spll_rotate_wind.o spll_ground_param_n.o spll_advec_ppm_algo.o \
+           spll_turb_hor_sv_corr.o
+           
+$(OBJS_LST) : OPT += -rdimo
+
-- 
GitLab