In order to ensure that exactly the same variable type and kind is used
in C and Fortran, you should use the named constants for kind parameters
that are defined in the ISO_C_BINDING
intrinsic module.
That module contains named constants of character type representing
the escaped special characters in C, such as newline.
For a list of the constants, see ISO_C_BINDING
.
For logical types, please note that the Fortran standard only guarantees
interoperability between C99’s _Bool
and Fortran’s C_Bool
-kind
logicals and C99 defines that true
has the value 1 and false
the value 0. Using any other integer value with GNU Fortran’s LOGICAL
(with any kind parameter) gives an undefined result. (Passing other integer
values than 0 and 1 to GCC’s _Bool
is also undefined, unless the
integer is explicitly or implicitly casted to _Bool
.)