- Integer
- Real
- Double precision
- Complex
- Logical
- Character

Each type is different and may have a different internal representation. The type may affect the interpretation of the operations involving the datum.

The data type of an array element name is the same as the type of its array name.

The data type of a function name specifies the type of the datum supplied by the function reference in an expression.

A symbolic name that identifies a specific intrinsic function in a program unit has a type as specified in 15.10. An explicit type-statement is not required; however, it is permitted. A generic function name does not have a predetermined type; the result of a generic function reference assumes a type that depends on the type of the argument, as specified in 15.10. If a generic function name appears in a type-statement, such an appearance is not sufficient by itself to remove the generic properties from that function.

In a program unit that contains an external function reference, the type of the function is determined in the same manner as for variables and arrays.

The type of an external function is specified implicitly by its name, explicitly in a FUNCTION statement, or explicitly in a type-statement. Note that an IMPLICIT statement within a function subprogram may affect the type of the external function specified in the subprogram.

A symbolic name that identifies a main program, subroutine, common block, or block data subprogram has no data type.

- Basic real constant
- Basic real constant followed by a real exponent
- Integer constant followed by a real exponent

The value of a real constant that contains a real exponent is the product of the constant that precedes the E and the power of ten indicated by the integer following the E. The integer constant part of form (3) may be written with more digits than a processor will use to approximate the value of the constant.

- Basic real constant followed by a double precision exponent
- Integer constant followed by a double precision exponent

The value of a double precision constant is the product of the constant that precedes the D and the power of ten indicated by the integer following the D. The integer constant part of form (2) may be written with more digits than a processor will use to approximate the value of the constant.

___________________ | | | | Form | Value | |_________|_______| | | | | .TRUE. | true | | | | | .FALSE. | false | |_________|_______|

Each character in the string has a character position that is numbered consecutively 1, 2, 3, etc. The number indicates the sequential position of a character in the string, beginning at the left and proceeding to the right.

The length of a character constant is the number of characters between the delimiting apostrophes, except that each pair of consecutive apostrophes counts as a single character. The delimiting apostrophes are not counted. The length of a character constant must be greater than zero.