Closed
Description
Thank you for taking the time to submit an issue!
Background information
What version of Open MPI are you using? (e.g., v3.0.5, v4.0.2, git branch name and hash, etc.)
openmpi-4.1.0-5.fc34.x86_64
Describe how Open MPI was installed (e.g., from a source/distribution tarball, from a git clone, from an operating system distribution package, etc.)
Fedora 34 package
If you are building/installing from a git clone, please copy-n-paste the output from git submodule status
.
Please describe the system on which you are running
- Operating system/version:
- Computer hardware:
- Network type:
Linux laptop
Details of the problem
When using the MPI module mpi_f08 I am getting the following error.
psi_dswapdata.F90:248:16:
248 | if (any(y%comid .ne. mpi_request_null)) then
| 1
Error: Operands of comparison operator ‘.ne.’ at (1) are TYPE(mpi_request)/TYPE(mpi_request)
The y%comid
variable is an array.
In mpi-types.F90 (am not sure how the various includes work with the f08 version) I see
logical function ompi_request_op_ne(a, b)
type(MPI_Request), intent(in) :: a, b
ompi_request_op_ne = (a%MPI_VAL .NE. b%MPI_VAL)
end function ompi_request_op_ne
Now, the error message above shold be fixed by declaring the function to be ELEMENTAL so that the array comparison is treated properly (and similarly for all the other defined equality/inequality operators)
elemental function ompi_request_op_ne(a, b) result(res)
logical :: res
type(MPI_Request), intent(in) :: a, b
res = (a%MPI_VAL .NE. b%MPI_VAL)
end function ompi_request_op_ne