The following Fortran 90 features improve previous Fortran features:
Lowercase characters are now allowed in source text. A semicolon can be used to separate multiple statements on a single source line. Additional characters have been added to the Fortran character set, and names can have up to 31 characters (including underscores).
For more information, see Program Structure, Characters, and Source Forms.
Intrinsic data types can be specified in a portable way by using a kind type parameter indicating the precision or accuracy required. There are also new intrinsic functions that allow you to specify numeric precision and inquire about precision characteristics available on a processor.
For more information, see Data Types, Constants, and Variables and Intrinsic Procedures.
Procedure arguments can be made optional and keywords can be used when calling procedures, allowing arguments to be listed in any order.
For more information, see Program Units and Procedures.
Fortran 90 provides additional keywords for the OPEN and INQUIRE statements. It also permits namelist formatting, and nonadvancing (stream) character-oriented input and output.
For more information on formatting, see Data Transfer I/O Statements and on OPEN and INQUIRE, see File Operation I/O Statements.
Fortran 90 provides a new control construct (CASE) and improves the DO construct. The DO construct can now use CYCLE and EXIT statements, and can have additional (or no) control clauses (for example, WHILE). All control constructs (CASE, DO, and IF) can now be named.
For more information, see Execution Control.
Fortran 90 provides many more intrinsic procedures than existed in FORTRAN 77. Many of these new intrinsics support mathematical operations on arrays, including the construction and transformation of arrays. New bit manipulation and numerical accuracy intrinsics have been added.
For more information, see Program Units and Procedures.
The following specification statements are new in Fortran 90:
Fortran 90 lets you specify attributes (such as PARAMETER, SAVE, and INTRINSIC) in type declaration statements, as well as in specification statements.
For more information, see Type Declaration Statements.
These concepts were implicit in FORTRAN 77, but they are explicitly defined in Fortran 90. In FORTRAN 77, the term scoping unit applies to a program unit, but Fortran 90 expands the term to include internal procedures, interface blocks, and derived- type definitions.
For more information, see Scope and Association.