Index: /XIOS/dev/branch_openmp/bld.cfg
===================================================================
--- /XIOS/dev/branch_openmp/bld.cfg	(revision 1208)
+++ /XIOS/dev/branch_openmp/bld.cfg	(revision 1209)
@@ -34,10 +34,18 @@
 #bld::target generate_fortran_interface.exe 
 #bld::target xios_server.exe 
-bld::target test_remap.exe
 #bld::target test_regular.exe
 #bld::target test_expand_domain.exe
-#bld::target test_new_features.exe test_unstruct_complete.exe 
-bld::target test_omp.exe test_complete_omp.exe test_remap_omp.exe test_unstruct_omp.exe
-#bld::target test_client.exe test_complete.exe #test_xios2_cmip6.exe
+#bld::target test_new_features.exe 
+#bld::target test_unstruct_complete.exe 
+bld::target test_omp.exe 
+bld::target test_complete_omp.exe 
+bld::target test_remap_omp.exe 
+bld::target test_unstruct_omp.exe
+bld::target test_netcdf_omp.exe
+#bld::target test_client.exe 
+#bld::target test_complete.exe
+#bld::target test_remap.exe
+#bld::target test_unstruct.exe
+#bld::target test_xios2_cmip6.exe
 #bld::target test_connectivity_expand.exe
 #bld::target toy_cmip6.exe
Index: /XIOS/dev/branch_openmp/extern/src_ep_dev/ep_gatherv.cpp
===================================================================
--- /XIOS/dev/branch_openmp/extern/src_ep_dev/ep_gatherv.cpp	(revision 1208)
+++ /XIOS/dev/branch_openmp/extern/src_ep_dev/ep_gatherv.cpp	(revision 1209)
@@ -70,5 +70,5 @@
     }
 
-    for(int j=0; j<count; j+=BUFFER_SIZE)
+    for(int j=0; count!=0? j<count: j<count+1; j+=BUFFER_SIZE)
     {
       for(int k=1; k<num_ep; k++)
@@ -78,5 +78,5 @@
           #pragma omp critical (write_to_buffer)
           {
-            copy(send_buf+j, send_buf + min(BUFFER_SIZE, count-j) , buffer);
+            if(count!=0) copy(send_buf+j, send_buf + min(BUFFER_SIZE, count-j) , buffer);
             #pragma omp flush
           }
@@ -114,5 +114,5 @@
     }
 
-    for(int j=0; j<count; j+=BUFFER_SIZE)
+    for(int j=0; count!=0? j<count: j<count+1; j+=BUFFER_SIZE)
     {
       for(int k=1; k<num_ep; k++)
@@ -122,5 +122,5 @@
           #pragma omp critical (write_to_buffer)
           {
-            copy(send_buf+j, send_buf + min(BUFFER_SIZE, count-j) , buffer);
+            if(count!=0) copy(send_buf+j, send_buf + min(BUFFER_SIZE, count-j) , buffer);
             #pragma omp flush
           }
@@ -158,5 +158,5 @@
     }
 
-    for(int j=0; j<count; j+=BUFFER_SIZE)
+    for(int j=0; count!=0? j<count: j<count+1; j+=BUFFER_SIZE)
     {
       for(int k=1; k<num_ep; k++)
@@ -166,5 +166,5 @@
           #pragma omp critical (write_to_buffer)
           {
-            copy(send_buf+j, send_buf + min(BUFFER_SIZE, count-j) , buffer);
+            if(count!=0) copy(send_buf+j, send_buf + min(BUFFER_SIZE, count-j) , buffer);
             #pragma omp flush
           }
@@ -202,5 +202,5 @@
     }
 
-    for(int j=0; j<count; j+=BUFFER_SIZE)
+    for(int j=0; count!=0? j<count: j<count+1; j+=BUFFER_SIZE)
     {
       for(int k=1; k<num_ep; k++)
@@ -210,5 +210,5 @@
           #pragma omp critical (write_to_buffer)
           {
-            copy(send_buf+j, send_buf + min(BUFFER_SIZE, count-j) , buffer);
+            if(count!=0)copy(send_buf+j, send_buf + min(BUFFER_SIZE, count-j) , buffer);
             #pragma omp flush
           }
@@ -246,5 +246,5 @@
     }
 
-    for(int j=0; j<count; j+=BUFFER_SIZE)
+    for(int j=0; count!=0? j<count: j<count+1; j+=BUFFER_SIZE)
     {
       for(int k=1; k<num_ep; k++)
@@ -254,5 +254,5 @@
           #pragma omp critical (write_to_buffer)
           {
-            copy(send_buf+j, send_buf + min(BUFFER_SIZE, count-j) , buffer);
+            if(count!=0) copy(send_buf+j, send_buf + min(BUFFER_SIZE, count-j) , buffer);
             #pragma omp flush
           }
@@ -290,5 +290,5 @@
     }
 
-    for(int j=0; j<count; j+=BUFFER_SIZE)
+    for(int j=0; count!=0? j<count: j<count+1; j+=BUFFER_SIZE)
     {
       for(int k=1; k<num_ep; k++)
@@ -298,5 +298,5 @@
           #pragma omp critical (write_to_buffer)
           {
-            copy(send_buf+j, send_buf + min(BUFFER_SIZE, count-j) , buffer);
+            if(count!=0) copy(send_buf+j, send_buf + min(BUFFER_SIZE, count-j) , buffer);
             #pragma omp flush
           }
@@ -520,12 +520,5 @@
     num_ep = comm.ep_comm_ptr->size_rank_info[1].second;
     mpi_size = comm.ep_comm_ptr->size_rank_info[2].second;
-
-    //printf("size of recvbuf = %lu\n", sizeof(recvbuf));
-    //printf("size of (char*)recvbuf = %lu\n", sizeof((char*)recvbuf));
     
-    if(ep_size == mpi_size) 
-      return ::MPI_Allgatherv(sendbuf, sendcount, static_cast< ::MPI_Datatype>(datatype), recvbuf, recvcounts, displs,
-                              static_cast< ::MPI_Datatype>(datatype), static_cast< ::MPI_Comm>(comm.mpi_comm));
-   
 
     int recv_plus_displs[ep_size];
Index: /XIOS/dev/branch_openmp/inputs/Unstruct/iodef.xml
===================================================================
--- /XIOS/dev/branch_openmp/inputs/Unstruct/iodef.xml	(revision 1208)
+++ /XIOS/dev/branch_openmp/inputs/Unstruct/iodef.xml	(revision 1209)
@@ -15,5 +15,5 @@
 <!--        <field field_ref="field_A_expand" name="field"/> -->
         <field field_ref="field_A_srf" name="field_A"/>
-        <field field_ref="field_A_srf" name="field_rect" grid_ref="grid_rect" enabled=".FALSE." />
+        <field field_ref="field_A_srf" name="field_rect" grid_ref="grid_rect" enabled=".TRUE." />
         <field field_ref="field_A_srf" name="field_rect2" grid_ref="grid_rect2" enabled=".TRUE." />
         <field field_ref="field_A_srf" name="field_rect3" grid_ref="grid_rect3" enabled=".TRUE."/>
@@ -40,5 +40,5 @@
      </domain>
 
-     <domain id="dst_domain_regular_pole" ni_glo="90" nj_glo="45" type="rectilinear">
+     <domain id="dst_domain_regular_pole" ni_glo="80" nj_glo="40" type="rectilinear">
        <generate_rectilinear_domain id="domain_regular_pole"/>
        <interpolate_domain write_weight="false" order="1" renormalize="true"/>       
@@ -53,5 +53,5 @@
        <generate_rectilinear_domain id="domain_regular_pole3"/>
        <interpolate_domain write_weight="false" order="1" renormalize="true"/>       
-       <zoom_domain ibegin="0" ni="65" jbegin="0" nj="65" /> 
+       <zoom_domain ibegin="0" ni="70" jbegin="0" nj="70" /> 
      </domain>
 
Index: /XIOS/dev/branch_openmp/src/client_client_dht_template_impl.hpp
===================================================================
--- /XIOS/dev/branch_openmp/src/client_client_dht_template_impl.hpp	(revision 1208)
+++ /XIOS/dev/branch_openmp/src/client_client_dht_template_impl.hpp	(revision 1209)
@@ -105,5 +105,5 @@
   int clientRank;
   MPI_Comm_rank(commLevel,&clientRank);
-  ep_lib::MPI_Barrier(commLevel);
+  //ep_lib::MPI_Barrier(commLevel);
   int groupRankBegin = this->getGroupBegin()[level];
   int nbClient = this->getNbInGroup()[level];
@@ -434,5 +434,5 @@
   MPI_Comm_rank(commLevel,&clientRank);
   computeSendRecvRank(level, clientRank);
-  ep_lib::MPI_Barrier(commLevel);
+  //ep_lib::MPI_Barrier(commLevel);
 
   int groupRankBegin = this->getGroupBegin()[level];
Index: /XIOS/dev/branch_openmp/src/node/field.cpp
===================================================================
--- /XIOS/dev/branch_openmp/src/node/field.cpp	(revision 1208)
+++ /XIOS/dev/branch_openmp/src/node/field.cpp	(revision 1209)
@@ -26,5 +26,5 @@
 namespace xios{
 
-   /// ////////////////////// DÃ©finitions ////////////////////// ///
+   /// ////////////////////// Dfinitions ////////////////////// ///
 
    CField::CField(void)
@@ -716,8 +716,5 @@
      if (context->hasClient)
      {
-       printf("proc %d begein transformation\n", myRank);
        solveTransformedGrid();
-       printf("proc %d end transformation\n", myRank);
-       MPI_Barrier(context->client->intraComm);
      }
 
Index: /XIOS/dev/branch_openmp/src/test/test_unstruct_omp.f90
===================================================================
--- /XIOS/dev/branch_openmp/src/test/test_unstruct_omp.f90	(revision 1208)
+++ /XIOS/dev/branch_openmp/src/test/test_unstruct_omp.f90	(revision 1209)
@@ -55,5 +55,5 @@
   if(mpi_rank < mpi_size-2) then
 
-  !$omp parallel default(private) firstprivate(dtime)
+  !$omp parallel default(firstprivate) firstprivate(dtime)
 
   CALL xios_initialize(id,return_comm=comm)
@@ -79,4 +79,12 @@
   ALLOCATE(field_A_glo(ncell_glo,llm))
   ALLOCATE(mask_glo(ncell_glo))
+
+  lon_glo(:) = 0
+  lat_glo(:) = 0
+  bounds_lon_glo(:,:) = 0
+  bounds_lat_glo(:,:) = 0
+  i_index_glo(:) = 0
+  field_A_glo(:,:) = 0
+  mask_glo(:) = 0
 
   ind=0
@@ -181,4 +189,14 @@
   ALLOCATE(mask(ncell))
   ALLOCATE(n_local(ncell))
+ 
+  i_index(:)=0
+  lon(:)=0
+  lat(:)=0
+  bounds_lon(:,:)=0
+  bounds_lat(:,:)=0
+  field_A_srf(:,:)=0
+  mask(:)=0
+  n_local(:)=0
+
   ncell=0
   data_n_index=0
@@ -203,4 +221,8 @@
   ALLOCATE(field_A_compressed(data_n_index,llm))
   ALLOCATE(data_i_index(data_n_index))
+  field_A_compressed(:,:)=0
+  data_i_index(:)=0
+
+
   data_n_index=0
   DO ind=1,ncell
