I have a very large amount of code in a multi-body simulator that I have made parallel. All the subroutines in the parallel section are pure, and all the data passed into the top level of this section iscleanly divided by body. So each entry into the per bodypropagation is split off into a parallel task by an OMP Parallel Do statement.
My concern is will the local data in the pure subroutines ever "cross wires" due to parallel read-modify-write?
Do I need to use mutexes or critical sections in the pure subroutines?