为什么 ifort 和 gfortran 之间有不同的行为?使用 ifort 编译它返回 false,使用 gfortran 编译返回 true。我之前在自己的代码中遇到过这个问题,并决定使用子例程来代替,但最近的一个问题让我质疑这种行为。
function allocateArray(size)
integer, allocatable, dimension(:) :: allocateArray
integer size
allocate(allocateArray(size))
end function allocateArray
从主程序来看
integer, allocatable, dimension(:) :: a
a = allocateArray(10)
print *, allocated(a)
在 17.0.1 版本之前使用 ifort 进行编译时,编译器的默认行为是不使用 Fortran 规则进行内部赋值的自动分配。
您将需要使用类似的选项-assume realloc-lhs
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)