Simplify loop on an array of derived type?

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?