The LONG specification affects only array rows. It specifies that the array is not to be paged regardless of its length. The maximum length of a LONG array is machine dependent. Attempting to allocate an array longer than the limit results in the program terminating at run time. Specifying a <new size> during a RESIZE statement longer than the limit results in resizing the array as if PAGED was specified, regardless of the resize option (DISCARD, RETAIN or PAGED). As with RESIZE PAGED, the contents of the array are retained.
Normally, an array row longer than a certain threshold is automatically subdivided, or segmented, at run time into pages. Each page is of a fixed length, except the last, which can be shorter. The page size is a property of the machine on which the program is run; it is always a power of two and is never less than 8192 words. The paging threshold is maintained by the operating system on which the program is run. The operating system enforces a limit on the size of a LONG array, and it is never less than max (page_size, 8192) words.
The array size at which an array row is automatically paged can be changed with the system command SEGARRAYSTART. For more information on the SEGARRAYSTART command, refer to the System Commands Reference. Arrays smaller than the designated page size are never paged.

