18 static int find_coord_map(
const char map_expr[], 
int ndim, 
int *map);
 
   29   for (
int i = 
m_ndim - 1; i >= 0; --i) {
 
   45   for (
int i = 0; i < 
m_ndim; ++i) {
 
   46     int k = m_physical_to_logical[i];
 
   48     gcoord[k] = r % m_grid_dims[k];
 
   61   m_physical_to_logical = 
new int [
m_ndim];
 
   71   delete [] m_physical_to_logical;
 
   80   int len = strlen(map_expr);
 
   83     fprintf(stderr, 
"ERROR: find_map: length mismatch: %d, expected %d.\n", len, ndim);
 
   87   for (
int i = 0; i < len; ++i) {
 
  114       fprintf(stderr, 
"ERROR: find_map: unknown symbol %c.\n", c);
 
static int find_coord_map(const char map_expr[], int ndim, int *map)
 
static int grid_coord(int *gcoord, const int rank)
 
static int * m_physical_to_logical
map between physical and logical grid 
 
static int m_ndim
number of dimensions. 
 
static int grid_rank(int *rank, const int *gcoord)
 
static int * m_grid_dims
grid dimensions in directions. 
 
static int physical_map_delete()
 
static int physical_map_setup()