Index: /XIOS/trunk/arch/arch-GCC_LINUX.env
===================================================================
--- /XIOS/trunk/arch/arch-GCC_LINUX.env	(revision 327)
+++ /XIOS/trunk/arch/arch-GCC_LINUX.env	(revision 327)
@@ -0,0 +1,6 @@
+export HDF5_INC_DIR=$WORKDIR/hdf5/include
+export HDF5_LIB_DIR=$WORKDIR/hdf5_gnu/lib
+
+export NETCDF_INC_DIR=$WORKDIR/netcdf4/include
+export NETCDF_LIB_DIR=$WORKDIR/netcdf4_gnu/lib
+
Index: /XIOS/trunk/arch/arch-GCC_LINUX.fcm
===================================================================
--- /XIOS/trunk/arch/arch-GCC_LINUX.fcm	(revision 327)
+++ /XIOS/trunk/arch/arch-GCC_LINUX.fcm	(revision 327)
@@ -0,0 +1,21 @@
+################################################################################
+###################        Projet xios - xmlioserver       #####################
+################################################################################
+
+%CCOMPILER      mpic++
+%FCOMPILER      mpif90
+%LINKER         mpif90  
+
+%NO_WARN        -W -Wall -Wno-unused-parameter -Wno-long-long -Wno-deprecated
+%BASE_CFLAGS    -ansi -DXIOS_LIBRARY -DNONE -DXIOS_LIBRARY  -w
+%PROD_CFLAGS    -O3 -D BOOST_DISABLE_ASSERTS
+%DEV_CFLAGS     -D XIOS_DEBUG -g 
+%DEBUG_CFLAGS   -D XIOS_DEBUG -g 
+
+%BASE_FFLAGS    -DXIOS_LIBRARY -DXIOS_LIBRARY 
+%PROD_FFLAGS    -O3
+%DEV_FFLAGS     -DXIOS_DEBUG -g 
+%DEBUG_FFLAGS   -DXIOS_DEBUG -g 
+
+%BASE_INC       -D _NONE_
+%BASE_LD        -Wl,-z,muldefs -lstdc++ -lmpi_cxx
Index: /XIOS/trunk/arch/arch-GCC_LINUX.path
===================================================================
--- /XIOS/trunk/arch/arch-GCC_LINUX.path	(revision 327)
+++ /XIOS/trunk/arch/arch-GCC_LINUX.path	(revision 327)
@@ -0,0 +1,15 @@
+NETCDF_INCDIR="-I $NETCDF_INC_DIR"
+NETCDF_LIBDIR="-L $NETCDF_LIB_DIR"
+NETCDF_LIB="-lnetcdff -lnetcdf"
+
+MPI_INCDIR=""
+MPI_LIBDIR=""
+MPI_LIB=""
+
+HDF5_INCDIR="-I $HDF5_INC_DIR"
+HDF5_LIBDIR="-L $HDF5_LIB_DIR"
+HDF5_LIB="-lhdf5_hl -lhdf5 -lhdf5 -lz -lcurl"
+
+OASIS_INCDIR="-I$WORKDIR/NEMO_COUPLE/prism/X64/build/lib/psmile.MPI1"
+OASIS_LIBDIR="-L$WORKDIR/NEMO_COUPLE/prism/X64/lib"
+OASIS_LIB="-lpsmile.MPI1 -lmpp_io"
Index: /XIOS/trunk/arch/arch-X64_TITANE.fcm
===================================================================
--- /XIOS/trunk/arch/arch-X64_TITANE.fcm	(revision 326)
+++ /XIOS/trunk/arch/arch-X64_TITANE.fcm	(revision 327)
@@ -17,4 +17,4 @@
 %DEBUG_FFLAGS   -DXIOS_DEBUG -g -traceback
 
-%BASE_INC       -D NONE
+%BASE_INC       -D __NONE__
 %BASE_LD        -lstdc++
Index: /XIOS/trunk/bld.cfg
===================================================================
--- /XIOS/trunk/bld.cfg	(revision 326)
+++ /XIOS/trunk/bld.cfg	(revision 327)
@@ -35,5 +35,8 @@
 bld::tool::cc        %CCOMPILER
 bld::tool::fc        %FCOMPILER
+bld::tool::fpp       cpp
+bld::tool::cpp       cpp
 bld::tool::cppflags  %BASE_INC -I${PWD}/extern/boost/include -I${PWD}/extern/rapidxml/include -I/usr/include
+bld::tool::fppflags  -std=c99 %BASE_INC -I${PWD}/extern/boost/include -I${PWD}/extern/rapidxml/include -I/usr/include
 bld::tool::ld        %LINKER
 bld::tool::ldflags   %LD_FLAGS 
@@ -44,5 +47,7 @@
 
 # Pre-process code before analysing dependencies
-bld::pp              false
+bld::pp    false          
+bld::pp::interface/fortran              true
+bld::pp::interface/fortran_attr         true
 bld::excl_dep        use::mod_prism_get_comm
 bld::excl_dep        use::mod_prism_get_localcomm_proto
Index: /XIOS/trunk/src/buffer_out.cpp
===================================================================
--- /XIOS/trunk/src/buffer_out.cpp	(revision 326)
+++ /XIOS/trunk/src/buffer_out.cpp	(revision 327)
@@ -5,6 +5,4 @@
 namespace xmlioserver
 {
-  namespace ym
-  {
     CBufferOut::CBufferOut(void* buffer,size_t size)
     {
@@ -68,6 +66,5 @@
       if (own) delete [] begin ;
     }
-    
-  }
+ 
 }
     
Index: /XIOS/trunk/src/context_server.hpp
===================================================================
--- /XIOS/trunk/src/context_server.hpp	(revision 326)
+++ /XIOS/trunk/src/context_server.hpp	(revision 327)
@@ -1,4 +1,4 @@
 #ifndef __CONTEXT_SERVER_HPP__
-#define __CONTEXT_CLIENT_HPP__
+#define __CONTEXT_SERVER_HPP__
 #include "xmlioserver_spl.hpp"
 #include "event_server.hpp"
Index: /XIOS/trunk/src/field_impl.hpp
===================================================================
--- /XIOS/trunk/src/field_impl.hpp	(revision 327)
+++ /XIOS/trunk/src/field_impl.hpp	(revision 327)
@@ -0,0 +1,65 @@
+
+#ifndef __FIELD_IMPL_HPP__
+#define __FIELD_IMPL_HPP__
+
+#include "xmlioserver_spl.hpp"
+#include "field.hpp"
+#include "context.hpp"
+#include "grid.hpp"
+
+
+namespace xmlioserver {
+namespace tree {
+
+   template <StdSize N>
+   void CField::setData(const ARRAY(double, N) _data)
+   {
+     const std::vector<boost::shared_ptr<CField> > & refField=getAllReference();
+     std::vector<boost::shared_ptr<CField> >::const_iterator  it = refField.begin(), end = refField.end();
+     
+     for (; it != end; it++) (*it)->updateData(_data) ;
+    }
+    
+   template <StdSize N>
+      bool CField::updateData(const ARRAY(double, N) _data)
+   {        
+      shared_ptr<CContext> context=CObjectFactory::GetObject<CContext>(CObjectFactory::GetCurrentContextId()) ;
+      const date::CDate & currDate = context->getCalendar()->getCurrentDate();
+      const date::CDate opeDate      = *last_operation + freq_operation;
+      const date::CDate writeDate    = *last_Write     + freq_write;       
+
+   
+      info(50) << "CField::updateData " << currDate <<  " : send data to " << this->getBaseFieldId() << std::endl;
+      info(50) << "Next operation "  << opeDate<<std::endl;
+
+      if (opeDate <= currDate)
+      {
+         if (this->data->num_elements() != this->grid->storeIndex_client->num_elements())
+         {
+            this->data->resize(boost::extents[this->grid->storeIndex_client ->num_elements()]);
+         }
+            
+         ARRAY_CREATE(input, double, 1, [this->data->num_elements()]);
+         this->grid->inputField(_data, input);          
+         (*this->foperation)(input);
+         
+         *last_operation = currDate;
+         info(50) << "(*last_operation = currDate) : " << *last_operation << " = " << currDate << std::endl; 
+      }
+      
+      if (writeDate < (currDate + freq_operation))
+      {
+         this->foperation->final();
+         *last_Write = writeDate;
+         info(50) << "(*last_Write = currDate) : " << *last_Write << " = " << currDate	<< std::endl;
+         sendUpdateData() ;
+         return (true);        
+      }
+
+      return (false);
+   }
+
+} // namespace tree
+} // namespace xmlioserver
+
+#endif
Index: /XIOS/trunk/src/node/field.hpp
===================================================================
--- /XIOS/trunk/src/node/field.hpp	(revision 326)
+++ /XIOS/trunk/src/node/field.hpp	(revision 327)
@@ -166,59 +166,4 @@
 } // namespace xmlioserver
 
-#include "grid.hpp"
-
-namespace xmlioserver {
-namespace tree {
-
-   template <StdSize N>
-   void CField::setData(const ARRAY(double, N) _data)
-   {
-     const std::vector<boost::shared_ptr<CField> > & refField=getAllReference();
-     std::vector<boost::shared_ptr<CField> >::const_iterator  it = refField.begin(), end = refField.end();
-     
-     for (; it != end; it++) (*it)->updateData(_data) ;
-    }
-    
-   template <StdSize N>
-      bool CField::updateData(const ARRAY(double, N) _data)
-   {        
-      shared_ptr<CContext> context=CObjectFactory::GetObject<CContext>(CObjectFactory::GetCurrentContextId()) ;
-      const date::CDate & currDate = context->getCalendar()->getCurrentDate();
-      const date::CDate opeDate      = *last_operation + freq_operation;
-      const date::CDate writeDate    = *last_Write     + freq_write;       
-
-   
-      info(50) << "CField::updateData " << currDate <<  " : send data to " << this->getBaseFieldId() << std::endl;
-      info(50) << "Next operation "  << opeDate<<std::endl;
-
-      if (opeDate <= currDate)
-      {
-         if (this->data->num_elements() != this->grid->storeIndex_client->num_elements())
-         {
-            this->data->resize(boost::extents[this->grid->storeIndex_client ->num_elements()]);
-         }
-            
-         ARRAY_CREATE(input, double, 1, [this->data->num_elements()]);
-         this->grid->inputField(_data, input);          
-         (*this->foperation)(input);
-         
-         *last_operation = currDate;
-         info(50) << "(*last_operation = currDate) : " << *last_operation << " = " << currDate << std::endl; 
-      }
-      
-      if (writeDate < (currDate + freq_operation))
-      {
-         this->foperation->final();
-         *last_Write = writeDate;
-         info(50) << "(*last_Write = currDate) : " << *last_Write << " = " << currDate	<< std::endl;
-         sendUpdateData() ;
-         return (true);        
-      }
-
-      return (false);
-   }
-
-} // namespace tree
-} // namespace xmlioserver
 
 #endif // __XMLIO_CField__
Index: /XIOS/trunk/src/object_template_impl.hpp
===================================================================
--- /XIOS/trunk/src/object_template_impl.hpp	(revision 326)
+++ /XIOS/trunk/src/object_template_impl.hpp	(revision 327)
@@ -2,4 +2,6 @@
 #define __XMLIO_CObjectTemplate_impl__
 
+#include "xmlioserver_spl.hpp"
+#include "context_client.hpp"
 #include "object_factory.hpp"
 #include "context.hpp"
@@ -7,6 +9,10 @@
 #include "attribute.hpp"
 #include "event_client.hpp"
+#include "object_template.hpp"
 #include "context_client.hpp"
-#include "object_template.hpp"
+#include "indent.hpp"
+#include "type_util.hpp"
+#include "message.hpp"
+#include "type.hpp"
 
 namespace xmlioserver
Index: /XIOS/trunk/src/test/test_cs.f90
===================================================================
--- /XIOS/trunk/src/test/test_cs.f90	(revision 326)
+++ /XIOS/trunk/src/test/test_cs.f90	(revision 327)
@@ -68,5 +68,5 @@
   
 
-  CALL xios_initialize(id,local_comm=MPI_COMM_WORLD,return_comm=comm)
+  CALL xios_initialize(id,return_comm=comm)
 
   CALL xios_context_initialize("test",comm)
Index: /XIOS/trunk/src/type/type_util.hpp
===================================================================
--- /XIOS/trunk/src/type/type_util.hpp	(revision 326)
+++ /XIOS/trunk/src/type/type_util.hpp	(revision 327)
@@ -19,15 +19,18 @@
     class CContext;
   }
-    typedef tree::CDomain CDomain;
-    typedef tree::CDomainGroup CDomainGroup;
-    typedef tree::CField CField;
-    typedef tree::CFieldGroup CFieldGroup;
-    typedef tree::CGrid CGrid;
-    typedef tree::CGridGroup CGridGroup;
-    typedef tree::CAxis CAxis;
-    typedef tree::CAxisGroup CAxisGroup;
-    typedef tree::CFile CFile;
-    typedef tree::CFileGroup CFileGroup;
-    typedef tree::CContext CContext;
+
+/*
+  typedef tree::CDomain CDomain;
+  typedef tree::CDomainGroup CDomainGroup;
+  typedef tree::CField CField;
+  typedef tree::CFieldGroup CFieldGroup;
+  typedef tree::CGrid CGrid;
+  typedef tree::CGridGroup CGridGroup;
+  typedef tree::CAxis CAxis;
+  typedef tree::CAxisGroup CAxisGroup;
+  typedef tree::CFile CFile;
+  typedef tree::CFileGroup CFileGroup;
+  typedef tree::CContext CContext;
+*/
         
   template <typename T>
@@ -49,4 +52,7 @@
   macro(wchar_t)
   macro(bool)
+#undef macro
+  
+#define macro(T) template <> inline string getStrType<tree::T>(void) { return std::string(#T) ; }
   macro(CDomain)
   macro(CDomainGroup)
