我想将初始值分配给可分配的结构数组。模块中的结构是这样的:
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(:)
在主函数中,我分配数组并对其进行初始化,如下所示:
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 编译代码。
任何想法为什么会发生这种情况?