Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions ompi/mpi/fortran/use-mpi-f08/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
# Copyright (c) 2015-2017 Research Organization for Information Science
# and Technology (RIST). All rights reserved.
# Copyright (c) 2016 IBM Corporation. All rights reserved.
# Copyright (c) 2017 FUJITSU LIMITED. All rights reserved.
#
# $COPYRIGHT$
#
Expand Down Expand Up @@ -533,9 +534,13 @@ pmpi_api_files = \
profile/pfile_get_view_f08.F90 \
profile/pfile_iread_at_f08.F90 \
profile/pfile_iread_f08.F90 \
profile/pfile_iread_at_all_f08.F90 \
profile/pfile_iread_all_f08.F90 \
profile/pfile_iread_shared_f08.F90 \
profile/pfile_iwrite_at_f08.F90 \
profile/pfile_iwrite_f08.F90 \
profile/pfile_iwrite_at_all_f08.F90 \
profile/pfile_iwrite_all_f08.F90 \
profile/pfile_iwrite_shared_f08.F90 \
profile/pfile_open_f08.F90 \
profile/pfile_preallocate_f08.F90 \
Expand Down
107 changes: 107 additions & 0 deletions ompi/mpi/fortran/use-mpi-f08/mod/pmpi-f08-interfaces.F90
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
! Copyright (c) 2012 Inria. All rights reserved.
! Copyright (c) 2015-2017 Research Organization for Information Science
! and Technology (RIST). All rights reserved.
! Copyright (c) 2017 FUJITSU LIMITED. All rights reserved.
! $COPYRIGHT$
!
! This file provides the interface specifications for the MPI Fortran
Expand Down Expand Up @@ -2105,6 +2106,36 @@ subroutine PMPI_Type_set_name_f08(datatype,type_name,ierror)
end subroutine PMPI_Type_set_name_f08
end interface PMPI_Type_set_name

interface PMPI_Win_allocate
subroutine PMPI_Win_allocate_f08(size, disp_unit, info, comm, &
baseptr, win, ierror)
USE, INTRINSIC :: ISO_C_BINDING, ONLY : C_PTR
use :: mpi_f08_types, only : MPI_Info, MPI_Comm, MPI_Win, MPI_ADDRESS_KIND
INTEGER(KIND=MPI_ADDRESS_KIND), INTENT(IN) :: size
INTEGER, INTENT(IN) :: disp_unit
TYPE(MPI_Info), INTENT(IN) :: info
TYPE(MPI_Comm), INTENT(IN) :: comm
TYPE(C_PTR), INTENT(OUT) :: baseptr
TYPE(MPI_Win), INTENT(OUT) :: win
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine PMPI_Win_allocate_f08
end interface PMPI_Win_allocate

interface PMPI_Win_allocate_shared
subroutine PMPI_Win_allocate_shared_f08(size, disp_unit, info, comm, &
baseptr, win, ierror)
USE, INTRINSIC :: ISO_C_BINDING, ONLY : C_PTR
use :: mpi_f08_types, only : MPI_Info, MPI_Comm, MPI_Win, MPI_ADDRESS_KIND
INTEGER(KIND=MPI_ADDRESS_KIND), INTENT(IN) :: size
INTEGER, INTENT(IN) :: disp_unit
TYPE(MPI_Info), INTENT(IN) :: info
TYPE(MPI_Comm), INTENT(IN) :: comm
TYPE(C_PTR), INTENT(OUT) :: baseptr
TYPE(MPI_Win), INTENT(OUT) :: win
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine PMPI_Win_allocate_shared_f08
end interface PMPI_Win_allocate_shared

interface PMPI_Win_create_keyval
subroutine PMPI_Win_create_keyval_f08(win_copy_attr_fn,win_delete_attr_fn,win_keyval, &
extra_state,ierror)
Expand Down Expand Up @@ -2150,6 +2181,16 @@ subroutine PMPI_Win_get_attr_f08(win,win_keyval,attribute_val,flag,ierror)
end subroutine PMPI_Win_get_attr_f08
end interface PMPI_Win_get_attr

interface PMPI_Win_get_info
subroutine PMPI_Win_get_info_f08(win,info,ierror)
use :: mpi_f08_types, only : MPI_Win, MPI_Info
implicit none
TYPE(MPI_Win), INTENT(IN) :: win
TYPE(MPI_Info), INTENT(OUT) :: info
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine PMPI_Win_get_info_f08
end interface PMPI_Win_get_info

interface PMPI_Win_get_name
subroutine PMPI_Win_get_name_f08(win,win_name,resultlen,ierror)
use :: mpi_f08_types, only : MPI_Win, MPI_MAX_OBJECT_NAME
Expand All @@ -2172,6 +2213,16 @@ subroutine PMPI_Win_set_attr_f08(win,win_keyval,attribute_val,ierror)
end subroutine PMPI_Win_set_attr_f08
end interface PMPI_Win_set_attr

interface PMPI_Win_set_info
subroutine PMPI_Win_set_info_f08(win,info,ierror)
use :: mpi_f08_types, only : MPI_Win, MPI_Info
implicit none
TYPE(MPI_Win), INTENT(IN) :: win
TYPE(MPI_Info), INTENT(IN) :: info
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine PMPI_Win_set_info_f08
end interface PMPI_Win_set_info

interface PMPI_Win_set_name
subroutine PMPI_Win_set_name_f08(win,win_name,ierror)
use :: mpi_f08_types, only : MPI_Win
Expand Down Expand Up @@ -3187,6 +3238,48 @@ subroutine PMPI_Win_create_f08(base,size,disp_unit,info,comm,win,ierror)
end subroutine PMPI_Win_create_f08
end interface PMPI_Win_create

interface PMPI_Win_create_dynamic
subroutine PMPI_Win_create_dynamic_f08(info,comm,win,ierror)
use :: mpi_f08_types, only : MPI_Info, MPI_Comm, MPI_Win
implicit none
TYPE(MPI_Info), INTENT(IN) :: info
TYPE(MPI_Comm), INTENT(IN) :: comm
TYPE(MPI_Win), INTENT(OUT) :: win
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine PMPI_Win_create_dynamic_f08
end interface PMPI_Win_create_dynamic

interface PMPI_Win_attach
subroutine PMPI_Win_attach_f08(win,base,size,ierror)
use :: mpi_f08_types, only : MPI_Win, MPI_ADDRESS_KIND
implicit none
!DEC$ ATTRIBUTES NO_ARG_CHECK :: base
!GCC$ ATTRIBUTES NO_ARG_CHECK :: base
!$PRAGMA IGNORE_TKR base
!DIR$ IGNORE_TKR base
!IBM* IGNORE_TKR base
OMPI_FORTRAN_IGNORE_TKR_TYPE :: base
INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: size
TYPE(MPI_Win), INTENT(IN) :: win
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine PMPI_Win_attach_f08
end interface PMPI_Win_attach

interface PMPI_Win_detach
subroutine PMPI_Win_detach_f08(win,base,ierror)
use :: mpi_f08_types, only : MPI_Win, MPI_ADDRESS_KIND
implicit none
!DEC$ ATTRIBUTES NO_ARG_CHECK :: base
!GCC$ ATTRIBUTES NO_ARG_CHECK :: base
!$PRAGMA IGNORE_TKR base
!DIR$ IGNORE_TKR base
!IBM* IGNORE_TKR base
OMPI_FORTRAN_IGNORE_TKR_TYPE :: base
TYPE(MPI_Win), INTENT(IN) :: win
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine PMPI_Win_detach_f08
end interface PMPI_Win_detach

interface PMPI_Win_fence
subroutine PMPI_Win_fence_f08(assert,win,ierror)
use :: mpi_f08_types, only : MPI_Win
Expand Down Expand Up @@ -3247,6 +3340,20 @@ subroutine PMPI_Win_post_f08(group,assert,win,ierror)
end subroutine PMPI_Win_post_f08
end interface PMPI_Win_post

interface PMPI_Win_shared_query
subroutine PMPI_Win_shared_query_f08(win, rank, size, disp_unit, baseptr,&
ierror)
USE, INTRINSIC :: ISO_C_BINDING, ONLY : C_PTR
use :: mpi_f08_types, only : MPI_Win, MPI_ADDRESS_KIND
TYPE(MPI_Win), INTENT(IN) :: win
INTEGER, INTENT(IN) :: rank
INTEGER(KIND=MPI_ADDRESS_KIND), INTENT(OUT) :: size
INTEGER, INTENT(OUT) :: disp_unit
TYPE(C_PTR), INTENT(OUT) :: baseptr
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine PMPI_Win_shared_query_f08
end interface PMPI_Win_shared_query

interface PMPI_Win_start
subroutine PMPI_Win_start_f08(group,assert,win,ierror)
use :: mpi_f08_types, only : MPI_Group, MPI_Win
Expand Down
26 changes: 26 additions & 0 deletions ompi/mpi/fortran/use-mpi-f08/profile/pfile_iread_all_f08.F90
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
! -*- f90 -*-
!
! Copyright (c) 2010-2012 Cisco Systems, Inc. All rights reserved.
! Copyright (c) 2009-2012 Los Alamos National Security, LLC.
! All Rights reserved.
! Copyright (c) 2017 FUJITSU LIMITED. All rights reserved.
! $COPYRIGHT$

#include "ompi/mpi/fortran/configure-fortran-output.h"

subroutine PMPI_File_iread_all_f08(fh,buf,count,datatype,request,ierror)
use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Request
use :: mpi_f08, only : ompi_file_iread_all_f
implicit none
TYPE(MPI_File), INTENT(IN) :: fh
OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf
INTEGER, INTENT(IN) :: count
TYPE(MPI_Datatype), INTENT(IN) :: datatype
TYPE(MPI_Request), INTENT(OUT) :: request
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
integer :: c_ierror

call ompi_file_iread_all_f(fh%MPI_VAL,buf,count,datatype%MPI_VAL,request%MPI_VAL,c_ierror)
if (present(ierror)) ierror = c_ierror

end subroutine PMPI_File_iread_all_f08
28 changes: 28 additions & 0 deletions ompi/mpi/fortran/use-mpi-f08/profile/pfile_iread_at_all_f08.F90
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
! -*- f90 -*-
!
! Copyright (c) 2010-2012 Cisco Systems, Inc. All rights reserved.
! Copyright (c) 2009-2012 Los Alamos National Security, LLC.
! All Rights reserved.
! Copyright (c) 2017 FUJITSU LIMITED. All rights reserved.
! $COPYRIGHT$

#include "ompi/mpi/fortran/configure-fortran-output.h"

subroutine PMPI_File_iread_at_all_f08(fh,offset,buf,count,datatype,request,ierror)
use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Request, MPI_OFFSET_KIND
use :: mpi_f08, only : ompi_file_iread_at_all_f
implicit none
TYPE(MPI_File), INTENT(IN) :: fh
INTEGER(MPI_OFFSET_KIND), INTENT(IN) :: offset
OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf
INTEGER, INTENT(IN) :: count
TYPE(MPI_Datatype), INTENT(IN) :: datatype
TYPE(MPI_Request), INTENT(OUT) :: request
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
integer :: c_ierror

call ompi_file_iread_at_all_f(fh%MPI_VAL,offset,buf,count,&
datatype%MPI_VAL,request%MPI_VAL,c_ierror)
if (present(ierror)) ierror = c_ierror

end subroutine PMPI_File_iread_at_all_f08
27 changes: 27 additions & 0 deletions ompi/mpi/fortran/use-mpi-f08/profile/pfile_iwrite_all_f08.F90
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
! -*- f90 -*-
!
! Copyright (c) 2010-2012 Cisco Systems, Inc. All rights reserved.
! Copyright (c) 2009-2012 Los Alamos National Security, LLC.
! All Rights reserved.
! Copyright (c) 2017 FUJITSU LIMITED. All rights reserved.
! $COPYRIGHT$

#include "ompi/mpi/fortran/configure-fortran-output.h"

subroutine PMPI_File_iwrite_all_f08(fh,buf,count,datatype,request,ierror)
use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Request
use :: mpi_f08, only : ompi_file_iwrite_all_f
implicit none
TYPE(MPI_File), INTENT(IN) :: fh
OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf
INTEGER, INTENT(IN) :: count
TYPE(MPI_Datatype), INTENT(IN) :: datatype
TYPE(MPI_Request), INTENT(OUT) :: request
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
integer :: c_ierror

call ompi_file_iwrite_all_f(fh%MPI_VAL,buf,count,&
datatype%MPI_VAL,request%MPI_VAL,c_ierror)
if (present(ierror)) ierror = c_ierror

end subroutine PMPI_File_iwrite_all_f08
28 changes: 28 additions & 0 deletions ompi/mpi/fortran/use-mpi-f08/profile/pfile_iwrite_at_all_f08.F90
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
! -*- f90 -*-
!
! Copyright (c) 2009-2012 Cisco Systems, Inc. All rights reserved.
! Copyright (c) 2009-2012 Los Alamos National Security, LLC.
! All Rights reserved.
! Copyright (c) 2017 FUJITSU LIMITED. All rights reserved.
! $COPYRIGHT$

#include "ompi/mpi/fortran/configure-fortran-output.h"

subroutine PMPI_File_iwrite_at_all_f08(fh,offset,buf,count,datatype,request,ierror)
use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Request, MPI_OFFSET_KIND
use :: mpi_f08, only : ompi_file_iwrite_at_all_f
implicit none
TYPE(MPI_File), INTENT(IN) :: fh
INTEGER(MPI_OFFSET_KIND), INTENT(IN) :: offset
OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf
INTEGER, INTENT(IN) :: count
TYPE(MPI_Datatype), INTENT(IN) :: datatype
TYPE(MPI_Request), INTENT(OUT) :: request
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
integer :: c_ierror

call ompi_file_iwrite_at_all_f(fh%MPI_VAL,offset,buf,count,&
datatype%MPI_VAL,request%MPI_VAL,c_ierror)
if (present(ierror)) ierror = c_ierror

end subroutine PMPI_File_iwrite_at_all_f08