defines internal representation of the type: for the three numeric types, it defines the precision and range, and for the other two, the specifics of storage representation. Thus, it is an abstract concept which models the limits of data types' representation; it is expressed as a member of a set of whole numbers (e.g. it may be {1, 2, 4, 8} for integers, denoting bytes of storage), but those values are not specified by the Standard and not portable. For every type, there is a default kind, which is used if no kind is explicitly specified. For each intrinsic type, there is a corresponding form of literal constant. The numeric types INTEGER and REAL can only be signed (there is no concept of sign for type COMPLEX). Literal constants and kinds INTEGER Integer literal constants of the default kind take the form 1 0 -999 32767 +10 Kind can be defined as a named constant. If the desired range is ±10kind, the portable syntax for defining the appropriate kind, two_bytes is INTEGER, PARAMETER :: two_bytes = SELECTED_INT_KIND(4) that allows subsequent definition of constants of the form -1234_two_bytes +1_two_bytes Here, two_bytes is the kind type parameter; it can also be an explicit default integer literal constant, like -1234_2 but such use is non-portable. The KIND function supplies the value of a kind type parameter: KIND(1) KIND(1_two_bytes) and the RANGE function supplies the actual decimal range (so the user must make the actual mapping to bytes): RANGE(1_two_bytes) Also, in DATA (initialization) statements, binary (B), octal (O) and hexadecimal (Z) constants may be used (often informally referred to as "BOZ constants"): B'01010101' O'01234567' Z'10fa' REAL There are at least two real kindsthe default and one with greater precision (this replaces DOUBLE PRECISION). SELECTED_REAL_KIND functions returns the kind number for desired range and precision; for at least 9 decimal digits of precision and a range of 10−99 to 1099, it can be specified as: INTEGER, PARAMETER :: long = SELECTED_REAL_KIND(9, 99) and literals subsequently specified as 1.7_long Also, there are the intrinsic functions KIND(1.7_long) PRECISION(1.7_long) RANGE(1.7_long) that give in turn the kind type value, the actual precision (here at least 9), and the actual range (here at least 99). COMPLEX COMPLEX data type is built of two integer or real components: (1, 3.7_long) LOGICAL There are only two basic values of logical constants: .TRUE. and .FALSE.. Here, there may also be different kinds. Logicals