MPI_Win_{attach,detach} : add Fortran bindings
Этот коммит содержится в:
родитель
f45244d5a5
Коммит
9600e2bc63
@ -393,6 +393,7 @@ libmpi_mpifh_la_SOURCES += \
|
||||
fetch_and_op_f.c \
|
||||
win_allocate_f.c \
|
||||
win_allocate_shared_f.c \
|
||||
win_attach_f.c \
|
||||
win_call_errhandler_f.c \
|
||||
win_complete_f.c \
|
||||
win_create_dynamic_errhandler_f.c \
|
||||
@ -400,6 +401,7 @@ libmpi_mpifh_la_SOURCES += \
|
||||
win_create_f.c \
|
||||
win_create_keyval_f.c \
|
||||
win_delete_attr_f.c \
|
||||
win_detach_f.c \
|
||||
win_fence_f.c \
|
||||
win_free_f.c \
|
||||
win_free_keyval_f.c \
|
||||
|
@ -318,6 +318,7 @@ linked_files = \
|
||||
pfetch_and_op_f.c \
|
||||
pwin_allocate_f.c \
|
||||
pwin_allocate_shared_f.c \
|
||||
pwin_attach_f.c \
|
||||
pwin_call_errhandler_f.c \
|
||||
pwin_complete_f.c \
|
||||
pwin_create_dynamic_f.c \
|
||||
@ -325,6 +326,7 @@ linked_files = \
|
||||
pwin_create_f.c \
|
||||
pwin_create_keyval_f.c \
|
||||
pwin_delete_attr_f.c \
|
||||
pwin_detach_f.c \
|
||||
pwin_fence_f.c \
|
||||
pwin_free_f.c \
|
||||
pwin_free_keyval_f.c \
|
||||
|
@ -348,6 +348,7 @@
|
||||
#define ompi_win_allocate_cptr_f pompi_win_allocate_cptr_f
|
||||
#define ompi_win_allocate_shared_f pompi_win_allocate_shared_f
|
||||
#define ompi_win_allocate_shared_cptr_f pompi_win_allocate_shared_cptr_f
|
||||
#define ompi_win_attach_f pompi_win_attach_f
|
||||
#define ompi_win_call_errhandler_f pompi_win_call_errhandler_f
|
||||
#define ompi_win_complete_f pompi_win_complete_f
|
||||
#define ompi_win_create_f pompi_win_create_f
|
||||
@ -355,6 +356,7 @@
|
||||
#define ompi_win_create_errhandler_f pompi_win_create_errhandler_f
|
||||
#define ompi_win_create_keyval_f pompi_win_create_keyval_f
|
||||
#define ompi_win_delete_attr_f pompi_win_delete_attr_f
|
||||
#define ompi_win_detach_f pompi_win_detach_f
|
||||
#define ompi_win_fence_f pompi_win_fence_f
|
||||
#define ompi_win_flush_f pompi_win_flush_f
|
||||
#define ompi_win_flush_all_f pompi_win_flush_all_f
|
||||
|
@ -405,6 +405,7 @@ PN2(void, MPI_Win_allocate, mpi_win_allocate, MPI_WIN_ALLOCATE, (MPI_Aint *size,
|
||||
PN2(void, MPI_Win_allocate_cptr, mpi_win_allocate_cptr, MPI_WIN_ALLOCATE_CPTR, (MPI_Aint *size, MPI_Fint *disp_unit, MPI_Fint *info, MPI_Fint *comm, char *baseptr, MPI_Fint *win, MPI_Fint *ierr));
|
||||
PN2(void, MPI_Win_allocate_shared, mpi_win_allocate_shared, MPI_WIN_ALLOCATE_SHARED, (MPI_Aint *size, MPI_Fint *disp_unit, MPI_Fint *info, MPI_Fint *comm, char *baseptr, MPI_Fint *win, MPI_Fint *ierr));
|
||||
PN2(void, MPI_Win_allocate_shared_cptr, mpi_win_allocate_shared_cptr, MPI_WIN_ALLOCATE_SHARED_CPTR, (MPI_Aint *size, MPI_Fint *disp_unit, MPI_Fint *info, MPI_Fint *comm, char *baseptr, MPI_Fint *win, MPI_Fint *ierr));
|
||||
PN2(void, MPI_Win_attach, mpi_win_attach, MPI_WIN_ATTACH, (MPI_Fint *win, char *base, MPI_Aint *size, MPI_Fint *ierr));
|
||||
PN2(void, MPI_Win_call_errhandler, mpi_win_call_errhandler, MPI_WIN_CALL_ERRHANDLER, (MPI_Fint *win, MPI_Fint *errorcode, MPI_Fint *ierr));
|
||||
PN2(void, MPI_Win_complete, mpi_win_complete, MPI_WIN_COMPLETE, (MPI_Fint *win, MPI_Fint *ierr));
|
||||
PN2(void, MPI_Win_create, mpi_win_create, MPI_WIN_CREATE, (char *base, MPI_Aint *size, MPI_Fint *disp_unit, MPI_Fint *info, MPI_Fint *comm, MPI_Fint *win, MPI_Fint *ierr));
|
||||
@ -412,6 +413,7 @@ PN2(void, MPI_Win_create_dynamic, mpi_win_create_dynamic, MPI_WIN_CREATE_DYNAMIC
|
||||
PN2(void, MPI_Win_create_errhandler, mpi_win_create_errhandler, MPI_WIN_CREATE_ERRHANDLER, (ompi_errhandler_fortran_handler_fn_t* function, MPI_Fint *errhandler, MPI_Fint *ierr));
|
||||
PN2(void, MPI_Win_create_keyval, mpi_win_create_keyval, MPI_WIN_CREATE_KEYVAL, (ompi_mpi2_fortran_copy_attr_function* win_copy_attr_fn, ompi_mpi2_fortran_delete_attr_function* win_delete_attr_fn, MPI_Fint *win_keyval, MPI_Aint *extra_state, MPI_Fint *ierr));
|
||||
PN2(void, MPI_Win_delete_attr, mpi_win_delete_attr, MPI_WIN_DELETE_ATTR, (MPI_Fint *win, MPI_Fint *win_keyval, MPI_Fint *ierr));
|
||||
PN2(void, MPI_Win_detach, mpi_win_detach, MPI_WIN_DETACH, (MPI_Fint *win, char *base, MPI_Fint *ierr));
|
||||
PN2(void, MPI_Win_fence, mpi_win_fence, MPI_WIN_FENCE, (MPI_Fint *assert, MPI_Fint *win, MPI_Fint *ierr));
|
||||
PN2(void, MPI_Win_flush, mpi_win_flush, MPI_WIN_FLUSH, (MPI_Fint *rank, MPI_Fint *win, MPI_Fint *ierr));
|
||||
PN2(void, MPI_Win_flush_all, mpi_win_flush_all, MPI_WIN_FLUSH_ALL, (MPI_Fint *win, MPI_Fint *ierr));
|
||||
|
@ -337,6 +337,7 @@ mpi_api_files = \
|
||||
waitsome_f08.F90 \
|
||||
win_allocate_f08.F90 \
|
||||
win_allocate_shared_f08.F90 \
|
||||
win_attach_f08.F90 \
|
||||
win_call_errhandler_f08.F90 \
|
||||
win_complete_f08.F90 \
|
||||
win_create_dynamic_f08.F90 \
|
||||
@ -344,6 +345,7 @@ mpi_api_files = \
|
||||
win_create_f08.F90 \
|
||||
win_create_keyval_f08.F90 \
|
||||
win_delete_attr_f08.F90 \
|
||||
win_detach_f08.F90 \
|
||||
win_fence_f08.F90 \
|
||||
win_flush_f08.F90 \
|
||||
win_flush_all_f08.F90 \
|
||||
|
@ -2380,6 +2380,25 @@ subroutine ompi_win_create_dynamic_f(info,comm,win,ierror) &
|
||||
INTEGER, INTENT(OUT) :: ierror
|
||||
end subroutine ompi_win_create_dynamic_f
|
||||
|
||||
subroutine ompi_win_attach_f(win,base,size,ierror) &
|
||||
BIND(C, name="ompi_win_attach_f")
|
||||
use :: mpi_f08_types, only : MPI_ADDRESS_KIND
|
||||
implicit none
|
||||
OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: base
|
||||
INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: size
|
||||
INTEGER, INTENT(OUT) :: win
|
||||
INTEGER, INTENT(OUT) :: ierror
|
||||
end subroutine ompi_win_attach_f
|
||||
|
||||
subroutine ompi_win_detach_f(win,base,ierror) &
|
||||
BIND(C, name="ompi_win_detach_f")
|
||||
use :: mpi_f08_types, only : MPI_ADDRESS_KIND
|
||||
implicit none
|
||||
OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: base
|
||||
INTEGER, INTENT(OUT) :: win
|
||||
INTEGER, INTENT(OUT) :: ierror
|
||||
end subroutine ompi_win_detach_f
|
||||
|
||||
subroutine ompi_win_flush_f(rank,win,ierror) &
|
||||
BIND(C, name="ompi_win_flush_f")
|
||||
implicit none
|
||||
|
@ -3216,6 +3216,37 @@ subroutine MPI_Win_create_dynamic_f08(info,comm,win,ierror)
|
||||
end subroutine MPI_Win_create_dynamic_f08
|
||||
end interface MPI_Win_create_dynamic
|
||||
|
||||
interface MPI_Win_attach
|
||||
subroutine MPI_Win_attach_f08(win,base,size,ierror)
|
||||
use :: mpi_f08_types, only : MPI_Win, MPI_ADDRESS_KIND
|
||||
implicit none
|
||||
!DEC$ ATTRIBUTES NO_ARG_CHECK :: base
|
||||
!GCC$ ATTRIBUTES NO_ARG_CHECK :: base
|
||||
!$PRAGMA IGNORE_TKR base
|
||||
!DIR$ IGNORE_TKR base
|
||||
!IBM* IGNORE_TKR base
|
||||
OMPI_FORTRAN_IGNORE_TKR_TYPE :: base
|
||||
INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: size
|
||||
TYPE(MPI_Win), INTENT(OUT) :: win
|
||||
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
|
||||
end subroutine MPI_Win_attach_f08
|
||||
end interface MPI_Win_attach
|
||||
|
||||
interface MPI_Win_detach
|
||||
subroutine MPI_Win_detach_f08(win,base,ierror)
|
||||
use :: mpi_f08_types, only : MPI_Win, MPI_ADDRESS_KIND
|
||||
implicit none
|
||||
!DEC$ ATTRIBUTES NO_ARG_CHECK :: base
|
||||
!GCC$ ATTRIBUTES NO_ARG_CHECK :: base
|
||||
!$PRAGMA IGNORE_TKR base
|
||||
!DIR$ IGNORE_TKR base
|
||||
!IBM* IGNORE_TKR base
|
||||
OMPI_FORTRAN_IGNORE_TKR_TYPE :: base
|
||||
TYPE(MPI_Win), INTENT(OUT) :: win
|
||||
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
|
||||
end subroutine MPI_Win_detach_f08
|
||||
end interface MPI_Win_detach
|
||||
|
||||
interface MPI_Win_fence
|
||||
subroutine MPI_Win_fence_f08(assert,win,ierror)
|
||||
use :: mpi_f08_types, only : MPI_Win
|
||||
|
@ -7418,6 +7418,58 @@ end subroutine PMPI_Win_create_dynamic
|
||||
end interface
|
||||
|
||||
|
||||
interface MPI_Win_attach
|
||||
|
||||
subroutine MPI_Win_attach(win, base, size, ierror)
|
||||
include 'mpif-config.h'
|
||||
@OMPI_FORTRAN_IGNORE_TKR_PREDECL@ base
|
||||
@OMPI_FORTRAN_IGNORE_TKR_TYPE@, intent(in) :: base
|
||||
integer(kind=MPI_ADDRESS_KIND), intent(in) :: size
|
||||
integer, intent(out) :: win
|
||||
integer, intent(out) :: ierror
|
||||
end subroutine MPI_Win_attach
|
||||
|
||||
end interface
|
||||
|
||||
interface PMPI_Win_attach
|
||||
|
||||
subroutine PMPI_Win_attach(win, base, size, ierror)
|
||||
include 'mpif-config.h'
|
||||
@OMPI_FORTRAN_IGNORE_TKR_PREDECL@ base
|
||||
@OMPI_FORTRAN_IGNORE_TKR_TYPE@, intent(in) :: base
|
||||
integer(kind=MPI_ADDRESS_KIND), intent(in) :: size
|
||||
integer, intent(out) :: win
|
||||
integer, intent(out) :: ierror
|
||||
end subroutine PMPI_Win_attach
|
||||
|
||||
end interface
|
||||
|
||||
|
||||
interface MPI_Win_detach
|
||||
|
||||
subroutine MPI_Win_detach(win, base, ierror)
|
||||
include 'mpif-config.h'
|
||||
@OMPI_FORTRAN_IGNORE_TKR_PREDECL@ base
|
||||
@OMPI_FORTRAN_IGNORE_TKR_TYPE@, intent(in) :: base
|
||||
integer, intent(out) :: win
|
||||
integer, intent(out) :: ierror
|
||||
end subroutine MPI_Win_detach
|
||||
|
||||
end interface
|
||||
|
||||
interface PMPI_Win_detach
|
||||
|
||||
subroutine PMPI_Win_detach(win, base, ierror)
|
||||
include 'mpif-config.h'
|
||||
@OMPI_FORTRAN_IGNORE_TKR_PREDECL@ base
|
||||
@OMPI_FORTRAN_IGNORE_TKR_TYPE@, intent(in) :: base
|
||||
integer, intent(out) :: win
|
||||
integer, intent(out) :: ierror
|
||||
end subroutine PMPI_Win_detach
|
||||
|
||||
end interface
|
||||
|
||||
|
||||
interface MPI_Win_create_errhandler
|
||||
|
||||
subroutine MPI_Win_create_errhandler(function, errhandler, ierror)
|
||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user