"Jeff Squyres (jsquyres)" <jsquy...@cisco.com> writes: > The following from the v1.10 README file may shed some light on your question: > > https://github.com/open-mpi/ompi-release/blob/v1.10/README#L370-L405
Thanks; I should have remembered this. However, it's not generally true, as that says, that a non-GNU Fortran compiler will provide interfaces for the "choice" buffers corresponding to C void*. ["Prototype" isn't a Fortran term as far as I know.] The NAG compiler apparently wouldn't (if the build didn't fail, per previous mail). As I couldn't see this spelt out anywhere, for info the relevant GCC release note is: * The new NO_ARG_CHECK attribute of the !GCC$ directive can be used to disable the type-kind-rank (TKR) argument check for a dummy argument. The feature is similar to ISO/IEC TS 29133:2012's TYPE(*), except that it additionally also disables the rank check. Variables with NO_ARG_CHECK have to be dummy arguments and may only be used as argument to ISO_C_BINDING's C_LOC and as actual argument to another NO_ARG_CHECK dummy argument; also the other constraints of TYPE(*) apply. The dummy arguments should be declared as scalar or assumed-size variable of type type(*) (recommended) - or of type integer, real, complex or logical. With NO_ARG_CHECK, a pointer to the data without further type or shape information is passed, similar to C's void*.