Incredibly slow allocation with jagged arrays

The array of derived type is itself an allocatable, so it can happen only at runtime:

   type(dyn), allocatable :: d(:)
   allocate(d(1000000))

It would be diffferent if it was a static array:

   type(dyn) :: d(1000000)