Matrix files may require large amount of internal RAM to store, given the possibilities of a very large number of zones, multiple levels and/or multiple blocks. Thus, certain matrices may “blow” the internal RAM allocated within MX, in which case certain alternatives need to be considered.
In its original design MX allowed for multiple levels but not necessarily multiple blocks. Thus, if the maximum number of permitted zones in a particular SATURN release level was 1,000, then MX could store matrices of up to 11,000 rows (11 maximum-zone levels) and 1,000 columns (one block). It could also accommodate 500-zone matrices with up to 22 levels and/or 2 blocks. For a 600 zone network the limits would be 18 levels but only one block.
Larger matrices must be either “unstacked” or “unblocked” into smaller sized matrices which may then be processed internally by MX. See the procedures UNSTACK/UFMUNSTACK/UNBLOCK in Sections 10.20.12/18/29.
Note that a number of the batch matrix handling procedures described in Section 20 are not restricted by size since they process .UFM matrices one row at a time for which the RAM limits for a full matrix apply (e.g., 11 x 1,000 x 1,000 in the above example).
Similarly other SATURN programs which handle matrices, e.g., SATALL, SATLOOK, etc. are not restricted by matrix size. If there is insufficient internal RAM to store full matrices then they may dump matrices to external “scratch” files or else process the matrices in smaller “chunks”.