SIGSEGV при использовании вложенных производных типов данных с размещаемыми компонентами - PullRequest
0 голосов
/ 18 сентября 2018

У меня есть два типа данных, производных от Фортрана, и один из них вложен как

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 и массив p совпадают.

Теперь операторы (после правильной инициализации, конечно)

z = sp%p%x

и один

z(1:20) = sp%p(1:20)%x

компилируется без ошибок по gfortran.Но хотя первый из них в порядке во время выполнения, второй выдает ошибку SIGSEGV.Кто-нибудь может указать, если я делаю что-то явно неправильно?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...