I want to extend a Fortran type that already extends a type. I know that when I have an extended type I can write
type o1
...
type, extends(o1) :: o2
...
type(Object1) :: o1
allocate(o2::o1)
How does this work when I have a third type that extends o2? Is this possible?
Yes. Restating the code and renaming for clarity: