An array is called "varying" if its bounds are determined at compile time, but the range of transmitted elements is determined at run time. An open array (also called a conformant varying array) is an array whose upper bound and range of transmitted elements are determined at run time. To determine the range of transmitted elements of an array, the array declaration must include a length_is, first_is, or last_is attribute.
The length_is attribute designates the number of array elements to be transmitted and the first_is attribute designates the index of the first array element to be transmitted. The last_is attribute designates the index of the last array element to be transmitted.