Index: /XIOS3/trunk/src/attribute.hpp
===================================================================
--- /XIOS3/trunk/src/attribute.hpp	(revision 2387)
+++ /XIOS3/trunk/src/attribute.hpp	(revision 2388)
@@ -44,5 +44,5 @@
             virtual StdString dumpGraph(void) const = 0;
             virtual bool isEqual(const CAttribute& ) = 0;
-            virtual int computeHash(void) = 0;
+            virtual size_t computeHash(void) = 0;
 
             //! Returns true if and only if the attribute should be publicly exposed in the API
Index: /XIOS3/trunk/src/attribute_array.hpp
===================================================================
--- /XIOS3/trunk/src/attribute_array.hpp	(revision 2387)
+++ /XIOS3/trunk/src/attribute_array.hpp	(revision 2388)
@@ -44,5 +44,5 @@
                         
             bool isEqual(const CAttribute& attr);
-            int computeHash(void);
+            size_t computeHash(void);
 
             /// Destructeur ///
Index: /XIOS3/trunk/src/attribute_array_impl.hpp
===================================================================
--- /XIOS3/trunk/src/attribute_array_impl.hpp	(revision 2387)
+++ /XIOS3/trunk/src/attribute_array_impl.hpp	(revision 2388)
@@ -119,5 +119,5 @@
   
     template <typename T_numtype, int N_rank>
-    int CAttributeArray<T_numtype,N_rank>::computeHash(void)
+    size_t CAttributeArray<T_numtype,N_rank>::computeHash(void)
     {
       ERROR("CAttributeArray::computeHash(void)",
Index: /XIOS3/trunk/src/attribute_enum.hpp
===================================================================
--- /XIOS3/trunk/src/attribute_enum.hpp	(revision 2387)
+++ /XIOS3/trunk/src/attribute_enum.hpp	(revision 2388)
@@ -52,5 +52,5 @@
             
             bool isEqual(const CAttribute& attr );
-            int computeHash(void);
+            size_t computeHash(void);
 
             /// Destructeur ///
Index: /XIOS3/trunk/src/attribute_enum_impl.hpp
===================================================================
--- /XIOS3/trunk/src/attribute_enum_impl.hpp	(revision 2387)
+++ /XIOS3/trunk/src/attribute_enum_impl.hpp	(revision 2388)
@@ -127,5 +127,5 @@
 
   template <class T>
-  int CAttributeEnum<T>::computeHash(void)
+  size_t CAttributeEnum<T>::computeHash(void)
   {
     // Basic hash computation through string
Index: /XIOS3/trunk/src/attribute_map.cpp
===================================================================
--- /XIOS3/trunk/src/attribute_map.cpp	(revision 2387)
+++ /XIOS3/trunk/src/attribute_map.cpp	(revision 2388)
@@ -273,7 +273,7 @@
         \param [in] excludedAttrs attribute to be excluded from hash computation
       */
-      int CAttributeMap::computeGlobalAttributesHash(const vector<StdString>& excludedAttrs)
-      {
-         int attrs_hash( 0 );
+      size_t CAttributeMap::computeGlobalAttributesHash(const vector<StdString>& excludedAttrs)
+      {
+         size_t attrs_hash( 0 );
          typedef std::pair<StdString, CAttribute*> StdStrAttPair;
 
Index: /XIOS3/trunk/src/attribute_map.hpp
===================================================================
--- /XIOS3/trunk/src/attribute_map.hpp	(revision 2387)
+++ /XIOS3/trunk/src/attribute_map.hpp	(revision 2388)
@@ -37,5 +37,5 @@
             void setAttributes(const CAttributeMap * const _parent, bool apply=true);
             void duplicateAttributes(const CAttributeMap* const _parent);
-            int computeGlobalAttributesHash(const vector<StdString>& excludedAttrs);
+            size_t computeGlobalAttributesHash(const vector<StdString>& excludedAttrs);
             void clearAllAttributes(void);
             StdString dumpXiosAttributes(void) const;
Index: /XIOS3/trunk/src/attribute_template.hpp
===================================================================
--- /XIOS3/trunk/src/attribute_template.hpp	(revision 2387)
+++ /XIOS3/trunk/src/attribute_template.hpp	(revision 2388)
@@ -61,5 +61,5 @@
             
             bool isEqual(const CAttribute& attr );
-            int computeHash(void);
+            size_t computeHash(void);
 
             /// Destructeur ///
Index: /XIOS3/trunk/src/attribute_template_impl.hpp
===================================================================
--- /XIOS3/trunk/src/attribute_template_impl.hpp	(revision 2387)
+++ /XIOS3/trunk/src/attribute_template_impl.hpp	(revision 2388)
@@ -171,5 +171,5 @@
 
     template <class T>
-    int CAttributeTemplate<T>::computeHash(void)
+    size_t CAttributeTemplate<T>::computeHash(void)
     {
       // Basic hash computation through string
Index: /XIOS3/trunk/src/io/nc4_data_output.hpp
===================================================================
--- /XIOS3/trunk/src/io/nc4_data_output.hpp	(revision 2387)
+++ /XIOS3/trunk/src/io/nc4_data_output.hpp	(revision 2388)
@@ -129,6 +129,6 @@
             bool hasTimeCentered ;
 	
-            std::multimap< StdString, pair<int,StdString> > relElements_;
-            std::multimap< StdString, pair<int,CDomain*> > relDomains_;
+            std::multimap< StdString, pair<size_t,StdString> > relElements_;
+            std::multimap< StdString, pair<size_t,CDomain*> > relDomains_;
 
       }; // class CNc4DataOutput
Index: /XIOS3/trunk/src/node/axis.cpp
===================================================================
--- /XIOS3/trunk/src/node/axis.cpp	(revision 2387)
+++ /XIOS3/trunk/src/node/axis.cpp	(revision 2388)
@@ -304,8 +304,6 @@
    }
 
-   int CAxis::computeAttributesHash( MPI_Comm comm )
-   {
-     int axis_hash = 0;
-     
+   size_t CAxis::computeAttributesHash( MPI_Comm comm )
+   {
      // Compute the hash of distributed attributs (value ...)
      int globalSize = this->n_glo.getValue();
@@ -319,8 +317,8 @@
      gridTransformConnector->transfer(this->value, distributedValue );
         
-     int localHash = 0;
+     size_t localHash = 0;
      for (int iloc=0; iloc<localSize ; iloc++ ) localHash+=globalIndex(iloc)*distributedValue(iloc);
-     int distributedHash = 0;
-     MPI_Allreduce( &localHash, &distributedHash, 1, MPI_INT, MPI_SUM, comm  );
+     size_t distributedHash = 0;
+     MPI_Allreduce( &localHash, &distributedHash, 1, MPI_UNSIGNED_LONG, MPI_SUM, comm  );
 
      // Compute the hash of global attributs (unit, prec ...)
@@ -338,5 +336,5 @@
      excludedAttr.push_back("mask"); // ???
 
-     int globalHash = this->computeGlobalAttributesHash( excludedAttr );
+     size_t globalHash = this->computeGlobalAttributesHash( excludedAttr );
 
      return distributedHash + globalHash;
Index: /XIOS3/trunk/src/node/axis.hpp
===================================================================
--- /XIOS3/trunk/src/node/axis.hpp	(revision 2387)
+++ /XIOS3/trunk/src/node/axis.hpp	(revision 2388)
@@ -130,5 +130,5 @@
          void resetGeometricAttributes(void) ;
 
-         int computeAttributesHash( MPI_Comm comm );
+         size_t computeAttributesHash( MPI_Comm comm );
 
          size_t getGlobalWrittenSize(void) ;
Index: /XIOS3/trunk/src/node/domain.cpp
===================================================================
--- /XIOS3/trunk/src/node/domain.cpp	(revision 2387)
+++ /XIOS3/trunk/src/node/domain.cpp	(revision 2388)
@@ -1770,8 +1770,6 @@
    CATCH_DUMP_ATTR
 
-   int CDomain::computeAttributesHash( MPI_Comm comm )
-   {
-     int domain_hash = 0;
-     
+   size_t CDomain::computeAttributesHash( MPI_Comm comm )
+   {
      // Compute the hash of distributed attributs (value ...)
      int globalSize = this->ni_glo.getValue()*this->nj_glo.getValue();
@@ -1788,8 +1786,8 @@
      // Compute the distributed hash (v0) of the element
      // it will be associated to the default element name (= map key), and to the name really written
-     int localHash = 0;
+     size_t localHash = 0;
      for (int iloc=0; iloc<localSize ; iloc++ ) localHash+=globalIndex(iloc)*lon_distributedValue(iloc)*lat_distributedValue(iloc);
-     int distributedHash = 0;
-     MPI_Allreduce( &localHash, &distributedHash, 1, MPI_INT, MPI_SUM, comm  );
+     size_t distributedHash = 0;
+     MPI_Allreduce( &localHash, &distributedHash, 1, MPI_UNSIGNED_LONG, MPI_SUM, comm  );
      
      // Compute the hash of global attributs (unit, prec ...)
@@ -1814,5 +1812,5 @@
      excludedAttr.insert(excludedAttr.end(), { "bounds_lonvalue_unstructured_read_from_file", "bounds_latvalue_unstructured_read_from_file" });
      
-     int globalHash = this->computeGlobalAttributesHash( excludedAttr );
+     size_t globalHash = this->computeGlobalAttributesHash( excludedAttr );
 
      return distributedHash + globalHash;
Index: /XIOS3/trunk/src/node/domain.hpp
===================================================================
--- /XIOS3/trunk/src/node/domain.hpp	(revision 2387)
+++ /XIOS3/trunk/src/node/domain.hpp	(revision 2388)
@@ -91,5 +91,5 @@
          bool checkAttributes_done_ = false ;
 
-         int computeAttributesHash( MPI_Comm comm );
+         size_t computeAttributesHash( MPI_Comm comm );
          
       //////////////////////////
