diff --git a/src/makefile_jet.gfortran b/src/makefile_jet.gfortran
index de508c16187f5bc28ae4e57abf331247ef51922a..504290ca132d00f4ce75eb25162199533c53baf4 100644
--- a/src/makefile_jet.gfortran
+++ b/src/makefile_jet.gfortran
@@ -49,36 +49,27 @@ FLEXPART-MPI-DBG = DBG_FLEXPART_MPI
 # Serial processing executable
 FLEXPART-SERIAL = FLEXPART
 
+ROOT_DIR = . #MD
 
-ifeq ($(gcc), 4.9)
-# Compiled libraries under user ~flexpart, gfortran v4.9
-	ROOT_DIR = /homevip/flexpart/
-
-	F90	  = ${ROOT_DIR}/gcc-4.9.1/bin/gfortran
-	MPIF90    = ${ROOT_DIR}/bin/mpifort
-
-	INCPATH1  = ${ROOT_DIR}/gcc-4.9.1/include	
-	INCPATH2  = ${ROOT_DIR}/include
-	LIBPATH1 = ${ROOT_DIR}/lib
-else 
-# Compiled libraries under user ~flexpart, gfortran v5.4
-	#ROOT_DIR = /homevip/flexpart/
-	ROOT_DIR = . #MD
-
-	F90	  = /usr/bin/gfortran
-	#MPIF90    = /usr/bin/mpifort
-  MPIF90    = /usr/lib64/openmpi/bin/mpifort
-
-	#INCPATH1  = ${ROOT_DIR}/gcc-5.4.0/include	
-	#INCPATH2  = /usr/include
-	#LIBPATH1 = ${ROOT_DIR}/gcc-5.4.0/lib
-
-	#MD for jet
-  INCPATH1  = /jetfs/spack/opt/spack/linux-rhel8-skylake_avx512/gcc-8.3.1/eccodes-2.18.0-s7clum3voiwexqv6favl72gqkpvjxgx3/include
-  INCPATH2  = /jetfs/spack/opt/spack/linux-rhel8-skylake_avx512/gcc-8.3.1/netcdf-fortran-4.5.3-kfd2vkj7m6cremij4nunxwqfcrqjovcf/include
-  LIBPATH1  = /jetfs/spack/opt/spack/linux-rhel8-skylake_avx512/gcc-8.3.1/eccodes-2.18.0-s7clum3voiwexqv6favl72gqkpvjxgx3/lib
-  LIBPATH2  = /jetfs/spack/opt/spack/linux-rhel8-skylake_avx512/gcc-8.3.1/netcdf-fortran-4.5.3-kfd2vkj7m6cremij4nunxwqfcrqjovcf/lib
+#
+# JET (INCLUDE/CPATH and LIBRARY_PATH)
+# VSC (CPATH and LIBRARY_PATH)
+# 
+ifndef CPATH
+$(error CPATH is not set)
 endif
+ifndef LIBRARY_PATH
+$(error LIBRARY_PATH is not set)
+endif
+# use the environmental variable $INCLUDE
+# split the paths separated by :
+INC = $(subst :, ,$(CPATH))
+# add a -I/path/to/include
+INC := $(INC:%=-I%)
+# use the environmental variable $LIBRARY_PATH
+LIBPATH := $(subst :, ,$(LIBRARY_PATH))
+LIBRPATH := $(LIBPATH:%=-Wl,-rpath=%)
+LIBPATH := $(LIBPATH:%=-L%)
 
 ### Enable netCDF output?
 ifeq ($(ncf), yes)
@@ -96,18 +87,30 @@ VPATH = gributils/
 ## OPTIMIZATION LEVEL
 O_LEV = 0 # [0,1,2,3,g,s,fast]
 O_LEV_DBG = g # [0,g]
+# Different CPU microarchitectures
+# check https://gcc.gnu.org/onlinedocs/gcc/x86-Options.html
+# using generic (AVX2)
+# using skylake (AVX512)
+# using native is the default, which will use whatever it can 
+# (defined by the machine where you are compiling it)
+#
+ifeq ($(arch), generic)
+	FUSER = -g -march=core-avx2
+else ifeq ($(arch), skylake)
+	FUSER = -g -march=skylake-avx512
+else
+	FUSER = -g -march=native -mtune=native
+endif
 
 ## LIBRARIES
 #LIBS = -lgrib_api_f90 -lgrib_api -lm -ljasper -lnetcdff
 #LIBS = -lgrib_api_f90 -lgrib_api -lm -ljasper $(NCOPT)
 LIBS = -leccodes -leccodes_f90 -lm -ljasper $(NCOPT) #MD
+FFLAGS   = $(INC) -O$(O_LEV) -m64 -cpp -mcmodel=large -fconvert=little-endian -frecord-marker=4 -fmessage-length=0 -flto=jobserver  $(NCOPT) $(ETAOPT) $(FUSER)  #-convert little_endian -fpp -WB -check all
+DBGFLAGS = $(INC) -O$(O_LEV_DBG) -g3 -ggdb3 -cpp -m64 -mcmodel=large -fconvert=little-endian -frecord-marker=4 -fmessage-length=0 -flto=jobserver -O$(O_LEV_DBG) $(NCOPT) -fbacktrace   -Wall  -fdump-core $(FUSER)  #  -ffpe-trap=invalid,overflow,denormal,underflow,zero  -Warray-bounds -fcheck=all
 
-FFLAGS   = -I$(INCPATH1) -I$(INCPATH2) -O$(O_LEV) -g -cpp -m64 -mcmodel=large -fconvert=little-endian -frecord-marker=4 -fmessage-length=0 -flto=jobserver -O$(O_LEV) $(NCOPT) $(FUSER)  #-Warray-bounds -fcheck=all # -march=native
-
-DBGFLAGS = -I$(INCPATH1) -I$(INCPATH2) -O$(O_LEV_DBG) -g3 -ggdb3 -cpp -m64 -mcmodel=large -fconvert=little-endian -frecord-marker=4 -fmessage-length=0 -flto=jobserver -O$(O_LEV_DBG) $(NCOPT) -fbacktrace   -Wall  -fdump-core $(FUSER)  #  -ffpe-trap=invalid,overflow,denormal,underflow,zero  -Warray-bounds -fcheck=all
-
-LDFLAGS  = $(FFLAGS) -L$(LIBPATH1) -Wl,-rpath,$(LIBPATH1) $(LIBS) -L$(LIBPATH2) -Wl,-rpath,$(LIBPATH2) #MD add LIBPATH2 as rpath (for dynamic libraries)
-LDDEBUG  = $(DBGFLAGS) -L$(LIBPATH1) $(LIBS) -L$(LIBPATH2)
+LDFLAGS  = $(FFLAGS) $(LIBPATH) $(LIBRPATH) $(LIBS) 
+LDDEBUG  = $(DBGFLAGS) $(LIBPATH) $(LIBRPATH) $(LIBS)
 
 MODOBJS = \
 par_mod.o    		com_mod.o \