Abstract: Multigrid algorithms are a computational paradigm that enjoy widespread use in the scientific community. While parallel multigrid algorithms have been in use for quite some time, parallel language support for features common to multigrid algorithms has been lacking. This forces scientists either to express their computations in high-level terms without knowing the parallel impact, or to explicitly manage all the details by hand, thereby diverting their attention from the algorithm itself. In this paper, we enumerate properties that would be desirable for any parallel language that hopes to support multigrid application development. We then explain how these properties influenced the design of support for hierarchical arrays in ZPL, our array-based parallel programming language. We describe the implementation of these features in the ZPL compiler and its runtime system. In addition, we show that our approach performs competitively with hand-coded Fortran + MPI for the NAS MG benchmark, outperforming it for 256 processors. In addition, a static comparison of two codes demonstrates ZPL to be the more concise, readable, and flexible implementation.