Example error text
Result or intermediate value contains too many dimensions. An array may have a maximum of 24 dimensions. Result or intermediate value contains too many dimensions. An array may have a maximum of 16 dimensions. Cannot add Resource_ID as an index to the table in Capacity_assignments because doing so would exceed 24 dimensions, the maximum allowed.
There is a maximum number of dimensions allowed in any given array, as follows:
Analytica release Maximum dimensions 4.5 or earlier 16 32-bit 16 4.6 or later, 64-bit 24
If you attempt an operation that would create a 17 dimensional (or 25 dimensional in 64-bit) array, you may encounter one of these errors.
It is unusual to have arrays with >16 dimensions, since you usually exhaust available memory prior to this. Often this will occur when you have something unintended.
Sometimes when you are creating local indexes inside a loop, a mistake might cause you to end up with more than 16 dimensions, since these might be combined. For example:
For t := Time Do (
Index Level := ['L', 'M', 'H'] Do X_Base*Array(Level, [0.1, 0.5, 0.9])
This loop ends up creating a separate local index named Level at each iteration. Even though they are all named Level and have the same index values, Analytica considers them all to be distinct dimensions. When Time:=1..16, the result has 16 indexes named Level plus the Time index, thus exceeding the maximum number of dimensions.