Implicitly convert LOGICAL and INTEGER values (The GNU Fortran Compiler)

#### 5.1.13 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.