Можно ли реализовать «абстрактную» переменную внутри типа в Fortran 2003?

Я хотел бы написать абстрактный тип

type, abstract :: Vehicle
    real, dimension(:), allocatable:: Wheels 
    contains
     procedure (Compute_Weight), deferred :: VehicleWeight
end type Vehicle

это яЯ хотел бы иметь заполнитель в абстрактном типе для массива таким образом, чтобы он мог быть переопределен или переопределен в расширенном типе с чем-то вроде

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 жалуется (справедливо, я думаю), и единственное решение, которое я мог найти для этой проблемы, это просто не объявлять размещаемую функцию в абстрактном типе и объявлять переменную непосредственно с правильным размером внутри типа. Тем не менее, я хотел бы иметь своего рода заполнитель для реализации реализации фундаментального свойства, описанного в Wheels (прототип). я

Ответы на вопрос(1)

Ваш ответ на вопрос