If all values of an index in a slice expression cannot be evaluated, then the slice is interpreted for all index values from the appropriate array bound interval. The maximum size of the implicit set of index values is 32.
All arithmetic operations (including built-ins) are performed with DOUBLE values (there is no artificial increase/decrease of digit number). Excess precision may be rounded away during arithmetic type casting.
Assignment to an array is supported only if no two asterisks in the array reference are separated with an ordinary array index or a structure member selection. The system would try to minimize the amount of memory erased by an unsupported array write, but it can destroy the whole array.
Complex DEFINED is not supported (the DEFINED declaration is mapped to the base field by field and dimension by dimension). DEFINED(X) is interpreted strictly as if it was BASED(ADDR(X)).
POSITION for variables defined on bit strings is not supported. Also, no alignment other than on a one-byte boundary is supported.
DEFINED on sparse areas is not supported. In a real system, one can write DEFINED(A(*,4)) and if structures match it would map the newly defined array on top of sparse array A(*,4). Structure matching, however, is unsupported. This means that although this type of definition is valid in a real system, it is not supported.
Array expressions are not supported, so A(*) = B(*) + 5 will not work.
Out-of-bounds access is always ignored and a warning is issued.
Dynamic-sized arrays are not supported and are interpreted as fixed-sized arrays with extent 10.