If an OWN array is declared, the array and its contents are retained on exit from the block in which the array is declared and are available on subsequent reentry into the block.
OWN arrays are allocated only once, regardless of the number of times entry is made into the block in which the array is declared. If the OWN array is declared with variable bounds, these bounds are evaluated once when the array is allocated, and the affected dimension retains these bounds for the remainder of the program execution. For information on resizing the array, refer to RESIZE Statement.
An OWN array remains unreferenced from the time the program begins execution until the first execution of a statement that references the array is encountered. Once such a statement is encountered, the array is referenced, or touched, for the remainder of the program execution.
An array that is not an OWN array remains unreferenced from the time the program enters the block in which the array is declared until the first execution of a statement that refers to the array. Once such a statement is encountered, the array is touched until the program exits the block.
Arrays not declared as OWN arrays are deallocated on exit from the block in which they are declared and are reallocated on every entry into the block in which the arrays are declared.

