https://gcc.gnu.org/bugzilla/show_bug.cgi?id=72744
--- Comment #1 from Gerhard Steinmetz <gerhard.steinmetz.fort...@t-online.de> --- As known, case above works with "workshare" : $ cat z2.f90 program p integer, parameter :: n = 20 integer :: i, z(n), h(n) z = [(i, i=1,n)] h = [(i, i=n,1,-1)] call sub (n, h) if ( any(h/=z) ) call abort end subroutine sub (n, x) integer :: n, x(n) !$omp parallel workshare x(:) = x(n:1:-1) !$omp end parallel workshare end $ gfortran-7-20160724 -Ofast -fopenmp -fall-intrinsics z2.f90 $ a.out