https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88169
kargl at gcc dot gnu.org changed: What |Removed |Added ---------------------------------------------------------------------------- Priority|P3 |P4 Status|UNCONFIRMED |NEW Last reconfirmed| |2018-11-23 Ever confirmed|0 |1 --- Comment #1 from kargl at gcc dot gnu.org --- Fortran 95 contains NOTE 11.8 The constraints in sections 5.5.1, 5.5.2, and 5.4 prohibit the local-name from appearing as a common-block-object in a COMMON statement, an equivalence- object in an EQUIVALENCE statement, or a namelist-group-name in a NAMELIST statement, respectively. There is no prohibition against the local-name appearing as a common-block-name or a namelist-object. This appears to prohibit program main use foo_nml, only: bar => foo namelist /bah/ bar ! <-- Invalid x = 42 write(*,nml=bar) end program So, I do believe you are correct. Your code is conforming.