https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84778
--- Comment #3 from david.applegate at woodplc dot com --- Thanks for the reply and the clarification. I have two comments to make regarding this if I may... 1) Previous gfortran compilers were happy with the code. I also tested g95 and Ifort (admittedly aged versions of both). Ifort also refused to compile the code while g95 did compile the code (you may not care I guess). It is slightly irritating that gfortran is essentially not backwards compatible with previous versions. Maybe gfortran should compile this code unless the users specify one of the -std=f95/f2003/f2008 switches? 2) What about array declaration? Gfortran 7.3 is happy to compile the following code, which presumably does not conform to the standard you mention, while Ifort refuses to compile this code: program test2 implicit none integer, parameter :: b = 5 integer :: a(b) a = 4 write(*,*)a call testsub(a,b) contains subroutine testsub(a,b) ! integer, intent(in) :: b ! if we put declaration of b here instead it compiles ok integer :: a(b) integer, intent(in) :: b write(*,*)a end subroutine testsub end program test2