https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96471
--- Comment #5 from Richard Biener <rguenth at gcc dot gnu.org> --- And auto reduce + some manual sanitizing: SUBROUTINE CMUMPS_SCATTER_DIST_RHS( & POSINRHSCOMP_FWD, IFIRSTNOTTOUCHED, & NBRECORDS) INTEGER, INTENT(IN) :: POSINRHSCOMP_FWD(N) CALL CMUMPS_DR_ASSEMBLE_LOCAL() CONTAINS SUBROUTINE CMUMPS_DR_ASSEMBLE_LOCAL() !$OMP PARALLEL DO PRIVATE(I, IRHSCOMP, Iglob) DO I = IFIRSTNOTTOUCHED, NBRECORDS IRHSCOMP = POSINRHSCOMP_FWD(I) ENDDO END SUBROUTINE CMUMPS_DR_ASSEMBLE_LOCAL END SUBROUTINE CMUMPS_SCATTER_DIST_RHS