I have tried a do concurrent with LOCAL_INIT with ifort 2021.5.0 20211109.
program main
implicit none
integer :: a, i
a = 5
do concurrent(i = 1:5) local_init(a)
print "(I5,I7)", i, a
a = a*2
print "(A5, I7)",' ', a
end do
end program
Compiled in WSL2 with -parallel. It writes:
1 5
10
2 10
20
3 20
40
4 40
80
5 80
160
But I would have expected:
1 5
10
2 5
10
3 5
10
4 5
10
5 5
10