Allow output allocatable variables without specific dimensions
Description
Similar to how we handle the run-time constituents, there should be a way to indicate to the framework that the physics will handle variable allocation and we do not yet know the dimensions.
Solution
If a variable has the following metadata attributes when it first appears:
allocatable = Truedimensions = (:,:)(just the shape)intent = out
the cap will just declare the variable but not do any allocation or dimensions checking.
This sounds like a job for the new "register" phase!
@gold2718 From discussion today, we are questioning the purpose/need for the "allocatable" flag (as it currently has no effect) since it seems as if we will always have to allocate variables at the very beginning of execution anyway. Could you weigh in on what you might envision this flag accomplishing?
At the very least, it should be checked against existing variables. For instance, if the host is providing a variable and a scheme has an allocatable output with the same standard name, this is likely to cause problems, especially if the host model variable is not allocatable but also by unexpectedly re-allocating a host-model variable. I do not know if this is being checked but in general, we may want to only allow one allocation of an allocatable variable. To implement this requires metadata.