The GNU Fortran Compiler: Implicitly convert LOGICAL and INTEGER values

Next: Hollerith constants support, Previous: Unary operators, Up: Extensions implemented in GNU Fortran [Contents][Index]

#### 6.1.12 Implicitly convert `LOGICAL` and `INTEGER` values

As an extension for backwards compatibility with other compilers, GNU Fortran allows the implicit conversion of `LOGICAL` values to `INTEGER` values and vice versa. When converting from a `LOGICAL` to an `INTEGER`, `.FALSE.` is interpreted as zero, and `.TRUE.` is interpreted as one. When converting from `INTEGER` to `LOGICAL`, the value zero is interpreted as `.FALSE.` and any nonzero value is interpreted as `.TRUE.`.

            LOGICAL :: l
            l = 1

            INTEGER :: i
            i = .TRUE.

However, there is no implicit conversion of `INTEGER` values in `if`-statements, nor of `LOGICAL` or `INTEGER` values in I/O operations.