Copyright Digital Equipment Corp. All rights reserved.

Sections

 An array section is a portion of an array that is an array itself.
 It is an array subobject.  A section subscript list (appended to
 the array or array component) determines which portion is being
 referred to.  A reference to an array section takes the following
 form:

    array [(sect-s-list)] [(substring-range)]

    array            Is the name of an array.

    sect-s-list      Is a list of one or more section 
                     subscripts (subscripts, subscript 
                     triplets, or vector subscripts) 
                     indicating a set of elements along 
                     a particular dimension.

                     At least one of the items in the section 
                     subscript list must be a subscript 
                     triplet or vector subscript. Each 
                     subscript and subscript triplet must be 
                     a scalar numeric expression. Each vector 
                     subscript must be a rank-one integer 
                     expression.

    substring-range  Is a substring range in the form 
                     [expr]:[expr].  Each expression specified 
                     must be a scalar numeric expression.

                     The array (or array component) preceding 
                     the substring range must be of type character.

 If no section subscript list is specified, the rank and shape of
 the array section is the same as the parent array.

 Otherwise, the rank of the array section is the number of vector
 subscripts and subscript triplets that appear in the list.  Its
 shape is a rank-one array where each element is the number of
 integer values in the sequence indicated by the corresponding
 subscript triplet or vector subscript.

 If any of these sequences is empty, the array section has a size of
 zero.  The subscript order of the elements of an array section is
 that of the array object that the array section represents.

 Each array section inherits the type, kind type parameter, and
 certain attributes (INTENT, PARAMETER, and TARGET) of the parent
 array.  An array section cannot inherit the POINTER attribute.

 The following shows valid references to array sections:

   REAL, DIMENSION(20) :: B
   ...
   PRINT *, B(2:20:5)  ! the section consists of elements 
                       !     B(2), B(7), B(12), and B(17)
   K = (/3, 1, 4/)   

   B(K) = 0.0  ! section B(K) is a rank-one array with 
               ! shape (3) and size 3. (0.0 is assigned to 
               ! B(1), B(3), and B(4).)

 Consider the following declaration:

   CHARACTER(LEN=15) C(10,10)

 An array section referenced as C(:,:)(1:3) is an array of shape
 (10,10) whose elements are substrings of length 3 of the
 corresponding elements of C.

Additional information available:

Triplets        Vector_Subscripts