Eddie,
Thanks for your comments. I have reviewed the ftn95.chm.
My understanding is 'the linker stack allocation algorithm' does not exist. It just allocates a fixed size, which apparently defaults to 16 Mb for /64.
For 32-bit, I am very confused, as it defines a reserve (max size) of 50 Mb and a commit of only 16Kb. Not sure how this 'commit' works, but presumably the reserve is the main size limit.
So, why is /64 documented as only 16 Mb ?
Paul,
Could you comment on the following questions.
I tried to write a program that tests the available stack, by allocating larger arrays, using ALLOCATE or calling a subroutine to use an automatic (local) array. My stack size test is failing as my large local arrays 'appear' to be going on another heap.
Is there a way (compile or link option) to control where these local arrays go (heap or stack) ?
Does /map tell you the stack size the linker has given you? It would be useful to know what it is, ie see when the 'algorithm' changes the size.
My test program now confirms 50Mb stack for 32-bit but does not work effectively for /64 stack testing. For 64-bit, large local arrays have different address area to the heap arrays or the local stack variables. ( I shall post link when I resolve the problem )
Edit: Paul, for /64 I only want to know how to send large local arrays to the stack, as a compile option (/stack_arrays ?). I am not recommending this as a good approach, as the default to send to a larger memory area is a much better default, like other 64-bit compilers.