A Heap Vector is a Dope Vector initialized from the CodeFile, loaded using a Read With Tags operation.
The Fortran77 Compiler generates a Heap Vector. See EMIT_HEAP_VECTOR at 55933690.
A Heap Vector is created by calling ArrayDec and setting the HeapVectF Flag.
In ArrayDec at 4714725, the PBITHEAPVF flag is set on the call to TBIT, which causes a Read with Tags Read Operation to be performed.
IF ARRAYTYPE.HEAPVECTF THEN BEGIN IF NOT TOUCHED (WORD VIA SIRW_TO_MOM) THEN TBIT (SIRW_TO_MOM, FALSE, 0 & 1 PBITUSERF & 1 PBITSAVEF & 1 PBITHEAPVF); EXIT; END;
The PBITSAVEF flag results in Save memory being allocated. The PBITUSERF forces an RSVP and possible DS if there is no memory available.
The ASD_SPACEUSAGE field is set to DOPEVECT at 5027812.
The Multi Dimension Array Flag MDTOGF must be set in the environment which contains the MOM for the Heap Vector.
The MOM Descriptor for the Heap Vector is Not Segmented, No Read-Only,Not Indexed,Single Precision CodeFile Initialized Array (See Fortran77 at 55934026)
Since the Array is Code File Initialized the Non Extended Array Descriptor Format must be used. This Table was created from the definitions in Fortran77 at 10949330 MarkID 35.075.253.
Tag 5 - UnTouched DataDesc | ||
---|---|---|
Field | Name | Description |
[47:1] | PresentF | 0 |
[46:1] | CopyF | 0 |
[45:1] | IndexedF | Also called NEW_FORMATF and indicates the new format Untouched DataDesc if set to 1. |
[44:1] | SegmentedF | |
[43:1] | ReadOnlyF | ReadOnly Flag. |
[42:3] | SizeF | The size of the elements of the Array: SINGLE = 0 DOUBLE = 1 HEX = 2 EBCDIC = 4 |
[39:20] | LengthF | |
[19:1] | OlayFileF | 0 |
[18:1] | CodeFileF | CodeFile Initialized |
[17:18] | AddressF | Sector Address |