Or, try to emulate traits, as I desired to do recently, which has its downsides: Traits/interfaces in Fortran?