Procs p = new Procs(this, 2, 2) ; Range x = new Range(N, p, 0) ; // distrib over 1st dim of `p' Range y = new Range(N, p, 1) ; // distrib over 2nd dim of `p' Array r = new Array(p, x, y) ; byte [] w = new byte [r.seg()] ; // main data array ... declare neighbour arrays, `cn_', `cp_', etc, similarly // initialize the ``life'' board for(r.forall() ; r.test() ; r.next()) w [r.sub()] = fun(x.idx(), y.idx()) ;