Hi all. I have a query regarding the FORALL construct, and specifically non-determinism. The previous FORALL thread briefly touched on many-to-one assignments, but never went far enough to answer my query. For example, given: INTEGER A(2), B(2) ... FORALL (i=1:2, j=1:2) A(i) = B(j) END FORALL According to the standard the active index set is: { (i=1, j=1), (i=1, j=2), (i=2, j=1), (i=2, j=2) }, and the body statement(s) must be executed for all indexes in the index set. This means that the above FORALL construct is equivalent to the parallel (simultaneous) assignments: A(1) = B(1) A(1) = B(2) A(2) = B(1) A(2) = B(2) I know that in other places in the standard, such as array assignment, non-determinism is prohibited, but this is not an array assignment: each assignment in the given example is treated as though it were scalar. The overall result, though, is a non-deterministic FORALL construct, which I can't find prohibited in the standard. Am I missing something, or it this as intended? All replies gratefully received! Niki