Initialization

Each initial value initializes an integral number of words. The number of words initialized depends on the type of the array and the kind of initial value.

Single-precision numbers initialize one word in arrays other than complex, dinteger, or double arrays. In dinteger arrays, the value is rounded to a double integer. In double arrays, this word is extended with a second word of 0 (zero). In complex arrays, this word is normalized and then extended with an imaginary part of 0 (zero).

Double-precision numbers are stored unchanged in two words in double arrays. In dinteger arrays, the value is rounded to a double integer. In complex arrays, the value is rounded and normalized to single-precision and then extended with an imaginary part of 0 (zero). For other types of arrays, the second word of the double-precision value is dropped and the first word initializes one word of the array.

String literals more than 48 bits long initialize as many words as are needed to contain the string and are left-justified with trailing zeros inserted in the last word, if necessary. In complex, dinteger, and double arrays, long string literals can initialize an odd number of words, causing the following initial value to start in the middle of a two-word element of the array.

String literals less than or equal to 48 bits long are right-justified within one word with leading zeros, if necessary. This word initializes one word in arrays other than complex, dinteger, or double arrays. In dinteger arrays, the value is rounded to a double integer. In double arrays, this word is extended with a second word of 0 (zero). In complex arrays, this word is normalized and then extended with an imaginary part of 0 (zero).

An initial value of the form <unsigned integer> (<value list>) or <constant arithmetic expression> (<value list>) causes the values in the value list to be repeated the number of times specified by the unsigned integer or the constant arithmetic expression value.

If the value list contains more values than will fit in the array row, filling stops when the array row is full.

If the value list contains fewer values than the array row can hold, the remainder of the array row is left unchanged.

The length of the value list cannot exceed 4095 48-bit words.