From ccff41383c67d2b13f5d5f2b989a5d8b8a236d92 Mon Sep 17 00:00:00 2001 From: Jeff Squyres Date: Wed, 12 Mar 2014 20:22:15 +0000 Subject: [PATCH] Refs trac:4372: Another addendum to Fortran API fixes for the RMA functions * Several parameters should not be marked as INTENT(OUT) (they aren't in the MPI-3 standard). * Added missing PMPI F08 OMPI interfaces This commit was SVN r31049. The following Trac tickets were found above: Ticket 4372 --> https://svn.open-mpi.org/trac/ompi/ticket/4372 --- .../use-mpi-f08/mpi-f-interfaces-bind.h | 8 +- .../use-mpi-f08/pmpi-f-interfaces-bind.h | 154 +++++++++++++++++- 2 files changed, 155 insertions(+), 7 deletions(-) diff --git a/ompi/mpi/fortran/use-mpi-f08/mpi-f-interfaces-bind.h b/ompi/mpi/fortran/use-mpi-f08/mpi-f-interfaces-bind.h index 3627f4d13b..15bc1010c4 100644 --- a/ompi/mpi/fortran/use-mpi-f08/mpi-f-interfaces-bind.h +++ b/ompi/mpi/fortran/use-mpi-f08/mpi-f-interfaces-bind.h @@ -2220,7 +2220,7 @@ subroutine ompi_get_accumulate_f(origin_addr,origin_count,origin_datatype, & OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: origin_addr INTEGER, INTENT(IN) :: origin_count, result_count, target_rank, target_count INTEGER, INTENT(IN) :: origin_datatype - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(OUT) :: result_addr + OMPI_FORTRAN_IGNORE_TKR_TYPE :: result_addr INTEGER, INTENT(IN) :: result_datatype INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: target_disp INTEGER, INTENT(IN) :: target_datatype @@ -2240,7 +2240,7 @@ subroutine ompi_rget_accumulate_f(origin_addr,origin_count,origin_datatype, & OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: origin_addr INTEGER, INTENT(IN) :: origin_count, result_count, target_rank, target_count INTEGER, INTENT(IN) :: origin_datatype - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(OUT) :: result_addr + OMPI_FORTRAN_IGNORE_TKR_TYPE :: result_addr INTEGER, INTENT(IN) :: result_datatype INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: target_disp INTEGER, INTENT(IN) :: target_datatype @@ -2294,7 +2294,7 @@ subroutine ompi_compare_and_swap_f(origin_addr,compare_addr,result_addr, & use :: mpi_f08_types, only : MPI_ADDRESS_KIND implicit none OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: origin_addr, compare_addr - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(OUT) :: result_addr + OMPI_FORTRAN_IGNORE_TKR_TYPE :: result_addr INTEGER, INTENT(IN) :: datatype INTEGER, INTENT(IN) :: target_rank INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: target_disp @@ -2308,7 +2308,7 @@ subroutine ompi_fetch_and_op_f(origin_addr,result_addr,datatype,target_rank, & use :: mpi_f08_types, only : MPI_ADDRESS_KIND implicit none OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: origin_addr - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(OUT) :: result_addr + OMPI_FORTRAN_IGNORE_TKR_TYPE :: result_addr INTEGER, INTENT(IN) :: datatype INTEGER, INTENT(IN) :: target_rank INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: target_disp diff --git a/ompi/mpi/fortran/use-mpi-f08/pmpi-f-interfaces-bind.h b/ompi/mpi/fortran/use-mpi-f08/pmpi-f-interfaces-bind.h index bf2a601680..b2ed950334 100644 --- a/ompi/mpi/fortran/use-mpi-f08/pmpi-f-interfaces-bind.h +++ b/ompi/mpi/fortran/use-mpi-f08/pmpi-f-interfaces-bind.h @@ -1743,9 +1743,6 @@ subroutine pompi_free_mem_f(base,ierror) & BIND(C, name="pompi_free_mem_f") use :: mpi_f08_types, only : MPI_ADDRESS_KIND implicit none - !$PRAGMA IGNORE_TKR base - !DIR$ IGNORE_TKR base - !IBM* IGNORE_TKR base INTEGER(MPI_ADDRESS_KIND), DIMENSION(*) OMPI_ASYNCHRONOUS :: base INTEGER, INTENT(OUT) :: ierror end subroutine pompi_free_mem_f @@ -2017,6 +2014,24 @@ subroutine pompi_accumulate_f(origin_addr,origin_count,origin_datatype, & INTEGER, INTENT(OUT) :: ierror end subroutine pompi_accumulate_f +subroutine pompi_raccumulate_f(origin_addr,origin_count,origin_datatype, & + target_rank,target_disp, & + target_count,target_datatype,op,win, & + request,ierror) & + BIND(C, name="pompi_raccumulate_f") + use :: mpi_f08_types, only : MPI_ADDRESS_KIND + implicit none + OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: origin_addr + INTEGER, INTENT(IN) :: origin_count, target_rank, target_count + INTEGER, INTENT(IN) :: origin_datatype + INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: target_disp + INTEGER, INTENT(IN) :: target_datatype + INTEGER, INTENT(IN) :: op + INTEGER, INTENT(IN) :: win + INTEGER, INTENT(OUT) :: request + INTEGER, INTENT(OUT) :: ierror +end subroutine pompi_raccumulate_f + subroutine pompi_get_f(origin_addr,origin_count,origin_datatype,target_rank, & target_disp,target_count,target_datatype,win,ierror) & BIND(C, name="pompi_get_f") @@ -2031,6 +2046,63 @@ subroutine pompi_get_f(origin_addr,origin_count,origin_datatype,target_rank, & INTEGER, INTENT(OUT) :: ierror end subroutine pompi_get_f +subroutine pompi_rget_f(origin_addr,origin_count,origin_datatype,target_rank, & + target_disp,target_count,target_datatype,win,request, & + ierror) & + BIND(C, name="pompi_rget_f") + use :: mpi_f08_types, only : MPI_ADDRESS_KIND + implicit none + OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: origin_addr + INTEGER, INTENT(IN) :: origin_count, target_rank, target_count + INTEGER, INTENT(IN) :: origin_datatype + INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: target_disp + INTEGER, INTENT(IN) :: target_datatype + INTEGER, INTENT(IN) :: win + INTEGER, INTENT(OUT) :: request + INTEGER, INTENT(OUT) :: ierror +end subroutine pompi_rget_f + +subroutine pompi_get_accumulate_f(origin_addr,origin_count,origin_datatype, & + result_addr,result_count,result_datatype, & + target_rank,target_disp, & + target_count,target_datatype,op,win, & + ierror) & + BIND(C, name="pompi_get_accumulate_f") + use :: mpi_f08_types, only : MPI_ADDRESS_KIND + implicit none + OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: origin_addr + INTEGER, INTENT(IN) :: origin_count, result_count, target_rank, target_count + INTEGER, INTENT(IN) :: origin_datatype + OMPI_FORTRAN_IGNORE_TKR_TYPE :: result_addr + INTEGER, INTENT(IN) :: result_datatype + INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: target_disp + INTEGER, INTENT(IN) :: target_datatype + INTEGER, INTENT(IN) :: op + INTEGER, INTENT(IN) :: win + INTEGER, INTENT(OUT) :: ierror +end subroutine pompi_get_accumulate_f + +subroutine pompi_rget_accumulate_f(origin_addr,origin_count,origin_datatype, & + result_addr,result_count,result_datatype, & + target_rank,target_disp, & + target_count,target_datatype,op,win, & + request,ierror) & + BIND(C, name="pompi_rget_accumulate_f") + use :: mpi_f08_types, only : MPI_ADDRESS_KIND + implicit none + OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: origin_addr + INTEGER, INTENT(IN) :: origin_count, result_count, target_rank, target_count + INTEGER, INTENT(IN) :: origin_datatype + OMPI_FORTRAN_IGNORE_TKR_TYPE :: result_addr + INTEGER, INTENT(IN) :: result_datatype + INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: target_disp + INTEGER, INTENT(IN) :: target_datatype + INTEGER, INTENT(IN) :: op + INTEGER, INTENT(IN) :: win + INTEGER, INTENT(OUT) :: request + INTEGER, INTENT(OUT) :: ierror +end subroutine pompi_rget_accumulate_f + subroutine pompi_put_f(origin_addr,origin_count,origin_datatype,target_rank, & target_disp,target_count,target_datatype,win,ierror) & BIND(C, name="pompi_put_f") @@ -2045,6 +2117,22 @@ subroutine pompi_put_f(origin_addr,origin_count,origin_datatype,target_rank, & INTEGER, INTENT(OUT) :: ierror end subroutine pompi_put_f +subroutine pompi_rput_f(origin_addr,origin_count,origin_datatype,target_rank, & + target_disp,target_count,target_datatype,win,request, & + ierror) & + BIND(C, name="pompi_rput_f") + use :: mpi_f08_types, only : MPI_ADDRESS_KIND + implicit none + OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: origin_addr + INTEGER, INTENT(IN) :: origin_count, target_rank, target_count + INTEGER, INTENT(IN) :: origin_datatype + INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: target_disp + INTEGER, INTENT(IN) :: target_datatype + INTEGER, INTENT(IN) :: win + INTEGER, INTENT(OUT) :: request + INTEGER, INTENT(OUT) :: ierror +end subroutine pompi_rput_f + subroutine pompi_win_complete_f(win,ierror) & BIND(C, name="pompi_win_complete_f") implicit none @@ -2052,6 +2140,36 @@ subroutine pompi_win_complete_f(win,ierror) & INTEGER, INTENT(OUT) :: ierror end subroutine pompi_win_complete_f +subroutine pompi_compare_and_swap_f(origin_addr,compare_addr,result_addr, & + datatype,target_rank,target_disp, win, & + ierror) & + BIND(C, name="pompi_compare_and_swap_f") + use :: mpi_f08_types, only : MPI_ADDRESS_KIND + implicit none + OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: origin_addr, compare_addr + OMPI_FORTRAN_IGNORE_TKR_TYPE :: result_addr + INTEGER, INTENT(IN) :: datatype + INTEGER, INTENT(IN) :: target_rank + INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: target_disp + INTEGER, INTENT(IN) :: win + INTEGER, INTENT(OUT) :: ierror +end subroutine pompi_compare_and_swap_f + +subroutine pompi_fetch_and_op_f(origin_addr,result_addr,datatype,target_rank, & + target_disp,op,win,ierror) & + BIND(C, name="pompi_fetch_and_op_f") + use :: mpi_f08_types, only : MPI_ADDRESS_KIND + implicit none + OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: origin_addr + OMPI_FORTRAN_IGNORE_TKR_TYPE :: result_addr + INTEGER, INTENT(IN) :: datatype + INTEGER, INTENT(IN) :: target_rank + INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: target_disp + INTEGER, INTENT(IN) :: op + INTEGER, INTENT(IN) :: win + INTEGER, INTENT(OUT) :: ierror +end subroutine pompi_fetch_and_op_f + subroutine pompi_win_create_f(base,size,disp_unit,info,comm,win,ierror) & BIND(C, name="pompi_win_create_f") use :: mpi_f08_types, only : MPI_ADDRESS_KIND @@ -2065,6 +2183,36 @@ subroutine pompi_win_create_f(base,size,disp_unit,info,comm,win,ierror) & INTEGER, INTENT(OUT) :: ierror end subroutine pompi_win_create_f +subroutine pompi_win_flush_f(rank,win,ierror) & + BIND(C, name="pompi_win_flush_f") + implicit none + INTEGER, INTENT(IN) :: rank + INTEGER, INTENT(IN) :: win + INTEGER, INTENT(OUT) :: ierror +end subroutine pompi_win_flush_f + +subroutine pompi_win_flush_all_f(win,ierror) & + BIND(C, name="pompi_win_flush_all_f") + implicit none + INTEGER, INTENT(IN) :: win + INTEGER, INTENT(OUT) :: ierror +end subroutine pompi_win_flush_all_f + +subroutine pompi_win_flush_local_f(rank,win,ierror) & + BIND(C, name="pompi_win_flush_local_f") + implicit none + INTEGER, INTENT(IN) :: rank + INTEGER, INTENT(IN) :: win + INTEGER, INTENT(OUT) :: ierror +end subroutine pompi_win_flush_local_f + +subroutine pompi_win_flush_local_all_f(win,ierror) & + BIND(C, name="pompi_win_flush_local_all_f") + implicit none + INTEGER, INTENT(IN) :: win + INTEGER, INTENT(OUT) :: ierror +end subroutine pompi_win_flush_local_all_f + subroutine pompi_win_fence_f(assert,win,ierror) & BIND(C, name="pompi_win_fence_f") implicit none