É possível implementar uma variável "abstrata" dentro de um tipo no Fortran 2003?
Eu gostaria de escrever um tipo abstrato
type, abstract :: Vehicle
real, dimension(:), allocatable:: Wheels
contains
procedure (Compute_Weight), deferred :: VehicleWeight
end type Vehicle
eu gostaria de ter um espaço reservado no tipo abstrato para um array de tal forma que ele pudesse ser substituído ou redefinido no tipo estendido com algo como
type, extends(Vehicle) :: Bike
allocate(Wheels(2))
contains
procedure :: VehicleWeight => BikeWeight
end type Bike
type, extends(Vehicle) :: Car
allocate(Wheels(4))
contains
procedure :: VehicleWeight => CarWeight
end type Car
GCC compilador reclama (justamente eu acho), e a única solução que eu poderia encontrar para este problema é apenas para não declarar a função alocável no tipo abstrato e declarar a variável diretamente com o tamanho correto dentro do tipo. No entanto, eu gostaria de ter uma espécie de espaço reservado para impor a implementação da propriedade fundamental descrita por Wheels (um protótipo). Eu