A complete description of the use of array processing is offered. Assumed-shape and automatic arrays are described, and the concept of elemental is introduced for operations, assignments, and procedures. Array-valued functions and the where construct are described, along with the notion of pure procedures. Array subobjects, aliasing, and array constructors are considered. The performance-enhancing features of the do concurrent construct and the contiguous property are included.