https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60355
--- Comment #2 from Thomas Koenig <tkoenig at gcc dot gnu.org> --- Apparently only for implicitly-typed variables. This works as expected: program main integer, bind(c) :: i end program main $ gfortran a.f90 a.f90:2:23: integer, bind(c) :: i 1 Error: Variable 'i' at (1) cannot be BIND(C) because it is neither a COMMON block nor declared at the module level scope