| #include "dims.h" |
| #include <assert.h> |
| |
| #define DIMENSION 3 |
| |
| static int dims_init=0; |
| static int dims_dims[DIMENSION] = {0,0,0}; |
| |
| int MY_Dims_init_3D(int nnodes, int ndim, int *dims) { |
| int i, tmp_nnodes=1; |
| |
| assert(ndim == DIMENSION); |
| |
| tmp_nnodes = 1; |
| for(i=0; i<ndim; i++) { |
| dims_dims[i] = dims[i]; |
| tmp_nnodes *= dims[i]; |
| } |
| |
| assert(tmp_nnodes = nnodes); |
| |
| dims_init = 1; |
| |
| return 0; |
| } |
| |
| int MY_Dims_create_3D(int nnodes, int ndim, int *dims) { |
| int i, ret=0; |
| |
| assert(ndim == DIMENSION); |
| assert(dims[0] == 0); |
| assert(dims[1] == 0); |
| assert(dims[2] == 0); |
| |
| if(dims_init == 0) |
| #ifndef USE_SERIAL_COSMO |
| ret = MPI_Dims_create(nnodes, ndim, dims); |
| #else |
| ret = -1; |
| #endif |
| else { |
| for(i=0; i<ndim; i++) |
| dims[i] = dims_dims[i]; |
| } |
| |
| return ret; |
| } |