6.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-10.2.0/gfortran/Implicitly-convert-LOGICAL-and-INTEGER-values.html