diff --git a/ompi/mpi/fortran/use-mpi-f08/Makefile.am b/ompi/mpi/fortran/use-mpi-f08/Makefile.am index aa3f5e25cfe..150b825af83 100644 --- a/ompi/mpi/fortran/use-mpi-f08/Makefile.am +++ b/ompi/mpi/fortran/use-mpi-f08/Makefile.am @@ -282,9 +282,7 @@ mpi_api_files = \ probe_f08.F90 \ psend_init_f08.F90 \ publish_name_f08.F90 \ - put_f08.F90 \ query_thread_f08.F90 \ - raccumulate_f08.F90 \ recv_init_f08.F90 \ reduce_init_f08.F90 \ reduce_local_f08.F90 \ diff --git a/ompi/mpi/fortran/use-mpi-f08/Makefile.prototype_files b/ompi/mpi/fortran/use-mpi-f08/Makefile.prototype_files index 7e71d94aebc..5b3ae030081 100644 --- a/ompi/mpi/fortran/use-mpi-f08/Makefile.prototype_files +++ b/ompi/mpi/fortran/use-mpi-f08/Makefile.prototype_files @@ -6,8 +6,6 @@ # $(abs_top_srcdir)/ompi/mpi/fortran/use-mpi-f08/f_sync_reg_ts.c.in incomplete_prototype_files = \ - $(abs_top_srcdir)/ompi/mpi/fortran/use-mpi-f08/put_ts.c.in \ - $(abs_top_srcdir)/ompi/mpi/fortran/use-mpi-f08/raccumulate_ts.c.in \ $(abs_top_srcdir)/ompi/mpi/fortran/use-mpi-f08/recv_init_ts.c.in \ $(abs_top_srcdir)/ompi/mpi/fortran/use-mpi-f08/reduce_local_ts.c.in \ $(abs_top_srcdir)/ompi/mpi/fortran/use-mpi-f08/reduce_scatter_block_ts.c.in \ @@ -133,6 +131,8 @@ complete_prototype_files = \ $(abs_top_srcdir)/ompi/mpi/fortran/use-mpi-f08/pack_size.c.in \ $(abs_top_srcdir)/ompi/mpi/fortran/use-mpi-f08/pack_external_size.c.in \ $(abs_top_srcdir)/ompi/mpi/fortran/use-mpi-f08/pack_external_ts.c.in \ + $(abs_top_srcdir)/ompi/mpi/fortran/use-mpi-f08/put_ts.c.in \ + $(abs_top_srcdir)/ompi/mpi/fortran/use-mpi-f08/raccumulate_ts.c.in \ $(abs_top_srcdir)/ompi/mpi/fortran/use-mpi-f08/type_vector.c.in \ $(abs_top_srcdir)/ompi/mpi/fortran/use-mpi-f08/type_size.c.in \ $(abs_top_srcdir)/ompi/mpi/fortran/use-mpi-f08/type_indexed.c.in \ diff --git a/ompi/mpi/fortran/use-mpi-f08/get_ts.c.in b/ompi/mpi/fortran/use-mpi-f08/get_ts.c.in index 285c6d5950c..a31a9a7f446 100644 --- a/ompi/mpi/fortran/use-mpi-f08/get_ts.c.in +++ b/ompi/mpi/fortran/use-mpi-f08/get_ts.c.in @@ -21,7 +21,7 @@ PROTOTYPE VOID get(BUFFER_ASYNC x, COUNT origin_count, DATATYPE origin_datatype, RANK target_rank, - DISP target_disp, COUNT target_count, + AINT target_disp, COUNT target_count, DATATYPE target_datatype, WIN win) { int c_ierr; diff --git a/ompi/mpi/fortran/use-mpi-f08/mod/mpi-f08-interfaces.h.in b/ompi/mpi/fortran/use-mpi-f08/mod/mpi-f08-interfaces.h.in index 638a0958312..1cb002b0886 100644 --- a/ompi/mpi/fortran/use-mpi-f08/mod/mpi-f08-interfaces.h.in +++ b/ompi/mpi/fortran/use-mpi-f08/mod/mpi-f08-interfaces.h.in @@ -2464,25 +2464,6 @@ subroutine MPI_Unpublish_name_f08(service_name,info,port_name,ierror) end subroutine MPI_Unpublish_name_f08 end interface MPI_Unpublish_name -interface MPI_Raccumulate -subroutine MPI_Raccumulate_f08(origin_addr,origin_count,origin_datatype,target_rank, & - target_disp,target_count,target_datatype,op,win,request, & - ierror) - use :: mpi_f08_types, only : MPI_Datatype, MPI_Op, MPI_Win, MPI_Request, MPI_ADDRESS_KIND - implicit none - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ origin_addr - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: origin_addr - INTEGER, INTENT(IN) :: origin_count, target_rank, target_count - TYPE(MPI_Datatype), INTENT(IN) :: origin_datatype - INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: target_disp - TYPE(MPI_Datatype), INTENT(IN) :: target_datatype - TYPE(MPI_Op), INTENT(IN) :: op - TYPE(MPI_Win), INTENT(IN) :: win - TYPE(MPI_Request), INTENT(OUT) :: request - INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_Raccumulate_f08 -end interface MPI_Raccumulate - interface MPI_Rget subroutine MPI_Rget_f08(origin_addr,origin_count,origin_datatype,target_rank, & target_disp,target_count,target_datatype,win,request,ierror) @@ -2521,22 +2502,6 @@ subroutine MPI_Rget_accumulate_f08(origin_addr,origin_count,origin_datatype,resu end subroutine MPI_Rget_accumulate_f08 end interface MPI_Rget_accumulate -interface MPI_Put -subroutine MPI_Put_f08(origin_addr,origin_count,origin_datatype,target_rank, & - target_disp,target_count,target_datatype,win,ierror) - use :: mpi_f08_types, only : MPI_Datatype, MPI_Win, MPI_ADDRESS_KIND - implicit none - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ origin_addr - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: origin_addr - INTEGER, INTENT(IN) :: origin_count, target_rank, target_count - TYPE(MPI_Datatype), INTENT(IN) :: origin_datatype - INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: target_disp - TYPE(MPI_Datatype), INTENT(IN) :: target_datatype - TYPE(MPI_Win), INTENT(IN) :: win - INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_Put_f08 -end interface MPI_Put - interface MPI_Rput subroutine MPI_Rput_f08(origin_addr,origin_count,origin_datatype,target_rank, & target_disp,target_count,target_datatype,win,request,ierror) diff --git a/ompi/mpi/fortran/use-mpi-f08/put_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/put_f08.F90 deleted file mode 100644 index b58e4d88623..00000000000 --- a/ompi/mpi/fortran/use-mpi-f08/put_f08.F90 +++ /dev/null @@ -1,32 +0,0 @@ -! -*- f90 -*- -! -! Copyright (c) 2010-2022 Cisco Systems, Inc. All rights reserved -! Copyright (c) 2009-2012 Los Alamos National Security, LLC. -! All Rights reserved. -! Copyright (c) 2018-2020 Research Organization for Information Science -! and Technology (RIST). All rights reserved. -! $COPYRIGHT$ - -#include "ompi/mpi/fortran/configure-fortran-output.h" - -#include "mpi-f08-rename.h" - -subroutine MPI_Put_f08(origin_addr,origin_count,origin_datatype,target_rank,& - target_disp,target_count,target_datatype,win,ierror) - use :: mpi_f08_types, only : MPI_Datatype, MPI_Win, MPI_ADDRESS_KIND - use :: ompi_mpifh_bindings, only : ompi_put_f - implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: origin_addr - INTEGER, INTENT(IN) :: origin_count, target_rank, target_count - TYPE(MPI_Datatype), INTENT(IN) :: origin_datatype - INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: target_disp - TYPE(MPI_Datatype), INTENT(IN) :: target_datatype - TYPE(MPI_Win), INTENT(IN) :: win - INTEGER, OPTIONAL, INTENT(OUT) :: ierror - integer :: c_ierror - - call ompi_put_f(origin_addr,origin_count,origin_datatype%MPI_VAL,target_rank,& - target_disp,target_count,target_datatype%MPI_VAL,win%MPI_VAL,c_ierror) - if (present(ierror)) ierror = c_ierror - -end subroutine MPI_Put_f08 diff --git a/ompi/mpi/fortran/use-mpi-f08/put_ts.c.in b/ompi/mpi/fortran/use-mpi-f08/put_ts.c.in index 81e621498ee..2aa166a6867 100644 --- a/ompi/mpi/fortran/use-mpi-f08/put_ts.c.in +++ b/ompi/mpi/fortran/use-mpi-f08/put_ts.c.in @@ -19,26 +19,17 @@ * $HEADER$ */ -#include "ompi_config.h" - -#include "ompi/win/win.h" -#include "ompi/errhandler/errhandler.h" -#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" -#include "ompi/mpi/fortran/base/constants.h" - -static const char FUNC_NAME[] = "MPI_Put"; - -void ompi_put_ts(CFI_cdesc_t *x, MPI_Fint *origin_count, - MPI_Fint *origin_datatype, MPI_Fint *target_rank, - MPI_Aint *target_disp, MPI_Fint *target_count, - MPI_Fint *target_datatype, MPI_Fint *win, MPI_Fint *ierr) +PROTOTYPE VOID put(BUFFER x, COUNT origin_count, + DATATYPE origin_datatype, RANK target_rank, + AINT target_disp, COUNT target_count, + DATATYPE target_datatype, WIN win) { int c_ierr; MPI_Datatype c_origin_datatype, c_origin_type = PMPI_Type_f2c(*origin_datatype); MPI_Datatype c_target_datatype = PMPI_Type_f2c(*target_datatype); MPI_Win c_win = PMPI_Win_f2c(*win); char *origin_addr = OMPI_CFI_BASE_ADDR(x); - int c_origin_count = OMPI_INT_2_FINT(*origin_count); + @COUNT_TYPE@ c_origin_count = (@COUNT_TYPE@)*origin_count; OMPI_CFI_2_C(x, c_origin_count, c_origin_type, c_origin_datatype, c_ierr); if (MPI_SUCCESS != c_ierr) { @@ -46,13 +37,13 @@ void ompi_put_ts(CFI_cdesc_t *x, MPI_Fint *origin_count, OMPI_ERRHANDLER_INVOKE(c_win, c_ierr, FUNC_NAME) return; } - c_ierr = PMPI_Put(OMPI_F2C_BOTTOM(origin_addr), - c_origin_count, - c_origin_datatype, - OMPI_FINT_2_INT(*target_rank), - *target_disp, - OMPI_FINT_2_INT(*target_count), - c_target_datatype, c_win); + c_ierr = @INNER_CALL@(OMPI_F2C_BOTTOM(origin_addr), + c_origin_count, + c_origin_datatype, + OMPI_FINT_2_INT(*target_rank), + *target_disp, + (@COUNT_TYPE@) *target_count, + c_target_datatype, c_win); if (c_origin_datatype != c_origin_type) { ompi_datatype_destroy(&c_origin_datatype); } diff --git a/ompi/mpi/fortran/use-mpi-f08/raccumulate_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/raccumulate_f08.F90 deleted file mode 100644 index 1935be341d4..00000000000 --- a/ompi/mpi/fortran/use-mpi-f08/raccumulate_f08.F90 +++ /dev/null @@ -1,36 +0,0 @@ -! -*- f90 -*- -! -! Copyright (c) 2010-2022 Cisco Systems, Inc. All rights reserved -! Copyright (c) 2009-2014 Los Alamos National Security, LLC. -! All Rights reserved. -! Copyright (c) 2018-2020 Research Organization for Information Science -! and Technology (RIST). All rights reserved. -! $COPYRIGHT$ - -#include "ompi/mpi/fortran/configure-fortran-output.h" - -#include "mpi-f08-rename.h" - -subroutine MPI_Raccumulate_f08(origin_addr,origin_count,origin_datatype,& - target_rank,target_disp,target_count, & - target_datatype,op,win,request, ierror) - use :: mpi_f08_types, only : MPI_Datatype, MPI_Op, MPI_Win, MPI_Request, MPI_ADDRESS_KIND - use :: ompi_mpifh_bindings, only : ompi_raccumulate_f - implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: origin_addr - INTEGER, INTENT(IN) :: origin_count, target_rank, target_count - TYPE(MPI_Datatype), INTENT(IN) :: origin_datatype - INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: target_disp - TYPE(MPI_Datatype), INTENT(IN) :: target_datatype - TYPE(MPI_Op), INTENT(IN) :: op - TYPE(MPI_Win), INTENT(IN) :: win - TYPE(MPI_Request), INTENT(OUT) :: request - INTEGER, OPTIONAL, INTENT(OUT) :: ierror - integer :: c_ierror - - call ompi_raccumulate_f(origin_addr,origin_count,origin_datatype%MPI_VAL,target_rank,& - target_disp,target_count,target_datatype%MPI_VAL,& - op%MPI_VAL,win%MPI_VAL,request%MPI_VAL,c_ierror) - if (present(ierror)) ierror = c_ierror - -end subroutine MPI_Raccumulate_f08 diff --git a/ompi/mpi/fortran/use-mpi-f08/raccumulate_ts.c.in b/ompi/mpi/fortran/use-mpi-f08/raccumulate_ts.c.in index 642f743d6b1..d6161a7cc16 100644 --- a/ompi/mpi/fortran/use-mpi-f08/raccumulate_ts.c.in +++ b/ompi/mpi/fortran/use-mpi-f08/raccumulate_ts.c.in @@ -22,20 +22,11 @@ * $HEADER$ */ -#include "ompi_config.h" - -#include "ompi/win/win.h" -#include "ompi/errhandler/errhandler.h" -#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" -#include "ompi/mpi/fortran/base/constants.h" - -static const char FUNC_NAME[] = "MPI_Raccumulate"; - -void ompi_raccumulate_ts(CFI_cdesc_t *x, MPI_Fint *origin_count, - MPI_Fint *origin_datatype, MPI_Fint *target_rank, - MPI_Aint *target_disp, MPI_Fint *target_count, - MPI_Fint *target_datatype, MPI_Fint *op, MPI_Fint *win, - MPI_Fint *request, MPI_Fint *ierr) +PROTOTYPE VOID raccumulate(BUFFER x, COUNT origin_count, + DATATYPE origin_datatype, RANK target_rank, + AINT target_disp, COUNT target_count, + DATATYPE target_datatype, OP op, WIN win, + REQUEST_OUT request) { int c_ierr; @@ -45,7 +36,7 @@ void ompi_raccumulate_ts(CFI_cdesc_t *x, MPI_Fint *origin_count, MPI_Op c_op = PMPI_Op_f2c(*op); MPI_Request c_req; char *origin_addr = OMPI_CFI_BASE_ADDR(x); - int c_origin_count = OMPI_INT_2_FINT(*origin_count); + @COUNT_TYPE@ c_origin_count = (@COUNT_TYPE@) *origin_count; OMPI_CFI_2_C(x, c_origin_count, c_origin_type, c_origin_datatype, c_ierr); if (MPI_SUCCESS != c_ierr) { @@ -53,14 +44,14 @@ void ompi_raccumulate_ts(CFI_cdesc_t *x, MPI_Fint *origin_count, OMPI_ERRHANDLER_INVOKE(c_win, c_ierr, FUNC_NAME) return; } - c_ierr = PMPI_Raccumulate(OMPI_F2C_BOTTOM(origin_addr), - c_origin_count, - c_origin_datatype, - OMPI_FINT_2_INT(*target_rank), - *target_disp, - OMPI_FINT_2_INT(*target_count), - c_target_datatype, c_op, c_win, - &c_req); + c_ierr = @INNER_CALL@(OMPI_F2C_BOTTOM(origin_addr), + c_origin_count, + c_origin_datatype, + OMPI_FINT_2_INT(*target_rank), + *target_disp, + (@COUNT_TYPE@) *target_count, + c_target_datatype, c_op, c_win, + &c_req); if (c_origin_datatype != c_origin_type) { ompi_datatype_destroy(&c_origin_datatype); }