为什么我不能分配意图(out)?

时间:2014-06-11 01:56:40

标签: compiler-errors static fortran large-data

这个问题是什么,我不能用意图(out)分配一些东西?我在网上的一些手册中看到,你不能使用intent(out)和allocate。

在我使用静态数组之前,所以它没有问题,但现在我有非常大的数组,我遇到了这些R_X86_PC64错误,编译器不喜欢我的静态数组的大小,除非我使用intel with -mcmodel = medium -shared-intel flags。

PGI将编译代码,但在分配时出现seg故障。它并不介意在主程序中完全相同的分配,但在子程序中作为意图(out)没有骰子......

对于pgi,我是否有类似的命令,我可以拥有大型静态数组并重新做到这一点?

还有其他建议吗?

1 个答案:

答案 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