Causes all local, non-SAVEd variables to be allocated on the run-time stack.
Windows: Data > Local Variable Storage
Linux: None
Mac OS: None
IA-32, IntelŪ EM64T, IntelŪ ItaniumŪ architecture
Linux and Mac OS: | -automatic -noautomatic |
Windows: | /automatic /noautomatic |
None
-auto-scalar or /Qauto-scalar |
Scalar variables of intrinsic types INTEGER, REAL, COMPLEX, and LOGICAL are allocated to the run-time stack. Note that if option recursive, -openmp (Linux and Mac OS), or /Qopenmp (Windows) is specified, the default is automatic. |
This option places local variables, except those declared as SAVE, on the run-time stack. It is as if the variables were declared with the AUTOMATIC attribute.
It does not affect variables that have the SAVE attribute or appear in an EQUIVALENCE statement or in a common block.
This option may provide a performance gain for your program, but if your program depends on variables having the same value as the last time the routine was invoked, your program may not function properly.
If you want to cause variables to be placed in static memory, specify option -save (Linux and Mac OS) or /Qsave (Windows).
Note
On Windows NT* systems, there is a performance penalty for addressing a stack frame that is too large. This penalty may be incurred with /automatic, /auto, or /Qauto because arrays are allocated on the stack along with scalars. However, with /Qauto-scalar, you would have to have more than 32K bytes of local scalar variables before you incurred the performance penalty. /Qauto-scalar enables the compiler to make better choices about which variables should be kept in registers during program execution.
automatic | Linux and Mac
OS: -auto Windows: /auto, /Qauto, /4Ya |
noautomatic | Linux and Mac
OS: -save, -noauto Windows: /Qsave, /noauto, /4Na |
auto-scalar compiler option
save, Qsave compiler option