That's very useful, thank you Mike.  OK, at least the time sink is where it should be (in the inverse FFTs to realise a noise image according to a given PS).  There are some small economies that might be possible there including trying using the SBProfile FFTs.  I'll look into that for the whitening.