diff --git a/ompi/mpi/fortran/base/attr-fn-int-callback-interfaces.h b/ompi/mpi/fortran/base/attr-fn-int-callback-interfaces.h index 3c3b16cf39..27c64cc625 100644 --- a/ompi/mpi/fortran/base/attr-fn-int-callback-interfaces.h +++ b/ompi/mpi/fortran/base/attr-fn-int-callback-interfaces.h @@ -21,6 +21,15 @@ interface !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + subroutine MPI_DUP_FN( comm, comm_keyval, extra_state, & + attribute_val_in, attribute_val_out, & + flag, ierr ) + implicit none + integer :: comm, comm_keyval, extra_state + integer :: attribute_val_in, attribute_val_out, ierr + logical :: flag + end subroutine MPI_DUP_FN + subroutine MPI_NULL_COPY_FN( comm, comm_keyval, extra_state, & attribute_val_in, attribute_val_out, & flag, ierr ) @@ -40,6 +49,17 @@ interface !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + subroutine MPI_COMM_DUP_FN(oldcomm, comm_keyval, extra_state, attribute_val_in, & + attribute_val_out, flag, ierr ) + implicit none + include 'mpif-config.h' + integer :: oldcomm + integer :: comm_keyval + integer(kind=MPI_ADDRESS_KIND) :: extra_state, attribute_val_in, attribute_val_out + logical :: flag + integer :: ierr + end subroutine MPI_COMM_DUP_FN + subroutine MPI_COMM_NULL_COPY_FN( comm, comm_keyval, extra_state, & attribute_val_in, attribute_val_out, & flag, ierr ) @@ -62,17 +82,6 @@ interface integer :: ierr end subroutine MPI_COMM_NULL_DELETE_FN - subroutine MPI_COMM_DUP_FN(oldcomm, comm_keyval, extra_state, attribute_val_in, & - attribute_val_out, flag, ierr ) - implicit none - include 'mpif-config.h' - integer :: oldcomm - integer :: comm_keyval - integer(kind=MPI_ADDRESS_KIND) :: extra_state, attribute_val_in, attribute_val_out - logical :: flag - integer :: ierr - end subroutine MPI_COMM_DUP_FN - !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! subroutine MPI_TYPE_DUP_FN( oldtype, type_keyval, extra_state, & diff --git a/ompi/mpi/fortran/mpif-h/alloc_mem_f.c b/ompi/mpi/fortran/mpif-h/alloc_mem_f.c index c3fc140bc2..bf15b9f0c5 100644 --- a/ompi/mpi/fortran/mpif-h/alloc_mem_f.c +++ b/ompi/mpi/fortran/mpif-h/alloc_mem_f.c @@ -29,14 +29,16 @@ #pragma weak pmpi_alloc_mem_ = ompi_alloc_mem_f #pragma weak pmpi_alloc_mem__ = ompi_alloc_mem_f -/* Extra pragmas for the _cptr variant from MPI-3.1 */ +#pragma weak PMPI_Alloc_mem_f = ompi_alloc_mem_f +#pragma weak PMPI_Alloc_mem_f08 = ompi_alloc_mem_f + #pragma weak PMPI_ALLOC_MEM_CPTR = ompi_alloc_mem_f #pragma weak pmpi_alloc_mem_cptr = ompi_alloc_mem_f #pragma weak pmpi_alloc_mem_cptr_ = ompi_alloc_mem_f #pragma weak pmpi_alloc_mem_cptr__ = ompi_alloc_mem_f -#pragma weak PMPI_Alloc_mem_f = ompi_alloc_mem_f -#pragma weak PMPI_Alloc_mem_f08 = ompi_alloc_mem_f +#pragma weak PMPI_Alloc_mem_cptr_f = ompi_alloc_mem_f +#pragma weak PMPI_Alloc_mem_cptr_f08 = ompi_alloc_mem_f #elif OMPI_PROFILE_LAYER OMPI_GENERATE_F77_BINDINGS (PMPI_ALLOC_MEM, pmpi_alloc_mem, @@ -50,7 +52,7 @@ OMPI_GENERATE_F77_BINDINGS (PMPI_ALLOC_MEM_CPTR, pmpi_alloc_mem_cptr, pmpi_alloc_mem_cptr_, pmpi_alloc_mem_cptr__, - pompi_alloc_mem_f, + pompi_alloc_mem_cptr_f, (MPI_Aint *size, MPI_Fint *info, char *baseptr, MPI_Fint *ierr), (size, info, baseptr, ierr) ) #endif @@ -61,14 +63,16 @@ OMPI_GENERATE_F77_BINDINGS (PMPI_ALLOC_MEM_CPTR, #pragma weak mpi_alloc_mem_ = ompi_alloc_mem_f #pragma weak mpi_alloc_mem__ = ompi_alloc_mem_f -/* Extra pragmas for the _cptr variant from MPI-3.1 */ +#pragma weak MPI_Alloc_mem_f = ompi_alloc_mem_f +#pragma weak MPI_Alloc_mem_f08 = ompi_alloc_mem_f + #pragma weak MPI_ALLOC_MEM_CPTR = ompi_alloc_mem_f #pragma weak mpi_alloc_mem_cptr = ompi_alloc_mem_f #pragma weak mpi_alloc_mem_cptr_ = ompi_alloc_mem_f #pragma weak mpi_alloc_mem_cptr__ = ompi_alloc_mem_f -#pragma weak MPI_Alloc_mem_f = ompi_alloc_mem_f -#pragma weak MPI_Alloc_mem_f08 = ompi_alloc_mem_f +#pragma weak MPI_Alloc_mem_cptr_f = ompi_alloc_mem_f +#pragma weak MPI_Alloc_mem_cptr_f08 = ompi_alloc_mem_f #endif #if ! OPAL_HAVE_WEAK_SYMBOLS && ! OMPI_PROFILE_LAYER @@ -84,7 +88,7 @@ OMPI_GENERATE_F77_BINDINGS (MPI_ALLOC_MEM_CPTR, mpi_alloc_mem_cptr, mpi_alloc_mem_cptr_, mpi_alloc_mem_cptr__, - ompi_alloc_mem_f, + ompi_alloc_mem_cptr_f, (MPI_Aint *size, MPI_Fint *info, char *baseptr, MPI_Fint *ierr), (size, info, baseptr, ierr) ) #endif @@ -102,3 +106,12 @@ void ompi_alloc_mem_f(MPI_Aint *size, MPI_Fint *info, char *baseptr, MPI_Fint *i ierr_c = MPI_Alloc_mem(*size, c_info, baseptr); if (NULL != ierr) *ierr = OMPI_INT_2_FINT(ierr_c); } + +/* + * Note that MPI-3 mandates a second form of the + * MPI_Alloc_mem interface -- one that has a "_cptr" suffix. + */ +void ompi_alloc_mem_cptr_f(MPI_Aint *size, MPI_Fint *info, char *baseptr, MPI_Fint *ierr) +{ + ompi_alloc_mem_f(size, info, baseptr, ierr); +} diff --git a/ompi/mpi/fortran/mpif-h/win_attach_f.c b/ompi/mpi/fortran/mpif-h/win_attach_f.c index 8c9f1efe96..be33ad24f2 100644 --- a/ompi/mpi/fortran/mpif-h/win_attach_f.c +++ b/ompi/mpi/fortran/mpif-h/win_attach_f.c @@ -18,8 +18,8 @@ #pragma weak pmpi_win_attach_ = ompi_win_attach_f #pragma weak pmpi_win_attach__ = ompi_win_attach_f -#pragma weak PMPI_Win_create_f = ompi_win_attach_f -#pragma weak PMPI_Win_create_f08 = ompi_win_attach_f +#pragma weak PMPI_Win_attach_f = ompi_win_attach_f +#pragma weak PMPI_Win_attach_f08 = ompi_win_attach_f #elif OMPI_PROFILE_LAYER OMPI_GENERATE_F77_BINDINGS (PMPI_WIN_ATTACH, pmpi_win_attach, @@ -36,8 +36,8 @@ OMPI_GENERATE_F77_BINDINGS (PMPI_WIN_ATTACH, #pragma weak mpi_win_attach_ = ompi_win_attach_f #pragma weak mpi_win_attach__ = ompi_win_attach_f -#pragma weak MPI_Win_create_f = ompi_win_attach_f -#pragma weak MPI_Win_create_f08 = ompi_win_attach_f +#pragma weak MPI_Win_attach_f = ompi_win_attach_f +#pragma weak MPI_Win_attach_f08 = ompi_win_attach_f #endif #if ! OPAL_HAVE_WEAK_SYMBOLS && ! OMPI_PROFILE_LAYER diff --git a/ompi/mpi/fortran/mpif-h/win_detach_f.c b/ompi/mpi/fortran/mpif-h/win_detach_f.c index 76a4e3d66d..6017c8e5ce 100644 --- a/ompi/mpi/fortran/mpif-h/win_detach_f.c +++ b/ompi/mpi/fortran/mpif-h/win_detach_f.c @@ -18,8 +18,8 @@ #pragma weak pmpi_win_detach_ = ompi_win_detach_f #pragma weak pmpi_win_detach__ = ompi_win_detach_f -#pragma weak PMPI_Win_create_f = ompi_win_detach_f -#pragma weak PMPI_Win_create_f08 = ompi_win_detach_f +#pragma weak PMPI_Win_detach_f = ompi_win_detach_f +#pragma weak PMPI_Win_detach_f08 = ompi_win_detach_f #elif OMPI_PROFILE_LAYER OMPI_GENERATE_F77_BINDINGS (PMPI_WIN_DETACH, pmpi_win_detach, @@ -36,8 +36,8 @@ OMPI_GENERATE_F77_BINDINGS (PMPI_WIN_DETACH, #pragma weak mpi_win_detach_ = ompi_win_detach_f #pragma weak mpi_win_detach__ = ompi_win_detach_f -#pragma weak MPI_Win_create_f = ompi_win_detach_f -#pragma weak MPI_Win_create_f08 = ompi_win_detach_f +#pragma weak MPI_Win_detach_f = ompi_win_detach_f +#pragma weak MPI_Win_detach_f08 = ompi_win_detach_f #endif #if ! OPAL_HAVE_WEAK_SYMBOLS && ! OMPI_PROFILE_LAYER diff --git a/ompi/mpi/fortran/use-mpi-ignore-tkr/mpi-ignore-tkr-interfaces.h.in b/ompi/mpi/fortran/use-mpi-ignore-tkr/mpi-ignore-tkr-interfaces.h.in index f57ca0b568..e4250bd6bd 100644 --- a/ompi/mpi/fortran/use-mpi-ignore-tkr/mpi-ignore-tkr-interfaces.h.in +++ b/ompi/mpi/fortran/use-mpi-ignore-tkr/mpi-ignore-tkr-interfaces.h.in @@ -163,6 +163,7 @@ end subroutine PMPI_Address end interface + interface MPI_Aint_add function MPI_Aint_add(base, diff) @@ -185,6 +186,7 @@ end function PMPI_Aint_add end interface + interface MPI_Aint_diff function MPI_Aint_diff(addr1, addr2) @@ -207,6 +209,7 @@ end function PMPI_Aint_diff end interface + interface MPI_Allgather subroutine MPI_Allgather(sendbuf, sendcount, sendtype, recvbuf, recvcount, & @@ -1074,18 +1077,6 @@ end subroutine MPI_Comm_create end interface -interface MPI_Comm_create_group - -subroutine MPI_Comm_create_group(comm, group, tag, newcomm, ierror) - integer, intent(in) :: comm - integer, intent(in) :: group - integer, intent(in) :: tag - integer, intent(out) :: newcomm - integer, intent(out) :: ierror -end subroutine MPI_Comm_create_group - -end interface - interface PMPI_Comm_create subroutine PMPI_Comm_create(comm, group, newcomm, ierror) @@ -1119,6 +1110,31 @@ end subroutine PMPI_Comm_create_errhandler end interface +interface MPI_Comm_create_group + +subroutine MPI_Comm_create_group(comm, group, tag, newcomm, ierror) + integer, intent(in) :: comm + integer, intent(in) :: group + integer, intent(in) :: tag + integer, intent(out) :: newcomm + integer, intent(out) :: ierror +end subroutine MPI_Comm_create_group + +end interface + +interface PMPI_Comm_create_group + +subroutine PMPI_Comm_create_group(comm, group, tag, newcomm, ierror) + integer, intent(in) :: comm + integer, intent(in) :: group + integer, intent(in) :: tag + integer, intent(out) :: newcomm + integer, intent(out) :: ierror +end subroutine PMPI_Comm_create_group + +end interface + + interface MPI_Comm_create_keyval subroutine MPI_Comm_create_keyval(comm_copy_attr_fn, comm_delete_attr_fn, comm_keyval, extra_state, ierror) @@ -1196,35 +1212,36 @@ end subroutine MPI_Comm_dup end interface -interface MPI_Comm_dup_with_info +interface PMPI_Comm_dup -subroutine MPI_Comm_dup_with_info(comm, info, newcomm, ierror) +subroutine PMPI_Comm_dup(comm, newcomm, ierror) integer, intent(in) :: comm - integer, intent(in) :: info integer, intent(out) :: newcomm integer, intent(out) :: ierror -end subroutine MPI_Comm_dup_with_info +end subroutine PMPI_Comm_dup end interface -interface MPI_Comm_idup -subroutine MPI_Comm_idup(comm, newcomm, request, ierror) +interface MPI_Comm_dup_with_info + +subroutine MPI_Comm_dup_with_info(comm, info, newcomm, ierror) integer, intent(in) :: comm + integer, intent(in) :: info integer, intent(out) :: newcomm - integer, intent(out) :: request integer, intent(out) :: ierror -end subroutine MPI_Comm_idup +end subroutine MPI_Comm_dup_with_info end interface -interface PMPI_Comm_dup +interface PMPI_Comm_dup_with_info -subroutine PMPI_Comm_dup(comm, newcomm, ierror) +subroutine PMPI_Comm_dup_with_info(comm, info, newcomm, ierror) integer, intent(in) :: comm + integer, intent(in) :: info integer, intent(out) :: newcomm integer, intent(out) :: ierror -end subroutine PMPI_Comm_dup +end subroutine PMPI_Comm_dup_with_info end interface @@ -1315,6 +1332,27 @@ end subroutine PMPI_Comm_get_errhandler end interface +interface MPI_Comm_get_info + +subroutine MPI_Comm_get_info(comm, info_used, ierror) + integer, intent(in) :: comm + integer, intent(out) :: info_used + integer, intent(out) :: ierror +end subroutine MPI_Comm_get_info + +end interface + +interface PMPI_Comm_get_info + +subroutine PMPI_Comm_get_info(comm, info_used, ierror) + integer, intent(in) :: comm + integer, intent(out) :: info_used + integer, intent(out) :: ierror +end subroutine PMPI_Comm_get_info + +end interface + + interface MPI_Comm_get_name subroutine MPI_Comm_get_name(comm, comm_name, resultlen, ierror) @@ -1378,6 +1416,29 @@ end subroutine PMPI_Comm_group end interface +interface MPI_Comm_idup + +subroutine MPI_Comm_idup(comm, newcomm, request, ierror) + integer, intent(in) :: comm + integer, intent(out) :: newcomm + integer, intent(out) :: request + integer, intent(out) :: ierror +end subroutine MPI_Comm_idup + +end interface + +interface PMPI_Comm_idup + +subroutine PMPI_Comm_idup(comm, newcomm, request, ierror) + integer, intent(in) :: comm + integer, intent(out) :: newcomm + integer, intent(out) :: request + integer, intent(out) :: ierror +end subroutine PMPI_Comm_idup + +end interface + + interface MPI_Comm_join subroutine MPI_Comm_join(fd, intercomm, ierror) @@ -1731,6 +1792,7 @@ end subroutine PMPI_Compare_and_swap end interface + interface MPI_Dims_create subroutine MPI_Dims_create(nnodes, ndims, dims, ierror) @@ -2034,6 +2096,26 @@ end subroutine PMPI_Exscan end interface + +interface MPI_F_sync_reg + +subroutine MPI_F_sync_reg(buf) + @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ buf + @OMPI_FORTRAN_IGNORE_TKR_TYPE@, intent(inout) :: buf +end subroutine MPI_F_sync_reg + +end interface + +interface PMPI_F_sync_reg + +subroutine PMPI_F_sync_reg(buf) + @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ buf + @OMPI_FORTRAN_IGNORE_TKR_TYPE@, intent(inout) :: buf +end subroutine PMPI_F_sync_reg + +end interface + + interface MPI_Fetch_and_op subroutine MPI_Fetch_and_op(origin_addr, result_addr, datatype, target_rank,& @@ -2072,6 +2154,7 @@ end subroutine PMPI_Fetch_and_op end interface + interface MPI_Finalize subroutine MPI_Finalize(ierror) @@ -2247,6 +2330,7 @@ end subroutine PMPI_Get end interface + interface MPI_Get_accumulate subroutine MPI_Get_accumulate(origin_addr, origin_count, origin_datatype,& @@ -2299,6 +2383,7 @@ end subroutine PMPI_Get_accumulate end interface + interface MPI_Get_address subroutine MPI_Get_address(location, address, ierror) @@ -2374,6 +2459,29 @@ end subroutine PMPI_Get_elements end interface +interface MPI_Get_elements_x + +subroutine MPI_Get_elements_x(status, datatype, count, ierror) + include 'mpif-config.h' + integer, dimension(MPI_STATUS_SIZE), intent(in) :: status + integer, intent(in) :: datatype + integer(kind=MPI_COUNT_KIND), intent(out) :: count + integer, intent(out) :: ierror +end subroutine MPI_Get_elements_x + +end interface + +interface PMPI_Get_elements_x + +subroutine PMPI_Get_elements_x(status, datatype, count, ierror) + include 'mpif-config.h' + integer, dimension(MPI_STATUS_SIZE), intent(in) :: status + integer, intent(in) :: datatype + integer(kind=MPI_COUNT_KIND), intent(out) :: count + integer, intent(out) :: ierror +end subroutine PMPI_Get_elements_x + +end interface interface MPI_Get_library_version @@ -3227,74 +3335,74 @@ end subroutine PMPI_Ibcast end interface -interface MPI_Iexscan +interface MPI_Ibsend -subroutine MPI_Iexscan(sendbuf, recvbuf, count, datatype, op, & +subroutine MPI_Ibsend(buf, count, datatype, dest, tag, & comm, request, ierror) - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ sendbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, intent(in) :: sendbuf - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ recvbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ :: recvbuf + @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ buf + @OMPI_FORTRAN_IGNORE_TKR_TYPE@, intent(in) :: buf integer, intent(in) :: count integer, intent(in) :: datatype - integer, intent(in) :: op + integer, intent(in) :: dest + integer, intent(in) :: tag integer, intent(in) :: comm integer, intent(out) :: request integer, intent(out) :: ierror -end subroutine MPI_Iexscan +end subroutine MPI_Ibsend end interface -interface PMPI_Iexscan +interface PMPI_Ibsend -subroutine PMPI_Iexscan(sendbuf, recvbuf, count, datatype, op, & +subroutine PMPI_Ibsend(buf, count, datatype, dest, tag, & comm, request, ierror) - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ sendbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, intent(in) :: sendbuf - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ recvbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ :: recvbuf + @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ buf + @OMPI_FORTRAN_IGNORE_TKR_TYPE@, intent(in) :: buf integer, intent(in) :: count integer, intent(in) :: datatype - integer, intent(in) :: op + integer, intent(in) :: dest + integer, intent(in) :: tag integer, intent(in) :: comm integer, intent(out) :: request integer, intent(out) :: ierror -end subroutine PMPI_Iexscan +end subroutine PMPI_Ibsend end interface -interface MPI_Ibsend +interface MPI_Iexscan -subroutine MPI_Ibsend(buf, count, datatype, dest, tag, & +subroutine MPI_Iexscan(sendbuf, recvbuf, count, datatype, op, & comm, request, ierror) - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ buf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, intent(in) :: buf + @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ sendbuf + @OMPI_FORTRAN_IGNORE_TKR_TYPE@, intent(in) :: sendbuf + @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ recvbuf + @OMPI_FORTRAN_IGNORE_TKR_TYPE@ :: recvbuf integer, intent(in) :: count integer, intent(in) :: datatype - integer, intent(in) :: dest - integer, intent(in) :: tag + integer, intent(in) :: op integer, intent(in) :: comm integer, intent(out) :: request integer, intent(out) :: ierror -end subroutine MPI_Ibsend +end subroutine MPI_Iexscan end interface -interface PMPI_Ibsend +interface PMPI_Iexscan -subroutine PMPI_Ibsend(buf, count, datatype, dest, tag, & +subroutine PMPI_Iexscan(sendbuf, recvbuf, count, datatype, op, & comm, request, ierror) - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ buf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, intent(in) :: buf + @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ sendbuf + @OMPI_FORTRAN_IGNORE_TKR_TYPE@, intent(in) :: sendbuf + @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ recvbuf + @OMPI_FORTRAN_IGNORE_TKR_TYPE@ :: recvbuf integer, intent(in) :: count integer, intent(in) :: datatype - integer, intent(in) :: dest - integer, intent(in) :: tag + integer, intent(in) :: op integer, intent(in) :: comm integer, intent(out) :: request integer, intent(out) :: ierror -end subroutine PMPI_Ibsend +end subroutine PMPI_Iexscan end interface @@ -4709,6 +4817,7 @@ end subroutine PMPI_Neighbor_alltoallw end interface + interface MPI_Op_commutative subroutine MPI_Op_commutative(op, commute, ierror) @@ -5047,6 +5156,7 @@ end subroutine PMPI_Query_thread end interface + interface MPI_Raccumulate subroutine MPI_Raccumulate(origin_addr, origin_count, origin_datatype,& @@ -5091,199 +5201,62 @@ end subroutine PMPI_Raccumulate end interface -interface MPI_Get -subroutine MPI_Rget(origin_addr, origin_count, origin_datatype, & - target_rank, target_disp, target_count, & - target_datatype, win, request, ierror) +interface MPI_Recv + +subroutine MPI_Recv(buf, count, datatype, source, tag, & + comm, status, ierror) include 'mpif-config.h' - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ origin_addr - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ :: origin_addr - integer, intent(in) :: origin_count - integer, intent(in) :: origin_datatype - integer, intent(in) :: target_rank - integer(kind=MPI_ADDRESS_KIND), intent(in) :: target_disp - integer, intent(in) :: target_count - integer, intent(in) :: target_datatype - integer, intent(in) :: win - integer, intent(out) :: request + @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ buf + @OMPI_FORTRAN_IGNORE_TKR_TYPE@ :: buf + integer, intent(in) :: count + integer, intent(in) :: datatype + integer, intent(in) :: source + integer, intent(in) :: tag + integer, intent(in) :: comm + integer, dimension(MPI_STATUS_SIZE), intent(out) :: status integer, intent(out) :: ierror -end subroutine MPI_Rget +end subroutine MPI_Recv end interface -interface PMPI_Get +interface PMPI_Recv -subroutine PMPI_Rget(origin_addr, origin_count, origin_datatype, & - target_rank, target_disp, target_count, & - target_datatype, win, request, ierror) +subroutine PMPI_Recv(buf, count, datatype, source, tag, & + comm, status, ierror) include 'mpif-config.h' - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ origin_addr - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ :: origin_addr - integer, intent(in) :: origin_count - integer, intent(in) :: origin_datatype - integer, intent(in) :: target_rank - integer(kind=MPI_ADDRESS_KIND), intent(in) :: target_disp - integer, intent(in) :: target_count - integer, intent(in) :: target_datatype - integer, intent(in) :: win + @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ buf + @OMPI_FORTRAN_IGNORE_TKR_TYPE@ :: buf + integer, intent(in) :: count + integer, intent(in) :: datatype + integer, intent(in) :: source + integer, intent(in) :: tag + integer, intent(in) :: comm + integer, dimension(MPI_STATUS_SIZE), intent(out) :: status + integer, intent(out) :: ierror +end subroutine PMPI_Recv + +end interface + + +interface MPI_Recv_init + +subroutine MPI_Recv_init(buf, count, datatype, source, tag, & + comm, request, ierror) + @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ buf + @OMPI_FORTRAN_IGNORE_TKR_TYPE@ :: buf + integer, intent(in) :: count + integer, intent(in) :: datatype + integer, intent(in) :: source + integer, intent(in) :: tag + integer, intent(in) :: comm integer, intent(out) :: request integer, intent(out) :: ierror -end subroutine PMPI_Rget +end subroutine MPI_Recv_init end interface -interface MPI_Rget_accumulate - -subroutine MPI_Rget_accumulate(origin_addr, origin_count, origin_datatype,& - result_addr, result_count, result_datatype,& - target_rank, target_disp, target_count, & - target_datatype, op, win, request, ierror) - include 'mpif-config.h' - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ origin_addr - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, intent(in) :: origin_addr - integer, intent(in) :: origin_count - integer, intent(in) :: origin_datatype - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ result_addr - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ :: result_addr - integer, intent(in) :: result_count - integer, intent(in) :: result_datatype - integer, intent(in) :: target_rank - integer(kind=MPI_ADDRESS_KIND), intent(in) :: target_disp - integer, intent(in) :: target_count - integer, intent(in) :: target_datatype - integer, intent(in) :: op - integer, intent(in) :: win - integer, intent(out) :: request - integer, intent(out) :: ierror -end subroutine MPI_Rget_accumulate - -end interface - -interface PMPI_Rget_accumulate - -subroutine PMPI_Rget_accumulate(origin_addr, origin_count, origin_datatype,& - result_addr, result_count, result_datatype,& - target_rank, target_disp, target_count, & - target_datatype, op, win, request, ierror) - include 'mpif-config.h' - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ origin_addr - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, intent(in) :: origin_addr - integer, intent(in) :: origin_count - integer, intent(in) :: origin_datatype - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ result_addr - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ :: result_addr - integer, intent(in) :: result_count - integer, intent(in) :: result_datatype - integer, intent(in) :: target_rank - integer(kind=MPI_ADDRESS_KIND), intent(in) :: target_disp - integer, intent(in) :: target_count - integer, intent(in) :: target_datatype - integer, intent(in) :: op - integer, intent(in) :: win - integer, intent(out) :: request - integer, intent(out) :: ierror -end subroutine PMPI_Rget_accumulate - -end interface - -interface MPI_Rput - -subroutine MPI_Rput(origin_addr, origin_count, origin_datatype, & - target_rank, target_disp, target_count, & - target_datatype, win, request, ierror) - include 'mpif-config.h' - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ origin_addr - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, intent(in) :: origin_addr - integer, intent(in) :: origin_count - integer, intent(in) :: origin_datatype - integer, intent(in) :: target_rank - integer(kind=MPI_ADDRESS_KIND), intent(in) :: target_disp - integer, intent(in) :: target_count - integer, intent(in) :: target_datatype - integer, intent(in) :: win - integer, intent(out) :: request - integer, intent(out) :: ierror -end subroutine MPI_Rput - -end interface - -interface PMPI_Rput - -subroutine PMPI_Rput(origin_addr, origin_count, origin_datatype, & - target_rank, target_disp, target_count, & - target_datatype, win, request, ierror) - include 'mpif-config.h' - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ origin_addr - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, intent(in) :: origin_addr - integer, intent(in) :: origin_count - integer, intent(in) :: origin_datatype - integer, intent(in) :: target_rank - integer(kind=MPI_ADDRESS_KIND), intent(in) :: target_disp - integer, intent(in) :: target_count - integer, intent(in) :: target_datatype - integer, intent(in) :: win - integer, intent(out) :: request - integer, intent(out) :: ierror -end subroutine PMPI_Rput - -end interface - -interface MPI_Recv - -subroutine MPI_Recv(buf, count, datatype, source, tag, & - comm, status, ierror) - include 'mpif-config.h' - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ buf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ :: buf - integer, intent(in) :: count - integer, intent(in) :: datatype - integer, intent(in) :: source - integer, intent(in) :: tag - integer, intent(in) :: comm - integer, dimension(MPI_STATUS_SIZE), intent(out) :: status - integer, intent(out) :: ierror -end subroutine MPI_Recv - -end interface - -interface PMPI_Recv - -subroutine PMPI_Recv(buf, count, datatype, source, tag, & - comm, status, ierror) - include 'mpif-config.h' - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ buf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ :: buf - integer, intent(in) :: count - integer, intent(in) :: datatype - integer, intent(in) :: source - integer, intent(in) :: tag - integer, intent(in) :: comm - integer, dimension(MPI_STATUS_SIZE), intent(out) :: status - integer, intent(out) :: ierror -end subroutine PMPI_Recv - -end interface - - -interface MPI_Recv_init - -subroutine MPI_Recv_init(buf, count, datatype, source, tag, & - comm, request, ierror) - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ buf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ :: buf - integer, intent(in) :: count - integer, intent(in) :: datatype - integer, intent(in) :: source - integer, intent(in) :: tag - integer, intent(in) :: comm - integer, intent(out) :: request - integer, intent(out) :: ierror -end subroutine MPI_Recv_init - -end interface - -interface PMPI_Recv_init +interface PMPI_Recv_init subroutine PMPI_Recv_init(buf, count, datatype, source, tag, & comm, request, ierror) @@ -5516,6 +5489,147 @@ end subroutine PMPI_Request_get_status end interface +interface MPI_Rget + +subroutine MPI_Rget(origin_addr, origin_count, origin_datatype, & + target_rank, target_disp, target_count, & + target_datatype, win, request, ierror) + include 'mpif-config.h' + @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ origin_addr + @OMPI_FORTRAN_IGNORE_TKR_TYPE@ :: origin_addr + integer, intent(in) :: origin_count + integer, intent(in) :: origin_datatype + integer, intent(in) :: target_rank + integer(kind=MPI_ADDRESS_KIND), intent(in) :: target_disp + integer, intent(in) :: target_count + integer, intent(in) :: target_datatype + integer, intent(in) :: win + integer, intent(out) :: request + integer, intent(out) :: ierror +end subroutine MPI_Rget + +end interface + +interface PMPI_Rget + +subroutine PMPI_Rget(origin_addr, origin_count, origin_datatype, & + target_rank, target_disp, target_count, & + target_datatype, win, request, ierror) + include 'mpif-config.h' + @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ origin_addr + @OMPI_FORTRAN_IGNORE_TKR_TYPE@ :: origin_addr + integer, intent(in) :: origin_count + integer, intent(in) :: origin_datatype + integer, intent(in) :: target_rank + integer(kind=MPI_ADDRESS_KIND), intent(in) :: target_disp + integer, intent(in) :: target_count + integer, intent(in) :: target_datatype + integer, intent(in) :: win + integer, intent(out) :: request + integer, intent(out) :: ierror +end subroutine PMPI_Rget + +end interface + + +interface MPI_Rget_accumulate + +subroutine MPI_Rget_accumulate(origin_addr, origin_count, origin_datatype,& + result_addr, result_count, result_datatype,& + target_rank, target_disp, target_count, & + target_datatype, op, win, request, ierror) + include 'mpif-config.h' + @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ origin_addr + @OMPI_FORTRAN_IGNORE_TKR_TYPE@, intent(in) :: origin_addr + integer, intent(in) :: origin_count + integer, intent(in) :: origin_datatype + @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ result_addr + @OMPI_FORTRAN_IGNORE_TKR_TYPE@ :: result_addr + integer, intent(in) :: result_count + integer, intent(in) :: result_datatype + integer, intent(in) :: target_rank + integer(kind=MPI_ADDRESS_KIND), intent(in) :: target_disp + integer, intent(in) :: target_count + integer, intent(in) :: target_datatype + integer, intent(in) :: op + integer, intent(in) :: win + integer, intent(out) :: request + integer, intent(out) :: ierror +end subroutine MPI_Rget_accumulate + +end interface + +interface PMPI_Rget_accumulate + +subroutine PMPI_Rget_accumulate(origin_addr, origin_count, origin_datatype,& + result_addr, result_count, result_datatype,& + target_rank, target_disp, target_count, & + target_datatype, op, win, request, ierror) + include 'mpif-config.h' + @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ origin_addr + @OMPI_FORTRAN_IGNORE_TKR_TYPE@, intent(in) :: origin_addr + integer, intent(in) :: origin_count + integer, intent(in) :: origin_datatype + @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ result_addr + @OMPI_FORTRAN_IGNORE_TKR_TYPE@ :: result_addr + integer, intent(in) :: result_count + integer, intent(in) :: result_datatype + integer, intent(in) :: target_rank + integer(kind=MPI_ADDRESS_KIND), intent(in) :: target_disp + integer, intent(in) :: target_count + integer, intent(in) :: target_datatype + integer, intent(in) :: op + integer, intent(in) :: win + integer, intent(out) :: request + integer, intent(out) :: ierror +end subroutine PMPI_Rget_accumulate + +end interface + + +interface MPI_Rput + +subroutine MPI_Rput(origin_addr, origin_count, origin_datatype, & + target_rank, target_disp, target_count, & + target_datatype, win, request, ierror) + include 'mpif-config.h' + @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ origin_addr + @OMPI_FORTRAN_IGNORE_TKR_TYPE@, intent(in) :: origin_addr + integer, intent(in) :: origin_count + integer, intent(in) :: origin_datatype + integer, intent(in) :: target_rank + integer(kind=MPI_ADDRESS_KIND), intent(in) :: target_disp + integer, intent(in) :: target_count + integer, intent(in) :: target_datatype + integer, intent(in) :: win + integer, intent(out) :: request + integer, intent(out) :: ierror +end subroutine MPI_Rput + +end interface + +interface PMPI_Rput + +subroutine PMPI_Rput(origin_addr, origin_count, origin_datatype, & + target_rank, target_disp, target_count, & + target_datatype, win, request, ierror) + include 'mpif-config.h' + @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ origin_addr + @OMPI_FORTRAN_IGNORE_TKR_TYPE@, intent(in) :: origin_addr + integer, intent(in) :: origin_count + integer, intent(in) :: origin_datatype + integer, intent(in) :: target_rank + integer(kind=MPI_ADDRESS_KIND), intent(in) :: target_disp + integer, intent(in) :: target_count + integer, intent(in) :: target_datatype + integer, intent(in) :: win + integer, intent(out) :: request + integer, intent(out) :: ierror +end subroutine PMPI_Rput + +end interface + + interface MPI_Rsend subroutine MPI_Rsend(ibuf, count, datatype, dest, tag, & @@ -6013,6 +6127,31 @@ end subroutine PMPI_Status_set_elements end interface +interface MPI_Status_set_elements_x + +subroutine MPI_Status_set_elements_x(status, datatype, count, ierror) + include 'mpif-config.h' + integer, dimension(MPI_STATUS_SIZE), intent(inout) :: status + integer, intent(in) :: datatype + integer(kind=MPI_COUNT_KIND), intent(in) :: count + integer, intent(out) :: ierror +end subroutine MPI_Status_set_elements_x + +end interface + +interface PMPI_Status_set_elements_x + +subroutine PMPI_Status_set_elements_x(status, datatype, count, ierror) + include 'mpif-config.h' + integer, dimension(MPI_STATUS_SIZE), intent(inout) :: status + integer, intent(in) :: datatype + integer(kind=MPI_COUNT_KIND), intent(in) :: count + integer, intent(out) :: ierror +end subroutine PMPI_Status_set_elements_x + +end interface + + interface MPI_Test subroutine MPI_Test(request, flag, status, ierror) @@ -6350,93 +6489,93 @@ end subroutine PMPI_Type_create_hindexed end interface -interface MPI_Type_create_hvector +interface MPI_Type_create_hindexed_block -subroutine MPI_Type_create_hvector(count, blocklength, stride, oldtype, newtype& +subroutine MPI_Type_create_hindexed_block(count, blocklength, array_of_displacements, oldtype, newtype& , ierror) include 'mpif-config.h' integer, intent(in) :: count integer, intent(in) :: blocklength - integer(kind=MPI_ADDRESS_KIND), intent(in) :: stride + integer(kind=MPI_ADDRESS_KIND), dimension(*), intent(in) :: array_of_displacements integer, intent(in) :: oldtype integer, intent(out) :: newtype integer, intent(out) :: ierror -end subroutine MPI_Type_create_hvector +end subroutine MPI_Type_create_hindexed_block end interface -interface PMPI_Type_create_hvector +interface PMPI_Type_create_hindexed_block -subroutine PMPI_Type_create_hvector(count, blocklength, stride, oldtype, newtype& +subroutine PMPI_Type_create_hindexed_block(count, blocklength, array_of_displacements, oldtype, newtype& , ierror) include 'mpif-config.h' integer, intent(in) :: count integer, intent(in) :: blocklength - integer(kind=MPI_ADDRESS_KIND), intent(in) :: stride + integer(kind=MPI_ADDRESS_KIND), dimension(*), intent(in) :: array_of_displacements integer, intent(in) :: oldtype integer, intent(out) :: newtype integer, intent(out) :: ierror -end subroutine PMPI_Type_create_hvector +end subroutine PMPI_Type_create_hindexed_block end interface -interface MPI_Type_create_indexed_block +interface MPI_Type_create_hvector -subroutine MPI_Type_create_indexed_block(count, blocklength, array_of_displacements, oldtype, newtype& +subroutine MPI_Type_create_hvector(count, blocklength, stride, oldtype, newtype& , ierror) + include 'mpif-config.h' integer, intent(in) :: count integer, intent(in) :: blocklength - integer, dimension(*), intent(in) :: array_of_displacements + integer(kind=MPI_ADDRESS_KIND), intent(in) :: stride integer, intent(in) :: oldtype integer, intent(out) :: newtype integer, intent(out) :: ierror -end subroutine MPI_Type_create_indexed_block +end subroutine MPI_Type_create_hvector end interface -interface PMPI_Type_create_indexed_block +interface PMPI_Type_create_hvector -subroutine PMPI_Type_create_indexed_block(count, blocklength, array_of_displacements, oldtype, newtype& +subroutine PMPI_Type_create_hvector(count, blocklength, stride, oldtype, newtype& , ierror) + include 'mpif-config.h' integer, intent(in) :: count integer, intent(in) :: blocklength - integer, dimension(*), intent(in) :: array_of_displacements + integer(kind=MPI_ADDRESS_KIND), intent(in) :: stride integer, intent(in) :: oldtype integer, intent(out) :: newtype integer, intent(out) :: ierror -end subroutine PMPI_Type_create_indexed_block +end subroutine PMPI_Type_create_hvector end interface -interface MPI_Type_create_hindexed_block +interface MPI_Type_create_indexed_block -subroutine MPI_Type_create_hindexed_block(count, blocklength, array_of_displacements, oldtype, newtype& +subroutine MPI_Type_create_indexed_block(count, blocklength, array_of_displacements, oldtype, newtype& , ierror) - include 'mpif-config.h' integer, intent(in) :: count integer, intent(in) :: blocklength - integer(kind=MPI_ADDRESS_KIND), dimension(*), intent(in) :: array_of_displacements + integer, dimension(*), intent(in) :: array_of_displacements integer, intent(in) :: oldtype integer, intent(out) :: newtype integer, intent(out) :: ierror -end subroutine MPI_Type_create_hindexed_block +end subroutine MPI_Type_create_indexed_block end interface -interface PMPI_Type_create_hindexed_block +interface PMPI_Type_create_indexed_block -subroutine PMPI_Type_create_hindexed_block(count, blocklength, array_of_displacements, oldtype, newtype& +subroutine PMPI_Type_create_indexed_block(count, blocklength, array_of_displacements, oldtype, newtype& , ierror) - include 'mpif-config.h' integer, intent(in) :: count integer, intent(in) :: blocklength - integer(kind=MPI_ADDRESS_KIND), dimension(*), intent(in) :: array_of_displacements + integer, dimension(*), intent(in) :: array_of_displacements integer, intent(in) :: oldtype integer, intent(out) :: newtype integer, intent(out) :: ierror -end subroutine PMPI_Type_create_hindexed_block +end subroutine PMPI_Type_create_indexed_block end interface @@ -6776,6 +6915,31 @@ end subroutine PMPI_Type_get_extent end interface +interface MPI_Type_get_extent_x + +subroutine MPI_Type_get_extent_x(type, lb, extent, ierror) + include 'mpif-config.h' + integer, intent(in) :: type + integer(kind=MPI_COUNT_KIND), intent(out) :: lb + integer(kind=MPI_COUNT_KIND), intent(out) :: extent + integer, intent(out) :: ierror +end subroutine MPI_Type_get_extent_x + +end interface + +interface PMPI_Type_get_extent_x + +subroutine PMPI_Type_get_extent_x(type, lb, extent, ierror) + include 'mpif-config.h' + integer, intent(in) :: type + integer(kind=MPI_COUNT_KIND), intent(out) :: lb + integer(kind=MPI_COUNT_KIND), intent(out) :: extent + integer, intent(out) :: ierror +end subroutine PMPI_Type_get_extent_x + +end interface + + interface MPI_Type_get_name subroutine MPI_Type_get_name(type, type_name, resultlen, ierror) @@ -6804,22 +6968,47 @@ interface MPI_Type_get_true_extent subroutine MPI_Type_get_true_extent(datatype, true_lb, true_extent, ierror) include 'mpif-config.h' integer, intent(in) :: datatype - integer(kind=MPI_ADDRESS_KIND), intent(out) :: true_lb - integer(kind=MPI_ADDRESS_KIND), intent(out) :: true_extent + integer(kind=MPI_ADDRESS_KIND), intent(out) :: true_lb + integer(kind=MPI_ADDRESS_KIND), intent(out) :: true_extent + integer, intent(out) :: ierror +end subroutine MPI_Type_get_true_extent + +end interface + +interface PMPI_Type_get_true_extent + +subroutine PMPI_Type_get_true_extent(datatype, true_lb, true_extent, ierror) + include 'mpif-config.h' + integer, intent(in) :: datatype + integer(kind=MPI_ADDRESS_KIND), intent(out) :: true_lb + integer(kind=MPI_ADDRESS_KIND), intent(out) :: true_extent + integer, intent(out) :: ierror +end subroutine PMPI_Type_get_true_extent + +end interface + + +interface MPI_Type_get_true_extent_x + +subroutine MPI_Type_get_true_extent_x(datatype, true_lb, true_extent, ierror) + include 'mpif-config.h' + integer, intent(in) :: datatype + integer(kind=MPI_COUNT_KIND), intent(out) :: true_lb + integer(kind=MPI_COUNT_KIND), intent(out) :: true_extent integer, intent(out) :: ierror -end subroutine MPI_Type_get_true_extent +end subroutine MPI_Type_get_true_extent_x end interface -interface PMPI_Type_get_true_extent +interface PMPI_Type_get_true_extent_x -subroutine PMPI_Type_get_true_extent(datatype, true_lb, true_extent, ierror) +subroutine PMPI_Type_get_true_extent_x(datatype, true_lb, true_extent, ierror) include 'mpif-config.h' integer, intent(in) :: datatype - integer(kind=MPI_ADDRESS_KIND), intent(out) :: true_lb - integer(kind=MPI_ADDRESS_KIND), intent(out) :: true_extent + integer(kind=MPI_COUNT_KIND), intent(out) :: true_lb + integer(kind=MPI_COUNT_KIND), intent(out) :: true_extent integer, intent(out) :: ierror -end subroutine PMPI_Type_get_true_extent +end subroutine PMPI_Type_get_true_extent_x end interface @@ -7022,6 +7211,29 @@ end subroutine PMPI_Type_size end interface +interface MPI_Type_size_x + +subroutine MPI_Type_size_x(type, size, ierror) + include 'mpif-config.h' + integer, intent(in) :: type + integer(kind=MPI_COUNT_KIND), intent(out) :: size + integer, intent(out) :: ierror +end subroutine MPI_Type_size_x + +end interface + +interface PMPI_Type_size_x + +subroutine PMPI_Type_size_x(type, size, ierror) + include 'mpif-config.h' + integer, intent(in) :: type + integer(kind=MPI_COUNT_KIND), intent(out) :: size + integer, intent(out) :: ierror +end subroutine PMPI_Type_size_x + +end interface + + interface MPI_Type_struct subroutine MPI_Type_struct(count, array_of_blocklengths, array_of_displacements, array_of_types, newtype& @@ -7306,17 +7518,6 @@ end subroutine PMPI_Waitsome end interface -interface MPI_Win_call_errhandler - -subroutine MPI_Win_call_errhandler(win, errorcode, ierror) - integer, intent(in) :: win - integer, intent(in) :: errorcode - integer, intent(out) :: ierror -end subroutine MPI_Win_call_errhandler - -end interface - - interface MPI_Win_allocate subroutine MPI_Win_allocate(size, disp_unit, info, comm, & @@ -7342,6 +7543,31 @@ end subroutine MPI_Win_allocate_cptr end interface +interface PMPI_Win_allocate + +subroutine PMPI_Win_allocate(size, disp_unit, info, comm, & + baseptr, win, ierror) + include 'mpif-config.h' + integer(KIND=MPI_ADDRESS_KIND), intent(in) :: size + integer, intent(in) :: disp_unit + integer, intent(in) :: info + integer, intent(in) :: comm + integer(KIND=MPI_ADDRESS_KIND), intent(out) :: baseptr + integer, intent(out) :: win + integer, intent(out) :: ierror +end subroutine PMPI_Win_allocate + +subroutine PMPI_Win_allocate_cptr(size, disp_unit, info, comm, & + baseptr, win, ierror) + use, intrinsic :: iso_c_binding, only : c_ptr + include 'mpif-config.h' + integer :: disp_unit, info, comm, win, ierror + integer(KIND=MPI_ADDRESS_KIND) :: size + type(C_PTR) :: baseptr +end subroutine PMPI_Win_allocate_cptr + +end interface + interface MPI_Win_allocate_shared @@ -7368,6 +7594,68 @@ end subroutine MPI_Win_allocate_shared_cptr end interface +interface PMPI_Win_allocate_shared + +subroutine PMPI_Win_allocate_shared(size, disp_unit, info, comm, & + baseptr, win, ierror) + include 'mpif-config.h' + integer(KIND=MPI_ADDRESS_KIND), intent(in) :: size + integer, intent(in) :: disp_unit + integer, intent(in) :: info + integer, intent(in) :: comm + integer(KIND=MPI_ADDRESS_KIND), intent(out) :: baseptr + integer, intent(out) :: win + integer, intent(out) :: ierror +end subroutine PMPI_Win_allocate_shared + +subroutine PMPI_Win_allocate_shared_cptr(size, disp_unit, info, comm, & + baseptr, win, ierror) + use, intrinsic :: iso_c_binding, only : c_ptr + include 'mpif-config.h' + integer :: disp_unit, info, comm, win, ierror + integer(KIND=MPI_ADDRESS_KIND) :: size + type(C_PTR) :: baseptr +end subroutine PMPI_Win_allocate_shared_cptr + +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(in) :: 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(in) :: win + integer, intent(out) :: ierror +end subroutine PMPI_Win_attach + +end interface + + +interface MPI_Win_call_errhandler + +subroutine MPI_Win_call_errhandler(win, errorcode, ierror) + integer, intent(in) :: win + integer, intent(in) :: errorcode + integer, intent(out) :: ierror +end subroutine MPI_Win_call_errhandler + +end interface interface PMPI_Win_call_errhandler @@ -7461,58 +7749,6 @@ 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(in) :: 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(in) :: 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(in) :: 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(in) :: 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) @@ -7582,6 +7818,31 @@ end subroutine PMPI_Win_delete_attr 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(in) :: 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(in) :: win + integer, intent(out) :: ierror +end subroutine PMPI_Win_detach + +end interface + + interface MPI_Win_fence subroutine MPI_Win_fence(assert, win, ierror) @@ -7602,6 +7863,7 @@ end subroutine PMPI_Win_fence end interface + interface MPI_Win_flush subroutine MPI_Win_flush(rank, win, ierror) @@ -7622,6 +7884,7 @@ end subroutine PMPI_Win_flush end interface + interface MPI_Win_flush_all subroutine MPI_Win_flush_all(win, ierror) @@ -7640,6 +7903,7 @@ end subroutine PMPI_Win_flush_all end interface + interface MPI_Win_flush_local subroutine MPI_Win_flush_local(rank, win, ierror) @@ -7660,6 +7924,7 @@ end subroutine PMPI_Win_flush_local end interface + interface MPI_Win_flush_local_all subroutine MPI_Win_flush_local_all(win, ierror) @@ -7678,6 +7943,7 @@ end subroutine PMPI_Win_flush_local_all end interface + interface MPI_Win_free subroutine MPI_Win_free(win, ierror) @@ -7833,6 +8099,27 @@ end subroutine PMPI_Win_lock end interface +interface MPI_Win_lock_all + +subroutine MPI_Win_lock_all(assert, win, ierror) + integer, intent(in) :: assert + integer, intent(in) :: win + integer, intent(out) :: ierror +end subroutine MPI_Win_lock_all + +end interface + +interface PMPI_Win_lock_all + +subroutine PMPI_Win_lock_all(assert, win, ierror) + integer, intent(in) :: assert + integer, intent(in) :: win + integer, intent(out) :: ierror +end subroutine PMPI_Win_lock_all + +end interface + + interface MPI_Win_post subroutine MPI_Win_post(group, assert, win, ierror) @@ -7950,6 +8237,33 @@ end subroutine MPI_Win_shared_query_cptr end interface +interface PMPI_Win_shared_query + +subroutine PMPI_Win_shared_query(win, rank, size, disp_unit, baseptr,& + ierror) + include 'mpif-config.h' + integer, intent(in) :: win + integer, intent(in) :: rank + integer(KIND=MPI_ADDRESS_KIND), intent(out) :: size + integer, intent(out) :: disp_unit + integer(KIND=MPI_ADDRESS_KIND), intent(out) :: baseptr + integer, intent(out) :: ierror +end subroutine PMPI_Win_shared_query + +subroutine PMPI_Win_shared_query_cptr(win, rank, size, disp_unit, baseptr,& + ierror) + use, intrinsic :: iso_c_binding, only : c_ptr + include 'mpif-config.h' + integer, intent(in) :: win + integer, intent(in) :: rank + integer(KIND=MPI_ADDRESS_KIND), intent(out) :: size + integer, intent(out) :: disp_unit + type(C_PTR), intent(out) :: baseptr + integer, intent(out) :: ierror +end subroutine PMPI_Win_shared_query_cptr + +end interface + interface MPI_Win_start @@ -7974,6 +8288,25 @@ end subroutine PMPI_Win_start end interface +interface MPI_Win_sync + +subroutine MPI_Win_sync(win, ierror) + integer, intent(in) :: win + integer, intent(out) :: ierror +end subroutine MPI_Win_sync + +end interface + +interface PMPI_Win_sync + +subroutine PMPI_Win_sync(win, ierror) + integer, intent(in) :: win + integer, intent(out) :: ierror +end subroutine PMPI_Win_sync + +end interface + + interface MPI_Win_test subroutine MPI_Win_test(win, flag, ierror) @@ -8016,6 +8349,25 @@ end subroutine PMPI_Win_unlock end interface +interface MPI_Win_unlock_all + +subroutine MPI_Win_unlock_all(win, ierror) + integer, intent(in) :: win + integer, intent(out) :: ierror +end subroutine MPI_Win_unlock_all + +end interface + +interface PMPI_Win_unlock_all + +subroutine PMPI_Win_unlock_all(win, ierror) + integer, intent(in) :: win + integer, intent(out) :: ierror +end subroutine PMPI_Win_unlock_all + +end interface + + interface MPI_Win_wait subroutine MPI_Win_wait(win, ierror)