Remaining communication
/* Send left boundary in each processor to left neighbor */
MPI_Sendrecv (&(oldphi[1][1]), 1, strided, leftneighbor, 30, &(oldphi[1][xpoints+1]), 1, strided, rightneighbor, 30, comm2d, &status); /* Send top boundary to top neighbor */
MPI_Sendrecv (&(oldphi[1][1]), 1, contig, topneighbor, 40, &(oldphi[ypoints+1][1]), 1, contig, bottomneighbor, 40, comm2d, &status);/* Send bottom boundary to bottom neighbor */
MPI_Sendrecv (&(oldphi[ypoints][1]), 1, contig, bottomneighbor, 41, &(oldphi[0][1]), 1, contig, topneighbor, 41, comm2d, &status);