这个问题是什么,我不能用意图(out)分配一些东西?我在网上的一些手册中看到,你不能使用intent(out)和allocate。
在我使用静态数组之前,所以它没有问题,但现在我有非常大的数组,我遇到了这些R_X86_PC64错误,编译器不喜欢我的静态数组的大小,除非我使用intel with -mcmodel = medium -shared-intel flags。
PGI将编译代码,但在分配时出现seg故障。它并不介意在主程序中完全相同的分配,但在子程序中作为意图(out)没有骰子......
对于pgi,我是否有类似的命令,我可以拥有大型静态数组并重新做到这一点?
还有其他建议吗?
答案 0 :(得分:2)
module MyMod
implicit none
contains
subroutine MySub ( array )
real, dimension (:), allocatable, intent (out) :: array
integer :: N
write (*, '( "Input array size: " )', advance="no" )
read (*, *) N
allocate (array (N))
array = 1.0
end subroutine MySub
end module MyMod
program main
use MyMod
implicit none
real, dimension (:), allocatable :: B
call MySub (B)
write (*, *) allocated (B), size (B)
deallocate (B)
write (*, *) allocated (B)
end program main