-
The maximum rank of an array has been increased from 7 to 15.
For example,
REAL array(2,2,2,2,2,2,2,2,2,2,2,2,2,2,2)
declares a 15-dimensional array.
-
[3.0] 64-bit integer support is required, that is, the result of
SELECTED_INT_KIND(18) is a valid integer kind number.
-
A named constant (PARAMETER) that is an array can assume its shape from
its defining expression; this is called an implied-shape array.
The syntax is that the upper bound of every dimension must be an asterisk, for
example
REAL,PARAMETER :: idmat3(*,*) = Reshape( [ 1,0,0,0,1,0,0,0,1 ], [ 3,3 ] )
REAL,PARAMETER :: yeardata(2000:*) = [ 1,2,3,4,5,6,7,8,9 ]
declares idmat3 to have the bounds (1:3,1:3), and yeardata
to have the bounds (2000:2008).
-
The TYPE keyword can be used to declare entities of intrinsic type,
simply by putting the intrinsic type-spec within the parentheses.
For example,
TYPE(REAL) x
TYPE(COMPLEX(KIND(0d0))) y
TYPE(CHARACTER(LEN=80)) z
is completely equivalent, apart from being more confusing, to
REAL x
COMPLEX(KIND(0d0)) y
CHARACTER(LEN=80) z
-
As a consequence of the preceding extension, it is no longer permitted to
define a derived type that has the name DOUBLEPRECISION.
-
[5.3] A type-bound procedure declaration statement may now declare multiple
type-bound procedures. For example, instead of
PROCEDURE,NOPASS :: a
PROCEDURE,NOPASS :: b=>x
PROCEDURE,NOPASS :: c
the single statement
PROCEDURE,NOPASS :: a, b=>x, c
will suffice.