4d126c16fa
The MPI spec defines that the "mpi" and "mpi_f08" module Fortran bindings support passing by parameters by name. Hence, we need to use the MPI-spec-defined parameter names ("dummy variables", in Fortran parlance) for the "mpi" and "mpi_f08" modules. Specifically, Fortran allows calls to procedures to be written with keyword arguments, e.g., "call mpi_sizeof(x=x,size=rsize,ierror=ier)" An "explicit interface" for the procedure must be in scope for this to be allowed in a Fortran program unit. Therefore, the explicit interface blocks we provide in the "mpi" and "mpi_f08" modules must match the MPI published standard, including the names of the dummy variables (i.e., parameter names), as that is how Fortran programs may call them. Note that we didn't find this issue previously because even though the MPI spec *allows* for name-based parameter passing, not many people actually use it. I suspect that we might have some more incorrect parameter names -- we should probably do a full "mpi" / "mpi_f08" module parameter name audit someday. Thanks to Themos Tsikas for reporting the issue and supplying the initial fix. Signed-off-by: themos.tsikas@nag.co.uk Signed-off-by: Jeff Squyres <jsquyres@cisco.com> Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp> |
||
---|---|---|
.. | ||
base | ||
mpiext | ||
mpif-h | ||
use-mpi-f08 | ||
use-mpi-ignore-tkr | ||
use-mpi-tkr | ||
c_to_integer_kind_mapping.pdf | ||
common_sym_whitelist.txt | ||
configure-fortran-output-bottom.h | ||
configure-fortran-output.h.in |