Intel® Fortran Compiler Classic and Intel® Fortran Compiler Developer Guide and Reference

ID 767251
Date 3/22/2024
Public
Document Table of Contents

Intrinsic Data Types

Intel® Fortran provides the following intrinsic data types:

  • INTEGER

    The following kind parameters are available for data of type integer:

    • INTEGER([KIND=]1) or INTEGER*1

    • INTEGER([KIND=]2) or INTEGER*2

    • INTEGER([KIND=]4) or INTEGER*4

    • INTEGER([KIND=]8) or INTEGER*8

  • REAL

    The following kind parameters are available for data of type real:

    • REAL([KIND=]4) or REAL*4

    • REAL([KIND=]8) or REAL*8

    • REAL([KIND=]16) or REAL*16

  • DOUBLE PRECISION

    No kind parameter is permitted for data declared with type DOUBLE PRECISION. This data type is the same as REAL([KIND=]8).

  • COMPLEX

    The following kind parameters are available for data of type complex:

    • COMPLEX([KIND=]4) or COMPLEX*8

    • COMPLEX([KIND=]8) or COMPLEX*16

    • COMPLEX([KIND=]16) or COMPLEX*32

  • DOUBLE COMPLEX

    No kind parameter is permitted for data declared with type DOUBLE COMPLEX. This data type is the same as COMPLEX([KIND=]8).

  • LOGICAL

    The following kind parameters are available for data of type logical:

    • LOGICAL([KIND=]1) or LOGICAL*1

    • LOGICAL([KIND=]2) or LOGICAL*2

    • LOGICAL([KIND=]4) or LOGICAL*4

    • LOGICAL([KIND=]8) or LOGICAL*8

  • CHARACTER

    There is one kind parameter available for data of type character: CHARACTER([KIND=]1).

  • BYTE

    This is a 1-byte value; the data type is equivalent to INTEGER([KIND=]1).

The intrinsic function KIND can be used to determine the kind type parameter of a representation method.

For more portable programs, you should not use the forms INTEGER([KIND=]n) or REAL([KIND=]n). You should instead define a PARAMETER constant using the SELECTED_INT_KIND or SELECTED_REAL_KIND function, whichever is appropriate. For example, the following statements define a PARAMETER constant for an INTEGER kind that has 9 digits:

  INTEGER, PARAMETER :: MY_INT_KIND = SELECTED_INT_KIND(9)
    ...
  INTEGER(MY_INT_KIND) :: J
    ...

Note that the syntax :: is used in type declaration statements.

The following sections describe the intrinsic data types and forms for literal constants for each type.

See Also