I tried using forall to distribute dynamic arrays, but gfortran didn't like it. I also found that write expressions are forbidden in << 20>, and I suspect read expressions too.
What other functions / operations are not allowed in the forall block?
Exactly, what kind of construction is this, except sometimes replacing do loops when the order doesn't matter? I thought this would make the encoding clearer and more elegant, especially showing that the order of operations is not important, but it seems pretty restrictive with what operations can be performed inside forall .
What are the reasons for these restrictions, that is, that they protect / prevent user intervention? Is forall useful? If so, for what purpose?
Right now, there is only one forall block in the code I'm working on, and if I completely translated it into do loops, it would give four nested loops. Which way is better?
source share