可分配的派生类型数组中的意外值

时间:2013-11-06 15:30:17

标签: arrays fortran fortran90

我想将初始值分配给可分配的结构数组。 模块中的结构如下:

INTEGER, PARAMETER :: dp = 8
TYPE :: Message
  INTEGER :: l
  INTEGER :: species
  INTEGER :: molecule
  REAL(KIND=dp) :: vxx
  REAL(KIND=dp) :: vyy
  REAL(KIND=dp) :: vzz
END TYPE Message
TYPE(Message), ALLOCATABLE :: products(:)

在main函数中,我分配数组并将其初始化为:

  ALLOCATE (products(sizeofpro))
  DO i =1, sizeofpro
    products(i)%l = 1
    products(i)%species = 0
    products(i)%molecule = 0
    products(i)%vxx = 0.0_dp
    products(i)%vyy = 0.0_dp
    products(i)%vzz = 0.0_dp
  END DO

当我使用gdb通过键入p products(1)来调试它时,它会显示:

$1 = (0, 0, 0, 1.3888616748813736e-269, 4.9782021256040348e-311, 2.121995791459338e-314)

并且初始化不起作用。

我与MPI并行运行此代码,并使用mpif90编译代码。

为什么会发生这种情况?

0 个答案:

没有答案