1
1

Merge pull request #1538 from kawashima-fj/pr/fortran-binding-fix

fortran: Fix many Fortran binding bugs
This commit is contained in:
Jeff Squyres 2016-04-14 17:18:59 -04:00
commit 4566286b9a
7 changed files with 700 additions and 325 deletions

View File

@ -21,6 +21,15 @@ interface
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
subroutine MPI_DUP_FN( comm, comm_keyval, extra_state, &
attribute_val_in, attribute_val_out, &
flag, ierr )
implicit none
integer :: comm, comm_keyval, extra_state
integer :: attribute_val_in, attribute_val_out, ierr
logical :: flag
end subroutine MPI_DUP_FN
subroutine MPI_NULL_COPY_FN( comm, comm_keyval, extra_state, &
attribute_val_in, attribute_val_out, &
flag, ierr )
@ -40,6 +49,17 @@ interface
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
subroutine MPI_COMM_DUP_FN(oldcomm, comm_keyval, extra_state, attribute_val_in, &
attribute_val_out, flag, ierr )
implicit none
include 'mpif-config.h'
integer :: oldcomm
integer :: comm_keyval
integer(kind=MPI_ADDRESS_KIND) :: extra_state, attribute_val_in, attribute_val_out
logical :: flag
integer :: ierr
end subroutine MPI_COMM_DUP_FN
subroutine MPI_COMM_NULL_COPY_FN( comm, comm_keyval, extra_state, &
attribute_val_in, attribute_val_out, &
flag, ierr )
@ -62,17 +82,6 @@ interface
integer :: ierr
end subroutine MPI_COMM_NULL_DELETE_FN
subroutine MPI_COMM_DUP_FN(oldcomm, comm_keyval, extra_state, attribute_val_in, &
attribute_val_out, flag, ierr )
implicit none
include 'mpif-config.h'
integer :: oldcomm
integer :: comm_keyval
integer(kind=MPI_ADDRESS_KIND) :: extra_state, attribute_val_in, attribute_val_out
logical :: flag
integer :: ierr
end subroutine MPI_COMM_DUP_FN
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
subroutine MPI_TYPE_DUP_FN( oldtype, type_keyval, extra_state, &

View File

@ -30,14 +30,16 @@
#pragma weak pmpi_alloc_mem_ = ompi_alloc_mem_f
#pragma weak pmpi_alloc_mem__ = ompi_alloc_mem_f
/* Extra pragmas for the _cptr variant from MPI-3.1 */
#pragma weak PMPI_Alloc_mem_f = ompi_alloc_mem_f
#pragma weak PMPI_Alloc_mem_f08 = ompi_alloc_mem_f
#pragma weak PMPI_ALLOC_MEM_CPTR = ompi_alloc_mem_f
#pragma weak pmpi_alloc_mem_cptr = ompi_alloc_mem_f
#pragma weak pmpi_alloc_mem_cptr_ = ompi_alloc_mem_f
#pragma weak pmpi_alloc_mem_cptr__ = ompi_alloc_mem_f
#pragma weak PMPI_Alloc_mem_f = ompi_alloc_mem_f
#pragma weak PMPI_Alloc_mem_f08 = ompi_alloc_mem_f
#pragma weak PMPI_Alloc_mem_cptr_f = ompi_alloc_mem_f
#pragma weak PMPI_Alloc_mem_cptr_f08 = ompi_alloc_mem_f
#else
OMPI_GENERATE_F77_BINDINGS (PMPI_ALLOC_MEM,
pmpi_alloc_mem,
@ -51,7 +53,7 @@ OMPI_GENERATE_F77_BINDINGS (PMPI_ALLOC_MEM_CPTR,
pmpi_alloc_mem_cptr,
pmpi_alloc_mem_cptr_,
pmpi_alloc_mem_cptr__,
pompi_alloc_mem_f,
pompi_alloc_mem_cptr_f,
(MPI_Aint *size, MPI_Fint *info, char *baseptr, MPI_Fint *ierr),
(size, info, baseptr, ierr) )
#endif
@ -63,7 +65,6 @@ OMPI_GENERATE_F77_BINDINGS (PMPI_ALLOC_MEM_CPTR,
#pragma weak mpi_alloc_mem_ = ompi_alloc_mem_f
#pragma weak mpi_alloc_mem__ = ompi_alloc_mem_f
/* Extra pragmas for the _cptr variant from MPI-3.1 */
#pragma weak MPI_ALLOC_MEM_CPTR = ompi_alloc_mem_f
#pragma weak mpi_alloc_mem_cptr = ompi_alloc_mem_f
#pragma weak mpi_alloc_mem_cptr_ = ompi_alloc_mem_f
@ -71,6 +72,9 @@ OMPI_GENERATE_F77_BINDINGS (PMPI_ALLOC_MEM_CPTR,
#pragma weak MPI_Alloc_mem_f = ompi_alloc_mem_f
#pragma weak MPI_Alloc_mem_f08 = ompi_alloc_mem_f
#pragma weak MPI_Alloc_mem_cptr_f = ompi_alloc_mem_f
#pragma weak MPI_Alloc_mem_cptr_f08 = ompi_alloc_mem_f
#else
#if ! OMPI_BUILD_MPI_PROFILING
OMPI_GENERATE_F77_BINDINGS (MPI_ALLOC_MEM,
@ -85,11 +89,12 @@ OMPI_GENERATE_F77_BINDINGS (MPI_ALLOC_MEM_CPTR,
mpi_alloc_mem_cptr,
mpi_alloc_mem_cptr_,
mpi_alloc_mem_cptr__,
ompi_alloc_mem_f,
ompi_alloc_mem_cptr_f,
(MPI_Aint *size, MPI_Fint *info, char *baseptr, MPI_Fint *ierr),
(size, info, baseptr, ierr) )
#else
#define ompi_alloc_mem_f pompi_alloc_mem_f
#define ompi_alloc_mem_cptr_f pompi_alloc_mem_cptr_f
#endif
#endif
@ -102,3 +107,12 @@ void ompi_alloc_mem_f(MPI_Aint *size, MPI_Fint *info, char *baseptr, MPI_Fint *i
ierr_c = PMPI_Alloc_mem(*size, c_info, baseptr);
if (NULL != ierr) *ierr = OMPI_INT_2_FINT(ierr_c);
}
/*
* Note that MPI-3 mandates a second form of the
* MPI_Alloc_mem interface -- one that has a "_cptr" suffix.
*/
void ompi_alloc_mem_cptr_f(MPI_Aint *size, MPI_Fint *info, char *baseptr, MPI_Fint *ierr)
{
ompi_alloc_mem_f(size, info, baseptr, ierr);
}

View File

@ -19,8 +19,8 @@
#pragma weak pmpi_win_attach_ = ompi_win_attach_f
#pragma weak pmpi_win_attach__ = ompi_win_attach_f
#pragma weak PMPI_Win_create_f = ompi_win_attach_f
#pragma weak PMPI_Win_create_f08 = ompi_win_attach_f
#pragma weak PMPI_Win_attach_f = ompi_win_attach_f
#pragma weak PMPI_Win_attach_f08 = ompi_win_attach_f
#else
OMPI_GENERATE_F77_BINDINGS (PMPI_WIN_ATTACH,
pmpi_win_attach,
@ -38,8 +38,8 @@ OMPI_GENERATE_F77_BINDINGS (PMPI_WIN_ATTACH,
#pragma weak mpi_win_attach_ = ompi_win_attach_f
#pragma weak mpi_win_attach__ = ompi_win_attach_f
#pragma weak MPI_Win_create_f = ompi_win_attach_f
#pragma weak MPI_Win_create_f08 = ompi_win_attach_f
#pragma weak MPI_Win_attach_f = ompi_win_attach_f
#pragma weak MPI_Win_attach_f08 = ompi_win_attach_f
#else
#if ! OMPI_BUILD_MPI_PROFILING
OMPI_GENERATE_F77_BINDINGS (MPI_WIN_ATTACH,

View File

@ -19,8 +19,8 @@
#pragma weak pmpi_win_detach_ = ompi_win_detach_f
#pragma weak pmpi_win_detach__ = ompi_win_detach_f
#pragma weak PMPI_Win_create_f = ompi_win_detach_f
#pragma weak PMPI_Win_create_f08 = ompi_win_detach_f
#pragma weak PMPI_Win_detach_f = ompi_win_detach_f
#pragma weak PMPI_Win_detach_f08 = ompi_win_detach_f
#else
OMPI_GENERATE_F77_BINDINGS (PMPI_WIN_DETACH,
pmpi_win_detach,
@ -38,8 +38,8 @@ OMPI_GENERATE_F77_BINDINGS (PMPI_WIN_DETACH,
#pragma weak mpi_win_detach_ = ompi_win_detach_f
#pragma weak mpi_win_detach__ = ompi_win_detach_f
#pragma weak MPI_Win_create_f = ompi_win_detach_f
#pragma weak MPI_Win_create_f08 = ompi_win_detach_f
#pragma weak MPI_Win_detach_f = ompi_win_detach_f
#pragma weak MPI_Win_detach_f08 = ompi_win_detach_f
#else
#if ! OMPI_BUILD_MPI_PROFILING
OMPI_GENERATE_F77_BINDINGS (MPI_WIN_DETACH,

View File

@ -19,8 +19,8 @@
#pragma weak pmpi_win_get_info_ = ompi_win_get_info_f
#pragma weak pmpi_win_get_info__ = ompi_win_get_info_f
#pragma weak PMPI_Win_create_f = ompi_win_get_info_f
#pragma weak PMPI_Win_create_f08 = ompi_win_get_info_f
#pragma weak PMPI_Win_get_info_f = ompi_win_get_info_f
#pragma weak PMPI_Win_get_info_f08 = ompi_win_get_info_f
#else
OMPI_GENERATE_F77_BINDINGS (PMPI_WIN_GET_INFO,
pmpi_win_get_info,
@ -38,8 +38,8 @@ OMPI_GENERATE_F77_BINDINGS (PMPI_WIN_GET_INFO,
#pragma weak mpi_win_get_info_ = ompi_win_get_info_f
#pragma weak mpi_win_get_info__ = ompi_win_get_info_f
#pragma weak MPI_Win_create_f = ompi_win_get_info_f
#pragma weak MPI_Win_create_f08 = ompi_win_get_info_f
#pragma weak MPI_Win_get_info_f = ompi_win_get_info_f
#pragma weak MPI_Win_get_info_f08 = ompi_win_get_info_f
#else
#if ! OMPI_BUILD_MPI_PROFILING
OMPI_GENERATE_F77_BINDINGS (MPI_WIN_GET_INFO,

View File

@ -19,8 +19,8 @@
#pragma weak pmpi_win_set_info_ = ompi_win_set_info_f
#pragma weak pmpi_win_set_info__ = ompi_win_set_info_f
#pragma weak PMPI_Win_create_f = ompi_win_set_info_f
#pragma weak PMPI_Win_create_f08 = ompi_win_set_info_f
#pragma weak PMPI_Win_set_info_f = ompi_win_set_info_f
#pragma weak PMPI_Win_set_info_f08 = ompi_win_set_info_f
#else
OMPI_GENERATE_F77_BINDINGS (PMPI_WIN_SET_INFO,
pmpi_win_set_info,
@ -38,8 +38,8 @@ OMPI_GENERATE_F77_BINDINGS (PMPI_WIN_SET_INFO,
#pragma weak mpi_win_set_info_ = ompi_win_set_info_f
#pragma weak mpi_win_set_info__ = ompi_win_set_info_f
#pragma weak MPI_Win_create_f = ompi_win_set_info_f
#pragma weak MPI_Win_create_f08 = ompi_win_set_info_f
#pragma weak MPI_Win_set_info_f = ompi_win_set_info_f
#pragma weak MPI_Win_set_info_f08 = ompi_win_set_info_f
#else
#if ! OMPI_BUILD_MPI_PROFILING
OMPI_GENERATE_F77_BINDINGS (MPI_WIN_SET_INFO,