The following Fortran 95 features improve previous Fortran features:
In derived-type definitions, you can now specify default initial values for derived-type components.
In Fortran 90, there was no way to define the initial value of a pointer. You can now specify default initialization for a pointer. See also Derived-Type Definition.
Allocatable arrays whose status is allocated upon routine exit are now automatically deallocated. For more information, see Deallocation of Allocatable Arrays.
Compaq Fortran previously provided this feature.
KIND can now be specified for these intrinsic functions.
DIM can now be specified for these intrinsic functions. Compaq Fortran previously provided this feature as a language extension.
When compiler option /assume:minus0 is specified, the SIGN function can now distinguish between positive and negative zero if the processor is capable of doing so.
When compiler option /assume:minus0 is specified, a floating-point value of minus zero (-0.0) can now be printed if the processor can represent it.
The WHERE construct has been improved to allow nested WHERE constructs and a masked ELSEWHERE statement. WHERE constructs can now be named.
The END INTERFACE statement of an interface block defining a generic routine now can specify a generic identifier.
On output, when using I, B, O, Z, and F edit descriptors, the specified value of the field width can be zero. In such cases, the compiler selects the smallest possible positive actual field width that does not result in the field being filled with asterisks (*).
Fortran 95 allows comments (beginning with !) in namelist input data. Compaq Fortran previously provided this feature as a language extension.