The `block()` method has variants that take triplet parameters to
efficiently enumerate local blocks of a *sub*range. This is an
important optimization--more efficient than creating a subrange *object* and using the simple `block()` method on that.

Certain subranges only have blocks defined for a subset of coordinate
values, and there are methods to compute these ranges of coordinate
values. As a matter of fact it is illegal to call `block()` for
coordinate values outside these ranges--a trap for the unwary, but
a restriction that improves the efficiency of the implementation.

Bryan Carpenter 2002-07-12