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