https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97122
--- Comment #6 from Ian Harvey <ian_harvey at bigpond dot com> --- A module procedure is defined by a module subprogram (F2018 15.2.2.2p3). A module subprogram (or any subprogram) is a syntax element (a piece of source code), equivalent to /module-subprogram/ (see the first sentence of F2018 4.1.5p1). The things that appear after the CONTAINS in a submodule are module subprograms (see the definitions of /submodule/ and /module-subprogram-part/).