Fortran Wiki
Generic procedure with subroutines and functions

Proposal: allow a common generic procedure name to contain both subroutines and functions. There is no good rationale for requiring generic procedures to be exclusively subroutines or functions. Currently, that restriction applies to the entire program, even is generic names come from independent modules. Even within a single scope, the CALL statement prevents ambiguity between subroutine and function references.

Regardless of personal options that mixing subroutines and functions would be confusing, this is useful for interfacing C++ classes, where both procedure forms are allowed under the same generic name. (Joe thinks this is just another example of an unnecessary restriction aimed at “forcing” good programming practice.)