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.