A little experiment.
Insert up near the top of your code
counter = 0;
Insert immediately before the last line of your Module, which returns the value of intensity,
LinkWrite[$ParentLink, SetNotebookStatusLine[FrontEnd`EvaluationNotebook[], ToString[{counter++, pw, h0, \[Sigma]0, Qw, intensity}]]];
That is going to write little messages onto the status line in the lower right corner of your window. You will be able to see the counter incrementing, the contents of your arguments to your module and the resulting intensity.
I have chosen the order of those so that the ones which will almost always have the same number of characters to be displayed each time come first. That way we can hopefully see pattern in the flood of messages.
Notice how many thousands of calls are made to your module have without any change to pw, h0 and sigma0.