]> SALOME platform Git repositories - tools/sat_salome.git/commitdiff
Salome HOME
spns #20541 Passage du reader lata en int 64
authorNabil Ghodbane <nabil.ghodbane@cea.fr>
Wed, 23 Dec 2020 10:28:02 +0000 (11:28 +0100)
committerNabil Ghodbane <nabil.ghodbane@cea.fr>
Wed, 23 Dec 2020 10:28:02 +0000 (11:28 +0100)
applications/SALOME-9.5.0-windows.pyconf
applications/SALOME-9.5.0.pyconf
applications/SALOME-9.6.0-int32.pyconf
applications/SALOME-9.6.0.pyconf
applications/SALOME-master-int32.pyconf
applications/SALOME-master.pyconf
products/ParaView.pyconf
products/patches/paraview-0012-LATA_64BITS_IDS.patch [new file with mode: 0644]

index cfeb8f29cc5ada07e2f6c37aff25ee53e2df0359..148d68dbe886d2bb9e6fb9aa04f381899135bff4 100644 (file)
@@ -81,7 +81,7 @@ APPLICATION :
         opencv : '3.2.0'
         ospray : '1.8.4'
         packaging : '19.0'
-        ParaView : '5.8.0'
+        ParaView : {tag : '5.8.0', section : 'version_5_8_0_int32'}
         perl : '5.28.1.1'
         Pillow : '7.1.1'
         planegcs : '0.18-3cb6890'
index 973dfe9388e43146116713dfe224424f5e1d976d..f0bd3fc5e5decbd8cd0fab4ba53592cc57338ef8 100644 (file)
@@ -71,7 +71,7 @@ APPLICATION :
         openssl : "native"
         ospray : '1.8.4'
         packaging : '17.1'
-        ParaView : '5.8.0'
+        ParaView : {tag : '5.8.0', section : 'version_5_8_0_int32'}
         Pillow : '7.1.1'
         planegcs : '0.18-3cb6890'
         pockets : '0.6.2'
index 668a2e694d0c4caf9a32696ca045a6779721209d..1bfb5da4a4ac6fd4a7acf5478e163a90a5ad0c7d 100644 (file)
@@ -74,7 +74,7 @@ APPLICATION :
         openssl : "native"
         ospray : '1.8.4'
         packaging : '17.1'
-        ParaView : '5.8.0'
+        ParaView : {tag : '5.8.0', section : 'version_5_8_0_int32'}
         petsc : '3.14.0'
         Pillow : '7.1.1'
         planegcs : '0.18-3cb6890'
index e0399800ef743eeaa5db737307b6f52112dc8185..189e64c2c3af0e3ad6de0181e9de9db442c96bb9 100644 (file)
@@ -209,7 +209,8 @@ __overwrite__ :
                                                  'paraview.0006-ParaView_find_libxml2.patch',
                                                  'paraview.0007-ParaView_find_freetype.patch',
                                                  'paraview.0009-ParaView_volume_mapper.patch',
-                                                 'pv_coincident.patch'
+                                                 'pv_coincident.patch',
+                                                 'paraview-0012-LATA_64BITS_IDS.patch'
                                                 ]
   }
 
@@ -226,7 +227,8 @@ __overwrite__ :
                                                  'paraview.0006-ParaView_find_libxml2.patch',
                                                  'paraview.0007-ParaView_find_freetype.patch',
                                                  'paraview.0009-ParaView_volume_mapper.patch',
-                                                 'pv_coincident.patch'
+                                                 'pv_coincident.patch',
+                                                 'paraview-0012-LATA_64BITS_IDS.patch'
                                                 ]
   }
 
@@ -239,7 +241,8 @@ __overwrite__ :
                                                  'paraview.0007-ParaView_find_freetype.patch',
                                                  'paraview.0009-ParaView_volume_mapper.patch',
                                                  'paraview.0011-vtkSMPSelection.patch',
-                                                 'pv_coincident.patch'
+                                                 'pv_coincident.patch',
+                                                 'paraview-0012-LATA_64BITS_IDS.patch'
                                                 ]
   }
 
@@ -256,7 +259,8 @@ __overwrite__ :
                                                  'paraview.0006-ParaView_find_libxml2.patch',
                                                  'paraview.0007-ParaView_find_freetype.patch',
                                                  'paraview.0009-ParaView_volume_mapper.patch',
-                                                 'pv_coincident.patch'
+                                                 'pv_coincident.patch',
+                                                 'paraview-0012-LATA_64BITS_IDS.patch'
                                                 ]
   }
 ]
index ade612bcdff34d16e763cfbfec6991a8221fcb7f..84da164b2bb0466f9e9ea1a6f7233877078ebbe0 100644 (file)
@@ -71,7 +71,7 @@ APPLICATION :
         openssl : "native"
         ospray : '1.8.4'
         packaging : '17.1'
-        ParaView : '5.8.0'
+        ParaView : {tag : '5.8.0', section : 'version_5_8_0_int32'}
         petsc : '3.14.0'
         Pillow : '7.1.1'
         planegcs : '0.18-3cb6890'
@@ -211,7 +211,7 @@ __overwrite__ :
   {
     # Adapt Paraview CMake files to be compliant with recent distributions
     __condition__ : "VARS.dist in ['FD30', 'FD32', 'CO8']"
-    'PRODUCTS.ParaView.version_5_8_0.patches' : ['paraview.0010-ParaViewClient.patch',
+    'PRODUCTS.ParaView.version_5_8_0_int32.patches' : ['paraview.0010-ParaViewClient.patch',
                                                  'paraview.0004-ParaView_hdf5.patch',
                                                  'paraview.0005-ParaView_find_cgns.patch',
                                                  'paraview.0006-ParaView_find_libxml2.patch',
index 6a9fb14f686fd6a41b2e39da449fcd9f05ccccf4..f0aa747e29f0d4c48c8b09d042e166b0ce5af0fb 100644 (file)
@@ -220,7 +220,8 @@ __overwrite__ :
                                                  'paraview.0007-ParaView_find_freetype.patch',
                                                  'paraview.0009-ParaView_volume_mapper.patch',
                                                  'paraview.0011-vtkSMPSelection.patch',
-                                                 'pv_coincident.patch'
+                                                 'pv_coincident.patch',
+                                                 'paraview-0012-LATA_64BITS_IDS.patch'
                                                 ]
   }
 
@@ -239,7 +240,8 @@ __overwrite__ :
                                                  'paraview.0009-ParaView_volume_mapper.patch',
                                                  'paraview.0010-ParaViewClient.patch',
                                                  'paraview.0010-ParaView_find_python.patch',
-                                                 'pv_coincident.patch'
+                                                 'pv_coincident.patch',
+                                                 'paraview-0012-LATA_64BITS_IDS.patch'
                                                 ]
   }
 ]
index 94e4368a28ef94810d6b2764ae27c360c3f4e8aa..1edd45d17d07f9c3ca4fac6406768ccd4f86b541 100755 (executable)
@@ -31,6 +31,22 @@ default :
 }
 
 version_5_8_0 :
+{
+    archive_info : {archive_name : "ParaView-5.8.0-lata.tar.gz"}
+    # two other LATA patches already included in archive
+    patches : ['paraview.0003-ParaViewClient.patch',
+               'paraview.0004-ParaView_hdf5.patch',
+               'paraview.0005-ParaView_find_cgns.patch',
+               'paraview.0006-ParaView_find_libxml2.patch',
+               'paraview.0007-ParaView_find_freetype.patch',
+               'paraview.0009-ParaView_volume_mapper.patch',
+               'paraview.0010-ParaView_find_python.patch',
+               'pv_coincident.patch',
+               'paraview-0012-LATA_64BITS_IDS.patch'
+              ]
+}
+
+version_5_8_0_int32 :
 {
     archive_info : {archive_name : "ParaView-5.8.0-lata.tar.gz"}
     # two other LATA patches already included in archive
@@ -46,6 +62,33 @@ version_5_8_0 :
 }
 
 version_5_8_0_win :
+{
+    depend : [
+              'Python',
+              'hdf5',
+              'qt',
+              'boost',
+              'libxml2',
+              'freetype',
+              'matplotlib',
+              'cgns',
+              'Pygments',
+              'pthreads',
+              'zlib'
+             ]
+    patches : ['paraview.0003-ParaViewClient.patch',
+               'paraview.0004-ParaView_hdf5.patch',
+               'paraview.0005-ParaView_find_cgns.patch',
+               'paraview.0006-ParaView_find_libxml2.patch',
+               'paraview.0007-ParaView_find_freetype.patch',
+               'paraview.0008-ParaView_find_zlib.patch',
+               'paraview.0009-ParaView_volume_mapper.patch',
+               'pv_coincident.patch',
+               'paraview-0012-LATA_64BITS_IDS.patch'
+              ]
+}
+
+version_5_8_0_win_int32 :
 {
     depend : [
               'Python',
@@ -72,6 +115,21 @@ version_5_8_0_win :
 }
 
 version_5_8_0_MPI :
+{
+    archive_info : {archive_name : "ParaView-5.8.0-lata.tar.gz"}
+    patches : ['paraview.0003-ParaViewClient.patch',
+               'paraview.0004-ParaView_hdf5.patch',
+               'paraview.0005-ParaView_find_cgns.patch',
+               'paraview.0006-ParaView_find_libxml2.patch',
+               'paraview.0007-ParaView_find_freetype.patch',
+               'paraview.0009-ParaView_volume_mapper.patch',
+               'paraview.0012-VTKM_MPI.patch',
+               'pv_coincident.patch',
+               'paraview-0012-LATA_64BITS_IDS.patch'
+              ]
+}
+
+version_5_8_0_MPI_int32 :
 {
     archive_info : {archive_name : "ParaView-5.8.0-lata.tar.gz"}
     patches : ['paraview.0003-ParaViewClient.patch',
diff --git a/products/patches/paraview-0012-LATA_64BITS_IDS.patch b/products/patches/paraview-0012-LATA_64BITS_IDS.patch
new file mode 100644 (file)
index 0000000..2ba6665
--- /dev/null
@@ -0,0 +1,1939 @@
+diff -Nur ParaView.orig/Utilities/VisItBridge/databases/readers/Lata/arch.h ParaView/Utilities/VisItBridge/databases/readers/Lata/arch.h
+--- ParaView.orig/Utilities/VisItBridge/databases/readers/Lata/arch.h  2020-12-22 12:04:51.219334522 +0100
++++ ParaView/Utilities/VisItBridge/databases/readers/Lata/arch.h       2020-12-22 12:06:26.188148423 +0100
+@@ -29,6 +29,10 @@
+ #ifndef arch_include_
+ #define arch_include_
+-typedef int entier;
++typedef long entier;
++typedef long integer;
++typedef int True_int;
++#define INT_is_64_
++
+ #endif
+diff -Nur ParaView.orig/Utilities/VisItBridge/databases/readers/Lata/ArrOfBit.C ParaView/Utilities/VisItBridge/databases/readers/Lata/ArrOfBit.C
+--- ParaView.orig/Utilities/VisItBridge/databases/readers/Lata/ArrOfBit.C      2020-03-23 22:18:49.000000000 +0100
++++ ParaView/Utilities/VisItBridge/databases/readers/Lata/ArrOfBit.C   2020-12-22 12:06:26.189148420 +0100
+@@ -31,8 +31,8 @@
+ #include <string.h>
+ //Implemente_instanciable_sans_constructeur_ni_destructeur(ArrOfBit,"ArrOfBit",Objet_U);
+-const unsigned int ArrOfBit::SIZE_OF_INT_BITS = 5;
+-const unsigned int ArrOfBit::DRAPEAUX_INT = 31;
++const unsigned long ArrOfBit::SIZE_OF_INT_BITS = 5;
++const unsigned long ArrOfBit::DRAPEAUX_INT = 31;
+ // Description: Constructeur d'un tableau de taille n, non initialise
+ ArrOfBit::ArrOfBit(entier n)
+@@ -59,7 +59,7 @@
+ }
+ // Description:
+-// Taille en "int" du tableau requis pour stocker un tableau de bits
++// Taille en "long" du tableau requis pour stocker un tableau de bits
+ // de taille donnees.
+ entier ArrOfBit::calculer_int_size(entier taille) const
+ {
+@@ -83,7 +83,7 @@
+     {
+       entier oldsize = calculer_int_size(taille);
+       entier newsize = calculer_int_size(n);
+-      unsigned int * newdata = new unsigned int[newsize];
++      unsigned long * newdata = new unsigned long[newsize];
+       entier size_copy = (newsize > oldsize) ? oldsize : newsize;
+       if (size_copy)
+         {
+@@ -114,11 +114,11 @@
+           data = 0;
+         }
+       if (newsize > 0)
+-        data = new unsigned int[newsize];
++        data = new unsigned long[newsize];
+     }
+   taille = array.taille;
+   if (taille)
+-    memcpy(data, array.data, newsize * sizeof(unsigned int));
++    memcpy(data, array.data, newsize * sizeof(unsigned long));
+   return *this;
+ }
+@@ -127,7 +127,7 @@
+ ArrOfBit& ArrOfBit::operator=(entier val)
+ {
+-  unsigned int valeur = val ? (~((unsigned int) 0)) : 0;
++  unsigned long valeur = val ? (~((unsigned long) 0)) : 0;
+   entier size = calculer_int_size(taille);
+   entier i;
+   for (i = 0; i < size; i++)
+diff -Nur ParaView.orig/Utilities/VisItBridge/databases/readers/Lata/ArrOfBit.h ParaView/Utilities/VisItBridge/databases/readers/Lata/ArrOfBit.h
+--- ParaView.orig/Utilities/VisItBridge/databases/readers/Lata/ArrOfBit.h      2020-03-23 22:18:49.000000000 +0100
++++ ParaView/Utilities/VisItBridge/databases/readers/Lata/ArrOfBit.h   2020-12-22 12:06:26.189148420 +0100
+@@ -55,18 +55,18 @@
+   entier calculer_int_size(entier taille) const;
+ protected:
+   entier taille;
+-  unsigned int *data;
+-  static const unsigned int SIZE_OF_INT_BITS;
+-  static const unsigned int DRAPEAUX_INT;
++  unsigned long *data;
++  static const unsigned long SIZE_OF_INT_BITS;
++  static const unsigned long DRAPEAUX_INT;
+ };
+ // Description: Renvoie 1 si le bit e est mis, 0 sinon.
+ inline entier ArrOfBit::operator[](entier e) const
+ {
+   assert(e >= 0 && e < taille);
+-  unsigned int i = (unsigned int) e;
+-  unsigned int x = data[i >> SIZE_OF_INT_BITS];
+-  unsigned int flag = 1 << (i & DRAPEAUX_INT);
++  unsigned long i = (unsigned long) e;
++  unsigned long x = data[i >> SIZE_OF_INT_BITS];
++  unsigned long flag = 1 << (i & DRAPEAUX_INT);
+   entier resultat = ((x & flag) != 0) ? 1 : 0;
+   return resultat;
+ }
+@@ -75,8 +75,8 @@
+ inline void ArrOfBit::setbit(entier e) const
+ {
+   assert(e >= 0 && e < taille);
+-  unsigned int i = (unsigned int) e;
+-  unsigned int flag = 1 << (i & DRAPEAUX_INT);
++  unsigned long i = (unsigned long) e;
++  unsigned long flag = 1 << (i & DRAPEAUX_INT);
+   data[i >> SIZE_OF_INT_BITS] |= flag;
+ }
+@@ -84,10 +84,10 @@
+ inline entier ArrOfBit::testsetbit(entier e) const
+ {
+   assert(e >= 0 && e < taille);
+-  unsigned int i = (unsigned int) e;
+-  unsigned int flag = 1 << (i & DRAPEAUX_INT);
++  unsigned long i = (unsigned long) e;
++  unsigned long flag = 1 << (i & DRAPEAUX_INT);
+   entier index = i >> SIZE_OF_INT_BITS;
+-  unsigned int old = data[index];
++  unsigned long old = data[index];
+   data[index] = old | flag;
+   return ((old & flag) != 0) ? 1 : 0;
+ }
+@@ -96,8 +96,8 @@
+ inline void ArrOfBit::clearbit(entier e) const
+ {
+   assert(e >= 0 && e < taille);
+-  unsigned int i = (unsigned int) e;
+-  unsigned int flag = 1 << (i & DRAPEAUX_INT);
++  unsigned long i = (unsigned long) e;
++  unsigned long flag = 1 << (i & DRAPEAUX_INT);
+   data[i >> SIZE_OF_INT_BITS] &= ~flag;
+ }
+diff -Nur ParaView.orig/Utilities/VisItBridge/databases/readers/Lata/ArrOfDouble.C ParaView/Utilities/VisItBridge/databases/readers/Lata/ArrOfDouble.C
+--- ParaView.orig/Utilities/VisItBridge/databases/readers/Lata/ArrOfDouble.C   2020-03-23 22:18:49.000000000 +0100
++++ ParaView/Utilities/VisItBridge/databases/readers/Lata/ArrOfDouble.C        2020-12-22 12:06:26.189148420 +0100
+@@ -210,7 +210,7 @@
+ // Description:
+ //     Un nouveau tableau utilise cette zone memoire :
+ //     incremente ref_count
+-// Retour: int
++// Retour: long
+ //    Signification: ref_count
+ inline entier VDoubledata::add_one_ref()
+ {
+@@ -222,7 +222,7 @@
+ //     decremente ref_count
+ // Precondition:
+ //     ref_count_ > 0
+-// Retour: int
++// Retour: long
+ //    Signification: ref_count
+ inline entier VDoubledata::suppr_one_ref()
+ {
+@@ -651,7 +651,7 @@
+ // Precondition:
+ // Parametre: const ArrOfDouble& dx
+ //    Signification: tableau a utiliser
+-// Retour: int
++// Retour: long
+ //    Signification: indice du min
+ entier imin_array(const ArrOfDouble& dx)
+ {
+@@ -679,7 +679,7 @@
+ // Precondition:
+ // Parametre: const ArrOfDouble& dx
+ //    Signification: tableau a utiliser
+-// Retour: int
++// Retour: long
+ //    Signification: indice du max
+ entier imax_array(const ArrOfDouble& dx)
+ {
+@@ -834,7 +834,7 @@
+ //   * annule p_, data_ et size_array_
+ //  Si le tableau est "ref_data" :
+ //   * annule data_ et size_array_
+-// Retour: int
++// Retour: long
+ //    Signification: 1 si les donnees du tableau ont ete supprimees
+ // Precondition:
+ // Postcondition:
+@@ -965,7 +965,7 @@
+ // Description:
+ //    Retourne le nombre de references des donnees du tableau
+ //    si le tableau est "normal", -1 s'il est "detache" ou "ref_data"
+-// Retour: int
++// Retour: long
+ //    Signification: ref_count_
+ entier ArrOfDouble::ref_count() const
+ {
+diff -Nur ParaView.orig/Utilities/VisItBridge/databases/readers/Lata/ArrOfFloat.C ParaView/Utilities/VisItBridge/databases/readers/Lata/ArrOfFloat.C
+--- ParaView.orig/Utilities/VisItBridge/databases/readers/Lata/ArrOfFloat.C    2020-03-23 22:18:49.000000000 +0100
++++ ParaView/Utilities/VisItBridge/databases/readers/Lata/ArrOfFloat.C 2020-12-22 12:06:26.190148418 +0100
+@@ -210,7 +210,7 @@
+ // Description:
+ //     Un nouveau tableau utilise cette zone memoire :
+ //     incremente ref_count
+-// Retour: int
++// Retour: long
+ //    Signification: ref_count
+ inline entier VFloatdata::add_one_ref()
+ {
+@@ -222,7 +222,7 @@
+ //     decremente ref_count
+ // Precondition:
+ //     ref_count_ > 0
+-// Retour: int
++// Retour: long
+ //    Signification: ref_count
+ inline entier VFloatdata::suppr_one_ref()
+ {
+@@ -651,7 +651,7 @@
+ // Precondition:
+ // Parametre: const ArrOfFloat& dx
+ //    Signification: tableau a utiliser
+-// Retour: int
++// Retour: long
+ //    Signification: indice du min
+ entier imin_array(const ArrOfFloat& dx)
+ {
+@@ -679,7 +679,7 @@
+ // Precondition:
+ // Parametre: const ArrOfFloat& dx
+ //    Signification: tableau a utiliser
+-// Retour: int
++// Retour: long
+ //    Signification: indice du max
+ entier imax_array(const ArrOfFloat& dx)
+ {
+@@ -834,7 +834,7 @@
+ //   * annule p_, data_ et size_array_
+ //  Si le tableau est "ref_data" :
+ //   * annule data_ et size_array_
+-// Retour: int
++// Retour: long
+ //    Signification: 1 si les donnees du tableau ont ete supprimees
+ // Precondition:
+ // Postcondition:
+@@ -965,7 +965,7 @@
+ // Description:
+ //    Retourne le nombre de references des donnees du tableau
+ //    si le tableau est "normal", -1 s'il est "detache" ou "ref_data"
+-// Retour: int
++// Retour: long
+ //    Signification: ref_count_
+ entier ArrOfFloat::ref_count() const
+ {
+diff -Nur ParaView.orig/Utilities/VisItBridge/databases/readers/Lata/ArrOfInt.C ParaView/Utilities/VisItBridge/databases/readers/Lata/ArrOfInt.C
+--- ParaView.orig/Utilities/VisItBridge/databases/readers/Lata/ArrOfInt.C      2020-03-23 22:18:49.000000000 +0100
++++ ParaView/Utilities/VisItBridge/databases/readers/Lata/ArrOfInt.C   2020-12-22 12:06:26.190148418 +0100
+@@ -211,7 +211,7 @@
+ // Description:
+ //     Un nouveau tableau utilise cette zone memoire :
+ //     incremente ref_count
+-// Retour: int
++// Retour: long
+ //    Signification: ref_count
+ inline entier VIntdata::add_one_ref()
+ {
+@@ -223,7 +223,7 @@
+ //     decremente ref_count
+ // Precondition:
+ //     ref_count_ > 0
+-// Retour: int
++// Retour: long
+ //    Signification: ref_count
+ inline entier VIntdata::suppr_one_ref()
+ {
+@@ -646,7 +646,7 @@
+ // Precondition:
+ // Parametre: const ArrOfInt& dx
+ //    Signification: tableau a utiliser
+-// Retour: int
++// Retour: long
+ //    Signification: indice du min
+ entier imin_array(const ArrOfInt& dx)
+ {
+@@ -674,7 +674,7 @@
+ // Precondition:
+ // Parametre: const ArrOfInt& dx
+ //    Signification: tableau a utiliser
+-// Retour: int
++// Retour: long
+ //    Signification: indice du max
+ entier imax_array(const ArrOfInt& dx)
+ {
+@@ -824,7 +824,7 @@
+ //   * annule p_, data_ et size_array_
+ //  Si le tableau est "ref_data" :
+ //   * annule data_ et size_array_
+-// Retour: int
++// Retour: long
+ //    Signification: 1 si les donnees du tableau ont ete supprimees
+ // Precondition:
+ // Postcondition:
+@@ -955,7 +955,7 @@
+ // Description:
+ //    Retourne le nombre de references des donnees du tableau
+ //    si le tableau est "normal", -1 s'il est "detache" ou "ref_data"
+-// Retour: int
++// Retour: long
+ //    Signification: ref_count_
+ entier ArrOfInt::ref_count() const
+ {
+diff -Nur ParaView.orig/Utilities/VisItBridge/databases/readers/Lata/ArrOf_Scalar_Prototype.cpp.h ParaView/Utilities/VisItBridge/databases/readers/Lata/ArrOf_Scalar_Prototype.cpp.h
+--- ParaView.orig/Utilities/VisItBridge/databases/readers/Lata/ArrOf_Scalar_Prototype.cpp.h    2020-03-23 22:18:49.000000000 +0100
++++ ParaView/Utilities/VisItBridge/databases/readers/Lata/ArrOf_Scalar_Prototype.cpp.h 2020-12-22 12:06:26.191148416 +0100
+@@ -182,7 +182,7 @@
+ // Description:
+ //     Un nouveau tableau utilise cette zone memoire :
+ //     incremente ref_count
+-// Retour: int
++// Retour: long
+ //    Signification: ref_count
+ inline entier V__Scalar__data::add_one_ref()
+ {
+@@ -194,7 +194,7 @@
+ //     decremente ref_count
+ // Precondition:
+ //     ref_count_ > 0
+-// Retour: int
++// Retour: long
+ //    Signification: ref_count
+ inline entier V__Scalar__data::suppr_one_ref()
+ {
+@@ -628,7 +628,7 @@
+ // Precondition:
+ // Parametre: const ArrOf__Scalar__& dx
+ //    Signification: tableau a utiliser
+-// Retour: int
++// Retour: long
+ //    Signification: indice du min
+ entier imin_array(const ArrOf__Scalar__& dx)
+ {
+@@ -656,7 +656,7 @@
+ // Precondition:
+ // Parametre: const ArrOf__Scalar__& dx
+ //    Signification: tableau a utiliser
+-// Retour: int
++// Retour: long
+ //    Signification: indice du max
+ entier imax_array(const ArrOf__Scalar__& dx)
+ {
+@@ -726,7 +726,7 @@
+ // Description:
+ //   Fonction de comparaison utilisee pour trier le tableau
+ //   dans ArrOf__Scalar__::trier(). Voir man qsort
+-static int fonction_compare_arrof__scalar___ordonner(const void * data1, const void * data2)
++static long fonction_compare_arrof__scalar___ordonner(const void * data1, const void * data2)
+ {
+   const __scalar__ x = *(const __scalar__*)data1;
+   const __scalar__ y = *(const __scalar__*)data2;
+@@ -816,7 +816,7 @@
+ //   * annule p_, data_ et size_array_
+ //  Si le tableau est "ref_data" :
+ //   * annule data_ et size_array_
+-// Retour: int
++// Retour: long
+ //    Signification: 1 si les donnees du tableau ont ete supprimees
+ // Precondition:
+ // Postcondition:
+@@ -947,7 +947,7 @@
+ // Description:
+ //    Retourne le nombre de references des donnees du tableau
+ //    si le tableau est "normal", -1 s'il est "detache" ou "ref_data"
+-// Retour: int
++// Retour: long
+ //    Signification: ref_count_
+ entier ArrOf__Scalar__::ref_count() const
+ {
+diff -Nur ParaView.orig/Utilities/VisItBridge/databases/readers/Lata/EFichier.h ParaView/Utilities/VisItBridge/databases/readers/Lata/EFichier.h
+--- ParaView.orig/Utilities/VisItBridge/databases/readers/Lata/EFichier.h      2020-03-23 22:18:49.000000000 +0100
++++ ParaView/Utilities/VisItBridge/databases/readers/Lata/EFichier.h   2020-12-22 12:06:26.191148416 +0100
+@@ -33,7 +33,7 @@
+ class EFichier : public Entree
+ {
+ public:
+-  int ouvrir(const char *name)
++  long ouvrir(const char *name)
+   {
+     is_.open(name);
+     return is_.good();
+@@ -42,11 +42,11 @@
+   {
+     return is_;
+   }
+-  int eof()
++  long eof()
+   {
+     return is_.eof();
+   }
+-  int good()
++  long good()
+   {
+     return is_.good();
+   }
+diff -Nur ParaView.orig/Utilities/VisItBridge/databases/readers/Lata/Entree.h ParaView/Utilities/VisItBridge/databases/readers/Lata/Entree.h
+--- ParaView.orig/Utilities/VisItBridge/databases/readers/Lata/Entree.h        2020-03-23 22:18:49.000000000 +0100
++++ ParaView/Utilities/VisItBridge/databases/readers/Lata/Entree.h     2020-12-22 12:06:26.191148416 +0100
+@@ -37,8 +37,8 @@
+ {
+ public:
+   virtual operator std::istream& () = 0;
+-  virtual int eof() = 0;
+-  virtual int good() = 0;
++  virtual long eof() = 0;
++  virtual long good() = 0;
+   virtual ~Entree() {};
+   virtual std::istream& get_istream() = 0;
+ };
+diff -Nur ParaView.orig/Utilities/VisItBridge/databases/readers/Lata/LataDB.C ParaView/Utilities/VisItBridge/databases/readers/Lata/LataDB.C
+--- ParaView.orig/Utilities/VisItBridge/databases/readers/Lata/LataDB.C        2020-03-23 22:18:49.000000000 +0100
++++ ParaView/Utilities/VisItBridge/databases/readers/Lata/LataDB.C     2020-12-22 12:06:26.192148414 +0100
+@@ -49,8 +49,8 @@
+ //  Dump detailed subbloc interpretation at level+1
+ #define verb_level_data_bloc 5
+-typedef int LataDBInt32;
+-typedef long long int LataDBInt64;
++typedef long LataDBInt32;
++typedef long long LataDBInt64;
+ void arch_check()
+ {
+@@ -106,7 +106,7 @@
+   field_name_ = n;
+ }
+-int Field_UName::operator==(const Field_UName & f) const
++long Field_UName::operator==(const Field_UName & f) const
+ {
+   return (geometry_ == f.geometry_) && (field_name_ == f.field_name_) && (loc_ == f.loc_);
+ }
+@@ -291,7 +291,7 @@
+       else 
+         {
+           if (msb_ != LataDBDataType::machine_msb_) {
+-            Journal() << "LataDB LataDataFile::write(int) not coded for reverse binary msb" << endl;
++            Journal() << "LataDB LataDataFile::write(long) not coded for reverse binary msb" << endl;
+             throw;
+           }
+           switch(mode) {
+@@ -306,7 +306,7 @@
+       }
+     }
+   }
+-  void set_exception(int i) { exception_ = i; }
++  void set_exception(long i) { exception_ = i; }
+   FileOffset position() { return (*stream_).tellp(); };
+   enum SeekType { ABSOLUTE, RELATIVE };
+   void seek(FileOffset pos, SeekType seekt) {
+@@ -369,7 +369,7 @@
+   std::iostream *stream_; // Points to fstream_ or mem_buffer passed to constructor
+   LataDBDataType::MSB msb_;
+   LataDBDataType::Type type_;
+-  int exception_;
++  long exception_;
+ };
+ void LataDataFile::read(LataDBInt32 *ptr, BigEntier n)
+@@ -381,9 +381,9 @@
+   if (msb_ == LataDBDataType::ASCII) {
+     BigEntier i;
+     if (ptr)
+-      Journal(verb_level_data_bloc+1) << "Reading ascii int data bloc size=" << n << endl;
++      Journal(verb_level_data_bloc+1) << "Reading ascii long data bloc size=" << n << endl;
+     else
+-      Journal(verb_level_data_bloc+1) << "Skipping ascii int data bloc size=" << n << endl;
++      Journal(verb_level_data_bloc+1) << "Skipping ascii long data bloc size=" << n << endl;
+     LataDBInt32 toto;
+     for (i = 0; i < n; i++) {
+       if (ptr)
+@@ -397,15 +397,15 @@
+       }
+     }
+   } else {
+-    if (type_ != LataDBDataType::INT32) {
++    if ((type_ != LataDBDataType::INT64) &&  (type_ != LataDBDataType::INT32)) {
+       Journal() << "Internal error in LataDB.cpp LataDataFile::read(LataDBInt32) : size conversion not coded" << endl;
+       throw;
+     }
+     if (ptr) {
+-      Journal(verb_level_data_bloc+1) << "Reading binary int data bloc size=" << n << endl;
++      Journal(verb_level_data_bloc+1) << "Reading binary long data bloc size=" << n << endl;
+       (*stream_).read((char*)ptr, n * sizeof(LataDBInt32));
+     } else {
+-      Journal(verb_level_data_bloc+1) << "Skipping binary int data bloc size=" << n << endl;
++      Journal(verb_level_data_bloc+1) << "Skipping binary long data bloc size=" << n << endl;
+       seek(n * sizeof(LataDBInt32), RELATIVE);
+     }
+     if (exception_ && !(*stream_).good()) {
+@@ -468,7 +468,7 @@
+ void LataDataFile::write(const LataDBInt32 *ptr, BigEntier n, BigEntier columns)
+ {
+-  Journal(verb_level_data_bloc+1) << "Writing int data bloc size=" << n << endl;
++  Journal(verb_level_data_bloc+1) << "Writing long data bloc size=" << n << endl;
+   if (type_ != LataDBDataType::INT32) {
+     Journal() << "Error in lataDB bloc write: trying to write integer data to non integer file block" << endl;
+     throw LataDBError(LataDBError::DATA_ERROR); 
+@@ -482,7 +482,7 @@
+     }
+   } else {
+     if (msb_ != LataDBDataType::machine_msb_) {
+-      Journal() << "LataDB LataDataFile::write(int) not coded for reverse binary msb" << endl;
++      Journal() << "LataDB LataDataFile::write(long) not coded for reverse binary msb" << endl;
+       throw;
+       // Put code here (and test !) to reverse bytes in the binary bloc:
+     }
+@@ -490,7 +490,7 @@
+   }
+   (*stream_).seekg(0, std::ios::end);
+   if (exception_ && !(*stream_).good()) {
+-    Journal() << "Error writing file " << fname_ << " int[" << n << "]" 
++    Journal() << "Error writing file " << fname_ << " long[" << n << "]" 
+               << endl << message_ << endl;
+     throw LataDBError(LataDBError::DATA_ERROR);
+   }
+@@ -533,7 +533,7 @@
+     return;
+   f.set_err_message("Error reading fortran blocsize");
+   f.set_encoding(type.msb_, type.bloc_marker_type_);
+-  int i;
++  long i;
+   f >> i;
+   Journal(verb_level_data_bloc+1) << "Skipping blocsize marker value=" << i << endl;
+ }
+@@ -567,7 +567,8 @@
+ {
+   f.set_encoding(msb, type);
+   switch(type) {
+-  case LataDBDataType::INT32: f.read((LataDBInt32*) 0, size); break;
++  case LataDBDataType::INT32:
++  case LataDBDataType::INT64: f.read((LataDBInt32*) 0, size); break;
+   case LataDBDataType::REAL32: f.read((float*) 0, size); break;
+   default:
+     Journal() << "Internal error: bloc read skip not code for this type" << endl;
+@@ -592,14 +593,14 @@
+ }
+ void bloc_write(LataDataFile & f, LataDBDataType::MSB msb, LataDBDataType::Type type,
+-                const ArrOfInt & tab, int columns)
++                const ArrOfInt & tab, long columns)
+ {
+   f.set_encoding(msb, type);
+   f.write(tab.addr(), tab.size_array(), columns);
+ }
+ void bloc_write(LataDataFile & f, LataDBDataType::MSB msb, LataDBDataType::Type type,
+-                const ArrOfFloat & tab, int columns)
++                const ArrOfFloat & tab, long columns)
+ {
+   f.set_encoding(msb, type);
+   f.write(tab.addr(), tab.size_array(), columns);
+@@ -812,7 +813,7 @@
+   param = strtoll(s, &errorptr, 0 /* base 10 par defaut */);
+   if (errno || *errorptr != 0) {
+     Journal() << "LataDB::read_master_file error: " << err_msg << endl
+-              << "Error converting a string to type long int : string = " << s << endl;
++              << "Error converting a string to type long long : string = " << s << endl;
+     throw(LataDBError(LataDBError::READ_ERROR));
+   }
+ }
+@@ -852,10 +853,10 @@
+   a faire extraire pour de vrai les differents mots de motlu
+   Nom motlu2(tmp);
+-  int nb_comp=1;
++  long nb_comp=1;
+   {
+     const char *s = tmp;
+-    int p=0;
++    long p=0;
+     while ( ((*s) != 0))
+       {
+         if ((*s) == (','))
+@@ -872,10 +873,10 @@
+   param=Noms(nb_comp);
+   {
+     const char *s=motlu2;
+-    for (int i=0;i<nb_comp;i++)
++    for (long i=0;i<nb_comp;i++)
+       {
+         
+-        int j=motlu2.find(",");
++        long j=motlu2.find(",");
+         if (j==-1) j=0;
+         param[i]=(s+j);
+         cerr<<param[i]<<endl;
+@@ -908,7 +909,7 @@
+ }
+ // We update only fields found in the string
+-// A string can contain both an int type and a float type: we get both in int_type and float_type
++// A string can contain both an long type and a float type: we get both in int_type and float_type
+ static void read_format_string(const Motcle & n, LataDBDataType & data_type, 
+                                LataDBDataType::Type & int_type,
+                                LataDBDataType::Type & float_type)
+@@ -1104,7 +1105,7 @@
+   software_id_ = s; 
+ }
+-int is_med(const char* filename)
++long is_med(const char* filename)
+ {
+   Motcle motcle_nom_fic(filename);
+   
+diff -Nur ParaView.orig/Utilities/VisItBridge/databases/readers/Lata/LataDB.h ParaView/Utilities/VisItBridge/databases/readers/Lata/LataDB.h
+--- ParaView.orig/Utilities/VisItBridge/databases/readers/Lata/LataDB.h        2020-03-23 22:18:49.000000000 +0100
++++ ParaView/Utilities/VisItBridge/databases/readers/Lata/LataDB.h     2020-12-22 12:06:26.192148414 +0100
+@@ -124,7 +124,7 @@
+   Field_UName();
+   Field_UName(const char *domain_name, const char *field_name, const char *loc);
+   Field_UName(const Field_UName &);
+-  int operator==(const Field_UName &) const;
++  long operator==(const Field_UName &) const;
+   Field_UName & operator=(const Field_UName &);
+   Nom build_string() const;
+   const Motcle & get_localisation() const { return loc_; }
+@@ -153,7 +153,7 @@
+   // Field name (without localisation spec)
+   Nom name_;
+   // Where is it ?
+-  int timestep_;
++  long timestep_;
+   // Filename containing the data
+   // Special names: memory_buffer_file() => data stored in the LataDB memory buffer.
+   Nom filename_;
+@@ -239,7 +239,7 @@
+   // Third line in the .lata file
+   Nom software_id_;
+-  LataDBDataType default_type_float() const; // Everything same as int, but type_=default_float_type_
++  LataDBDataType default_type_float() const; // Everything same as long, but type_=default_float_type_
+   LataDBDataType default_type_int_;
+   LataDBDataType::Type default_float_type_;
+diff -Nur ParaView.orig/Utilities/VisItBridge/databases/readers/Lata/LataDBmed.h ParaView/Utilities/VisItBridge/databases/readers/Lata/LataDBmed.h
+--- ParaView.orig/Utilities/VisItBridge/databases/readers/Lata/LataDBmed.h     2020-03-23 22:18:49.000000000 +0100
++++ ParaView/Utilities/VisItBridge/databases/readers/Lata/LataDBmed.h  2020-12-22 12:06:26.193148412 +0100
+@@ -81,7 +81,7 @@
+       case MED_SEG2:
+         type_elem="Segment"; break;
+       default:
+-        Cerr<<"type_geo " << (int)type_geo <<" is not a supported element."<<finl;
++        Cerr<<"type_geo " << (long)type_geo <<" is not a supported element."<<finl;
+       throw;
+         break;
+       }
+@@ -128,12 +128,12 @@
+ extern med_geometry_type typmai3[MED_N_CELL_FIXED_GEO];
+-void latadb_get_info_mesh_med(const char* filename,const char* meshname,med_geometry_type& type_geo,int& ncells,int& nnodes,int& spacedim, int &nbcomp,int& is_structured, std::vector<int>& NIJK)
++void latadb_get_info_mesh_med(const char* filename,const char* meshname,med_geometry_type& type_geo,long& ncells,long& nnodes,long& spacedim, long &nbcomp,long& is_structured, std::vector<long>& NIJK)
+ {
+     is_structured=0;
+-  int meshDim, i;
++  long meshDim, i;
+   try {
+-  std::vector< std::vector< std::pair<INTERP_KERNEL::NormalizedCellType,int> > > res = MEDCoupling::GetUMeshGlobalInfo(filename, meshname, meshDim, spacedim, nnodes);
++  std::vector< std::vector< std::pair<INTERP_KERNEL::NormalizedCellType,long> > > res = MEDCoupling::GetUMeshGlobalInfo(filename, meshname, meshDim, spacedim, nnodes);
+   
+   // on prend que la dimension la plus grande et on verifie que l'on a qu'un type elt 
+@@ -154,7 +154,7 @@
+       //on est force de lire le maillage pour avoir le bon nombre de cellules  
+       MEDCoupling::MEDCouplingUMesh * mesh=  MEDCoupling::ReadUMeshFromFile(filename,meshname);
+       ncells = mesh->getNumberOfCells();
+-      const int *idx = mesh->getNodalConnectivityIndex()->getConstPointer();
++      const long *idx = mesh->getNodalConnectivityIndex()->getConstPointer();
+       for (i = 0, nbcomp = 0; i < ncells; i++) if (nbcomp < idx[i + 1] - idx[i] - 1) nbcomp = idx[i + 1] - idx[i] - 1;
+       mesh->decrRef();
+     }
+@@ -166,7 +166,7 @@
+     // No UMesh try CMesh
+       MEDCoupling::MEDCouplingMesh* mesh=  MEDCoupling::ReadMeshFromFile(filename, meshname);
+       /* 
+-        type_geo,int& ncells,int& nnodes,int& spacedim, int &nbcomp
++        type_geo,long& ncells,long& nnodes,long& spacedim, long &nbcomp
+        */
+       MEDCoupling::MEDCouplingCMesh* cmesh = dynamic_cast<MEDCoupling::MEDCouplingCMesh*>(mesh);
+       spacedim=cmesh-> getSpaceDimension() ;
+@@ -229,17 +229,17 @@
+   
+   vector<double> times;
+   LataDBTimestep  table; 
+-  int first=1;
++  long first=1;
+   
+-  for (int i=0;i<geoms.size();i++)
++  for (long i=0;i<geoms.size();i++)
+     {
+       LataDBGeometry dom;
+       dom.timestep_ = timesteps_.size()-1;
+       dom.name_=geoms[i];
+       med_geometry_type type_geo;
+-      int ncells,nnodes,spacedim, nbcomp;
+-      int is_structured;
+-      std::vector<int> NIJK;
++      long ncells,nnodes,spacedim, nbcomp;
++      long is_structured;
++      std::vector<long> NIJK;
+       latadb_get_info_mesh_med(filename,geoms[i].c_str(),type_geo,ncells,nnodes,spacedim,nbcomp,is_structured,NIJK);
+             
+       dom.elem_type_=latadb_name_from_type_geo(type_geo);
+@@ -261,7 +261,7 @@
+       elem.size_=ncells;
+       elem.datatype_ = default_type_float(); // ??
+-      int dim,ff,ef;
++      long dim,ff,ef;
+       get_element_data(dom.elem_type_, dim, elem.nb_comp_, ff, ef);
+       if (elem.nb_comp_ == -1) elem.nb_comp_ = nbcomp;
+       
+@@ -310,7 +310,7 @@
+   fields= MEDCoupling::GetAllFieldNamesOnMesh(filename,dom.name_.getString());
+   
+-  for (int i=0;i<fields.size();i++)
++  for (long i=0;i<fields.size();i++)
+     {
+       LataDBField som;
+       som.name_ = fields[i];
+@@ -330,7 +330,7 @@
+       // cerr<<"field " <<fields[i]<< " "<< meshname<<" ";
+       vector< MEDCoupling::TypeOfField > ltypes=MEDCoupling::GetTypesOfField(filename,meshname.getString(),fields[i].c_str());
+       //if (ltypes.size()!=1) throw;
+-      for (int t=0;t<ltypes.size();t++)
++      for (long t=0;t<ltypes.size();t++)
+       {
+       switch (ltypes[t])
+       {
+@@ -372,8 +372,8 @@
+       {
+       if (ltypes.size()>1)
+         {
+-          vector<pair< int, int > > iters= MEDCoupling::GetFieldIterations(ltypes[t],filename,meshname.getString(),fields[i].c_str());
+-          for (int iter=0;iter<iters.size();iter++)
++          vector<pair< long, long > > iters= MEDCoupling::GetFieldIterations(ltypes[t],filename,meshname.getString(),fields[i].c_str());
++          for (long iter=0;iter<iters.size();iter++)
+             {
+               double t= MEDCoupling::GetTimeAttachedOnFieldIteration(filename,fields[i].c_str(),iters[iter].first,iters[iter].second);
+               if (first==1)
+@@ -394,8 +394,8 @@
+         }
+       else
+         {
+-          vector<pair<pair<int,int>,double> > vtimes=MEDCoupling::GetAllFieldIterations(filename,/*meshname,*/fields[i].c_str());
+-          for (int it=0;it<vtimes.size();it++)
++          vector<pair<pair<long,long>,double> > vtimes=MEDCoupling::GetAllFieldIterations(filename,/*meshname,*/fields[i].c_str());
++          for (long it=0;it<vtimes.size();it++)
+             {
+               
+               double t=vtimes[it].second;
+@@ -421,17 +421,17 @@
+     }
+     }
+   if (times.size()>0)
+-    for (int i=0;i<times.size();i++)
++    for (long i=0;i<times.size();i++)
+     {
+       
+       //LataDBTimestep & t = timesteps_.add(table);
+       LataDBTimestep& t = timesteps_.add(LataDBTimestep());
+       t.time_=times[i];
+-      for (int f=0;f<table.fields_.size();f++)
++      for (long f=0;f<table.fields_.size();f++)
+       add(i+1,table.fields_[f]);
+     
+     }
+-  for (int i=0;i<times.size()*0;i++)
++  for (long i=0;i<times.size()*0;i++)
+     cerr<<" time "<<times[i]<<endl;
+ }
+@@ -452,8 +452,8 @@
+       MEDCoupling::MEDCouplingUMesh * mesh=  MEDCoupling::ReadUMeshFromFile(fld.filename_.getString(),fld.geometry_.getString());
+       const  MEDCoupling::DataArrayDouble* coords=mesh->getCoords();
+       data->resize(fld.size_,fld.nb_comp_);
+-      for (int i=0;i<fld.size_;i++)
+-      for (int j=0;j<fld.nb_comp_;j++)
++      for (long i=0;i<fld.size_;i++)
++      for (long j=0;j<fld.nb_comp_;j++)
+         {
+           (*data)(i,j)=coords->getIJ(i,j);
+         }
+@@ -468,15 +468,15 @@
+       ArrOfInt filter=renum_conn(type);
+       MEDCoupling::MEDCouplingUMesh * mesh=  MEDCoupling::ReadUMeshFromFile(fld.filename_.getString(),fld.geometry_.getString());
+       const  MEDCoupling::DataArrayInt *elems = mesh->getNodalConnectivity(), *idx = mesh->getNodalConnectivityIndex();
+-      const int *ptr_elems=elems->getConstPointer(), *ptr_idx = idx->getConstPointer();
++      const long *ptr_elems=elems->getConstPointer(), *ptr_idx = idx->getConstPointer();
+       data->resize(fld.size_,fld.nb_comp_);
+-      int compt=0;
+-      for (int i=0;i<fld.size_;i++)
++      long compt=0;
++      for (long i=0;i<fld.size_;i++)
+       {
+           compt++;
+-          for (int j=0;j<fld.nb_comp_;j++)
++          for (long j=0;j<fld.nb_comp_;j++)
+           {
+-              int reel = j + ptr_idx[i] + 1 < ptr_idx[i + 1];
++              long reel = j + ptr_idx[i] + 1 < ptr_idx[i + 1];
+               (*data)(i,filter.size_array()>0 ? filter[j] : j) = reel ? ptr_elems[compt] + 1 : 0;
+               compt += reel;
+           }
+@@ -488,7 +488,7 @@
+       MEDCoupling::MEDCouplingMesh * mesh=  MEDCoupling::ReadMeshFromFile(fld.filename_.getString(),fld.geometry_.getString());
+       data->resize(fld.size_,fld.nb_comp_);
+       MEDCoupling::MEDCouplingCMesh* cmesh = dynamic_cast<MEDCoupling::MEDCouplingCMesh*>(mesh);
+-      int dir;
++      long dir;
+       if (fld.name_=="SOMMETS_IJK_I")
+           dir=0;
+       else  if (fld.name_=="SOMMETS_IJK_J")
+@@ -498,8 +498,8 @@
+       else
+           abort();
+       const MEDCoupling::DataArrayDouble* coords=cmesh->getCoordsAt(dir);
+-      for (int i=0;i<fld.size_;i++)
+-      for (int j=0;j<fld.nb_comp_;j++)
++      for (long i=0;i<fld.size_;i++)
++      for (long j=0;j<fld.nb_comp_;j++)
+         {
+           (*data)(i,j)=coords->getIJ(i,j);
+         }
+@@ -519,11 +519,11 @@
+       fieldname+="_";
+       fieldname+=fld.geometry_;
+       
+-      int ok=0;
++      long ok=0;
+    
+       vector<string> fields= MEDCoupling::GetAllFieldNamesOnMesh(fld.filename_.getString(),fld.geometry_.getString());
+       
+-      for (int f=0;f<fields.size();f++)
++      for (long f=0;f<fields.size();f++)
+       {
+         if (fieldname==fields[f].c_str())
+           {
+@@ -535,10 +535,10 @@
+       {
+         fieldname=fld.name_;
+       }
+-      vector<pair<pair<int,int>,double> > vtimes=MEDCoupling::GetAllFieldIterations(fld.filename_.getString(),fieldname.getString());
++      vector<pair<pair<long,long>,double> > vtimes=MEDCoupling::GetAllFieldIterations(fld.filename_.getString(),fieldname.getString());
+-      int it=fld.timestep_-1;
+-      pair <int,int> iter(fld.timestep_-1,-1);
++      long it=fld.timestep_-1;
++      pair <long,long> iter(fld.timestep_-1,-1);
+       if (fld.timestep_==1) it=0;
+       //Cerr<<iter.first <<" 00 "<<vtimes.size()<<finl;
+     
+@@ -572,9 +572,9 @@
+       {
+         assert(field->getNumberOfComponents()==fld.nb_comp_);
+         const double* ptr=values->getConstPointer();
+-        for (int i=0;i<fld.size_;i++)
++        for (long i=0;i<fld.size_;i++)
+           {
+-            for (int j=0;j<fld.nb_comp_;j++)
++            for (long j=0;j<fld.nb_comp_;j++)
+               {                
+                 (*data)(i,j)=ptr[i*fld.nb_comp_+j];
+               }
+diff -Nur ParaView.orig/Utilities/VisItBridge/databases/readers/Lata/LataFilter.C ParaView/Utilities/VisItBridge/databases/readers/Lata/LataFilter.C
+--- ParaView.orig/Utilities/VisItBridge/databases/readers/Lata/LataFilter.C    2020-03-23 22:18:49.000000000 +0100
++++ ParaView/Utilities/VisItBridge/databases/readers/Lata/LataFilter.C 2020-12-22 12:06:26.193148412 +0100
+@@ -56,7 +56,7 @@
+   char *errorptr = 0;
+   entier x = strtol(ptr+1, &errorptr, 0 /* base 10 par defaut */);
+   if (errno || *errorptr != 0) {
+-    Journal() << "LataOptions error reading int parameter: " << s << endl;
++    Journal() << "LataOptions error reading long parameter: " << s << endl;
+     throw;
+   }
+   return x;
+@@ -521,7 +521,7 @@
+     data.displayed_name_ = lata_geom_name;
+     
+     Nom separ("boundaries_");
+-    int m=data.displayed_name_.find(separ);
++    long m=data.displayed_name_.find(separ);
+     if (m>0)
+       {
+       const Nom& name= data.displayed_name_;
+@@ -990,17 +990,17 @@
+ void LataOptions::extract_path_basename(const char * s, Nom & path_prefix, Nom & basename)
+ {
+-  int i;
+-  for (i=(int)strlen(s)-1;i>=0;i--)
++  long i;
++  for (i=(long)strlen(s)-1;i>=0;i--)
+     if ((s[i]==PATH_SEPARATOR) ||(s[i]=='\\'))
+       break;
+   path_prefix = "";
+-  int j;
++  long j;
+   for (j = 0; j <= i; j++)
+     path_prefix += Nom(s[j]);
+   
+   // Parse basename : if extension given, remove it
+-  int n = (int)strlen(s);
++  long n = (long)strlen(s);
+   if (n > 5 && strcmp(s+n-5,".lata") == 0)
+     n -= 5;
+   basename = "";
+diff -Nur ParaView.orig/Utilities/VisItBridge/databases/readers/Lata/LataFilter.h ParaView/Utilities/VisItBridge/databases/readers/Lata/LataFilter.h
+--- ParaView.orig/Utilities/VisItBridge/databases/readers/Lata/LataFilter.h    2020-03-23 22:18:49.000000000 +0100
++++ ParaView/Utilities/VisItBridge/databases/readers/Lata/LataFilter.h 2020-12-22 12:06:26.194148410 +0100
+@@ -62,19 +62,19 @@
+   bool   reconnect;  // Do we want to reconnect multiblock meshes
+   float  reconnect_tolerance;
+-  int regularize_polyedre ; // if 1 Treate polyedre as poyledre extruder
+-  int    regularize;    // Do we want to force regularize the domain ie convert the mesh to a structured ijk (not necessary except for dual-mesh vdf)
++  long regularize_polyedre ; // if 1 Treate polyedre as poyledre extruder
++  long    regularize;    // Do we want to force regularize the domain ie convert the mesh to a structured ijk (not necessary except for dual-mesh vdf)
+                         // special value 2 means "regularize if faces present and vdf"
+-  int    extend_domain; // Extend the regularized domaine by n layers of cells
++  long    extend_domain; // Extend the regularized domaine by n layers of cells
+   float  regularize_tolerance;
+   bool   invalidate; // invalidate unused positions and connections;
+   bool   load_virtual_elements; // Do we want to extend the loaded mesh subblocks with a layer of virtual elements
+   bool   export_fields_at_faces_; // Should we show these fields in exportable fields
+   
+   // When loading ijk regular meshes, virtually create this number of blocks in the K direction:
+-  int    ijk_mesh_nb_parts_;
++  long    ijk_mesh_nb_parts_;
+   // When loading ijk regular meshes, merge N layers of virtual elements (default=1)
+-  int    ijk_virt_layer;
++  long    ijk_virt_layer;
+   bool   user_fields_; //activate user fields ?
+diff -Nur ParaView.orig/Utilities/VisItBridge/databases/readers/Lata/LataStructures.C ParaView/Utilities/VisItBridge/databases/readers/Lata/LataStructures.C
+--- ParaView.orig/Utilities/VisItBridge/databases/readers/Lata/LataStructures.C        2020-03-23 22:18:49.000000000 +0100
++++ ParaView/Utilities/VisItBridge/databases/readers/Lata/LataStructures.C     2020-12-22 12:06:26.194148410 +0100
+@@ -41,7 +41,7 @@
+   case LataField_base::ELEM: n = nb_elements(); break;
+   case LataField_base::FACES: n = nb_faces(); break;
+   default:
+-    Journal() << "Invalid localisation " << (int) loc << " in Domain::nb_items" << endl;
++    Journal() << "Invalid localisation " << (long) loc << " in Domain::nb_items" << endl;
+     throw;
+   }
+   return n;
+@@ -58,11 +58,11 @@
+   case LataField_base::ELEM: n = decal_elements_lata_; break;
+   case LataField_base::FACES: n = decal_faces_lata_; break;
+   default:
+-    Journal() << "Invalid localisation " << (int) loc << " in Domain::lata_block_offset" << endl;
++    Journal() << "Invalid localisation " << (long) loc << " in Domain::lata_block_offset" << endl;
+     throw;
+   }
+   if (n < 0) {
+-    Journal() << "Error: lata_block_offset not set for localisation " << (int) loc << endl;
++    Journal() << "Error: lata_block_offset not set for localisation " << (long) loc << endl;
+     throw;
+   }
+   return n;
+@@ -76,7 +76,7 @@
+   case LataField_base::ELEM: decal_elements_lata_ = n; break;
+   case LataField_base::FACES: decal_faces_lata_ = n; break;
+   default:
+-    Journal() << "Invalid localisation " << (int) loc << " in Domain::set_lata_block_offset" << endl;
++    Journal() << "Invalid localisation " << (long) loc << " in Domain::set_lata_block_offset" << endl;
+     throw;
+   }
+ }
+@@ -89,11 +89,11 @@
+   const entier nb_som_elem = elements_.dimension(1);
+   const double facteur = 1. / (double) nb_som_elem;
+   double tmp[3];
+-  for (int i = 0; i < nb_elem; i++) {
+-    int j, k;
++  for (long i = 0; i < nb_elem; i++) {
++    long j, k;
+     tmp[0] = tmp[1] = tmp[2] = 0.;
+     for (j = 0; j < nb_som_elem; j++) {
+-      int som = elements_(i, j);
++      long som = elements_(i, j);
+       for (k = 0; k < loop_max(dim, 3); k++) {
+         tmp[k] += nodes_(som, k);
+         break_loop(k, dim);
+diff -Nur ParaView.orig/Utilities/VisItBridge/databases/readers/Lata/LataStructures.h ParaView/Utilities/VisItBridge/databases/readers/Lata/LataStructures.h
+--- ParaView.orig/Utilities/VisItBridge/databases/readers/Lata/LataStructures.h        2020-03-23 22:18:49.000000000 +0100
++++ ParaView/Utilities/VisItBridge/databases/readers/Lata/LataStructures.h     2020-12-22 12:06:26.194148410 +0100
+@@ -43,14 +43,14 @@
+ class Domain_Id
+ {
+ public:
+-  Domain_Id(const char * name = "??", int t = 0, int block = -1) :
++  Domain_Id(const char * name = "??", long t = 0, long block = -1) :
+     name_(name), timestep_(t), block_(block) {};
+   // Domain name
+   Nom name_;
+   // At which timestep (needed for dynamic domains)
+-  int timestep_;
++  long timestep_;
+   // Which block of the parallel computation ? -1 => all blocks
+-  int block_;
++  long block_;
+ };
+ // Description: Field_Id is what you need to identify the content of a
+@@ -60,11 +60,11 @@
+ {
+ public:
+   Field_Id() : timestep_(0) {};
+-  Field_Id(const Field_UName & uname, int timestep, int block) :
++  Field_Id(const Field_UName & uname, long timestep, long block) :
+     timestep_(timestep), block_(block), uname_(uname)  {};
+   
+-  int         timestep_;
+-  int         block_;
++  long         timestep_;
++  long         block_;
+   Field_UName uname_;
+   operator Domain_Id() const { return Domain_Id(uname_.get_geometry(), timestep_, block_); }
+diff -Nur ParaView.orig/Utilities/VisItBridge/databases/readers/Lata/Lata_tools.C ParaView/Utilities/VisItBridge/databases/readers/Lata/Lata_tools.C
+--- ParaView.orig/Utilities/VisItBridge/databases/readers/Lata/Lata_tools.C    2020-03-23 22:18:49.000000000 +0100
++++ ParaView/Utilities/VisItBridge/databases/readers/Lata/Lata_tools.C 2020-12-22 12:06:26.194148410 +0100
+@@ -36,7 +36,7 @@
+ #include <string.h>
+ #include <stdlib.h>
+-static int journal_level = 0;
++static long journal_level = 0;
+ void set_Journal_level(entier level)
+ {
+@@ -89,17 +89,17 @@
+ BigEntier memory_size(const ArrOfBit & tab)
+ {
+-  return ((BigEntier)sizeof(tab)) + ((BigEntier)tab.size_array()) * sizeof(int) / 32; 
++  return ((BigEntier)sizeof(tab)) + ((BigEntier)tab.size_array()) * sizeof(long) / 32; 
+ }
+ void split_path_filename(const char *s, Nom & path, Nom & filename)
+ {
+-  int i;
+-  for (i=(int)strlen(s)-1;i>=0;i--)
++  long i;
++  for (i=(long)strlen(s)-1;i>=0;i--)
+     if ((s[i]==PATH_SEPARATOR) || (s[i]=='\\'))
+       break;
+   path = "";
+-  int j;
++  long j;
+   for (j = 0; j <= i; j++)
+     path += Nom(s[j]);
+   
+diff -Nur ParaView.orig/Utilities/VisItBridge/databases/readers/Lata/LataV1_field_definitions.C ParaView/Utilities/VisItBridge/databases/readers/Lata/LataV1_field_definitions.C
+--- ParaView.orig/Utilities/VisItBridge/databases/readers/Lata/LataV1_field_definitions.C      2020-03-23 22:18:49.000000000 +0100
++++ ParaView/Utilities/VisItBridge/databases/readers/Lata/LataV1_field_definitions.C   2020-12-22 12:06:26.195148408 +0100
+@@ -32,7 +32,7 @@
+ typedef struct {
+   const char * name;
+-  int shape; // Vector size (-1 => dimension of the problem)
++  long shape; // Vector size (-1 => dimension of the problem)
+ } StdComponents;
+ // COMPOSANTES EN MAJUSCULES !!!!!
+@@ -72,7 +72,7 @@
+     // Empty label means end of the table
+   };
+-int latav1_component_shape(const Motcle & compo)
++long latav1_component_shape(const Motcle & compo)
+ {
+   entier i = 0;
+   while (std_components[i].name[0] != 0) {
+diff -Nur ParaView.orig/Utilities/VisItBridge/databases/readers/Lata/LataV1_field_definitions.h ParaView/Utilities/VisItBridge/databases/readers/Lata/LataV1_field_definitions.h
+--- ParaView.orig/Utilities/VisItBridge/databases/readers/Lata/LataV1_field_definitions.h      2020-03-23 22:18:49.000000000 +0100
++++ ParaView/Utilities/VisItBridge/databases/readers/Lata/LataV1_field_definitions.h   2020-12-22 12:06:26.195148408 +0100
+@@ -32,4 +32,4 @@
+ // (separated from LataDB.cpp so that changes in this file are
+ //  easily identified)
+ class Motcle;
+-int latav1_component_shape(const Motcle & compo);
++long latav1_component_shape(const Motcle & compo);
+diff -Nur ParaView.orig/Utilities/VisItBridge/databases/readers/Lata/LataVector.h ParaView/Utilities/VisItBridge/databases/readers/Lata/LataVector.h
+--- ParaView.orig/Utilities/VisItBridge/databases/readers/Lata/LataVector.h    2020-03-23 22:18:49.000000000 +0100
++++ ParaView/Utilities/VisItBridge/databases/readers/Lata/LataVector.h 2020-12-22 12:06:26.195148408 +0100
+@@ -41,19 +41,19 @@
+   LataVector(const LataVector<C> & x) : n_(0), data_(0) { operator=(x); }
+   LataVector(entier n) : n_(0), data_(0) { for (entier i=0; i<n; i++) add(); }
+   ~LataVector() { reset(); }
+-  void reset() { for (int i=0; i<n_; i++) { delete data_[i]; }; delete[] data_; n_ = 0; data_ = 0; }
++  void reset() { for (long i=0; i<n_; i++) { delete data_[i]; }; delete[] data_; n_ = 0; data_ = 0; }
+   const C & operator[](entier i) const { assert(i>=0 && i<n_); return *(data_[i]); }
+   C & operator[](entier i) { assert(i>=0 && i<n_); return *(data_[i]); }
+   C & add(const C & item) { return add_item(new C(item)); }
+   C & add() { return add_item(new C); }
+   entier size() const { return n_; }
+   entier rang(const C & c) const { for (entier i = 0; i < n_; i++) if (*(data_[i]) == c) return i; return -1; }
+-  LataVector<C> & operator=(const LataVector<C> & x) { reset(); for (int i=0; i<x.n_; i++) add(x[i]); return *this; }
++  LataVector<C> & operator=(const LataVector<C> & x) { reset(); for (long i=0; i<x.n_; i++) add(x[i]); return *this; }
+ private:
+   C & add_item(C* added_item) {
+     C** old = data_; 
+     data_ = new C*[n_+1]; 
+-    for (int i=0; i<n_; i++) data_[i] = old[i]; 
++    for (long i=0; i<n_; i++) data_[i] = old[i]; 
+     delete[] old;
+     data_[n_++] = added_item;
+     return *added_item;
+diff -Nur ParaView.orig/Utilities/VisItBridge/databases/readers/Lata/LmlReader.C ParaView/Utilities/VisItBridge/databases/readers/Lata/LmlReader.C
+--- ParaView.orig/Utilities/VisItBridge/databases/readers/Lata/LmlReader.C     2020-03-23 22:18:49.000000000 +0100
++++ ParaView/Utilities/VisItBridge/databases/readers/Lata/LmlReader.C  2020-12-22 12:06:26.195148408 +0100
+@@ -114,7 +114,7 @@
+       Journal(lmllevel) << "lml_reader: GRILLE " << geom.name_ << endl;
+       is >> sommets.nb_comp_;
+       {
+-      int tmp;
++      long tmp;
+       is >> tmp; 
+       sommets.size_ = tmp; // size_ est long long...
+       }
+@@ -160,12 +160,12 @@
+         throw;
+       }
+       {
+-      int tmp;
++      long tmp;
+       is >> tmp; // size_ est long long...
+       elements.size_ = tmp;
+       }
+       is >> motlu;
+-      int borne_index_min=0;
++      long borne_index_min=0;
+       if (motlu == "TETRA4") {
+         lata_db.set_elemtype(tstep, elements.geometry_, "TETRAEDRE");
+         elements.nb_comp_ = 4;
+@@ -229,7 +229,7 @@
+       if (data_filename)
+         lata_db.write_data(tstep, elements.uname_, elems);
+     } else if (motlu == "FACE") {
+-      int n;
++      long n;
+       is >> n;
+       if (!is.good())
+         throw LataDBError(LataDBError::READ_ERROR);
+@@ -291,7 +291,7 @@
+       if (!is.good())
+         throw LataDBError(LataDBError::READ_ERROR);
+       {
+-      int tmp;
++      long tmp;
+       is >> tmp;
+       field.size_ = tmp; // long long convert
+       }
+diff -Nur ParaView.orig/Utilities/VisItBridge/databases/readers/Lata/Motcle.C ParaView/Utilities/VisItBridge/databases/readers/Lata/Motcle.C
+--- ParaView.orig/Utilities/VisItBridge/databases/readers/Lata/Motcle.C        2020-03-23 22:18:49.000000000 +0100
++++ ParaView/Utilities/VisItBridge/databases/readers/Lata/Motcle.C     2020-12-22 12:06:26.196148405 +0100
+@@ -34,8 +34,8 @@
+ #include <string>
+ Nom& Nom::majuscule()
+ {
+-  const int n = longueur()-1;
+-  for (int i = 0; i < n; i++)
++  const long n = longueur()-1;
++  for (long i = 0; i < n; i++)
+     {
+       char c = s_[i];
+       if (c >= 'a' && c <= 'z')
+@@ -54,7 +54,7 @@
+ // opt=0 => comparaison des chaines completes
+ // opt=1 => le debut de n1 doit etre egal a n2
+-int Motcle::strcmp_uppercase(const char *n1, const char *n2, int opt)
++long Motcle::strcmp_uppercase(const char *n1, const char *n2, long opt)
+ {
+   entier i = 0;
+   unsigned char c1, c2;
+@@ -76,17 +76,17 @@
+   return delta;
+ }
+-int Nom::debute_par(const char * s) const
++long Nom::debute_par(const char * s) const
+ {
+-  const int l1 = longueur()-1;
+-  const int l2 = (int)strlen(s);
++  const long l1 = longueur()-1;
++  const long l2 = (long)strlen(s);
+   return (l1>=l2) ? (strncmp(s_.c_str(), s, l2) == 0) : 0;
+ }
+-int Nom::finit_par(const char * s) const
++long Nom::finit_par(const char * s) const
+ {
+-  const int l1 = longueur()-1;
+-  const int l2 = (int)strlen(s);
++  const long l1 = longueur()-1;
++  const long l2 = (long)strlen(s);
+   return (l1>=l2) ? (strncmp(s_.c_str()+(l1-l2), s, l2) == 0) : 0;
+ }
+@@ -107,15 +107,15 @@
+   return *this;
+ }
+-int Motcle::debute_par(const char * s) const
++long Motcle::debute_par(const char * s) const
+ {
+   return (strcmp_uppercase(s_.c_str(), s, 1) == 0);
+ }
+-int Motcle::finit_par(const char * s) const
++long Motcle::finit_par(const char * s) const
+ {
+-  const int l1 = longueur()-1;
+-  const int l2 = (int)strlen(s);
++  const long l1 = longueur()-1;
++  const long l2 = (long)strlen(s);
+   return (l1>=l2) ? (strcmp_uppercase(s_.c_str()+(l1-l2), s) == 0) : 0;
+ }
+diff -Nur ParaView.orig/Utilities/VisItBridge/databases/readers/Lata/Motcle.h ParaView/Utilities/VisItBridge/databases/readers/Lata/Motcle.h
+--- ParaView.orig/Utilities/VisItBridge/databases/readers/Lata/Motcle.h        2020-03-23 22:18:49.000000000 +0100
++++ ParaView/Utilities/VisItBridge/databases/readers/Lata/Motcle.h     2020-12-22 12:06:26.196148405 +0100
+@@ -61,7 +61,7 @@
+   {
+     s_ = c;
+   };
+-  Nom(int i)
++  Nom(long i)
+   {
+     char s[30];
+     sprintf(s, "%d", i);
+@@ -88,11 +88,11 @@
+   {
+     os << s_;
+   }
+-  virtual int operator==(const char * s) const
++  virtual long operator==(const char * s) const
+   {
+     return (s_ == s);
+   }
+-  virtual int operator!=(const char * s) const
++  virtual long operator!=(const char * s) const
+   {
+     return !operator==(s);
+   }
+@@ -102,8 +102,8 @@
+     return *this;
+   }
+   virtual entier find(const char * n) const;
+-  virtual int debute_par(const char * s) const;
+-  virtual int finit_par(const char * s) const;
++  virtual long debute_par(const char * s) const;
++  virtual long finit_par(const char * s) const;
+   virtual Nom& prefix(const char * s);
+   Nom&          majuscule();
+ protected:
+@@ -118,11 +118,11 @@
+   Motcle(const char * s) : Nom(s) {};
+   Motcle(const Nom& n) : Nom(n) {};
+   ~Motcle() {};
+-  int operator==(const char * s) const
++  long operator==(const char * s) const
+   {
+     return (strcmp_uppercase(s_.c_str(), s) == 0);
+   }
+-  int operator!=(const char * s) const
++  long operator!=(const char * s) const
+   {
+     return !operator==(s);
+   }
+@@ -131,10 +131,10 @@
+     s_ += n;
+     return *this;
+   }
+-  int debute_par(const char * s) const;
+-  int finit_par(const char * s) const;
++  long debute_par(const char * s) const;
++  long finit_par(const char * s) const;
+-  static int strcmp_uppercase(const char * s1, const char * s2, int opt = 0);
++  static long strcmp_uppercase(const char * s1, const char * s2, long opt = 0);
+   virtual entier find(const char * n) const
+   {
+     return Nom(*this).majuscule().find(Nom(n).majuscule());
+diff -Nur ParaView.orig/Utilities/VisItBridge/databases/readers/Lata/OpenDXWriter.C ParaView/Utilities/VisItBridge/databases/readers/Lata/OpenDXWriter.C
+--- ParaView.orig/Utilities/VisItBridge/databases/readers/Lata/OpenDXWriter.C  2020-03-23 22:18:49.000000000 +0100
++++ ParaView/Utilities/VisItBridge/databases/readers/Lata/OpenDXWriter.C       2020-12-22 12:06:26.196148405 +0100
+@@ -39,14 +39,14 @@
+ {
+ public:
+   DX_stream() : os_to_cout_(0), os_(0) {};
+-  void init_cout(int is_ascii) 
++  void init_cout(long is_ascii) 
+   { 
+     reset();
+     os_to_cout_ = 1;
+     ascii_ = is_ascii;
+     os_ = &std::cout;
+   }
+-  void init_file(const char *fname, int is_ascii)
++  void init_file(const char *fname, long is_ascii)
+   {
+     reset();
+     os_to_cout_ = 0;
+@@ -62,17 +62,17 @@
+     os_to_cout_ = 0;
+   }
+   DX_stream & operator<<(const float f) { (*os_) << f; return *this; }
+-  DX_stream & operator<<(const int i) { (*os_) << i; return *this; }
++  DX_stream & operator<<(const long i) { (*os_) << i; return *this; }
+   DX_stream & operator<<(const char * s) { (*os_) << s; return *this; }
+   DX_stream & operator<<(DX_stream & f(DX_stream &)) { return f(*this); }
+-  void write(char * ptr, int sz) { os_->write(ptr, sz); }
++  void write(char * ptr, long sz) { os_->write(ptr, sz); }
+   entier ok() { return os_ != 0; }
+   entier ascii() { return ascii_; }
+   std::ostream & stream() { return *os_; }
+ protected:
+-  int os_to_cout_;
+-  int ascii_;
++  long os_to_cout_;
++  long ascii_;
+   std::ostream *os_;
+ };
+@@ -82,9 +82,9 @@
+   return os; 
+ }
+-void DX_write_vect(DX_stream & os, int dxobject, const ArrOfFloat & v)
++void DX_write_vect(DX_stream & os, long dxobject, const ArrOfFloat & v)
+ {
+-  const int places = v.size_array();
++  const long places = v.size_array();
+   os << "object " << dxobject << " class array" << endl;
+   os << "type float rank 1 shape 1 items " << places << " ";
+@@ -93,16 +93,16 @@
+     os.write((char*)v.addr(), sizeof(float) * places);
+   } else {
+     os << "ascii data follows" << endl;
+-    for (int i=0;i<places;i++) {
++    for (long i=0;i<places;i++) {
+       os << v[i] << " ";
+       os << endl;
+     }
+   }
+ }
+-void DX_write_vect(DX_stream & os, int dxobject, const FloatTab & v)
++void DX_write_vect(DX_stream & os, long dxobject, const FloatTab & v)
+ {
+-  const int places = v.dimension(0);
+-  const int shape  = v.dimension(1);
++  const long places = v.dimension(0);
++  const long shape  = v.dimension(1);
+   os << "object " << dxobject << " class array" << endl;
+   os << "type float rank 1 shape " << shape << " items " << places << " ";
+@@ -111,32 +111,32 @@
+     os.write((char*)v.addr(), sizeof(float) * places * shape);
+   } else {
+     os << "ascii data follows" << endl;
+-    for (int i=0;i<places;i++) {
+-      for (int j=0;j<shape;j++)
++    for (long i=0;i<places;i++) {
++      for (long j=0;j<shape;j++)
+         os << v(i, j) << " ";
+       os << endl;
+     }
+   }
+ }
+-void DX_write_vect(DX_stream & os, int dxobject, const IntTab & v)
++void DX_write_vect(DX_stream & os, long dxobject, const IntTab & v)
+ {
+-  if (sizeof(int) != 4) {
+-    Journal() << "Error DX_write_vect : int size != 32 bits" << endl;
++  if (sizeof(long) != 4) {
++    Journal() << "Error DX_write_vect : long size != 32 bits" << endl;
+     throw OpenDXWriter::DXInternalError;
+   }
+-  const int places = v.dimension(0);
+-  const int shape  = v.dimension(1);
++  const long places = v.dimension(0);
++  const long shape  = v.dimension(1);
+   os << "object " << dxobject << " class array" << endl;
+-  os << "type int rank 1 shape " << shape << " items " << places << " ";
++  os << "type long rank 1 shape " << shape << " items " << places << " ";
+   if (!os.ascii()) {
+     os << (mymachine_msb ? "msb ieee" : "lsb ieee") << " data follows" << endl;
+-    os.write((char*)v.addr(), sizeof(int) * places * shape);
++    os.write((char*)v.addr(), sizeof(long) * places * shape);
+   } else {
+     os << "ascii data follows" << endl;
+-    for (int i=0;i<places;i++) {
+-      for (int j=0;j<shape;j++)
++    for (long i=0;i<places;i++) {
++      for (long j=0;j<shape;j++)
+         os << v(i, j) << " ";
+       os << endl;
+     }
+@@ -163,7 +163,7 @@
+   finish_geometry(); // reset geometry data
+ }
+-void OpenDXWriter::init_cout(double time, int ascii)
++void OpenDXWriter::init_cout(double time, long ascii)
+ {
+   reset();
+   os_->init_cout(ascii);
+@@ -174,7 +174,7 @@
+   DX_write_vect(*os_, dx_time_index_, t);
+ }
+-void OpenDXWriter::init_file(double time, Nom & filename_, int ascii)
++void OpenDXWriter::init_file(double time, Nom & filename_, long ascii)
+ {
+   reset();
+   os_->init_file(filename_, ascii);
+@@ -319,7 +319,7 @@
+   components_names_.add(n);
+ }
+-entier OpenDXWriter::finish(int force_group)
++entier OpenDXWriter::finish(long force_group)
+ {
+   DX_stream & os = *os_;
+   finish_geometry();
+diff -Nur ParaView.orig/Utilities/VisItBridge/databases/readers/Lata/OpenDXWriter.h ParaView/Utilities/VisItBridge/databases/readers/Lata/OpenDXWriter.h
+--- ParaView.orig/Utilities/VisItBridge/databases/readers/Lata/OpenDXWriter.h  2020-03-23 22:18:49.000000000 +0100
++++ ParaView/Utilities/VisItBridge/databases/readers/Lata/OpenDXWriter.h       2020-12-22 12:06:26.197148403 +0100
+@@ -48,32 +48,32 @@
+ public:
+   OpenDXWriter();
+   ~OpenDXWriter();
+-  void init_cout(double time, int ascii = 0);
+-  void init_file(double time, Nom & filename_, int ascii = 0);
++  void init_cout(double time, long ascii = 0);
++  void init_file(double time, Nom & filename_, long ascii = 0);
+   void write_geometry(const Domain & dom);
+   void write_component(const LataField_base & field);
+-  entier finish(int force_group = 0);
++  entier finish(long force_group = 0);
+   enum DXErrors { DXInternalError };
+ protected:
+   void reset();
+   void finish_geometry();
+-  int dx_time_index_;
+-  int index_counter_;
++  long dx_time_index_;
++  long index_counter_;
+   // Indexes of all DXfield objects in the file (to build the final group)
+   ArrOfInt fields_indexes_;
+   // Names of the DXfields:
+   Noms fields_names_;
+   // Index of the nodes array of the last geometry
+-  int nodes_index_;
++  long nodes_index_;
+   // Index of the elements array of the last geometry
+-  int elements_index_;
++  long elements_index_;
+   // Index of these arrays:
+-  int invalid_positions_;
+-  int invalid_connections_;
++  long invalid_positions_;
++  long invalid_connections_;
+   // Indexes of the components associated with the last geometry
+   ArrOfInt components_indexes_;
+   Noms components_names_;
+diff -Nur ParaView.orig/Utilities/VisItBridge/databases/readers/Lata/OperatorBoundary.C ParaView/Utilities/VisItBridge/databases/readers/Lata/OperatorBoundary.C
+--- ParaView.orig/Utilities/VisItBridge/databases/readers/Lata/OperatorBoundary.C      2020-03-23 22:18:49.000000000 +0100
++++ ParaView/Utilities/VisItBridge/databases/readers/Lata/OperatorBoundary.C   2020-12-22 12:06:26.197148403 +0100
+@@ -50,7 +50,7 @@
+       { 2, 3, 6, 7 },
+       { 4, 5, 6, 7 } };
+-  int i, j;
++  long i, j;
+   switch(elt_type) {
+   case Domain::tetra:
+     ref_elem_face.resize(4,3);
+@@ -95,8 +95,8 @@
+   op.src_element_.set_smart_resize(1);
+   op.src_face_.set_smart_resize(1);
+   op.src_nodes_.set_smart_resize(1);
+-  const int nb_nodes_per_face = element_faces.dimension(1);
+-  const int nb_faces_per_element = element_faces.dimension(0);
++  const long nb_nodes_per_face = element_faces.dimension(1);
++  const long nb_faces_per_element = element_faces.dimension(0);
+   ArrOfInt one_face(nb_nodes_per_face);
+   ArrOfInt adjacent_elements;
+@@ -114,8 +114,8 @@
+   for (element_index = 0; element_index < nelem; element_index++) {
+     for (local_face_index = 0; local_face_index < nb_faces_per_element; local_face_index++) {
+       for (i = 0; i < nb_nodes_per_face; i++) {
+-        int local_node = element_faces(local_face_index, i);
+-        int node = src.elements_(element_index, local_node);
++        long local_node = element_faces(local_face_index, i);
++        long node = src.elements_(element_index, local_node);
+         one_face[i] = node;
+       }
+       find_adjacent_elements(som_elem, one_face, adjacent_elements);
+diff -Nur ParaView.orig/Utilities/VisItBridge/databases/readers/Lata/OperatorDualMesh.C ParaView/Utilities/VisItBridge/databases/readers/Lata/OperatorDualMesh.C
+--- ParaView.orig/Utilities/VisItBridge/databases/readers/Lata/OperatorDualMesh.C      2020-03-23 22:18:49.000000000 +0100
++++ ParaView/Utilities/VisItBridge/databases/readers/Lata/OperatorDualMesh.C   2020-12-22 12:06:26.197148403 +0100
+@@ -41,7 +41,7 @@
+     Journal() << "Error in OperatorDualMesh::build_geometry: source domain has no faces data" << endl;
+     throw;
+   }
+-  const int max_nb_som_face = 3; // for tetrahedra
++  const long max_nb_som_face = 3; // for tetrahedra
+   if (src.elt_type_ != Domain::triangle && src.elt_type_ != Domain::tetra) {
+     Journal() << "Error in OperatorDualMesh::build_geometry: cannot operate on unstructured mesh with this element type" << endl;
+     throw;
+@@ -63,13 +63,13 @@
+   const entier nb_som_face = src.faces_.dimension(1);
+   const entier nb_som_elem = src.elements_.dimension(1);
+   dest.elements_.resize(nb_elem * nb_faces_elem, nb_som_elem);
+-  int index = 0;
+-  for (int i = 0; i < nb_elem; i++) {
+-    const int central_node = nb_som + i;
+-    for (int j = 0; j < nb_faces_elem; j++) {
+-      const int face = src.elem_faces_(i, j);
++  long index = 0;
++  for (long i = 0; i < nb_elem; i++) {
++    const long central_node = nb_som + i;
++    for (long j = 0; j < nb_faces_elem; j++) {
++      const long face = src.elem_faces_(i, j);
+       dest.elements_(index, 0) = central_node;
+-      for (int k = 0; k < loop_max(nb_som_face, max_nb_som_face); k++) {
++      for (long k = 0; k < loop_max(nb_som_face, max_nb_som_face); k++) {
+         dest.elements_(index, k+1) = src.faces_(face, k);
+         break_loop(k, nb_som_face);
+       }
+@@ -99,11 +99,11 @@
+   const entier nb_face_elem = src_domain.elem_faces_.dimension(1);
+   const entier nb_comp = src.data_.dimension(1);
+   dest.data_.resize(nb_elem * nb_face_elem, nb_comp);
+-  int index = 0;
+-  for (int i = 0; i < nb_elem; i++) {
+-    for (int j = 0; j < nb_face_elem; j++) {
+-      const int face = src_domain.elem_faces_(i, j);
+-      for (int k = 0; k < nb_comp; k++)
++  long index = 0;
++  for (long i = 0; i < nb_elem; i++) {
++    for (long j = 0; j < nb_face_elem; j++) {
++      const long face = src_domain.elem_faces_(i, j);
++      for (long k = 0; k < nb_comp; k++)
+         dest.data_(index, k) = src.data_(face, k);
+       index++;
+     }
+@@ -125,9 +125,9 @@
+   for (entier i_dim = 0; i_dim < dim; i_dim++) {
+     const ArrOfFloat & c1 = src.coord_[i_dim];
+     ArrOfFloat & c2 = dest.coord_.add(ArrOfFloat());
+-    const int n = c1.size_array() - 1;
++    const long n = c1.size_array() - 1;
+     c2.resize_array(n*2+1);
+-    for (int i = 0; i < n; i++) {
++    for (long i = 0; i < n; i++) {
+       c2[i*2] = c1[i];
+       c2[i*2+1] = (c1[i] + c1[i+1]) * 0.5;
+     }
+@@ -137,20 +137,20 @@
+   if (src.invalid_connections_.size_array() > 0) {
+     dest.invalid_connections_.resize_array(dest.nb_elements());
+     dest.invalid_connections_ = 0;
+-    int index = 0;
++    long index = 0;
+     
+     const entier ni = dest.coord_[0].size_array()-1;
+     const entier nj = dest.coord_[1].size_array()-1;
+     const entier nk = (dim==3) ? (dest.coord_[2].size_array()-1) : 1;
+     const entier ni_src = src.coord_[0].size_array() - 1;
+     const entier nj_src = src.coord_[1].size_array() - 1;
+-    for (int k = 0; k < nk; k++) {
+-      const int k_src = k / 2;
+-      for (int j = 0; j < nj; j++) {
+-        const int j_src = j / 2;
+-        const int idx_source = (k_src * nj_src + j_src) * ni_src;
+-        for (int i = 0; i < ni; i++) {
+-          const int idx = idx_source + i / 2;
++    for (long k = 0; k < nk; k++) {
++      const long k_src = k / 2;
++      for (long j = 0; j < nj; j++) {
++        const long j_src = j / 2;
++        const long idx_source = (k_src * nj_src + j_src) * ni_src;
++        for (long i = 0; i < ni; i++) {
++          const long idx = idx_source + i / 2;
+           if (src.invalid_connections_[idx])
+             dest.invalid_connections_.setbit(index);
+           index++;
+@@ -175,7 +175,7 @@
+   dest.localisation_ = LataField_base::ELEM;
+   dest.nature_ = LataDBField::VECTOR;
+   const entier dim = src_domain.dimension();
+-  int index = 0;
++  long index = 0;
+   // Loop on destination elements
+   const entier ni = dest_domain.coord_[0].size_array()-1;
+@@ -184,15 +184,15 @@
+   dest.data_.resize(ni*nj*nk, dim);
+   const entier ni_src = src_domain.coord_[0].size_array();
+   const entier nj_ni_src = src_domain.coord_[1].size_array() * ni_src;
+-  for (int k = 0; k < nk; k++) {
+-    const int k2 = k/2;
+-    const int k3 = (k+1)/2;
+-    for (int j = 0; j < nj; j++) {
+-      const int j2 = j/2;
+-      const int j3 = (j+1)/2;
+-      for (int i = 0; i < ni; i++) {
+-        const int i2 = i/2;
+-        const int i3 = (i+1)/2;
++  for (long k = 0; k < nk; k++) {
++    const long k2 = k/2;
++    const long k3 = (k+1)/2;
++    for (long j = 0; j < nj; j++) {
++      const long j2 = j/2;
++      const long j3 = (j+1)/2;
++      for (long i = 0; i < ni; i++) {
++        const long i2 = i/2;
++        const long i3 = (i+1)/2;
+         dest.data_(index, 0) = src.data_(IJK(i3,j2,k2), 0);
+         dest.data_(index, 1) = src.data_(IJK(i2,j3,k2), 1);
+         if (dim==3)
+diff -Nur ParaView.orig/Utilities/VisItBridge/databases/readers/Lata/OperatorFacesMesh.C ParaView/Utilities/VisItBridge/databases/readers/Lata/OperatorFacesMesh.C
+--- ParaView.orig/Utilities/VisItBridge/databases/readers/Lata/OperatorFacesMesh.C     2020-03-23 22:18:49.000000000 +0100
++++ ParaView/Utilities/VisItBridge/databases/readers/Lata/OperatorFacesMesh.C  2020-12-22 12:06:26.197148403 +0100
+@@ -41,7 +41,7 @@
+     Journal() << "Error in OperatorFacesMesh::build_geometry: source domain has no faces data" << endl;
+     throw;
+   }
+-  // const int max_nb_som_face = 3; // for tetrahedra
++  // const long max_nb_som_face = 3; // for tetrahedra
+   if (src.elt_type_ != Domain::triangle && src.elt_type_ != Domain::polygone && src.elt_type_ != Domain::tetra && src.elt_type_ != Domain::polyedre) {
+     Journal() << "Error in OperatorFacesMesh::build_geometry: cannot operate on unstructured mesh with this element type" << endl;
+     throw;
+diff -Nur ParaView.orig/Utilities/VisItBridge/databases/readers/Lata/OperatorRegularize.C ParaView/Utilities/VisItBridge/databases/readers/Lata/OperatorRegularize.C
+--- ParaView.orig/Utilities/VisItBridge/databases/readers/Lata/OperatorRegularize.C    2020-03-23 22:18:49.000000000 +0100
++++ ParaView/Utilities/VisItBridge/databases/readers/Lata/OperatorRegularize.C 2020-12-22 12:06:26.198148401 +0100
+@@ -32,12 +32,12 @@
+ #define verb_level 4
+-template<class T, class Tab> int search_in_ordered_vect(T x, const Tab & v, const T epsilon) {
++template<class T, class Tab> long search_in_ordered_vect(T x, const Tab & v, const T epsilon) {
+   if (!v.size_array())
+     return -1;
+-  int i1=0;
+-  int i;
+-  int i2 = (int)v.size_array()-1;
++  long i1=0;
++  long i;
++  long i2 = (long)v.size_array()-1;
+   while (i1 != i2) {
+     i = (i1+i2)/2;
+     if (epsilon+ v[i] < x)
+@@ -56,9 +56,9 @@
+ template<class T, class Tab>
+ static void retirer_doublons(Tab & tab, const T epsilon)
+ {
+-  int i = 0;
+-  int j;
+-  const int n = tab.size_array();
++  long i = 0;
++  long j;
++  const long n = tab.size_array();
+   T last_tab_i = -1e40;
+   for (j = 0; j < n; j++) {
+     const T x = tab[j];
+@@ -124,18 +124,18 @@
+       throw;
+     }
+   }
+-  int i;
++  long i;
+   op.renum_nodes_.resize_array(nsom);
+-  int nb_som_ijk = 1;
++  long nb_som_ijk = 1;
+   for (i = 0; i < dim; i++) 
+     nb_som_ijk *= nb_som_dir[i];
+   IntTab ijk_indexes;
+   ijk_indexes.resize(nsom, dim);
+   for (i = 0; i < nsom; i++) {
+     entier ijk_index = 0;
+-    for (int j = dim-1; j >= 0; j--) {
++    for (long j = dim-1; j >= 0; j--) {
+       const double x = src.nodes_(i,j);
+-      int index = search_in_ordered_vect(x, dest.coord_[j],op.tolerance_);
++      long index = search_in_ordered_vect(x, dest.coord_[j],op.tolerance_);
+       if (index < 0) {
+         Journal() << "Error: coordinate (" << i << "," << j << ") = " << x << " not found in regularize" << endl
+                   << "Try reducing regularize tolerance value (option regularize=epsilon)" << endl;
+@@ -148,26 +148,26 @@
+     }
+     op.renum_nodes_[i] = ijk_index;
+   }
+-  const int max_index = max_array(nb_som_dir);
+-  int nb_elems_ijk = 1;
++  const long max_index = max_array(nb_som_dir);
++  long nb_elems_ijk = 1;
+   for (i = 0; i < dim; i++)
+     nb_elems_ijk *= nb_som_dir[i] - 1;
+   dest.invalid_connections_.resize_array(nb_elems_ijk);
+   dest.invalid_connections_ = 1; // Everything invalid by default
+-  const int nelem = src.elements_.dimension(0);
+-  const int nb_som_elem = src.elements_.dimension(1);
++  const long nelem = src.elements_.dimension(0);
++  const long nb_som_elem = src.elements_.dimension(1);
+   op.renum_elements_.resize_array(nelem);
+   // Pour chaque element, indice dans le maillage ijk du plus sommet le plus proche de l'origine
+   // (pour les faces...)
+   ArrOfInt idx_elem_som;
+   idx_elem_som.resize_array(nelem);
+-  int min_index[3];
++  long min_index[3];
+   for (i = 0; i < nelem; i++) {
+     min_index[0] = min_index[1] = min_index[2] = max_index;
+-    for (int j = 0; j < nb_som_elem; j++) {
+-      int node = src.elements_(i,j);
+-      for (int k = 0; k < loop_max(dim, 3); k++) {
+-        int idx = ijk_indexes(node, k);
++    for (long j = 0; j < nb_som_elem; j++) {
++      long node = src.elements_(i,j);
++      for (long k = 0; k < loop_max(dim, 3); k++) {
++        long idx = ijk_indexes(node, k);
+         min_index[k] = (idx < min_index[k]) ? idx : min_index[k];
+         break_loop(k,dim);
+       }
+@@ -191,10 +191,10 @@
+   }
+   
+   if (src.faces_ok()) {
+-    const int nfaces = src.faces_.dimension(0);
++    const long nfaces = src.faces_.dimension(0);
+     op.renum_faces_.resize_array(nfaces);
+     op.renum_faces_ = -1;
+-    const int nb_elem_face = src.elem_faces_.dimension(1);
++    const long nb_elem_face = src.elem_faces_.dimension(1);
+     ArrOfInt delta_dir(dim);
+     delta_dir[0] = 1;
+     for (i = 1; i < dim; i++)
+diff -Nur ParaView.orig/Utilities/VisItBridge/databases/readers/Lata/UserFields.C ParaView/Utilities/VisItBridge/databases/readers/Lata/UserFields.C
+--- ParaView.orig/Utilities/VisItBridge/databases/readers/Lata/UserFields.C    2020-03-23 22:18:49.000000000 +0100
++++ ParaView/Utilities/VisItBridge/databases/readers/Lata/UserFields.C 2020-12-22 12:06:26.198148401 +0100
+@@ -346,7 +346,7 @@
+     const IntTab & les_elem = dom.elements_;
+     const entier n = les_elem.dimension(0);
+     const entier m = les_elem.dimension(1);
+-    int i, j, k;
++    long i, j, k;
+     for ( i = 0; i < n; i++) {
+       for (j = 0; j < m; j++) {
+         entier som = les_elem(i,j);
+@@ -459,17 +459,17 @@
+       Cerr<<" cas nn prevu"<<endl; 
+       throw;
+     }
+-  int nb_face=coords.dimension(0);
++  long nb_face=coords.dimension(0);
+   Vecteur3 normals[4];
+   Vecteur3 edge[2],opp;
+   edge[1].set(0,0,1);
+-  for (int n=0;n<nb_face;n++)
++  for (long n=0;n<nb_face;n++)
+     {
+      
+-      int prem=0;
++      long prem=0;
+       if (n==0) prem=1;
+-      int compteur=0;
+-      for (int s=0;s<nb_face;s++)
++      long compteur=0;
++      for (long s=0;s<nb_face;s++)
+         {
+           if ((s!=n) && (s!=prem))
+@@ -492,8 +492,8 @@
+     }
+   // on a les 4 normals orientes vers l'interieur
+   double max_pscal=-100;
+-  for (int n1=0;n1<nb_face;n1++)
+-    for (int n2=n1+1;n2<nb_face;n2++)
++  for (long n1=0;n1<nb_face;n1++)
++    for (long n2=n1+1;n2<nb_face;n2++)
+       {
+         double pscal=Vecteur3::produit_scalaire(normals[n1],normals[n2]);
+         //min_pscal=pscal;
+@@ -539,11 +539,11 @@
+     resu.data_.resize(n, nbcompo);
+     
+     const FloatTab& nodes_=dom.nodes_;
+-    int nb_som_elem=les_elem.dimension(1);
++    long nb_som_elem=les_elem.dimension(1);
+     DoubleTab coords(nb_som_elem,3);
+-    for ( int i = 0; i < n; i++) {
+-      for (int s=0;s<nb_som_elem;s++)
+-        for (int d=0;d<nodes_.dimension(1);d++)
++    for ( long i = 0; i < n; i++) {
++      for (long s=0;s<nb_som_elem;s++)
++        for (long d=0;d<nodes_.dimension(1);d++)
+           coords(s,d)=nodes_(les_elem(i,s),d);
+       resu.data_(i, 0) = largest_angle_2(coords);
+         
+@@ -587,16 +587,16 @@
+     
+     ArrOfFloat v1( nbcompo),v2(nbcompo);
+     ArrOfDouble nor(nbcompo);
+-    for ( int i = 0; i < n; i++) {
++    for ( long i = 0; i < n; i++) {
+       // calcul de la normale
+       entier som0 = les_elem(i,0);
+       entier som1 = les_elem(i,1);
+-      for (int j=0;j<nbcompo;j++)
++      for (long j=0;j<nbcompo;j++)
+         v1[j]=nodes_(som1,j)-nodes_(som0,j);
+       if (nbcompo==3)
+         {
+           entier som2 = les_elem(i,2);
+-          for (int j=0;j<nbcompo;j++)
++          for (long j=0;j<nbcompo;j++)
+             v2[j]=nodes_(som2,j)-nodes_(som0,j);
+           
+           nor[0]=v1[1]*v2[2]-v1[2]*v2[1];
+@@ -611,7 +611,7 @@
+           nor[1]=-v1[0];
+           
+         }
+-      for (int k = 0; k < nbcompo; k++) {
++      for (long k = 0; k < nbcompo; k++) {
+         resu.data_(i, k) = nor[k];
+       }
+        
+@@ -756,11 +756,11 @@
+   
+   const entier nb_geometries = geoms.size();
+   
+-  for (int i = 0; i < nb_geometries; i++) {
++  for (long i = 0; i < nb_geometries; i++) {
+     const LataGeometryMetaData data = filter.get_geometry_metadata(geoms[i]);
+     
+     // Si on a des faces, proposer la normale aux faces
+-    int topo_dim=data.dimension_;
++    long topo_dim=data.dimension_;
+     
+     switch(data.element_type_) {
+     case Domain::point:     topo_dim = 0; break;
+@@ -826,7 +826,7 @@
+   //  (nb_fields_debut est le nombre de champs existant avant qu'on 
+   //   commence a en ajouter dans le tableau fields_data)
+-  for (int i_in = 0; i_in < nb_fields_debut; i_in++) 
++  for (long i_in = 0; i_in < nb_fields_debut; i_in++) 
+     {
+       // On cherche si le champ de temperature aux elements existe
+       //  sur une geometrie IJK (Motcle permet d'ignorer majuscule/minuscule)
+@@ -902,9 +902,9 @@
+   float volume() const { return dx_ * dy_ * dz_; }
+ protected:
+   void init(LataFilter & lata, const Domain_Id & id, entier demi_pas);
+-  FloatTab calculer_somme_dir(const FloatTab & src, const int dir) const;
+-  FloatTab annu_bord(const FloatTab & input, int epaisseur) const;
+-  int ijk_index(int i, int j, int k) const {
++  FloatTab calculer_somme_dir(const FloatTab & src, const long dir) const;
++  FloatTab annu_bord(const FloatTab & input, long epaisseur) const;
++  long ijk_index(long i, long j, long k) const {
+     if (i < 0)
+       i = 0;
+     else if (i >= nx_)
+@@ -924,10 +924,10 @@
+   ArrOfBit invalid_connections_;
+   entier demi_pas_;
+-  int pbDim_; // dimension
+-  int nx_;
+-  int ny_;
+-  int nz_;
++  long pbDim_; // dimension
++  long nx_;
++  long ny_;
++  long nz_;
+   float dx_;
+   float dy_;
+   float dz_;
+@@ -967,19 +967,19 @@
+   lata.release_geometry(dom);
+ }
+-FloatTab FiltreSpatial::calculer_somme_dir(const FloatTab & src, const int dir) const
++FloatTab FiltreSpatial::calculer_somme_dir(const FloatTab & src, const long dir) const
+ {
+-  const int n = src.dimension(0);
+-  const int nb_compo = src.dimension(1);
++  const long n = src.dimension(0);
++  const long nb_compo = src.dimension(1);
+   FloatTab tmp;
+   tmp.resize(n, nb_compo);
+-  int index_resu = 0;
+-  for (int k = 0; k < nz_; k++) {
+-    for (int j = 0; j < ny_; j++) {
+-      for (int i = 0; i < nx_; i++) {
+-        for (int count = -demi_pas_; count <= demi_pas_; count++) {
+-          int index;
++  long index_resu = 0;
++  for (long k = 0; k < nz_; k++) {
++    for (long j = 0; j < ny_; j++) {
++      for (long i = 0; i < nx_; i++) {
++        for (long count = -demi_pas_; count <= demi_pas_; count++) {
++          long index;
+           switch(dir) {
+           case 0: index = ijk_index(i+count, j, k); break;
+           case 1: index = ijk_index(i, j+count, k); break;
+@@ -992,7 +992,7 @@
+             // element invalide !
+           } else {
+             // element ok !
+-            for (int compo = 0; compo < nb_compo; compo++)
++            for (long compo = 0; compo < nb_compo; compo++)
+               tmp(index_resu, compo) += src(index, compo);
+           }
+         }