GNU Fortran allows old-style kind specifications in declarations. These look like:

TYPESPEC*size x,y,z

where `TYPESPEC`

is a basic type (`INTEGER`

, `REAL`

,
etc.), and where `size`

is a byte count corresponding to the
storage size of a valid kind for that type. (For `COMPLEX`

variables, `size`

is the total size of the real and imaginary
parts.) The statement then declares `x`

, `y`

and `z`

to
be of type `TYPESPEC`

with the appropriate kind. This is
equivalent to the standard-conforming declaration

TYPESPEC(k) x,y,z

where `k`

is the kind parameter suitable for the intended precision. As
kind parameters are implementation-dependent, use the `KIND`

,
`SELECTED_INT_KIND`

and `SELECTED_REAL_KIND`

intrinsics to retrieve
the correct value, for instance `REAL*8 x`

can be replaced by:

INTEGER, PARAMETER :: dbl = KIND(1.0d0) REAL(KIND=dbl) :: x