# Name

HPL_grid_init Create a process grid.

# Synopsis

`#include "hpl.h"`
`int` `HPL_grid_init(` `MPI_Comm` `COMM`, `const HPL_T_ORDER` `ORDER`, `const int` `NPROW`, `const int` `NPCOL`, `HPL_T_grid *` `GRID` `);`

# Description

HPL_grid_init creates a NPROW x NPCOL process grid using column- or row-major ordering from an initial collection of processes identified by an MPI communicator. Successful completion is indicated by the returned error code MPI_SUCCESS. Other error codes depend on the MPI implementation. The coordinates of processes that are not part of the grid are set to values outside of [0..NPROW) x [0..NPCOL).

# Arguments

    COMM    (global/local input)          MPI_Comm
            On entry,  COMM  is  the  MPI  communicator  identifying  the
            initial  collection  of  processes out of which  the  grid is
            formed.

    ORDER   (global input)                const HPL_T_ORDER
            On entry, ORDER specifies how the processes should be ordered
            in the grid as follows:
               ORDER = HPL_ROW_MAJOR    row-major    ordering;
               ORDER = HPL_COLUMN_MAJOR column-major ordering;

    NPROW   (global input)                const int
            On entry,  NPROW  specifies the number of process rows in the
            grid to be created. NPROW must be at least one.

    NPCOL   (global input)                const int
            On entry,  NPCOL  specifies  the number of process columns in
            the grid to be created. NPCOL must be at least one.

    GRID    (local input/output)          HPL_T_grid *
            On entry,  GRID  points  to the data structure containing the
            process grid information to be initialized.

# See Also

HPL_pnum, HPL_grid_info, HPL_grid_exit.