The approach to translating parallel loops given in this lecture is too simple to deal with block-cyclic distribution. In that case the local loop needs an outer loop enumerating the set of locally-held blocks. Adlib provides some ``iterator'' classes (LocBlocksIndex, etc) for enumerating these blocks. It also has an extra field in the Location class to specify the block. An offset() method can be used to compute the total memory offet implied by a Location object, taking account of this generalized case.