|| Sorry; by "dimensions" I meant the extent or range per dimension.
| You're restricted to no more than four billion elements per dimension.
| (Here's where Vince and/or Steve jump in and protest that they have an
| urgent need for five billion elements, and why did I implement such a
| cruelly restrictive limitation ...)
Of course! We need quintillion elements! Just to count the characters in our posts in this group of forums.
But beware: what's a billion for a Briton or a German is a trillion for an American or a French. Undoubtedly you meant something in the neighborhood of 4E9, or more precisely, each index is a 32-bit unsigned interger, and whatever fits into that range is OK.
IIRC the arrays are sparse, so an element to which an empty string is actively assigned, or to which no non-empty string was ever assigned (in other words, if it were an ordinary environment variable, would mean not "defined") does not require storage space, so actually using large dimensions is not wasting a lot of storage.
BTW, it is often nice to have an array dimension specified by its (inclusive) lower and upper limits, e.g., with the Fortran statement below:
Could a future version support this? All it requires in the code is to bias the actual index used to access the array element by the lower limit...