https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84122
--- Comment #3 from Neil Carlson <neil.n.carlson at gmail dot com> --- Here's a related invalid example that gfortran accepts: module mod type foo(dim) integer,len,public :: dim integer :: array(dim) end type end module PUBLIC/PRIVATE attributes are not valid attributes for a type parameter definition statement; see R431 and R433 (F08). Gfortran does reject PRIVATE. but the error message Error: PRIVATE attribute conflicts with LEN attribute at (1) together with it allowing PUBLIC seems to betray that the PDT implementation views type parameters as type components. The issue is not so much that PRIVATE conflicts with LEN, as that type parameters do not have an accessibility attribute.