+ sendtype=MPI_DTYPE;
+ recvtype=MPI_DTYPE;
+
+ for(i=0;i<comm_size;i++) {
+ sendcounts[i] = atoi(action[i+3]);
+ senddisps[i] = atoi(action[i+3+comm_size]);
+ recvcounts[i] = atoi(action[i+4+2*comm_size]);
+ recvdisps[i] = atoi(action[i+4+3*comm_size]);
+ }
+
+
+#ifdef HAVE_TRACING
+ int rank = MPI_COMM_WORLD != MPI_COMM_NULL ? smpi_process_index() : -1;
+ TRACE_smpi_computing_out(rank);
+ TRACE_smpi_collective_in(rank, -1, __FUNCTION__);
+#endif
+ smpi_coll_basic_alltoallv(sendbuf, sendcounts, senddisps, sendtype,
+ recvbuf, recvcounts, recvdisps, recvtype,
+ MPI_COMM_WORLD);
+#ifdef HAVE_TRACING
+ TRACE_smpi_collective_out(rank, -1, __FUNCTION__);
+ TRACE_smpi_computing_in(rank);
+#endif