The Fortran standard does not specify how variables of LOGICAL
type are represented, beyond requiring that LOGICAL
variables of default kind have the same storage size as default INTEGER
and REAL
variables. The GNU Fortran internal representation is as follows.
A LOGICAL(KIND=N)
variable is represented as an INTEGER(KIND=N)
variable, however, with only two permissible values: 1
for .TRUE.
and 0
for .FALSE.
. Any other integer value results in undefined behavior.
See also Argument passing conventions and Interoperability with C.
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-4.9.3/gfortran/Internal-representation-of-LOGICAL-variables.html