Index: /XIOS/dev/dev_olga/arch/arch-X64_ADA.env
===================================================================
--- /XIOS/dev/dev_olga/arch/arch-X64_ADA.env	(revision 1594)
+++ /XIOS/dev/dev_olga/arch/arch-X64_ADA.env	(revision 1595)
@@ -1,2 +1,4 @@
+module load gcc/6.4.0
+module load  intel/2018.2
 module unload netcdf
 module unload hdf5
Index: OS/dev/dev_olga/src/object_factory_decl.cpp
===================================================================
--- /XIOS/dev/dev_olga/src/object_factory_decl.cpp	(revision 1594)
+++ 	(revision )
@@ -1,78 +1,0 @@
-#include "object_factory_impl.hpp"
-#include "node_type.hpp"
-
-namespace xios
-{
-#define macro(U) \
-  template std::shared_ptr<U> CObjectFactory::GetObject<U>(const StdString& id);  \
-  template std::shared_ptr<U> CObjectFactory::GetObject<U>(const StdString& context,const StdString& id); \
-  template std::shared_ptr<U> CObjectFactory::GetObject<U>(const U* const object); \
-  template int CObjectFactory::GetObjectNum<U>(void); \
-  template int CObjectFactory::GetObjectIdNum<U>(void); \
-  template const std::vector<std::shared_ptr<U> >& CObjectFactory::GetObjectVector<U>(const StdString& context ); \
-  template bool CObjectFactory::HasObject<U>(const StdString& id); \
-  template bool CObjectFactory::HasObject<U>(const StdString& context,const StdString& id); \
-  template std::shared_ptr<U> CObjectFactory::CreateObject<U>(const StdString& id ); \
-  template const StdString& CObjectFactory::GetUIdBase<U>(void); \
-  template StdString CObjectFactory::GenUId<U>(void); \
-  template bool CObjectFactory::IsGenUId<U>(const StdString& id); \
-
-  macro(CField)
-  macro(CFile)
-  macro(CGrid)
-  macro(CAxis)
-  macro(CDomain)
-  macro(CContext)
-  macro(CCalendarWrapper)
-  macro(CVariable)
-  macro(CInverseAxis)
-  macro(CZoomAxis)
-  macro(CInterpolateAxis)
-  macro(CExtractAxis)
-  macro(CZoomDomain)
-  macro(CInterpolateDomain)
-  macro(CGenerateRectilinearDomain)
-  macro(CScalar)
-  macro(CReduceAxisToScalar)
-  macro(CReduceDomainToAxis)
-  macro(CReduceAxisToAxis)
-  macro(CExtractDomainToAxis)
-  macro(CComputeConnectivityDomain)
-  macro(CExpandDomain)
-  macro(CExtractAxisToScalar)
-  macro(CReduceDomainToScalar)
-  macro(CTemporalSplitting)
-  macro(CDuplicateScalarToAxis)
-  macro(CReduceScalarToScalar)
-  macro(CReorderDomain)
-  macro(CExtractDomain)
-  
-  macro(CFieldGroup)
-  macro(CFileGroup)
-  macro(CGridGroup)
-  macro(CAxisGroup)
-  macro(CDomainGroup)
-  macro(CContextGroup)
-  macro(CVariableGroup)
-  macro(CInverseAxisGroup)
-  macro(CZoomAxisGroup)
-  macro(CInterpolateAxisGroup)
-  macro(CExtractAxisGroup)
-  macro(CZoomDomainGroup)
-  macro(CInterpolateDomainGroup)
-  macro(CGenerateRectilinearDomainGroup)
-  macro(CScalarGroup)
-  macro(CReduceAxisToScalarGroup)
-  macro(CReduceDomainToAxisGroup)
-  macro(CReduceAxisToAxisGroup)
-  macro(CExtractDomainToAxisGroup)
-  macro(CComputeConnectivityDomainGroup)
-  macro(CExpandDomainGroup)
-  macro(CExtractAxisToScalarGroup)
-  macro(CReduceDomainToScalarGroup)
-  macro(CTemporalSplittingGroup)
-  macro(CDuplicateScalarToAxisGroup)
-  macro(CReduceScalarToScalarGroup)
-  macro(CReorderDomainGroup)
-  macro(CExtractDomainGroup)
-}
Index: /XIOS/dev/dev_olga/src/object_factory_decl1.cpp
===================================================================
--- /XIOS/dev/dev_olga/src/object_factory_decl1.cpp	(revision 1595)
+++ /XIOS/dev/dev_olga/src/object_factory_decl1.cpp	(revision 1595)
@@ -0,0 +1,18 @@
+#include "object_factory_decl_macro.hpp"
+
+namespace xios
+{
+  macro(CField)
+  macro(CFile)
+  macro(CGrid)
+  macro(CAxis)
+  macro(CDomain)
+  macro(CContext)
+  macro(CCalendarWrapper)
+  macro(CVariable)
+  macro(CInverseAxis)
+  macro(CZoomAxis)
+  macro(CInterpolateAxis)
+}
+
+
Index: /XIOS/dev/dev_olga/src/object_factory_decl2.cpp
===================================================================
--- /XIOS/dev/dev_olga/src/object_factory_decl2.cpp	(revision 1595)
+++ /XIOS/dev/dev_olga/src/object_factory_decl2.cpp	(revision 1595)
@@ -0,0 +1,24 @@
+#include "object_factory_decl_macro.hpp"
+
+namespace xios
+{
+  macro(CExtractAxis)
+  macro(CZoomDomain)
+  macro(CInterpolateDomain)
+  macro(CGenerateRectilinearDomain)
+  macro(CScalar)
+  macro(CReduceAxisToScalar)
+  macro(CReduceDomainToAxis)
+  macro(CReduceAxisToAxis)
+  macro(CExtractDomainToAxis)
+  macro(CComputeConnectivityDomain)
+  macro(CExpandDomain)
+  macro(CExtractAxisToScalar)
+  macro(CReduceDomainToScalar)
+  macro(CTemporalSplitting)
+  macro(CDuplicateScalarToAxis)
+  macro(CReduceScalarToScalar)
+  macro(CReorderDomain)
+  macro(CExtractDomain)
+}
+
Index: /XIOS/dev/dev_olga/src/object_factory_decl3.cpp
===================================================================
--- /XIOS/dev/dev_olga/src/object_factory_decl3.cpp	(revision 1595)
+++ /XIOS/dev/dev_olga/src/object_factory_decl3.cpp	(revision 1595)
@@ -0,0 +1,19 @@
+#include "object_factory_decl_macro.hpp"
+
+
+namespace xios
+{
+  macro(CFieldGroup)
+  macro(CFileGroup)
+  macro(CGridGroup)
+  macro(CAxisGroup)
+  macro(CDomainGroup)
+  macro(CContextGroup)
+  macro(CVariableGroup)
+  macro(CInverseAxisGroup)
+  macro(CZoomAxisGroup)
+  macro(CInterpolateAxisGroup)
+  macro(CExtractAxisGroup)
+  macro(CZoomDomainGroup)
+}
+
Index: /XIOS/dev/dev_olga/src/object_factory_decl4.cpp
===================================================================
--- /XIOS/dev/dev_olga/src/object_factory_decl4.cpp	(revision 1595)
+++ /XIOS/dev/dev_olga/src/object_factory_decl4.cpp	(revision 1595)
@@ -0,0 +1,22 @@
+#include "object_factory_decl_macro.hpp"
+
+namespace xios
+{
+  macro(CInterpolateDomainGroup)
+  macro(CGenerateRectilinearDomainGroup)
+  macro(CScalarGroup)
+  macro(CReduceAxisToScalarGroup)
+  macro(CReduceDomainToAxisGroup)
+  macro(CReduceAxisToAxisGroup)
+  macro(CExtractDomainToAxisGroup)
+  macro(CComputeConnectivityDomainGroup)
+  macro(CExpandDomainGroup)
+  macro(CExtractAxisToScalarGroup)
+  macro(CReduceDomainToScalarGroup)
+  macro(CTemporalSplittingGroup)
+  macro(CDuplicateScalarToAxisGroup)
+  macro(CReduceScalarToScalarGroup)
+  macro(CReorderDomainGroup)
+  macro(CExtractDomainGroup)
+}
+
Index: /XIOS/dev/dev_olga/src/object_factory_decl_macro.hpp
===================================================================
--- /XIOS/dev/dev_olga/src/object_factory_decl_macro.hpp	(revision 1595)
+++ /XIOS/dev/dev_olga/src/object_factory_decl_macro.hpp	(revision 1595)
@@ -0,0 +1,19 @@
+#include "object_factory_impl.hpp"
+#include "node_type.hpp"
+
+
+#define macro(U) \
+  template std::shared_ptr<U> CObjectFactory::GetObject<U>(const StdString& id);  \
+  template std::shared_ptr<U> CObjectFactory::GetObject<U>(const StdString& context,const StdString& id); \
+  template std::shared_ptr<U> CObjectFactory::GetObject<U>(const U* const object); \
+  template int CObjectFactory::GetObjectNum<U>(void); \
+  template int CObjectFactory::GetObjectIdNum<U>(void); \
+  template const std::vector<std::shared_ptr<U> >& CObjectFactory::GetObjectVector<U>(const StdString& context ); \
+  template bool CObjectFactory::HasObject<U>(const StdString& id); \
+  template bool CObjectFactory::HasObject<U>(const StdString& context,const StdString& id); \
+  template std::shared_ptr<U> CObjectFactory::CreateObject<U>(const StdString& id ); \
+  template const StdString& CObjectFactory::GetUIdBase<U>(void); \
+  template StdString CObjectFactory::GenUId<U>(void); \
+  template bool CObjectFactory::IsGenUId<U>(const StdString& id);
+
+
