# Name

**HPL_infog2l**global to local index translation.

# Synopsis

`#include "hpl.h"`

`void`

`HPL_infog2l(`

`int`

`I`

,
`int`

`J`

,
`const int`

`IMB`

,
`const int`

`MB`

,
`const int`

`INB`

,
`const int`

`NB`

,
`const int`

`RSRC`

,
`const int`

`CSRC`

,
`const int`

`MYROW`

,
`const int`

`MYCOL`

,
`const int`

`NPROW`

,
`const int`

`NPCOL`

,
`int *`

`II`

,
`int *`

`JJ`

,
`int *`

`PROW`

,
`int *`

`PCOL`

`);`

# Description

**HPL_infog2l**computes the starting local index II, JJ corresponding to the submatrix starting globally at the entry pointed by I, J. This routine returns the coordinates in the grid of the process owning the matrix entry of global indexes I, J, namely PROW and PCOL.

# Arguments

I (global input) int On entry, I specifies the global row index of the matrix entry. I must be at least zero.

J (global input) int On entry, J specifies the global column index of the matrix entry. J must be at least zero.

IMB (global input) const int On entry, IMB specifies the size of the first row block of the global matrix. IMB must be at least one.

MB (global input) const int On entry, MB specifies the blocking factor used to partition and distribute the rows of the matrix A. MB must be larger than one.

INB (global input) const int On entry, INB specifies the size of the first column block of the global matrix. INB must be at least one.

NB (global input) const int On entry, NB specifies the blocking factor used to partition and distribute the columns of the matrix A. NB must be larger than one.

RSRC (global input) const int On entry, RSRC specifies the row coordinate of the process that possesses the row I. RSRC must be at least zero and strictly less than NPROW.

CSRC (global input) const int On entry, CSRC specifies the column coordinate of the process that possesses the column J. CSRC must be at least zero and strictly less than NPCOL.

MYROW (local input) const int On entry, MYROW specifies my row process coordinate in the grid. MYROW is greater than or equal to zero and less than NPROW.

MYCOL (local input) const int On entry, MYCOL specifies my column process coordinate in the grid. MYCOL is greater than or equal to zero and less than NPCOL.

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

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

II (local output) int * On exit, II specifies the local starting row index of the submatrix. On exit, II is at least 0.

JJ (local output) int * On exit, JJ specifies the local starting column index of the submatrix. On exit, JJ is at least 0.

PROW (global output) int * On exit, PROW is the row coordinate of the process owning the entry specified by the global index I. PROW is at least zero and less than NPROW.

PCOL (global output) int * On exit, PCOL is the column coordinate of the process owning the entry specified by the global index J. PCOL is at least zero and less than NPCOL.