Salome HOME
Implementation of ParaUMesh::getCellIdsLyingOnNodes
[tools/medcoupling.git] / src / ParaMEDMEM / MPIAccessDEC.cxx
index f88fc22a0c1100546bb56393c1acf1a9cb46d307..f6bd1732575d8c577b364d029b0278151df4aa5e 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2015  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2019  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
@@ -152,6 +152,11 @@ namespace MEDCoupling
             sts = _MPI_access->ISend( &((int *) sendbuf)[offset] , sendcount , sendtype ,
                                       target , SendRequestId ) ;
           }
+        else if ( sendtype == MPI_LONG )
+          {
+            sts = _MPI_access->ISend( &((long *) sendbuf)[offset] , sendcount , sendtype ,
+                                      target , SendRequestId ) ;
+          }
         else
           {
             sts = _MPI_access->ISend( &((double *) sendbuf)[offset] , sendcount , sendtype ,
@@ -165,6 +170,11 @@ namespace MEDCoupling
             sts = _MPI_access->send( &((int *) sendbuf)[offset] , sendcount , sendtype ,
                                      target , SendRequestId ) ;
           }
+        else if ( sendtype == MPI_LONG )
+          {
+            sts = _MPI_access->send( &((long *) sendbuf)[offset] , sendcount , sendtype ,
+                                     target , SendRequestId ) ;
+          }
         else
           {
             sts = _MPI_access->send( &((double *) sendbuf)[offset] , sendcount , sendtype ,
@@ -192,6 +202,11 @@ namespace MEDCoupling
             sts = _MPI_access->IRecv( &((int *) recvbuf)[offset] , recvcount , recvtype ,
                                       target , RecvRequestId ) ;
           }
+        else if ( recvtype == MPI_LONG )
+          {
+            sts = _MPI_access->IRecv( &((long *) recvbuf)[offset] , recvcount , recvtype ,
+                                      target , RecvRequestId ) ;
+          }
         else
           {
             sts = _MPI_access->IRecv( &((double *) recvbuf)[offset] , recvcount , recvtype ,
@@ -205,6 +220,11 @@ namespace MEDCoupling
             sts = _MPI_access->recv( &((int *) recvbuf)[offset] , recvcount , recvtype ,
                                      target , RecvRequestId ) ;
           }
+        else if ( recvtype == MPI_LONG )
+          {
+            sts = _MPI_access->recv( &((long *) recvbuf)[offset] , recvcount , recvtype ,
+                                     target , RecvRequestId ) ;
+          }
         else
           {
             sts = _MPI_access->recv( &((double *) recvbuf)[offset] , recvcount , recvtype ,
@@ -441,12 +461,12 @@ namespace MEDCoupling
     . We assume that buffers are allocated with a new double[]. so a
     delete [] is done.
 
-    . The structure SendBuffStruct permit to keep the adress of the buffer
+    . The structure SendBuffStruct permit to keep the address of the buffer
     and to manage a reference counter of that buffer. It contains
     also MPI_Datatype for the delete [] (double *) ... when the counter
     is null.
 
-    . The map _MapOfSendBuffers etablish the correspondance between each
+    . The map _MapOfSendBuffers establish the correspondence between each
     RequestId given by a MPI_Access->ISend(...) and a SendBuffStruct
     for each "target" of a part of the buffer.
 
@@ -565,7 +585,7 @@ namespace MEDCoupling
       {
         for ( target = 0 ; target < _group_size ; target++ )
           {
-            int recvsize = recvcount*_MPI_access->extent( recvtype ) ;
+            int recvsize = (int)(recvcount*_MPI_access->extent( recvtype ));
             checkTime( recvcount , recvtype , target , false ) ;
             //===========================================================================
             //TODO : it is assumed actually that we have only 1 timestep before and after
@@ -714,7 +734,7 @@ namespace MEDCoupling
           {
             if ( recvcounts[target] )
               {
-                int recvsize = recvcounts[target]*_MPI_access->extent( recvtype ) ;
+                int recvsize = (int)(recvcounts[target]*_MPI_access->extent( recvtype ));
                 checkTime( recvcounts[target] , recvtype , target , false ) ;
                 //===========================================================================
                 //TODO : it is assumed actually that we have only 1 timestep before nad after