(Corresponds to Section 4.2 of ANSI X3.9-1978 FORTRAN 77.)

A typeless constant has one of the following forms:

'binary-digits'B 'octal-digits'O 'hexadecimal-digits'Z 'hexadecimal-digits'X

`binary-digits`, `octal-digits`, and `hexadecimal-digits`
are nonempty strings of characters in the set `01`

, `01234567`

,
and `0123456789ABCDEFabcdef`

, respectively.
(The value for `A`

(and `a`

) is 10, for `B`

and `b`

is 11, and so on.)

A prefix-radix constant, such as `Z'ABCD'`

, can optionally be
treated as typeless. See Options Controlling Fortran Dialect, for information on the
`-ftypeless-boz`

option.

Typeless constants have values that depend on the context in which they are used.

All other constants, called typed constants, are interpreted--converted
to internal form--according to their inherent type.
Thus, context is *never* a determining factor for the type, and hence
the interpretation, of a typed constant.
(All constants in the ANSI FORTRAN 77 language are typed constants.)

For example, `1`

is always type `INTEGER(KIND=1)`

in GNU
Fortran (called default INTEGER in Fortran 90),
`9.435784839284958`

is always type `REAL(KIND=1)`

(even if the
additional precision specified is lost, and even when used in a
`REAL(KIND=2)`

context), `1E0`

is always type `REAL(KIND=2)`

,
and `1D0`

is always type `REAL(KIND=2)`

.