A masked vector-subscript gather schedule is a communication schedule for collecting a set of values from one distributed array (the source array) into the elements of another array of the same rank (the destination array). The selected set of elements is defined by a vector of rank-1 arrays--the subscript arrays--and controlled by a mask array. This schedule can be regarded as an optimized special case of the general gather schedule of section 5.7. It is functionally equivalent to certain Fortran-90 array assignments involving vector subscripts and executed inside WHERE statements. A masked vector-subscript gather schedule is described by a collective object with local components of class VecGatherMsk. The public interface of the VecGatherMsk class is
class DAD ; class VecGatherMsk { public : VecGatherMsk(const DAD* dst, const DAD* src, const int len, const DAD* subs [], const int* subsDat [], const DAD* msk, const int* mskDat) ; void execute(void* dstDat, void* srcDat) ; private : ... } ;