The reason for the difference in speed is that omDNScalc is not a packed array. This is a faster way to compute it that constructs a packed array:
omDNScalc = omm0@cfct3Dr;
With that change, the times are comparable and fast.
Alternative: I had to experiment a little to figure out you don't sum over the whole array omDNS (that is, idiff etc. are not ...