Negative ranges in MPI
Refactoring d_p to positive and separate block and intra-block halo fields