-
Notifications
You must be signed in to change notification settings - Fork 900
fortran bindings: use assumed rank syntax if supported #10266
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
If the fortran compiler being used to build the fortran bindings supports it, use assumed rank rather than assumed size argument types. This brings Open MPI into compliance with the MPI standard wrt the fortran bindings. Signed-off-by: Howard Pritchard <[email protected]>
@awlauria here you go! |
The IBM CI (XL) build failed! Please review the log, linked below. Gist: https://gist.github.com/e31c4f6939ff21b4bf15dd5ae5ff4834 |
The IBM CI (GNU/Scale) build failed! Please review the log, linked below. Gist: https://gist.github.com/4faae646df484b43dec73acfd88cd2b1 |
Okay some digging into passing assumed rank objects (which is what the MPI standard mandates for f08) to 'c' routines is non-trivial. See https://www.ibm.com/docs/en/xl-fortran-aix/15.1.2?topic=procedures-assumed-rank-objects-ts-29113. The 'c' function doesn't get a pointer to the actual argument being passed in in this case, but rather a pointer to a CFI_cdesc_t struct defined in the iso_fortran_binding.h header file that comes with the compiler suite being used. Here's the 'c' function that MPICH invokes from the f08 version of MPI_Send:
MPICH's f08 module file is correct according to the standard. The MPI_Send interface is defined as:
|
@ggouaillardet did some work in this direction a few years ago, but it received little interest from the OMPI community. Check #6569 for more details. |
this is a dup of #6569 so closing this PR. |
If the fortran compiler being used to build the fortran bindings
supports it, use assumed rank rather than assumed size argument types.
This brings Open MPI into compliance with the MPI standard wrt the fortran bindings.
Signed-off-by: Howard Pritchard [email protected]