5.1.13 Неявное преобразование значений LOGICAL и INTEGER
В качестве расширения для обратной совместимости с другими компиляторами, GNU Fortran допускает неявное преобразование значений LOGICAL в значения INTEGER и наоборот. При преобразовании из LOGICAL в INTEGER, значение .FALSE. интерпретируется как ноль, а .TRUE. интерпретируется как единица. При преобразовании из INTEGER в LOGICAL, значение ноль интерпретируется как .FALSE., а любое ненулевое значение интерпретируется как .TRUE..
LOGICAL :: l l = 1
INTEGER :: i i = .TRUE.
Однако, неявное преобразование значений INTEGER в if-выражениях, а также значений LOGICAL или INTEGER в операциях ввода-вывода отсутствует.
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-14.2.0/gfortran/Implicitly-convert-LOGICAL-and-INTEGER-values.html