To: J3 J3/23-201 From: HPC & Tom Clune Subject: F202Y Global binding name for non C-interoperable Date: 2023-June-14 Introduction ============ A relatively common approach to provide run-time configurable behavior is through the use of dynamic libraries (DL). The interfaces for DLs provide a mechanism for an application to call a procedure from a dynamic library using the name of the library and the name of a desired procedure. The main difficulty in using with Fortran is that the DL interfaces require specifying the _global_ binding name in the DL, and these are non-portable due to Fortran compiler name mangling. Note: This is _not_ intended to provide a mechanism to call a procedure compiled with one compiler via a program compiled with a different compiler. Proposal ============ We propose to extend Fortran to improve portability when using a DL by allowing users to control the global binding name of a subprogram that are not necessarily C-interoperable. A possible syntax would be to exploit the similar capability to control global binding names via BIND(C,) by introducing BIND(Fortran,). Alternatively we could come up with a new attribute for a subprogram interface to specify the global name.