diff --git a/src/Rules.LXgfortran.mk b/src/Rules.LXgfortran.mk
index b4a1cf0791b8b7df1c9e09682fc4d0e22b74c8a2..57725d3b1842ec10f26b6869229b61bb3821d03e 100644
--- a/src/Rules.LXgfortran.mk
+++ b/src/Rules.LXgfortran.mk
@@ -8,8 +8,6 @@
 #                                                        #
 ##########################################################
 #
-#   Gfortran version
-GFV=$(shell  gfortran --version | grep -E -m1 -o ' [[:digit:]\.]{2,}( |$$)'  | sed 's/\.//g' )
 #
 #OBJDIR_PATH=/home/escj/azertyuiopqsdfghjklm/wxcvbn/azertyuiopqsdfghjklmwxcvbn
 #
@@ -20,7 +18,7 @@ OPT_PERF2 = -O2
 OPT_CHECK = -fbounds-check -finit-real=nan
 OPT_I8    = -fdefault-integer-8 
 OPT_R8    = -fdefault-real-8 -fdefault-double-8
-OPT_OPENACC = -fopenacc -foffload=-march=gfx90a
+OPT_OPENACC = -fopenacc
 #
 ifeq "$(VER_USER)" "ZSOLVER"
 CPPFLAGS  += -DCARTESIANGEOMETRY -DPIECEWISELINEAR
@@ -66,8 +64,8 @@ CFLAGS    += -g -O0
 endif
 #
 ifeq "$(OPTLEVEL)" "OPENACC"
-CPPFLAGS    += -DMNH_OPENACC -fopenacc
-#OPT_BASE += -foffload=-lm
+CPPFLAGS    += -DMNH_OPENACC 
+OPT_BASE +=  -foffload=-march=gfx90a -foffload=-g -foffload=-lm -fno-fast-math -fno-associative-math
 OPT       = $(OPT_BASE) $(OPT_OPENACC) $(OPT_PERF2)
 OPT0      = $(OPT_BASE) $(OPT_OPENACC) $(OPT_PERF0)
 OPT_NOCB  = $(OPT_BASE) $(OPT_OPENACC) $(OPT_PERF2)
@@ -76,9 +74,13 @@ CXXFLAGS = $(OPT_OPENACC)
 #$(OBJS_REPROD) : OPT = $(OPT_BASE) $(OPT_OPENACC) $(OPT_PERF2) -Mvect=nosimd -Minfo=all -g
 endif
 #
-CC = gcc
-CXX = g++
-FC = gfortran 
+CC ?= gcc
+CXX ?= g++
+FC ?= gfortran 
+
+#   Gfortran version
+GFV=$(shell  $(F90) --version | grep -E -m1 -o ' [[:digit:]\.]{2,}( |$$)'  | sed 's/\.//g' )
+
 ifeq "$(VER_MPI)" "MPIAUTO"
 F90 = mpif90
 CPPFLAGS_SURCOUCHE += -DMNH_USE_MPI_STATUSES_IGNORE
@@ -87,7 +89,7 @@ ifeq "$(VER_MPI)" "MPICRAY"
 F90 = ftn
 CPPFLAGS_SURCOUCHE += -DMNH_USE_MPI_STATUSES_IGNORE
 else         
-F90 = gfortran
+F90 ?= gfortran
 endif
 endif
 #
@@ -98,7 +100,7 @@ FX90 = $(F90)
 FX90FLAGS     =  $(OPT) 
 #
 #LDFLAGS   =   -Wl,-warn-once
-LDFLAGS = $(OPT)
+LDFLAGS += $(OPT)
 #
 # preprocessing flags 
 #
@@ -107,12 +109,12 @@ CPP = mnh_expand
 #
 CPPFLAGS_C         += -DLITTLE_endian
 CPPFLAGS_SURFEX    =
-CPPFLAGS_SURCOUCHE += -DDEV_NULL
+CPPFLAGS_SURCOUCHE += -DDEV_NULL -DMPIVIDE
 CPPFLAGS_RAD       =
 CPPFLAGS_NEWLFI    = -DSWAPIO -DLINUX -DLFI_INT=${LFI_INT}
 CPPFLAGS_MNH       = -DMNH=MNH -DSFX_MNH
 CPPFLAGS_MNH       += -imacros MNH_OPENACC_NV_CR.CPP
-CPPFLAGS_MNH       += -DMNH_EXPAND
+CPPFLAGS_MNH       += -DMNH_EXPAND -DMNH_EXPAND_LOOP
 ifdef VER_GA
 CPPFLAGS_SURCOUCHE += -DMNH_GA
 INC                += -I${GA_ROOT}/include