https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98454
--- Comment #6 from Fran Martinez Fadrique <ffadrique at gmail dot com> --- I have raised the issue with respect to 4.5.3.4 of the ISO standard that stablishes how the type component are initialized. Not just my expectations. I have further developed my test case and any local variable declared in any function or subroutine in the scope of the module where the type is declared fails to properly initialize its components according to the default initializations (using the terminology of the standard). The intent(out) seems to make the difference and subroutine parameters are properly initialized. Any variable created outside the module declaring the type seems to properly initialize the components. I compile with -std=2018 so I would expect that invalid Fortran is flagged, at least with a warning, which is not the case.