Next: Fortran Operators, Up: Fortran [Contents][Index]
In Fortran the primitive data-types have an associated KIND
type
parameter, written as ‘type*kindparam’,
‘type*kindparam’, or in the GDB-only dialect
‘type_kindparam’. A concrete example would be
‘Real*4
’, ‘Real(kind=4)
’, and ‘Real_4
’.
The kind of a type can be retrieved by using the intrinsic function
KIND
, see Fortran Intrinsics.
Generally, the actual implementation of the KIND
type parameter is
compiler specific. In GDB the kind parameter is implemented in
accordance with its use in the GNU gfortran
compiler. Here, the
kind parameter for a given type specifies its size in memory — a
Fortran Integer*4
or Integer(kind=4)
would be an integer type
occupying 4 bytes of memory. An exception to this rule is the Complex
type for which the kind of the type does not specify its entire size, but
the size of each of the two Real
’s it is composed of. A
Complex*4
would thus consist of two Real*4
s and occupy 8 bytes
of memory.
For every type there is also a default kind associated with it, e.g. Integer
in GDB will internally be an Integer*4
(see the
table below for default types). The default types are the same as in GNU
compilers but note, that the GNU default types can actually be changed by
compiler flags such as -fdefault-integer-8 and
-fdefault-real-8.
Not every kind parameter is valid for every type and in GDB the following type kinds are available.
Integer
Integer*1
, Integer*2
, Integer*4
, Integer*8
, and
Integer
= Integer*4
.
Logical
Logical*1
, Logical*2
, Logical*4
, Logical*8
, and
Logical
= Logical*4
.
Real
Real*4
, Real*8
, Real*16
, and Real
= Real*4
.
Complex
Complex*4
, Complex*8
, Complex*16
, and Complex
=
Complex*4
.
Next: Fortran Operators, Up: Fortran [Contents][Index]