https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69524
Paul Thomas <pault at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Assignee|unassigned at gcc dot gnu.org |pault at gcc dot gnu.org --- Comment #7 from Paul Thomas <pault at gcc dot gnu.org> --- I could be wrong but I do not agree that this is valid code. I will turn to it tomorrow. I believe that a MODULE SUBROUTINE/FUNCTION declaration cannot appear in the contained part of a module. This is the legal version, which compiles correctly: module A interface module subroutine A1(i) integer i end subroutine A1 end interface end module submodule(a) a_son contains module subroutine A1(i) integer i print *, 'A::A1(): i == ', i end subroutine A1 end submodule I will check the standard and, either way, I will fix the problem. Paul