https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109075
--- Comment #5 from Thomas Koenig <tkoenig at gcc dot gnu.org> --- Might be invalid code, see https://gcc.gnu.org/pipermail/fortran/2023-March/059062.html That appears to be a problem with widely used old-style linear congruential random number generators, which expect overflow to just silently truncate. Looking at the test case with nagfor -C=all shows the problem: 0: 0: 0.000 -> Read sequence 0: 0: 0.150 -> extract extrema 0: 0: 0.159 -> Generate raw transitions counts 0: 0: 0.183 -> Compute Markov matrix 0: 0: 0.184 -> Calculate theoretical rainflow 0: 0:43.286 -> Simulate random markov sequences Runtime Error: rnflow.f90, line 902: INTEGER(int32) overflow for 843314861 * 1993 The issue with the patch is that it is also illegal Fortran, because the assignment outside the value range of a default integer is also illegal. Again, nagfor catches this: 0: 0: 0.000 -> Read sequence 0: 0: 0.140 -> extract extrema 0: 0: 0.150 -> Generate raw transitions counts 0: 0: 0.175 -> Compute Markov matrix 0: 0: 0.175 -> Calculate theoretical rainflow 0: 0:44.032 -> Simulate random markov sequences Runtime Error: rnflow.f90, line 905: Overflow converting 1681180334666 to INTEGER(int32) So, what to do? I think we need to mention this in the release notes, and also a workaround which gives the same result. If there is a flag which suppresses whatever this does, we could also set this with -std=legacy (and also mention this in the relase notes).