为什么4维数组大小800 x 100 x 100 x 100仅适用于可分配数组?

时间:2015-03-26 08:27:37

标签: macos multidimensional-array fortran fortran90 gfortran

我尝试使用4维数组尺寸800 x 100 x 100 x 100,但遇到此错误:

/var/folders/cd/jlh3y5md6t70w3h9w747_87c0000gn/T//ccZySij1.s:282:zerofill size (3200000000.) <0! Ignored.
/var/folders/cd/jlh3y5md6t70w3h9w747_87c0000gn/T//ccZySij1.s:282:Rest of line ignored. 1st junk character valued 44 (,).
/var/folders/cd/jlh3y5md6t70w3h9w747_87c0000gn/T//ccZySij1.s:283:zerofill size (3200000000.) <0! Ignored.
/var/folders/cd/jlh3y5md6t70w3h9w747_87c0000gn/T//ccZySij1.s:283:Rest of line ignored. 1st junk character valued 44 (,).
make: *** [run.out] Error 1

但如果我使用可分配数组而不是普通数组,我可以传递此错误。

问题是为什么?

注意:通常的阵列尺寸800 x 80 x 80 x 80仍然有效。

从请求编辑:使用可分配数组的代码

  9     integer :: x_size = 100
 10     integer :: y_size = 100
 11     integer :: z_size = 100
 12     integer :: t_size = 800
 13
 14     real, dimension(:,:,:,:), allocatable :: l1, l2
 15     allocate(l1(t_size, z_size, y_size, x_size), &
 16              l2(t_size, z_size, y_size, x_size))

从请求编辑:使用普通数组的代码

  9     integer :: x_size = 100
 10     integer :: y_size = 100
 11     integer :: z_size = 100
 12     integer :: t_size = 800
 13
 14     real, dimension(t_size, z_size, y_size, x_size) :: l1, l2

0 个答案:

没有答案
相关问题