int RGX_List_Processor_Names(
MPI_Comm World_Comm,
...
)
int RGX_List_Processor_Names( MPI_Comm World_Comm,
int N_task_out = -1 )
int RGX_List_Processor_Names( MPI_Comm World_Comm,
int *N_task_out_ptr,
char *processor_names_out )
const int MD_type = MPI_DOUBLE_PRECISION;
double *Task_xGrid; // Data of Local Task Grid
int Ndim; // Dimensionality of the
// // grid
MPI_Comm RGX_Comm; // Communicator of all
// // sub-grids
int N_task; // No. of process/tasks
// // in Communicator
int *Glb_Grid_sz; // Global grid sizes :
// // Glb_Grid_sz(Ndim)
int *task_Ngbrs; // the tid of the nearest
// // neighbor task :
// // task_Ngbrs(2, Ndim)
int *task_Grid_endpts; // local sub-grid's end
// // points :
// // task_Grid_endpts(Ndim, 2)
int *N_task_1dims; // No of task
// // per dimension :
// // N_task_1dims(Ndim)
int *stride_width; // width of the stride of
// // ghost point :
// // stride_width(Ndim)
MPI_Datatype *task_bndry_strides; // local task/grid's
// // boundary strides :
// // task_bndry_strides(Ndim)
Memory for each of these pointer variables can be allocated
dynammically/statically, but it has to be continuous.
Location:../src/librgx/RGX_List_Processor_Names.c