https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83064
--- Comment #13 from Dominique d'Humieres <dominiq at lps dot ens.fr> --- > > I confirm that using > > > > pik = compute( low(i), high(i) ) > > pi(i) = sum(pik) > > > > gives the right result. > > > > Does it means that the 'sum' in 'sum(compute( low(i), high(i) ))' > > is not part of the parallelization? > no idea, I can't do the above, pik is not declared. As said in comment 5, real(real64), dimension(nsplit) :: pi has to be replaced with real(real64), dimension(nsplit) :: pi, pik With my limited understanding of DO CONCURRENT, do concurrent (i = 1:nsplit) body(i) end do the evaluations of 'body' for different values of 'i' are independent. I think that implied that all the temporaries generated in body have to be local.