Automatic deallocation of allocatable arrays provides a more convenient and less
error prone method of avoiding memory leaks by removing the burden of manual
storage deallocation for allocatable arrays.
The 'undefined' allocation status of Fortran 90 meant that an allocatable array
could easily get into a state where it could not be further used in any way
whatsoever. It could not be allocated, deallocated, referenced, or defined. The
result was undefined if the array was used as the argument to the ALLOCATED
function. Removal of this status provides the user with a safe way of handling
unSAVEd allocatable arrays and permits use of the ALLOCATED intrinsic function
to discover the current allocation status of the array at any time.