Index: XIOS/dev/dev_ym/XIOS_COUPLING/xios_test_suite/ARCH/arch-X64_IRENE.fcm
===================================================================
--- XIOS/dev/dev_ym/XIOS_COUPLING/xios_test_suite/ARCH/arch-X64_IRENE.fcm	(revision 2280)
+++ XIOS/dev/dev_ym/XIOS_COUPLING/xios_test_suite/ARCH/arch-X64_IRENE.fcm	(revision 2281)
@@ -8,5 +8,5 @@
 
 %BASE_CFLAGS    -std=c++11 -diag-disable 1125 -diag-disable 279 -D__XIOS_EXCEPTION
-%PROD_CFLAGS    -O3 -D BOOST_DISABLE_ASSERTS
+%PROD_CFLAGS    -O3 -g -D BOOST_DISABLE_ASSERTS
 #%DEV_CFLAGS     -g -traceback
 %DEV_CFLAGS     -g 
@@ -14,5 +14,5 @@
 
 %BASE_FFLAGS    -D__NONE__ 
-%PROD_FFLAGS    -O3
+%PROD_FFLAGS    -O3 -g
 #%DEV_FFLAGS     -g -traceback
 %DEV_FFLAGS     -g 
Index: XIOS/dev/dev_ym/XIOS_COUPLING/xios_test_suite/TEST_SUITE/my_run.sh
===================================================================
--- XIOS/dev/dev_ym/XIOS_COUPLING/xios_test_suite/TEST_SUITE/my_run.sh	(revision 2280)
+++ XIOS/dev/dev_ym/XIOS_COUPLING/xios_test_suite/TEST_SUITE/my_run.sh	(revision 2281)
@@ -8,11 +8,26 @@
 
 fn=report_${svnR}_${arch}_${mode}.txt
-echo "#revision" ${svnR} > ${fn}
-echo "#url" ${svnurl} >> ${fn}
-echo "#machine" ${xios_machine_name} >> ${fn}
-echo "#build_dir" $(pwd)/build_${arch}_${mode} >> ${fn}
-echo "#arch" $arch >> ${fn}
-echo "#mode" $mode >> ${fn}
 
+if [ -z ${enable_mem_track+x} ]; then
+  #Â initialize the report for the main part of the test (without memory tracking, see step2.py for details)
+  echo "#revision" ${svnR} > ${fn}
+  echo "#url" ${svnurl} >> ${fn}
+  echo "#machine" ${xios_machine_name} >> ${fn}
+  echo "#build_dir" $(pwd)/build_${arch}_${mode} >> ${fn}
+  echo "#arch" $arch >> ${fn}
+  echo "#mode" $mode >> ${fn}
+else
+  if  [ ! -f "$fn" ]; then 
+    # initialize the report if it does not exist
+    echo "#revision" ${svnR} > ${fn}
+    echo "#url" ${svnurl} >> ${fn}
+    echo "#machine" ${xios_machine_name} >> ${fn}
+    echo "#build_dir" $(pwd)/build_${arch}_${mode} >> ${fn}
+    echo "#arch" $arch >> ${fn}
+    echo "#mode" $mode >> ${fn}
+    echo "#memtrack full" >> ${fn}
+  fi
+  # else write in the same report
+fi
 
 ${PYTHON} step1.py
Index: XIOS/dev/dev_ym/XIOS_COUPLING/xios_test_suite/TEST_SUITE/run_test
===================================================================
--- XIOS/dev/dev_ym/XIOS_COUPLING/xios_test_suite/TEST_SUITE/run_test	(revision 2280)
+++ XIOS/dev/dev_ym/XIOS_COUPLING/xios_test_suite/TEST_SUITE/run_test	(revision 2281)
@@ -3,4 +3,7 @@
 export build_dir=xios_test_suite/RUN_TEST_SUITE/build_${arch}_${mode}
 export svnR=$(svn info --show-item revision ../../)
+if [[ -v enable_mem_track ]]; then
+  echo "enable_mem_track is set to '$enable_mem_track'"
+fi
 
 echo "Start Building XIOS ... "
@@ -54,5 +57,5 @@
   echo "#MSUB -m work,scratch" >> compile.sh
   echo "cd ../.. ">> compile.sh
-  echo "./make_xios --arch_path `pwd`/../ARCH --arch ${arch} --${mode} --use_tv --build_dir ${build_dir} --job 16" >> compile.sh
+  echo "./make_xios --arch_path `pwd`/../ARCH --arch ${arch} --${mode} --use_tv ${enable_mem_track} --build_dir ${build_dir} --job 16" >> compile.sh
   cmd=$(ccc_msub compile.sh)
   jobid="${cmd//[!0-9]/}"
Index: XIOS/dev/dev_ym/XIOS_COUPLING/xios_test_suite/TEST_SUITE/run_test_irene
===================================================================
--- XIOS/dev/dev_ym/XIOS_COUPLING/xios_test_suite/TEST_SUITE/run_test_irene	(revision 2280)
+++ XIOS/dev/dev_ym/XIOS_COUPLING/xios_test_suite/TEST_SUITE/run_test_irene	(revision 2281)
@@ -13,4 +13,12 @@
 
 
+# Must be run after main (X64_IRENE, prod) test to append in the same report
+export arch=X64_IRENE
+export mode=prod
+export enable_mem_track="--memtrack full"
+
+bash ./run_test
+
+
 #export arch=X64_IRENE
 #export mode=debug
Index: XIOS/dev/dev_ym/XIOS_COUPLING/xios_test_suite/TEST_SUITE/step1.py
===================================================================
--- XIOS/dev/dev_ym/XIOS_COUPLING/xios_test_suite/TEST_SUITE/step1.py	(revision 2280)
+++ XIOS/dev/dev_ym/XIOS_COUPLING/xios_test_suite/TEST_SUITE/step1.py	(revision 2281)
@@ -12,4 +12,5 @@
 mode=os.getenv("mode")
 arch=os.getenv("arch")
+enable_mem_track=os.getenv("enable_mem_track")
 machine=os.getenv("xios_machine_name")
 svnR=os.getenv("svnR")
@@ -176,4 +177,16 @@
 
     for test_folder in test_folder_list:
+        # check if test concerns xios features (NetCDF), or memory consumption (mem files)
+        files_list=""
+        flist = open(test_folder+"/checkfile.def", 'r')
+        files_list = flist.read()
+        flist.close()
+        if ( enable_mem_track==None ) and ( not('.mem' in files_list) ) :
+            print( "test_folder = ", test_folder, " : launch std run")
+        elif ( enable_mem_track=='--memtrack full' ) and ( '.mem' in files_list ) :
+            print( "test_folder = ", test_folder, " : launch mem run")            
+        else :
+            continue
+
         config_list=[]
         config_name=[]
Index: XIOS/dev/dev_ym/XIOS_COUPLING/xios_test_suite/TEST_SUITE/step2.py
===================================================================
--- XIOS/dev/dev_ym/XIOS_COUPLING/xios_test_suite/TEST_SUITE/step2.py	(revision 2280)
+++ XIOS/dev/dev_ym/XIOS_COUPLING/xios_test_suite/TEST_SUITE/step2.py	(revision 2281)
@@ -13,4 +13,5 @@
 mode=os.getenv("mode")
 arch=os.getenv("arch")
+enable_mem_track=os.getenv("enable_mem_track")
 svnr=os.getenv("svnR")
 ref_location=os.getenv("ref_location")
@@ -73,4 +74,19 @@
 
     for test_folder in test_folder_list:
+        report_filename=""
+        # check if test concerns xios features (NetCDF), or memory consumption (mem files)
+        files_list=""
+        flist = open(test_folder+"/checkfile.def", 'r')
+        files_list = flist.read()
+        flist.close()
+        if ( enable_mem_track==None ) and ( not('.mem' in files_list) ) :
+            report_filename = "report_"+svnr+"_"+arch+"_"+mode+".txt"
+        elif ( enable_mem_track=='--memtrack full' ) and ( '.mem' in files_list ) :
+            #report_filename = "report_"+svnr+"_"+arch+"_"+mode+"_memtrack.txt"
+            # -> use same report that for feature test
+            report_filename = "report_"+svnr+"_"+arch+"_"+mode+".txt"
+        else :
+            continue
+
         config_list = glob.glob(test_folder+"/CONFIG_*")
         
@@ -79,5 +95,5 @@
             checkfiles = list(nonblank_lines(fh))
 
-        with open("report_"+svnr+"_"+arch+"_"+mode+".txt", "a") as report:
+        with open(report_filename, "a") as report:
             for config in config_list:
                 folder_name = list(config.split("/"))[0]
@@ -85,31 +101,41 @@
                 for checkfile in checkfiles:
                     if os.path.exists(config+"/"+checkfile) and os.path.exists("reference/ref_"+config+"/"+checkfile):
-                        #OSinfo("cdo -W diffn "+config+"/"+checkfile+" "+"reference/ref_"+config+"/"+checkfile+"  2>&1 |grep -v 'Found more than one time variable'|grep -v 'cdo diffn: Processed'|grep -v 'cdo    diffn: Processed'|grep -v 'Time variable >time_counter< not found!' > diff_"+checkfile+".txt")
-                        #if os.stat("diff_"+checkfile+".txt").st_size==0: # if no diff -> set 0
-                        #    report.write(folder_name+" "+folder_name+"@"+config_name+" "+folder_name+"@"+config_name+"@"+checkfile+" "+str(1)+"\n")
-                        #else: # if cdo diffn returns diff -> set -1
-                        #    report.write(folder_name+" "+folder_name+"@"+config_name+" "+folder_name+"@"+config_name+"@"+checkfile+" "+str(-1)+"\n")
-                        ref = Dataset( "reference/ref_"+config+"/"+checkfile )
-                        res = Dataset( config+"/"+checkfile )
-                        validated = 1
-                        np.seterr(divide='ignore', invalid='ignore')
-                        for var in res.variables:
-                            if (not (var.startswith('lon_'))) and (not (var.startswith('lat_'))) and (not (var.startswith('time_'))) and (not (var.startswith('atm__'))):
-                                ref_interp = ref.variables[var]
-                                ref_array = ref_interp[:]
-                                res_interp = res.variables[var]
-                                res_array = res_interp[:]
-                                if (res_array.shape == ref_array.shape):
-                                    diff = np.zeros_like( ref_array )
-                                    np.divide(ref_array-res_array,ref_array,diff,where=(ref_array[:]>10**-15))
-                                    if ( np.max(np.abs(diff)) >  1*10**-9 ):
+                        if ( enable_mem_track==None ) and ( not('.mem' in files_list) ): # NetCDF
+                            #OSinfo("cdo -W diffn "+config+"/"+checkfile+" "+"reference/ref_"+config+"/"+checkfile+"  2>&1 |grep -v 'Found more than one time variable'|grep -v 'cdo diffn: Processed'|grep -v 'cdo    diffn: Processed'|grep -v 'Time variable >time_counter< not found!' > diff_"+checkfile+".txt")
+                            #if os.stat("diff_"+checkfile+".txt").st_size==0: # if no diff -> set 0
+                            #    report.write(folder_name+" "+folder_name+"@"+config_name+" "+folder_name+"@"+config_name+"@"+checkfile+" "+str(1)+"\n")
+                            #else: # if cdo diffn returns diff -> set -1
+                            #    report.write(folder_name+" "+folder_name+"@"+config_name+" "+folder_name+"@"+config_name+"@"+checkfile+" "+str(-1)+"\n")
+                            ref = Dataset( "reference/ref_"+config+"/"+checkfile )
+                            res = Dataset( config+"/"+checkfile )
+                            validated = 1
+                            np.seterr(divide='ignore', invalid='ignore')
+                            for var in res.variables:
+                                if (not (var.startswith('lon_'))) and (not (var.startswith('lat_'))) and (not (var.startswith('time_'))) and (not (var.startswith('atm__'))):
+                                    ref_interp = ref.variables[var]
+                                    ref_array = ref_interp[:]
+                                    res_interp = res.variables[var]
+                                    res_array = res_interp[:]
+                                    if (res_array.shape == ref_array.shape):
+                                        diff = np.zeros_like( ref_array )
+                                        np.divide(ref_array-res_array,ref_array,diff,where=(ref_array[:]>10**-15))
+                                        if ( np.max(np.abs(diff)) >  1*10**-9 ):
+                                            validated = -1
+                                        diff = np.zeros_like( ref_array )
+                                        np.divide(ref_array-res_array,res_array,diff,where=(ref_array[:]>10**-15))
+                                        if ( np.max(np.abs(diff)) >  1*10**-9 ):
+                                            validated = -1
+                                    else:
                                         validated = -1
-                                    diff = np.zeros_like( ref_array )
-                                    np.divide(ref_array-res_array,res_array,diff,where=(ref_array[:]>10**-15))
-                                    if ( np.max(np.abs(diff)) >  1*10**-9 ):
-                                        validated = -1
-                                else:
-                                        validated = -1
-                        report.write(folder_name+" "+folder_name+"@"+config_name+" "+folder_name+"@"+config_name+"@"+checkfile+" "+str(validated)+"\n")
+                            report.write(folder_name+" "+folder_name+"@"+config_name+" "+folder_name+"@"+config_name+"@"+checkfile+" "+str(validated)+"\n")
+                        
+                        elif ( enable_mem_track=='--memtrack full' ) and ( '.mem' in files_list ) : # mem file
+                            validated = 1
+                            OSinfo("diff "+config+"/"+checkfile+" "+"reference/ref_"+config+"/"+checkfile+"  2>&1  > diff_"+checkfile+".txt")
+                            if os.stat("diff_"+checkfile+".txt").st_size==0: # if no diff -> set 0
+                                validated = 1
+                            else: # if diff returns diff -> set -1
+                                validated = -1
+                            report.write(folder_name+" "+folder_name+"@"+config_name+" "+folder_name+"@"+config_name+"@"+checkfile+" "+str(validated)+"\n")
 
                     elif os.path.exists(config+"/"+checkfile): # if no ref file -> set 0
Index: XIOS/dev/dev_ym/XIOS_COUPLING/xios_test_suite/TEST_SUITE/test_memory/checkfile.def
===================================================================
--- XIOS/dev/dev_ym/XIOS_COUPLING/xios_test_suite/TEST_SUITE/test_memory/checkfile.def	(revision 2281)
+++ XIOS/dev/dev_ym/XIOS_COUPLING/xios_test_suite/TEST_SUITE/test_memory/checkfile.def	(revision 2281)
@@ -0,0 +1,7 @@
+#all
+xios_client_0.mem
+xios_client_1.mem
+xios_client_2.mem
+xios_client_3.mem
+xios_server_4.mem
+xios_server_5.mem
Index: XIOS/dev/dev_ym/XIOS_COUPLING/xios_test_suite/TEST_SUITE/test_memory/context_atm.xml
===================================================================
--- XIOS/dev/dev_ym/XIOS_COUPLING/xios_test_suite/TEST_SUITE/test_memory/context_atm.xml	(revision 2281)
+++ XIOS/dev/dev_ym/XIOS_COUPLING/xios_test_suite/TEST_SUITE/test_memory/context_atm.xml	(revision 2281)
@@ -0,0 +1,506 @@
+<!-- -->
+<context id="atm">
+  
+  <calendar type="Gregorian" time_origin="1850-01-01 00:00:00" /> 
+  
+  <domain_definition>
+    <domain id="domain" />
+    <domain id="other_domain" />
+  </domain>
+  
+  <axis_definition>
+    <axis id="axis" />
+    <axis id="domain_X" />
+    <axis id="domain_Y" />
+    <axis id="ensemble" />
+    <axis id="axis_interpolate" n_glo="2" value="(0,1)[80000 40000]">
+      <interpolate_axis type="polynomial" order="1" coordinate="pressure"/> 
+    </axis>
+    <axis id="axis_temporal_splitting" n_glo="4">
+      <temporal_splitting /> 
+    </axis>
+    
+    <axis id="axis_duplicate_scalar" n_glo="5">
+      <duplicate_scalar /> 
+    </axis>
+
+
+
+
+    <axis id="other_axis" />
+    <axis id="other_domain_X" />
+    <axis id="other_domain_Y" />
+    <axis id="other_ensemble" />
+  </axis_definition>
+
+  <scalar_definition>
+    <scalar id="scalar" /> 
+    <scalar id="other_scalar" /> 
+  </scalar_definition>
+  
+  
+  
+  <grid_definition>
+    
+    <grid id="grid3D">
+      <domain domain_ref="domain" />
+      <axis axis_ref="axis" />
+    </grid>
+     
+    <grid id="grid3D_interpolate_axis">
+      <domain domain_ref="domain" />
+      <axis axis_ref="axis_interpolate" />
+    </grid>
+
+
+    <grid id="grid2D">
+      <domain domain_ref="domain" />
+    </grid>
+
+    <grid id="grid2D_extract_domain">
+      <axis n_glo="36" >
+      <extract_domain direction="iDir" position="5" />
+      </axis>
+    </grid>
+
+
+
+    <grid id="grid1D">
+      <axis axis_ref="axis" />
+    </grid>
+  
+    <grid id="grid1D_extract">
+      <axis id="axis_extract" axis_ref="axis">
+      <extract_axis n="5" begin="0" />
+      </axis>
+    </grid>   
+
+    <grid id="grid1D_zoom">
+      <axis id="axis_zoom" axis_ref="axis">
+      <zoom_axis n="5" begin="0" />
+      </axis>
+    </grid>   
+
+
+    <grid id="grid1D_inverse">
+      <axis id="axis_inverse" axis_ref="axis">
+      <inverse_axis />
+      </axis>
+    </grid>   
+
+    <grid id="grid1D_reduce_sum">
+      <axis id="axis_reduce_sum" axis_ref="axis">
+      <reduce_axis operation="sum"/>
+      </axis>
+    </grid>   
+
+    <grid id="grid1D_reduce_max">
+      <axis id="axis_reduce_max" axis_ref="axis">
+      <reduce_axis operation="max"/>
+      </axis>
+    </grid>   
+
+
+    <grid id="grid1D_reduce_min">
+      <axis id="axis_reduce_min" axis_ref="axis">
+      <reduce_axis operation="min"/>
+      </axis>
+    </grid>   
+  
+    <grid id="grid1D_reduce_ave">
+      <axis id="axis_reduce_ave" axis_ref="axis">
+      <reduce_axis operation="average"/>
+      </axis>
+    </grid>   
+
+    <grid id="grid_src">
+      <domain domain_ref="domain" />
+      <!--axis axis_ref="axis" /-->
+      <scalar scalar_ref="scalar"/>
+    </grid>
+  
+     <grid id="grid_dst">
+      <domain domain_ref="domain" />
+      <!--axis axis_ref="axis" /-->
+      <axis axis_ref="axis_temporal_splitting"/>
+    </grid>
+  
+   <grid id="grid0D">
+      <scalar scalar_ref="scalar" />
+    </grid>
+   
+    <grid id="grid1D_duplicate_scalar">
+      <axis axis_ref="axis_duplicate_scalar" />
+    </grid>
+ 
+
+
+
+    <grid id="grid_X">
+      <axis axis_ref="domain_X" />
+    </grid>
+
+    <grid id="grid_Y">
+      <axis axis_ref="domain_Y" />
+    </grid>
+
+    <grid id="grid_XY">
+      <axis axis_ref="domain_X" />
+      <axis axis_ref="domain_Y" />
+    </grid>
+    
+    <grid id="gridXY_zoomX">
+      <axis id="domain_X_zoom" axis_ref="domain_X">
+      <zoom_axis n="6" begin="1" />
+      </axis>
+      <axis axis_ref="domain_Y" />
+    </grid>
+   
+    <grid id="gridXY_zoomY">
+      <axis axis_ref="domain_X" />
+      <axis id="domain_Y_zoom" axis_ref="domain_Y">
+      <zoom_axis n="4" begin="2" />
+      </axis>
+    </grid>
+
+
+
+    <grid id="grid_XYZ">
+      <axis axis_ref="domain_X" />
+      <axis axis_ref="domain_Y" />
+      <axis axis_ref="axis" />
+    </grid>
+
+    <grid id="grid_XZ">
+      <axis axis_ref="domain_X" />
+      <axis axis_ref="axis" />
+    </grid>
+
+    <grid id="grid_YZ">
+      <axis axis_ref="domain_Y" />
+      <axis axis_ref="axis" />
+    </grid>
+
+
+    <grid id="grid3D_W">
+      <domain domain_ref="domain" />
+      <axis axis_ref="axis" />
+      <axis axis_ref="ensemble" />
+    </grid>
+    
+    <grid id="grid2D_W">
+      <domain domain_ref="domain" />
+      <axis axis_ref="ensemble" />
+    </grid>
+
+    <grid id="grid1D_W">
+      <axis axis_ref="axis" />
+      <axis axis_ref="ensemble" />
+    </grid>
+
+    <grid id="grid_XW">
+      <axis axis_ref="domain_X" />
+      <axis axis_ref="ensemble" />
+    </grid>
+
+    <grid id="grid_YW">
+      <axis axis_ref="domain_Y" />
+      <axis axis_ref="ensemble" />
+    </grid>
+
+    <grid id="grid_XYW">
+      <axis axis_ref="domain_X" />
+      <axis axis_ref="domain_Y" />
+      <axis axis_ref="ensemble" />
+    </grid>
+
+    <grid id="grid_XYZW">
+      <axis axis_ref="domain_X" />
+      <axis axis_ref="domain_Y" />
+      <axis axis_ref="axis" />
+      <axis axis_ref="ensemble" />
+    </grid>
+
+    <grid id="grid_XZW">
+      <axis axis_ref="domain_X" />
+      <axis axis_ref="axis" />
+      <axis axis_ref="ensemble" />
+    </grid>
+
+    <grid id="grid_YZW">
+      <axis axis_ref="domain_Y" />
+      <axis axis_ref="axis" />
+      <axis axis_ref="ensemble" />
+    </grid>
+
+ 
+ 
+    <grid id="other_grid3D">
+      <domain domain_ref="other_domain" />
+      <axis axis_ref="other_axis" />
+    </grid>
+    
+    <grid id="other_grid2D">
+      <domain domain_ref="other_domain" />
+    </grid>
+
+    <grid id="other_grid1D">
+      <axis axis_ref="other_axis" />
+    </grid>
+
+    <grid id="other_grid_X">
+      <axis axis_ref="other_domain_X" />
+    </grid>
+
+    <grid id="other_grid_Y">
+      <axis axis_ref="other_domain_Y" />
+    </grid>
+
+    <grid id="other_grid_XY">
+      <axis axis_ref="other_domain_X" />
+      <axis axis_ref="other_domain_Y" />
+    </grid>
+
+    <grid id="other_grid_XYZ">
+      <axis axis_ref="other_domain_X" />
+      <axis axis_ref="other_domain_Y" />
+      <axis axis_ref="other_axis" />
+    </grid>
+
+    <grid id="other_grid_XZ">
+      <axis axis_ref="other_domain_X" />
+      <axis axis_ref="other_axis" />
+    </grid>
+
+    <grid id="other_grid_YZ">
+      <axis axis_ref="other_domain_Y" />
+      <axis axis_ref="other_axis" />
+    </grid>
+
+
+    <grid id="other_grid3D_W">
+      <domain domain_ref="other_domain" />
+      <axis axis_ref="other_axis" />
+      <axis axis_ref="other_ensemble" />
+    </grid>
+    
+    <grid id="other_grid2D_W">
+      <domain domain_ref="other_domain" />
+      <axis axis_ref="other_ensemble" />
+    </grid>
+
+    <grid id="other_grid1D_W">
+      <axis axis_ref="other_axis" />
+      <axis axis_ref="other_ensemble" />
+    </grid>
+
+    <grid id="other_grid_XW">
+      <axis axis_ref="other_domain_X" />
+      <axis axis_ref="other_ensemble" />
+    </grid>
+
+    <grid id="other_grid_YW">
+      <axis axis_ref="other_domain_Y" />
+      <axis axis_ref="other_ensemble" />
+    </grid>
+
+    <grid id="other_grid_XYW">
+      <axis axis_ref="other_domain_X" />
+      <axis axis_ref="other_domain_Y" />
+      <axis axis_ref="other_ensemble" />
+    </grid>
+
+    <grid id="other_grid_XYZW">
+      <axis axis_ref="other_domain_X" />
+      <axis axis_ref="other_domain_Y" />
+      <axis axis_ref="other_axis" />
+      <axis axis_ref="other_ensemble" />
+    </grid>
+
+    <grid id="other_grid_XZW">
+      <axis axis_ref="other_domain_X" />
+      <axis axis_ref="other_axis" />
+      <axis axis_ref="other_ensemble" />
+    </grid>
+
+    <grid id="other_grid_YZW">
+      <axis axis_ref="other_domain_Y" />
+      <axis axis_ref="other_axis" />
+      <axis axis_ref="other_ensemble" />
+    </grid>
+
+   
+  </grid_definition>
+  
+  
+  <field_definition level="1" prec="8" operation="instant" freq_op="1ts" enabled=".true." default_value="1.e+20" detect_missing_value="true">
+    <field id="field2D" grid_ref="grid2D" />
+    <field id="field3D" grid_ref="grid3D"  />
+    <field id="pressure" grid_ref="grid3D"  />
+    <field id="field3D_recv" read_access="true" grid_ref="grid3D"  field_ref="field3D" />
+    <field id="field3D_resend" grid_ref="grid3D" />
+
+    <field id="field_X" grid_ref="grid_X" />
+    <field id="field_Y" grid_ref="grid_Y" />
+    <field id="field_Z" grid_ref="grid1D" />
+    <field id="field0D" grid_ref="grid0D" />
+    <field id="field_XY" grid_ref="grid_XY" />
+    <field id="field_XYZ" grid_ref="grid_XYZ" />
+    <field id="field_XZ" grid_ref="grid_XZ" />
+    <field id="field_YZ" grid_ref="grid_YZ" />
+
+
+    <field id="field2D_W" grid_ref="grid2D_W"/>
+    <field id="field3D_W" grid_ref="grid3D_W"  />
+    <field id="pressure_W" grid_ref="grid3D_W"  />
+    <field id="field3D_recv_W" read_access="true" grid_ref="grid3D_W"  field_ref="field3D_W"/>
+    <field id="field3D_resend_W" grid_ref="grid3D_W" />
+
+    <field id="field_XW" grid_ref="grid_XW" />
+    <field id="field_YW" grid_ref="grid_YW" />
+    <field id="field_ZW" grid_ref="grid1D_W" />
+    <field id="field_XYW" grid_ref="grid_XYW" />
+    <field id="field_XYZW" grid_ref="grid_XYZW" />
+    <field id="field_XZW" grid_ref="grid_XZW" />
+    <field id="field_YZW" grid_ref="grid_YZW" />
+
+
+    <field id="other_field2D" grid_ref="other_grid2D"/>
+    <field id="other_field3D" grid_ref="other_grid3D"  />
+    <field id="other_pressure" grid_ref="other_grid3D"  />
+    <field id="other_field3D_recv" read_access="true" grid_ref="other_grid3D"  field_ref="other_field3D"/>
+    <field id="other_field3D_resend" grid_ref="other_grid3D" />
+
+    <field id="other_field_X" grid_ref="other_grid_X" />
+    <field id="other_field_Y" grid_ref="other_grid_Y" />
+    <field id="other_field_Z" grid_ref="other_grid1D" />
+    <field id="other_field_XY" grid_ref="other_grid_XY" />
+    <field id="other_field_XYZ" grid_ref="other_grid_XYZ" />
+    <field id="other_field_XZ" grid_ref="other_grid_XZ" />
+    <field id="other_field_YZ" grid_ref="other_grid_YZ" />
+
+    <field id="other_field2D_W" grid_ref="other_grid2D_W"/>
+    <field id="other_field3D_W" grid_ref="other_grid3D_W"  />
+    <field id="other_pressure_W" grid_ref="other_grid3D_W"  />
+    <field id="other_field3D_recv_W" read_access="true" grid_ref="other_grid3D_W"  field_ref="other_field3D_W"/>
+    <field id="other_field3D_resend_W" grid_ref="other_grid3D_W" />
+
+    <field id="other_field_XW" grid_ref="other_grid_XW" />
+    <field id="other_field_YW" grid_ref="other_grid_YW" />
+    <field id="other_field_ZW" grid_ref="other_grid1D_W" />
+    <field id="other_field_XYW" grid_ref="other_grid_XYW" />
+    <field id="other_field_XYZW" grid_ref="other_grid_XYZW" />
+    <field id="other_field_XZW" grid_ref="other_grid_XZW" />
+    <field id="other_field_YZW" grid_ref="other_grid_YZW" />
+
+    <field id="field_src" grid_ref="grid_src" > field2D </field>
+    
+    
+  </field_definition>
+
+
+
+<!-- implementation of specifics test case -->
+<!-- simplest test cases : output data to file -->
+
+  
+
+  <file_definition  type="one_file" >
+    <file id="atm_output_axis_transformation_reduce" output_freq="4ts" type="one_file" enabled="true">
+       <field field_ref="field_Z" />
+       <field id="field_Z_reduce_sum" field_ref="field_Z" grid_ref="grid1D_reduce_sum" />
+       <field id="field_Z_reduce_max" field_ref="field_Z" grid_ref="grid1D_reduce_max" />
+       <field id="field_Z_reduce_min" field_ref="field_Z" grid_ref="grid1D_reduce_min" />
+       <field id="field_Z_reduce_ave" field_ref="field_Z" grid_ref="grid1D_reduce_ave" />
+    </file>
+
+    <file id="atm_output_axis_transformation_zoom" output_freq="12ts" type="one_file" enabled="true">
+       <field field_ref="field_Z" />
+       <field id="field_Z_zoom"       field_ref="field_Z" grid_ref="grid1D_zoom"       />
+       <field field_ref="field_XY" />
+       <field id="field_XY_zoomX"       field_ref="field_XY" grid_ref="gridXY_zoomX"       />
+       <field id="field_XY_zoomY"       field_ref="field_XY" grid_ref="gridXY_zoomY"       />
+    </file>
+    
+    <file id="atm_output_axis_transformation_extract" output_freq="12ts" type="one_file" enabled="true">
+       <field field_ref="field_Z" />
+       <field id="field_Z_extract"    field_ref="field_Z" grid_ref="grid1D_extract"    /> 
+    </file>
+    
+ 
+    <file id="atm_output_axis_transformation_inverse" output_freq="12ts" type="one_file" enabled="true">
+       <field field_ref="field_Z" />
+       <field id="field_Z_inverse"    field_ref="field_Z" grid_ref="grid1D_inverse"    />
+    </file>
+    
+    <file id="atm_output_axis_transformation_extract_domain" output_freq="12ts" type="one_file" enabled="true">
+       <field field_ref="field2D" />
+       <field id="field2D_extract"       field_ref="field2D" grid_ref="grid2D_extract_domain"       />
+    </file>
+    
+    <file id="atm_output_axis_transformation_interpolate" output_freq="24ts" type="one_file" enabled="true">
+       <field field_ref="field3D"  />
+       <field field_ref="pressure"  />
+       <field id="field_interpolate_axis" field_ref="field3D" grid_ref="grid3D_interpolate_axis" />
+    </file>
+
+    <file id="atm_output_axis_transformation_temporal_splitting" output_freq="4ts" type="one_file" enabled="true">
+       <field field_ref="field_src" operation="instant" />
+       <field id="field_temporal_splitting" field_ref="field_src" grid_ref="grid_dst" />
+    </file>
+    
+    <file id="atm_output_axis_transformation_duplicate_scalar" output_freq="4ts" type="one_file" enabled="true">
+       <!--field field_ref="field0D" /-->
+       <!--field id="field_0D" field_ref="field_Z" name="field_0D" grid_ref="grid0D" /-->
+       <field id="field_duplicate_scalar" field_ref="field0D" name="field_duplicate_scalar" grid_ref="grid1D_duplicate_scalar" />
+    </file>
+
+
+
+
+
+    <file id="atm_output" output_freq="1ts" type="one_file" enabled="false">
+       <field field_ref="field3D" />
+       <field field_ref="field2D" /> 
+       <field field_ref="field_X" />
+       <field field_ref="field_Y" />
+       <field field_ref="field_XY" />
+       <field field_ref="field_Z" />
+       <field field_ref="field_XYZ" />
+       <field field_ref="field_XZ" />
+       <field field_ref="field_YZ" />
+       <field field_ref="pressure"  /> 
+       <field field_ref="field3D_resend" />
+    </file>
+
+    <file id="atm_output_other" output_freq="1ts" type="one_file" enabled="false">
+       <field field_ref="other_field3D" />
+       <field field_ref="other_field2D" /> 
+       <field field_ref="other_field_X" />
+       <field field_ref="other_field_Y" />
+       <field field_ref="other_field_XY" />
+       <field field_ref="other_field_Z" />
+       <field field_ref="other_field_XYZ" />
+       <field field_ref="other_field_XZ" />
+       <field field_ref="other_field_YZ" />
+       <field field_ref="other_pressure"  /> 
+       <field field_ref="other_field3D_resend" />
+    </file>
+
+    <file id="atm_output_W" output_freq="1ts" enabled="false">
+       <field field_ref="field3D_W" />
+       <field field_ref="field2D_W" /> 
+       <field field_ref="field_XW" />
+       <field field_ref="field_YW" />
+       <field field_ref="field_XYW" />
+       <field field_ref="field_ZW" />
+       <field field_ref="field_XYZW" />
+       <field field_ref="field_XZW" />
+       <field field_ref="field_YZW" />
+    </file>
+    
+    
+  </file_definition>
+  
+  
+</context>
Index: XIOS/dev/dev_ym/XIOS_COUPLING/xios_test_suite/TEST_SUITE/test_memory/user_param_advanced.json
===================================================================
--- XIOS/dev/dev_ym/XIOS_COUPLING/xios_test_suite/TEST_SUITE/test_memory/user_param_advanced.json	(revision 2281)
+++ XIOS/dev/dev_ym/XIOS_COUPLING/xios_test_suite/TEST_SUITE/test_memory/user_param_advanced.json	(revision 2281)
@@ -0,0 +1,9 @@
+[
+	{
+		"Domain": ["lmdz"],
+		"UseServer2": ["false"],
+		"NumberServers": [2],
+        "AxisMask": ["false"],
+        "DomMask": ["false"]
+	}
+]
Index: XIOS/dev/dev_ym/XIOS_COUPLING/xios_test_suite/TEST_SUITE/test_memory/user_param_basic.json
===================================================================
--- XIOS/dev/dev_ym/XIOS_COUPLING/xios_test_suite/TEST_SUITE/test_memory/user_param_basic.json	(revision 2281)
+++ XIOS/dev/dev_ym/XIOS_COUPLING/xios_test_suite/TEST_SUITE/test_memory/user_param_basic.json	(revision 2281)
@@ -0,0 +1,9 @@
+[
+	{
+		"Domain": ["lmdz"],
+		"UseServer2": ["false"],
+		"NumberServers": [2, 4],
+        "AxisMask": ["false"],
+        "DomMask": ["false"]
+	}
+]
Index: XIOS/dev/dev_ym/XIOS_COUPLING/xios_test_suite/generate_ref.sh
===================================================================
--- XIOS/dev/dev_ym/XIOS_COUPLING/xios_test_suite/generate_ref.sh	(revision 2280)
+++ XIOS/dev/dev_ym/XIOS_COUPLING/xios_test_suite/generate_ref.sh	(revision 2281)
@@ -5,4 +5,5 @@
 W_DIR=RUN_TEST_SUITE
 NC_FILE=*.nc
+MEM_FILE=*.mem
 REF_TAR=reference.tar.gz
 
@@ -15,5 +16,5 @@
   do
     mkdir -p ${REF}/${REF_PREFIX}${test_config%%}
-    cp ${W_DIR}/${test_config%%}/${NC_FILE} ${REF}/${REF_PREFIX}${test_config%%}
+    cp ${W_DIR}/${test_config%%}/${NC_FILE}  ${W_DIR}/${test_config%%}/${MEM_FILE} ${REF}/${REF_PREFIX}${test_config%%}
   done
 done
