mlayton,
Avoiding large arrays being copied is an art in LabVIEW. This time the LabVIEW compiler is too smart trying to optimize the code. When you use "Initialize Array" with all constants on input, LabVIEW creates the array at compile time and saves a copy of the initialized array. When copied to the indicator, that makes two copies.
To prevent one copy, replace one of the constants (8,7 or 4320) with a FP control with the same default value. Then the array will be created at run-time only.
Do not display the array in an indicator if you can avoid it as LabVIEW makes a copy for the indicator display. The user doesn't need to see the 967,680 values. If you need an indicator to pass the array to its caller, LabVIEW will manage to reuse the arra
y space if the subVI always keeps its FP closed (no need for display).
If the large array is to be used everywhere in the application, it can be stored in the shift register of a subVI. In this subVI, put all the code required to manipulate the array (Initialize/Read/Write/ elements, etc). That will greatly reduced te number of unnecessary copies of the array.