forked from open-mpi/ompi-release
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
mpi_f08: correctly implements MPI_{COMM,TYPE,WIN}_{DUP,NULL_{COPY,DEL…
…ETE}}_FN Fixes open-mpi/ompi#1323 (cherry picked from commit cda094a)
- Loading branch information
1 parent
90207da
commit a1bce6c
Showing
5 changed files
with
149 additions
and
201 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
152 changes: 0 additions & 152 deletions
152
ompi/mpi/fortran/use-mpi-f08/attr-fn-f08-callback-interfaces.h
This file was deleted.
Oops, something went wrong.
35 changes: 0 additions & 35 deletions
35
ompi/mpi/fortran/use-mpi-f08/conversion-fn-null-f08-interface.h
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,142 @@ | ||
! -*- f90 -*- | ||
! Copyright (c) 2016 Research Organization for Information Science | ||
! and Technology (RIST). All rights reserved. | ||
! $COPYRIGHT$ | ||
|
||
#include "ompi/mpi/fortran/configure-fortran-output.h" | ||
|
||
module mpi_f08_callbacks | ||
|
||
! MPI3.1, p270, 5-19 | ||
|
||
contains | ||
|
||
subroutine MPI_COMM_DUP_FN(oldcomm,comm_keyval,extra_state, & | ||
attribute_val_in,attribute_val_out,flag,ierror) | ||
use mpi_f08_types | ||
implicit none | ||
type(MPI_Comm) :: oldcomm | ||
integer :: comm_keyval, ierror | ||
integer(kind=MPI_ADDRESS_KIND) :: extra_state, attribute_val_in, attribute_val_out | ||
logical :: flag | ||
|
||
flag = .true. | ||
attribute_val_out = attribute_val_in | ||
ierror = MPI_SUCCESS | ||
end subroutine | ||
|
||
subroutine MPI_COMM_NULL_COPY_FN(oldcomm,comm_keyval,extra_state, & | ||
attribute_val_in,attribute_val_out,flag,ierror) | ||
use mpi_f08_types | ||
implicit none | ||
type(MPI_Comm) :: oldcomm | ||
integer :: comm_keyval, ierror | ||
integer(kind=MPI_ADDRESS_KIND) :: extra_state, attribute_val_in, attribute_val_out | ||
logical :: flag | ||
|
||
flag = .false. | ||
ierror = MPI_SUCCESS | ||
end subroutine | ||
|
||
subroutine MPI_COMM_NULL_DELETE_FN(comm,comm_keyval, & | ||
attribute_val, extra_state, ierror) | ||
use mpi_f08_types | ||
implicit none | ||
type(MPI_Comm) :: comm | ||
integer :: comm_keyval, ierror | ||
integer(kind=MPI_ADDRESS_KIND) :: attribute_val, extra_state | ||
|
||
ierror = MPI_SUCCESS | ||
end subroutine | ||
|
||
subroutine MPI_TYPE_DUP_FN(oldtype,type_keyval,extra_state, & | ||
attribute_val_in,attribute_val_out,flag,ierror) | ||
use mpi_f08_types | ||
implicit none | ||
type(MPI_Datatype) :: oldtype | ||
integer :: type_keyval, ierror | ||
integer(kind=MPI_ADDRESS_KIND) :: extra_state, attribute_val_in, attribute_val_out | ||
logical :: flag | ||
|
||
flag = .true. | ||
attribute_val_out = attribute_val_in | ||
ierror = MPI_SUCCESS | ||
end subroutine | ||
|
||
subroutine MPI_TYPE_NULL_COPY_FN(oldtype,type_keyval,extra_state, & | ||
attribute_val_in,attribute_val_out,flag,ierror) | ||
use mpi_f08_types | ||
implicit none | ||
type(MPI_Datatype) :: oldtype | ||
integer :: type_keyval, ierror | ||
integer(kind=MPI_ADDRESS_KIND) :: extra_state, attribute_val_in, attribute_val_out | ||
logical :: flag | ||
|
||
flag = .false. | ||
ierror = MPI_SUCCESS | ||
end subroutine | ||
|
||
subroutine MPI_TYPE_NULL_DELETE_FN(datatype,type_keyval, & | ||
attribute_val, extra_state, ierror) | ||
use mpi_f08_types | ||
implicit none | ||
type(MPI_Datatype) :: datatype | ||
integer :: type_keyval, ierror | ||
integer(kind=MPI_ADDRESS_KIND) :: attribute_val, extra_state | ||
|
||
ierror = MPI_SUCCESS | ||
end subroutine | ||
|
||
subroutine MPI_WIN_DUP_FN(oldwin,win_keyval,extra_state, & | ||
attribute_val_in,attribute_val_out,flag,ierror) | ||
use mpi_f08_types | ||
implicit none | ||
type(MPI_Win) :: oldwin | ||
integer :: win_keyval, ierror | ||
integer(kind=MPI_ADDRESS_KIND) :: extra_state, attribute_val_in, attribute_val_out | ||
logical :: flag | ||
|
||
flag = .true. | ||
attribute_val_out = attribute_val_in | ||
ierror = MPI_SUCCESS | ||
end subroutine | ||
|
||
subroutine MPI_WIN_NULL_COPY_FN(oldwin,win_keyval,extra_state, & | ||
attribute_val_in,attribute_val_out,flag,ierror) | ||
use mpi_f08_types | ||
implicit none | ||
type(MPI_Win) :: oldwin | ||
integer :: win_keyval, ierror | ||
integer(kind=MPI_ADDRESS_KIND) :: extra_state, attribute_val_in, attribute_val_out | ||
logical :: flag | ||
|
||
flag = .false. | ||
ierror = MPI_SUCCESS | ||
end subroutine | ||
|
||
subroutine MPI_WIN_NULL_DELETE_FN(win,win_keyval, & | ||
attribute_val, extra_state, ierror) | ||
use mpi_f08_types | ||
implicit none | ||
type(MPI_Win) :: win | ||
integer :: win_keyval, ierror | ||
integer(kind=MPI_ADDRESS_KIND) :: attribute_val, extra_state | ||
|
||
ierror = MPI_SUCCESS | ||
end subroutine | ||
|
||
subroutine MPI_CONVERSION_FN_NULL(userbuf, datatype, count, & | ||
filebuf, position, extra_state, ierror) | ||
use, intrinsic :: iso_c_binding, only : c_ptr | ||
use mpi_f08_types | ||
implicit none | ||
type(c_ptr), value :: userbuf, filebuf | ||
type(MPI_Datatype) :: datatype | ||
integer :: count, ierror | ||
integer(kind=MPI_OFFSET_KIND) :: position | ||
integer(kind=MPI_ADDRESS_KIND) :: extra_state | ||
|
||
! Do nothing | ||
end subroutine | ||
|
||
end module mpi_f08_callbacks |
Oops, something went wrong.