Open jeffhammond opened 1 year ago
I'll note that the abstract interface definition does not include bind(C)
.
ABSTRACT INTERFACE
SUBROUTINE MPI_User_function(invec, inoutvec, len, datatype)
USE, INTRINSIC :: ISO_C_BINDING, ONLY : C_PTR
TYPE(C_PTR), VALUE :: invec, inoutvec
INTEGER :: len
TYPE(MPI_Datatype) :: datatype
This is a question about the standard, not an issue per se, but depending on the answer here, we may have to fix something.
@VictorEijkhout asked on Slack about the addition of
bind(C)
tomy_user_function
in Example 6.21. In particular, Victor notes that "The Intel compiler refuses to compile/run correctly with that clause," so it is not academic.This change was made in https://github.com/mpi-forum/mpi-standard/commit/8f92e124831554cf3f0b5bb475f698128b3e346c by @tonyskjellum and @puribangalore but the commit message does not describe the reason why
my_user_function
was changed.@RolfRabenseifner do you know if the correctness of this code depends on
bind(C)
?