From e913fede8dc47905cf77e02474ab4a83db22913f Mon Sep 17 00:00:00 2001
From: Juan Escobar <juan.escobar@aero.obs-mip.fr>
Date: Tue, 19 Jan 2016 11:34:00 +0000
Subject: [PATCH] Juan 19/01/2016: add mpi_gatherv for next Elect routines

---
 src/LIB/MPIvide/mpivide.c | 38 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 38 insertions(+)

diff --git a/src/LIB/MPIvide/mpivide.c b/src/LIB/MPIvide/mpivide.c
index 06740a208..121853b1a 100644
--- a/src/LIB/MPIvide/mpivide.c
+++ b/src/LIB/MPIvide/mpivide.c
@@ -218,6 +218,44 @@ int              *__ierr;
     *__ierr = 0;
 }
 
+#pragma weak mpi_gatherv__  = mpi_gatherv
+#pragma weak mpi_gatherv_   = mpi_gatherv
+void mpi_gatherv
+( sendbuf, sendcount, sendtype, recvbuf, recvcounts, displs, recvtype, root, comm, __ierr )
+
+void             *sendbuf;
+int              *sendcount;
+int              *sendtype;
+void             *recvbuf;
+int              *recvcounts;
+int              *displs;
+int              *recvtype;
+int              *root;
+int              *comm;
+int              *__ierr;
+{
+    int size = SIZE2PRECISION;
+    disppass("gatherv");
+    switch(*sendtype)
+    {
+      case MPI_INTEGER:
+        size = SIZEINTEGER;
+        break;
+      case MPI_PRECISION:
+        size = SIZEPRECISION;
+        break;
+      case MPI_2PRECISION:
+        size = SIZE2PRECISION;
+        break;
+      case MPI_DOUBLEDOUBLE:
+        size = SIZE_DOUBLEDOUBLE;
+        break;
+    }
+    memcpy(recvbuf, sendbuf, (*recvcounts)*size);
+
+    *__ierr = 0;
+}
+
 #pragma weak mpi_comm_get_parent__ =  mpi_comm_get_parent
 #pragma weak mpi_comm_get_parent_  =  mpi_comm_get_parent
 void mpi_comm_get_parent(int *parent , int *__ierr)
-- 
GitLab