private int[] takeResults(IList <MPI.Request> reqList_complete) { int[] result_values = new int[channel.RemoteSize]; foreach (MPI.Request req in reqList_complete) { if (req is MPI.ReceiveRequest) { MPI.ReceiveRequest recv_req = (MPI.ReceiveRequest)req; MPI.CompletedStatus status = recv_req.Wait(); int value = (int)recv_req.GetValue(); result_values [status.Source] = value; } } return(result_values); }