diff --git a/examples/upscale_cond.cpp b/examples/upscale_cond.cpp index f663bea..a7324e9 100644 --- a/examples/upscale_cond.cpp +++ b/examples/upscale_cond.cpp @@ -963,8 +963,8 @@ try for (int idx=0; idx < points; ++idx) { if (node_vs_pressurepoint[idx] != 0) { // Receive data - double recvbuffer[2+tensorElementCount]; - MPI_Recv(recvbuffer, 2+tensorElementCount, MPI_DOUBLE, + std::vector recvbuffer(2+tensorElementCount); + MPI_Recv(recvbuffer.data(), recvbuffer.size(), MPI_DOUBLE, node_vs_pressurepoint[idx], 0, MPI_COMM_WORLD, MPI_STATUS_IGNORE); // Put received data into correct place. WaterSaturation[(int)recvbuffer[0]] = recvbuffer[1]; @@ -978,13 +978,13 @@ try for (int idx=0; idx < points; ++idx) { if (node_vs_pressurepoint[idx] == mpi_rank) { // Pack and send data. C-style. - double sendbuffer[2+tensorElementCount]; + std::vector sendbuffer(2+tensorElementCount); sendbuffer[0] = (double)idx; sendbuffer[1] = WaterSaturation[idx]; for (int voigtIdx=0; voigtIdx < tensorElementCount; ++voigtIdx) { sendbuffer[2+voigtIdx] = UpscaledConductivity[idx][voigtIdx]; } - MPI_Send(sendbuffer, 2+tensorElementCount, MPI_DOUBLE, 0, 0, MPI_COMM_WORLD); + MPI_Send(sendbuffer.data(), sendbuffer.size(), MPI_DOUBLE, 0, 0, MPI_COMM_WORLD); } } } diff --git a/examples/upscale_relperm.cpp b/examples/upscale_relperm.cpp index b2381bd..99eb403 100644 --- a/examples/upscale_relperm.cpp +++ b/examples/upscale_relperm.cpp @@ -1592,8 +1592,8 @@ try if (node_vs_pressurepoint[idx] != 0) { // Receive data if (upscaleBothPhases) { - double recvbuffer[2+2*tensorElementCount]; - MPI_Recv(recvbuffer, 2+2*tensorElementCount, MPI_DOUBLE, + std::vector recvbuffer(2+2*tensorElementCount); + MPI_Recv(recvbuffer.data(), recvbuffer.size(), MPI_DOUBLE, node_vs_pressurepoint[idx], 0, MPI_COMM_WORLD, MPI_STATUS_IGNORE); // Put received data into correct place. WaterSaturation[(int)recvbuffer[0]] = recvbuffer[1]; @@ -1605,8 +1605,8 @@ try } } else { - double recvbuffer[2+tensorElementCount]; - MPI_Recv(recvbuffer, 2+tensorElementCount, MPI_DOUBLE, + std::vector recvbuffer(2+tensorElementCount); + MPI_Recv(recvbuffer.data(), recvbuffer.size(), MPI_DOUBLE, node_vs_pressurepoint[idx], 0, MPI_COMM_WORLD, MPI_STATUS_IGNORE); // Put received data into correct place. WaterSaturation[(int)recvbuffer[0]] = recvbuffer[1]; @@ -1622,7 +1622,7 @@ try if (node_vs_pressurepoint[idx] == mpi_rank) { // Pack and send data. C-style. if (upscaleBothPhases) { - double sendbuffer[2+2*tensorElementCount]; + std::vector sendbuffer(2+2*tensorElementCount); sendbuffer[0] = (double)idx; sendbuffer[1] = WaterSaturation[idx]; for (int voigtIdx=0; voigtIdx < tensorElementCount; ++voigtIdx) { @@ -1631,16 +1631,16 @@ try for (int voigtIdx=0; voigtIdx < tensorElementCount; ++voigtIdx) { sendbuffer[2+tensorElementCount+voigtIdx] = Phase2Perm[idx][voigtIdx]; } - MPI_Send(sendbuffer, 2+2*tensorElementCount, MPI_DOUBLE, 0, 0, MPI_COMM_WORLD); + MPI_Send(sendbuffer.data(), sendbuffer.size(), MPI_DOUBLE, 0, 0, MPI_COMM_WORLD); } else { - double sendbuffer[2+tensorElementCount]; + std::vector sendbuffer(2+tensorElementCount); sendbuffer[0] = (double)idx; sendbuffer[1] = WaterSaturation[idx]; for (int voigtIdx=0; voigtIdx < tensorElementCount; ++voigtIdx) { sendbuffer[2+voigtIdx] = PhasePerm[idx][voigtIdx]; } - MPI_Send(sendbuffer, 2+tensorElementCount, MPI_DOUBLE, 0, 0, MPI_COMM_WORLD); + MPI_Send(sendbuffer.data(), sendbuffer.size(), MPI_DOUBLE, 0, 0, MPI_COMM_WORLD); } } } diff --git a/examples/upscale_relpermvisc.cpp b/examples/upscale_relpermvisc.cpp index 779f80a..292b268 100644 --- a/examples/upscale_relpermvisc.cpp +++ b/examples/upscale_relpermvisc.cpp @@ -1394,8 +1394,8 @@ try for (int idx=0; idx < points; ++idx) { if (node_vs_fracflowratiopoint[idx] != 0) { // Receive data - double recvbuffer[2+tensorElementCount]; - MPI_Recv(recvbuffer, 2+tensorElementCount, MPI_DOUBLE, + std::vector recvbuffer(2+tensorElementCount); + MPI_Recv(recvbuffer.data(), recvbuffer.size(), MPI_DOUBLE, node_vs_fracflowratiopoint[idx], 0, MPI_COMM_WORLD, MPI_STATUS_IGNORE); // Put received data into correct place. WaterSaturation[(int)recvbuffer[0]] = recvbuffer[1]; @@ -1411,13 +1411,13 @@ try for (int idx=0; idx < points; ++idx) { if (node_vs_fracflowratiopoint[idx] == mpi_rank) { // Pack and send data. C-style. - double sendbuffer[2+tensorElementCount]; + std::vector sendbuffer(2+tensorElementCount); sendbuffer[0] = (double)idx; sendbuffer[1] = WaterSaturation[idx]; for (int voigtIdx=0; voigtIdx < tensorElementCount; ++voigtIdx) { sendbuffer[2+voigtIdx] = PhasePerm[phase][idx][voigtIdx]; } - MPI_Send(sendbuffer, 2+tensorElementCount, MPI_DOUBLE, 0, 0, MPI_COMM_WORLD); + MPI_Send(sendbuffer.data(), sendbuffer.size(), MPI_DOUBLE, 0, 0, MPI_COMM_WORLD); } } }