A first step towards full polymorphism in gfortran would be the parsing and resolution of CLASS statements, as defined in section 5.1 of the Fortran 2003 standard (R502).
Such and implementation must e.g. respect C502, C509 and C437 (to name a few). A trivial application is the use of CLASS declarations as a replacement for TYPE, where the dynamic type equals the declared type. -- Summary: [F03] CLASS statement Product: gcc Version: 4.5.0 Status: UNCONFIRMED Keywords: rejects-valid Severity: normal Priority: P3 Component: fortran AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: janus at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40940