A data area may consist of a region that conforms to one type, followed by a region that conforms to another. Example might include a strided region where one wants to begin and/or end in the middle of a group, rather than have a integral number of whole groups, or may be two unrelated segments of data. For this, a sequence of PINT_Request structures is specified using the stype field to determine the sequence. The offset is specified relative to the beginning of the data area.
In this example we have a strided region shown in D. We want to start 8 bytes into the first group (yellow), then have 15 whole groups (blue), and finally end 4 bytes into the last group (green). Each group is 6 elements, and each element is a float (4 bytes). The stride between groups is 48 bytes (12 floats).
FIRST-PTYPE: offset = OFFSET num_ereqs = 4 stride = 1 num_blocks = 1 ub = 764 lb = 0 aggregate_size = 380 depth = 1 num_contig_chunks = 17 etype = PVFS_Request_float stype = NEXT-PTYPE NEXT-PTYPE: offset = OFFSET + 40 num_ereqs = 6 stride = 48 num_blocks = 15 ub = 764 lb = 40 aggregate_size = 364 depth = 1 num_contig_chunks = 16 etype = PVFS_Request_float stype = LAST-PTYPE LAST-PTYPE: offset = OFFSET + 760 num_ereqs = 1 stride = 1 num_blocks = 1 ub = 764 lb = 760 aggregate_size = 4 depth = 1 num_contig_chunks = 1 etype = PVFS_Request_float stype = NULL
Note that ub, lb, aggregate_size, depth, and num_contig_chunks always refers to the region represented down stream of the current PINT_Request record, and not the whole region, however ub and lb are still expressed in terms of the entire data area.