A question for a customer for which I don't have a good answer. This is one for Doctor Fortran
The question posed: "Why is it that contained functions in pure routines need to be pure? If they capture state from the parent, and only use that state, the expectations of the caller can still be met. It seems to me there should be several weaker forms of pure, for example, just that the contained function references no global variables through USE statements."