The CVF documentation says, "Named common blocks must be declared to have the same size in each program unit. Blank common can have different lengths in different program units."
The following code violates the above rule. But it works, provided array and string bounds runtime checking is off:
common /a/ array(1)
print *, array(2) !Prints 99.00000
common /a/ array(2)
data array(2) /99/
Is there a way to accommodate code like this in a reliable way? Is the fact that the code works based on undocumented behavior, which could change?