https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109223
Bug ID: 109223 Summary: parameters for a type on IMPLICIT do not work. For example: IMPLICIT TYPE(REAL(KIND=REAL128)) fails Product: gcc Version: 12.2.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran Assignee: unassigned at gcc dot gnu.org Reporter: urbanjost at comcast dot net Target Milestone: --- This fails on the IMPLICIT statement program testit use, intrinsic :: iso_fortran_env, only : qp=>real128 implicit type(real(kind=qp)) (a-z) ! this should work but fails ! surprising (to me) this works, which I thought broke the syntax rules ! implicit real(kind=qp) (a-z) type(real(kind=QP)) :: quad print '(*(g0))', "kind(long) = ", kind(long), & & "; expected is ", kind(quad) end program testit The expected output is kind(long) = 16; expected is 16 The "Fortran Standard" implies type parameters are standard: 8.7 IMPLICIT statement 1 In a scoping unit, an IMPLICIT statement specifies a type, and possibly type parameters, for all implicitly typed data entities whose names begin with one of the letters specified in the statement. An IMPLICIT NONE statement can indicate that no implicit typing rules are to apply in a particular scoping unit, or that external and dummy procedures need to be explicitly given the EXTERNAL attribute.