Index: /XIOS/dev/branch_yushan/bld.cfg
===================================================================
--- /XIOS/dev/branch_yushan/bld.cfg	(revision 1066)
+++ /XIOS/dev/branch_yushan/bld.cfg	(revision 1067)
@@ -36,5 +36,5 @@
 #test_remap.exe
 #bld::target test_new_features.exe test_unstruct_complete.exe 
-bld::target test_client.exe #test_complete.exe
+bld::target test_client.exe test_complete.exe
 bld::exe_dep
 
Index: /XIOS/dev/branch_yushan/extern/src_ep_dev/ep_dup.cpp
===================================================================
--- /XIOS/dev/branch_yushan/extern/src_ep_dev/ep_dup.cpp	(revision 1066)
+++ /XIOS/dev/branch_yushan/extern/src_ep_dev/ep_dup.cpp	(revision 1067)
@@ -5,54 +5,4 @@
 namespace ep_lib
 {
-
-
-
-  int MPI_Comm_dup_dev(MPI_Comm comm, MPI_Comm *newcomm)
-  {
-    if(!comm.is_ep)
-    {
-      Debug("Comm_dup MPI\n");
-      newcomm = new MPI_Comm;
-      newcomm->is_ep = comm.is_ep;
-
-      ::MPI_Comm input = static_cast< ::MPI_Comm>(comm.mpi_comm);
-      ::MPI_Comm output;
-
-      
-      ::MPI_Comm_dup(input, &output);
-
-      newcomm->mpi_comm = output;
-
-      return 0;
-    }
-
-    if(!comm.mpi_comm) return 0;
-
-
-    int my_rank = comm.ep_comm_ptr->size_rank_info[1].first;
-    int num_ep  = comm.ep_comm_ptr->size_rank_info[1].second;
-
-
-    if(0 == my_rank)
-    {
-      MPI_Info info;
-      ::MPI_Comm mpi_dup;
-
-      ::MPI_Comm in_comm = static_cast< ::MPI_Comm>(comm.mpi_comm);
-
-      ::MPI_Comm_dup(in_comm, &mpi_dup);
-
-      MPI_Comm_create_endpoints(mpi_dup, num_ep, info, newcomm);
-      comm.ep_comm_ptr->comm_list->mem_bridge = newcomm;
-    }
-
-    MPI_Barrier_local(comm);
-
-    newcomm = &(comm.ep_comm_ptr->comm_list->mem_bridge[my_rank]);
-
-    return MPI_SUCCESS;
-  }
-
-
 
   int MPI_Comm_dup(MPI_Comm comm, MPI_Comm *newcomm)
Index: /XIOS/dev/branch_yushan/extern/src_ep_dev/ep_fortran.cpp
===================================================================
--- /XIOS/dev/branch_yushan/extern/src_ep_dev/ep_fortran.cpp	(revision 1066)
+++ /XIOS/dev/branch_yushan/extern/src_ep_dev/ep_fortran.cpp	(revision 1067)
@@ -1,7 +1,8 @@
-//#include "ep_lib.hpp"
+#include "ep_lib.hpp"
 #include "ep_lib_fortran.hpp"
 #include <mpi.h>
 #include <map>
 #include <utility>
+#include "ep_declaration.hpp"
 
 #ifdef _intelmpi
@@ -26,5 +27,5 @@
     fint = ::MPI_Comm_c2f(static_cast< ::MPI_Comm>(comm.mpi_comm));
     #endif
-    std::map<std::pair<int, int>, MPI_Comm  > ::iterator it;
+    std::map<std::pair<int, int>, MPI_Comm > ::iterator it;
     
     it = fc_comm_map.find(std::make_pair(fint, omp_get_thread_num()));
@@ -32,5 +33,5 @@
     {
       fc_comm_map.insert(std::make_pair( std::make_pair( fint, omp_get_thread_num()) , comm));
-      //printf("EP_Comm_c2f : MAP insert: %d, %d, %p\n", fint, omp_get_thread_num(), &comm);
+      printf("EP_Comm_c2f : MAP insert: %d, %d, %p\n", fint, omp_get_thread_num(), &comm);
     }
     
@@ -45,5 +46,5 @@
     
     
-    std::map<std::pair<int, int>, MPI_Comm  > ::iterator it;
+    std::map<std::pair<int, int>, MPI_Comm > ::iterator it;
     
     it = fc_comm_map.find(std::make_pair(comm, omp_get_thread_num()));
@@ -51,6 +52,6 @@
     {
       MPI_Comm comm_ptr;
-      comm_ptr =  it->second;
-      //printf("EP_Comm_f2c : MAP find: %d, %d, %p\n", it->first.first, it->first.second, &comm_ptr);
+      comm_ptr = it->second;
+      printf("EP_Comm_f2c : MAP find: %d, %d, %p\n", it->first.first, it->first.second, it->second);
       return  comm_ptr;
     }
@@ -58,5 +59,19 @@
     {      
       MPI_Comm return_comm;
-      return_comm.mpi_comm = ::MPI_Comm_f2c(comm);
+      if(omp_get_thread_num() == 0)
+      {
+        ::MPI_Comm base_comm = ::MPI_Comm_f2c(comm);
+        if(base_comm != MPI_COMM_NULL_STD)
+        {
+          int num_ep = omp_get_num_threads();
+          MPI_Comm *new_comm;
+          MPI_Info info;
+          MPI_Comm_create_endpoints(base_comm, num_ep, info, new_comm);
+          return_comm = new_comm[omp_get_thread_num()];
+        }
+        return MPI_COMM_NULL;
+      }
+      
+      
       return return_comm;
     }
@@ -122,5 +137,5 @@
     fint = ::MPI_Comm_c2f(static_cast< ::MPI_Comm>(comm.mpi_comm));
     
-    std::map<std::pair<int, int>, MPI_Comm  > ::iterator it;
+    std::map<std::pair<int, int>, MPI_Comm > ::iterator it;
     
     it = fc_comm_map.find(std::make_pair(fint, omp_get_thread_num()));
@@ -140,5 +155,5 @@
     
     
-    std::map<std::pair<int, int>, MPI_Comm  > ::iterator it;
+    std::map<std::pair<int, int>, MPI_Comm > ::iterator it;
     
     it = fc_comm_map.find(std::make_pair(comm, omp_get_thread_num()));
@@ -147,5 +162,5 @@
       MPI_Comm comm_ptr;
       comm_ptr =  it->second;
-      printf("MAP find: %d, %d, %p\n", it->first.first, it->first.second, &comm_ptr);
+      printf("MAP find: %d, %d, %p\n", it->first.first, it->first.second, comm_ptr);
       return  comm_ptr;
     }
Index: /XIOS/dev/branch_yushan/extern/src_ep_dev/ep_intercomm_kernel.cpp
===================================================================
--- /XIOS/dev/branch_yushan/extern/src_ep_dev/ep_intercomm_kernel.cpp	(revision 1066)
+++ /XIOS/dev/branch_yushan/extern/src_ep_dev/ep_intercomm_kernel.cpp	(revision 1067)
@@ -351,4 +351,5 @@
         #pragma omp critical (write_to_tag_list)
         tag_list.push_back(make_pair( make_pair(tag, min(leader_info[0], leader_info[1])) , ep_intercomm));
+        printf("tag_list size = %lu\n", tag_list.size());
       }
 
@@ -419,4 +420,5 @@
             *newintercomm =  iter->second[my_position];
             found = true;
+            tag_list.erase(iter);
             break;
           }
@@ -426,4 +428,15 @@
 
     MPI_Barrier_local(local_comm);
+    // if(is_proc_master)
+    // {
+    //   for(std::list<std::pair < std::pair<int,int>, MPI_Comm* > >::iterator iter = tag_list.begin(); iter!=tag_list.end(); iter++)
+    //   {
+    //     if((*iter).first == make_pair(tag, min(leader_info[0], leader_info[1])))
+    //     {
+    //       tag_list.erase(iter);
+    //       break;
+    //     }
+    //   }
+    // }
 
     int intercomm_ep_rank, intercomm_ep_rank_loc, intercomm_mpi_rank;
@@ -674,4 +687,5 @@
             *newintercomm =  iter->second[my_position];
             found = true;
+            tag_list.erase(iter);
             break;
           }
@@ -679,4 +693,15 @@
       }
     }
+
+    // if(leader_rank_in_peer[0] < leader_rank_in_peer[1])
+    // {
+    //   for(std::list<std::pair < std::pair<int,int>, MPI_Comm* > >::iterator iter = tag_list.begin(); iter!=tag_list.end(); iter++)
+    //     {
+    //       if((*iter).first == make_pair(tag_label[0], tag_label[1]))
+    //       {
+    //         tag_list.erase(iter);
+    //       }
+    //     }
+    // }
 
 
Index: /XIOS/dev/branch_yushan/extern/src_ep_dev/ep_intercomm_world.cpp
===================================================================
--- /XIOS/dev/branch_yushan/extern/src_ep_dev/ep_intercomm_world.cpp	(revision 1066)
+++ /XIOS/dev/branch_yushan/extern/src_ep_dev/ep_intercomm_world.cpp	(revision 1067)
@@ -417,4 +417,5 @@
 
             found = true;
+            tag_list.erase(iter);
             break;
           }
@@ -424,4 +425,17 @@
 
     MPI_Barrier_local(local_comm);
+
+    // if(is_proc_master)
+    // {
+    //   for(std::list<std::pair < std::pair<int,int>, MPI_Comm* > >::iterator iter = tag_list.begin(); iter!=tag_list.end(); iter++)
+    //   {
+    //     if((*iter).first == make_pair(tag, min(leader_info[0], leader_info[1])))
+    //     {
+    //       tag_list.erase(iter);
+    //     }
+    //   }
+    // }
+
+    
 
     int intercomm_ep_rank, intercomm_ep_rank_loc, intercomm_mpi_rank;
@@ -920,4 +934,5 @@
 
             found = true;
+            tag_list.erase(iter);
             break;
           }
@@ -927,4 +942,15 @@
 
     MPI_Barrier_local(local_comm);
+
+    // if(is_proc_master)
+    // {
+    //   for(std::list<std::pair < std::pair<int,int>, MPI_Comm* > >::iterator iter = tag_list.begin(); iter!=tag_list.end(); iter++)
+    //   {
+    //     if((*iter).first == make_pair(tag, min(leader_info[0], leader_info[1])))
+    //     {
+    //       tag_list.erase(iter);
+    //     }
+    //   }
+    // }
 
     int intercomm_ep_rank, intercomm_ep_rank_loc, intercomm_mpi_rank;
Index: /XIOS/dev/branch_yushan/extern/src_ep_dev/ep_message.cpp
===================================================================
--- /XIOS/dev/branch_yushan/extern/src_ep_dev/ep_message.cpp	(revision 1066)
+++ /XIOS/dev/branch_yushan/extern/src_ep_dev/ep_message.cpp	(revision 1067)
@@ -24,5 +24,5 @@
 
     if(comm.is_intercomm)
-	  {
+    {
       return  Message_Check_intercomm(comm);
     }
Index: /XIOS/dev/branch_yushan/extern/src_ep_dev/ep_test.cpp
===================================================================
--- /XIOS/dev/branch_yushan/extern/src_ep_dev/ep_test.cpp	(revision 1066)
+++ /XIOS/dev/branch_yushan/extern/src_ep_dev/ep_test.cpp	(revision 1067)
@@ -65,6 +65,6 @@
         status->ep_tag = request->ep_tag;
         status->ep_datatype = request->ep_datatype;
-        int count;
-        MPI_Get_count(status, request->ep_datatype, &count);
+        //int count;
+        //MPI_Get_count(status, request->ep_datatype, &count);
         //check_sum_recv(request->buf, count, request->ep_datatype, request->ep_src, request->ep_tag, request->comm, 2);
       }
Index: /XIOS/dev/branch_yushan/extern/src_ep_dev/ep_type.hpp
===================================================================
--- /XIOS/dev/branch_yushan/extern/src_ep_dev/ep_type.hpp	(revision 1066)
+++ /XIOS/dev/branch_yushan/extern/src_ep_dev/ep_type.hpp	(revision 1067)
@@ -282,5 +282,5 @@
     MPI_Comm()
     {
-      is_ep = false;
+      is_ep = true;
       is_intercomm = false;
       my_buffer = NULL;
@@ -338,4 +338,5 @@
       bool c = mpi_comm != right.mpi_comm;
       bool d = is_ep ? ep_comm_ptr != right.ep_comm_ptr : true;
+
       return a||b||c||d;
     }
@@ -424,5 +425,5 @@
   static std::list<std::pair<std::pair<int, int>, MPI_Comm * > > tag_list;
 
-  static std::map<std::pair<int, int>, MPI_Comm  >  fc_comm_map;
+  static std::map<std::pair<int, int>, MPI_Comm >  fc_comm_map;
             //    <MPI_Fint,thread_num>   EP_Comm
 
Index: /XIOS/dev/branch_yushan/extern/src_ep_dev/ep_wait.cpp
===================================================================
--- /XIOS/dev/branch_yushan/extern/src_ep_dev/ep_wait.cpp	(revision 1066)
+++ /XIOS/dev/branch_yushan/extern/src_ep_dev/ep_wait.cpp	(revision 1067)
@@ -68,6 +68,6 @@
       status->ep_datatype = request->ep_datatype;
 
-      int count;
-      MPI_Get_count(status, request->ep_datatype, &count);
+      //int count;
+      //MPI_Get_count(status, request->ep_datatype, &count);
       //check_sum_recv(request->buf, count, request->ep_datatype, request->ep_src, request->ep_tag, request->comm, 2);
     }
@@ -104,6 +104,6 @@
             if(array_of_requests[i].type == 3)
             {
-              int check_count;
-              MPI_Get_count(&array_of_statuses[i], array_of_requests[i].ep_datatype, &check_count);
+              //int check_count;
+              //MPI_Get_count(&array_of_statuses[i], array_of_requests[i].ep_datatype, &check_count);
               //check_sum_recv(array_of_requests[i].buf, count, array_of_requests[i].ep_datatype, array_of_requests[i].ep_src, array_of_requests[i].ep_tag, array_of_requests[i].comm, 2);
             }
Index: /XIOS/dev/branch_yushan/src/client.cpp
===================================================================
--- /XIOS/dev/branch_yushan/src/client.cpp	(revision 1066)
+++ /XIOS/dev/branch_yushan/src/client.cpp	(revision 1067)
@@ -51,5 +51,5 @@
           int myColor ;
           int i,c ;
-          MPI_Comm newComm ;
+          //MPI_Comm newComm ;
 
           MPI_Comm_size(CXios::globalComm,&size) ;
@@ -187,25 +187,20 @@
         MPI_Send(buff,buffer.count(),MPI_CHAR,serverLeader,1,CXios::globalComm) ;
         delete [] buff ;
-        
-        //printf("====== Client: begin context_init \n");
-      
+              
 
         MPI_Intercomm_create(contextComm,0,CXios::globalComm,serverLeader,10+globalRank,&contextInterComm) ;
         info(10)<<"Register new Context : "<<id<<endl ;
-        
-        //cout<<"Register new Context : "<<id<<endl ;
-              
-
-        // MPI_Comm inter ;
-        // MPI_Intercomm_merge(contextInterComm,0,&inter) ;
-        // MPI_Barrier(inter) ;
+                      
+
+        MPI_Comm inter ;
+        MPI_Intercomm_merge(contextInterComm,0,&inter) ;
+        MPI_Barrier(inter) ;
         
         
         context->initClient(contextComm,contextInterComm) ;
         
-        //printf("====== Client: context_init OK\n");
 
         contextInterComms.push_back(contextInterComm);
-        // MPI_Comm_free(&inter);
+        MPI_Comm_free(&inter);
       }
       else
Index: /XIOS/dev/branch_yushan/src/context_server.cpp
===================================================================
--- /XIOS/dev/branch_yushan/src/context_server.cpp	(revision 1066)
+++ /XIOS/dev/branch_yushan/src/context_server.cpp	(revision 1067)
@@ -80,5 +80,5 @@
       {
         traceOff();
-        MPI_Iprobe(rank,20,interComm,&flag,&status);
+        ep_lib::MPI_Iprobe(rank,20,interComm,&flag,&status);
         traceOn();
         if (flag==true)
@@ -89,5 +89,5 @@
           {
             StdSize buffSize = 0;
-            MPI_Recv(&buffSize, 1, MPI_LONG, rank, 20, interComm, &status);
+            ep_lib::MPI_Recv(&buffSize, 1, MPI_LONG, rank, 20, interComm, &status);
             mapBufferSize_.insert(std::make_pair(rank, buffSize));
             it=(buffers.insert(pair<int,CServerBuffer*>(rank,new CServerBuffer(buffSize)))).first;
@@ -97,5 +97,5 @@
           {
             
-            MPI_Get_count(&status,MPI_CHAR,&count);
+            ep_lib::MPI_Get_count(&status,MPI_CHAR,&count);
             if (it->second->isBufferFree(count))
             {
@@ -121,5 +121,4 @@
     ep_lib::MPI_Status status;
 
-    //printf("enter checkPendingRequest\n");
     if(!pendingRequest.empty())
     for(it=pendingRequest.begin();it!=pendingRequest.end();++it)
@@ -127,10 +126,10 @@
       rank=it->first;
       traceOff();
-      MPI_Test(& it->second, &flag, &status);
+      ep_lib::MPI_Test(& it->second, &flag, &status);
       traceOn();
       if (flag==true)
       {
         recvRequest.push_back(rank);
-        MPI_Get_count(&status,MPI_CHAR,&count);
+        ep_lib::MPI_Get_count(&status,MPI_CHAR,&count);
         processRequest(rank,bufferRequest[rank],count);
       }
@@ -149,6 +148,7 @@
 
     CBufferIn buffer(buff,count);
-    char* startBuffer,endBuffer;
-    int size, offset;
+    //char* startBuffer,endBuffer;
+    int size;
+    //int offset;
     size_t timeLine;
     map<size_t,CEventServer*>::iterator it;
Index: /XIOS/dev/branch_yushan/src/interface/c/icdata.cpp
===================================================================
--- /XIOS/dev/branch_yushan/src/interface/c/icdata.cpp	(revision 1066)
+++ /XIOS/dev/branch_yushan/src/interface/c/icdata.cpp	(revision 1067)
@@ -1,4 +1,4 @@
 /* ************************************************************************** *
- *      Copyright Â© IPSL/LSCE, xios, Avril 2010 - Octobre 2011         *
+ *      Copyright  IPSL/LSCE, xios, Avril 2010 - Octobre 2011         *
  * ************************************************************************** */
 
@@ -29,7 +29,7 @@
 extern "C"
 {
-// /////////////////////////////// DÃ©finitions ////////////////////////////// //
-
-   // ----------------------- RedÃ©finition de types ----------------------------
+// /////////////////////////////// Dfinitions ////////////////////////////// //
+
+   // ----------------------- Redfinition de types ----------------------------
 
    typedef enum { NETCDF4 = 0 } XFileType;
@@ -37,5 +37,5 @@
    typedef xios::CContext* XContextPtr;
 
-   // -------------------- Traitement des donnÃ©es ------------------------------
+   // -------------------- Traitement des donnes ------------------------------
 
    // This function is not exported to the public Fortran interface,
@@ -88,8 +88,11 @@
      CTimer::get("XIOS init context").resume();
      comm = ep_lib::EP_Comm_f2c(static_cast< int >(*f_comm));
+
+     //ep_lib::MPI_Comm ctx_comm;
+     //ep_lib::MPI_Comm_dup(comm, &ctx_comm);
     
-     CClient::registerContext(str, comm);
+     CClient::registerContext(str,comm);
      
-     //printf("icdata.cpp: client register context OK\n");
+     printf("icdata.cpp: client register context %s : %p\n", context_id, &comm);
      
      CTimer::get("XIOS init context").suspend();
@@ -384,5 +387,5 @@
 
 
-   // ---------------------- Ecriture des donnÃ©es ------------------------------
+   // ---------------------- Ecriture des donnes ------------------------------
 
    void cxios_write_data_k80(const char* fieldid, int fieldid_size, double* data_k8, int data_Xsize)
@@ -719,5 +722,5 @@
     }
 
-   // ---------------------- Lecture des donnÃ©es ------------------------------
+   // ---------------------- Lecture des donnes ------------------------------
 
    void cxios_read_data_k80(const char* fieldid, int fieldid_size, double* data_k8, int data_Xsize)
Index: /XIOS/dev/branch_yushan/src/node/context.cpp
===================================================================
--- /XIOS/dev/branch_yushan/src/node/context.cpp	(revision 1066)
+++ /XIOS/dev/branch_yushan/src/node/context.cpp	(revision 1067)
@@ -261,5 +261,4 @@
        comms.push_back(interCommServer);
        
-       printf("comm_dup OK\n");
      }
      server = new CContextServer(this,intraCommServer,interCommServer);
Index: /XIOS/dev/branch_yushan/src/server.cpp
===================================================================
--- /XIOS/dev/branch_yushan/src/server.cpp	(revision 1066)
+++ /XIOS/dev/branch_yushan/src/server.cpp	(revision 1067)
@@ -222,5 +222,4 @@
            {
               MPI_Recv(&msg,1,MPI_INT,0,0,*it,&status) ;
-              printf(" CServer : Receive finalize sign from client 0\n");
               info(20)<<" CServer : Receive client finalize"<<endl ;
 
@@ -309,5 +308,4 @@
            MPI_Get_count(&status,MPI_CHAR,&count) ;
            recvContextMessage(buffer,count) ;
-           printf("listerContext register context OK, interComm size = %lu\n", interComm.size());
            
            delete [] buffer ;
@@ -353,5 +351,4 @@
          MPI_Waitall(size-1,requests,status) ;
          registerContext(buff,count,it->second.leaderRank) ;
-         printf("recvContextMessage register context OK\n");
 
          recvContextId.erase(it) ;
@@ -395,5 +392,4 @@
            MPI_Get_count(&status,MPI_CHAR,&count) ;
            registerContext(buffer,count) ;
-           printf("listenRootContext register context OK, interComm size = %lu\n", interComm.size());
            delete [] buffer ;
            recept=false ;
@@ -418,7 +414,9 @@
        MPI_Intercomm_create(intraComm,0,CXios::globalComm,leaderRank,10+leaderRank,&contextIntercomm);
 
-       // MPI_Comm inter;
-       // MPI_Intercomm_merge(contextIntercomm,1,&inter);
-       // MPI_Barrier(inter);
+       MPI_Comm inter;
+       MPI_Intercomm_merge(contextIntercomm,1,&inter);
+       MPI_Barrier(inter);
+
+       info(20) << "CServer : MPI_Intercomm_merge and MPI_Barrier " << contextId << endl;
        
 
@@ -432,7 +430,7 @@
        
        
-       // MPI_Comm_free(&inter);
-       
-       //printf(" ****   server: register context OK\n");
+       MPI_Comm_free(&inter);
+       
+       info(20) << "CServer : Register new Context OKOK " << contextId << endl;
      }
 
Index: /XIOS/dev/branch_yushan/src/test/test_client.f90
===================================================================
--- /XIOS/dev/branch_yushan/src/test/test_client.f90	(revision 1066)
+++ /XIOS/dev/branch_yushan/src/test/test_client.f90	(revision 1067)
@@ -36,4 +36,7 @@
   CALL MPI_INIT(ierr)
   CALL init_wait
+
+  CALL MPI_COMM_RANK(MPI_COMM_WORLD,rank,ierr)
+  if(rank < 2) then
   
   CALL xios_initialize(id,return_comm=comm)
@@ -162,4 +165,11 @@
   CALL xios_finalize()
 
+   else
+
+   CALL xios_init_server
+  
+   endif
+    
+
   CALL MPI_FINALIZE(ierr)
 
Index: /XIOS/dev/branch_yushan/src/test/test_complete.f90
===================================================================
--- /XIOS/dev/branch_yushan/src/test/test_complete.f90	(revision 1066)
+++ /XIOS/dev/branch_yushan/src/test/test_complete.f90	(revision 1067)
@@ -10,5 +10,5 @@
 
   CHARACTER(len=*),PARAMETER :: id="client"
-  INTEGER :: comm
+  INTEGER :: comm, comm2
   TYPE(xios_duration)  :: dtime
   TYPE(xios_context) :: ctx_hdl
@@ -48,5 +48,5 @@
 !###########################################################################
 
-!!! Initialisation des coordonnÃ©es globales et locales pour la grille rÃ©guliÃšre
+!!! Initialisation des coordonnes globales et locales pour la grille rgulire
 
   DO j=1,nj_glo
@@ -80,4 +80,6 @@
 
   CALL xios_context_initialize("atmosphere",comm)
+  print*, "init context atmosphere comm = ", comm
+
   CALL xios_get_handle("atmosphere",ctx_hdl)
   CALL xios_set_current_context(ctx_hdl)
@@ -103,5 +105,5 @@
   CALL xios_set_fieldgroup_attr("field_definition",enabled=.TRUE.)
 
-!!! CrÃ©ation d un nouveau champ
+!!! Cration d un nouveau champ
 
   CALL xios_get_handle("field_definition",fieldgroup_hdl)
@@ -123,5 +125,5 @@
   CALL xios_set_timestep(timestep=dtime)
 
-!!! Recupration des valeurs des longitudes et de taille des domaines locaux (pour test de fonctionnalitÃ©)
+!!! Recupration des valeurs des longitudes et de taille des domaines locaux (pour test de fonctionnalit)
 
   ni=0 ; lonvalue(:,:)=0
@@ -162,5 +164,5 @@
 !###########################################################################
 
-!!! Initialisation des coordonnÃ©es globales et locales pour la grille indexee (1 point sur 2)
+!!! Initialisation des coordonnes globales et locales pour la grille indexee (1 point sur 2)
 
     nb_pt=ni*nj/2
@@ -172,4 +174,6 @@
 
   CALL xios_context_initialize("surface",comm)
+  print*, "init context surface comm = ", comm
+
   CALL xios_get_handle("surface",ctx_hdl)
   CALL xios_set_current_context(ctx_hdl)
@@ -185,5 +189,5 @@
   CALL xios_set_domain_attr("domain_srf",lonvalue_2D=lon,latvalue_2D=lat)
 
-!!! CrÃ©ation d un nouveau champ
+!!! Cration d un nouveau champ
 
   CALL xios_get_handle("field_definition",fieldgroup_hdl)
@@ -205,5 +209,5 @@
   CALL xios_set_timestep(timestep=dtime)
 
-!!! Recupration des valeurs des longitudes et de taille des domaines locaux (pour test de fonctionnalitÃ©)
+!!! Recupration des valeurs des longitudes et de taille des domaines locaux (pour test de fonctionnalit)
 
   ni=0 ; lonvalue(:,:)=0
@@ -217,5 +221,5 @@
   CALL xios_close_context_definition()
 
-  print *, "xios_close_context_definition(surface)" 
+ print *, "xios_close_context_definition(surface)" 
 
 
@@ -224,6 +228,6 @@
 !####################################################################################
 
-    !DO ts=1,24*10
-    DO ts=1,24
+    DO ts=1,24*10
+    !DO ts=1,24
 
       CALL xios_get_handle("atmosphere",ctx_hdl)
@@ -264,22 +268,24 @@
 !!! Fin des contextes
 
-    print *, "start : xios_context_finalize(surface)"
+    !print *, "start : xios_context_finalize(surface)"
 
     CALL xios_get_handle("surface",ctx_hdl) 
-    print *, "xios_get_handle OK"
+    !print *, "xios_get_handle (surface) OK"
     CALL xios_set_current_context(ctx_hdl)
-    print *, "xios_set_current_context OK"
+    !print *, "xios_set_current_context (surface) OK"
     CALL xios_context_finalize()
 
     print *, "xios_context_finalize(surface)" 
 
-    CALL xios_get_handle("atmosphere",ctx_hdl)
-    CALL xios_set_current_context(ctx_hdl)
-    CALL xios_context_finalize()
+     CALL xios_get_handle("atmosphere",ctx_hdl)
+!     !print *, "xios_get_handle (atmosphere) OK"
+     CALL xios_set_current_context(ctx_hdl)
+!     !print *, "xios_set_current_context (atmosphere) OK"
+     CALL xios_context_finalize()
 
     print *, "xios_context_finalize(atmosphere)"
 
     DEALLOCATE(lon, lat, field_A_atm, lonvalue)
-    DEALLOCATE(kindex, field_A_srf)
+   ! DEALLOCATE(kindex, field_A_srf)
 
 !!! Fin de XIOS
