https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99506
--- Comment #4 from Richard Biener <rguenth at gcc dot gnu.org> --- This is a frontend issue, the FE produces an invalid static initializer for 'latt' (DECL_INITIAL): {(real(kind=8)) latt100[(integer(kind=8)) i + -1] / 1.0e+2, (real(kind=8)) latt100[(integer(kind=8)) i + -1] / 1.0e+2,... } if this should be dynamic initialization FEs are responsible for lowering this. I don't know fortran enough for what 'parameter' means in this context: real(double), parameter:: latt(jmax) = [(latt100(i)/100.d0, j=1,jmax)] but the middle-end sees a readonly global (TREE_STATIC) variable.