AMODE considerations for heap storage

The initsz24 and incrsz24 parameters of the HEAP runtime option control the initial size and subsequent increments of heap storage allocated below the 16 MB line. This storage is required for AMODE(24) applications running with the ALL31(OFF) and HEAP(,,ANYWHERE) runtime options in effect.

For example, suppose the initial heap segment is allocated above 16 MB. If an AMODE(24) routine requests storage from this initial heap, Language Environment must allocate a heap segment from below the 16 MB line so that the AMODE(24) routine can address the storage.

When a Fortran program is in AMODE(24), heap storage is allocated below the 16 MB line. The allocation of heap storage in a Fortran common block is sensitive to the AMODE setting of the requester program. For example, if a requester in AMODE(31) calls a Fortran program in AMODE(24), heap storage is allocated above the 16 MB line as defined by the AMODE(31) setting of the requester.

OS PL/I uses HEAP(,,ANYWHERE) as the default location for heap storage. The allocation of heap storage is sensitive to the AMODE setting of the requester and the main program. If the requester is in AMODE(31) or HEAP(,,ANYWHERE) is in effect and the main program is in AMODE(31), heap storage is allocated above the 16 MB line.

There are some restrictions when using CEEGTST, the Get Heap Storage AWI, in an AMODE(24) COBOL program. See the description of CEEGTST in z/OS Language Environment Programming Reference for details on these restrictions.