The Fortran standard does not specify how variables of
type are represented, beyond requiring that
of default kind have the same storage size as default
REAL variables. The GNU Fortran internal representation is
LOGICAL(KIND=N) variable is represented as an
INTEGER(KIND=N) variable, however, with only two permissible
.FALSE.. Any other integer value results in undefined behavior.
See also Argument passing conventions and Interoperability with C.