在将嵌套的派生数据类型与可分配的组件一起使用时,SIGSEGV

时间:2018-09-18 14:51:20

标签: fortran derived-types

我有两种Fortran派生的数据类型,其中一种像嵌套一样

type particle
  real :: x
  real :: v
end type particle

type species
  real :: m
  real :: q
  type(particle), allocatable, dimension(:) :: p
end type species

type(species) :: sp

现在,假设我定义了另一个实数组z(1:20),并用species分配了派生数据类型allocate(sp%p(1:20)),以使z和数组{{1}的维数}匹配。

现在声明(当然,在正确初始化之后)

p

和那个

z = sp%p%x

通过z(1:20) = sp%p(1:20)%x 编译无错误。但是,尽管前一个在运行时可以正常运行,但第二个会产生gfortran错误。谁能指出我是否做错了明显的事情?

0 个答案:

没有答案