I see your point, just thinking that (take the following just as brainstorming on the topic
) if one doesn’t want to reallocate a simple if(.not.allocated(myarray)) ... would ensure to allocate only the first time.
Allocatable arrays in Fortran are safer than using new from C++, to my experience, while I have seen some memory leaks with the latter. With allocatables I have seen memory corruption if one tries to write in the wrong memory section by mistake, but they will be destroyed on exiting the scope (if not, is because one wrote outside the bounds and the program would crash normally).
At the end I just think that the extra argument is already taken care by the allocated attribute.
So, I would say to put the energy on enabling reallocation through the allocate statement, then workout if an extra argument is an absolute requirement.