Index: XIOS/dev/dev_ym/XIOS_COUPLING/xios_test_suite/COMPILE/compile_param_irene.def
===================================================================
--- XIOS/dev/dev_ym/XIOS_COUPLING/xios_test_suite/COMPILE/compile_param_irene.def	(revision 2035)
+++ XIOS/dev/dev_ym/XIOS_COUPLING/xios_test_suite/COMPILE/compile_param_irene.def	(revision 2036)
@@ -1,2 +1,2 @@
 arch = X64_IRENE
-mode = prod, debug
+mode = prod
Index: XIOS/dev/dev_ym/XIOS_COUPLING/xios_test_suite/COMPILE/config_compile.py
===================================================================
--- XIOS/dev/dev_ym/XIOS_COUPLING/xios_test_suite/COMPILE/config_compile.py	(revision 2035)
+++ XIOS/dev/dev_ym/XIOS_COUPLING/xios_test_suite/COMPILE/config_compile.py	(revision 2036)
@@ -114,5 +114,5 @@
             
             f.write("add_test( NAME "+build_dir_name+'\n')
-            f.write("          COMMAND bash -c \"source ../ARCH/arch-"+configs_arg[0][i]+".env  && cd ../.. && ./make_xios --arch_path `pwd`/xios_test_suite/ARCH --arch "+configs_arg[0][i]+" --"+configs_arg[1][j]+" --job 16 --build_dir xios_test_suite/BUILD/build_"+build_dir_name+" && echo $? >> xios_test_suite/COMPILE/build_"+revision+"_"+machine+"_"+build_dir_name+".txt\")\n\n")
+            f.write("          COMMAND bash -c \"source ../ARCH/arch-"+configs_arg[0][i]+".env  && cd ../.. && ./make_xios --use_tv --arch_path `pwd`/xios_test_suite/ARCH --arch "+configs_arg[0][i]+" --"+configs_arg[1][j]+" --job 16 --build_dir xios_test_suite/BUILD/build_"+build_dir_name+" && echo $? >> xios_test_suite/COMPILE/build_"+revision+"_"+machine+"_"+build_dir_name+".txt\")\n\n")
             f.write("set_tests_properties( "+build_dir_name+" PROPERTIES\n")
             f.write("                      FAIL_REGULAR_EXPRESSION \"failed\")\n\n")
Index: XIOS/dev/dev_ym/XIOS_COUPLING/xios_test_suite/TEST_SUITE/context_atm.xml
===================================================================
--- XIOS/dev/dev_ym/XIOS_COUPLING/xios_test_suite/TEST_SUITE/context_atm.xml	(revision 2035)
+++ XIOS/dev/dev_ym/XIOS_COUPLING/xios_test_suite/TEST_SUITE/context_atm.xml	(revision 2036)
@@ -3,12 +3,14 @@
   
   <calendar type="Gregorian" time_origin="1850-01-01 00:00:00" /> 
-  
-  <domain_definition>
-    <domain id="domain" />
-    <domain id="other_domain" />
-  </domain>
-  
+ 
+  <scalar_definition>
+    <scalar id="scalar" /> 
+    <scalar id="other_scalar" /> 
+  </scalar_definition>
+ 
+ 
   <axis_definition>
     <axis id="axis" />
+    <axis id="axis_str" n_glo="10" label="(0,9) [toto titi tata turlututu tito tati tuto tato tete tetu ] "/>
     <axis id="domain_X" />
     <axis id="domain_Y" />
@@ -19,7 +21,5 @@
     <axis id="other_domain_Y" />
     <axis id="other_ensemble" />
-  </axis_definition>
-
-  <axis_definition>
+
     <axis id="axis_zoom" axis_ref="axis">
         <zoom_axis begin="0" n="5"/>
@@ -27,7 +27,9 @@
   </axis_definition>
 
-  <scalar_definition>
-    <scalar id="scalar" /> 
-  </scalar_definition>
+ 
+  <domain_definition>
+    <domain id="domain" />
+    <domain id="other_domain" />
+  </domain_definition>
   
   
@@ -41,9 +43,13 @@
     
     <grid id="grid2D">
-      <domain domain_ref="domain" />
+      <domain domain_ref="domain" id="grid2D_dom" />
     </grid>
 
     <grid id="grid1D">
       <axis axis_ref="axis" />
+    </grid>
+
+    <grid id="grid0D">
+      <scalar scalar_ref="scalar" />
     </grid>
 
@@ -94,4 +100,9 @@
     </grid>
 
+    <grid id="grid0D_W">
+      <scalar scalar_ref="scalar" />
+      <axis axis_ref="ensemble" />
+    </grid>
+
     <grid id="grid_XW">
       <axis axis_ref="domain_X" />
@@ -129,8 +140,4 @@
     </grid>
 
- 
- 
- 
- 
  
     <grid id="other_grid3D">
@@ -140,9 +147,13 @@
     
     <grid id="other_grid2D">
-      <domain domain_ref="other_domain" />
+      <domain domain_ref="other_domain" id="test_dom" />
     </grid>
 
     <grid id="other_grid1D">
       <axis axis_ref="other_axis" />
+    </grid>
+
+    <grid id="other_grid0D">
+      <scalar scalar_ref="other_scalar" />
     </grid>
 
@@ -193,4 +204,9 @@
     </grid>
 
+    <grid id="other_grid0D_W">
+      <scalar scalar_ref="other_scalar" />
+      <axis axis_ref="other_ensemble" />
+    </grid>
+
     <grid id="other_grid_XW">
       <axis axis_ref="other_domain_X" />
@@ -229,70 +245,15 @@
 
 
-
-
-
-
-
-
-
-
-    <grid id="grid_vert_reduce">
-      <domain domain_ref="domain" />
-      <scalar >
-        <reduce_axis operation="sum" />
-      </scalar>
-    </grid>
-
-    <grid id="grid_horiz_reduce">
-      <scalar >
-        <reduce_domain operation="sum" />
-      </scalar>
-      <axis axis_ref="axis" />
-    </grid>
-      
-    <grid id="grid_zoom_vert">
-      <domain domain_ref="domain" />
-      <axis axis_ref="axis_zoom" />
-    </grid>
-
-    <grid id="grid_zoom_vert_sum">
-      <scalar >
-        <reduce_domain operation="sum" />
-      </scalar>
-      <axis axis_ref="axis_zoom" />
-    </grid>
-
-   <grid id="grid_lat">
-       <axis axis_ref="domain_Y">
-         <reduce_domain direction="iDir" operation="sum"/> 
-       </axis>
-       <axis axis_ref="axis" />
-    </grid>
-    
-
-    <grid id="grid3D_invert">
-      <domain domain_ref="domain">
-        <reorder_domain invert_lat="true" />
-      </domain>
-      <axis axis_ref="axis" />
-    </grid>
-    
-    <grid id="grid2D_invert">
-      <domain domain_ref="domain">
-        <reorder_domain invert_lat="true" shift_lon_fraction="0.5" min_lon="0" max_lon="360"/>
-      </domain>
-    </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="field0D" grid_ref="grid0D"/>
     <field id="field2D" grid_ref="grid2D" />
-    <field id="field3D" grid_ref="grid3D" build_workflow_graph="true"  />
+    <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="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" />
@@ -307,11 +268,12 @@
 
 
-
+    <field id="field0D_W" grid_ref="grid0D_W"/>
     <field id="field2D_W" grid_ref="grid2D_W"/>
     <field id="field3D_W" grid_ref="grid3D_W"  />
     <field id="pressure_W" grid_ref="grid3D_W"  />
+<!-- ym disable for now
     <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" />
@@ -324,11 +286,13 @@
 
 
-
-    <field id="other_field2D" grid_ref="other_grid2D"/>
+    <field id="other_field0D" grid_ref="other_grid0D"/>
+<!--    <field id="other_field2D" grid_ref="other_grid2D"/> -->
+    <field id="other_field2D" grid_ref="zoom1"/>
     <field id="other_field3D" grid_ref="other_grid3D"  />
     <field id="other_pressure" grid_ref="other_grid3D"  />
+<!-- ym disable for now
     <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" />
@@ -339,10 +303,12 @@
     <field id="other_field_YZ" grid_ref="other_grid_YZ" />
 
+    <field id="other_field0D_W" grid_ref="other_grid0D_W"/>
     <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"  />
+<!-- ym disable for now
     <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" />
@@ -352,72 +318,189 @@
     <field id="other_field_XZW" grid_ref="other_grid_XZW" />
     <field id="other_field_YZW" grid_ref="other_grid_YZW" />
-
-
-
-
-    
     
   </field_definition>
   
 
-  <file_definition  type="one_file" >
-    
-    <file id="atm_output" output_freq="4ts" type="one_file" enabled="true">
-<!--      <field field_ref="field3D" />
-      <field field_ref="field2D" /> 
-      <field field_ref="field3D" grid_ref="grid_vert_reduce" name="field_vert_reduced" /> 
-      <field field_ref="field3D" grid_ref="grid_horiz_reduce" name="field_horiz_reduced" />
-      <field field_ref="field_zoom_vert"  /> 
-      <field field_ref="field_zoom_vert_sum"  /> 
-      <field field_ref="pressure"  /> 
-      <field field_ref="field3D_resend" /> -->
-       
-       <field field_ref="field3D" enabled="true"/>
-       <field field_ref="field2D" enabled="true"/> 
-       <field field_ref="field_X" enabled="true"/>
-       <field field_ref="field_Y" enabled="true"/>
-       <field field_ref="field_XY" enabled="true"/>
-       <field field_ref="field_Z" enabled="true"/>
-       <field field_ref="field_XYZ" enabled="true"/>
-       <field field_ref="field_XZ" enabled="true"/>
-       <field field_ref="field_YZ" enabled="true"/>
-    </file>
-
-    <file id="atm_output_other" output_freq="1ts" type="one_file" enabled="true">
-       <field field_ref="other_field3D" enabled="true"/>
-       <field field_ref="other_field2D" enabled="true"/> 
-       <field field_ref="other_field_X" enabled="true"/>
-       <field field_ref="other_field_Y" enabled="true"/>
-       <field field_ref="other_field_XY" enabled="true"/>
-       <field field_ref="other_field_Z" enabled="true"/>
-       <field field_ref="other_field_XYZ" enabled="true"/>
-       <field field_ref="other_field_XZ" enabled="true"/>
-       <field field_ref="other_field_YZ" enabled="true"/>
-    </file>
-
-    <file id="atm_output_W" output_freq="1ts" enabled="false">
-       <field field_ref="field3D_W" enabled="true"/>
-       <field field_ref="field2D_W" enabled="true"/> 
-       <field field_ref="field_XW" enabled="true"/>
-       <field field_ref="field_YW" enabled="true"/>
-       <field field_ref="field_XYW" enabled="true"/>
-       <field field_ref="field_ZW" enabled="true"/>
-       <field field_ref="field_XYZW" enabled="true"/>
-       <field field_ref="field_XZW" enabled="true"/>
-       <field field_ref="field_YZW" enabled="true"/>
-    </file>
-    
-
-    <file id="atm_output_reorder" output_freq="1ts" enabled="false" >
-       <field field_ref="field2D" grid_ref="grid2D_invert" enabled="true"/>
-    </file>
-    
-    <file id="test_grid_lat" output_freq="1ts" enabled="false">
-      <field field_ref="field3D" operation="instant" />
-      <field id="field_reduce_lat" field_ref="field3D" grid_ref="grid_lat" operation="instant" />
-    </file>
-    
+<!-- test transform  -->
+
+
+  <axis_definition>
+    <axis id="axis_inverse" axis_ref="axis">
+      <inverse_axis />
+    </axis>
+
+    <axis id="axis_extract" >
+      <extract_axis begin="1" n="5" />
+    </axis>
+
+
+
+  </axis_definition>
+
+  <domain_definition>
+
+    <domain id="domain_extract">
+      <extract_domain ibegin="0" ni="36" jbegin="2" nj="3" />
+    </domain>
+ 
+ 
+    <domain id="domain_reorder" domain_ref="domain">
+      <reorder_domain invert_lat="true" shift_lon_fraction="0.5"/>
+    </domain>
+  
+    <domain id="domain_expand" >
+      <expand_domain order="1" type="edge"/>
+    </domain>
+  
+    <domain id="domain_interpolate" domain_ref="other_domain" >
+      <interpolate_domain detect_missing_value="false"/>
+    </domain>
+  
+    <domain id="domain_connect" >
+      <compute_connectivity_domain type="edge"/>
+    </domain>
+
+    <domain id="domain_recti" ni_glo="40" nj_glo="20" type="rectilinear" />
+
+  
+    <domain id="domain_expand_extract" >
+      <expand_domain order="1" type="edge"/>
+      <extract_domain ibegin="0" ni="38" jbegin="2" nj="3" />
+    </domain>
+  
+
+
+  </domain_definition>
+  
+  <grid_definition>
+ 
+    <grid id="grid1D_inverse">
+      <axis axis_ref="axis_inverse" />
+    </grid>
+  
+    <grid id="grid1D_extract">
+      <axis axis_ref="axis_extract" />
+    </grid>
+  
+
+    <grid id="grid2D_extract">
+      <domain domain_ref="domain_extract" />
+    </grid>
+  
+    <grid id="grid2D_zoom">
+      <domain domain_ref="domain_zoom" />
+    </grid>
+ 
+
+    <grid id="grid2D_reorder">
+      <domain domain_ref="domain_reorder" />
+    </grid>
+ 
+    <grid id="grid2D_expand">
+      <domain domain_ref="domain_expand" />
+    </grid>
+
+    <grid id="grid2D_interpolate">
+      <domain domain_ref="domain_interpolate" />
+    </grid>
+  
+
+    <grid id="grid2D_connect">
+      <domain domain_ref="domain_connect" />
+    </grid>
+
+
+    <grid id="grid2D_recti">
+      <domain domain_ref="domain_recti" >
+        <generate_rectilinear_domain lat_start="-85" lon_start="-175" />
+        <interpolate_domain detect_missing_value="false"/>
+      </domain>
+    </grid>
+ 
+    <grid id="grid2D_expand_extract">
+      <domain domain_ref="domain_expand_extract" />
+    </grid>
+  
+    <grid id="grid2D_extract_domain">  
+      <axis  n_glo="36">
+        <extract_domain position="2" direction="jDir" />
+      </axis>
+    </grid>
+
+    <grid id="grid3D_axis_interpolate">
+      <domain domain_ref="domain"/>
+      <axis n_glo="2" value="(0,1)[40000 20000]">
+        <interpolate_axis coordinate="pressure" />
+      </axis>
+    </grid> 
+ 
+    <grid id="grid3D_axis_interpolate_bis">
+      <domain domain_ref="domain"/>
+      <axis n_glo="2" value="(0,1)[40000 20000]">
+        <interpolate_axis />
+      </axis>
+    </grid> 
+
+
+  </grid_definition>
+ 
+ 
+  <field_definition>
+    <field_group id="fields_with_domain_transformation" operation="instant" >
+      <field id="field2D_extract"  field_ref="field2D" grid_ref="grid2D_extract"/>
+      <field id="field2D_reorder"  field_ref="field2D" grid_ref="grid2D_reorder" />
+      <field id="field2D_expand"   field_ref="field2D" grid_ref="grid2D_expand"/>
+      <field id="field2D_connect"  field_ref="field2D" grid_ref="grid2D_connect"/>
+      <field id="field2D_interpo"  field_ref="field2D" grid_ref="grid2D_interpolate"/>
+      <field id="field2D_recti"    field_ref="field2D" grid_ref="grid2D_recti"/>
+      <field id="field2D_exp_ext"  field_ref="field2D" grid_ref="grid2D_expand_extract"/>
+      <field id="field2D_reorder_ext"  field_ref="field2D_reorder" grid_ref="grid2D_extract"/>
+    </field_group>
+
+    <field_group id="fields_with_axis_transformation" operation="instant"  >
+      <field id="fieldZ_inverse"   field_ref="field_Z" grid_ref="grid1D_inverse"/>
+      <field id="fieldZ_extract"   field_ref="field_Z" grid_ref="grid1D_extract"/>
+      <field id="field2D_extract_domain"   field_ref="field2D" grid_ref="grid2D_extract_domain"/>
+      <field id="field3D_interpo"  field_ref="field3D" grid_ref="grid3D_axis_interpolate"/>
+      <field id="field3D_interpo_bis"  field_ref="field3D" grid_ref="grid3D_axis_interpolate_bis"/>
+    </field_group>
+
+  </field_definition>
+
+
+
+  <file_definition>
+    
+  <file id="atm_output_domain" output_freq="1ts" type="one_file" enabled="true">
+      <field field_ref="field2D_extract" />
+      <field field_ref="field2D_reorder" />
+      <field field_ref="field2D_expand" />
+      <field field_ref="field2D_interpo" />
+      <field field_ref="field2D_recti" />
+      <field field_ref="field2D_exp_ext" />
+      <field field_ref="field2D_reorder_ext" />
+      <field id="field2D"  />
+  </file>
+     
+  <file id="atm_output_axis" output_freq="4ts" type="one_file" enabled="true">
+      <field field_ref="fieldZ_inverse" enabled="false"  />
+      <field field_ref="fieldZ_extract"  enabled="true"/>
+      <field field_ref="field2D_extract_domain"  enabled="false"/>
+      <field id="field_Z"  enabled="true"/>
+      <field id="field2D"  enabled="true"/>
+  </file>
+     
+  <file id="atm_output_interpolate" output_freq="1ts" type="one_file" enabled="true">
+      <field field_ref="field3D_interpo" />
+      <field field_ref="field3D_interpo_bis" />
+      <field id="field3D"  />
+  </file>
+    
+
+
   </file_definition>
-  
+
+
+
   
 </context>
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 2035)
+++ XIOS/dev/dev_ym/XIOS_COUPLING/xios_test_suite/TEST_SUITE/run_test	(revision 2036)
@@ -21,5 +21,5 @@
   echo "ulimit -c 0">> compile.sh
   echo "cd ../.. ">> compile.sh
-  echo "./make_xios --arch_path `pwd`/../ARCH --arch ${arch} --${mode} --build_dir ${build_dir} --job 16" >> compile.sh
+  echo "./make_xios --arch_path `pwd`/../ARCH --arch ${arch} --${mode} --use_tv --build_dir ${build_dir} --job 16" >> compile.sh
   cmd=$(sbatch compile.sh)
   jobid="${cmd//[!0-9]/}"
@@ -53,5 +53,5 @@
   echo "#MSUB -m work,scratch" >> compile.sh
   echo "cd ../.. ">> compile.sh
-  echo "./make_xios --arch_path `pwd`/../ARCH --arch ${arch} --${mode} --build_dir ${build_dir} --job 16" >> compile.sh
+  echo "./make_xios --arch_path `pwd`/../ARCH --arch ${arch} --${mode} --use_tv --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 2035)
+++ XIOS/dev/dev_ym/XIOS_COUPLING/xios_test_suite/TEST_SUITE/run_test_irene	(revision 2036)
@@ -7,7 +7,7 @@
 
 
-export arch=X64_IRENE
-export mode=debug
+#export arch=X64_IRENE
+#export mode=debug
 
-bash ./run_test
+#bash ./run_test
 
Index: XIOS/dev/dev_ym/XIOS_COUPLING/xios_test_suite/TEST_SUITE/test_axis_algo/checkfile.def
===================================================================
--- XIOS/dev/dev_ym/XIOS_COUPLING/xios_test_suite/TEST_SUITE/test_axis_algo/checkfile.def	(revision 2035)
+++ XIOS/dev/dev_ym/XIOS_COUPLING/xios_test_suite/TEST_SUITE/test_axis_algo/checkfile.def	(revision 2036)
@@ -1,10 +1,1 @@
-#all
-#atm_output_zoom.nc
-atm_output_axis_transformation_reduce.nc
-atm_output_axis_transformation_zoom.nc
-atm_output_axis_transformation_extract.nc
-atm_output_axis_transformation_extract_domain.nc
-atm_output_axis_transformation_interpolate.nc
-atm_output_axis_transformation_temporal_splitting.nc
-atm_output_axis_transformation_duplicate_scalar.nc
-atm_output_axis_transformation_inverse.nc
+atm_output_interpolate.nc
Index: XIOS/dev/dev_ym/XIOS_COUPLING/xios_test_suite/TEST_SUITE/test_axis_algo/context_atm.xml
===================================================================
--- XIOS/dev/dev_ym/XIOS_COUPLING/xios_test_suite/TEST_SUITE/test_axis_algo/context_atm.xml	(revision 2035)
+++ XIOS/dev/dev_ym/XIOS_COUPLING/xios_test_suite/TEST_SUITE/test_axis_algo/context_atm.xml	(revision 2036)
@@ -3,28 +3,17 @@
   
   <calendar type="Gregorian" time_origin="1850-01-01 00:00:00" /> 
-  
-  <domain_definition>
-    <domain id="domain" />
-    <domain id="other_domain" />
-  </domain>
-  
+ 
+  <scalar_definition>
+    <scalar id="scalar" /> 
+    <scalar id="other_scalar" /> 
+  </scalar_definition>
+ 
+ 
   <axis_definition>
     <axis id="axis" />
+    <axis id="axis_str" n_glo="10" label="(0,9) [toto titi tata turlututu tito tati tuto tato tete tetu ] "/>
     <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" />
@@ -32,9 +21,15 @@
     <axis id="other_domain_Y" />
     <axis id="other_ensemble" />
+
+    <axis id="axis_zoom" axis_ref="axis">
+        <zoom_axis begin="0" n="5"/>
+    </axis>
   </axis_definition>
 
-  <scalar_definition>
-    <scalar id="scalar" /> 
-  </scalar_definition>
+ 
+  <domain_definition>
+    <domain id="domain" />
+    <domain id="other_domain" />
+  </domain_definition>
   
   
@@ -46,93 +41,16 @@
       <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>
-
-
+      <domain domain_ref="domain" id="grid2D_dom" />
+    </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">
+
+    <grid id="grid0D">
       <scalar scalar_ref="scalar" />
     </grid>
-   
-    <grid id="grid1D_duplicate_scalar">
-      <axis axis_ref="axis_duplicate_scalar" />
-    </grid>
- 
-
-
 
     <grid id="grid_X">
@@ -148,20 +66,4 @@
       <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">
@@ -198,4 +100,9 @@
     </grid>
 
+    <grid id="grid0D_W">
+      <scalar scalar_ref="scalar" />
+      <axis axis_ref="ensemble" />
+    </grid>
+
     <grid id="grid_XW">
       <axis axis_ref="domain_X" />
@@ -233,5 +140,4 @@
     </grid>
 
- 
  
     <grid id="other_grid3D">
@@ -241,9 +147,13 @@
     
     <grid id="other_grid2D">
-      <domain domain_ref="other_domain" />
+      <domain domain_ref="other_domain" id="test_dom" />
     </grid>
 
     <grid id="other_grid1D">
       <axis axis_ref="other_axis" />
+    </grid>
+
+    <grid id="other_grid0D">
+      <scalar scalar_ref="other_scalar" />
     </grid>
 
@@ -294,4 +204,9 @@
     </grid>
 
+    <grid id="other_grid0D_W">
+      <scalar scalar_ref="other_scalar" />
+      <axis axis_ref="other_ensemble" />
+    </grid>
+
     <grid id="other_grid_XW">
       <axis axis_ref="other_domain_X" />
@@ -329,15 +244,16 @@
     </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="field0D" grid_ref="grid0D"/>
     <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="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" />
@@ -348,11 +264,16 @@
     <field id="field_YZ" grid_ref="grid_YZ" />
 
-
+    <field id="field_zoom_vert" field_ref="field3D" grid_ref="grid_zoom_vert"  />
+    <field id="field_zoom_vert_sum" field_ref="field_zoom_vert" grid_ref="grid_zoom_vert_sum"  />
+
+
+    <field id="field0D_W" grid_ref="grid0D_W"/>
     <field id="field2D_W" grid_ref="grid2D_W"/>
     <field id="field3D_W" grid_ref="grid3D_W"  />
     <field id="pressure_W" grid_ref="grid3D_W"  />
+<!-- ym disable for now
     <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" />
@@ -364,10 +285,14 @@
 
 
-    <field id="other_field2D" grid_ref="other_grid2D"/>
+
+    <field id="other_field0D" grid_ref="other_grid0D"/>
+<!--    <field id="other_field2D" grid_ref="other_grid2D"/> -->
+    <field id="other_field2D" grid_ref="zoom1"/>
     <field id="other_field3D" grid_ref="other_grid3D"  />
     <field id="other_pressure" grid_ref="other_grid3D"  />
+<!-- ym disable for now
     <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" />
@@ -378,10 +303,12 @@
     <field id="other_field_YZ" grid_ref="other_grid_YZ" />
 
+    <field id="other_field0D_W" grid_ref="other_grid0D_W"/>
     <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"  />
+<!-- ym disable for now
     <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" />
@@ -391,114 +318,189 @@
     <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" > field3D </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="field_Z" />
-       <field id="field_0D" field_ref="field_Z" name="field_0D" grid_ref="grid0D" />
-       <field id="field_duplicate_scalar" field_ref="field_0D" 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>
-    
-    
+  
+
+<!-- test transform  -->
+
+
+  <axis_definition>
+    <axis id="axis_inverse" axis_ref="axis">
+      <inverse_axis />
+    </axis>
+
+    <axis id="axis_extract" >
+      <extract_axis begin="1" n="5" />
+    </axis>
+
+
+
+  </axis_definition>
+
+  <domain_definition>
+
+    <domain id="domain_extract">
+      <extract_domain ibegin="0" ni="36" jbegin="2" nj="3" />
+    </domain>
+ 
+ 
+    <domain id="domain_reorder" domain_ref="domain">
+      <reorder_domain invert_lat="true" shift_lon_fraction="0.5"/>
+    </domain>
+  
+    <domain id="domain_expand" >
+      <expand_domain order="1" type="edge"/>
+    </domain>
+  
+    <domain id="domain_interpolate" domain_ref="other_domain" >
+      <interpolate_domain detect_missing_value="false"/>
+    </domain>
+  
+    <domain id="domain_connect" >
+      <compute_connectivity_domain type="edge"/>
+    </domain>
+
+    <domain id="domain_recti" ni_glo="40" nj_glo="20" type="rectilinear" />
+
+  
+    <domain id="domain_expand_extract" >
+      <expand_domain order="1" type="edge"/>
+      <extract_domain ibegin="0" ni="38" jbegin="2" nj="3" />
+    </domain>
+  
+
+
+  </domain_definition>
+  
+  <grid_definition>
+ 
+    <grid id="grid1D_inverse">
+      <axis axis_ref="axis_inverse" />
+    </grid>
+  
+    <grid id="grid1D_extract">
+      <axis axis_ref="axis_extract" />
+    </grid>
+  
+
+    <grid id="grid2D_extract">
+      <domain domain_ref="domain_extract" />
+    </grid>
+  
+    <grid id="grid2D_zoom">
+      <domain domain_ref="domain_zoom" />
+    </grid>
+ 
+
+    <grid id="grid2D_reorder">
+      <domain domain_ref="domain_reorder" />
+    </grid>
+ 
+    <grid id="grid2D_expand">
+      <domain domain_ref="domain_expand" />
+    </grid>
+
+    <grid id="grid2D_interpolate">
+      <domain domain_ref="domain_interpolate" />
+    </grid>
+  
+
+    <grid id="grid2D_connect">
+      <domain domain_ref="domain_connect" />
+    </grid>
+
+
+    <grid id="grid2D_recti">
+      <domain domain_ref="domain_recti" >
+        <generate_rectilinear_domain lat_start="-85" lon_start="-175" />
+        <interpolate_domain detect_missing_value="false"/>
+      </domain>
+    </grid>
+ 
+    <grid id="grid2D_expand_extract">
+      <domain domain_ref="domain_expand_extract" />
+    </grid>
+  
+    <grid id="grid2D_extract_domain">  
+      <axis  n_glo="36">
+        <extract_domain position="2" direction="jDir" />
+      </axis>
+    </grid>
+
+    <grid id="grid3D_axis_interpolate">
+      <domain domain_ref="domain"/>
+      <axis n_glo="2" value="(0,1)[40000 20000]">
+        <interpolate_axis coordinate="pressure" />
+      </axis>
+    </grid> 
+ 
+    <grid id="grid3D_axis_interpolate_bis">
+      <domain domain_ref="domain"/>
+      <axis n_glo="2" value="(0,1)[40000 20000]">
+        <interpolate_axis />
+      </axis>
+    </grid> 
+
+
+  </grid_definition>
+ 
+ 
+  <field_definition>
+    <field_group id="fields_with_domain_transformation" operation="instant" >
+      <field id="field2D_extract"  field_ref="field2D" grid_ref="grid2D_extract"/>
+      <field id="field2D_reorder"  field_ref="field2D" grid_ref="grid2D_reorder" />
+      <field id="field2D_expand"   field_ref="field2D" grid_ref="grid2D_expand"/>
+      <field id="field2D_connect"  field_ref="field2D" grid_ref="grid2D_connect"/>
+      <field id="field2D_interpo"  field_ref="field2D" grid_ref="grid2D_interpolate"/>
+      <field id="field2D_recti"    field_ref="field2D" grid_ref="grid2D_recti"/>
+      <field id="field2D_exp_ext"  field_ref="field2D" grid_ref="grid2D_expand_extract"/>
+      <field id="field2D_reorder_ext"  field_ref="field2D_reorder" grid_ref="grid2D_extract"/>
+    </field_group>
+
+    <field_group id="fields_with_axis_transformation" operation="instant"  >
+      <field id="fieldZ_inverse"   field_ref="field_Z" grid_ref="grid1D_inverse"/>
+      <field id="fieldZ_extract"   field_ref="field_Z" grid_ref="grid1D_extract"/>
+      <field id="field2D_extract_domain"   field_ref="field2D" grid_ref="grid2D_extract_domain"/>
+      <field id="field3D_interpo"  field_ref="field3D" grid_ref="grid3D_axis_interpolate"/>
+      <field id="field3D_interpo_bis"  field_ref="field3D" grid_ref="grid3D_axis_interpolate_bis"/>
+    </field_group>
+
+  </field_definition>
+
+
+
+  <file_definition>
+    
+  <file id="atm_output_domain" output_freq="1ts" type="one_file" enabled="false">
+      <field field_ref="field2D_extract" />
+      <field field_ref="field2D_reorder" />
+      <field field_ref="field2D_expand" />
+      <field field_ref="field2D_interpo" />
+      <field field_ref="field2D_recti" />
+      <field field_ref="field2D_exp_ext" />
+      <field field_ref="field2D_reorder_ext" />
+      <field id="field2D"  />
+  </file>
+     
+  <file id="atm_output_axis" output_freq="4ts" type="one_file" enabled="false">
+      <field field_ref="fieldZ_inverse" enabled="false"  />
+      <field field_ref="fieldZ_extract"  enabled="true"/>
+      <field field_ref="field2D_extract_domain"  enabled="false"/>
+      <field id="field_Z"  enabled="true"/>
+      <field id="field2D"  enabled="true"/>
+  </file>
+     
+  <file id="atm_output_interpolate" output_freq="1ts" type="one_file" enabled="true">
+      <field field_ref="field3D_interpo" />
+      <field field_ref="field3D_interpo_bis" />
+      <field id="field3D"  />
+  </file>
+    
+
+
   </file_definition>
-  
+
+
+
   
 </context>
Index: XIOS/dev/dev_ym/XIOS_COUPLING/xios_test_suite/TEST_SUITE/test_domain_algo/checkfile.def
===================================================================
--- XIOS/dev/dev_ym/XIOS_COUPLING/xios_test_suite/TEST_SUITE/test_domain_algo/checkfile.def	(revision 2035)
+++ XIOS/dev/dev_ym/XIOS_COUPLING/xios_test_suite/TEST_SUITE/test_domain_algo/checkfile.def	(revision 2036)
@@ -1,8 +1,4 @@
 #all
 
-atm_output_domain_transformation_reorder.nc
-atm_output_domain_transformation_extract.nc
-atm_output_domain_transformation_zoom.nc
-atm_output_domain_transformation_interpolate.nc
-atm_output_domain_transformation_expand.nc
+atm_output_interpolate.nc
 
Index: XIOS/dev/dev_ym/XIOS_COUPLING/xios_test_suite/TEST_SUITE/test_domain_algo/context_atm.xml
===================================================================
--- XIOS/dev/dev_ym/XIOS_COUPLING/xios_test_suite/TEST_SUITE/test_domain_algo/context_atm.xml	(revision 2035)
+++ XIOS/dev/dev_ym/XIOS_COUPLING/xios_test_suite/TEST_SUITE/test_domain_algo/context_atm.xml	(revision 2036)
@@ -3,17 +3,17 @@
   
   <calendar type="Gregorian" time_origin="1850-01-01 00:00:00" /> 
-  
-  <domain_definition>
-    <domain id="domain" />
-    <domain id="other_domain" />
-    <domain id="square_domain" ni_glo="36" nj_glo="36" type="rectilinear"/>
-  </domain_definition>
-
+ 
+  <scalar_definition>
+    <scalar id="scalar" /> 
+    <scalar id="other_scalar" /> 
+  </scalar_definition>
+ 
+ 
   <axis_definition>
     <axis id="axis" />
+    <axis id="axis_str" n_glo="10" label="(0,9) [toto titi tata turlututu tito tati tuto tato tete tetu ] "/>
     <axis id="domain_X" />
     <axis id="domain_Y" />
     <axis id="ensemble" />
-
 
     <axis id="other_axis" />
@@ -21,9 +21,15 @@
     <axis id="other_domain_Y" />
     <axis id="other_ensemble" />
+
+    <axis id="axis_zoom" axis_ref="axis">
+        <zoom_axis begin="0" n="5"/>
+    </axis>
   </axis_definition>
 
-  <scalar_definition>
-    <scalar id="scalar" /> 
-  </scalar_definition>
+ 
+  <domain_definition>
+    <domain id="domain" />
+    <domain id="other_domain" />
+  </domain_definition>
   
   
@@ -37,5 +43,5 @@
     
     <grid id="grid2D">
-      <domain domain_ref="domain" />
+      <domain domain_ref="domain" id="grid2D_dom" />
     </grid>
 
@@ -43,55 +49,8 @@
       <axis axis_ref="axis" />
     </grid>
-   
-    <grid id="grid2D_zoom">
-      <domain domain_ref="domain">
-      <zoom_domain ni="10" ibegin="15" nj="16" jbegin="0"/>
-      </domain> 
-    </grid>
-
-    <grid id="grid2D_extract">
-      <domain domain_ref="domain">
-      <zoom_domain ni="10" ibegin="15" nj="16" jbegin="0"/>
-      </domain> 
-    </grid>
-
-    <grid id="grid3D_zoom">
-      <domain domain_ref="domain">
-      <zoom_domain ni="10" ibegin="15" nj="16" jbegin="0"/>
-      </domain> 
-      <axis axis_ref="axis" />
-    </grid>
-
-    <grid id="grid3D_extract">
-      <domain domain_ref="domain">
-      <zoom_domain ni="10" ibegin="15" nj="16" jbegin="0"/>
-      </domain> 
-      <axis axis_ref="axis" />
-    </grid>
-
-    <grid id="grid2D_square">
-      <domain domain_ref="square_domain">
-      <generate_rectilinear_domain lon_start="-175"/>
-      <interpolate_domain />
-      </domain> 
-    </grid>
-
-    <grid id="grid2D_reorder">
-      <domain domain_ref="domain">
-      <reorder_domain invert_lat="true" />
-      </domain> 
-    </grid>
-
-    <grid id="grid2D_expand">
-      <domain domain_ref="domain">
-      <expand_domain order="1" type="node"/>
-      </domain> 
-    </grid>
-
-
-
-
-
-
+
+    <grid id="grid0D">
+      <scalar scalar_ref="scalar" />
+    </grid>
 
     <grid id="grid_X">
@@ -141,4 +100,9 @@
     </grid>
 
+    <grid id="grid0D_W">
+      <scalar scalar_ref="scalar" />
+      <axis axis_ref="ensemble" />
+    </grid>
+
     <grid id="grid_XW">
       <axis axis_ref="domain_X" />
@@ -176,5 +140,4 @@
     </grid>
 
- 
  
     <grid id="other_grid3D">
@@ -184,9 +147,13 @@
     
     <grid id="other_grid2D">
-      <domain domain_ref="other_domain" />
+      <domain domain_ref="other_domain" id="test_dom" />
     </grid>
 
     <grid id="other_grid1D">
       <axis axis_ref="other_axis" />
+    </grid>
+
+    <grid id="other_grid0D">
+      <scalar scalar_ref="other_scalar" />
     </grid>
 
@@ -237,4 +204,9 @@
     </grid>
 
+    <grid id="other_grid0D_W">
+      <scalar scalar_ref="other_scalar" />
+      <axis axis_ref="other_ensemble" />
+    </grid>
+
     <grid id="other_grid_XW">
       <axis axis_ref="other_domain_X" />
@@ -272,15 +244,16 @@
     </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="field0D" grid_ref="grid0D"/>
     <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="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" />
@@ -291,11 +264,16 @@
     <field id="field_YZ" grid_ref="grid_YZ" />
 
-
+    <field id="field_zoom_vert" field_ref="field3D" grid_ref="grid_zoom_vert"  />
+    <field id="field_zoom_vert_sum" field_ref="field_zoom_vert" grid_ref="grid_zoom_vert_sum"  />
+
+
+    <field id="field0D_W" grid_ref="grid0D_W"/>
     <field id="field2D_W" grid_ref="grid2D_W"/>
     <field id="field3D_W" grid_ref="grid3D_W"  />
     <field id="pressure_W" grid_ref="grid3D_W"  />
+<!-- ym disable for now
     <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" />
@@ -307,10 +285,14 @@
 
 
-    <field id="other_field2D" grid_ref="other_grid2D"/>
+
+    <field id="other_field0D" grid_ref="other_grid0D"/>
+<!--    <field id="other_field2D" grid_ref="other_grid2D"/> -->
+    <field id="other_field2D" grid_ref="zoom1"/>
     <field id="other_field3D" grid_ref="other_grid3D"  />
     <field id="other_pressure" grid_ref="other_grid3D"  />
+<!-- ym disable for now
     <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" />
@@ -321,10 +303,12 @@
     <field id="other_field_YZ" grid_ref="other_grid_YZ" />
 
+    <field id="other_field0D_W" grid_ref="other_grid0D_W"/>
     <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"  />
+<!-- ym disable for now
     <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" />
@@ -334,90 +318,189 @@
     <field id="other_field_XZW" grid_ref="other_grid_XZW" />
     <field id="other_field_YZW" grid_ref="other_grid_YZW" />
-
-    
     
   </field_definition>
-
-
-
-<!-- implementation of specifics test case -->
-<!-- simplest test cases : output data to file -->
-
-  
-
-  <file_definition  type="one_file" >
-    <file id="atm_output_domain_transformation_zoom" output_freq="12ts" type="one_file" enabled="true">
-       <field field_ref="field2D" />
-       <field field_ref="field3D" />
-       <field id="field2D_zoom" field_ref="field2D" grid_ref="grid2D_zoom" />
-       <field id="field3D_zoom" field_ref="field3D" grid_ref="grid3D_zoom" />
-    </file>
-
-    <file id="atm_output_domain_transformation_extract" output_freq="12ts" type="one_file" enabled="true">
-       <field field_ref="field2D" />
-       <field field_ref="field3D" />
-       <field id="field2D_extract" field_ref="field2D" grid_ref="grid2D_extract" />
-       <field id="field3D_extract" field_ref="field3D" grid_ref="grid3D_extract" />
-    </file>
-
-    <file id="atm_output_domain_transformation_interpolate" output_freq="12ts" type="one_file" enabled="true">
-       <field field_ref="field2D" />
-       <field id="field2D_interpolate" field_ref="field2D" grid_ref="grid2D_square" />
-    </file>
-
-   <file id="atm_output_domain_transformation_reorder" output_freq="12ts" type="one_file" enabled="true">
-       <field field_ref="field2D" />
-       <field id="field2D_reorder" field_ref="field2D" grid_ref="grid2D_reorder" />
-    </file>
-
-   <file id="atm_output_domain_transformation_expand" output_freq="12ts" type="one_file" enabled="true">
-       <field id="field2D_expand" field_ref="field2D" grid_ref="grid2D_expand" />
-    </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>
-    
-    
+  
+
+<!-- test transform  -->
+
+
+  <axis_definition>
+    <axis id="axis_inverse" axis_ref="axis">
+      <inverse_axis />
+    </axis>
+
+    <axis id="axis_extract" >
+      <extract_axis begin="1" n="5" />
+    </axis>
+
+
+
+  </axis_definition>
+
+  <domain_definition>
+
+    <domain id="domain_extract">
+      <extract_domain ibegin="0" ni="36" jbegin="2" nj="3" />
+    </domain>
+ 
+ 
+    <domain id="domain_reorder" domain_ref="domain">
+      <reorder_domain invert_lat="true" shift_lon_fraction="0.5"/>
+    </domain>
+  
+    <domain id="domain_expand" >
+      <expand_domain order="1" type="edge"/>
+    </domain>
+  
+    <domain id="domain_interpolate" domain_ref="other_domain" >
+      <interpolate_domain detect_missing_value="false"/>
+    </domain>
+  
+    <domain id="domain_connect" >
+      <compute_connectivity_domain type="edge"/>
+    </domain>
+
+    <domain id="domain_recti" ni_glo="40" nj_glo="20" type="rectilinear" />
+
+  
+    <domain id="domain_expand_extract" >
+      <expand_domain order="1" type="edge"/>
+      <extract_domain ibegin="0" ni="38" jbegin="2" nj="3" />
+    </domain>
+  
+
+
+  </domain_definition>
+  
+  <grid_definition>
+ 
+    <grid id="grid1D_inverse">
+      <axis axis_ref="axis_inverse" />
+    </grid>
+  
+    <grid id="grid1D_extract">
+      <axis axis_ref="axis_extract" />
+    </grid>
+  
+
+    <grid id="grid2D_extract">
+      <domain domain_ref="domain_extract" />
+    </grid>
+  
+    <grid id="grid2D_zoom">
+      <domain domain_ref="domain_zoom" />
+    </grid>
+ 
+
+    <grid id="grid2D_reorder">
+      <domain domain_ref="domain_reorder" />
+    </grid>
+ 
+    <grid id="grid2D_expand">
+      <domain domain_ref="domain_expand" />
+    </grid>
+
+    <grid id="grid2D_interpolate">
+      <domain domain_ref="domain_interpolate" />
+    </grid>
+  
+
+    <grid id="grid2D_connect">
+      <domain domain_ref="domain_connect" />
+    </grid>
+
+
+    <grid id="grid2D_recti">
+      <domain domain_ref="domain_recti" >
+        <generate_rectilinear_domain lat_start="-85" lon_start="-175" />
+        <interpolate_domain detect_missing_value="false"/>
+      </domain>
+    </grid>
+ 
+    <grid id="grid2D_expand_extract">
+      <domain domain_ref="domain_expand_extract" />
+    </grid>
+  
+    <grid id="grid2D_extract_domain">  
+      <axis  n_glo="36">
+        <extract_domain position="2" direction="jDir" />
+      </axis>
+    </grid>
+
+    <grid id="grid3D_axis_interpolate">
+      <domain domain_ref="domain"/>
+      <axis n_glo="2" value="(0,1)[40000 20000]">
+        <interpolate_axis coordinate="pressure" />
+      </axis>
+    </grid> 
+ 
+    <grid id="grid3D_axis_interpolate_bis">
+      <domain domain_ref="domain"/>
+      <axis n_glo="2" value="(0,1)[40000 20000]">
+        <interpolate_axis />
+      </axis>
+    </grid> 
+
+
+  </grid_definition>
+ 
+ 
+  <field_definition>
+    <field_group id="fields_with_domain_transformation" operation="instant" >
+      <field id="field2D_extract"  field_ref="field2D" grid_ref="grid2D_extract"/>
+      <field id="field2D_reorder"  field_ref="field2D" grid_ref="grid2D_reorder" />
+      <field id="field2D_expand"   field_ref="field2D" grid_ref="grid2D_expand"/>
+      <field id="field2D_connect"  field_ref="field2D" grid_ref="grid2D_connect"/>
+      <field id="field2D_interpo"  field_ref="field2D" grid_ref="grid2D_interpolate"/>
+      <field id="field2D_recti"    field_ref="field2D" grid_ref="grid2D_recti"/>
+      <field id="field2D_exp_ext"  field_ref="field2D" grid_ref="grid2D_expand_extract"/>
+      <field id="field2D_reorder_ext"  field_ref="field2D_reorder" grid_ref="grid2D_extract"/>
+    </field_group>
+
+    <field_group id="fields_with_axis_transformation" operation="instant"  >
+      <field id="fieldZ_inverse"   field_ref="field_Z" grid_ref="grid1D_inverse"/>
+      <field id="fieldZ_extract"   field_ref="field_Z" grid_ref="grid1D_extract"/>
+      <field id="field2D_extract_domain"   field_ref="field2D" grid_ref="grid2D_extract_domain"/>
+      <field id="field3D_interpo"  field_ref="field3D" grid_ref="grid3D_axis_interpolate"/>
+      <field id="field3D_interpo_bis"  field_ref="field3D" grid_ref="grid3D_axis_interpolate_bis"/>
+    </field_group>
+
+  </field_definition>
+
+
+
+  <file_definition>
+    
+  <file id="atm_output_domain" output_freq="1ts" type="one_file" enabled="false">
+      <field field_ref="field2D_extract" />
+      <field field_ref="field2D_reorder" />
+      <field field_ref="field2D_expand" />
+      <field field_ref="field2D_interpo" />
+      <field field_ref="field2D_recti" />
+      <field field_ref="field2D_exp_ext" />
+      <field field_ref="field2D_reorder_ext" />
+      <field id="field2D"  />
+  </file>
+     
+  <file id="atm_output_axis" output_freq="4ts" type="one_file" enabled="false">
+      <field field_ref="fieldZ_inverse" enabled="false"  />
+      <field field_ref="fieldZ_extract"  enabled="true"/>
+      <field field_ref="field2D_extract_domain"  enabled="false"/>
+      <field id="field_Z"  enabled="true"/>
+      <field id="field2D"  enabled="true"/>
+  </file>
+     
+  <file id="atm_output_interpolate" output_freq="1ts" type="one_file" enabled="true">
+      <field field_ref="field3D_interpo" />
+      <field field_ref="field3D_interpo_bis" />
+      <field id="field3D"  />
+  </file>
+    
+
+
   </file_definition>
-  
+
+
+
   
 </context>
Index: XIOS/dev/dev_ym/XIOS_COUPLING/xios_test_suite/TEST_SUITE/test_scalar_algo/checkfile.def
===================================================================
--- XIOS/dev/dev_ym/XIOS_COUPLING/xios_test_suite/TEST_SUITE/test_scalar_algo/checkfile.def	(revision 2035)
+++ XIOS/dev/dev_ym/XIOS_COUPLING/xios_test_suite/TEST_SUITE/test_scalar_algo/checkfile.def	(revision 2036)
@@ -1,3 +1,1 @@
-atm_output_scalar_transformation_reduce_axis.nc
-atm_output_scalar_transformation_reduce_domain.nc
-atm_output_scalar_transformation_extract.nc
+atm_output_interpolate.nc
Index: XIOS/dev/dev_ym/XIOS_COUPLING/xios_test_suite/TEST_SUITE/test_scalar_algo/context_atm.xml
===================================================================
--- XIOS/dev/dev_ym/XIOS_COUPLING/xios_test_suite/TEST_SUITE/test_scalar_algo/context_atm.xml	(revision 2035)
+++ XIOS/dev/dev_ym/XIOS_COUPLING/xios_test_suite/TEST_SUITE/test_scalar_algo/context_atm.xml	(revision 2036)
@@ -3,12 +3,14 @@
   
   <calendar type="Gregorian" time_origin="1850-01-01 00:00:00" /> 
-  
-  <domain_definition>
-    <domain id="domain" />
-    <domain id="other_domain" />
-  </domain>
-  
+ 
+  <scalar_definition>
+    <scalar id="scalar" /> 
+    <scalar id="other_scalar" /> 
+  </scalar_definition>
+ 
+ 
   <axis_definition>
     <axis id="axis" />
+    <axis id="axis_str" n_glo="10" label="(0,9) [toto titi tata turlututu tito tati tuto tato tete tetu ] "/>
     <axis id="domain_X" />
     <axis id="domain_Y" />
@@ -19,35 +21,15 @@
     <axis id="other_domain_Y" />
     <axis id="other_ensemble" />
+
+    <axis id="axis_zoom" axis_ref="axis">
+        <zoom_axis begin="0" n="5"/>
+    </axis>
   </axis_definition>
 
-  <scalar_definition>
-    <scalar id="scalar" /> 
-    <scalar id="reduce_axis_max">
-      <reduce_axis operation="max"/>
-    </scalar>
-    <scalar id="reduce_axis_min">
-      <reduce_axis operation="min"/>
-    </scalar>
-    <scalar id="reduce_axis_sum">
-      <reduce_axis operation="sum"/>
-    </scalar>
-    <scalar id="reduce_axis_ave">
-      <reduce_axis operation="average"/>
-    </scalar>
-    <scalar id="reduce_domain_max">
-      <reduce_domain operation="max"/>
-    </scalar>
-    <scalar id="reduce_domain_min">
-      <reduce_domain operation="min"/>
-    </scalar>
-    <scalar id="reduce_domain_sum">
-      <reduce_domain operation="sum"/>
-    </scalar>
-    <scalar id="reduce_domain_ave">
-      <reduce_domain operation="average"/>
-    </scalar>
- 
-  
-  </scalar_definition>
+ 
+  <domain_definition>
+    <domain id="domain" />
+    <domain id="other_domain" />
+  </domain_definition>
   
   
@@ -61,5 +43,5 @@
     
     <grid id="grid2D">
-      <domain domain_ref="domain" />
+      <domain domain_ref="domain" id="grid2D_dom" />
     </grid>
 
@@ -67,67 +49,8 @@
       <axis axis_ref="axis" />
     </grid>
-      
-    <grid id="grid0D_reduce_axis_max">
-      <scalar scalar_ref="reduce_axis_max" />
-    </grid>
- 
-    <grid id="grid0D_reduce_axis_min">
-      <scalar scalar_ref="reduce_axis_min" />
-    </grid>
- 
-    <grid id="grid0D_reduce_axis_sum">
-      <scalar scalar_ref="reduce_axis_sum" />
-    </grid>
- 
-    <grid id="grid0D_reduce_axis_ave">
-      <scalar scalar_ref="reduce_axis_ave" />
-    </grid>
- 
-    <grid id="grid0D_extract_pos4">
-      <scalar id="extract_axis_to_scalar_pos4">
-        <extract_axis position="4" /> 
-      </scalar>
-    </grid>
-
-   <grid id="grid0D_extract_pos5">
-      <scalar id="extract_axis_to_scalar_pos5">
-        <extract_axis position="5" /> 
-      </axis>
-    </grid>
-
-    <grid id="grid2D_extract_pos4">
-      <domain domain_ref="domain" />
-      <scalar id="extract2D_axis_to_scalar_pos4">
-        <extract_axis position="4" /> 
-      </scalar>
-    </grid>
-    
-    <grid id="grid2D_extract_pos5">
-      <domain domain_ref="domain" />
-      <scalar id="extract2D_axis_to_scalar_pos5">
-        <extract_axis position="5" /> 
-      </scalar>
-    </grid>
-
- 
-    <grid id="grid2D_reduce_domain_max">
-      <scalar scalar_ref="reduce_domain_max" />
-    </grid>
- 
-    <grid id="grid2D_reduce_domain_min">
-      <scalar scalar_ref="reduce_domain_min" />
-    </grid>
- 
-    <grid id="grid2D_reduce_domain_sum">
-      <scalar scalar_ref="reduce_domain_sum" />
-    </grid>
- 
-    <grid id="grid2D_reduce_domain_ave">
-      <scalar scalar_ref="reduce_domain_ave" />
-    </grid>
- 
-
-
-
+
+    <grid id="grid0D">
+      <scalar scalar_ref="scalar" />
+    </grid>
 
     <grid id="grid_X">
@@ -177,4 +100,9 @@
     </grid>
 
+    <grid id="grid0D_W">
+      <scalar scalar_ref="scalar" />
+      <axis axis_ref="ensemble" />
+    </grid>
+
     <grid id="grid_XW">
       <axis axis_ref="domain_X" />
@@ -212,5 +140,4 @@
     </grid>
 
- 
  
     <grid id="other_grid3D">
@@ -220,9 +147,13 @@
     
     <grid id="other_grid2D">
-      <domain domain_ref="other_domain" />
+      <domain domain_ref="other_domain" id="test_dom" />
     </grid>
 
     <grid id="other_grid1D">
       <axis axis_ref="other_axis" />
+    </grid>
+
+    <grid id="other_grid0D">
+      <scalar scalar_ref="other_scalar" />
     </grid>
 
@@ -273,4 +204,9 @@
     </grid>
 
+    <grid id="other_grid0D_W">
+      <scalar scalar_ref="other_scalar" />
+      <axis axis_ref="other_ensemble" />
+    </grid>
+
     <grid id="other_grid_XW">
       <axis axis_ref="other_domain_X" />
@@ -308,15 +244,16 @@
     </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="field0D" grid_ref="grid0D"/>
     <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="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" />
@@ -327,11 +264,16 @@
     <field id="field_YZ" grid_ref="grid_YZ" />
 
-
+    <field id="field_zoom_vert" field_ref="field3D" grid_ref="grid_zoom_vert"  />
+    <field id="field_zoom_vert_sum" field_ref="field_zoom_vert" grid_ref="grid_zoom_vert_sum"  />
+
+
+    <field id="field0D_W" grid_ref="grid0D_W"/>
     <field id="field2D_W" grid_ref="grid2D_W"/>
     <field id="field3D_W" grid_ref="grid3D_W"  />
     <field id="pressure_W" grid_ref="grid3D_W"  />
+<!-- ym disable for now
     <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" />
@@ -343,10 +285,14 @@
 
 
-    <field id="other_field2D" grid_ref="other_grid2D"/>
+
+    <field id="other_field0D" grid_ref="other_grid0D"/>
+<!--    <field id="other_field2D" grid_ref="other_grid2D"/> -->
+    <field id="other_field2D" grid_ref="zoom1"/>
     <field id="other_field3D" grid_ref="other_grid3D"  />
     <field id="other_pressure" grid_ref="other_grid3D"  />
+<!-- ym disable for now
     <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" />
@@ -357,10 +303,12 @@
     <field id="other_field_YZ" grid_ref="other_grid_YZ" />
 
+    <field id="other_field0D_W" grid_ref="other_grid0D_W"/>
     <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"  />
+<!-- ym disable for now
     <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" />
@@ -370,88 +318,189 @@
     <field id="other_field_XZW" grid_ref="other_grid_XZW" />
     <field id="other_field_YZW" grid_ref="other_grid_YZW" />
-
-    
     
   </field_definition>
-
-
-
-<!-- implementation of specifics test case -->
-<!-- simplest test cases : output data to file -->
-
-  
-
-  <file_definition  type="one_file" >
-    <file id="atm_output_scalar_transformation_extract" output_freq="12ts" type="one_file" enabled="true" >
-       <field field_ref="field_Z" />
-       <field id="fieldZ_pos4" field_ref="field_Z" name="fieldZ_pos4" grid_ref="grid0D_extract_pos4" />
-       <field id="fieldZ_pos5" field_ref="field_Z" name="fieldZ_pos5" grid_ref="grid0D_extract_pos5" />
-       <field field_ref="field3D" />
-       <field id="field3D_pos4" enabled="true" field_ref="field3D" name="field3D_pos4" grid_ref="grid2D_extract_pos4" />
-       <field id="field3D_pos5" enabled="true" field_ref="field3D" name="field3D_pos5" grid_ref="grid2D_extract_pos5"/>
-    </file>
-
-    <file id="atm_output_scalar_transformation_reduce_axis" output_freq="4ts" type="one_file" enabled="true">
-       <field field_ref="field_Z" />
-       <field id="field_reduce_axis_max" field_ref="field_Z" name="field_reduce_axis_max" grid_ref="grid0D_reduce_axis_max" enabled="true"/>
-       <field id="field_reduce_axis_min" field_ref="field_Z" name="field_reduce_axis_min" grid_ref="grid0D_reduce_axis_min" enabled="true"/>
-       <field id="field_reduce_axis_sum" field_ref="field_Z" name="field_reduce_axis_sum" grid_ref="grid0D_reduce_axis_sum" enabled="true"/>
-       <field id="field_reduce_axis_ave" field_ref="field_Z" name="field_reduce_axis_ave" grid_ref="grid0D_reduce_axis_ave" enabled="true"/>
-    </file>
-   
-    <file id="atm_output_scalar_transformation_reduce_domain" output_freq="24ts" type="one_file" enabled="true">
-       <field field_ref="field2D" />
-       <field id="field_reduce_domain_max" field_ref="field2D" name="field_reduce_domain_max" grid_ref="grid2D_reduce_domain_max" />
-       <field id="field_reduce_domain_min" field_ref="field2D" name="field_reduce_domain_min" grid_ref="grid2D_reduce_domain_min" />
-       <field id="field_reduce_domain_sum" field_ref="field2D" name="field_reduce_domain_sum" grid_ref="grid2D_reduce_domain_sum" />
-       <field id="field_reduce_domain_ave" field_ref="field2D" name="field_reduce_domain_ave" grid_ref="grid2D_reduce_domain_ave" />
-    </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>
-    
-    
+  
+
+<!-- test transform  -->
+
+
+  <axis_definition>
+    <axis id="axis_inverse" axis_ref="axis">
+      <inverse_axis />
+    </axis>
+
+    <axis id="axis_extract" >
+      <extract_axis begin="1" n="5" />
+    </axis>
+
+
+
+  </axis_definition>
+
+  <domain_definition>
+
+    <domain id="domain_extract">
+      <extract_domain ibegin="0" ni="36" jbegin="2" nj="3" />
+    </domain>
+ 
+ 
+    <domain id="domain_reorder" domain_ref="domain">
+      <reorder_domain invert_lat="true" shift_lon_fraction="0.5"/>
+    </domain>
+  
+    <domain id="domain_expand" >
+      <expand_domain order="1" type="edge"/>
+    </domain>
+  
+    <domain id="domain_interpolate" domain_ref="other_domain" >
+      <interpolate_domain detect_missing_value="false"/>
+    </domain>
+  
+    <domain id="domain_connect" >
+      <compute_connectivity_domain type="edge"/>
+    </domain>
+
+    <domain id="domain_recti" ni_glo="40" nj_glo="20" type="rectilinear" />
+
+  
+    <domain id="domain_expand_extract" >
+      <expand_domain order="1" type="edge"/>
+      <extract_domain ibegin="0" ni="38" jbegin="2" nj="3" />
+    </domain>
+  
+
+
+  </domain_definition>
+  
+  <grid_definition>
+ 
+    <grid id="grid1D_inverse">
+      <axis axis_ref="axis_inverse" />
+    </grid>
+  
+    <grid id="grid1D_extract">
+      <axis axis_ref="axis_extract" />
+    </grid>
+  
+
+    <grid id="grid2D_extract">
+      <domain domain_ref="domain_extract" />
+    </grid>
+  
+    <grid id="grid2D_zoom">
+      <domain domain_ref="domain_zoom" />
+    </grid>
+ 
+
+    <grid id="grid2D_reorder">
+      <domain domain_ref="domain_reorder" />
+    </grid>
+ 
+    <grid id="grid2D_expand">
+      <domain domain_ref="domain_expand" />
+    </grid>
+
+    <grid id="grid2D_interpolate">
+      <domain domain_ref="domain_interpolate" />
+    </grid>
+  
+
+    <grid id="grid2D_connect">
+      <domain domain_ref="domain_connect" />
+    </grid>
+
+
+    <grid id="grid2D_recti">
+      <domain domain_ref="domain_recti" >
+        <generate_rectilinear_domain lat_start="-85" lon_start="-175" />
+        <interpolate_domain detect_missing_value="false"/>
+      </domain>
+    </grid>
+ 
+    <grid id="grid2D_expand_extract">
+      <domain domain_ref="domain_expand_extract" />
+    </grid>
+  
+    <grid id="grid2D_extract_domain">  
+      <axis  n_glo="36">
+        <extract_domain position="2" direction="jDir" />
+      </axis>
+    </grid>
+
+    <grid id="grid3D_axis_interpolate">
+      <domain domain_ref="domain"/>
+      <axis n_glo="2" value="(0,1)[40000 20000]">
+        <interpolate_axis coordinate="pressure" />
+      </axis>
+    </grid> 
+ 
+    <grid id="grid3D_axis_interpolate_bis">
+      <domain domain_ref="domain"/>
+      <axis n_glo="2" value="(0,1)[40000 20000]">
+        <interpolate_axis />
+      </axis>
+    </grid> 
+
+
+  </grid_definition>
+ 
+ 
+  <field_definition>
+    <field_group id="fields_with_domain_transformation" operation="instant" >
+      <field id="field2D_extract"  field_ref="field2D" grid_ref="grid2D_extract"/>
+      <field id="field2D_reorder"  field_ref="field2D" grid_ref="grid2D_reorder" />
+      <field id="field2D_expand"   field_ref="field2D" grid_ref="grid2D_expand"/>
+      <field id="field2D_connect"  field_ref="field2D" grid_ref="grid2D_connect"/>
+      <field id="field2D_interpo"  field_ref="field2D" grid_ref="grid2D_interpolate"/>
+      <field id="field2D_recti"    field_ref="field2D" grid_ref="grid2D_recti"/>
+      <field id="field2D_exp_ext"  field_ref="field2D" grid_ref="grid2D_expand_extract"/>
+      <field id="field2D_reorder_ext"  field_ref="field2D_reorder" grid_ref="grid2D_extract"/>
+    </field_group>
+
+    <field_group id="fields_with_axis_transformation" operation="instant"  >
+      <field id="fieldZ_inverse"   field_ref="field_Z" grid_ref="grid1D_inverse"/>
+      <field id="fieldZ_extract"   field_ref="field_Z" grid_ref="grid1D_extract"/>
+      <field id="field2D_extract_domain"   field_ref="field2D" grid_ref="grid2D_extract_domain"/>
+      <field id="field3D_interpo"  field_ref="field3D" grid_ref="grid3D_axis_interpolate"/>
+      <field id="field3D_interpo_bis"  field_ref="field3D" grid_ref="grid3D_axis_interpolate_bis"/>
+    </field_group>
+
+  </field_definition>
+
+
+
+  <file_definition>
+    
+  <file id="atm_output_domain" output_freq="1ts" type="one_file" enabled="false">
+      <field field_ref="field2D_extract" />
+      <field field_ref="field2D_reorder" />
+      <field field_ref="field2D_expand" />
+      <field field_ref="field2D_interpo" />
+      <field field_ref="field2D_recti" />
+      <field field_ref="field2D_exp_ext" />
+      <field field_ref="field2D_reorder_ext" />
+      <field id="field2D"  />
+  </file>
+     
+  <file id="atm_output_axis" output_freq="4ts" type="one_file" enabled="false">
+      <field field_ref="fieldZ_inverse" enabled="false"  />
+      <field field_ref="fieldZ_extract"  enabled="true"/>
+      <field field_ref="field2D_extract_domain"  enabled="false"/>
+      <field id="field_Z"  enabled="true"/>
+      <field id="field2D"  enabled="true"/>
+  </file>
+     
+  <file id="atm_output_interpolate" output_freq="1ts" type="one_file" enabled="true">
+      <field field_ref="field3D_interpo" />
+      <field field_ref="field3D_interpo_bis" />
+      <field id="field3D"  />
+  </file>
+    
+
+
   </file_definition>
-  
+
+
+
   
 </context>
