"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*.

Reply via email to