use*_*035 7 fortran gfortran intel-fortran
什么是相当于英特尔ifort的 gfortran标志
-heap-arrays [size]
Run Code Online (Sandbox Code Playgroud)
这是一个老问题,但接受的答案并不完全正确,我想为像我这样遇到帖子寻找答案的未来用户添加上下文。
我相信 intelifort
和 gccgfortran
都有一些字节限制,其中超出所述限制的数组不在堆栈上分配,而是在静态内存中。
英特尔的: -heap-arrays [size]
, 将根据大小将任何大于[size]
千字节的数组放在堆上,而不是放在静态内存或堆栈上。
Gcc 没有这个选项,而只有-fmax-stack-var-size=n
,其中n
字节以上的任何变量都不会放在堆栈中。文档(https://gcc.gnu.org/onlinedocs/gfortran/Code-Gen-Options.html)说:
if the size is exceeded static memory is used (except in procedures marked as RECURSIVE).
Run Code Online (Sandbox Code Playgroud)
这里的主要区别是这些大变量不能保证放在堆上。
因此 intel 和 gcc 的两个选项并不相同,需要更加小心以确保gfortran
在静态内存中不共享大数组。
归档时间: |
|
查看次数: |
4323 次 |
最近记录: |