[mpich-commits] [mpich] MPICH primary repository branch, master, updated. v3.1.2-102-gd12700f

Service Account noreply at mpich.org
Thu Aug 21 13:15:06 CDT 2014


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "MPICH primary repository".

The branch, master has been updated
       via  d12700f614e37299752c7750a73c273fdb6bdfcc (commit)
       via  cf09bff52aa420c1aed6185f6fcfa9cf94b912ff (commit)
       via  f58bd7ad372546cbc83fb67c767b218b1f4fe82a (commit)
      from  c3ab4aee1256f18b7e7e791ba758c08431acc71c (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://git.mpich.org/mpich.git/commitdiff/d12700f614e37299752c7750a73c273fdb6bdfcc

commit d12700f614e37299752c7750a73c273fdb6bdfcc
Author: Junchao Zhang <jczhang at mcs.anl.gov>
Date:   Wed Aug 20 18:58:50 2014 -0500

    Added more F08 + TS29113 compiler capability checks
    
    Checks whether the compiler supports intrinsic storage_size() and non-bind(C)
    argument x in C_FUNLOC(x).  Added them since IBM XLF 15.1 fails on these two tests.

diff --git a/confdb/aclocal_fc.m4 b/confdb/aclocal_fc.m4
index 7b5fee1..870a5be 100644
--- a/confdb/aclocal_fc.m4
+++ b/confdb/aclocal_fc.m4
@@ -1180,11 +1180,21 @@ SUBROUTINE test1(buf, count, ierr)
     INTEGER, OPTIONAL     :: ierr
 END SUBROUTINE
 
-! Test procedure
+! Test procedure type and non-bind(c) x in C_FUNCLOC(x)
 SUBROUTINE test2(func)
+    USE, INTRINSIC :: ISO_C_BINDING, ONLY : C_FUNLOC, C_FUNPTR
     PROCEDURE(user_func)  :: func
+    TYPE(C_FUNPTR) :: errhandler_fn
+    errhandler_fn = C_FUNLOC(func)
 END SUBROUTINE
 
+! Test intrinsic storage_size
+SUBROUTINE test3(x, size)
+    CHARACTER, DIMENSION(..) :: x
+    INTEGER, INTENT(OUT) :: size
+    size = storage_size(x)/8
+END SUBROUTINE test3
+
 END MODULE
 
 !==============================================

http://git.mpich.org/mpich.git/commitdiff/cf09bff52aa420c1aed6185f6fcfa9cf94b912ff

commit cf09bff52aa420c1aed6185f6fcfa9cf94b912ff
Author: Junchao Zhang <jczhang at mcs.anl.gov>
Date:   Wed Aug 20 17:36:53 2014 -0500

    Added asynchronous attribute to newcomm of MPI_Comm_idup
    
    It is in errata for MPI-3.0

diff --git a/src/binding/fortran/use_mpi_f08/mpi_c_interface_nobuf.F90 b/src/binding/fortran/use_mpi_f08/mpi_c_interface_nobuf.F90
index f5f59b6..306db6f 100644
--- a/src/binding/fortran/use_mpi_f08/mpi_c_interface_nobuf.F90
+++ b/src/binding/fortran/use_mpi_f08/mpi_c_interface_nobuf.F90
@@ -605,7 +605,7 @@ function MPIR_Comm_idup_c(comm, newcomm, request) &
     use :: mpi_c_interface_types, only : c_Comm, c_Request
     implicit none
     integer(c_Comm), value, intent(in) :: comm
-    integer(c_Comm), intent(out) :: newcomm
+    integer(c_Comm), intent(out), asynchronous :: newcomm
     integer(c_Request), intent(out) :: request
     integer(c_int) :: ierror
 end function MPIR_Comm_idup_c
diff --git a/src/binding/fortran/use_mpi_f08/mpi_f08.F90 b/src/binding/fortran/use_mpi_f08/mpi_f08.F90
index d5029ba..4b3cb9e 100644
--- a/src/binding/fortran/use_mpi_f08/mpi_f08.F90
+++ b/src/binding/fortran/use_mpi_f08/mpi_f08.F90
@@ -1446,7 +1446,7 @@ interface MPI_Comm_idup
         use :: mpi_f08_types, only : MPI_Comm, MPI_Request
         implicit none
         type(MPI_Comm), intent(in) :: comm
-        type(MPI_Comm), intent(out) :: newcomm
+        type(MPI_Comm), intent(out), asynchronous :: newcomm
         type(MPI_Request), intent(out) :: request
         integer, optional, intent(out) :: ierror
     end subroutine MPI_Comm_idup_f08

http://git.mpich.org/mpich.git/commitdiff/f58bd7ad372546cbc83fb67c767b218b1f4fe82a

commit f58bd7ad372546cbc83fb67c767b218b1f4fe82a
Author: Junchao Zhang <jczhang at mcs.anl.gov>
Date:   Tue Aug 19 16:04:13 2014 -0500

    Add some missing subroutines in the F08 binding

diff --git a/src/binding/fortran/use_mpi_f08/mpi_c_interface_cdesc.F90 b/src/binding/fortran/use_mpi_f08/mpi_c_interface_cdesc.F90
index b84aca1..9c4738a 100644
--- a/src/binding/fortran/use_mpi_f08/mpi_c_interface_cdesc.F90
+++ b/src/binding/fortran/use_mpi_f08/mpi_c_interface_cdesc.F90
@@ -795,11 +795,45 @@ function MPIR_Accumulate_cdesc(origin_addr, origin_count, origin_datatype, targe
     integer(c_int) :: ierror
 end function MPIR_Accumulate_cdesc
 
+function MPIR_Compare_and_swap_cdesc(origin_addr, compare_addr, result_addr, datatype, &
+        target_rank, target_disp, win) &
+    bind(C, name="MPIR_Compare_and_swap_cdesc") result(ierror)
+    use, intrinsic :: iso_c_binding, only : c_int
+    use :: mpi_f08_compile_constants, only : MPI_ADDRESS_KIND
+    use :: mpi_c_interface_types, only : c_Datatype, c_Win
+    implicit none
+    type(*), dimension(..), intent(in), asynchronous :: origin_addr
+    type(*), dimension(..), intent(in), asynchronous :: compare_addr
+    type(*), dimension(..), asynchronous :: result_addr
+    integer(c_Datatype), intent(in) :: datatype
+    integer(c_int), intent(in) :: target_rank
+    integer(kind=MPI_ADDRESS_KIND), intent(in) :: target_disp
+    integer(c_Win), intent(in) :: win
+    integer(c_int) :: ierror
+end function MPIR_Compare_and_swap_cdesc
+
+function MPIR_Fetch_and_op_cdesc(origin_addr, result_addr, datatype, target_rank, &
+        target_disp, op, win) &
+    bind(C, name="MPIR_Fetch_and_op_cdesc") result(ierror)
+    use, intrinsic :: iso_c_binding, only : c_int
+    use :: mpi_c_interface_types, only : c_Datatype, c_Op, c_Win
+    use :: mpi_f08_compile_constants, only : MPI_ADDRESS_KIND
+    implicit none
+    type(*), dimension(..), intent(in), asynchronous :: origin_addr
+    type(*), dimension(..), asynchronous :: result_addr
+    integer(c_Datatype), intent(in) :: datatype
+    integer(c_int), intent(in) :: target_rank
+    integer(kind=MPI_ADDRESS_KIND), intent(in) :: target_disp
+    integer(c_Op), intent(in) :: op
+    integer(c_Win), intent(in) :: win
+    integer(c_int) :: ierror
+end function MPIR_Fetch_and_op_cdesc
+
 function MPIR_Get_cdesc(origin_addr, origin_count, origin_datatype, target_rank, &
            target_disp, target_count, target_datatype, win) &
     bind(C, name="MPIR_Get_cdesc") result(ierror)
-    use :: mpi_f08_compile_constants, only : MPI_ADDRESS_KIND
     use, intrinsic :: iso_c_binding, only : c_int
+    use :: mpi_f08_compile_constants, only : MPI_ADDRESS_KIND
     use :: mpi_c_interface_types, only : c_Datatype, c_Win
     implicit none
     type(*), dimension(..) :: origin_addr
@@ -811,6 +845,24 @@ function MPIR_Get_cdesc(origin_addr, origin_count, origin_datatype, target_rank,
     integer(c_int) :: ierror
 end function MPIR_Get_cdesc
 
+function MPIR_Get_accumulate_cdesc(origin_addr, origin_count, origin_datatype, result_addr, &
+        result_count, result_datatype, target_rank, target_disp, &
+        target_count, target_datatype, op, win) &
+    bind(C, name="MPIR_Get_accumulate_cdesc") result(ierror)
+    use, intrinsic :: iso_c_binding, only : c_int
+    use :: mpi_c_interface_types, only : c_Datatype, c_Op, c_Win
+    use :: mpi_f08_compile_constants, only : MPI_ADDRESS_KIND
+    implicit none
+    type(*), dimension(..), intent(in), asynchronous :: origin_addr
+    type(*), dimension(..), asynchronous :: result_addr
+    integer(c_int), intent(in) :: origin_count, result_count, target_rank, target_count
+    integer(c_Datatype), intent(in) :: origin_datatype, target_datatype, result_datatype
+    integer(kind=MPI_ADDRESS_KIND), intent(in) :: target_disp
+    integer(c_Op), intent(in) :: op
+    integer(c_Win), intent(in) :: win
+    integer(c_int) :: ierror
+end function MPIR_Get_accumulate_cdesc
+
 function MPIR_Put_cdesc(origin_addr, origin_count, origin_datatype, target_rank, &
            target_disp, target_count, target_datatype, win) &
     bind(C, name="MPIR_Put_cdesc") result(ierror)
@@ -827,20 +879,90 @@ function MPIR_Put_cdesc(origin_addr, origin_count, origin_datatype, target_rank,
     integer(c_int) :: ierror
 end function MPIR_Put_cdesc
 
-function MPIR_Win_complete_f08(win) &
-    bind(C, name="MPIR_Win_complete_c") result(ierror)
+function MPIR_Raccumulate_cdesc(origin_addr, origin_count, origin_datatype, target_rank, &
+        target_disp, target_count, target_datatype, op, win, request) &
+    bind(C, name="MPIR_Raccumulate_cdesc") result(ierror)
+    use, intrinsic :: iso_c_binding, only : c_int
+    use :: mpi_c_interface_types, only : c_Datatype, c_Op, c_Win, c_Request
+    use :: mpi_f08_compile_constants, only : MPI_ADDRESS_KIND
+    implicit none
+    type(*), dimension(..), intent(in), asynchronous :: origin_addr
+    integer, intent(in) :: origin_count, target_rank, target_count
+    integer(c_Datatype), intent(in) :: origin_datatype, target_datatype
+    integer(kind=MPI_ADDRESS_KIND), intent(in) :: target_disp
+    integer(c_Op), intent(in) :: op
+    integer(c_Win), intent(in) :: win
+    integer(c_Request), intent(out) :: request
+    integer(c_int) :: ierror
+end function MPIR_Raccumulate_cdesc
+
+function MPIR_Rget_cdesc(origin_addr, origin_count, origin_datatype, target_rank, &
+        target_disp, target_count, target_datatype, win, request) &
+    bind(C, name="MPIR_Rget_cdesc") result(ierror)
     use, intrinsic :: iso_c_binding, only : c_int
+    use :: mpi_c_interface_types, only : c_Datatype, c_Win, c_Request
     use :: mpi_f08_compile_constants, only : MPI_ADDRESS_KIND
+    implicit none
+    type(*), dimension(..), asynchronous :: origin_addr
+    integer, intent(in) :: origin_count, target_rank, target_count
+    integer(c_Datatype), intent(in) :: origin_datatype, target_datatype
+    integer(kind=MPI_ADDRESS_KIND), intent(in) :: target_disp
+    integer(c_Win), intent(in) :: win
+    integer(c_Request), intent(out) :: request
+    integer(c_int) :: ierror
+end function MPIR_Rget_cdesc
+
+function MPIR_Rget_accumulate_cdesc(origin_addr, origin_count, origin_datatype, &
+        result_addr, result_count, result_datatype, target_rank, &
+        target_disp, target_count, target_datatype, op, win, request) &
+    bind(C, name="MPIR_Rget_accumulate_cdesc") result(ierror)
+    use, intrinsic :: iso_c_binding, only : c_int
+    use :: mpi_c_interface_types, only : c_Datatype, c_Op, c_Win, c_Request
+    use :: mpi_f08_compile_constants, only : MPI_ADDRESS_KIND
+    implicit none
+    type(*), dimension(..), intent(in), asynchronous :: origin_addr
+    type(*), dimension(..), asynchronous :: result_addr
+    integer, intent(in) :: origin_count, result_count, target_rank, target_count
+    integer(c_Datatype), intent(in) :: origin_datatype, target_datatype, result_datatype
+    integer(kind=MPI_ADDRESS_KIND), intent(in) :: target_disp
+    integer(c_Op), intent(in) :: op
+    integer(c_Win), intent(in) :: win
+    integer(c_Request), intent(out) :: request
+    integer(c_int) :: ierror
+end function MPIR_Rget_accumulate_cdesc
+
+function MPIR_Rput_cdesc(origin_addr, origin_count, origin_datatype, target_rank, &
+        target_disp, target_count, target_datatype, win, request) &
+    bind(C, name="MPIR_Rput_cdesc") result(ierror)
+    use, intrinsic :: iso_c_binding, only : c_int
+    use :: mpi_c_interface_types, only : c_Datatype, c_Win, c_Request
+    use :: mpi_f08_compile_constants, only : MPI_ADDRESS_KIND
+    implicit none
+    type(*), dimension(..), intent(in), asynchronous :: origin_addr
+    integer, intent(in) :: origin_count, target_rank, target_count
+    integer(c_Datatype), intent(in) :: origin_datatype, target_datatype
+    integer(kind=MPI_ADDRESS_KIND), intent(in) :: target_disp
+    integer(c_Win), intent(in) :: win
+    integer(c_Request), intent(out) :: request
+    integer(c_int) :: ierror
+end function MPIR_Rput_cdesc
+
+function MPIR_Win_attach_cdesc(win, base, size) &
+    bind(C, name="MPIR_Win_attach_cdesc") result(ierror)
+    use, intrinsic :: iso_c_binding, only : c_int
     use :: mpi_c_interface_types, only : c_Win
+    use :: mpi_f08_compile_constants, only : MPI_ADDRESS_KIND
     implicit none
-    integer(c_Win), value, intent(in) :: win
+    integer(c_Win), intent(in) :: win
+    type(*), dimension(..), asynchronous :: base
+    integer(kind=MPI_ADDRESS_KIND), intent(in) :: size
     integer(c_int) :: ierror
-end function MPIR_Win_complete_f08
+end function MPIR_Win_attach_cdesc
 
 function MPIR_Win_create_cdesc(base, size, disp_unit, info, comm, win) &
     bind(C, name="MPIR_Win_create_cdesc") result(ierror)
-    use :: mpi_f08_compile_constants, only : MPI_ADDRESS_KIND
     use, intrinsic :: iso_c_binding, only : c_int
+    use :: mpi_f08_compile_constants, only : MPI_ADDRESS_KIND
     use :: mpi_c_interface_types, only : c_Info, c_Comm, c_Win
     implicit none
     type(*), dimension(..) :: base
@@ -852,7 +974,15 @@ function MPIR_Win_create_cdesc(base, size, disp_unit, info, comm, win) &
     integer(c_int) :: ierror
 end function MPIR_Win_create_cdesc
 
-
+function MPIR_Win_detach_cdesc(win, base) &
+    bind(C, name="MPIR_Win_detach_cdesc") result(ierror)
+    use, intrinsic :: iso_c_binding, only : c_int
+    use :: mpi_c_interface_types, only : c_Win
+    implicit none
+    integer(c_Win), intent(in) :: win
+    type(*), dimension(..), asynchronous :: base
+    integer(c_int) :: ierror
+end function MPIR_Win_detach_cdesc
 
 function MPIR_File_iread_cdesc(fh, buf, count, datatype, request) &
     bind(C, name="MPIR_File_iread_cdesc") result(ierror)
diff --git a/src/binding/fortran/use_mpi_f08/mpi_c_interface_nobuf.F90 b/src/binding/fortran/use_mpi_f08/mpi_c_interface_nobuf.F90
index 11da8bf..f5f59b6 100644
--- a/src/binding/fortran/use_mpi_f08/mpi_c_interface_nobuf.F90
+++ b/src/binding/fortran/use_mpi_f08/mpi_c_interface_nobuf.F90
@@ -750,6 +750,26 @@ function MPIR_Comm_test_inter_c(comm, flag) &
     integer(c_int) :: ierror
 end function MPIR_Comm_test_inter_c
 
+function MPIR_Comm_get_info_c(comm, info_used) &
+    bind(C, name="PMPI_Comm_get_info") result(ierror)
+    use, intrinsic :: iso_c_binding, only : c_int
+    use :: mpi_c_interface_types, only : c_Comm, c_Info
+    implicit none
+    integer(c_Comm), intent(in) :: comm
+    integer(c_Info), intent(out) :: info_used
+    integer(c_int) :: ierror
+end function MPIR_Comm_get_info_c
+
+function MPIR_Comm_set_info_c(comm, info) &
+    bind(C, name="PMPI_Comm_set_info") result(ierror)
+    use, intrinsic :: iso_c_binding, only : c_int
+    use :: mpi_c_interface_types, only : c_Comm, c_Info
+    implicit none
+    integer(c_Comm), intent(in) :: comm
+    integer(c_Info), intent(in) :: info
+    integer(c_int) :: ierror
+end function MPIR_Comm_set_info_c
+
 function MPIR_Group_compare_c(group1,group2,result) &
     bind(C, name="PMPI_Group_compare") result(ierror)
     use, intrinsic :: iso_c_binding, only : c_int
@@ -1761,6 +1781,36 @@ function MPIR_Unpublish_name_c(service_name, info, port_name) &
     integer(c_int) :: ierror
 end function MPIR_Unpublish_name_c
 
+function MPIR_Win_allocate_c(size, disp_unit, info, comm, baseptr, win) &
+    bind(C, name="PMPI_Win_allocate") result(ierror)
+    use, intrinsic :: iso_c_binding, only : c_int, c_ptr
+    use :: mpi_c_interface_types, only : c_Info, c_Comm, c_Win
+    use :: mpi_f08_compile_constants, only : MPI_ADDRESS_KIND
+    implicit none
+    integer(kind=MPI_ADDRESS_KIND), intent(in) :: size
+    integer(c_int), intent(in) :: disp_unit
+    integer(c_Info), intent(in) :: info
+    integer(c_Comm), intent(in) :: comm
+    type(c_ptr), intent(out) :: baseptr
+    integer(c_Win), intent(out) :: win
+    integer(c_int) :: ierror
+end function MPIR_Win_allocate_c
+
+function MPIR_Win_allocate_shared_c(size, disp_unit, info, comm, baseptr, win) &
+    bind(C, name="PMPI_Win_allocate_shared") result(ierror)
+    use, intrinsic :: iso_c_binding, only : c_int, c_ptr
+    use :: mpi_c_interface_types, only : c_Info, c_Comm, c_Win
+    use :: mpi_f08_compile_constants, only : MPI_ADDRESS_KIND
+    implicit none
+    integer(kind=MPI_ADDRESS_KIND), intent(in) :: size
+    integer(c_int), intent(in) :: disp_unit
+    integer(c_Info), intent(in) :: info
+    integer(c_Comm), intent(in) :: comm
+    type(c_ptr), intent(out) :: baseptr
+    integer(c_Win), intent(out) :: win
+    integer(c_int) :: ierror
+end function MPIR_Win_allocate_shared_c
+
 function MPIR_Win_complete_c(win) &
     bind(C, name="PMPI_Win_complete") result(ierror)
     use, intrinsic :: iso_c_binding, only : c_int
@@ -1770,6 +1820,17 @@ function MPIR_Win_complete_c(win) &
     integer(c_int) :: ierror
 end function MPIR_Win_complete_c
 
+function MPIR_Win_create_dynamic_c(info, comm, win) &
+    bind(C, name="PMPI_Win_create_dynamic") result(ierror)
+    use, intrinsic :: iso_c_binding, only : c_int
+    use :: mpi_c_interface_types, only : c_Info, c_Comm, c_Win
+    implicit none
+    integer(c_Info), intent(in) :: info
+    integer(c_Comm), intent(in) :: comm
+    integer(c_Win), intent(out) :: win
+    integer(c_int) :: ierror
+end function MPIR_Win_create_dynamic_c
+
 function MPIR_Win_fence_c(assert, win) &
     bind(C, name="PMPI_Win_fence") result(ierror)
     use, intrinsic :: iso_c_binding, only : c_int
@@ -1780,6 +1841,44 @@ function MPIR_Win_fence_c(assert, win) &
     integer(c_int) :: ierror
 end function MPIR_Win_fence_c
 
+function MPIR_Win_flush_c(rank, win) &
+    bind(C, name="PMPI_Win_flush") result(ierror)
+    use, intrinsic :: iso_c_binding, only : c_int
+    use :: mpi_c_interface_types, only : c_Win
+    implicit none
+    integer(c_int), intent(in) :: rank
+    integer(c_Win), intent(in) :: win
+    integer(c_int) :: ierror
+end function MPIR_Win_flush_c
+
+function MPIR_Win_flush_all_c(win) &
+    bind(C, name="PMPI_Win_flush_all") result(ierror)
+    use, intrinsic :: iso_c_binding, only : c_int
+    use :: mpi_c_interface_types, only : c_Win
+    implicit none
+    integer(c_Win), intent(in) :: win
+    integer(c_int) :: ierror
+end function MPIR_Win_flush_all_c
+
+function MPIR_Win_flush_local_c(rank, win) &
+    bind(C, name="PMPI_Win_flush_local") result(ierror)
+    use, intrinsic :: iso_c_binding, only : c_int
+    use :: mpi_c_interface_types, only : c_Win
+    implicit none
+    integer(c_int), intent(in) :: rank
+    integer(c_Win), intent(in) :: win
+    integer(c_int) :: ierror
+end function MPIR_Win_flush_local_c
+
+function MPIR_Win_flush_local_all_c(win) &
+    bind(C, name="PMPI_Win_flush_local_all") result(ierror)
+    use, intrinsic :: iso_c_binding, only : c_int
+    use :: mpi_c_interface_types, only : c_Win
+    implicit none
+    integer(c_Win), intent(in) :: win
+    integer(c_int) :: ierror
+end function MPIR_Win_flush_local_all_c
+
 function MPIR_Win_free_c(win) &
     bind(C, name="PMPI_Win_free") result(ierror)
     use, intrinsic :: iso_c_binding, only : c_int
@@ -1799,6 +1898,16 @@ function MPIR_Win_get_group_c(win, group) &
     integer(c_int) :: ierror
 end function MPIR_Win_get_group_c
 
+function MPIR_Win_get_info_c(win, info_used) &
+    bind(C, name="PMPI_Win_get_info") result(ierror)
+    use, intrinsic :: iso_c_binding, only : c_int
+    use :: mpi_c_interface_types, only : c_Win, c_Info
+    implicit none
+    integer(c_Win), intent(in) :: win
+    integer(c_Info), intent(out) :: info_used
+    integer(c_int) :: ierror
+end function MPIR_Win_get_info_c
+
 function MPIR_Win_lock_c(lock_type, rank, assert, win) &
     bind(C, name="PMPI_Win_lock") result(ierror)
     use, intrinsic :: iso_c_binding, only : c_int
@@ -1809,6 +1918,16 @@ function MPIR_Win_lock_c(lock_type, rank, assert, win) &
     integer(c_int) :: ierror
 end function MPIR_Win_lock_c
 
+function MPIR_Win_lock_all_c(assert, win) &
+    bind(C, name="PMPI_Win_lock_all") result(ierror)
+    use, intrinsic :: iso_c_binding, only : c_int
+    use :: mpi_c_interface_types, only : c_Win
+    implicit none
+    integer(c_int), intent(in) :: assert
+    integer(c_Win), intent(in) :: win
+    integer(c_int) :: ierror
+end function MPIR_Win_lock_all_c
+
 function MPIR_Win_post_c(group, assert, win) &
     bind(C, name="PMPI_Win_post") result(ierror)
     use, intrinsic :: iso_c_binding, only : c_int
@@ -1820,6 +1939,30 @@ function MPIR_Win_post_c(group, assert, win) &
     integer(c_int) :: ierror
 end function MPIR_Win_post_c
 
+function MPIR_Win_set_info_c(win, info) &
+    bind(C, name="PMPI_Win_set_info") result(ierror)
+    use, intrinsic :: iso_c_binding, only : c_int
+    use :: mpi_c_interface_types, only : c_Win, c_Info
+    implicit none
+    integer(c_Win), intent(in) :: win
+    integer(c_Info), intent(in) :: info
+    integer(c_int) :: ierror
+end function MPIR_Win_set_info_c
+
+function MPIR_Win_shared_query_c(win, rank, size, disp_unit, baseptr) &
+    bind(C, name="PMPI_Win_shared_query") result(ierror)
+    use, intrinsic :: iso_c_binding, only : c_int, c_ptr
+    use :: mpi_c_interface_types, only : c_Win
+    use :: mpi_f08_compile_constants, only : MPI_ADDRESS_KIND
+    implicit none
+    integer(c_Win), intent(in) :: win
+    integer(c_int), intent(in) :: rank
+    integer(kind=MPI_ADDRESS_KIND), intent(out) :: size
+    integer(c_int), intent(out) :: disp_unit
+    type(c_ptr), intent(out) :: baseptr
+    integer(c_int) :: ierror
+end function MPIR_Win_shared_query_c
+
 function MPIR_Win_start_c(group, assert, win) &
     bind(C, name="PMPI_Win_start") result(ierror)
     use, intrinsic :: iso_c_binding, only : c_int
@@ -1831,6 +1974,15 @@ function MPIR_Win_start_c(group, assert, win) &
     integer(c_int) :: ierror
 end function MPIR_Win_start_c
 
+function MPIR_Win_sync_c(win) &
+    bind(C, name="PMPI_Win_sync") result(ierror)
+    use, intrinsic :: iso_c_binding, only : c_int
+    use :: mpi_c_interface_types, only : c_Win
+    implicit none
+    integer(c_Win), intent(in) :: win
+    integer(c_int) :: ierror
+end function MPIR_Win_sync_c
+
 function MPIR_Win_test_c(win, flag) &
     bind(C, name="PMPI_Win_test") result(ierror)
     use, intrinsic :: iso_c_binding, only : c_int
@@ -1851,6 +2003,15 @@ function MPIR_Win_unlock_c(rank, win) &
     integer(c_int) :: ierror
 end function MPIR_Win_unlock_c
 
+function MPIR_Win_unlock_all_c(win) &
+    bind(C, name="PMPI_Win_unlock_all") result(ierror)
+    use, intrinsic :: iso_c_binding, only : c_int
+    use :: mpi_c_interface_types, only : c_Win
+    implicit none
+    integer(c_Win), intent(in) :: win
+    integer(c_int) :: ierror
+end function MPIR_Win_unlock_all_c
+
 function MPIR_Win_wait_c(win) &
     bind(C, name="PMPI_Win_wait") result(ierror)
     use, intrinsic :: iso_c_binding, only : c_int
diff --git a/src/binding/fortran/use_mpi_f08/mpi_f08.F90 b/src/binding/fortran/use_mpi_f08/mpi_f08.F90
index 2fef1a4..d5029ba 100644
--- a/src/binding/fortran/use_mpi_f08/mpi_f08.F90
+++ b/src/binding/fortran/use_mpi_f08/mpi_f08.F90
@@ -1482,6 +1482,16 @@ interface MPI_Comm_get_attr
     end subroutine MPI_Comm_get_attr_f08
 end interface MPI_Comm_get_attr
 
+interface MPI_Comm_get_info
+    subroutine MPI_Comm_get_info_f08(comm, info_used, ierror)
+        use :: mpi_f08_types, only : MPI_Comm, MPI_Info
+        implicit none
+        type(MPI_Comm), intent(in) :: comm
+        type(MPI_Info), intent(out) :: info_used
+        integer, optional, intent(out) :: ierror
+    end subroutine MPI_Comm_get_info_f08
+end interface MPI_Comm_get_info
+
 interface MPI_Comm_get_name
     subroutine MPI_Comm_get_name_f08(comm, comm_name, resultlen, ierror)
         use :: mpi_f08_types, only : MPI_Comm
@@ -1546,6 +1556,16 @@ interface MPI_Comm_set_attr
     end subroutine MPI_Comm_set_attr_f08
 end interface MPI_Comm_set_attr
 
+interface MPI_Comm_set_info
+    subroutine MPI_Comm_set_info_f08(comm, info_used, ierror)
+        use :: mpi_f08_types, only : MPI_Comm, MPI_Info
+        implicit none
+        type(MPI_Comm), intent(in) :: comm
+        type(MPI_Info), intent(in) :: info_used
+        integer, optional, intent(out) :: ierror
+    end subroutine MPI_Comm_set_info_f08
+end interface MPI_Comm_set_info
+
 interface MPI_Comm_set_name
     subroutine MPI_Comm_set_name_f08(comm, comm_name, ierror)
         use :: mpi_f08_types, only : MPI_Comm
@@ -2634,6 +2654,40 @@ interface MPI_Accumulate
     end subroutine MPI_Accumulate_f08ts
 end interface MPI_Accumulate
 
+interface MPI_Compare_and_swap
+    subroutine MPI_Compare_and_swap_f08ts(origin_addr, compare_addr, result_addr, datatype, &
+            target_rank, target_disp, win, ierror)
+        use :: mpi_f08_types, only : MPI_Datatype, MPI_Win
+        use :: mpi_f08_compile_constants, only : MPI_ADDRESS_KIND
+        implicit none
+        type(*), dimension(..), intent(in), asynchronous :: origin_addr
+        type(*), dimension(..), intent(in), asynchronous :: compare_addr
+        type(*), dimension(..), asynchronous :: result_addr
+        type(MPI_Datatype), intent(in) :: datatype
+        integer, intent(in) :: target_rank
+        integer(kind=MPI_ADDRESS_KIND), intent(in) :: target_disp
+        type(MPI_Win), intent(in) :: win
+        integer, optional, intent(out) :: ierror
+    end subroutine MPI_Compare_and_swap_f08ts
+end interface MPI_Compare_and_swap
+
+interface MPI_Fetch_and_op
+    subroutine MPI_Fetch_and_op_f08ts(origin_addr, result_addr, datatype, target_rank, &
+            target_disp, op, win, ierror)
+        use :: mpi_f08_types, only : MPI_Datatype, MPI_Op, MPI_Win
+        use :: mpi_f08_compile_constants, only : MPI_ADDRESS_KIND
+        implicit none
+        type(*), dimension(..), intent(in), asynchronous :: origin_addr
+        type(*), dimension(..), asynchronous :: result_addr
+        type(MPI_Datatype), intent(in) :: datatype
+        integer, intent(in) :: target_rank
+        integer(kind=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_f08ts
+end interface MPI_Fetch_and_op
+
 interface MPI_Get
     subroutine MPI_Get_f08ts(origin_addr, origin_count, origin_datatype, target_rank, &
                                     target_disp, target_count, target_datatype, win, ierror)
@@ -2650,6 +2704,24 @@ interface MPI_Get
     end subroutine MPI_Get_f08ts
 end interface MPI_Get
 
+interface MPI_Get_accumulate
+    subroutine MPI_Get_accumulate_f08ts(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
+        use :: mpi_f08_compile_constants, only : MPI_ADDRESS_KIND
+        implicit none
+        type(*), dimension(..), intent(in), asynchronous :: origin_addr
+        type(*), dimension(..), asynchronous :: result_addr
+        integer, intent(in) :: origin_count, result_count, target_rank, target_count
+        type(MPI_Datatype), intent(in) :: origin_datatype, target_datatype, result_datatype
+        integer(kind=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_Get_accumulate_f08ts
+end interface MPI_Get_accumulate
+
 interface MPI_Put
     subroutine MPI_Put_f08ts(origin_addr, origin_count, origin_datatype, target_rank, &
                              target_disp, target_count, target_datatype, win, ierror)
@@ -2666,6 +2738,119 @@ interface MPI_Put
     end subroutine MPI_Put_f08ts
 end interface MPI_Put
 
+interface MPI_Raccumulate
+    subroutine MPI_Raccumulate_f08ts(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
+        use :: mpi_f08_compile_constants, only : MPI_ADDRESS_KIND
+        implicit none
+        type(*), dimension(..), intent(in), asynchronous :: origin_addr
+        integer, intent(in) :: origin_count, target_rank, target_count
+        type(MPI_Datatype), intent(in) :: origin_datatype, target_datatype
+        integer(kind=MPI_ADDRESS_KIND), intent(in) :: target_disp
+        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_f08ts
+end interface MPI_Raccumulate
+
+interface MPI_Rget
+    subroutine MPI_Rget_f08ts(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
+        use :: mpi_f08_compile_constants, only : MPI_ADDRESS_KIND
+        implicit none
+        type(*), dimension(..), asynchronous :: origin_addr
+        integer, intent(in) :: origin_count, target_rank, target_count
+        type(MPI_Datatype), intent(in) :: origin_datatype, target_datatype
+        integer(kind=MPI_ADDRESS_KIND), intent(in) :: target_disp
+        type(MPI_Win), intent(in) :: win
+        type(MPI_Request), intent(out) :: request
+        integer, optional, intent(out) :: ierror
+    end subroutine MPI_Rget_f08ts
+end interface MPI_Rget
+
+interface MPI_Rget_accumulate
+    subroutine MPI_Rget_accumulate_f08ts(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
+        use :: mpi_f08_compile_constants, only : MPI_ADDRESS_KIND
+        implicit none
+        type(*), dimension(..), intent(in), asynchronous :: origin_addr
+        type(*), dimension(..), asynchronous :: result_addr
+        integer, intent(in) :: origin_count, result_count, target_rank, target_count
+        type(MPI_Datatype), intent(in) :: origin_datatype, target_datatype, result_datatype
+        integer(kind=MPI_ADDRESS_KIND), intent(in) :: target_disp
+        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_f08ts
+end interface MPI_Rget_accumulate
+
+interface MPI_Rput
+    subroutine MPI_Rput_f08ts(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
+        use :: mpi_f08_compile_constants, only : MPI_ADDRESS_KIND
+        implicit none
+        type(*), dimension(..), intent(in), asynchronous :: origin_addr
+        integer, intent(in) :: origin_count, target_rank, target_count
+        type(MPI_Datatype), intent(in) :: origin_datatype, target_datatype
+        integer(kind=MPI_ADDRESS_KIND), intent(in) :: target_disp
+        type(MPI_Win), intent(in) :: win
+        type(MPI_Request), intent(out) :: request
+        integer, optional, intent(out) :: ierror
+    end subroutine MPI_Rput_f08ts
+end interface MPI_Rput
+
+interface MPI_Win_allocate
+    subroutine MPI_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
+        use :: mpi_f08_compile_constants, only : MPI_ADDRESS_KIND
+        implicit none
+        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 MPI_Win_allocate_f08
+end interface MPI_Win_allocate
+
+interface MPI_Win_allocate_shared
+    subroutine MPI_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
+        use :: mpi_f08_compile_constants, only : MPI_ADDRESS_KIND
+        implicit none
+        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 MPI_Win_allocate_shared_f08
+end interface MPI_Win_allocate_shared
+
+interface MPI_Win_attach
+    subroutine MPI_Win_attach_f08ts(win, base, size, ierror)
+        use :: mpi_f08_types, only : MPI_Win
+        use :: mpi_f08_compile_constants, only : MPI_ADDRESS_KIND
+        implicit none
+        type(MPI_Win), intent(in) :: win
+        type(*), dimension(..), asynchronous :: base
+        integer(kind=MPI_ADDRESS_KIND), intent(in) :: size
+        integer, optional, intent(out) :: ierror
+    end subroutine MPI_Win_attach_f08ts
+end interface MPI_Win_attach
+
+
 interface MPI_Win_complete
     subroutine MPI_Win_complete_f08(win, ierror)
         use :: mpi_f08_types, only : MPI_Win
@@ -2690,6 +2875,27 @@ interface MPI_Win_create
     end subroutine MPI_Win_create_f08ts
 end interface MPI_Win_create
 
+interface MPI_Win_create_dynamic
+    subroutine MPI_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 MPI_Win_create_dynamic_f08
+end interface MPI_Win_create_dynamic
+
+interface MPI_Win_detach
+    subroutine MPI_Win_detach_f08ts(win, base, ierror)
+        use :: mpi_f08_types, only : MPI_Win
+        implicit none
+        type(MPI_Win), intent(in) :: win
+        type(*), dimension(..), asynchronous :: base
+        integer, optional, intent(out) :: ierror
+    end subroutine MPI_Win_detach_f08ts
+end interface MPI_Win_detach
+
 interface MPI_Win_fence
     subroutine MPI_Win_fence_f08(assert, win, ierror)
         use :: mpi_f08_types, only : MPI_Win
@@ -2700,6 +2906,44 @@ interface MPI_Win_fence
     end subroutine MPI_Win_fence_f08
 end interface MPI_Win_fence
 
+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_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_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_local_all
+    subroutine MPI_Win_flush_local_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_local_all_f08
+end interface MPI_Win_flush_local_all
+
 interface MPI_Win_free
     subroutine MPI_Win_free_f08(win, ierror)
         use :: mpi_f08_types, only : MPI_Win
@@ -2719,6 +2963,16 @@ interface MPI_Win_get_group
     end subroutine MPI_Win_get_group_f08
 end interface MPI_Win_get_group
 
+interface MPI_Win_get_info
+    subroutine MPI_Win_get_info_f08(win, info_used, ierror)
+        use :: mpi_f08_types, only : MPI_Win, MPI_Info
+        implicit none
+        type(MPI_Win), intent(in) :: win
+        type(MPI_Info), intent(out) :: info_used
+        integer, optional, intent(out) :: ierror
+    end subroutine MPI_Win_get_info_f08
+end interface MPI_Win_get_info
+
 interface MPI_Win_lock
     subroutine MPI_Win_lock_f08(lock_type, rank, assert, win, ierror)
         use :: mpi_f08_types, only : MPI_Win
@@ -2729,6 +2983,16 @@ interface MPI_Win_lock
     end subroutine MPI_Win_lock_f08
 end interface MPI_Win_lock
 
+interface MPI_Win_lock_all
+    subroutine MPI_Win_lock_all_f08(assert, win, ierror)
+        use :: mpi_f08_types, only : MPI_Win
+        implicit none
+        integer, intent(in) :: assert
+        type(MPI_Win), intent(in) :: win
+        integer, optional, intent(out) :: ierror
+    end subroutine MPI_Win_lock_all_f08
+end interface MPI_Win_lock_all
+
 interface MPI_Win_post
     subroutine MPI_Win_post_f08(group, assert, win, ierror)
         use :: mpi_f08_types, only : MPI_Group, MPI_Win
@@ -2740,6 +3004,31 @@ interface MPI_Win_post
     end subroutine MPI_Win_post_f08
 end interface MPI_Win_post
 
+interface MPI_Win_set_info
+    subroutine MPI_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 MPI_Win_set_info_f08
+end interface MPI_Win_set_info
+
+interface MPI_Win_shared_query
+    subroutine MPI_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
+        use :: mpi_f08_compile_constants, only : MPI_ADDRESS_KIND
+        implicit none
+        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 MPI_Win_shared_query_f08
+end interface MPI_Win_shared_query
+
 interface MPI_Win_start
     subroutine MPI_Win_start_f08(group, assert, win, ierror)
         use :: mpi_f08_types, only : MPI_Group, MPI_Win
@@ -2751,6 +3040,15 @@ interface MPI_Win_start
     end subroutine MPI_Win_start_f08
 end interface MPI_Win_start
 
+interface MPI_Win_sync
+    subroutine MPI_Win_sync_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_sync_f08
+end interface MPI_Win_sync
+
 interface MPI_Win_test
     subroutine MPI_Win_test_f08(win, flag, ierror)
         use :: mpi_f08_types, only : MPI_Win
@@ -2771,6 +3069,15 @@ interface MPI_Win_unlock
     end subroutine MPI_Win_unlock_f08
 end interface MPI_Win_unlock
 
+interface MPI_Win_unlock_all
+    subroutine MPI_Win_unlock_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_unlock_all_f08
+end interface MPI_Win_unlock_all
+
 interface MPI_Win_wait
     subroutine MPI_Win_wait_f08(win, ierror)
         use :: mpi_f08_types, only : MPI_Win
diff --git a/src/binding/fortran/use_mpi_f08/wrappers_f/comm_get_info_f08ts.F90 b/src/binding/fortran/use_mpi_f08/wrappers_f/comm_get_info_f08ts.F90
new file mode 100644
index 0000000..88614c2
--- /dev/null
+++ b/src/binding/fortran/use_mpi_f08/wrappers_f/comm_get_info_f08ts.F90
@@ -0,0 +1,32 @@
+!   -*- Mode: Fortran; -*-
+!
+!   (C) 2014 by Argonne National Laboratory.
+!   See COPYRIGHT in top-level directory.
+!
+subroutine MPI_Comm_get_info_f08(comm, info_used, ierror)
+    use :: mpi_f08, only : MPI_Comm, MPI_Info
+    use, intrinsic :: iso_c_binding, only : c_int
+    use :: mpi_c_interface, only : c_Comm, c_Info
+    use :: mpi_c_interface, only : MPIR_Comm_get_info_c
+
+    implicit none
+
+    type(MPI_Comm), intent(in) :: comm
+    type(MPI_Info), intent(out) :: info_used
+    integer, optional, intent(out) :: ierror
+
+    integer(c_Comm) :: comm_c
+    integer(c_Info) :: info_used_c
+    integer(c_int) :: ierror_c
+
+    if (c_int == kind(0)) then
+        ierror_c = MPIR_Comm_get_info_c(comm%MPI_VAL, info_used%MPI_VAL)
+    else
+        comm_c = comm%MPI_VAL
+        ierror_c = MPIR_Comm_get_info_c(comm_c, info_used_c)
+        info_used%MPI_VAL = info_used_c
+    end if
+
+    if (present(ierror)) ierror = ierror_c
+
+end subroutine MPI_Comm_get_info_f08
diff --git a/src/binding/fortran/use_mpi_f08/wrappers_f/comm_set_info_f08ts.F90 b/src/binding/fortran/use_mpi_f08/wrappers_f/comm_set_info_f08ts.F90
new file mode 100644
index 0000000..9e31ff0
--- /dev/null
+++ b/src/binding/fortran/use_mpi_f08/wrappers_f/comm_set_info_f08ts.F90
@@ -0,0 +1,32 @@
+!   -*- Mode: Fortran; -*-
+!
+!   (C) 2014 by Argonne National Laboratory.
+!   See COPYRIGHT in top-level directory.
+!
+subroutine MPI_Comm_set_info_f08(comm, info_used, ierror)
+    use :: mpi_f08, only : MPI_Comm, MPI_Info
+    use, intrinsic :: iso_c_binding, only : c_int
+    use :: mpi_c_interface, only : c_Comm, c_Info
+    use :: mpi_c_interface, only : MPIR_Comm_set_info_c
+
+    implicit none
+
+    type(MPI_Comm), intent(in) :: comm
+    type(MPI_Info), intent(in) :: info_used
+    integer, optional, intent(out) :: ierror
+
+    integer(c_Comm) :: comm_c
+    integer(c_Info) :: info_used_c
+    integer(c_int) :: ierror_c
+
+    if (c_int == kind(0)) then
+        ierror_c = MPIR_Comm_set_info_c(comm%MPI_VAL, info_used%MPI_VAL)
+    else
+        comm_c = comm%MPI_VAL
+        info_used_c = info_used%MPI_VAL
+        ierror_c = MPIR_Comm_set_info_c(comm_c, info_used_c)
+    end if
+
+    if (present(ierror)) ierror = ierror_c
+
+end subroutine MPI_Comm_set_info_f08
diff --git a/src/binding/fortran/use_mpi_f08/wrappers_f/compare_and_swap_f08ts.F90 b/src/binding/fortran/use_mpi_f08/wrappers_f/compare_and_swap_f08ts.F90
new file mode 100644
index 0000000..3cc06fc
--- /dev/null
+++ b/src/binding/fortran/use_mpi_f08/wrappers_f/compare_and_swap_f08ts.F90
@@ -0,0 +1,43 @@
+!   -*- Mode: Fortran; -*-
+!
+!   (C) 2014 by Argonne National Laboratory.
+!   See COPYRIGHT in top-level directory.
+!
+subroutine MPI_Compare_and_swap_f08ts(origin_addr, compare_addr, result_addr, datatype, &
+    target_rank, target_disp, win, ierror)
+    use, intrinsic :: iso_c_binding, only : c_int
+    use :: mpi_f08, only : MPI_Datatype, MPI_Win
+    use :: mpi_f08_compile_constants, only : MPI_ADDRESS_KIND
+    use :: mpi_c_interface, only : c_Datatype, c_Win
+    use :: mpi_c_interface, only : MPIR_Compare_and_swap_cdesc
+
+    implicit none
+
+    type(*), dimension(..), intent(in), asynchronous :: origin_addr
+    type(*), dimension(..), intent(in), asynchronous :: compare_addr
+    type(*), dimension(..), asynchronous :: result_addr
+    type(MPI_Datatype), intent(in) :: datatype
+    integer, intent(in) :: target_rank
+    integer(kind=MPI_ADDRESS_KIND), intent(in) :: target_disp
+    type(MPI_Win), intent(in) :: win
+    integer, optional, intent(out) :: ierror
+
+    integer(c_Datatype) :: datatype_c
+    integer(c_int) :: target_rank_c
+    integer(c_Win) :: win_c
+    integer(c_int) :: ierror_c
+
+    if (c_int == kind(0)) then
+        ierror_c = MPIR_Compare_and_swap_cdesc(origin_addr, compare_addr, result_addr, datatype%MPI_VAL, &
+            target_rank, target_disp, win%MPI_VAL)
+    else
+        datatype_c = datatype%MPI_VAL
+        target_rank_c = target_rank
+        win_c = win%MPI_VAL
+        ierror_c = MPIR_Compare_and_swap_cdesc(origin_addr, compare_addr, result_addr, datatype_c, &
+            target_rank_c, target_disp, win_c)
+    end if
+
+    if (present(ierror)) ierror = ierror_c
+
+end subroutine MPI_Compare_and_swap_f08ts
diff --git a/src/binding/fortran/use_mpi_f08/wrappers_f/fetch_and_op_f08ts.F90 b/src/binding/fortran/use_mpi_f08/wrappers_f/fetch_and_op_f08ts.F90
new file mode 100644
index 0000000..c72abd7
--- /dev/null
+++ b/src/binding/fortran/use_mpi_f08/wrappers_f/fetch_and_op_f08ts.F90
@@ -0,0 +1,45 @@
+!   -*- Mode: Fortran; -*-
+!
+!   (C) 2014 by Argonne National Laboratory.
+!   See COPYRIGHT in top-level directory.
+!
+subroutine MPI_Fetch_and_op_f08ts(origin_addr, result_addr, datatype, target_rank, &
+    target_disp, op, win, ierror)
+    use, intrinsic :: iso_c_binding, only : c_int
+    use :: mpi_f08, only : MPI_Datatype, MPI_Op, MPI_Win
+    use :: mpi_f08_compile_constants, only : MPI_ADDRESS_KIND
+    use :: mpi_c_interface, only : c_Datatype, c_Op, c_Win
+    use :: mpi_c_interface, only : MPIR_Fetch_and_op_cdesc
+
+    implicit none
+
+    type(*), dimension(..), intent(in), asynchronous :: origin_addr
+    type(*), dimension(..), asynchronous :: result_addr
+    type(MPI_Datatype), intent(in) :: datatype
+    integer, intent(in) :: target_rank
+    integer(kind=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_Datatype) :: datatype_c
+    integer(c_int) :: target_rank_c
+    integer(c_Op) :: op_c
+    integer(c_Win) :: win_c
+    integer(c_int) :: ierror_c
+
+    if (c_int == kind(0)) then
+        ierror_c = MPIR_Fetch_and_op_cdesc(origin_addr, result_addr, datatype%MPI_VAL, target_rank, target_disp, &
+            op%MPI_VAL, win%MPI_VAL)
+    else
+        datatype_c = datatype%MPI_VAL
+        target_rank_c = target_rank
+        op_c = op%MPI_VAL
+        win_c = win%MPI_VAL
+        ierror_c = MPIR_Fetch_and_op_cdesc(origin_addr, result_addr, datatype_c, target_rank_c, target_disp, &
+            op_c, win_c)
+    end if
+
+    if (present(ierror)) ierror = ierror_c
+
+end subroutine MPI_Fetch_and_op_f08ts
diff --git a/src/binding/fortran/use_mpi_f08/wrappers_f/get_accumulate_f08ts.F90 b/src/binding/fortran/use_mpi_f08/wrappers_f/get_accumulate_f08ts.F90
new file mode 100644
index 0000000..65ce354
--- /dev/null
+++ b/src/binding/fortran/use_mpi_f08/wrappers_f/get_accumulate_f08ts.F90
@@ -0,0 +1,63 @@
+!   -*- Mode: Fortran; -*-
+!
+!   (C) 2014 by Argonne National Laboratory.
+!   See COPYRIGHT in top-level directory.
+!
+subroutine MPI_Get_accumulate_f08ts(origin_addr, origin_count, origin_datatype, result_addr, &
+    result_count, result_datatype, target_rank, target_disp, &
+    target_count, target_datatype, op, win, ierror)
+    use, intrinsic :: iso_c_binding, only : c_int
+    use :: mpi_f08, only : MPI_Datatype, MPI_Op, MPI_Win
+    use :: mpi_f08_compile_constants, only : MPI_ADDRESS_KIND
+    use :: mpi_c_interface, only : c_Datatype, c_Op, c_Win
+    use :: mpi_c_interface, only : MPIR_Get_accumulate_cdesc
+
+    implicit none
+
+    type(*), dimension(..), intent(in), asynchronous :: origin_addr
+    type(*), dimension(..), asynchronous :: result_addr
+    integer, intent(in) :: origin_count
+    integer, intent(in) :: result_count
+    integer, intent(in) :: target_rank
+    integer, intent(in) :: target_count
+    type(MPI_Datatype), intent(in) :: origin_datatype
+    type(MPI_Datatype), intent(in) :: target_datatype
+    type(MPI_Datatype), intent(in) :: result_datatype
+    integer(kind=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_int) :: origin_count_c
+    integer(c_int) :: result_count_c
+    integer(c_int) :: target_rank_c
+    integer(c_int) :: target_count_c
+    integer(c_Datatype) :: origin_datatype_c
+    integer(c_Datatype) :: target_datatype_c
+    integer(c_Datatype) :: result_datatype_c
+    integer(c_Op) :: op_c
+    integer(c_Win) :: win_c
+    integer(c_int) :: ierror_c
+
+    if (c_int == kind(0)) then
+        ierror_c = MPIR_Get_accumulate_cdesc(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)
+    else
+        origin_count_c = origin_count
+        origin_datatype_c = origin_datatype%MPI_VAL
+        result_count_c = result_count
+        result_datatype_c = result_datatype%MPI_VAL
+        target_rank_c = target_rank
+        target_count_c = target_count
+        target_datatype_c = target_datatype%MPI_VAL
+        op_c = op%MPI_VAL
+        win_c = win%MPI_VAL
+        ierror_c = MPIR_Get_accumulate_cdesc(origin_addr, origin_count_c, origin_datatype_c, result_addr, &
+            result_count_c, result_datatype_c, target_rank_c, target_disp, target_count_c, target_datatype_c, &
+            op_c, win_c)
+    end if
+
+    if (present(ierror)) ierror = ierror_c
+
+end subroutine MPI_Get_accumulate_f08ts
diff --git a/src/binding/fortran/use_mpi_f08/wrappers_f/raccumulate_f08ts.F90 b/src/binding/fortran/use_mpi_f08/wrappers_f/raccumulate_f08ts.F90
new file mode 100644
index 0000000..042f042
--- /dev/null
+++ b/src/binding/fortran/use_mpi_f08/wrappers_f/raccumulate_f08ts.F90
@@ -0,0 +1,56 @@
+!   -*- Mode: Fortran; -*-
+!
+!   (C) 2014 by Argonne National Laboratory.
+!   See COPYRIGHT in top-level directory.
+!
+subroutine MPI_Raccumulate_f08ts(origin_addr, origin_count, origin_datatype, target_rank, &
+    target_disp, target_count, target_datatype, op, win, request, ierror)
+    use, intrinsic :: iso_c_binding, only : c_int
+    use :: mpi_f08, only : MPI_Datatype, MPI_Op, MPI_Win, MPI_Request
+    use :: mpi_f08_compile_constants, only : MPI_ADDRESS_KIND
+    use :: mpi_c_interface, only : c_Datatype, c_Op, c_Win, c_Request
+    use :: mpi_c_interface, only : MPIR_Raccumulate_cdesc
+
+    implicit none
+
+    type(*), dimension(..), intent(in), asynchronous :: origin_addr
+    integer, intent(in) :: origin_count
+    integer, intent(in) :: target_rank
+    integer, intent(in) :: target_count
+    type(MPI_Datatype), intent(in) :: origin_datatype
+    type(MPI_Datatype), intent(in) :: target_datatype
+    integer(kind=MPI_ADDRESS_KIND), intent(in) :: target_disp
+    type(MPI_Op), intent(in) :: op
+    type(MPI_Win), intent(in) :: win
+    type(MPI_Request), intent(out) :: request
+    integer, optional, intent(out) :: ierror
+
+    integer :: origin_count_c
+    integer :: target_rank_c
+    integer :: target_count_c
+    integer(c_Datatype) :: origin_datatype_c
+    integer(c_Datatype) :: target_datatype_c
+    integer(c_Op) :: op_c
+    integer(c_Win) :: win_c
+    integer(c_Request) :: request_c
+    integer(c_int) :: ierror_c
+
+    if (c_int == kind(0)) then
+        ierror_c = MPIR_Raccumulate_cdesc(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)
+    else
+        origin_count_c = origin_count
+        origin_datatype_c = origin_datatype%MPI_VAL
+        target_rank_c = target_rank
+        target_count_c = target_count
+        target_datatype_c = target_datatype%MPI_VAL
+        op_c = op%MPI_VAL
+        win_c = win%MPI_VAL
+        ierror_c = MPIR_Raccumulate_cdesc(origin_addr, origin_count_c, origin_datatype_c, target_rank_c, &
+            target_disp, target_count_c, target_datatype_c, op_c, win_c, request_c)
+        request%MPI_VAL = request_c
+    end if
+
+    if (present(ierror)) ierror = ierror_c
+
+end subroutine MPI_Raccumulate_f08ts
diff --git a/src/binding/fortran/use_mpi_f08/wrappers_f/rget_accumulate_f08ts.F90 b/src/binding/fortran/use_mpi_f08/wrappers_f/rget_accumulate_f08ts.F90
new file mode 100644
index 0000000..f041697
--- /dev/null
+++ b/src/binding/fortran/use_mpi_f08/wrappers_f/rget_accumulate_f08ts.F90
@@ -0,0 +1,66 @@
+!   -*- Mode: Fortran; -*-
+!
+!   (C) 2014 by Argonne National Laboratory.
+!   See COPYRIGHT in top-level directory.
+!
+subroutine MPI_Rget_accumulate_f08ts(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, intrinsic :: iso_c_binding, only : c_int
+    use :: mpi_f08, only : MPI_Datatype, MPI_Op, MPI_Win, MPI_Request
+    use :: mpi_f08_compile_constants, only : MPI_ADDRESS_KIND
+    use :: mpi_c_interface, only : c_Datatype, c_Op, c_Win, c_Request
+    use :: mpi_c_interface, only : MPIR_Rget_accumulate_cdesc
+
+    implicit none
+
+    type(*), dimension(..), intent(in), asynchronous :: origin_addr
+    type(*), dimension(..), asynchronous :: result_addr
+    integer, intent(in) :: origin_count
+    integer, intent(in) :: result_count
+    integer, intent(in) :: target_rank
+    integer, intent(in) :: target_count
+    type(MPI_Datatype), intent(in) :: origin_datatype
+    type(MPI_Datatype), intent(in) :: target_datatype
+    type(MPI_Datatype), intent(in) :: result_datatype
+    integer(kind=MPI_ADDRESS_KIND), intent(in) :: target_disp
+    type(MPI_Op), intent(in) :: op
+    type(MPI_Win), intent(in) :: win
+    type(MPI_Request), intent(out) :: request
+    integer, optional, intent(out) :: ierror
+
+    integer :: origin_count_c
+    integer :: result_count_c
+    integer :: target_rank_c
+    integer :: target_count_c
+    integer(c_Datatype) :: origin_datatype_c
+    integer(c_Datatype) :: target_datatype_c
+    integer(c_Datatype) :: result_datatype_c
+    integer(c_Op) :: op_c
+    integer(c_Win) :: win_c
+    integer(c_Request) :: request_c
+    integer(c_int) :: ierror_c
+
+    if (c_int == kind(0)) then
+        ierror_c = MPIR_Rget_accumulate_cdesc(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)
+    else
+        origin_count_c = origin_count
+        origin_datatype_c = origin_datatype%MPI_VAL
+        result_count_c = result_count
+        result_datatype_c = result_datatype%MPI_VAL
+        target_rank_c = target_rank
+        target_count_c = target_count
+        target_datatype_c = target_datatype%MPI_VAL
+        op_c = op%MPI_VAL
+        win_c = win%MPI_VAL
+        ierror_c = MPIR_Rget_accumulate_cdesc(origin_addr, origin_count_c, origin_datatype_c, result_addr, &
+            result_count_c, result_datatype_c, target_rank_c, target_disp, target_count_c, target_datatype_c, &
+            op_c, win_c, request_c)
+        request%MPI_VAL = request_c
+    end if
+
+    if (present(ierror)) ierror = ierror_c
+
+end subroutine MPI_Rget_accumulate_f08ts
diff --git a/src/binding/fortran/use_mpi_f08/wrappers_f/rget_f08ts.F90 b/src/binding/fortran/use_mpi_f08/wrappers_f/rget_f08ts.F90
new file mode 100644
index 0000000..5709e24
--- /dev/null
+++ b/src/binding/fortran/use_mpi_f08/wrappers_f/rget_f08ts.F90
@@ -0,0 +1,53 @@
+!   -*- Mode: Fortran; -*-
+!
+!   (C) 2014 by Argonne National Laboratory.
+!   See COPYRIGHT in top-level directory.
+!
+subroutine MPI_Rget_f08ts(origin_addr, origin_count, origin_datatype, target_rank, &
+    target_disp, target_count, target_datatype, win, request, ierror)
+    use, intrinsic :: iso_c_binding, only : c_int
+    use :: mpi_f08, only : MPI_Datatype, MPI_Win, MPI_Request
+    use :: mpi_f08_compile_constants, only : MPI_ADDRESS_KIND
+    use :: mpi_c_interface, only : c_Datatype, c_Win, c_Request
+    use :: mpi_c_interface, only : MPIR_Rget_cdesc
+
+    implicit none
+
+    type(*), dimension(..), asynchronous :: origin_addr
+    integer, intent(in) :: origin_count
+    integer, intent(in) :: target_rank
+    integer, intent(in) :: target_count
+    type(MPI_Datatype), intent(in) :: origin_datatype
+    type(MPI_Datatype), intent(in) :: target_datatype
+    integer(kind=MPI_ADDRESS_KIND), intent(in) :: target_disp
+    type(MPI_Win), intent(in) :: win
+    type(MPI_Request), intent(out) :: request
+    integer, optional, intent(out) :: ierror
+
+    integer :: origin_count_c
+    integer :: target_rank_c
+    integer :: target_count_c
+    integer(c_Datatype) :: origin_datatype_c
+    integer(c_Datatype) :: target_datatype_c
+    integer(c_Win) :: win_c
+    integer(c_Request) :: request_c
+    integer(c_int) :: ierror_c
+
+    if (c_int == kind(0)) then
+        ierror_c = MPIR_Rget_cdesc(origin_addr, origin_count, origin_datatype%MPI_VAL, target_rank, target_disp, &
+            target_count, target_datatype%MPI_VAL, win%MPI_VAL, request%MPI_VAL)
+    else
+        origin_count_c = origin_count
+        origin_datatype_c = origin_datatype%MPI_VAL
+        target_rank_c = target_rank
+        target_count_c = target_count
+        target_datatype_c = target_datatype%MPI_VAL
+        win_c = win%MPI_VAL
+        ierror_c = MPIR_Rget_cdesc(origin_addr, origin_count_c, origin_datatype_c, target_rank_c, target_disp, &
+            target_count_c, target_datatype_c, win_c, request_c)
+        request%MPI_VAL = request_c
+    end if
+
+    if (present(ierror)) ierror = ierror_c
+
+end subroutine MPI_Rget_f08ts
diff --git a/src/binding/fortran/use_mpi_f08/wrappers_f/rput_f08ts.F90 b/src/binding/fortran/use_mpi_f08/wrappers_f/rput_f08ts.F90
new file mode 100644
index 0000000..547a584
--- /dev/null
+++ b/src/binding/fortran/use_mpi_f08/wrappers_f/rput_f08ts.F90
@@ -0,0 +1,53 @@
+!   -*- Mode: Fortran; -*-
+!
+!   (C) 2014 by Argonne National Laboratory.
+!   See COPYRIGHT in top-level directory.
+!
+subroutine MPI_Rput_f08ts(origin_addr, origin_count, origin_datatype, target_rank, &
+    target_disp, target_count, target_datatype, win, request, ierror)
+    use, intrinsic :: iso_c_binding, only : c_int
+    use :: mpi_f08, only : MPI_Datatype, MPI_Win, MPI_Request
+    use :: mpi_f08_compile_constants, only : MPI_ADDRESS_KIND
+    use :: mpi_c_interface, only : c_Datatype, c_Win, c_Request
+    use :: mpi_c_interface, only : MPIR_Rput_cdesc
+
+    implicit none
+
+    type(*), dimension(..), intent(in), asynchronous :: origin_addr
+    integer, intent(in) :: origin_count
+    integer, intent(in) :: target_rank
+    integer, intent(in) :: target_count
+    type(MPI_Datatype), intent(in) :: origin_datatype
+    type(MPI_Datatype), intent(in) :: target_datatype
+    integer(kind=MPI_ADDRESS_KIND), intent(in) :: target_disp
+    type(MPI_Win), intent(in) :: win
+    type(MPI_Request), intent(out) :: request
+    integer, optional, intent(out) :: ierror
+
+    integer :: origin_count_c
+    integer :: target_rank_c
+    integer :: target_count_c
+    integer(c_Datatype) :: origin_datatype_c
+    integer(c_Datatype) :: target_datatype_c
+    integer(c_Win) :: win_c
+    integer(c_Request) :: request_c
+    integer(c_int) :: ierror_c
+
+    if (c_int == kind(0)) then
+        ierror_c = MPIR_Rput_cdesc(origin_addr, origin_count, origin_datatype%MPI_VAL, target_rank, target_disp, &
+            target_count, target_datatype%MPI_VAL, win%MPI_VAL, request%MPI_VAL)
+    else
+        origin_count_c = origin_count
+        origin_datatype_c = origin_datatype%MPI_VAL
+        target_rank_c = target_rank
+        target_count_c = target_count
+        target_datatype_c = target_datatype%MPI_VAL
+        win_c = win%MPI_VAL
+        ierror_c = MPIR_Rput_cdesc(origin_addr, origin_count_c, origin_datatype_c, target_rank_c, target_disp, &
+            target_count_c, target_datatype_c, win_c, request_c)
+        request%MPI_VAL = request_c
+    end if
+
+    if (present(ierror)) ierror = ierror_c
+
+end subroutine MPI_Rput_f08ts
diff --git a/src/binding/fortran/use_mpi_f08/wrappers_f/win_allocate_f08ts.F90 b/src/binding/fortran/use_mpi_f08/wrappers_f/win_allocate_f08ts.F90
new file mode 100644
index 0000000..462e25f
--- /dev/null
+++ b/src/binding/fortran/use_mpi_f08/wrappers_f/win_allocate_f08ts.F90
@@ -0,0 +1,43 @@
+!   -*- Mode: Fortran; -*-
+!
+!   (C) 2014 by Argonne National Laboratory.
+!   See COPYRIGHT in top-level directory.
+!
+subroutine MPI_Win_allocate_f08(size, disp_unit, info, comm, baseptr, win, ierror)
+    use, intrinsic :: iso_c_binding, only : c_int, c_ptr
+    use :: mpi_f08, only : MPI_Info, MPI_Comm, MPI_Win
+    use :: mpi_f08_compile_constants, only : MPI_ADDRESS_KIND
+    use :: mpi_c_interface, only : c_Info, c_Comm, c_Win
+    use :: mpi_c_interface, only : MPIR_Win_allocate_c
+
+    implicit none
+
+    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
+
+    integer(c_int) :: disp_unit_c
+    integer(c_Info) :: info_c
+    integer(c_Comm) :: comm_c
+    type(c_ptr) :: baseptr_c
+    integer(c_Win) :: win_c
+    integer(c_int) :: ierror_c
+
+    if (c_int == kind(0)) then
+        ierror_c = MPIR_Win_allocate_c(size, disp_unit, info%MPI_VAL, comm%MPI_VAL, baseptr, win%MPI_VAL)
+    else
+        disp_unit_c = disp_unit
+        info_c = info%MPI_VAL
+        comm_c = comm%MPI_VAL
+        ierror_c = MPIR_Win_allocate_c(size, disp_unit_c, info_c, comm_c, baseptr_c, win_c)
+        baseptr = baseptr_c
+        win%MPI_VAL = win_c
+    end if
+
+    if (present(ierror)) ierror = ierror_c
+
+end subroutine MPI_Win_allocate_f08
diff --git a/src/binding/fortran/use_mpi_f08/wrappers_f/win_allocate_shared_f08ts.F90 b/src/binding/fortran/use_mpi_f08/wrappers_f/win_allocate_shared_f08ts.F90
new file mode 100644
index 0000000..29cede7
--- /dev/null
+++ b/src/binding/fortran/use_mpi_f08/wrappers_f/win_allocate_shared_f08ts.F90
@@ -0,0 +1,43 @@
+!   -*- Mode: Fortran; -*-
+!
+!   (C) 2014 by Argonne National Laboratory.
+!   See COPYRIGHT in top-level directory.
+!
+subroutine MPI_Win_allocate_shared_f08(size, disp_unit, info, comm, baseptr, win, ierror)
+    use, intrinsic :: iso_c_binding, only : c_int, c_ptr
+    use :: mpi_f08, only : MPI_Info, MPI_Comm, MPI_Win
+    use :: mpi_f08_compile_constants, only : MPI_ADDRESS_KIND
+    use :: mpi_c_interface, only : c_Info, c_Comm, c_Win
+    use :: mpi_c_interface, only : MPIR_Win_allocate_shared_c
+
+    implicit none
+
+    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
+
+    integer(c_int) :: disp_unit_c
+    integer(c_Info) :: info_c
+    integer(c_Comm) :: comm_c
+    type(c_ptr) :: baseptr_c
+    integer(c_Win) :: win_c
+    integer(c_int) :: ierror_c
+
+    if (c_int == kind(0)) then
+        ierror_c = MPIR_Win_allocate_shared_c(size, disp_unit, info%MPI_VAL, comm%MPI_VAL, baseptr, win%MPI_VAL)
+    else
+        disp_unit_c = disp_unit
+        info_c = info%MPI_VAL
+        comm_c = comm%MPI_VAL
+        ierror_c = MPIR_Win_allocate_shared_c(size, disp_unit_c, info_c, comm_c, baseptr_c, win_c)
+        baseptr = baseptr_c
+        win%MPI_VAL = win_c
+    end if
+
+    if (present(ierror)) ierror = ierror_c
+
+end subroutine MPI_Win_allocate_shared_f08
diff --git a/src/binding/fortran/use_mpi_f08/wrappers_f/win_attach_f08ts.F90 b/src/binding/fortran/use_mpi_f08/wrappers_f/win_attach_f08ts.F90
new file mode 100644
index 0000000..cab6499
--- /dev/null
+++ b/src/binding/fortran/use_mpi_f08/wrappers_f/win_attach_f08ts.F90
@@ -0,0 +1,33 @@
+!   -*- Mode: Fortran; -*-
+!
+!   (C) 2014 by Argonne National Laboratory.
+!   See COPYRIGHT in top-level directory.
+!
+subroutine MPI_Win_attach_f08ts(win, base, size, ierror)
+    use, intrinsic :: iso_c_binding, only : c_int
+    use :: mpi_f08, only : MPI_Win
+    use :: mpi_f08_compile_constants, only : MPI_ADDRESS_KIND
+    use :: mpi_c_interface, only : c_Win
+    use :: mpi_c_interface, only : MPIR_Win_attach_cdesc
+
+    implicit none
+
+    type(MPI_Win), intent(in) :: win
+    type(*), dimension(..), asynchronous :: base
+    integer(kind=MPI_ADDRESS_KIND), intent(in) :: size
+    integer, optional, intent(out) :: ierror
+
+    integer(c_Win) :: win_c
+    integer(kind=MPI_ADDRESS_KIND) :: size_c
+    integer(c_int) :: ierror_c
+
+    if (c_int == kind(0)) then
+        ierror_c = MPIR_Win_attach_cdesc(win%MPI_VAL, base, size)
+    else
+        win_c = win%MPI_VAL
+        ierror_c = MPIR_Win_attach_cdesc(win_c, base, size)
+    end if
+
+    if (present(ierror)) ierror = ierror_c
+
+end subroutine MPI_Win_attach_f08ts
diff --git a/src/binding/fortran/use_mpi_f08/wrappers_f/win_create_dynamic_f08ts.F90 b/src/binding/fortran/use_mpi_f08/wrappers_f/win_create_dynamic_f08ts.F90
new file mode 100644
index 0000000..34ebfcf
--- /dev/null
+++ b/src/binding/fortran/use_mpi_f08/wrappers_f/win_create_dynamic_f08ts.F90
@@ -0,0 +1,35 @@
+!   -*- Mode: Fortran; -*-
+!
+!   (C) 2014 by Argonne National Laboratory.
+!   See COPYRIGHT in top-level directory.
+!
+subroutine MPI_Win_create_dynamic_f08(info, comm, win, ierror)
+    use, intrinsic :: iso_c_binding, only : c_int
+    use :: mpi_f08, only : MPI_Info, MPI_Comm, MPI_Win
+    use :: mpi_c_interface, only : c_Info, c_Comm, c_Win
+    use :: mpi_c_interface, only : MPIR_Win_create_dynamic_c
+
+    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
+
+    integer(c_Info) :: info_c
+    integer(c_Comm) :: comm_c
+    integer(c_Win) :: win_c
+    integer(c_int) :: ierror_c
+
+    if (c_int == kind(0)) then
+        ierror_c = MPIR_Win_create_dynamic_c(info%MPI_VAL, comm%MPI_VAL, win%MPI_VAL)
+    else
+        info_c = info%MPI_VAL
+        comm_c = comm%MPI_VAL
+        ierror_c = MPIR_Win_create_dynamic_c(info_c, comm_c, win_c)
+        win%MPI_VAL = win_c
+    end if
+
+    if (present(ierror)) ierror = ierror_c
+
+end subroutine MPI_Win_create_dynamic_f08
diff --git a/src/binding/fortran/use_mpi_f08/wrappers_f/win_detach_f08ts.F90 b/src/binding/fortran/use_mpi_f08/wrappers_f/win_detach_f08ts.F90
new file mode 100644
index 0000000..f3d0bd0
--- /dev/null
+++ b/src/binding/fortran/use_mpi_f08/wrappers_f/win_detach_f08ts.F90
@@ -0,0 +1,30 @@
+!   -*- Mode: Fortran; -*-
+!
+!   (C) 2014 by Argonne National Laboratory.
+!   See COPYRIGHT in top-level directory.
+!
+subroutine MPI_Win_detach_f08ts(win, base, ierror)
+    use, intrinsic :: iso_c_binding, only : c_int
+    use :: mpi_f08, only : MPI_Win
+    use :: mpi_c_interface, only : c_Win
+    use :: mpi_c_interface, only : MPIR_Win_detach_cdesc
+
+    implicit none
+
+    type(MPI_Win), intent(in) :: win
+    type(*), dimension(..), asynchronous :: base
+    integer, optional, intent(out) :: ierror
+
+    integer(c_Win) :: win_c
+    integer(c_int) :: ierror_c
+
+    if (c_int == kind(0)) then
+        ierror_c = MPIR_Win_detach_cdesc(win%MPI_VAL, base)
+    else
+        win_c = win%MPI_VAL
+        ierror_c = MPIR_Win_detach_cdesc(win_c, base)
+    end if
+
+    if (present(ierror)) ierror = ierror_c
+
+end subroutine MPI_Win_detach_f08ts
diff --git a/src/binding/fortran/use_mpi_f08/wrappers_f/win_flush_all_f08ts.F90 b/src/binding/fortran/use_mpi_f08/wrappers_f/win_flush_all_f08ts.F90
new file mode 100644
index 0000000..ad076a0
--- /dev/null
+++ b/src/binding/fortran/use_mpi_f08/wrappers_f/win_flush_all_f08ts.F90
@@ -0,0 +1,29 @@
+!   -*- Mode: Fortran; -*-
+!
+!   (C) 2014 by Argonne National Laboratory.
+!   See COPYRIGHT in top-level directory.
+!
+subroutine MPI_Win_flush_all_f08(win, ierror)
+    use, intrinsic :: iso_c_binding, only : c_int
+    use :: mpi_f08, only : MPI_Win
+    use :: mpi_c_interface_types, only : c_Win
+    use :: mpi_c_interface, only : MPIR_Win_flush_all_c
+
+    implicit none
+
+    type(MPI_Win), intent(in) :: win
+    integer, optional, intent(out) :: ierror
+
+    integer(c_Win) :: win_c
+    integer(c_int) :: ierror_c
+
+    if (c_int == kind(0)) then
+        ierror_c = MPIR_Win_flush_all_c(win%MPI_VAL)
+    else
+        win_c = win%MPI_VAL
+        ierror_c = MPIR_Win_flush_all_c(win_c)
+    end if
+
+    if (present(ierror)) ierror = ierror_c
+
+end subroutine MPI_Win_flush_all_f08
diff --git a/src/binding/fortran/use_mpi_f08/wrappers_f/win_flush_f08ts.F90 b/src/binding/fortran/use_mpi_f08/wrappers_f/win_flush_f08ts.F90
new file mode 100644
index 0000000..3289677
--- /dev/null
+++ b/src/binding/fortran/use_mpi_f08/wrappers_f/win_flush_f08ts.F90
@@ -0,0 +1,31 @@
+!   -*- Mode: Fortran; -*-
+!
+!   (C) 2014 by Argonne National Laboratory.
+!   See COPYRIGHT in top-level directory.
+!
+subroutine MPI_Win_flush_f08(rank, win, ierror)
+    use, intrinsic :: iso_c_binding, only : c_int
+    use :: mpi_f08, only : MPI_Win
+    use :: mpi_c_interface_types, only : c_Win
+    use :: mpi_c_interface, only : MPIR_Win_flush_c
+
+    implicit none
+
+    integer, intent(in) :: rank
+    type(MPI_Win), intent(in) :: win
+    integer, optional, intent(out) :: ierror
+
+    integer(c_Win) :: win_c
+    integer(c_int) :: rank_c, ierror_c
+
+    if (c_int == kind(0)) then
+        ierror_c = MPIR_Win_flush_c(rank, win%MPI_VAL)
+    else
+        rank_c = rank
+        win_c = win%MPI_VAL
+        ierror_c = MPIR_Win_flush_c(rank_c, win_c)
+    end if
+
+    if (present(ierror)) ierror = ierror_c
+
+end subroutine MPI_Win_flush_f08
diff --git a/src/binding/fortran/use_mpi_f08/wrappers_f/win_flush_local_all_f08ts.F90 b/src/binding/fortran/use_mpi_f08/wrappers_f/win_flush_local_all_f08ts.F90
new file mode 100644
index 0000000..a2764ef
--- /dev/null
+++ b/src/binding/fortran/use_mpi_f08/wrappers_f/win_flush_local_all_f08ts.F90
@@ -0,0 +1,29 @@
+!   -*- Mode: Fortran; -*-
+!
+!   (C) 2014 by Argonne National Laboratory.
+!   See COPYRIGHT in top-level directory.
+!
+subroutine MPI_Win_flush_local_all_f08(win, ierror)
+    use, intrinsic :: iso_c_binding, only : c_int
+    use :: mpi_f08, only : MPI_Win
+    use :: mpi_c_interface_types, only : c_Win
+    use :: mpi_c_interface, only : MPIR_Win_flush_local_all_c
+
+    implicit none
+
+    type(MPI_Win), intent(in) :: win
+    integer, optional, intent(out) :: ierror
+
+    integer(c_Win) :: win_c
+    integer(c_int) :: ierror_c
+
+    if (c_int == kind(0)) then
+        ierror_c = MPIR_Win_flush_local_all_c(win%MPI_VAL)
+    else
+        win_c = win%MPI_VAL
+        ierror_c = MPIR_Win_flush_local_all_c(win_c)
+    end if
+
+    if (present(ierror)) ierror = ierror_c
+
+end subroutine MPI_Win_flush_local_all_f08
diff --git a/src/binding/fortran/use_mpi_f08/wrappers_f/win_flush_local_f08ts.F90 b/src/binding/fortran/use_mpi_f08/wrappers_f/win_flush_local_f08ts.F90
new file mode 100644
index 0000000..cfc9e25
--- /dev/null
+++ b/src/binding/fortran/use_mpi_f08/wrappers_f/win_flush_local_f08ts.F90
@@ -0,0 +1,31 @@
+!   -*- Mode: Fortran; -*-
+!
+!   (C) 2014 by Argonne National Laboratory.
+!   See COPYRIGHT in top-level directory.
+!
+subroutine MPI_Win_flush_local_f08(rank, win, ierror)
+    use, intrinsic :: iso_c_binding, only : c_int
+    use :: mpi_f08, only : MPI_Win
+    use :: mpi_c_interface_types, only : c_Win
+    use :: mpi_c_interface, only : MPIR_Win_flush_local_c
+
+    implicit none
+
+    integer, intent(in) :: rank
+    type(MPI_Win), intent(in) :: win
+    integer, optional, intent(out) :: ierror
+
+    integer(c_Win) :: win_c
+    integer(c_int) :: rank_c, ierror_c
+
+    if (c_int == kind(0)) then
+        ierror_c = MPIR_Win_flush_local_c(rank, win%MPI_VAL)
+    else
+        rank_c = rank
+        win_c = win%MPI_VAL
+        ierror_c = MPIR_Win_flush_local_c(rank_c, win_c)
+    end if
+
+    if (present(ierror)) ierror = ierror_c
+
+end subroutine MPI_Win_flush_local_f08
diff --git a/src/binding/fortran/use_mpi_f08/wrappers_f/win_get_info_f08ts.F90 b/src/binding/fortran/use_mpi_f08/wrappers_f/win_get_info_f08ts.F90
new file mode 100644
index 0000000..3f1d61c
--- /dev/null
+++ b/src/binding/fortran/use_mpi_f08/wrappers_f/win_get_info_f08ts.F90
@@ -0,0 +1,32 @@
+!   -*- Mode: Fortran; -*-
+!
+!   (C) 2014 by Argonne National Laboratory.
+!   See COPYRIGHT in top-level directory.
+!
+subroutine MPI_Win_get_info_f08(win, info_used, ierror)
+    use, intrinsic :: iso_c_binding, only : c_int
+    use :: mpi_f08, only : MPI_Win, MPI_Info
+    use :: mpi_c_interface_types, only : c_Win, c_Info
+    use :: mpi_c_interface, only : MPIR_Win_get_info_c
+
+    implicit none
+
+    type(MPI_Win), intent(in) :: win
+    type(MPI_Info), intent(out) :: info_used
+    integer, optional, intent(out) :: ierror
+
+    integer(c_Win) :: win_c
+    integer(c_Info) :: info_used_c
+    integer(c_int) :: ierror_c
+
+    if (c_int == kind(0)) then
+        ierror_c = MPIR_Win_get_info_c(win%MPI_VAL, info_used%MPI_VAL)
+    else
+        win_c = win%MPI_VAL
+        ierror_c = MPIR_Win_get_info_c(win_c, info_used_c)
+        info_used%MPI_VAL = info_used_c
+    end if
+
+    if (present(ierror)) ierror = ierror_c
+
+end subroutine MPI_Win_get_info_f08
diff --git a/src/binding/fortran/use_mpi_f08/wrappers_f/win_lock_all_f08ts.F90 b/src/binding/fortran/use_mpi_f08/wrappers_f/win_lock_all_f08ts.F90
new file mode 100644
index 0000000..b349654
--- /dev/null
+++ b/src/binding/fortran/use_mpi_f08/wrappers_f/win_lock_all_f08ts.F90
@@ -0,0 +1,32 @@
+!   -*- Mode: Fortran; -*-
+!
+!   (C) 2014 by Argonne National Laboratory.
+!   See COPYRIGHT in top-level directory.
+!
+subroutine MPI_Win_lock_all_f08(assert, win, ierror)
+    use, intrinsic :: iso_c_binding, only : c_int
+    use :: mpi_f08, only : MPI_Win
+    use :: mpi_c_interface_types, only : c_Win
+    use :: mpi_c_interface, only : MPIR_Win_lock_all_c
+
+    implicit none
+
+    integer, intent(in) :: assert
+    type(MPI_Win), intent(in) :: win
+    integer, optional, intent(out) :: ierror
+
+    integer(c_int) :: assert_c
+    integer(c_Win) :: win_c
+    integer(c_int) :: ierror_c
+
+    if (c_int == kind(0)) then
+        ierror_c = MPIR_Win_lock_all_c(assert, win%MPI_VAL)
+    else
+        assert_c = assert
+        win_c = win%MPI_VAL
+        ierror_c = MPIR_Win_lock_all_c(assert_c, win_c)
+    end if
+
+    if (present(ierror)) ierror = ierror_c
+
+end subroutine MPI_Win_lock_all_f08
diff --git a/src/binding/fortran/use_mpi_f08/wrappers_f/win_set_info_f08ts.F90 b/src/binding/fortran/use_mpi_f08/wrappers_f/win_set_info_f08ts.F90
new file mode 100644
index 0000000..73505fd
--- /dev/null
+++ b/src/binding/fortran/use_mpi_f08/wrappers_f/win_set_info_f08ts.F90
@@ -0,0 +1,32 @@
+!   -*- Mode: Fortran; -*-
+!
+!   (C) 2014 by Argonne National Laboratory.
+!   See COPYRIGHT in top-level directory.
+!
+subroutine MPI_Win_set_info_f08(win, info, ierror)
+    use, intrinsic :: iso_c_binding, only : c_int
+    use :: mpi_f08, only : MPI_Win, MPI_info
+    use :: mpi_c_interface_types, only : c_Win, c_Info
+    use :: mpi_c_interface, only : MPIR_Win_set_info_c
+
+    implicit none
+
+    type(MPI_Win), intent(in) :: win
+    type(MPI_Info), intent(in) :: info
+    integer, optional, intent(out) :: ierror
+
+    integer(c_Win) :: win_c
+    integer(c_Info) :: info_c
+    integer(c_int) :: ierror_c
+
+    if (c_int == kind(0)) then
+        ierror_c = MPIR_Win_set_info_c(win%MPI_VAL, info%MPI_VAL)
+    else
+        win_c = win%MPI_VAL
+        info_c = info%MPI_VAL
+        ierror_c = MPIR_Win_set_info_c(win_c, info_c)
+    end if
+
+    if (present(ierror)) ierror = ierror_c
+
+end subroutine MPI_Win_set_info_f08
diff --git a/src/binding/fortran/use_mpi_f08/wrappers_f/win_shared_query_f08ts.F90 b/src/binding/fortran/use_mpi_f08/wrappers_f/win_shared_query_f08ts.F90
new file mode 100644
index 0000000..966364c
--- /dev/null
+++ b/src/binding/fortran/use_mpi_f08/wrappers_f/win_shared_query_f08ts.F90
@@ -0,0 +1,36 @@
+!   -*- Mode: Fortran; -*-
+!
+!   (C) 2014 by Argonne National Laboratory.
+!   See COPYRIGHT in top-level directory.
+!
+subroutine MPI_Win_shared_query_f08(win, rank, size, disp_unit, baseptr, ierror)
+    use, intrinsic :: iso_c_binding, only : c_int, c_ptr
+    use :: mpi_f08, only : MPI_Win
+    use :: mpi_f08_compile_constants, only : MPI_ADDRESS_KIND
+    use :: mpi_c_interface_types, only : c_Win
+    use :: mpi_c_interface, only : MPIR_Win_shared_query_c
+
+    implicit none
+
+    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
+
+    integer(c_Win) :: win_c
+    integer(c_int) :: rank_c, disp_unit_c, ierror_c
+
+    if (c_int == kind(0)) then
+        ierror_c = MPIR_Win_shared_query_c(win%MPI_VAL, rank, size, disp_unit, baseptr)
+    else
+        win_c = win%MPI_VAL
+        rank_c = rank
+        ierror_c = MPIR_Win_shared_query_c(win_c, rank_c, size, disp_unit_c, baseptr)
+        disp_unit = disp_unit_c
+    end if
+
+    if (present(ierror)) ierror = ierror_c
+
+end subroutine MPI_Win_shared_query_f08
diff --git a/src/binding/fortran/use_mpi_f08/wrappers_f/win_sync_f08ts.F90 b/src/binding/fortran/use_mpi_f08/wrappers_f/win_sync_f08ts.F90
new file mode 100644
index 0000000..6703130
--- /dev/null
+++ b/src/binding/fortran/use_mpi_f08/wrappers_f/win_sync_f08ts.F90
@@ -0,0 +1,29 @@
+!   -*- Mode: Fortran; -*-
+!
+!   (C) 2014 by Argonne National Laboratory.
+!   See COPYRIGHT in top-level directory.
+!
+subroutine MPI_Win_sync_f08(win, ierror)
+    use, intrinsic :: iso_c_binding, only : c_int
+    use :: mpi_f08, only : MPI_Win
+    use :: mpi_c_interface_types, only : c_Win
+    use :: mpi_c_interface, only : MPIR_Win_sync_c
+
+    implicit none
+
+    type(MPI_Win), intent(in) :: win
+    integer, optional, intent(out) :: ierror
+
+    integer(c_Win) :: win_c
+    integer(c_int) :: ierror_c
+
+    if (c_int == kind(0)) then
+        ierror_c = MPIR_Win_sync_c(win%MPI_VAL)
+    else
+        win_c = win%MPI_VAL
+        ierror_c = MPIR_Win_sync_c(win_c)
+    end if
+
+    if (present(ierror)) ierror = ierror_c
+
+end subroutine MPI_Win_sync_f08
diff --git a/src/binding/fortran/use_mpi_f08/wrappers_f/win_unlock_all_f08ts.F90 b/src/binding/fortran/use_mpi_f08/wrappers_f/win_unlock_all_f08ts.F90
new file mode 100644
index 0000000..b12cfb9
--- /dev/null
+++ b/src/binding/fortran/use_mpi_f08/wrappers_f/win_unlock_all_f08ts.F90
@@ -0,0 +1,29 @@
+!   -*- Mode: Fortran; -*-
+!
+!   (C) 2014 by Argonne National Laboratory.
+!   See COPYRIGHT in top-level directory.
+!
+subroutine MPI_Win_unlock_all_f08(win, ierror)
+    use, intrinsic :: iso_c_binding, only : c_int
+    use :: mpi_f08, only : MPI_Win
+    use :: mpi_c_interface_types, only : c_Win
+    use :: mpi_c_interface, only : MPIR_Win_unlock_all_c
+
+    implicit none
+
+    type(MPI_Win), intent(in) :: win
+    integer, optional, intent(out) :: ierror
+
+    integer(c_Win) :: win_c
+    integer(c_int) :: ierror_c
+
+    if (c_int == kind(0)) then
+        ierror_c = MPIR_Win_unlock_all_c(win%MPI_VAL)
+    else
+        win_c = win%MPI_VAL
+        ierror_c = MPIR_Win_unlock_all_c(win_c)
+    end if
+
+    if (present(ierror)) ierror = ierror_c
+
+end subroutine MPI_Win_unlock_all_f08

-----------------------------------------------------------------------

Summary of changes:
 confdb/aclocal_fc.m4                               |   12 +-
 .../fortran/use_mpi_f08/mpi_c_interface_cdesc.F90  |  144 +++++++++-
 .../fortran/use_mpi_f08/mpi_c_interface_nobuf.F90  |  163 ++++++++++-
 src/binding/fortran/use_mpi_f08/mpi_f08.F90        |  309 +++++++++++++++++++-
 .../use_mpi_f08/wrappers_f/comm_get_info_f08ts.F90 |   32 ++
 .../use_mpi_f08/wrappers_f/comm_set_info_f08ts.F90 |   32 ++
 .../wrappers_f/compare_and_swap_f08ts.F90          |   43 +++
 .../use_mpi_f08/wrappers_f/fetch_and_op_f08ts.F90  |   45 +++
 .../wrappers_f/get_accumulate_f08ts.F90            |   63 ++++
 .../use_mpi_f08/wrappers_f/raccumulate_f08ts.F90   |   56 ++++
 .../wrappers_f/rget_accumulate_f08ts.F90           |   66 +++++
 .../fortran/use_mpi_f08/wrappers_f/rget_f08ts.F90  |   53 ++++
 .../fortran/use_mpi_f08/wrappers_f/rput_f08ts.F90  |   53 ++++
 .../use_mpi_f08/wrappers_f/win_allocate_f08ts.F90  |   43 +++
 .../wrappers_f/win_allocate_shared_f08ts.F90       |   43 +++
 .../use_mpi_f08/wrappers_f/win_attach_f08ts.F90    |   33 ++
 .../wrappers_f/win_create_dynamic_f08ts.F90        |   35 +++
 .../use_mpi_f08/wrappers_f/win_detach_f08ts.F90    |   30 ++
 .../use_mpi_f08/wrappers_f/win_flush_all_f08ts.F90 |   29 ++
 .../use_mpi_f08/wrappers_f/win_flush_f08ts.F90     |   31 ++
 .../wrappers_f/win_flush_local_all_f08ts.F90       |   29 ++
 .../wrappers_f/win_flush_local_f08ts.F90           |   31 ++
 .../use_mpi_f08/wrappers_f/win_get_info_f08ts.F90  |   32 ++
 .../use_mpi_f08/wrappers_f/win_lock_all_f08ts.F90  |   32 ++
 .../use_mpi_f08/wrappers_f/win_set_info_f08ts.F90  |   32 ++
 .../wrappers_f/win_shared_query_f08ts.F90          |   36 +++
 .../use_mpi_f08/wrappers_f/win_sync_f08ts.F90      |   29 ++
 .../wrappers_f/win_unlock_all_f08ts.F90            |   29 ++
 28 files changed, 1555 insertions(+), 10 deletions(-)
 create mode 100644 src/binding/fortran/use_mpi_f08/wrappers_f/comm_get_info_f08ts.F90
 create mode 100644 src/binding/fortran/use_mpi_f08/wrappers_f/comm_set_info_f08ts.F90
 create mode 100644 src/binding/fortran/use_mpi_f08/wrappers_f/compare_and_swap_f08ts.F90
 create mode 100644 src/binding/fortran/use_mpi_f08/wrappers_f/fetch_and_op_f08ts.F90
 create mode 100644 src/binding/fortran/use_mpi_f08/wrappers_f/get_accumulate_f08ts.F90
 create mode 100644 src/binding/fortran/use_mpi_f08/wrappers_f/raccumulate_f08ts.F90
 create mode 100644 src/binding/fortran/use_mpi_f08/wrappers_f/rget_accumulate_f08ts.F90
 create mode 100644 src/binding/fortran/use_mpi_f08/wrappers_f/rget_f08ts.F90
 create mode 100644 src/binding/fortran/use_mpi_f08/wrappers_f/rput_f08ts.F90
 create mode 100644 src/binding/fortran/use_mpi_f08/wrappers_f/win_allocate_f08ts.F90
 create mode 100644 src/binding/fortran/use_mpi_f08/wrappers_f/win_allocate_shared_f08ts.F90
 create mode 100644 src/binding/fortran/use_mpi_f08/wrappers_f/win_attach_f08ts.F90
 create mode 100644 src/binding/fortran/use_mpi_f08/wrappers_f/win_create_dynamic_f08ts.F90
 create mode 100644 src/binding/fortran/use_mpi_f08/wrappers_f/win_detach_f08ts.F90
 create mode 100644 src/binding/fortran/use_mpi_f08/wrappers_f/win_flush_all_f08ts.F90
 create mode 100644 src/binding/fortran/use_mpi_f08/wrappers_f/win_flush_f08ts.F90
 create mode 100644 src/binding/fortran/use_mpi_f08/wrappers_f/win_flush_local_all_f08ts.F90
 create mode 100644 src/binding/fortran/use_mpi_f08/wrappers_f/win_flush_local_f08ts.F90
 create mode 100644 src/binding/fortran/use_mpi_f08/wrappers_f/win_get_info_f08ts.F90
 create mode 100644 src/binding/fortran/use_mpi_f08/wrappers_f/win_lock_all_f08ts.F90
 create mode 100644 src/binding/fortran/use_mpi_f08/wrappers_f/win_set_info_f08ts.F90
 create mode 100644 src/binding/fortran/use_mpi_f08/wrappers_f/win_shared_query_f08ts.F90
 create mode 100644 src/binding/fortran/use_mpi_f08/wrappers_f/win_sync_f08ts.F90
 create mode 100644 src/binding/fortran/use_mpi_f08/wrappers_f/win_unlock_all_f08ts.F90


hooks/post-receive
-- 
MPICH primary repository


More information about the commits mailing list