1
1

MPI_Win_{attach,detach} : add Fortran bindings

Этот коммит содержится в:
Gilles Gouaillardet 2015-06-02 17:44:53 +09:00
родитель f45244d5a5
Коммит 9600e2bc63
8 изменённых файлов: 112 добавлений и 0 удалений

Просмотреть файл

@ -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)