I guess this is at the heart of what I was trying to get at. Again, this was known at the time the F2003 OOP facility was being developed but it was ignored. I just want to know why it was ignored and who was responsible for making the design decisions we are forced to live with today. Name names. The introduction of modules and derived types in F90 and expanded in F95 made Fortran a perfectly acceptable object-based (if not object oriented) language that supported aggregation and composition (aka has-a inheritance). Why didn’t they just build on that focusing more on generics and interfaces than trying to become some warmed over version of C++ (or SIMULA-67).
Sadly, the only way to fix this is to rip out the current OOP facility by the roots and start over but thats not going to happen under the current ISO standard development process. Sometimes you have to tear things down to the foundation in order to save whats worth saving.