1
1

osc: add fortran bindings for new RMA function

I have only checked that these bindings compile without warnings. They
appear to work with both intel's compilers and gfortran.

cmr=v1.7.5:reviewer=jsquyres

This commit was SVN r31010.
Этот коммит содержится в:
Nathan Hjelm 2014-03-11 23:02:27 +00:00
родитель 5be13abcc0
Коммит c4de1aa1ce
43 изменённых файлов: 3084 добавлений и 6 удалений

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

@ -2930,6 +2930,29 @@ subroutine MPI_Accumulate_f08(origin_addr,origin_count,origin_datatype,target_ra
end subroutine MPI_Accumulate_f08
end interface MPI_Accumulate
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
!DEC$ ATTRIBUTES NO_ARG_CHECK :: origin_addr
!GCC$ ATTRIBUTES NO_ARG_CHECK :: origin_addr
!$PRAGMA IGNORE_TKR origin_addr
!DIR$ IGNORE_TKR origin_addr
!IBM* IGNORE_TKR origin_addr
OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: 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_Get
subroutine MPI_Get_f08(origin_addr,origin_count,origin_datatype,target_rank, &
target_disp,target_count,target_datatype,win,ierror)
@ -2950,6 +2973,76 @@ subroutine MPI_Get_f08(origin_addr,origin_count,origin_datatype,target_rank, &
end subroutine MPI_Get_f08
end interface MPI_Get
interface MPI_Rget
subroutine MPI_Rget_f08(origin_addr,origin_count,origin_datatype,target_rank, &
target_disp,target_count,target_datatype,win,request,ierror)
use :: mpi_f08_types, only : MPI_Datatype, MPI_Request, MPI_Win, MPI_ADDRESS_KIND
implicit none
!DEC$ ATTRIBUTES NO_ARG_CHECK :: origin_addr
!GCC$ ATTRIBUTES NO_ARG_CHECK :: origin_addr
!$PRAGMA IGNORE_TKR origin_addr
!DIR$ IGNORE_TKR origin_addr
!IBM* IGNORE_TKR origin_addr
OMPI_FORTRAN_IGNORE_TKR_TYPE :: 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
TYPE(MPI_Request), INTENT(OUT) :: request
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Rget_f08
end interface MPI_Rget
interface MPI_Get_accumulate
subroutine MPI_Get_accumulate_f08(origin_addr,origin_count,origin_datatype,result_addr, &
result_count,result_datatype,target_rank,target_disp, &
target_count,target_datatype,op,win,ierror)
use :: mpi_f08_types, only : MPI_Datatype, MPI_Op, MPI_Win, MPI_ADDRESS_KIND
implicit none
!DEC$ ATTRIBUTES NO_ARG_CHECK :: origin_addr,target_addr
!GCC$ ATTRIBUTES NO_ARG_CHECK :: origin_addr,target_addr
!$PRAGMA IGNORE_TKR origin_addr,target_addr
!DIR$ IGNORE_TKR origin_addr,target_addr
!IBM* IGNORE_TKR origin_addr,target_addr
OMPI_FORTRAN_IGNORE_TKR_TYPE :: origin_addr
INTEGER, INTENT(IN) :: origin_count, result_count, target_rank, target_count
TYPE(MPI_Datatype), INTENT(IN) :: origin_datatype
OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(OUT) :: result_addr
TYPE(MPI_Datatype), INTENT(IN) :: result_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
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Get_accumulate_f08
end interface MPI_Get_accumulate
interface MPI_Rget_accumulate
subroutine MPI_Rget_accumulate_f08(origin_addr,origin_count,origin_datatype,result_addr, &
result_count,result_datatype,target_rank,target_disp, &
target_count,target_datatype,op,win,request,ierror)
use :: mpi_f08_types, only : MPI_Datatype, MPI_Op, MPI_Request, MPI_Win, MPI_ADDRESS_KIND
implicit none
!DEC$ ATTRIBUTES NO_ARG_CHECK :: origin_addr,target_addr
!GCC$ ATTRIBUTES NO_ARG_CHECK :: origin_addr,target_addr
!$PRAGMA IGNORE_TKR origin_addr,target_addr
!DIR$ IGNORE_TKR origin_addr,target_addr
!IBM* IGNORE_TKR origin_addr,target_addr
OMPI_FORTRAN_IGNORE_TKR_TYPE :: origin_addr
INTEGER, INTENT(IN) :: origin_count, result_count, target_rank, target_count
TYPE(MPI_Datatype), INTENT(IN) :: origin_datatype
OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(OUT) :: result_addr
TYPE(MPI_Datatype), INTENT(IN) :: result_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_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)
@ -2970,6 +3063,68 @@ subroutine MPI_Put_f08(origin_addr,origin_count,origin_datatype,target_rank, &
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)
use :: mpi_f08_types, only : MPI_Datatype, MPI_Win, MPI_Request, MPI_ADDRESS_KIND
implicit none
!DEC$ ATTRIBUTES NO_ARG_CHECK :: origin_addr
!GCC$ ATTRIBUTES NO_ARG_CHECK :: origin_addr
!$PRAGMA IGNORE_TKR origin_addr
!DIR$ IGNORE_TKR origin_addr
!IBM* IGNORE_TKR origin_addr
OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: 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
TYPE(MPI_Request), INTENT(OUT) :: request
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Rput_f08
end interface MPI_Rput
interface MPI_Fetch_and_op
subroutine MPI_Fetch_and_op_f08(origin_addr,result_addr,datatype,target_rank, &
target_disp,op,win,ierror)
use :: mpi_f08_types, only : MPI_Datatype, MPI_Op, MPI_Win, MPI_ADDRESS_KIND
implicit none
!DEC$ ATTRIBUTES NO_ARG_CHECK :: origin_addr,result_addr
!GCC$ ATTRIBUTES NO_ARG_CHECK :: origin_addr,result_addr
!$PRAGMA IGNORE_TKR origin_addr,result_addr
!DIR$ IGNORE_TKR origin_addr,result_addr
!IBM* IGNORE_TKR origin_addr,result_addr
OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: origin_addr
OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(OUT) :: result_addr
TYPE(MPI_Datatype), INTENT(IN) :: datatype
INTEGER, INTENT(IN) :: target_rank
INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: target_disp
TYPE(MPI_Op), INTENT(IN) :: op
TYPE(MPI_Win), INTENT(IN) :: win
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Fetch_and_op_f08
end interface MPI_Fetch_and_op
interface MPI_Compare_and_swap
subroutine MPI_Compare_and_swap_f08(origin_addr,compare_addr,result_addr,datatype, &
target_rank,target_disp,win,ierror)
use :: mpi_f08_types, only : MPI_Datatype, MPI_Win, MPI_ADDRESS_KIND
implicit none
!DEC$ ATTRIBUTES NO_ARG_CHECK :: origin_addr,compare_addr,result_addr
!GCC$ ATTRIBUTES NO_ARG_CHECK :: origin_addr,compare_addr,result_addr
!$PRAGMA IGNORE_TKR origin_addr,compare_addr,result_addr
!DIR$ IGNORE_TKR origin_addr,compare_addr,result_addr
!IBM* IGNORE_TKR origin_addr,compare_addr,result_addr
OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: origin_addr,compare_addr
OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(OUT) :: result_addr
TYPE(MPI_Datatype), INTENT(IN) :: datatype
INTEGER, INTENT(IN) :: target_rank
INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: target_disp
TYPE(MPI_Win), INTENT(IN) :: win
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Compare_and_swap_f08
end interface MPI_Compare_and_swap
interface MPI_Win_complete
subroutine MPI_Win_complete_f08(win,ierror)
use :: mpi_f08_types, only : MPI_Info, MPI_Comm, MPI_Win, MPI_ADDRESS_KIND
@ -3088,6 +3243,44 @@ subroutine MPI_Win_wait_f08(win,ierror)
end subroutine MPI_Win_wait_f08
end interface MPI_Win_wait
interface MPI_Win_flush
subroutine MPI_Win_flush_f08(rank,win,ierror)
use :: mpi_f08_types, only : MPI_Win
implicit none
INTEGER, INTENT(IN) :: rank
TYPE(MPI_Win), INTENT(IN) :: win
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Win_flush_f08
end interface MPI_Win_flush
interface MPI_Win_flush_local
subroutine MPI_Win_flush_local_f08(rank,win,ierror)
use :: mpi_f08_types, only : MPI_Win
implicit none
INTEGER, INTENT(IN) :: rank
TYPE(MPI_Win), INTENT(IN) :: win
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Win_flush_local_f08
end interface MPI_Win_flush_local
interface MPI_Win_flush_all_local
subroutine MPI_Win_flush_all_local_f08(win,ierror)
use :: mpi_f08_types, only : MPI_Win
implicit none
TYPE(MPI_Win), INTENT(IN) :: win
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Win_flush_all_local_f08
end interface MPI_Win_flush_all_local
interface MPI_Win_flush_all
subroutine MPI_Win_flush_all_f08(win,ierror)
use :: mpi_f08_types, only : MPI_Win
implicit none
TYPE(MPI_Win), INTENT(IN) :: win
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Win_flush_all_f08
end interface MPI_Win_flush_all
interface MPI_Grequest_complete
subroutine MPI_Grequest_complete_f08(request,ierror)
use :: mpi_f08_types, only : MPI_Request

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

@ -2931,6 +2931,29 @@ subroutine PMPI_Accumulate_f08(origin_addr,origin_count,origin_datatype,target_r
end subroutine PMPI_Accumulate_f08
end interface PMPI_Accumulate
interface PMPI_Raccumulate
subroutine PMPI_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
!DEC$ ATTRIBUTES NO_ARG_CHECK :: origin_addr
!GCC$ ATTRIBUTES NO_ARG_CHECK :: origin_addr
!$PRAGMA IGNORE_TKR origin_addr
!DIR$ IGNORE_TKR origin_addr
!IBM* IGNORE_TKR origin_addr
OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: 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 PMPI_Raccumulate_f08
end interface PMPI_Raccumulate
interface PMPI_Get
subroutine PMPI_Get_f08(origin_addr,origin_count,origin_datatype,target_rank, &
target_disp,target_count,target_datatype,win,ierror)
@ -2951,6 +2974,76 @@ subroutine PMPI_Get_f08(origin_addr,origin_count,origin_datatype,target_rank, &
end subroutine PMPI_Get_f08
end interface PMPI_Get
interface PMPI_Rget
subroutine PMPI_Rget_f08(origin_addr,origin_count,origin_datatype,target_rank, &
target_disp,target_count,target_datatype,win,request,ierror)
use :: mpi_f08_types, only : MPI_Datatype, MPI_Request, MPI_Win, MPI_ADDRESS_KIND
implicit none
!DEC$ ATTRIBUTES NO_ARG_CHECK :: origin_addr
!GCC$ ATTRIBUTES NO_ARG_CHECK :: origin_addr
!$PRAGMA IGNORE_TKR origin_addr
!DIR$ IGNORE_TKR origin_addr
!IBM* IGNORE_TKR origin_addr
OMPI_FORTRAN_IGNORE_TKR_TYPE :: 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
TYPE(MPI_Request), INTENT(OUT) :: request
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine PMPI_Rget_f08
end interface PMPI_Rget
interface PMPI_Get_accumulate
subroutine PMPI_Get_accumulate_f08(origin_addr,origin_count,origin_datatype,result_addr, &
result_count,result_datatype,target_rank,target_disp, &
target_count,target_datatype,op,win,ierror)
use :: mpi_f08_types, only : MPI_Datatype, MPI_Op, MPI_Win, MPI_ADDRESS_KIND
implicit none
!DEC$ ATTRIBUTES NO_ARG_CHECK :: origin_addr,target_addr
!GCC$ ATTRIBUTES NO_ARG_CHECK :: origin_addr,target_addr
!$PRAGMA IGNORE_TKR origin_addr,target_addr
!DIR$ IGNORE_TKR origin_addr,target_addr
!IBM* IGNORE_TKR origin_addr,target_addr
OMPI_FORTRAN_IGNORE_TKR_TYPE :: origin_addr
INTEGER, INTENT(IN) :: origin_count, result_count, target_rank, target_count
TYPE(MPI_Datatype), INTENT(IN) :: origin_datatype
OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(OUT) :: result_addr
TYPE(MPI_Datatype), INTENT(IN) :: result_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
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine PMPI_Get_accumulate_f08
end interface PMPI_Get_accumulate
interface PMPI_Rget_accumulate
subroutine PMPI_Rget_accumulate_f08(origin_addr,origin_count,origin_datatype,result_addr, &
result_count,result_datatype,target_rank,target_disp, &
target_count,target_datatype,op,win,request,ierror)
use :: mpi_f08_types, only : MPI_Datatype, MPI_Op, MPI_Request, MPI_Win, MPI_ADDRESS_KIND
implicit none
!DEC$ ATTRIBUTES NO_ARG_CHECK :: origin_addr,target_addr
!GCC$ ATTRIBUTES NO_ARG_CHECK :: origin_addr,target_addr
!$PRAGMA IGNORE_TKR origin_addr,target_addr
!DIR$ IGNORE_TKR origin_addr,target_addr
!IBM* IGNORE_TKR origin_addr,target_addr
OMPI_FORTRAN_IGNORE_TKR_TYPE :: origin_addr
INTEGER, INTENT(IN) :: origin_count, result_count, target_rank, target_count
TYPE(MPI_Datatype), INTENT(IN) :: origin_datatype
OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(OUT) :: result_addr
TYPE(MPI_Datatype), INTENT(IN) :: result_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 PMPI_Rget_accumulate_f08
end interface PMPI_Rget_accumulate
interface PMPI_Put
subroutine PMPI_Put_f08(origin_addr,origin_count,origin_datatype,target_rank, &
target_disp,target_count,target_datatype,win,ierror)
@ -2971,6 +3064,68 @@ subroutine PMPI_Put_f08(origin_addr,origin_count,origin_datatype,target_rank, &
end subroutine PMPI_Put_f08
end interface PMPI_Put
interface PMPI_Rput
subroutine PMPI_Rput_f08(origin_addr,origin_count,origin_datatype,target_rank, &
target_disp,target_count,target_datatype,win,request,ierror)
use :: mpi_f08_types, only : MPI_Datatype, MPI_Win, MPI_Request, MPI_ADDRESS_KIND
implicit none
!DEC$ ATTRIBUTES NO_ARG_CHECK :: origin_addr
!GCC$ ATTRIBUTES NO_ARG_CHECK :: origin_addr
!$PRAGMA IGNORE_TKR origin_addr
!DIR$ IGNORE_TKR origin_addr
!IBM* IGNORE_TKR origin_addr
OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: 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
TYPE(MPI_Request), INTENT(OUT) :: request
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine PMPI_Rput_f08
end interface PMPI_Rput
interface PMPI_Fetch_and_op
subroutine PMPI_Fetch_and_op_f08(origin_addr,result_addr,datatype,target_rank, &
target_disp,op,win,ierror)
use :: mpi_f08_types, only : MPI_Datatype, MPI_Op, MPI_Win, MPI_ADDRESS_KIND
implicit none
!DEC$ ATTRIBUTES NO_ARG_CHECK :: origin_addr,result_addr
!GCC$ ATTRIBUTES NO_ARG_CHECK :: origin_addr,result_addr
!$PRAGMA IGNORE_TKR origin_addr,result_addr
!DIR$ IGNORE_TKR origin_addr,result_addr
!IBM* IGNORE_TKR origin_addr,result_addr
OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: origin_addr
OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(OUT) :: result_addr
TYPE(MPI_Datatype), INTENT(IN) :: datatype
INTEGER, INTENT(IN) :: target_rank
INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: target_disp
TYPE(MPI_Op), INTENT(IN) :: op
TYPE(MPI_Win), INTENT(IN) :: win
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine PMPI_Fetch_and_op_f08
end interface PMPI_Fetch_and_op
interface PMPI_Compare_and_swap
subroutine PMPI_Compare_and_swap_f08(origin_addr,compare_addr,result_addr,datatype, &
target_rank,target_disp,win,ierror)
use :: mpi_f08_types, only : MPI_Datatype, MPI_Win, MPI_ADDRESS_KIND
implicit none
!DEC$ ATTRIBUTES NO_ARG_CHECK :: origin_addr,compare_addr,result_addr
!GCC$ ATTRIBUTES NO_ARG_CHECK :: origin_addr,compare_addr,result_addr
!$PRAGMA IGNORE_TKR origin_addr,compare_addr,result_addr
!DIR$ IGNORE_TKR origin_addr,compare_addr,result_addr
!IBM* IGNORE_TKR origin_addr,compare_addr,result_addr
OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: origin_addr,compare_addr
OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(OUT) :: result_addr
TYPE(MPI_Datatype), INTENT(IN) :: datatype
INTEGER, INTENT(IN) :: target_rank
INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: target_disp
TYPE(MPI_Win), INTENT(IN) :: win
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine PMPI_Compare_and_swap_f08
end interface PMPI_Compare_and_swap
interface PMPI_Win_complete
subroutine PMPI_Win_complete_f08(win,ierror)
use :: mpi_f08_types, only : MPI_Info, MPI_Comm, MPI_Win, MPI_ADDRESS_KIND
@ -3089,6 +3244,44 @@ subroutine PMPI_Win_wait_f08(win,ierror)
end subroutine PMPI_Win_wait_f08
end interface PMPI_Win_wait
interface PMPI_Win_flush
subroutine PMPI_Win_flush_f08(rank,win,ierror)
use :: mpi_f08_types, only : MPI_Win
implicit none
INTEGER, INTENT(IN) :: rank
TYPE(MPI_Win), INTENT(IN) :: win
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine PMPI_Win_flush_f08
end interface PMPI_Win_flush
interface PMPI_Win_flush_local
subroutine PMPI_Win_flush_local_f08(rank,win,ierror)
use :: mpi_f08_types, only : MPI_Win
implicit none
INTEGER, INTENT(IN) :: rank
TYPE(MPI_Win), INTENT(IN) :: win
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine PMPI_Win_flush_local_f08
end interface PMPI_Win_flush_local
interface PMPI_Win_flush_all_local
subroutine PMPI_Win_flush_all_local_f08(win,ierror)
use :: mpi_f08_types, only : MPI_Win
implicit none
TYPE(MPI_Win), INTENT(IN) :: win
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine PMPI_Win_flush_all_local_f08
end interface PMPI_Win_flush_all_local
interface PMPI_Win_flush_all
subroutine PMPI_Win_flush_all_f08(win,ierror)
use :: mpi_f08_types, only : MPI_Win
implicit none
TYPE(MPI_Win), INTENT(IN) :: win
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine PMPI_Win_flush_all_f08
end interface PMPI_Win_flush_all
interface PMPI_Grequest_complete
subroutine PMPI_Grequest_complete_f08(request,ierror)
use :: mpi_f08_types, only : MPI_Request

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

@ -12,7 +12,7 @@
# Copyright (c) 2006-2012 Cisco Systems, Inc. All rights reserved.
# Copyright (c) 2011-2012 Inria. All rights reserved.
# Copyright (c) 2011-2012 Universite Bordeaux 1
# Copyright (c) 2013 Los Alamos National Security, LLC. All rights
# Copyright (c) 2013-2014 Los Alamos National Security, LLC. All rights
# reserved.
# $COPYRIGHT$
#
@ -332,8 +332,15 @@ libmpi_mpifh_la_SOURCES += \
wtick_f.c \
wtime_f.c \
accumulate_f.c \
raccumulate_f.c \
get_f.c \
rget_f.c \
get_accumulate_f.c \
rget_accumulate_f.c \
put_f.c \
rput_f.c \
compare_and_swap_f.c \
fetch_and_op_f.c \
win_call_errhandler_f.c \
win_complete_f.c \
win_create_errhandler_f.c \
@ -355,7 +362,11 @@ libmpi_mpifh_la_SOURCES += \
win_start_f.c \
win_test_f.c \
win_unlock_f.c \
win_wait_f.c
win_wait_f.c \
win_flush_f.c \
win_flush_all_f.c \
win_flush_local_f.c \
win_flush_local_all_f.c
if OMPI_PROVIDE_MPI_FILE_INTERFACE
libmpi_mpifh_la_SOURCES += \

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

@ -0,0 +1,87 @@
/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */
/*
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
* University Research and Technology
* Corporation. All rights reserved.
* Copyright (c) 2004-2005 The University of Tennessee and The University
* of Tennessee Research Foundation. All rights
* reserved.
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
* University of Stuttgart. All rights reserved.
* Copyright (c) 2004-2005 The Regents of the University of California.
* All rights reserved.
* Copyright (c) 2011-2012 Cisco Systems, Inc. All rights reserved.
* Copyright (c) 2014 Los Alamos National Security, LLC. All rights
* reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow
*
* $HEADER$
*/
#include "ompi_config.h"
#include "ompi/mpi/fortran/mpif-h/bindings.h"
#include "ompi/mpi/fortran/base/constants.h"
#if OPAL_HAVE_WEAK_SYMBOLS && OMPI_PROFILE_LAYER
#pragma weak PMPI_COMPARE_AND_SWAP = ompi_compare_and_swap_f
#pragma weak pmpi_compare_and_swap = ompi_compare_and_swap_f
#pragma weak pmpi_compare_and_swap_ = ompi_compare_and_swap_f
#pragma weak pmpi_compare_and_swap__ = ompi_compare_and_swap_f
#pragma weak PMPI_Compare_and_swap_f = ompi_compare_and_swap_f
#pragma weak PMPI_Compare_and_swap_f08 = ompi_compare_and_swap_f
#elif OMPI_PROFILE_LAYER
OMPI_GENERATE_F77_BINDINGS (PMPI_COMPARE_AND_SWAP,
pmpi_compare_and_swap,
pmpi_compare_and_swap_,
pmpi_compare_and_swap__,
pompi_compare_and_swap_f,
(char *origin_addr, char *compare_addr, char *result_addr, MPI_Fint *datatype, MPI_Fint *target_rank, MPI_Aint *target_disp, MPI_Fint *win, MPI_Fint *ierr),
(origin_addr, compare_addr, result_addr, datatype, target_rank, target_disp, win, ierr) )
#endif
#if OPAL_HAVE_WEAK_SYMBOLS
#pragma weak MPI_COMPARE_AND_SWAP = ompi_compare_and_swap_f
#pragma weak mpi_compare_and_swap = ompi_compare_and_swap_f
#pragma weak mpi_compare_and_swap_ = ompi_compare_and_swap_f
#pragma weak mpi_compare_and_swap__ = ompi_compare_and_swap_f
#pragma weak MPI_Compare_and_swap_f = ompi_compare_and_swap_f
#pragma weak MPI_Compare_and_swap_f08 = ompi_compare_and_swap_f
#endif
#if ! OPAL_HAVE_WEAK_SYMBOLS && ! OMPI_PROFILE_LAYER
OMPI_GENERATE_F77_BINDINGS (MPI_COMPARE_AND_SWAP,
mpi_compare_and_swap,
mpi_compare_and_swap_,
mpi_compare_and_swap__,
ompi_compare_and_swap_f,
(char *origin_addr, char *compare_addr, char *result_addr, MPI_Fint *datatype, MPI_Fint *target_rank, MPI_Aint *target_disp, MPI_Fint *win, MPI_Fint *ierr),
(origin_addr, compare_addr, result_addr, datatype, target_rank, target_disp, win, ierr) )
#endif
#if OMPI_PROFILE_LAYER && ! OPAL_HAVE_WEAK_SYMBOLS
#include "ompi/mpi/fortran/mpif-h/profile/defines.h"
#endif
void ompi_compare_and_swap_f(char *origin_addr, char *compare_addr, char *result_addr,
MPI_Fint *datatype, MPI_Fint *target_rank, MPI_Aint *target_disp,
MPI_Fint *win, MPI_Fint *ierr)
{
int c_ierr;
MPI_Datatype c_datatype = MPI_Type_f2c(*datatype);
MPI_Win c_win = MPI_Win_f2c(*win);
c_ierr = MPI_Compare_and_swap(OMPI_F2C_BOTTOM(origin_addr),
OMPI_F2C_BOTTOM(compare_addr),
OMPI_F2C_BOTTOM(result_addr),
c_datatype,
OMPI_FINT_2_INT(*target_rank),
*target_disp, c_win);
if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr);
}

87
ompi/mpi/fortran/mpif-h/fetch_and_op_f.c Обычный файл
Просмотреть файл

@ -0,0 +1,87 @@
/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */
/*
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
* University Research and Technology
* Corporation. All rights reserved.
* Copyright (c) 2004-2005 The University of Tennessee and The University
* of Tennessee Research Foundation. All rights
* reserved.
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
* University of Stuttgart. All rights reserved.
* Copyright (c) 2004-2005 The Regents of the University of California.
* All rights reserved.
* Copyright (c) 2011-2012 Cisco Systems, Inc. All rights reserved.
* Copyright (c) 2014 Los Alamos National Security, LLC. All rights
* reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow
*
* $HEADER$
*/
#include "ompi_config.h"
#include "ompi/mpi/fortran/mpif-h/bindings.h"
#include "ompi/mpi/fortran/base/constants.h"
#if OPAL_HAVE_WEAK_SYMBOLS && OMPI_PROFILE_LAYER
#pragma weak PMPI_FETCH_AND_OP = ompi_fetch_and_op_f
#pragma weak pmpi_fetch_and_op = ompi_fetch_and_op_f
#pragma weak pmpi_fetch_and_op_ = ompi_fetch_and_op_f
#pragma weak pmpi_fetch_and_op__ = ompi_fetch_and_op_f
#pragma weak PMPI_Fetch_and_op_f = ompi_fetch_and_op_f
#pragma weak PMPI_Fetch_and_op_f08 = ompi_fetch_and_op_f
#elif OMPI_PROFILE_LAYER
OMPI_GENERATE_F77_BINDINGS (PMPI_FETCH_AND_OP,
pmpi_fetch_and_op,
pmpi_fetch_and_op_,
pmpi_fetch_and_op__,
pompi_fetch_and_op_f,
(char *origin_addr, char *result_addr, MPI_Fint *datatype, MPI_Fint *target_rank, MPI_Aint *target_disp, MPI_Fint *op, MPI_Fint *win, MPI_Fint *ierr),
(origin_addr, result_addr, datatype, target_rank, target_disp, op, win, ierr) )
#endif
#if OPAL_HAVE_WEAK_SYMBOLS
#pragma weak MPI_FETCH_AND_OP = ompi_fetch_and_op_f
#pragma weak mpi_fetch_and_op = ompi_fetch_and_op_f
#pragma weak mpi_fetch_and_op_ = ompi_fetch_and_op_f
#pragma weak mpi_fetch_and_op__ = ompi_fetch_and_op_f
#pragma weak MPI_Fetch_and_op_f = ompi_fetch_and_op_f
#pragma weak MPI_Fetch_and_op_f08 = ompi_fetch_and_op_f
#endif
#if ! OPAL_HAVE_WEAK_SYMBOLS && ! OMPI_PROFILE_LAYER
OMPI_GENERATE_F77_BINDINGS (MPI_FETCH_AND_OP,
mpi_fetch_and_op,
mpi_fetch_and_op_,
mpi_fetch_and_op__,
ompi_fetch_and_op_f,
(char *origin_addr, char *result_addr, MPI_Fint *datatype, MPI_Fint *target_rank, MPI_Aint *target_disp, MPI_Fint *op, MPI_Fint *win, MPI_Fint *ierr),
(origin_addr, result_addr, datatype, target_rank, target_disp, op, win, ierr) )
#endif
#if OMPI_PROFILE_LAYER && ! OPAL_HAVE_WEAK_SYMBOLS
#include "ompi/mpi/fortran/mpif-h/profile/defines.h"
#endif
void ompi_fetch_and_op_f(char *origin_addr, char *result_addr, MPI_Fint *datatype,
MPI_Fint *target_rank, MPI_Aint *target_disp,
MPI_Fint *op, MPI_Fint *win, MPI_Fint *ierr)
{
int c_ierr;
MPI_Datatype c_datatype = MPI_Type_f2c(*datatype);
MPI_Win c_win = MPI_Win_f2c(*win);
MPI_Op c_op = MPI_Op_f2c(*op);
c_ierr = MPI_Fetch_and_op(OMPI_F2C_BOTTOM(origin_addr),
OMPI_F2C_BOTTOM(result_addr),
c_datatype,
OMPI_FINT_2_INT(*target_rank),
*target_disp, c_op, c_win);
if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr);
}

97
ompi/mpi/fortran/mpif-h/get_accumulate_f.c Обычный файл
Просмотреть файл

@ -0,0 +1,97 @@
/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */
/*
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
* University Research and Technology
* Corporation. All rights reserved.
* Copyright (c) 2004-2005 The University of Tennessee and The University
* of Tennessee Research Foundation. All rights
* reserved.
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
* University of Stuttgart. All rights reserved.
* Copyright (c) 2004-2005 The Regents of the University of California.
* All rights reserved.
* Copyright (c) 2011-2012 Cisco Systems, Inc. All rights reserved.
* Copyright (c) 2014 Los Alamos National Security, LLC. All rights
* reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow
*
* $HEADER$
*/
#include "ompi_config.h"
#include "ompi/mpi/fortran/mpif-h/bindings.h"
#include "ompi/mpi/fortran/base/constants.h"
#if OPAL_HAVE_WEAK_SYMBOLS && OMPI_PROFILE_LAYER
#pragma weak PMPI_GET_ACCUMULATE = ompi_get_accumulate_f
#pragma weak pmpi_get_accumulate = ompi_get_accumulate_f
#pragma weak pmpi_get_accumulate_ = ompi_get_accumulate_f
#pragma weak pmpi_get_accumulate__ = ompi_get_accumulate_f
#pragma weak PMPI_Get_accumulate_f = ompi_get_accumulate_f
#pragma weak PMPI_Get_accumulate_f08 = ompi_get_accumulate_f
#elif OMPI_PROFILE_LAYER
OMPI_GENERATE_F77_BINDINGS (PMPI_GET_ACCUMULATE,
pmpi_get_accumulate,
pmpi_get_accumulate_,
pmpi_get_accumulate__,
pompi_get_accumulate_f,
(char *origin_addr, MPI_Fint *origin_count, MPI_Fint *origin_datatype, char *result_addr, MPI_Fint *result_count, MPI_Fint *result_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 *ierr),
(origin_addr, origin_count, origin_datatype, result_addr, result_count, result_datatype, target_rank, target_disp, target_count, target_datatype, op, win, ierr) )
#endif
#if OPAL_HAVE_WEAK_SYMBOLS
#pragma weak MPI_GET_ACCUMULATE = ompi_get_accumulate_f
#pragma weak mpi_get_accumulate = ompi_get_accumulate_f
#pragma weak mpi_get_accumulate_ = ompi_get_accumulate_f
#pragma weak mpi_get_accumulate__ = ompi_get_accumulate_f
#pragma weak MPI_Get_accumulate_f = ompi_get_accumulate_f
#pragma weak MPI_Get_accumulate_f08 = ompi_get_accumulate_f
#endif
#if ! OPAL_HAVE_WEAK_SYMBOLS && ! OMPI_PROFILE_LAYER
OMPI_GENERATE_F77_BINDINGS (MPI_GET_ACCUMULATE,
mpi_get_accumulate,
mpi_get_accumulate_,
mpi_get_accumulate__,
ompi_get_accumulate_f,
(char *origin_addr, MPI_Fint *origin_count, MPI_Fint *origin_datatype, char *result_addr, MPI_Fint *result_count, MPI_Fint *result_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 *ierr),
(origin_addr, origin_count, origin_datatype, result_addr, result_count, result_datatype, target_rank, target_disp, target_count, target_datatype, op, win, ierr) )
#endif
#if OMPI_PROFILE_LAYER && ! OPAL_HAVE_WEAK_SYMBOLS
#include "ompi/mpi/fortran/mpif-h/profile/defines.h"
#endif
void ompi_get_accumulate_f(char *origin_addr, MPI_Fint *origin_count,
MPI_Fint *origin_datatype, char *result_addr,
MPI_Fint *result_count, MPI_Fint *result_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 *ierr)
{
int c_ierr;
MPI_Datatype c_origin_datatype = MPI_Type_f2c(*origin_datatype);
MPI_Datatype c_result_datatype = MPI_Type_f2c(*result_datatype);
MPI_Datatype c_target_datatype = MPI_Type_f2c(*target_datatype);
MPI_Win c_win = MPI_Win_f2c(*win);
MPI_Op c_op = MPI_Op_f2c(*op);
c_ierr = MPI_Get_accumulate(OMPI_F2C_BOTTOM(origin_addr),
OMPI_FINT_2_INT(*origin_count),
c_origin_datatype,
OMPI_F2C_BOTTOM(result_addr),
OMPI_FINT_2_INT(*result_count),
c_result_datatype,
OMPI_FINT_2_INT(*target_rank),
*target_disp,
OMPI_FINT_2_INT(*target_count),
c_target_datatype, c_op, c_win);
if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr);
}

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

@ -13,7 +13,7 @@
# Copyright (c) 2009-2012 Cisco Systems, Inc. All rights reserved.
# Copyright (c) 2011-2012 Inria. All rights reserved.
# Copyright (c) 2011-2012 Universite Bordeaux 1
# Copyright (c) 2013 Los Alamos National Security, LLC. All rights
# Copyright (c) 2013-2014 Los Alamos National Security, LLC. All rights
# reserved.
# $COPYRIGHT$
#
@ -302,8 +302,15 @@ nodist_libmpi_mpifh_pmpi_la_SOURCES = \
pwtick_f.c \
pwtime_f.c \
paccumulate_f.c \
praccumulate_f.c \
pget_f.c \
prget_f.c \
pget_accumulate_f.c \
prget_accumulate_f.c \
pput_f.c \
prput_f.c \
pcompare_and_swap_f.c \
pfetch_and_op_f.c \
pwin_call_errhandler_f.c \
pwin_complete_f.c \
pwin_create_errhandler_f.c \
@ -325,7 +332,12 @@ nodist_libmpi_mpifh_pmpi_la_SOURCES = \
pwin_start_f.c \
pwin_test_f.c \
pwin_unlock_f.c \
pwin_wait_f.c
pwin_wait_f.c \
pwin_flush_f.c \
pwin_flush_all_f.c \
pwin_flush_local_f.c \
pwin_flush_local_all_f.c
if OMPI_PROVIDE_MPI_FILE_INTERFACE
nodist_libmpi_mpifh_pmpi_la_SOURCES += \

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

@ -12,7 +12,7 @@
* Copyright (c) 2009-2012 Cisco Systems, Inc. All rights reserved.
* Copyright (c) 2011-2012 Inria. All rights reserved.
* Copyright (c) 2011 Universite Bordeaux 1
* Copyright (c) 2013 Los Alamos National Security, LLC. All rights
* Copyright (c) 2013-2014 Los Alamos National Security, LLC. All rights
* reserved.
* $COPYRIGHT$
*
@ -88,6 +88,7 @@
#define ompi_comm_split_f pompi_comm_split_f
#define ompi_comm_split_type_f pompi_comm_split_type_f
#define ompi_comm_test_inter_f pompi_comm_test_inter_f
#define ompi_compare_and_swap_f pompi_compare_and_swap_f
#define ompi_dims_create_f pompi_dims_create_f
#define ompi_dist_graph_create_f pompi_dist_graph_create_f
#define ompi_dist_graph_create_adjacent_f pompi_dist_graph_create_adjacent_f
@ -101,6 +102,7 @@
#define ompi_error_string_f pompi_error_string_f
#define ompi_exscan_f pompi_exscan_f
#define ompi_f_sync_reg_f pompi_f_sync_reg_f
#define ompi_fetch_and_op_f pompi_fetch_and_op_f
#define ompi_file_call_errhandler_f pompi_file_call_errhandler_f
#define ompi_file_create_errhandler_f pompi_file_create_errhandler_f
#define ompi_file_set_errhandler_f pompi_file_set_errhandler_f
@ -166,6 +168,7 @@
#define ompi_get_elements_f pompi_get_elements_f
#define ompi_get_elements_x_f pompi_get_elements_x_f
#define ompi_get_f pompi_get_f
#define ompi_get_accumulate_f pompi_get_accumulate_f
#define ompi_get_library_version_f pompi_get_library_version_f
#define ompi_get_processor_name_f pompi_get_processor_name_f
#define ompi_get_version_f pompi_get_version_f
@ -258,6 +261,7 @@
#define ompi_publish_name_f pompi_publish_name_f
#define ompi_put_f pompi_put_f
#define ompi_query_thread_f pompi_query_thread_f
#define ompi_raccumulate_f pompi_raccumulate_f
#define ompi_recv_init_f pompi_recv_init_f
#define ompi_recv_f pompi_recv_f
#define ompi_reduce_f pompi_reduce_f
@ -267,6 +271,9 @@
#define ompi_register_datarep_f pompi_register_datarep_f
#define ompi_request_free_f pompi_request_free_f
#define ompi_request_get_status_f pompi_request_get_status_f
#define ompi_rget_f pompi_rget_f
#define ompi_rget_accumulate_f pompi_rget_accumulate_f
#define ompi_rput_f pompi_rput_f
#define ompi_rsend_f pompi_rsend_f
#define ompi_rsend_init_f pompi_rsend_init_f
#define ompi_scan_f pompi_scan_f
@ -342,6 +349,10 @@
#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_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
#define ompi_win_flush_local_f pompi_win_flush_local_f
#define ompi_win_flush_local_all_f pompi_win_flush_local_all_f
#define ompi_win_free_f pompi_win_free_f
#define ompi_win_free_keyval_f pompi_win_free_keyval_f
#define ompi_win_get_attr_f pompi_win_get_attr_f

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

@ -146,6 +146,7 @@ PN2(void, MPI_Comm_spawn_multiple, mpi_comm_spawn_multiple, MPI_COMM_SPAWN_MULTI
PN2(void, MPI_Comm_split, mpi_comm_split, MPI_COMM_SPLIT, (MPI_Fint *comm, MPI_Fint *color, MPI_Fint *key, MPI_Fint *newcomm, MPI_Fint *ierr));
PN2(void, MPI_Comm_split_type, mpi_comm_split_type, MPI_COMM_SPLIT_TYPE, (MPI_Fint *comm, MPI_Fint *split_type, MPI_Fint *key, MPI_Fint *info, MPI_Fint *newcomm, MPI_Fint *ierr));
PN2(void, MPI_Comm_test_inter, mpi_comm_test_inter, MPI_COMM_TEST_INTER, (MPI_Fint *comm, ompi_fortran_logical_t *flag, MPI_Fint *ierr));
PN2(void, MPI_Compare_and_swap, mpi_compare_and_swap, MPI_COMPARE_AND_SWAP, (char *origin_addr, char *compare_addr, char *result_addr, MPI_Fint *datatype, MPI_Fint *target_rank, MPI_Aint *target_disp, MPI_Fint *win, MPI_Fint *ierr));
PN2(void, MPI_Dims_create, mpi_dims_create, MPI_DIMS_CREATE, (MPI_Fint *nnodes, MPI_Fint *ndims, MPI_Fint *dims, MPI_Fint *ierr));
PN2(void, MPI_Dist_graph_create, mpi_dist_graph_create, MPI_DIST_GRAPH_CREATE, (MPI_Fint *comm_old, MPI_Fint *n, MPI_Fint *sources, MPI_Fint *degrees, MPI_Fint *destinations, MPI_Fint *weights, MPI_Fint *info, ompi_fortran_logical_t *reorder, MPI_Fint *comm_graph, MPI_Fint *ierr));
PN2(void, MPI_Dist_graph_create_adjacent, mpi_dist_graph_create_adjacent, MPI_DIST_GRAPH_CREATE_ADJACENT, (MPI_Fint *comm_old, MPI_Fint *indegree, MPI_Fint *sources, MPI_Fint *sourceweights, MPI_Fint *outdegree, MPI_Fint *destinations, MPI_Fint *destweights, MPI_Fint *info, ompi_fortran_logical_t *reorder, MPI_Fint *comm_graph, MPI_Fint *ierr));
@ -159,6 +160,7 @@ PN2(void, MPI_Error_class, mpi_error_class, MPI_ERROR_CLASS, (MPI_Fint *errorcod
PN2(void, MPI_Error_string, mpi_error_string, MPI_ERROR_STRING, (MPI_Fint *errorcode, char *string, MPI_Fint *resultlen, MPI_Fint *ierr, int string_len));
PN2(void, MPI_Exscan, mpi_exscan, MPI_EXSCAN, (char *sendbuf, char *recvbuf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *op, MPI_Fint *comm, MPI_Fint *ierr));
PN2(void, MPI_F_sync_reg, mpi_f_sync_reg, MPI_F_SYNC_REG, (char *buf));
PN2(void, MPI_Fetch_and_op, mpi_fetch_and_op, MPI_FETCH_AND_OP, (char *origin_addr, char *result_addr, MPI_Fint *datatype, MPI_Fint *target_rank, MPI_Aint *target_disp, MPI_Fint *op, MPI_Fint *win, MPI_Fint *ierr));
PN2(void, MPI_File_call_errhandler, mpi_file_call_errhandler, MPI_FILE_CALL_ERRHANDLER, (MPI_Fint *fh, MPI_Fint *errorcode, MPI_Fint *ierr));
PN2(void, MPI_File_create_errhandler, mpi_file_create_errhandler, MPI_FILE_CREATE_ERRHANDLER, (ompi_errhandler_fortran_handler_fn_t* function, MPI_Fint *errhandler, MPI_Fint *ierr));
PN2(void, MPI_File_set_errhandler, mpi_file_set_errhandler, MPI_FILE_SET_ERRHANDLER, (MPI_Fint *file, MPI_Fint *errhandler, MPI_Fint *ierr));
@ -219,6 +221,7 @@ PN2(void, MPI_Finalized, mpi_finalized, MPI_FINALIZED, (ompi_fortran_logical_t *
PN2(void, MPI_Free_mem, mpi_free_mem, MPI_FREE_MEM, (char *base, MPI_Fint *ierr));
PN2(void, MPI_Gather, mpi_gather, MPI_GATHER, (char *sendbuf, MPI_Fint *sendcount, MPI_Fint *sendtype, char *recvbuf, MPI_Fint *recvcount, MPI_Fint *recvtype, MPI_Fint *root, MPI_Fint *comm, MPI_Fint *ierr));
PN2(void, MPI_Gatherv, mpi_gatherv, MPI_GATHERV, (char *sendbuf, MPI_Fint *sendcount, MPI_Fint *sendtype, char *recvbuf, MPI_Fint *recvcounts, MPI_Fint *displs, MPI_Fint *recvtype, MPI_Fint *root, MPI_Fint *comm, MPI_Fint *ierr));
PN2(void, MPI_Get_accumulate, mpi_get_accumulate, MPI_GET_ACCUMULATE, (char *origin_addr, MPI_Fint *origin_count, MPI_Fint *origin_datatype, char *result_addr, MPI_Fint *result_count, MPI_Fint *result_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 *ierr));
PN2(void, MPI_Get_address, mpi_get_address, MPI_GET_ADDRESS, (char *location, MPI_Aint *address, MPI_Fint *ierr));
PN2(void, MPI_Get_count, mpi_get_count, MPI_GET_COUNT, (MPI_Fint *status, MPI_Fint *datatype, MPI_Fint *count, MPI_Fint *ierr));
PN2(void, MPI_Get_elements, mpi_get_elements, MPI_GET_ELEMENTS, (MPI_Fint *status, MPI_Fint *datatype, MPI_Fint *count, MPI_Fint *ierr));
@ -315,6 +318,7 @@ PN2(void, MPI_Probe, mpi_probe, MPI_PROBE, (MPI_Fint *source, MPI_Fint *tag, MPI
PN2(void, MPI_Publish_name, mpi_publish_name, MPI_PUBLISH_NAME, (char *service_name, MPI_Fint *info, char *port_name, MPI_Fint *ierr, int service_name_len, int port_name_len));
PN2(void, MPI_Put, mpi_put, MPI_PUT, (char *origin_addr, 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));
PN2(void, MPI_Query_thread, mpi_query_thread, MPI_QUERY_THREAD, (MPI_Fint *provided, MPI_Fint *ierr));
PN2(void, MPI_Raccumulate, mpi_raccumulate, MPI_RACCUMULATE, (char *origin_addr, 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));
PN2(void, MPI_Recv_init, mpi_recv_init, MPI_RECV_INIT, (char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *source, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *request, MPI_Fint *ierr));
PN2(void, MPI_Recv, mpi_recv, MPI_RECV, (char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *source, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *status, MPI_Fint *ierr));
PN2(void, MPI_Reduce, mpi_reduce, MPI_REDUCE, (char *sendbuf, char *recvbuf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *op, MPI_Fint *root, MPI_Fint *comm, MPI_Fint *ierr));
@ -324,6 +328,9 @@ PN2(void, MPI_Reduce_scatter_block, mpi_reduce_scatter_block, MPI_REDUCE_SCATTER
PN2(void, MPI_Register_datarep, mpi_register_datarep, MPI_REGISTER_DATAREP, (char *datarep, ompi_mpi2_fortran_datarep_conversion_fn_t *read_conversion_fn, ompi_mpi2_fortran_datarep_conversion_fn_t *write_conversion_fn, ompi_mpi2_fortran_datarep_extent_fn_t *dtype_file_extent_fn, MPI_Aint *extra_state, MPI_Fint *ierr, int datarep_len));
PN2(void, MPI_Request_free, mpi_request_free, MPI_REQUEST_FREE, (MPI_Fint *request, MPI_Fint *ierr));
PN2(void, MPI_Request_get_status, mpi_request_get_status, MPI_REQUEST_GET_STATUS, (MPI_Fint *request, ompi_fortran_logical_t *flag, MPI_Fint *status, MPI_Fint *ierr));
PN2(void, MPI_Rget, mpi_rget, MPI_RGET, (char *origin_addr, 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 *request, MPI_Fint *ierr));
PN2(void, MPI_Rget_accumulate, mpi_rget_accumulate, MPI_RGET_ACCUMULATE, (char *origin_addr, MPI_Fint *origin_count, MPI_Fint *origin_datatype, char *result_addr, MPI_Fint *result_count, MPI_Fint *result_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));
PN2(void, MPI_Rput, mpi_rput, MPI_RPUT, (char *origin_addr, 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 *request, MPI_Fint *ierr));
PN2(void, MPI_Rsend, mpi_rsend, MPI_RSEND, (char *ibuf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *ierr));
PN2(void, MPI_Rsend_init, mpi_rsend_init, MPI_RSEND_INIT, (char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *request, MPI_Fint *ierr));
PN2(void, MPI_Scan, mpi_scan, MPI_SCAN, (char *sendbuf, char *recvbuf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *op, MPI_Fint *comm, MPI_Fint *ierr));
@ -399,6 +406,10 @@ PN2(void, MPI_Win_create_errhandler, mpi_win_create_errhandler, MPI_WIN_CREATE_E
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_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));
PN2(void, MPI_Win_flush_local, mpi_win_flush_local, MPI_WIN_FLUSH_LOCAL, (MPI_Fint *rank, MPI_Fint *win, MPI_Fint *ierr));
PN2(void, MPI_Win_flush_local_all, mpi_win_flush_local_all, MPI_WIN_FLUSH_LOCAL_ALL, (MPI_Fint *win, MPI_Fint *ierr));
PN2(void, MPI_Win_free, mpi_win_free, MPI_WIN_FREE, (MPI_Fint *win, MPI_Fint *ierr));
PN2(void, MPI_Win_free_keyval, mpi_win_free_keyval, MPI_WIN_FREE_KEYVAL, (MPI_Fint *win_keyval, MPI_Fint *ierr));
PN2(void, MPI_Win_get_attr, mpi_win_get_attr, MPI_WIN_GET_ATTR, (MPI_Fint *win, MPI_Fint *win_keyval, MPI_Aint *attribute_val, ompi_fortran_logical_t *flag, MPI_Fint *ierr));

100
ompi/mpi/fortran/mpif-h/raccumulate_f.c Обычный файл
Просмотреть файл

@ -0,0 +1,100 @@
/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */
/*
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
* University Research and Technology
* Corporation. All rights reserved.
* Copyright (c) 2004-2005 The University of Tennessee and The University
* of Tennessee Research Foundation. All rights
* reserved.
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
* University of Stuttgart. All rights reserved.
* Copyright (c) 2004-2005 The Regents of the University of California.
* All rights reserved.
* Copyright (c) 2011-2012 Cisco Systems, Inc. All rights reserved.
* Copyright (c) 2014 Los Alamos National Security, LLC. All rights
* reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow
*
* $HEADER$
*/
#include "ompi_config.h"
#include "ompi/mpi/fortran/mpif-h/bindings.h"
#include "ompi/mpi/fortran/base/constants.h"
#if OPAL_HAVE_WEAK_SYMBOLS && OMPI_PROFILE_LAYER
#pragma weak PMPI_RACCUMULATE = ompi_raccumulate_f
#pragma weak pmpi_raccumulate = ompi_raccumulate_f
#pragma weak pmpi_raccumulate_ = ompi_raccumulate_f
#pragma weak pmpi_raccumulate__ = ompi_raccumulate_f
#pragma weak PMPI_Raccumulate_f = ompi_raccumulate_f
#pragma weak PMPI_Raccumulate_f08 = ompi_raccumulate_f
#elif OMPI_PROFILE_LAYER
OMPI_GENERATE_F77_BINDINGS (PMPI_RACCUMULATE,
pmpi_raccumulate,
pmpi_raccumulate_,
pmpi_raccumulate__,
pompi_raccumulate_f,
(char *origin_addr, 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),
(origin_addr, origin_count, origin_datatype, target_rank, target_disp, target_count, target_datatype, op, win, request, ierr) )
#endif
#if OPAL_HAVE_WEAK_SYMBOLS
#pragma weak MPI_RACCUMULATE = ompi_raccumulate_f
#pragma weak mpi_raccumulate = ompi_raccumulate_f
#pragma weak mpi_raccumulate_ = ompi_raccumulate_f
#pragma weak mpi_raccumulate__ = ompi_raccumulate_f
#pragma weak MPI_Raccumulate_f = ompi_raccumulate_f
#pragma weak MPI_Raccumulate_f08 = ompi_raccumulate_f
#endif
#if ! OPAL_HAVE_WEAK_SYMBOLS && ! OMPI_PROFILE_LAYER
OMPI_GENERATE_F77_BINDINGS (MPI_RACCUMULATE,
mpi_raccumulate,
mpi_raccumulate_,
mpi_raccumulate__,
ompi_raccumulate_f,
(char *origin_addr, 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),
(origin_addr, origin_count, origin_datatype, target_rank, target_disp, target_count, target_datatype, op, win, request, ierr) )
#endif
#if OMPI_PROFILE_LAYER && ! OPAL_HAVE_WEAK_SYMBOLS
#include "ompi/mpi/fortran/mpif-h/profile/defines.h"
#endif
void ompi_raccumulate_f(char *origin_addr, 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)
{
int ierr_c;
MPI_Datatype c_origin_datatype = MPI_Type_f2c(*origin_datatype);
MPI_Datatype c_target_datatype = MPI_Type_f2c(*target_datatype);
MPI_Win c_win = MPI_Win_f2c(*win);
MPI_Op c_op = MPI_Op_f2c(*op);
MPI_Request c_req;
ierr_c = MPI_Raccumulate(OMPI_F2C_BOTTOM(origin_addr),
OMPI_FINT_2_INT(*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);
if (NULL != ierr) *ierr = OMPI_INT_2_FINT(ierr_c);
if (MPI_SUCCESS != ierr_c) {
*request = MPI_Request_c2f(c_req);
}
}

103
ompi/mpi/fortran/mpif-h/rget_accumulate_f.c Обычный файл
Просмотреть файл

@ -0,0 +1,103 @@
/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */
/*
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
* University Research and Technology
* Corporation. All rights reserved.
* Copyright (c) 2004-2005 The University of Tennessee and The University
* of Tennessee Research Foundation. All rights
* reserved.
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
* University of Stuttgart. All rights reserved.
* Copyright (c) 2004-2005 The Regents of the University of California.
* All rights reserved.
* Copyright (c) 2011-2012 Cisco Systems, Inc. All rights reserved.
* Copyright (c) 2014 Los Alamos National Security, LLC. All rights
* reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow
*
* $HEADER$
*/
#include "ompi_config.h"
#include "ompi/mpi/fortran/mpif-h/bindings.h"
#include "ompi/mpi/fortran/base/constants.h"
#if OPAL_HAVE_WEAK_SYMBOLS && OMPI_PROFILE_LAYER
#pragma weak PMPI_RGET_ACCUMULATE = ompi_rget_accumulate_f
#pragma weak pmpi_rget_accumulate = ompi_rget_accumulate_f
#pragma weak pmpi_rget_accumulate_ = ompi_rget_accumulate_f
#pragma weak pmpi_rget_accumulate__ = ompi_rget_accumulate_f
#pragma weak PMPI_Get_accumulate_f = ompi_rget_accumulate_f
#pragma weak PMPI_Get_accumulate_f08 = ompi_rget_accumulate_f
#elif OMPI_PROFILE_LAYER
OMPI_GENERATE_F77_BINDINGS (PMPI_RGET_ACCUMULATE,
pmpi_rget_accumulate,
pmpi_rget_accumulate_,
pmpi_rget_accumulate__,
pompi_rget_accumulate_f,
(char *origin_addr, MPI_Fint *origin_count, MPI_Fint *origin_datatype, char *result_addr, MPI_Fint *result_count, MPI_Fint *result_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),
(origin_addr, origin_count, origin_datatype, result_addr, result_count, result_datatype, target_rank, target_disp, target_count, target_datatype, op, win, request, ierr) )
#endif
#if OPAL_HAVE_WEAK_SYMBOLS
#pragma weak MPI_RGET_ACCUMULATE = ompi_rget_accumulate_f
#pragma weak mpi_rget_accumulate = ompi_rget_accumulate_f
#pragma weak mpi_rget_accumulate_ = ompi_rget_accumulate_f
#pragma weak mpi_rget_accumulate__ = ompi_rget_accumulate_f
#pragma weak MPI_Get_accumulate_f = ompi_rget_accumulate_f
#pragma weak MPI_Get_accumulate_f08 = ompi_rget_accumulate_f
#endif
#if ! OPAL_HAVE_WEAK_SYMBOLS && ! OMPI_PROFILE_LAYER
OMPI_GENERATE_F77_BINDINGS (MPI_RGET_ACCUMULATE,
mpi_rget_accumulate,
mpi_rget_accumulate_,
mpi_rget_accumulate__,
ompi_rget_accumulate_f,
(char *origin_addr, MPI_Fint *origin_count, MPI_Fint *origin_datatype, char *result_addr, MPI_Fint *result_count, MPI_Fint *result_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),
(origin_addr, origin_count, origin_datatype, result_addr, result_count, result_datatype, target_rank, target_disp, target_count, target_datatype, op, win, request, ierr) )
#endif
#if OMPI_PROFILE_LAYER && ! OPAL_HAVE_WEAK_SYMBOLS
#include "ompi/mpi/fortran/mpif-h/profile/defines.h"
#endif
void ompi_rget_accumulate_f(char *origin_addr, MPI_Fint *origin_count,
MPI_Fint *origin_datatype, char *result_addr,
MPI_Fint *result_count, MPI_Fint *result_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)
{
int c_ierr;
MPI_Datatype c_origin_datatype = MPI_Type_f2c(*origin_datatype);
MPI_Datatype c_result_datatype = MPI_Type_f2c(*result_datatype);
MPI_Datatype c_target_datatype = MPI_Type_f2c(*target_datatype);
MPI_Win c_win = MPI_Win_f2c(*win);
MPI_Op c_op = MPI_Op_f2c(*op);
MPI_Request c_req;
c_ierr = MPI_Rget_accumulate(OMPI_F2C_BOTTOM(origin_addr),
OMPI_FINT_2_INT(*origin_count),
c_origin_datatype,
OMPI_F2C_BOTTOM(result_addr),
OMPI_FINT_2_INT(*result_count),
c_result_datatype,
OMPI_FINT_2_INT(*target_rank),
*target_disp,
OMPI_FINT_2_INT(*target_count),
c_target_datatype, c_op, c_win, &c_req);
if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr);
if (MPI_SUCCESS != c_ierr) {
*request = MPI_Request_c2f(c_req);
}
}

96
ompi/mpi/fortran/mpif-h/rget_f.c Обычный файл
Просмотреть файл

@ -0,0 +1,96 @@
/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */
/*
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
* University Research and Technology
* Corporation. All rights reserved.
* Copyright (c) 2004-2005 The University of Tennessee and The University
* of Tennessee Research Foundation. All rights
* reserved.
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
* University of Stuttgart. All rights reserved.
* Copyright (c) 2004-2005 The Regents of the University of California.
* All rights reserved.
* Copyright (c) 2011-2012 Cisco Systems, Inc. All rights reserved.
* Copyright (c) 2014 Los Alamos National Security, LLC. All rights
* reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow
*
* $HEADER$
*/
#include "ompi_config.h"
#include "ompi/mpi/fortran/mpif-h/bindings.h"
#include "ompi/mpi/fortran/base/constants.h"
#if OPAL_HAVE_WEAK_SYMBOLS && OMPI_PROFILE_LAYER
#pragma weak PMPI_RGET = ompi_rget_f
#pragma weak pmpi_rget = ompi_rget_f
#pragma weak pmpi_rget_ = ompi_rget_f
#pragma weak pmpi_rget__ = ompi_rget_f
#pragma weak PMPI_Rget_f = ompi_rget_f
#pragma weak PMPI_Rget_f08 = ompi_rget_f
#elif OMPI_PROFILE_LAYER
OMPI_GENERATE_F77_BINDINGS (PMPI_RGET,
pmpi_rget,
pmpi_rget_,
pmpi_rget__,
pompi_rget_f,
(char *origin_addr, 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 *request, MPI_Fint *ierr),
(origin_addr, origin_count, origin_datatype, target_rank, target_disp, target_count, target_datatype, win, request, ierr) )
#endif
#if OPAL_HAVE_WEAK_SYMBOLS
#pragma weak MPI_RGET = ompi_rget_f
#pragma weak mpi_rget = ompi_rget_f
#pragma weak mpi_rget_ = ompi_rget_f
#pragma weak mpi_rget__ = ompi_rget_f
#pragma weak MPI_Rget_f = ompi_rget_f
#pragma weak MPI_Rget_f08 = ompi_rget_f
#endif
#if ! OPAL_HAVE_WEAK_SYMBOLS && ! OMPI_PROFILE_LAYER
OMPI_GENERATE_F77_BINDINGS (MPI_RGET,
mpi_rget,
mpi_rget_,
mpi_rget__,
ompi_rget_f,
(char *origin_addr, 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 *request, MPI_Fint *ierr),
(origin_addr, origin_count, origin_datatype, target_rank, target_disp, target_count, target_datatype, win, request, ierr) )
#endif
#if OMPI_PROFILE_LAYER && ! OPAL_HAVE_WEAK_SYMBOLS
#include "ompi/mpi/fortran/mpif-h/profile/defines.h"
#endif
void ompi_rget_f(char *origin_addr, 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 *request,
MPI_Fint *ierr)
{
int c_ierr;
MPI_Datatype c_origin_datatype = MPI_Type_f2c(*origin_datatype);
MPI_Datatype c_target_datatype = MPI_Type_f2c(*target_datatype);
MPI_Win c_win = MPI_Win_f2c(*win);
MPI_Request c_req;
c_ierr = MPI_Rget(OMPI_F2C_BOTTOM(origin_addr),
OMPI_FINT_2_INT(*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_req);
if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr);
if (MPI_SUCCESS != c_ierr) {
*request = MPI_Request_c2f(c_req);
}
}

96
ompi/mpi/fortran/mpif-h/rput_f.c Обычный файл
Просмотреть файл

@ -0,0 +1,96 @@
/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */
/*
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
* University Research and Technology
* Corporation. All rights reserved.
* Copyright (c) 2004-2005 The University of Tennessee and The University
* of Tennessee Research Foundation. All rights
* reserved.
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
* University of Stuttgart. All rights reserved.
* Copyright (c) 2004-2005 The Regents of the University of California.
* All rights reserved.
* Copyright (c) 2011-2012 Cisco Systems, Inc. All rights reserved.
* Copyright (c) 2014 Los Alamos National Security, LLC. All rights
* reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow
*
* $HEADER$
*/
#include "ompi_config.h"
#include "ompi/mpi/fortran/mpif-h/bindings.h"
#include "ompi/mpi/fortran/base/constants.h"
#if OPAL_HAVE_WEAK_SYMBOLS && OMPI_PROFILE_LAYER
#pragma weak PMPI_RPUT = ompi_rput_f
#pragma weak pmpi_rput = ompi_rput_f
#pragma weak pmpi_rput_ = ompi_rput_f
#pragma weak pmpi_rput__ = ompi_rput_f
#pragma weak PMPI_Rput_f = ompi_rput_f
#pragma weak PMPI_Rput_f08 = ompi_rput_f
#elif OMPI_PROFILE_LAYER
OMPI_GENERATE_F77_BINDINGS (PMPI_RPUT,
pmpi_rput,
pmpi_rput_,
pmpi_rput__,
pompi_rput_f,
(char *origin_addr, 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 *request, MPI_Fint *ierr),
(origin_addr, origin_count, origin_datatype, target_rank, target_disp, target_count, target_datatype, win, request, ierr) )
#endif
#if OPAL_HAVE_WEAK_SYMBOLS
#pragma weak MPI_RPUT = ompi_rput_f
#pragma weak mpi_rput = ompi_rput_f
#pragma weak mpi_rput_ = ompi_rput_f
#pragma weak mpi_rput__ = ompi_rput_f
#pragma weak MPI_Rput_f = ompi_rput_f
#pragma weak MPI_Rput_f08 = ompi_rput_f
#endif
#if ! OPAL_HAVE_WEAK_SYMBOLS && ! OMPI_PROFILE_LAYER
OMPI_GENERATE_F77_BINDINGS (MPI_RPUT,
mpi_rput,
mpi_rput_,
mpi_rput__,
ompi_rput_f,
(char *origin_addr, 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 *request, MPI_Fint *ierr),
(origin_addr, origin_count, origin_datatype, target_rank, target_disp, target_count, target_datatype, win, request, ierr) )
#endif
#if OMPI_PROFILE_LAYER && ! OPAL_HAVE_WEAK_SYMBOLS
#include "ompi/mpi/fortran/mpif-h/profile/defines.h"
#endif
void ompi_rput_f(char *origin_addr, 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 *request,
MPI_Fint *ierr)
{
int c_ierr;
MPI_Datatype c_origin_datatype = MPI_Type_f2c(*origin_datatype);
MPI_Datatype c_target_datatype = MPI_Type_f2c(*target_datatype);
MPI_Win c_win = MPI_Win_f2c(*win);
MPI_Request c_req;
c_ierr = MPI_Rput(OMPI_F2C_BOTTOM(origin_addr),
OMPI_FINT_2_INT(*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_req);
if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr);
if (MPI_SUCCESS != c_ierr) {
*request = MPI_Request_c2f(c_req);
}
}

77
ompi/mpi/fortran/mpif-h/win_flush_all_f.c Обычный файл
Просмотреть файл

@ -0,0 +1,77 @@
/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */
/*
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
* University Research and Technology
* Corporation. All rights reserved.
* Copyright (c) 2004-2005 The University of Tennessee and The University
* of Tennessee Research Foundation. All rights
* reserved.
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
* University of Stuttgart. All rights reserved.
* Copyright (c) 2004-2005 The Regents of the University of California.
* All rights reserved.
* Copyright (c) 2011-2012 Cisco Systems, Inc. All rights reserved.
* Copyright (c) 2014 Los Alamos National Security, LLC. All rights
* reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow
*
* $HEADER$
*/
#include "ompi_config.h"
#include "ompi/mpi/fortran/mpif-h/bindings.h"
#if OPAL_HAVE_WEAK_SYMBOLS && OMPI_PROFILE_LAYER
#pragma weak PMPI_WIN_FLUSH_ALL = ompi_win_flush_all_f
#pragma weak pmpi_win_flush_all = ompi_win_flush_all_f
#pragma weak pmpi_win_flush_all_ = ompi_win_flush_all_f
#pragma weak pmpi_win_flush_all__ = ompi_win_flush_all_f
#pragma weak PMPI_Win_flush_all_f = ompi_win_flush_all_f
#pragma weak PMPI_Win_flush_all_f08 = ompi_win_flush_all_f
#elif OMPI_PROFILE_LAYER
OMPI_GENERATE_F77_BINDINGS (PMPI_WIN_FLUSH_ALL,
pmpi_win_flush_all,
pmpi_win_flush_all_,
pmpi_win_flush_all__,
pompi_win_flush_all_f,
(MPI_Fint *win, MPI_Fint *ierr),
(win, ierr) )
#endif
#if OPAL_HAVE_WEAK_SYMBOLS
#pragma weak MPI_WIN_FLUSH_ALL = ompi_win_flush_all_f
#pragma weak mpi_win_flush_all = ompi_win_flush_all_f
#pragma weak mpi_win_flush_all_ = ompi_win_flush_all_f
#pragma weak mpi_win_flush_all__ = ompi_win_flush_all_f
#pragma weak MPI_Win_flush_all_f = ompi_win_flush_all_f
#pragma weak MPI_Win_flush_all_f08 = ompi_win_flush_all_f
#endif
#if ! OPAL_HAVE_WEAK_SYMBOLS && ! OMPI_PROFILE_LAYER
OMPI_GENERATE_F77_BINDINGS (MPI_WIN_FLUSH_ALL,
mpi_win_flush_all,
mpi_win_flush_all_,
mpi_win_flush_all__,
ompi_win_flush_all_f,
(MPI_Fint *win, MPI_Fint *ierr),
(win, ierr) )
#endif
#if OMPI_PROFILE_LAYER && ! OPAL_HAVE_WEAK_SYMBOLS
#include "ompi/mpi/fortran/mpif-h/profile/defines.h"
#endif
void ompi_win_flush_all_f(MPI_Fint *win, MPI_Fint *ierr)
{
int c_ierr;
MPI_Win c_win = MPI_Win_f2c(*win);
c_ierr = MPI_Win_flush_all(c_win);
if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr);
}

77
ompi/mpi/fortran/mpif-h/win_flush_f.c Обычный файл
Просмотреть файл

@ -0,0 +1,77 @@
/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */
/*
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
* University Research and Technology
* Corporation. All rights reserved.
* Copyright (c) 2004-2005 The University of Tennessee and The University
* of Tennessee Research Foundation. All rights
* reserved.
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
* University of Stuttgart. All rights reserved.
* Copyright (c) 2004-2005 The Regents of the University of California.
* All rights reserved.
* Copyright (c) 2011-2012 Cisco Systems, Inc. All rights reserved.
* Copyright (c) 2014 Los Alamos National Security, LLC. All rights
* reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow
*
* $HEADER$
*/
#include "ompi_config.h"
#include "ompi/mpi/fortran/mpif-h/bindings.h"
#if OPAL_HAVE_WEAK_SYMBOLS && OMPI_PROFILE_LAYER
#pragma weak PMPI_WIN_FLUSH = ompi_win_flush_f
#pragma weak pmpi_win_flush = ompi_win_flush_f
#pragma weak pmpi_win_flush_ = ompi_win_flush_f
#pragma weak pmpi_win_flush__ = ompi_win_flush_f
#pragma weak PMPI_Win_flush_f = ompi_win_flush_f
#pragma weak PMPI_Win_flush_f08 = ompi_win_flush_f
#elif OMPI_PROFILE_LAYER
OMPI_GENERATE_F77_BINDINGS (PMPI_WIN_FLUSH,
pmpi_win_flush,
pmpi_win_flush_,
pmpi_win_flush__,
pompi_win_flush_f,
(MPI_Fint *rank, MPI_Fint *win, MPI_Fint *ierr),
(rank, win, ierr) )
#endif
#if OPAL_HAVE_WEAK_SYMBOLS
#pragma weak MPI_WIN_FLUSH = ompi_win_flush_f
#pragma weak mpi_win_flush = ompi_win_flush_f
#pragma weak mpi_win_flush_ = ompi_win_flush_f
#pragma weak mpi_win_flush__ = ompi_win_flush_f
#pragma weak MPI_Win_flush_f = ompi_win_flush_f
#pragma weak MPI_Win_flush_f08 = ompi_win_flush_f
#endif
#if ! OPAL_HAVE_WEAK_SYMBOLS && ! OMPI_PROFILE_LAYER
OMPI_GENERATE_F77_BINDINGS (MPI_WIN_FLUSH,
mpi_win_flush,
mpi_win_flush_,
mpi_win_flush__,
ompi_win_flush_f,
(MPI_Fint *rank, MPI_Fint *win, MPI_Fint *ierr),
(rank, win, ierr) )
#endif
#if OMPI_PROFILE_LAYER && ! OPAL_HAVE_WEAK_SYMBOLS
#include "ompi/mpi/fortran/mpif-h/profile/defines.h"
#endif
void ompi_win_flush_f(MPI_Fint *rank, MPI_Fint *win, MPI_Fint *ierr)
{
int c_ierr;
MPI_Win c_win = MPI_Win_f2c(*win);
c_ierr = MPI_Win_flush(OMPI_FINT_2_INT(*rank), c_win);
if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr);
}

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

@ -0,0 +1,77 @@
/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */
/*
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
* University Research and Technology
* Corporation. All rights reserved.
* Copyright (c) 2004-2005 The University of Tennessee and The University
* of Tennessee Research Foundation. All rights
* reserved.
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
* University of Stuttgart. All rights reserved.
* Copyright (c) 2004-2005 The Regents of the University of California.
* All rights reserved.
* Copyright (c) 2011-2012 Cisco Systems, Inc. All rights reserved.
* Copyright (c) 2014 Los Alamos National Security, LLC. All rights
* reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow
*
* $HEADER$
*/
#include "ompi_config.h"
#include "ompi/mpi/fortran/mpif-h/bindings.h"
#if OPAL_HAVE_WEAK_SYMBOLS && OMPI_PROFILE_LAYER
#pragma weak PMPI_WIN_FLUSH_LOCAL_ALL = ompi_win_flush_local_all_f
#pragma weak pmpi_win_flush_local_all = ompi_win_flush_local_all_f
#pragma weak pmpi_win_flush_local_all_ = ompi_win_flush_local_all_f
#pragma weak pmpi_win_flush_local_all__ = ompi_win_flush_local_all_f
#pragma weak PMPI_Win_flush_local_all_f = ompi_win_flush_local_all_f
#pragma weak PMPI_Win_flush_local_all_f08 = ompi_win_flush_local_all_f
#elif OMPI_PROFILE_LAYER
OMPI_GENERATE_F77_BINDINGS (PMPI_WIN_FLUSH_LOCAL_ALL,
pmpi_win_flush_local_all,
pmpi_win_flush_local_all_,
pmpi_win_flush_local_all__,
pompi_win_flush_local_all_f,
(MPI_Fint *win, MPI_Fint *ierr),
(win, ierr) )
#endif
#if OPAL_HAVE_WEAK_SYMBOLS
#pragma weak MPI_WIN_FLUSH_LOCAL_ALL = ompi_win_flush_local_all_f
#pragma weak mpi_win_flush_local_all = ompi_win_flush_local_all_f
#pragma weak mpi_win_flush_local_all_ = ompi_win_flush_local_all_f
#pragma weak mpi_win_flush_local_all__ = ompi_win_flush_local_all_f
#pragma weak MPI_Win_flush_local_all_f = ompi_win_flush_local_all_f
#pragma weak MPI_Win_flush_local_all_f08 = ompi_win_flush_local_all_f
#endif
#if ! OPAL_HAVE_WEAK_SYMBOLS && ! OMPI_PROFILE_LAYER
OMPI_GENERATE_F77_BINDINGS (MPI_WIN_FLUSH_LOCAL_ALL,
mpi_win_flush_local_all,
mpi_win_flush_local_all_,
mpi_win_flush_local_all__,
ompi_win_flush_local_all_f,
(MPI_Fint *win, MPI_Fint *ierr),
(win, ierr) )
#endif
#if OMPI_PROFILE_LAYER && ! OPAL_HAVE_WEAK_SYMBOLS
#include "ompi/mpi/fortran/mpif-h/profile/defines.h"
#endif
void ompi_win_flush_local_all_f(MPI_Fint *win, MPI_Fint *ierr)
{
int c_ierr;
MPI_Win c_win = MPI_Win_f2c(*win);
c_ierr = MPI_Win_flush_local_all(c_win);
if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr);
}

77
ompi/mpi/fortran/mpif-h/win_flush_local_f.c Обычный файл
Просмотреть файл

@ -0,0 +1,77 @@
/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */
/*
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
* University Research and Technology
* Corporation. All rights reserved.
* Copyright (c) 2004-2005 The University of Tennessee and The University
* of Tennessee Research Foundation. All rights
* reserved.
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
* University of Stuttgart. All rights reserved.
* Copyright (c) 2004-2005 The Regents of the University of California.
* All rights reserved.
* Copyright (c) 2011-2012 Cisco Systems, Inc. All rights reserved.
* Copyright (c) 2014 Los Alamos National Security, LLC. All rights
* reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow
*
* $HEADER$
*/
#include "ompi_config.h"
#include "ompi/mpi/fortran/mpif-h/bindings.h"
#if OPAL_HAVE_WEAK_SYMBOLS && OMPI_PROFILE_LAYER
#pragma weak PMPI_WIN_FLUSH_LOCAL = ompi_win_flush_local_f
#pragma weak pmpi_win_flush_local = ompi_win_flush_local_f
#pragma weak pmpi_win_flush_local_ = ompi_win_flush_local_f
#pragma weak pmpi_win_flush_local__ = ompi_win_flush_local_f
#pragma weak PMPI_Win_flush_local_f = ompi_win_flush_local_f
#pragma weak PMPI_Win_flush_local_f08 = ompi_win_flush_local_f
#elif OMPI_PROFILE_LAYER
OMPI_GENERATE_F77_BINDINGS (PMPI_WIN_FLUSH_LOCAL,
pmpi_win_flush_local,
pmpi_win_flush_local_,
pmpi_win_flush_local__,
pompi_win_flush_local_f,
(MPI_Fint *rank, MPI_Fint *win, MPI_Fint *ierr),
(rank, win, ierr) )
#endif
#if OPAL_HAVE_WEAK_SYMBOLS
#pragma weak MPI_WIN_FLUSH_LOCAL = ompi_win_flush_local_f
#pragma weak mpi_win_flush_local = ompi_win_flush_local_f
#pragma weak mpi_win_flush_local_ = ompi_win_flush_local_f
#pragma weak mpi_win_flush_local__ = ompi_win_flush_local_f
#pragma weak MPI_Win_flush_local_f = ompi_win_flush_local_f
#pragma weak MPI_Win_flush_local_f08 = ompi_win_flush_local_f
#endif
#if ! OPAL_HAVE_WEAK_SYMBOLS && ! OMPI_PROFILE_LAYER
OMPI_GENERATE_F77_BINDINGS (MPI_WIN_FLUSH_LOCAL,
mpi_win_flush_local,
mpi_win_flush_local_,
mpi_win_flush_local__,
ompi_win_flush_local_f,
(MPI_Fint *rank, MPI_Fint *win, MPI_Fint *ierr),
(rank, win, ierr) )
#endif
#if OMPI_PROFILE_LAYER && ! OPAL_HAVE_WEAK_SYMBOLS
#include "ompi/mpi/fortran/mpif-h/profile/defines.h"
#endif
void ompi_win_flush_local_f(MPI_Fint *rank, MPI_Fint *win, MPI_Fint *ierr)
{
int c_ierr;
MPI_Win c_win = MPI_Win_f2c(*win);
c_ierr = MPI_Win_flush_local(OMPI_FINT_2_INT(*rank), c_win);
if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr);
}

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

@ -88,6 +88,7 @@ mpi_api_files = \
comm_spawn_multiple_f08.F90 \
comm_split_f08.F90 \
comm_test_inter_f08.F90 \
compare_and_swap_f08.F90 \
dist_graph_create_adjacent_f08.F90 \
dist_graph_create_f08.F90 \
dist_graph_neighbors_count_f08.F90 \
@ -98,11 +99,13 @@ mpi_api_files = \
error_string_f08.F90 \
exscan_f08.F90 \
f_sync_reg_f08.F90 \
fetch_and_op_f08.F90 \
finalized_f08.F90 \
finalize_f08.F90 \
free_mem_f08.F90 \
gather_f08.F90 \
gatherv_f08.F90 \
get_accumulate_f08.F90 \
get_address_f08.F90 \
get_count_f08.F90 \
get_elements_f08.F90 \
@ -205,6 +208,9 @@ mpi_api_files = \
reduce_scatter_block_f08.F90 \
request_free_f08.F90 \
request_get_status_f08.F90 \
rget_f08.F90 \
rget_accumulate_f08.F90 \
rput_f08.F90 \
rsend_f08.F90 \
rsend_init_f08.F90 \
scan_f08.F90 \
@ -273,6 +279,10 @@ mpi_api_files = \
win_create_keyval_f08.F90 \
win_delete_attr_f08.F90 \
win_fence_f08.F90 \
win_flush_f08.F90 \
win_flush_all_f08.F90 \
win_flush_local_f08.F90 \
win_flush_local_all_f08.F90 \
win_free_f08.F90 \
win_free_keyval_f08.F90 \
win_get_attr_f08.F90 \
@ -415,6 +425,7 @@ pmpi_api_files = \
profile/pcomm_spawn_multiple_f08.F90 \
profile/pcomm_split_f08.F90 \
profile/pcomm_test_inter_f08.F90 \
profile/pcompare_and_swap_f08.F90 \
profile/pdims_create_f08.F90 \
profile/pdist_graph_create_adjacent_f08.F90 \
profile/pdist_graph_create_f08.F90 \
@ -425,11 +436,13 @@ pmpi_api_files = \
profile/perror_string_f08.F90 \
profile/pexscan_f08.F90 \
profile/pf_sync_reg_f08.F90 \
profile/pfetch_and_op_f08.F90 \
profile/pfinalized_f08.F90 \
profile/pfinalize_f08.F90 \
profile/pfree_mem_f08.F90 \
profile/pgather_f08.F90 \
profile/pgatherv_f08.F90 \
profile/pget_accumulate_f08.F90 \
profile/pget_address_f08.F90 \
profile/pget_count_f08.F90 \
profile/pget_elements_f08.F90 \
@ -531,6 +544,9 @@ pmpi_api_files = \
profile/preduce_scatter_block_f08.F90 \
profile/prequest_free_f08.F90 \
profile/prequest_get_status_f08.F90 \
profile/prget_f08.F90 \
profile/prget_accumulate_f08.F90 \
profile/prput_f08.F90 \
profile/prsend_f08.F90 \
profile/prsend_init_f08.F90 \
profile/pscan_f08.F90 \
@ -600,6 +616,10 @@ pmpi_api_files = \
profile/pwin_create_keyval_f08.F90 \
profile/pwin_delete_attr_f08.F90 \
profile/pwin_fence_f08.F90 \
profile/pwin_flush_f08.F90 \
profile/pwin_flush_all_f08.F90 \
profile/pwin_flush_local_f08.F90 \
profile/pwin_flush_local_all_f08.F90 \
profile/pwin_free_f08.F90 \
profile/pwin_free_keyval_f08.F90 \
profile/pwin_get_attr_f08.F90 \

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

@ -0,0 +1,29 @@
! -*- f90 -*-
!
! Copyright (c) 2010-2012 Cisco Systems, Inc. All rights reserved.
! Copyright (c) 2009-2014 Los Alamos National Security, LLC.
! All Rights reserved.
! $COPYRIGHT$
#include "ompi/mpi/fortran/configure-fortran-output.h"
subroutine MPI_Compare_and_swap_f08(origin_addr,compare_addr,result_addr,&
datatype,target_rank,target_disp,win,&
ierror)
use :: mpi_f08_types, only : MPI_Datatype, MPI_Win, MPI_ADDRESS_KIND
use :: mpi_f08, only : ompi_compare_and_swap_f
implicit none
OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: origin_addr, compare_addr
OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(OUT) :: result_addr
TYPE(MPI_Datatype), INTENT(IN) :: datatype
INTEGER, INTENT(IN) :: target_rank
INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: target_disp
TYPE(MPI_Win), INTENT(IN) :: win
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
integer :: c_ierror
call ompi_compare_and_swap_f(origin_addr,compare_addr,result_addr,datatype%MPI_VAL,&
target_rank,target_disp,win%MPI_VAL,c_ierror)
if (present(ierror)) ierror = c_ierror
end subroutine MPI_Compare_and_swap_f08

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

@ -0,0 +1,29 @@
! -*- f90 -*-
!
! Copyright (c) 2010-2012 Cisco Systems, Inc. All rights reserved.
! Copyright (c) 2009-2014 Los Alamos National Security, LLC.
! All Rights reserved.
! $COPYRIGHT$
#include "ompi/mpi/fortran/configure-fortran-output.h"
subroutine MPI_Fetch_and_op_f08(origin_addr,result_addr,datatype,target_rank, &
target_disp,op,win,ierror)
use :: mpi_f08_types, only : MPI_Datatype, MPI_Op, MPI_Win, MPI_ADDRESS_KIND
use :: mpi_f08, only : ompi_fetch_and_op_f
implicit none
OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: origin_addr
OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(OUT) :: result_addr
TYPE(MPI_Datatype), INTENT(IN) :: datatype
INTEGER, INTENT(IN) :: target_rank
INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: target_disp
TYPE(MPI_Op), INTENT(IN) :: op
TYPE(MPI_Win), INTENT(IN) :: win
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
integer :: c_ierror
call ompi_fetch_and_op_f(origin_addr,result_addr,datatype%MPI_VAL,target_rank,&
target_disp,op%MPI_VAL,win%MPI_VAL,c_ierror)
if (present(ierror)) ierror = c_ierror
end subroutine MPI_Fetch_and_op_f08

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

@ -0,0 +1,35 @@
! -*- f90 -*-
!
! Copyright (c) 2010-2012 Cisco Systems, Inc. All rights reserved.
! Copyright (c) 2009-2014 Los Alamos National Security, LLC.
! All Rights reserved.
! $COPYRIGHT$
#include "ompi/mpi/fortran/configure-fortran-output.h"
subroutine MPI_Get_accumulate_f08(origin_addr,origin_count,origin_datatype,&
result_addr,result_count,result_datatype,&
target_rank,target_disp,target_count, &
target_datatype,op,win,ierror)
use :: mpi_f08_types, only : MPI_Datatype, MPI_Op, MPI_Win, MPI_ADDRESS_KIND
use :: mpi_f08, only : ompi_get_accumulate_f
implicit none
OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: origin_addr
INTEGER, INTENT(IN) :: origin_count, result_count, target_rank, target_count
TYPE(MPI_Datatype), INTENT(IN) :: origin_datatype
OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(OUT) :: result_addr
TYPE(MPI_Datatype), INTENT(IN) :: result_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
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
integer :: c_ierror
call ompi_get_accumulate_f(origin_addr,origin_count,origin_datatype%MPI_VAL,&
result_addr,result_count,result_datatype%MPI_VAL,&
target_rank,target_disp,target_count,target_datatype%MPI_VAL,&
op%MPI_VAL,win%MPI_VAL,c_ierror)
if (present(ierror)) ierror = c_ierror
end subroutine MPI_Get_accumulate_f08

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

@ -2161,6 +2161,24 @@ subroutine ompi_accumulate_f(origin_addr,origin_count,origin_datatype, &
INTEGER, INTENT(OUT) :: ierror
end subroutine ompi_accumulate_f
subroutine ompi_raccumulate_f(origin_addr,origin_count,origin_datatype, &
target_rank,target_disp, &
target_count,target_datatype,op,win, &
request,ierror) &
BIND(C, name="ompi_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 ompi_raccumulate_f
subroutine ompi_get_f(origin_addr,origin_count,origin_datatype,target_rank, &
target_disp,target_count,target_datatype,win,ierror) &
BIND(C, name="ompi_get_f")
@ -2175,6 +2193,63 @@ subroutine ompi_get_f(origin_addr,origin_count,origin_datatype,target_rank, &
INTEGER, INTENT(OUT) :: ierror
end subroutine ompi_get_f
subroutine ompi_rget_f(origin_addr,origin_count,origin_datatype,target_rank, &
target_disp,target_count,target_datatype,win,request, &
ierror) &
BIND(C, name="ompi_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 ompi_rget_f
subroutine ompi_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="ompi_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, INTENT(OUT) :: 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 ompi_get_accumulate_f
subroutine ompi_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="ompi_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, INTENT(OUT) :: 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 ompi_rget_accumulate_f
subroutine ompi_put_f(origin_addr,origin_count,origin_datatype,target_rank, &
target_disp,target_count,target_datatype,win,ierror) &
BIND(C, name="ompi_put_f")
@ -2189,6 +2264,22 @@ subroutine ompi_put_f(origin_addr,origin_count,origin_datatype,target_rank, &
INTEGER, INTENT(OUT) :: ierror
end subroutine ompi_put_f
subroutine ompi_rput_f(origin_addr,origin_count,origin_datatype,target_rank, &
target_disp,target_count,target_datatype,win,request, &
ierror) &
BIND(C, name="ompi_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 ompi_rput_f
subroutine ompi_win_complete_f(win,ierror) &
BIND(C, name="ompi_win_complete_f")
implicit none
@ -2196,6 +2287,36 @@ subroutine ompi_win_complete_f(win,ierror) &
INTEGER, INTENT(OUT) :: ierror
end subroutine ompi_win_complete_f
subroutine ompi_compare_and_swap_f(origin_addr,compare_addr,result_addr, &
target_rank,target_disp,datatype, win, &
ierror) &
BIND(C, name="ompi_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, INTENT(OUT) :: 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 ompi_compare_and_swap_f
subroutine ompi_fetch_and_op_f(origin_addr,result_addr,datatype,target_rank, &
target_disp,op,win,ierror) &
BIND(C, name="ompi_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, INTENT(OUT) :: 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 ompi_fetch_and_op_f
subroutine ompi_win_create_f(base,size,disp_unit,info,comm,win,ierror) &
BIND(C, name="ompi_win_create_f")
use :: mpi_f08_types, only : MPI_ADDRESS_KIND
@ -2209,6 +2330,36 @@ subroutine ompi_win_create_f(base,size,disp_unit,info,comm,win,ierror) &
INTEGER, INTENT(OUT) :: ierror
end subroutine ompi_win_create_f
subroutine ompi_win_flush_f(rank,win,ierror) &
BIND(C, name="ompi_win_flush_f")
implicit none
INTEGER, INTENT(IN) :: rank
INTEGER, INTENT(IN) :: win
INTEGER, INTENT(OUT) :: ierror
end subroutine ompi_win_flush_f
subroutine ompi_win_flush_all_f(win,ierror) &
BIND(C, name="ompi_win_flush_all_f")
implicit none
INTEGER, INTENT(IN) :: win
INTEGER, INTENT(OUT) :: ierror
end subroutine ompi_win_flush_all_f
subroutine ompi_win_flush_local_f(rank,win,ierror) &
BIND(C, name="ompi_win_flush_local_f")
implicit none
INTEGER, INTENT(IN) :: rank
INTEGER, INTENT(IN) :: win
INTEGER, INTENT(OUT) :: ierror
end subroutine ompi_win_flush_local_f
subroutine ompi_win_flush_local_all_f(win,ierror) &
BIND(C, name="ompi_win_flush_local_all_f")
implicit none
INTEGER, INTENT(IN) :: win
INTEGER, INTENT(OUT) :: ierror
end subroutine ompi_win_flush_local_all_f
subroutine ompi_win_fence_f(assert,win,ierror) &
BIND(C, name="ompi_win_fence_f")
implicit none

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

@ -0,0 +1,29 @@
! -*- f90 -*-
!
! Copyright (c) 2010-2012 Cisco Systems, Inc. All rights reserved.
! Copyright (c) 2009-2014 Los Alamos National Security, LLC.
! All Rights reserved.
! $COPYRIGHT$
#include "ompi/mpi/fortran/configure-fortran-output.h"
subroutine PMPI_Compare_and_swap_f08(origin_addr,compare_addr,result_addr,&
datatype,target_rank,target_disp,win,&
ierror)
use :: mpi_f08_types, only : MPI_Datatype, MPI_Win, MPI_ADDRESS_KIND
use :: mpi_f08, only : ompi_compare_and_swap_f
implicit none
OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: origin_addr, compare_addr
OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(OUT) :: result_addr
TYPE(MPI_Datatype), INTENT(IN) :: datatype
INTEGER, INTENT(IN) :: target_rank
INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: target_disp
TYPE(MPI_Win), INTENT(IN) :: win
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
integer :: c_ierror
call ompi_compare_and_swap_f(origin_addr,compare_addr,result_addr,datatype%MPI_VAL,&
target_rank,target_disp,win%MPI_VAL,c_ierror)
if (present(ierror)) ierror = c_ierror
end subroutine PMPI_Compare_and_swap_f08

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

@ -0,0 +1,29 @@
! -*- f90 -*-
!
! Copyright (c) 2010-2012 Cisco Systems, Inc. All rights reserved.
! Copyright (c) 2009-2014 Los Alamos National Security, LLC.
! All Rights reserved.
! $COPYRIGHT$
#include "ompi/mpi/fortran/configure-fortran-output.h"
subroutine PMPI_Fetch_and_op_f08(origin_addr,result_addr,datatype,target_rank, &
target_disp,op,win,ierror)
use :: mpi_f08_types, only : MPI_Datatype, MPI_Op, MPI_Win, MPI_ADDRESS_KIND
use :: mpi_f08, only : ompi_fetch_and_op_f
implicit none
OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: origin_addr
OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(OUT) :: result_addr
TYPE(MPI_Datatype), INTENT(IN) :: datatype
INTEGER, INTENT(IN) :: target_rank
INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: target_disp
TYPE(MPI_Op), INTENT(IN) :: op
TYPE(MPI_Win), INTENT(IN) :: win
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
integer :: c_ierror
call ompi_fetch_and_op_f(origin_addr,result_addr,datatype%MPI_VAL,target_rank,&
target_disp,op%MPI_VAL,win%MPI_VAL,c_ierror)
if (present(ierror)) ierror = c_ierror
end subroutine PMPI_Fetch_and_op_f08

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

@ -0,0 +1,35 @@
! -*- f90 -*-
!
! Copyright (c) 2010-2012 Cisco Systems, Inc. All rights reserved.
! Copyright (c) 2009-2014 Los Alamos National Security, LLC.
! All Rights reserved.
! $COPYRIGHT$
#include "ompi/mpi/fortran/configure-fortran-output.h"
subroutine PMPI_Get_accumulate_f08(origin_addr,origin_count,origin_datatype,&
result_addr,result_count,result_datatype,&
target_rank,target_disp,target_count, &
target_datatype,op,win,ierror)
use :: mpi_f08_types, only : MPI_Datatype, MPI_Op, MPI_Win, MPI_ADDRESS_KIND
use :: mpi_f08, only : ompi_get_accumulate_f
implicit none
OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: origin_addr
INTEGER, INTENT(IN) :: origin_count, result_count, target_rank, target_count
TYPE(MPI_Datatype), INTENT(IN) :: origin_datatype
OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(OUT) :: result_addr
TYPE(MPI_Datatype), INTENT(IN) :: result_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
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
integer :: c_ierror
call ompi_get_accumulate_f(origin_addr,origin_count,origin_datatype%MPI_VAL,&
result_addr,result_count,result_datatype%MPI_VAL,&
target_rank,target_disp,target_count,target_datatype%MPI_VAL,&
op%MPI_VAL,win%MPI_VAL,c_ierror)
if (present(ierror)) ierror = c_ierror
end subroutine PMPI_Get_accumulate_f08

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

@ -0,0 +1,32 @@
! -*- f90 -*-
!
! Copyright (c) 2010-2012 Cisco Systems, Inc. All rights reserved.
! Copyright (c) 2009-2014 Los Alamos National Security, LLC.
! All Rights reserved.
! $COPYRIGHT$
#include "ompi/mpi/fortran/configure-fortran-output.h"
subroutine PMPI_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 :: mpi_f08, only : ompi_raccumulate_f
implicit none
OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: 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 PMPI_Raccumulate_f08

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

@ -0,0 +1,36 @@
! -*- f90 -*-
!
! Copyright (c) 2010-2012 Cisco Systems, Inc. All rights reserved.
! Copyright (c) 2009-2014 Los Alamos National Security, LLC.
! All Rights reserved.
! $COPYRIGHT$
#include "ompi/mpi/fortran/configure-fortran-output.h"
subroutine PMPI_Rget_accumulate_f08(origin_addr,origin_count,origin_datatype,&
result_addr,result_count,result_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 :: mpi_f08, only : ompi_rget_accumulate_f
implicit none
OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: origin_addr
INTEGER, INTENT(IN) :: origin_count, result_count, target_rank, target_count
TYPE(MPI_Datatype), INTENT(IN) :: origin_datatype
OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(OUT) :: result_addr
TYPE(MPI_Datatype), INTENT(IN) :: result_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_rget_accumulate_f(origin_addr,origin_count,origin_datatype%MPI_VAL,&
result_addr,result_count,result_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 PMPI_Rget_accumulate_f08

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

@ -0,0 +1,30 @@
! -*- f90 -*-
!
! Copyright (c) 2010-2012 Cisco Systems, Inc. All rights reserved.
! Copyright (c) 2009-2014 Los Alamos National Security, LLC.
! All Rights reserved.
! $COPYRIGHT$
#include "ompi/mpi/fortran/configure-fortran-output.h"
subroutine PMPI_Rget_f08(origin_addr,origin_count,origin_datatype,target_rank,&
target_disp,target_count,target_datatype,win,request,ierror)
use :: mpi_f08_types, only : MPI_Datatype, MPI_Win, MPI_Request, MPI_ADDRESS_KIND
use :: mpi_f08, only : ompi_rget_f
implicit none
OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: 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
TYPE(MPI_Request), INTENT(OUT) :: request
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
integer :: c_ierror
call ompi_rget_f(origin_addr,origin_count,origin_datatype%MPI_VAL,target_rank,&
target_disp,target_count,target_datatype%MPI_VAL,win%MPI_VAL,&
request%MPI_VAL,c_ierror)
if (present(ierror)) ierror = c_ierror
end subroutine PMPI_Rget_f08

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

@ -0,0 +1,30 @@
! -*- f90 -*-
!
! Copyright (c) 2010-2012 Cisco Systems, Inc. All rights reserved.
! Copyright (c) 2009-2014 Los Alamos National Security, LLC.
! All Rights reserved.
! $COPYRIGHT$
#include "ompi/mpi/fortran/configure-fortran-output.h"
subroutine PMPI_Rput_f08(origin_addr,origin_count,origin_datatype,target_rank,&
target_disp,target_count,target_datatype,win,request,ierror)
use :: mpi_f08_types, only : MPI_Datatype, MPI_Win, MPI_Request, MPI_ADDRESS_KIND
use :: mpi_f08, only : ompi_rput_f
implicit none
OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: 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
TYPE(MPI_Request), INTENT(OUT) :: request
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
integer :: c_ierror
call ompi_rput_f(origin_addr,origin_count,origin_datatype%MPI_VAL,target_rank,&
target_disp,target_count,target_datatype%MPI_VAL,win%MPI_VAL,&
request%MPI_VAL,c_ierror)
if (present(ierror)) ierror = c_ierror
end subroutine PMPI_Rput_f08

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

@ -0,0 +1,19 @@
! -*- f90 -*-
!
! Copyright (c) 2010-2012 Cisco Systems, Inc. All rights reserved.
! Copyright (c) 2009-2014 Los Alamos National Security, LLC.
! All Rights reserved.
! $COPYRIGHT$
subroutine PMPI_Win_flush_all_f08(win,ierror)
use :: mpi_f08_types, only : MPI_Win
use :: mpi_f08, only : ompi_win_flush_all_f
implicit none
TYPE(MPI_Win), INTENT(IN) :: win
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
integer :: c_ierror
call ompi_win_flush_all_f(win%MPI_VAL,c_ierror)
if (present(ierror)) ierror = c_ierror
end subroutine PMPI_Win_flush_all_f08

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

@ -0,0 +1,20 @@
! -*- f90 -*-
!
! Copyright (c) 2010-2012 Cisco Systems, Inc. All rights reserved.
! Copyright (c) 2009-2014 Los Alamos National Security, LLC.
! All Rights reserved.
! $COPYRIGHT$
subroutine PMPI_Win_flush_f08(rank,win,ierror)
use :: mpi_f08_types, only : MPI_Win
use :: mpi_f08, only : ompi_win_flush_f
implicit none
INTEGER, INTENT(IN) :: rank
TYPE(MPI_Win), INTENT(IN) :: win
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
integer :: c_ierror
call ompi_win_flush_f(rank,win%MPI_VAL,c_ierror)
if (present(ierror)) ierror = c_ierror
end subroutine PMPI_Win_flush_f08

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

@ -0,0 +1,19 @@
! -*- f90 -*-
!
! Copyright (c) 2010-2012 Cisco Systems, Inc. All rights reserved.
! Copyright (c) 2009-2014 Los Alamos National Security, LLC.
! All Rights reserved.
! $COPYRIGHT$
subroutine PMPI_Win_flush_local_all_f08(win,ierror)
use :: mpi_f08_types, only : MPI_Win
use :: mpi_f08, only : ompi_win_flush_local_all_f
implicit none
TYPE(MPI_Win), INTENT(IN) :: win
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
integer :: c_ierror
call ompi_win_flush_local_all_f(win%MPI_VAL,c_ierror)
if (present(ierror)) ierror = c_ierror
end subroutine PMPI_Win_flush_local_all_f08

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

@ -0,0 +1,20 @@
! -*- f90 -*-
!
! Copyright (c) 2010-2012 Cisco Systems, Inc. All rights reserved.
! Copyright (c) 2009-2014 Los Alamos National Security, LLC.
! All Rights reserved.
! $COPYRIGHT$
subroutine PMPI_Win_flush_local_f08(rank,win,ierror)
use :: mpi_f08_types, only : MPI_Win
use :: mpi_f08, only : ompi_win_flush_local_f
implicit none
INTEGER, INTENT(IN) :: rank
TYPE(MPI_Win), INTENT(IN) :: win
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
integer :: c_ierror
call ompi_win_flush_local_f(rank,win%MPI_VAL,c_ierror)
if (present(ierror)) ierror = c_ierror
end subroutine PMPI_Win_flush_local_f08

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

@ -0,0 +1,32 @@
! -*- f90 -*-
!
! Copyright (c) 2010-2012 Cisco Systems, Inc. All rights reserved.
! Copyright (c) 2009-2014 Los Alamos National Security, LLC.
! All Rights reserved.
! $COPYRIGHT$
#include "ompi/mpi/fortran/configure-fortran-output.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 :: mpi_f08, only : ompi_raccumulate_f
implicit none
OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: 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

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

@ -0,0 +1,36 @@
! -*- f90 -*-
!
! Copyright (c) 2010-2012 Cisco Systems, Inc. All rights reserved.
! Copyright (c) 2009-2014 Los Alamos National Security, LLC.
! All Rights reserved.
! $COPYRIGHT$
#include "ompi/mpi/fortran/configure-fortran-output.h"
subroutine MPI_Rget_accumulate_f08(origin_addr,origin_count,origin_datatype,&
result_addr,result_count,result_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 :: mpi_f08, only : ompi_rget_accumulate_f
implicit none
OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: origin_addr
INTEGER, INTENT(IN) :: origin_count, result_count, target_rank, target_count
TYPE(MPI_Datatype), INTENT(IN) :: origin_datatype
OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(OUT) :: result_addr
TYPE(MPI_Datatype), INTENT(IN) :: result_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_rget_accumulate_f(origin_addr,origin_count,origin_datatype%MPI_VAL,&
result_addr,result_count,result_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_Rget_accumulate_f08

30
ompi/mpi/fortran/use-mpi-f08/rget_f08.F90 Обычный файл
Просмотреть файл

@ -0,0 +1,30 @@
! -*- f90 -*-
!
! Copyright (c) 2010-2012 Cisco Systems, Inc. All rights reserved.
! Copyright (c) 2009-2014 Los Alamos National Security, LLC.
! All Rights reserved.
! $COPYRIGHT$
#include "ompi/mpi/fortran/configure-fortran-output.h"
subroutine MPI_Rget_f08(origin_addr,origin_count,origin_datatype,target_rank,&
target_disp,target_count,target_datatype,win,request,ierror)
use :: mpi_f08_types, only : MPI_Datatype, MPI_Win, MPI_Request, MPI_ADDRESS_KIND
use :: mpi_f08, only : ompi_rget_f
implicit none
OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: 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
TYPE(MPI_Request), INTENT(OUT) :: request
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
integer :: c_ierror
call ompi_rget_f(origin_addr,origin_count,origin_datatype%MPI_VAL,target_rank,&
target_disp,target_count,target_datatype%MPI_VAL,win%MPI_VAL,&
request%MPI_VAL,c_ierror)
if (present(ierror)) ierror = c_ierror
end subroutine MPI_Rget_f08

30
ompi/mpi/fortran/use-mpi-f08/rput_f08.F90 Обычный файл
Просмотреть файл

@ -0,0 +1,30 @@
! -*- f90 -*-
!
! Copyright (c) 2010-2012 Cisco Systems, Inc. All rights reserved.
! Copyright (c) 2009-2014 Los Alamos National Security, LLC.
! All Rights reserved.
! $COPYRIGHT$
#include "ompi/mpi/fortran/configure-fortran-output.h"
subroutine MPI_Rput_f08(origin_addr,origin_count,origin_datatype,target_rank,&
target_disp,target_count,target_datatype,win,request,ierror)
use :: mpi_f08_types, only : MPI_Datatype, MPI_Win, MPI_Request, MPI_ADDRESS_KIND
use :: mpi_f08, only : ompi_rput_f
implicit none
OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: 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
TYPE(MPI_Request), INTENT(OUT) :: request
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
integer :: c_ierror
call ompi_rput_f(origin_addr,origin_count,origin_datatype%MPI_VAL,target_rank,&
target_disp,target_count,target_datatype%MPI_VAL,win%MPI_VAL,&
request%MPI_VAL,c_ierror)
if (present(ierror)) ierror = c_ierror
end subroutine MPI_Rput_f08

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

@ -0,0 +1,19 @@
! -*- f90 -*-
!
! Copyright (c) 2010-2012 Cisco Systems, Inc. All rights reserved.
! Copyright (c) 2009-2014 Los Alamos National Security, LLC.
! All Rights reserved.
! $COPYRIGHT$
subroutine MPI_Win_flush_all_f08(win,ierror)
use :: mpi_f08_types, only : MPI_Win
use :: mpi_f08, only : ompi_win_flush_all_f
implicit none
TYPE(MPI_Win), INTENT(IN) :: win
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
integer :: c_ierror
call ompi_win_flush_all_f(win%MPI_VAL,c_ierror)
if (present(ierror)) ierror = c_ierror
end subroutine MPI_Win_flush_all_f08

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

@ -0,0 +1,20 @@
! -*- f90 -*-
!
! Copyright (c) 2010-2012 Cisco Systems, Inc. All rights reserved.
! Copyright (c) 2009-2014 Los Alamos National Security, LLC.
! All Rights reserved.
! $COPYRIGHT$
subroutine MPI_Win_flush_f08(rank,win,ierror)
use :: mpi_f08_types, only : MPI_Win
use :: mpi_f08, only : ompi_win_flush_f
implicit none
INTEGER, INTENT(IN) :: rank
TYPE(MPI_Win), INTENT(IN) :: win
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
integer :: c_ierror
call ompi_win_flush_f(rank,win%MPI_VAL,c_ierror)
if (present(ierror)) ierror = c_ierror
end subroutine MPI_Win_flush_f08

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

@ -0,0 +1,19 @@
! -*- f90 -*-
!
! Copyright (c) 2010-2012 Cisco Systems, Inc. All rights reserved.
! Copyright (c) 2009-2014 Los Alamos National Security, LLC.
! All Rights reserved.
! $COPYRIGHT$
subroutine MPI_Win_flush_local_all_f08(win,ierror)
use :: mpi_f08_types, only : MPI_Win
use :: mpi_f08, only : ompi_win_flush_local_all_f
implicit none
TYPE(MPI_Win), INTENT(IN) :: win
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
integer :: c_ierror
call ompi_win_flush_local_all_f(win%MPI_VAL,c_ierror)
if (present(ierror)) ierror = c_ierror
end subroutine MPI_Win_flush_local_all_f08

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

@ -0,0 +1,20 @@
! -*- f90 -*-
!
! Copyright (c) 2010-2012 Cisco Systems, Inc. All rights reserved.
! Copyright (c) 2009-2014 Los Alamos National Security, LLC.
! All Rights reserved.
! $COPYRIGHT$
subroutine MPI_Win_flush_local_f08(rank,win,ierror)
use :: mpi_f08_types, only : MPI_Win
use :: mpi_f08, only : ompi_win_flush_local_f
implicit none
INTEGER, INTENT(IN) :: rank
TYPE(MPI_Win), INTENT(IN) :: win
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
integer :: c_ierror
call ompi_win_flush_local_f(rank,win%MPI_VAL,c_ierror)
if (present(ierror)) ierror = c_ierror
end subroutine MPI_Win_flush_local_f08

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

@ -7,7 +7,7 @@
! of Tennessee Research Foundation. All rights
! reserved.
! Copyright (c) 2012 Inria. All rights reserved.
! Copyright (c) 2013 Los Alamos National Security, LLC. All rights
! Copyright (c) 2013-2014 Los Alamos National Security, LLC. All rights
! reserved.
! $COPYRIGHT$
!
@ -1641,6 +1641,42 @@ end subroutine PMPI_Comm_test_inter
end interface
interface MPI_Compare_and_swap
subroutine MPI_Compare_and_swap(origin_addr, compare_addr, result_addr, &
datatype, target_rank, target_disp, win, ierror)
include 'mpif-config.h'
@OMPI_FORTRAN_IGNORE_TKR_PREDECL@ origin_addr, compare_addr
@OMPI_FORTRAN_IGNORE_TKR_TYPE@, intent(in) :: origin_addr, compare_addr
@OMPI_FORTRAN_IGNORE_TKR_PREDECL@ result_addr
@OMPI_FORTRAN_IGNORE_TKR_TYPE@ :: result_addr
integer, intent(in) :: datatype
integer, intent(in) :: target_rank
integer(kind=MPI_ADDRESS_KIND), intent(in) :: target_disp
integer, intent(in) :: win
integer, intent(out) :: ierror
end subroutine MPI_Compare_and_swap
end interface
interface PMPI_Compare_and_swap
subroutine PMPI_Compare_and_swap(origin_addr, compare_addr, result_addr, &
datatype, target_rank, target_disp, win, ierror)
include 'mpif-config.h'
@OMPI_FORTRAN_IGNORE_TKR_PREDECL@ origin_addr, compare_addr
@OMPI_FORTRAN_IGNORE_TKR_TYPE@, intent(in) :: origin_addr, compare_addr
@OMPI_FORTRAN_IGNORE_TKR_PREDECL@ result_addr
@OMPI_FORTRAN_IGNORE_TKR_TYPE@ :: result_addr
integer, intent(in) :: datatype
integer, intent(in) :: target_rank
integer(kind=MPI_ADDRESS_KIND), intent(in) :: target_disp
integer, intent(in) :: win
integer, intent(out) :: ierror
end subroutine PMPI_Compare_and_swap
end interface
interface MPI_Dims_create
subroutine MPI_Dims_create(nnodes, ndims, dims, ierror)
@ -1944,6 +1980,43 @@ end subroutine PMPI_Exscan
end interface
interface MPI_Fetch_and_op
subroutine MPI_Fetch_and_op(origin_addr, result_addr, datatype, target_rank,&
target_disp, op, win, ierror)
include 'mpif-config.h'
@OMPI_FORTRAN_IGNORE_TKR_PREDECL@ origin_addr
@OMPI_FORTRAN_IGNORE_TKR_TYPE@, intent(in) :: origin_addr
@OMPI_FORTRAN_IGNORE_TKR_PREDECL@ result_addr
@OMPI_FORTRAN_IGNORE_TKR_TYPE@ :: result_addr
integer, intent(in) :: datatype
integer, intent(in) :: target_rank
integer(kind=MPI_ADDRESS_KIND), intent(in) :: target_disp
integer, intent(in) :: op
integer, intent(in) :: win
integer, intent(out) :: ierror
end subroutine MPI_Fetch_and_op
end interface
interface PMPI_Fetch_and_op
subroutine PMPI_Fetch_and_op(origin_addr, result_addr, datatype, target_rank,&
target_disp, op, win, ierror)
include 'mpif-config.h'
@OMPI_FORTRAN_IGNORE_TKR_PREDECL@ origin_addr
@OMPI_FORTRAN_IGNORE_TKR_TYPE@, intent(in) :: origin_addr
@OMPI_FORTRAN_IGNORE_TKR_PREDECL@ result_addr
@OMPI_FORTRAN_IGNORE_TKR_TYPE@ :: result_addr
integer, intent(in) :: datatype
integer, intent(in) :: target_rank
integer(kind=MPI_ADDRESS_KIND), intent(in) :: target_disp
integer, intent(in) :: op
integer, intent(in) :: win
integer, intent(out) :: ierror
end subroutine PMPI_Fetch_and_op
end interface
interface MPI_Finalize
@ -2120,6 +2193,57 @@ end subroutine PMPI_Get
end interface
interface MPI_Get_accumulate
subroutine MPI_Get_accumulate(origin_addr, origin_count, origin_datatype,&
result_addr, result_count, result_datatype,&
target_rank, target_disp, target_count, &
target_datatype, op, win, 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) :: ierror
end subroutine MPI_Get_accumulate
end interface
interface PMPI_Get_accumulate
subroutine PMPI_Get_accumulate(origin_addr, origin_count, origin_datatype,&
result_addr, result_count, result_datatype,&
target_rank, target_disp, target_count, &
target_datatype, op, win, 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) :: ierror
end subroutine PMPI_Get_accumulate
end interface
interface MPI_Get_address
@ -4869,6 +4993,187 @@ end subroutine PMPI_Query_thread
end interface
interface MPI_Raccumulate
subroutine MPI_Raccumulate(origin_addr, origin_count, origin_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
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_Raccumulate
end interface
interface PMPI_Raccumulate
subroutine PMPI_Raccumulate(origin_addr, origin_count, origin_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
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_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)
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_Get
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_Recv
@ -7820,6 +8125,81 @@ end subroutine PMPI_Win_fence
end interface
interface MPI_Win_flush
subroutine MPI_Win_flush(rank, win, ierror)
integer, intent(in) :: rank
integer, intent(in) :: win
integer, intent(out) :: ierror
end subroutine MPI_Win_flush
end interface
interface PMPI_Win_flush
subroutine PMPI_Win_flush(rank, win, ierror)
integer, intent(in) :: rank
integer, intent(in) :: win
integer, intent(out) :: ierror
end subroutine PMPI_Win_flush
end interface
interface MPI_Win_flush_all
subroutine MPI_Win_flush_all(win, ierror)
integer, intent(in) :: win
integer, intent(out) :: ierror
end subroutine MPI_Win_flush_all
end interface
interface PMPI_Win_flush_all
subroutine PMPI_Win_flush_all(win, ierror)
integer, intent(in) :: win
integer, intent(out) :: ierror
end subroutine PMPI_Win_flush_all
end interface
interface MPI_Win_flush_local
subroutine MPI_Win_flush_local(rank, win, ierror)
integer, intent(in) :: rank
integer, intent(in) :: win
integer, intent(out) :: ierror
end subroutine MPI_Win_flush_local
end interface
interface PMPI_Win_flush_local
subroutine PMPI_Win_flush_local(rank, win, ierror)
integer, intent(in) :: rank
integer, intent(in) :: win
integer, intent(out) :: ierror
end subroutine PMPI_Win_flush_local
end interface
interface MPI_Win_flush_local_all
subroutine MPI_Win_flush_local_all(win, ierror)
integer, intent(in) :: win
integer, intent(out) :: ierror
end subroutine MPI_Win_flush_local_all
end interface
interface PMPI_Win_flush_local_all
subroutine PMPI_Win_flush_local_all(win, ierror)
integer, intent(in) :: win
integer, intent(out) :: ierror
end subroutine PMPI_Win_flush_local_all
end interface
interface MPI_Win_free

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

@ -11353,3 +11353,527 @@ start MPI_Dist_graph_neighbors small
output_295 MPI_Dist_graph_neighbors
end MPI_Dist_graph_neighbors
#------------------------------------------------------------------------
output_296() {
if test "$output" = "0"; then
return 0
fi
procedure=$1
cat <<EOF
subroutine ${procedure}(rank, win, ierror)
integer, intent(in) :: rank
integer, intent(in) :: win
integer, intent(out) :: ierror
end subroutine ${procedure}
EOF
}
start MPI_Win_flush small
output_296 MPI_Win_flush
end MPI_Win_flush
#------------------------------------------------------------------------
output_297() {
if test "$output" = "0"; then
return 0
fi
procedure=$1
cat <<EOF
subroutine ${procedure}(win, ierror)
integer, intent(in) :: win
integer, intent(out) :: ierror
end subroutine ${procedure}
EOF
}
start MPI_Win_flush_all small
output_297 MPI_Win_flush_all
end MPI_Win_flush_all
#------------------------------------------------------------------------
output_298() {
if test "$output" = "0"; then
return 0
fi
procedure=$1
cat <<EOF
subroutine ${procedure}(rank, win, ierror)
integer, intent(in) :: rank
integer, intent(in) :: win
integer, intent(out) :: ierror
end subroutine ${procedure}
EOF
}
start MPI_Win_flush_local small
output_298 MPI_Win_flush_local
end MPI_Win_flush_local
#------------------------------------------------------------------------
output_299() {
if test "$output" = "0"; then
return 0
fi
procedure=$1
cat <<EOF
subroutine ${procedure}(win, ierror)
integer, intent(in) :: win
integer, intent(out) :: ierror
end subroutine ${procedure}
EOF
}
start MPI_Win_flush_local_all small
output_299 MPI_Win_flush_local_all
end MPI_Win_flush_local_all
#------------------------------------------------------------------------
output_300() {
if test "$output" = "0"; then
return 0
fi
procedure=$1
rank=$2
type=$4
proc="$1$2D$3"
cat <<EOF
subroutine ${proc}(origin_addr, origin_count, origin_datatype, result_addr, &
result_count, result_datatype, target_rank, target_disp, &
target_count, target_datatype, op, win, ierror)
include 'mpif-config.h'
${type} :: origin_addr
integer, intent(in) :: origin_count
integer, intent(in) :: origin_datatype
${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) :: ierror
end subroutine ${proc}
EOF
}
start MPI_Get_accumulate medium
for rank in $allranks
do
case "$rank" in 0) dim='' ; esac
case "$rank" in 1) dim=', dimension(*)' ; esac
case "$rank" in 2) dim=', dimension(1,*)' ; esac
case "$rank" in 3) dim=', dimension(1,1,*)' ; esac
case "$rank" in 4) dim=', dimension(1,1,1,*)' ; esac
case "$rank" in 5) dim=', dimension(1,1,1,1,*)' ; esac
case "$rank" in 6) dim=', dimension(1,1,1,1,1,*)' ; esac
case "$rank" in 7) dim=', dimension(1,1,1,1,1,1,*)' ; esac
output_300 MPI_Get_accumulate ${rank} CH "character${dim}"
output_300 MPI_Get_accumulate ${rank} L "logical${dim}"
for kind in $ikinds
do
output_300 MPI_Get_accumulate ${rank} I${kind} "integer*${kind}${dim}"
done
for kind in $rkinds
do
output_300 MPI_Get_accumulate ${rank} R${kind} "real*${kind}${dim}"
done
for kind in $ckinds
do
output_300 MPI_Get_accumulate ${rank} C${kind} "complex*${kind}${dim}"
done
done
end MPI_Get_accumulate
#------------------------------------------------------------------------
output_301() {
if test "$output" = "0"; then
return 0
fi
procedure=$1
rank=$2
type=$4
proc="$1$2D$3"
cat <<EOF
subroutine ${proc}(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'
${type} :: origin_addr
integer, intent(in) :: origin_count
integer, intent(in) :: origin_datatype
${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 ${proc}
EOF
}
start MPI_Rget_accumulate medium
for rank in $allranks
do
case "$rank" in 0) dim='' ; esac
case "$rank" in 1) dim=', dimension(*)' ; esac
case "$rank" in 2) dim=', dimension(1,*)' ; esac
case "$rank" in 3) dim=', dimension(1,1,*)' ; esac
case "$rank" in 4) dim=', dimension(1,1,1,*)' ; esac
case "$rank" in 5) dim=', dimension(1,1,1,1,*)' ; esac
case "$rank" in 6) dim=', dimension(1,1,1,1,1,*)' ; esac
case "$rank" in 7) dim=', dimension(1,1,1,1,1,1,*)' ; esac
output_301 MPI_Rget_accumulate ${rank} CH "character${dim}"
output_301 MPI_Rget_accumulate ${rank} L "logical${dim}"
for kind in $ikinds
do
output_301 MPI_Rget_accumulate ${rank} I${kind} "integer*${kind}${dim}"
done
for kind in $rkinds
do
output_301 MPI_Rget_accumulate ${rank} R${kind} "real*${kind}${dim}"
done
for kind in $ckinds
do
output_301 MPI_Rget_accumulate ${rank} C${kind} "complex*${kind}${dim}"
done
done
end MPI_Rget_accumulate
#------------------------------------------------------------------------
output_302() {
if test "$output" = "0"; then
return 0
fi
procedure=$1
rank=$2
type=$4
proc="$1$2D$3"
cat <<EOF
subroutine ${proc}(origin_addr, result_addr, datatype, target_rank, target_disp, &
op, win, ierror)
include 'mpif-config.h'
${type} :: origin_addr
${type} :: result_addr
integer, intent(in) :: datatype
integer, intent(in) :: target_rank
integer(kind=MPI_ADDRESS_KIND), intent(in) :: target_disp
integer, intent(in) :: target_count
integer, intent(in) :: op
integer, intent(in) :: win
integer, intent(out) :: ierror
end subroutine ${proc}
EOF
}
start MPI_Fetch_and_op medium
for rank in $allranks
do
case "$rank" in 0) dim='' ; esac
case "$rank" in 1) dim=', dimension(*)' ; esac
case "$rank" in 2) dim=', dimension(1,*)' ; esac
case "$rank" in 3) dim=', dimension(1,1,*)' ; esac
case "$rank" in 4) dim=', dimension(1,1,1,*)' ; esac
case "$rank" in 5) dim=', dimension(1,1,1,1,*)' ; esac
case "$rank" in 6) dim=', dimension(1,1,1,1,1,*)' ; esac
case "$rank" in 7) dim=', dimension(1,1,1,1,1,1,*)' ; esac
output_302 MPI_Fetch_and_op ${rank} CH "character${dim}"
output_302 MPI_Fetch_and_op ${rank} L "logical${dim}"
for kind in $ikinds
do
output_302 MPI_Fetch_and_op ${rank} I${kind} "integer*${kind}${dim}"
done
for kind in $rkinds
do
output_302 MPI_Fetch_and_op ${rank} R${kind} "real*${kind}${dim}"
done
for kind in $ckinds
do
output_302 MPI_Fetch_and_op ${rank} C${kind} "complex*${kind}${dim}"
done
done
end MPI_Fetch_and_op
#------------------------------------------------------------------------
output_303() {
if test "$output" = "0"; then
return 0
fi
procedure=$1
rank=$2
type=$4
proc="$1$2D$3"
cat <<EOF
subroutine ${proc}(origin_addr, compare_addr, result_addr, datatype, target_rank, &
target_disp, win, ierror)
include 'mpif-config.h'
${type} :: origin_addr
${type} :: compare_addr
${type} :: result_addr
integer, intent(in) :: datatype
integer, intent(in) :: target_rank
integer(kind=MPI_ADDRESS_KIND), intent(in) :: target_disp
integer, intent(in) :: target_count
integer, intent(in) :: win
integer, intent(out) :: ierror
end subroutine ${proc}
EOF
}
start MPI_Compare_and_swap medium
for rank in $allranks
do
case "$rank" in 0) dim='' ; esac
case "$rank" in 1) dim=', dimension(*)' ; esac
case "$rank" in 2) dim=', dimension(1,*)' ; esac
case "$rank" in 3) dim=', dimension(1,1,*)' ; esac
case "$rank" in 4) dim=', dimension(1,1,1,*)' ; esac
case "$rank" in 5) dim=', dimension(1,1,1,1,*)' ; esac
case "$rank" in 6) dim=', dimension(1,1,1,1,1,*)' ; esac
case "$rank" in 7) dim=', dimension(1,1,1,1,1,1,*)' ; esac
output_303 MPI_Compare_and_swap ${rank} CH "character${dim}"
output_303 MPI_Compare_and_swap ${rank} L "logical${dim}"
for kind in $ikinds
do
output_303 MPI_Compare_and_swap ${rank} I${kind} "integer*${kind}${dim}"
done
for kind in $rkinds
do
output_303 MPI_Compare_and_swap ${rank} R${kind} "real*${kind}${dim}"
done
for kind in $ckinds
do
output_303 MPI_Compare_and_swap ${rank} C${kind} "complex*${kind}${dim}"
done
done
end MPI_Compare_and_swap
#------------------------------------------------------------------------
output_304() {
if test "$output" = "0"; then
return 0
fi
procedure=$1
rank=$2
type=$4
proc="$1$2D$3"
cat <<EOF
subroutine ${proc}(origin_addr, origin_count, origin_datatype, target_rank, target_disp, &
target_count, target_datatype, win, request, ierror)
include 'mpif-config.h'
${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 ${proc}
EOF
}
start MPI_Rget medium
for rank in $allranks
do
case "$rank" in 0) dim='' ; esac
case "$rank" in 1) dim=', dimension(*)' ; esac
case "$rank" in 2) dim=', dimension(1,*)' ; esac
case "$rank" in 3) dim=', dimension(1,1,*)' ; esac
case "$rank" in 4) dim=', dimension(1,1,1,*)' ; esac
case "$rank" in 5) dim=', dimension(1,1,1,1,*)' ; esac
case "$rank" in 6) dim=', dimension(1,1,1,1,1,*)' ; esac
case "$rank" in 7) dim=', dimension(1,1,1,1,1,1,*)' ; esac
output_304 MPI_Rget ${rank} CH "character${dim}"
output_304 MPI_Rget ${rank} L "logical${dim}"
for kind in $ikinds
do
output_304 MPI_Rget ${rank} I${kind} "integer*${kind}${dim}"
done
for kind in $rkinds
do
output_304 MPI_Rget ${rank} R${kind} "real*${kind}${dim}"
done
for kind in $ckinds
do
output_304 MPI_Rget ${rank} C${kind} "complex*${kind}${dim}"
done
done
end MPI_Rget
#------------------------------------------------------------------------
output_305() {
if test "$output" = "0"; then
return 0
fi
procedure=$1
rank=$2
type=$4
proc="$1$2D$3"
cat <<EOF
subroutine ${proc}(origin_addr, origin_count, origin_datatype, target_rank, target_disp, &
target_count, target_datatype, win, request, ierror)
include 'mpif-config.h'
${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 ${proc}
EOF
}
start MPI_Rput medium
for rank in $allranks
do
case "$rank" in 0) dim='' ; esac
case "$rank" in 1) dim=', dimension(*)' ; esac
case "$rank" in 2) dim=', dimension(1,*)' ; esac
case "$rank" in 3) dim=', dimension(1,1,*)' ; esac
case "$rank" in 4) dim=', dimension(1,1,1,*)' ; esac
case "$rank" in 5) dim=', dimension(1,1,1,1,*)' ; esac
case "$rank" in 6) dim=', dimension(1,1,1,1,1,*)' ; esac
case "$rank" in 7) dim=', dimension(1,1,1,1,1,1,*)' ; esac
output_305 MPI_Rput ${rank} CH "character${dim}"
output_305 MPI_Rput ${rank} L "logical${dim}"
for kind in $ikinds
do
output_305 MPI_Rput ${rank} I${kind} "integer*${kind}${dim}"
done
for kind in $rkinds
do
output_305 MPI_Rput ${rank} R${kind} "real*${kind}${dim}"
done
for kind in $ckinds
do
output_305 MPI_Rput ${rank} C${kind} "complex*${kind}${dim}"
done
done
end MPI_Rput
#------------------------------------------------------------------------
output_306() {
if test "$output" = "0"; then
return 0
fi
procedure=$1
rank=$2
type=$4
proc="$1$2D$3"
cat <<EOF
subroutine ${proc}(origin_addr, origin_count, origin_datatype, target_rank, target_disp, &
target_count, target_datatype, op, win, request, ierror)
include 'mpif-config.h'
${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) :: op
integer, intent(in) :: win
integet, intent(out) :: request
integer, intent(out) :: ierror
end subroutine ${proc}
EOF
}
start MPI_Raccumulate medium
for rank in $allranks
do
case "$rank" in 0) dim='' ; esac
case "$rank" in 1) dim=', dimension(*)' ; esac
case "$rank" in 2) dim=', dimension(1,*)' ; esac
case "$rank" in 3) dim=', dimension(1,1,*)' ; esac
case "$rank" in 4) dim=', dimension(1,1,1,*)' ; esac
case "$rank" in 5) dim=', dimension(1,1,1,1,*)' ; esac
case "$rank" in 6) dim=', dimension(1,1,1,1,1,*)' ; esac
case "$rank" in 7) dim=', dimension(1,1,1,1,1,1,*)' ; esac
output_306 MPI_Raccumulate ${rank} CH "character${dim}"
output_306 MPI_Raccumulate ${rank} L "logical${dim}"
for kind in $ikinds
do
output_306 MPI_Raccumulate ${rank} I${kind} "integer*${kind}${dim}"
done
for kind in $rkinds
do
output_306 MPI_Raccumulate ${rank} R${kind} "real*${kind}${dim}"
done
for kind in $ckinds
do
output_306 MPI_Raccumulate ${rank} C${kind} "complex*${kind}${dim}"
done
done
end MPI_Raccumulate