Hello, We are partitioning a two-dimensional Cartesian communicator into two one-dimensional subgroups. In this situation we have found that both one-dimensional communicators inherit the period logical of the first dimension of the original two-dimensional communicator when using Open MPI. Using MPICH each one-dimensional communicator inherits the period corresponding to the dimensions specified in REMAIN_DIMS, as expected. Could this be a bug, or are we making a mistake? The relevant calls we make in a Fortran code are
CALL MPI_CART_CREATE(MPI_COMM_WORLD, 2, (/ NDIMX, NDIMY /), (/ .True., .False. /), .TRUE., COMM_CART_2D, IERROR) CALL MPI_CART_SUB(COMM_CART_2D, (/ .True., .False. /), COMM_CART_X, IERROR) CALL MPI_CART_SUB(COMM_CART_2D, (/ .False., .True. /), COMM_CART_Y, IERROR) Following these requests, CALL MPI_CART_GET(COMM_CART_X, MAXDIM_X, DIMS_X, PERIODS_X, COORDS_X, IERROR) CALL MPI_CART_GET(COMM_CART_Y, MAXDIM_Y, DIMS_Y, PERIODS_Y, COORDS_Y, IERROR) will result in PERIODS_X = T PERIODS_Y = T If, on the other hand we define the two-dimensional communicator using PERIODS = (/ .False., .True. /), we find PERIODS_X = F PERIODS_Y = F Your advice on the matter would be greatly appreciated. Regards, John.