https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82471
Thomas Koenig <tkoenig at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |tkoenig at gcc dot gnu.org --- Comment #1 from Thomas Koenig <tkoenig at gcc dot gnu.org> --- There is a subtle problem with your test case, it is the ordering of the variables in the DO concurrent statement. DO CONCURRENT( K=1:N, J=1:M, I=1:L) C(I,J,K) = A(I,J,K) + B(I,J,K) END DO This is probably not what you meant to write; this will fail (with the variable bounds you gave above in ALLOCATE( A(L,M,N), B(L,M,N), C(L,M,N) ) if any of L, M or N has a different value. If you write DO CONCURRENT( I=1:L, K=1:N, J=1:M) things are much faster.