I always use allocatable arrays, specifically because of the uncertainty of whether an automatic array might cause a crash. But also, often enough to just default to it, the sizes of the arrays are reliant on something conditional, or that may not be present (like in a previous example). So my defaults for arrays are that they are either:
- Assumed shape dummy arguments
- Allocatable
There are some exceptions, but they aren’t worth thinking about until you’ve really got a solid foundational understanding of a lot of other things.