6.1.12 Неявное преобразование значений 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-4.9.3/gfortran/Implicitly-convert-LOGICAL-and-INTEGER-values.html