An assumed-size array is a dummy argument array that assumes the size (only) of its associated actual argument array; the rank and extents can differ for the actual and dummy arrays. An assumed-size specification takes the following form: [exp-shape-spec,] [exp-shape-spec,]... [lower-bound:] * The exp-shape-spec is an explicit-shape specification (see DATA ARRAY DECL EXPL in online Help). The lower bound and upper bound are specification expressions that have a positive, negative, or zero value. If necessary, the bound value is converted to integer type. If a lower bound is not specified, it is assumed to be 1. The asterisk (*) represents the upper bound of the last dimension. The rank of the array is the number of explicit-shape specifications plus 1. The size of the array is assumed from the actual argument associated with the assumed-size dummy array as follows: o If the actual argument is an array of type other than default character, the size of the dummy array is the size of the actual array. o If the actual argument is an array element of type other than default character, the size of the dummy array is a + 1 - s, where "s" is the subscript value and "a" is the size of the actual array. o If the actual argument is a default character array, array element, or array element substring, and it begins at character storage unit b of an array with n character storage units, the size of the dummy array is as follows: MAX(INT((n + 1 - b) / y), 0) The "y" is the length of an element of the dummy array. An assumed-size array can only be used as a whole array reference in the following cases: o When it is an actual argument in a procedure reference that does not require the shape o In the intrinsic function LBOUND Because the actual size of an assumed-size array is unknown, an assumed-size array cannot be used as any of the following in an I/O statement: o An array name in the I/O list o A unit identifier for an internal file o A run-time format specifier The following is an example of an assumed-size specification: SUBROUTINE SUB(A, N) REAL A, N DIMENSION A(1:N, *) ...