My recommendations are that one should use type , or carefully design deferred type bound procedures defined by the type that one will declare variables of class of such that any select type s will be unnecessary.
and I gave a simple example of this, which works at least with gfortran.