SUBROUTINE mp_dims_create(nodes, dims)
INTEGER, INTENT(IN) :: nodes
INTEGER, DIMENSION(:), CONTIGUOUS, INTENT(INOUT) :: dims
CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_dims_create'
INTEGER :: handle, ierr, ndim
ierr = 0
CALL timeset(routineN, handle)
ndim = SIZE(dims)
#if defined(__parallel)
IF (ANY(dims == 0)) CALL mpi_dims_create(nodes, ndim, dims, ierr)
IF (ierr /= 0) CALL mp_stop(ierr, "mpi_dims_create @ "//routineN)
#else
dims = 1
MARK_USED(nodes)
#endif
CALL timestop(handle)
END SUBROUTINE mp_dims_create