A Fortran module variable that has the BIND attribute may interoperate with a C variable with external linkage.
There need not be an associated C entity for a module variable with the BIND attribute.
A scalar Fortran variable is interoperable, if its type and type parameters are interoperable and it has neither the POINTER nor the ALLOCATABLE attributes. An interoperable scalar Fortran variable is interoperable with a scalar C variable, if its type and type parameters are interoperable with the type of the C variable.
A Fortran array variable is interoperable, if its type and type parameters are interoperable, it is of explicit shape or assumed size, it is not zero-sized, and it does not have the POINTER or ALLOCATABLE attributes.
A Fortran array is interoperable with a C array, if its size is nonzero and
Because C uses row-major arrays and Fortran uses column-major
arrays, a C array's dimensions must be the reverse of a Fortran
array's dimensions.