How to avoid multiple type definitions due to different kinds?

As I have explained previously in an earlier thread with several practical examples, parameterized derived types (PDTs) are rather useful and there is indeed value in both the length type and kind type parameters.

  • From what I have heard, NAG Fortran has few issues, if any, with PDTs and they got PDTs right by the time they came around to offering it to their paying customers.
  • Intel Fortran (IFORT) has had its share of issues with PDTs over the years but thankfully Intel has devoted time and energy to get a lot right with PDTs in their latest version notwithstanding some pending bug reports.

With gfortran, should a community of new volunteers spring up and work together and consult with other experienced developers (see here under Contributing) such as Paul Thomas (@rouson might be able to help establish contact), considerable progress can be made.

I reckon the issues with PDTs are hardly unique when it comes to compiler bugs. Almost every compiler has struggled with getting hefty features implemented robustly starting with those introduced in the Fortran 2003 standard and the two subsequent revisions: intrinsic assignment with derived types and also allocation-upon-assignment, type inheritance, finalization, submodules, coarrays, enhanced interoperability with C, etc. to name only a few which have considerable problems with several compilers even now, enough for a distractor to construe the issues are troubling enough to lead astray an unwitting practitioner venturing into modern Fortran. I would rather the practitioners persevere with their computing pursuits with modern Fortran and egg and demand and work toward the implementations to get better along the way.