This one is probably my fault, but let's see what others think. See attached.
The constructor declares its argument as intent(out). When you run it, the result is a leak that (on my PC at least) quickly exhausts available memory. Changing it to intent(inout) causes error 151, allocatable array is allready allocated.