One additional question:
If I’m not mistaken, this function could be declared pure too. To run each call to f in parallel, I’d have to revert to an explicit loop:
! Assuming y is allocated
forall(i=1:10)
y(i) = f(data(i))
end forall
or use a !$OMP or similar $!-prefixed instruction. Right?