More fortran fixes:
* More "assumed shape" -> "assumed rank" text fixes * Don't put a comment after "#endif" in .F90 files; gfortran hates that * Fix OMPI_PROCEDURE to work properly (i.e., OMPI_HAVE_PROCEDURE -> OMPI_FORTRAN_HAVE_PROCEDURE), and add all the required "use :: mpi_f08_interface_callbacks" now that OMPI_PROCEDURE is now working This commit was SVN r27119.
Этот коммит содержится в:
родитель
7237a938bf
Коммит
dd601b7de8
@ -20,7 +20,7 @@ dnl Additional copyrights may follow
|
||||
dnl
|
||||
dnl $HEADER$
|
||||
|
||||
# Does this compiler support the Fortran 2008 assumed shape syntax?
|
||||
# Does this compiler support the Fortran 2008 assumed rank syntax?
|
||||
|
||||
# OMPI_FORTRAN_CHECK_F08_ASSUMED_RANK([action if found],
|
||||
# [action if not found])
|
||||
@ -29,7 +29,7 @@ AC_DEFUN([OMPI_FORTRAN_CHECK_F08_ASSUMED_RANK], [
|
||||
AS_VAR_PUSHDEF([fortran_f08_assumed_rank],
|
||||
[ompi_cv_fortran_f08_assumed_rank])
|
||||
|
||||
AC_CACHE_CHECK([Fortran compiler F08 assumed shaped syntax],
|
||||
AC_CACHE_CHECK([Fortran compiler F08 assumed rank syntax],
|
||||
fortran_f08_assumed_rank,
|
||||
[_OMPI_FORTRAN_CHECK_F08_ASSUMED_RANK])
|
||||
|
||||
@ -56,6 +56,6 @@ AC_DEFUN([_OMPI_FORTRAN_CHECK_F08_ASSUMED_RANK], [
|
||||
|
||||
# Now put the orignal CACHE_CHECK MSG_CHECKING back so that it can
|
||||
# output the MSG_RESULT.
|
||||
AC_MSG_CHECKING([Fortran compiler F08 assumed shaped syntax])
|
||||
AC_MSG_CHECKING([Fortran compiler F08 assumed rank syntax])
|
||||
OPAL_VAR_SCOPE_POP
|
||||
])
|
||||
|
@ -399,9 +399,9 @@ end type test_mpi_handle],
|
||||
OMPI_FORTRAN_HAVE_F08_ASSUMED_RANK=0
|
||||
AS_IF([test $OMPI_WANT_FORTRAN_USEMPIF08_BINDINGS -eq 1 -a \
|
||||
$OMPI_BUILD_FORTRAN_USEMPIF08_BINDINGS -eq 1],
|
||||
[ # Look for Fortran 2008 assumed shape syntax
|
||||
[ # Look for Fortran 2008 assumed rank syntax
|
||||
OMPI_FORTRAN_CHECK_F08_ASSUMED_RANK(
|
||||
[ # If we have assumed shape, we can build the use
|
||||
[ # If we have assumed rank, we can build the use
|
||||
# mpi_f08 module "better"
|
||||
OMPI_FORTRAN_F08_PREDECL='!'
|
||||
OMPI_FORTRAN_F08_TYPE='type(*), dimension(..)'
|
||||
@ -589,7 +589,7 @@ end type test_mpi_handle],
|
||||
[For ompi_info: Whether we will build the MPI Fortran "use mpi_f08" bindings or not])
|
||||
AC_DEFINE_UNQUOTED(OMPI_FORTRAN_HAVE_F08_ASSUMED_RANK,
|
||||
[$OMPI_FORTRAN_HAVE_F08_ASSUMED_RANK],
|
||||
[For ompi_info: Whether the Fortran compiler supports the Fortran 2008 "assumed shape" syntax or not])
|
||||
[For ompi_info: Whether the Fortran compiler supports the Fortran 2008 "assumed rank" syntax or not])
|
||||
AC_DEFINE_UNQUOTED(OMPI_FORTRAN_HAVE_BIND_C,
|
||||
[$OMPI_FORTRAN_HAVE_BIND_C],
|
||||
[For ompi_info: Whether we want to use BIND(C) in the mpi_f08 module or not (based on "good" or "bad" compiler determination, i.e., whether we are using fortran wrapper functions for choice buffers or not)])
|
||||
|
@ -2611,7 +2611,8 @@ subroutine MPI_File_set_errhandler_f08(file,errhandler,ierror &
|
||||
end subroutine MPI_File_set_errhandler_f08
|
||||
end interface MPI_File_set_errhandler
|
||||
|
||||
#endif ! OMPI_PROVIDE_MPI_FILE_INTERFACE
|
||||
! endif for OMPI_PROVIDE_MPI_FILE_INTERFACE
|
||||
#endif
|
||||
|
||||
interface MPI_Finalize
|
||||
subroutine MPI_Finalize_f08(ierror &
|
||||
@ -4004,7 +4005,8 @@ subroutine MPI_File_write_shared_f08(fh,buf,count,datatype,status,ierror &
|
||||
end subroutine MPI_File_write_shared_f08
|
||||
end interface MPI_File_write_shared
|
||||
|
||||
#endif ! OMPI_PROVIDE_MPI_FILE_INTERFACE
|
||||
! endif for OMPI_PROVIDE_MPI_FILE_INTERFACE
|
||||
#endif
|
||||
|
||||
interface MPI_Register_datarep
|
||||
subroutine MPI_Register_datarep_f08(datarep,read_conversion_fn,write_conversion_fn, &
|
||||
|
@ -2611,7 +2611,8 @@ subroutine PMPI_File_set_errhandler_f08(file,errhandler,ierror &
|
||||
end subroutine PMPI_File_set_errhandler_f08
|
||||
end interface PMPI_File_set_errhandler
|
||||
|
||||
#endif ! OMPI_PROVIDE_MPI_FILE_INTERFACE
|
||||
! endif for OMPI_PROVIDE_MPI_FILE_INTERFACE
|
||||
#endif
|
||||
|
||||
interface PMPI_Finalize
|
||||
subroutine PMPI_Finalize_f08(ierror &
|
||||
@ -4004,7 +4005,8 @@ subroutine PMPI_File_write_shared_f08(fh,buf,count,datatype,status,ierror &
|
||||
end subroutine PMPI_File_write_shared_f08
|
||||
end interface PMPI_File_write_shared
|
||||
|
||||
#endif ! OMPI_PROVIDE_MPI_FILE_INTERFACE
|
||||
! endif for OMPI_PROVIDE_MPI_FILE_INTERFACE
|
||||
#endif
|
||||
|
||||
interface PMPI_Register_datarep
|
||||
subroutine PMPI_Register_datarep_f08(datarep,read_conversion_fn,write_conversion_fn, &
|
||||
|
@ -27,7 +27,7 @@
|
||||
#endif
|
||||
|
||||
! PROCEDURE or not
|
||||
#if OMPI_HAVE_PROCEDURE
|
||||
#if OMPI_FORTRAN_HAVE_PROCEDURE
|
||||
#define OMPI_PROCEDURE(name) PROCEDURE(name)
|
||||
#else
|
||||
#define OMPI_PROCEDURE(name) EXTERNAL
|
||||
|
@ -32,7 +32,7 @@
|
||||
! Whether we have ASYNCHRONOUS or not
|
||||
#define OMPI_FORTRAN_HAVE_ASYNCHRONOUS @OMPI_FORTRAN_HAVE_ASYNCHRONOUS@
|
||||
|
||||
! Whether we have ASYNCHRONOUS or not
|
||||
! Whether we have PROCEDURE or not
|
||||
#define OMPI_FORTRAN_HAVE_PROCEDURE @OMPI_FORTRAN_HAVE_PROCEDURE@
|
||||
|
||||
! Whether we are building the MPI F08 bindings with subarray support or not
|
||||
|
@ -954,6 +954,7 @@ end subroutine ompi_op_commutative_f
|
||||
|
||||
subroutine ompi_op_create_f(user_fn,commute,op,ierror) &
|
||||
BIND(C, name="ompi_op_create_f")
|
||||
use :: mpi_f08_interfaces_callbacks, only : MPI_User_function
|
||||
implicit none
|
||||
OMPI_PROCEDURE(MPI_User_function) :: user_fn
|
||||
LOGICAL, INTENT(IN) :: commute
|
||||
@ -1148,6 +1149,8 @@ subroutine ompi_comm_create_keyval_f(comm_copy_attr_fn,comm_delete_attr_fn, &
|
||||
comm_keyval,extra_state,ierror) &
|
||||
BIND(C, name="ompi_comm_create_keyval_f")
|
||||
use :: mpi_f08_types, only : MPI_ADDRESS_KIND
|
||||
use :: mpi_f08_interfaces_callbacks, only : MPI_Comm_copy_attr_function
|
||||
use :: mpi_f08_interfaces_callbacks, only : MPI_Comm_delete_attr_function
|
||||
implicit none
|
||||
OMPI_PROCEDURE(MPI_Comm_copy_attr_function) :: comm_copy_attr_fn
|
||||
OMPI_PROCEDURE(MPI_Comm_delete_attr_function) :: comm_delete_attr_fn
|
||||
@ -1416,6 +1419,8 @@ subroutine ompi_type_create_keyval_f(type_copy_attr_fn,type_delete_attr_fn, &
|
||||
type_keyval,extra_state,ierror) &
|
||||
BIND(C, name="ompi_type_create_keyval_f")
|
||||
use :: mpi_f08_types, only : MPI_ADDRESS_KIND
|
||||
use :: mpi_f08_interfaces_callbacks, only : MPI_Type_copy_attr_function
|
||||
use :: mpi_f08_interfaces_callbacks, only : MPI_Type_delete_attr_function
|
||||
implicit none
|
||||
OMPI_PROCEDURE(MPI_Type_copy_attr_function) :: type_copy_attr_fn
|
||||
OMPI_PROCEDURE(MPI_Type_delete_attr_function) :: type_delete_attr_fn
|
||||
@ -1485,6 +1490,8 @@ subroutine ompi_win_create_keyval_f(win_copy_attr_fn,win_delete_attr_fn, &
|
||||
win_keyval,extra_state,ierror) &
|
||||
BIND(C, name="ompi_win_create_keyval_f")
|
||||
use :: mpi_f08_types, only : MPI_ADDRESS_KIND
|
||||
use :: mpi_f08_interfaces_callbacks, only : MPI_Win_copy_attr_function
|
||||
use :: mpi_f08_interfaces_callbacks, only : MPI_Win_delete_attr_function
|
||||
implicit none
|
||||
OMPI_PROCEDURE(MPI_Win_copy_attr_function) :: win_copy_attr_fn
|
||||
OMPI_PROCEDURE(MPI_Win_delete_attr_function) :: win_delete_attr_fn
|
||||
@ -1814,6 +1821,7 @@ end subroutine ompi_comm_call_errhandler_f
|
||||
|
||||
subroutine ompi_comm_create_errhandler_f(comm_errhandler_fn,errhandler,ierror) &
|
||||
BIND(C, name="ompi_comm_create_errhandler_f")
|
||||
use :: mpi_f08_interfaces_callbacks, only : MPI_Comm_errhandler_function
|
||||
implicit none
|
||||
OMPI_PROCEDURE(MPI_Comm_errhandler_function) :: comm_errhandler_fn
|
||||
INTEGER, INTENT(OUT) :: errhandler
|
||||
@ -1872,6 +1880,7 @@ end subroutine ompi_file_call_errhandler_f
|
||||
|
||||
subroutine ompi_file_create_errhandler_f(file_errhandler_fn,errhandler,ierror) &
|
||||
BIND(C, name="ompi_file_create_errhandler_f")
|
||||
use :: mpi_f08_interfaces_callbacks, only : MPI_File_errhandler_function
|
||||
implicit none
|
||||
OMPI_PROCEDURE(MPI_File_errhandler_function) :: file_errhandler_fn
|
||||
INTEGER, INTENT(OUT) :: errhandler
|
||||
@ -1955,6 +1964,7 @@ end subroutine ompi_win_call_errhandler_f
|
||||
|
||||
subroutine ompi_win_create_errhandler_f(win_errhandler_fn,errhandler,ierror) &
|
||||
BIND(C, name="ompi_win_create_errhandler_f")
|
||||
use :: mpi_f08_interfaces_callbacks, only : MPI_Win_errhandler_function
|
||||
implicit none
|
||||
OMPI_PROCEDURE(MPI_Win_errhandler_function) :: win_errhandler_fn
|
||||
INTEGER, INTENT(OUT) :: errhandler
|
||||
@ -2344,6 +2354,9 @@ subroutine ompi_grequest_start_f(query_fn,free_fn,cancel_fn, &
|
||||
extra_state,request,ierror) &
|
||||
BIND(C, name="ompi_grequest_start_f")
|
||||
use :: mpi_f08_types, only : MPI_ADDRESS_KIND
|
||||
use :: mpi_f08_interfaces_callbacks, only : MPI_Grequest_query_function
|
||||
use :: mpi_f08_interfaces_callbacks, only : MPI_Grequest_free_function
|
||||
use :: mpi_f08_interfaces_callbacks, only : MPI_Grequest_cancel_function
|
||||
implicit none
|
||||
OMPI_PROCEDURE(MPI_Grequest_query_function) :: query_fn
|
||||
OMPI_PROCEDURE(MPI_Grequest_free_function) :: free_fn
|
||||
@ -2941,6 +2954,8 @@ subroutine ompi_register_datarep_f(datarep,read_conversion_fn, &
|
||||
BIND(C, name="ompi_register_datarep_f")
|
||||
use, intrinsic :: ISO_C_BINDING, only : C_CHAR
|
||||
use :: mpi_f08_types, only : MPI_ADDRESS_KIND
|
||||
use :: mpi_f08_interfaces_callbacks, only : MPI_Datarep_conversion_function
|
||||
use :: mpi_f08_interfaces_callbacks, only : MPI_Datarep_extent_function
|
||||
implicit none
|
||||
OMPI_PROCEDURE(MPI_Datarep_conversion_function) :: read_conversion_fn
|
||||
OMPI_PROCEDURE(MPI_Datarep_conversion_function) :: write_conversion_fn
|
||||
|
@ -954,6 +954,7 @@ end subroutine pompi_op_commutative_f
|
||||
|
||||
subroutine pompi_op_create_f(user_fn,commute,op,ierror) &
|
||||
BIND(C, name="pompi_op_create_f")
|
||||
use :: mpi_f08_interfaces_callbacks, only : MPI_User_function
|
||||
implicit none
|
||||
OMPI_PROCEDURE(MPI_User_function) :: user_fn
|
||||
LOGICAL, INTENT(IN) :: commute
|
||||
@ -1148,6 +1149,8 @@ subroutine pompi_comm_create_keyval_f(comm_copy_attr_fn,comm_delete_attr_fn, &
|
||||
comm_keyval,extra_state,ierror) &
|
||||
BIND(C, name="pompi_comm_create_keyval_f")
|
||||
use :: mpi_f08_types, only : MPI_ADDRESS_KIND
|
||||
use :: mpi_f08_interfaces_callbacks, only : MPI_Comm_copy_attr_function
|
||||
use :: mpi_f08_interfaces_callbacks, only : MPI_Comm_delete_attr_function
|
||||
implicit none
|
||||
OMPI_PROCEDURE(MPI_Comm_copy_attr_function) :: comm_copy_attr_fn
|
||||
OMPI_PROCEDURE(MPI_Comm_delete_attr_function) :: comm_delete_attr_fn
|
||||
@ -1416,6 +1419,8 @@ subroutine pompi_type_create_keyval_f(type_copy_attr_fn,type_delete_attr_fn, &
|
||||
type_keyval,extra_state,ierror) &
|
||||
BIND(C, name="pompi_type_create_keyval_f")
|
||||
use :: mpi_f08_types, only : MPI_ADDRESS_KIND
|
||||
use :: mpi_f08_interfaces_callbacks, only : MPI_Type_copy_attr_function
|
||||
use :: mpi_f08_interfaces_callbacks, only : MPI_Type_delete_attr_function
|
||||
implicit none
|
||||
OMPI_PROCEDURE(MPI_Type_copy_attr_function) :: type_copy_attr_fn
|
||||
OMPI_PROCEDURE(MPI_Type_delete_attr_function) :: type_delete_attr_fn
|
||||
@ -1485,6 +1490,8 @@ subroutine pompi_win_create_keyval_f(win_copy_attr_fn,win_delete_attr_fn, &
|
||||
win_keyval,extra_state,ierror) &
|
||||
BIND(C, name="pompi_win_create_keyval_f")
|
||||
use :: mpi_f08_types, only : MPI_ADDRESS_KIND
|
||||
use :: mpi_f08_interfaces_callbacks, only : MPI_Win_copy_attr_function
|
||||
use :: mpi_f08_interfaces_callbacks, only : MPI_Win_delete_attr_function
|
||||
implicit none
|
||||
OMPI_PROCEDURE(MPI_Win_copy_attr_function) :: win_copy_attr_fn
|
||||
OMPI_PROCEDURE(MPI_Win_delete_attr_function) :: win_delete_attr_fn
|
||||
@ -1817,6 +1824,7 @@ end subroutine pompi_comm_call_errhandler_f
|
||||
|
||||
subroutine pompi_comm_create_errhandler_f(comm_errhandler_fn,errhandler,ierror) &
|
||||
BIND(C, name="pompi_comm_create_errhandler_f")
|
||||
use :: mpi_f08_interfaces_callbacks, only : MPI_Comm_errhandler_function
|
||||
implicit none
|
||||
OMPI_PROCEDURE(MPI_Comm_errhandler_function) :: comm_errhandler_fn
|
||||
INTEGER, INTENT(OUT) :: errhandler
|
||||
@ -1875,6 +1883,7 @@ end subroutine pompi_file_call_errhandler_f
|
||||
|
||||
subroutine pompi_file_create_errhandler_f(file_errhandler_fn,errhandler,ierror) &
|
||||
BIND(C, name="pompi_file_create_errhandler_f")
|
||||
use :: mpi_f08_interfaces_callbacks, only : MPI_File_errhandler_function
|
||||
implicit none
|
||||
OMPI_PROCEDURE(MPI_File_errhandler_function) :: file_errhandler_fn
|
||||
INTEGER, INTENT(OUT) :: errhandler
|
||||
@ -1961,6 +1970,7 @@ end subroutine pompi_win_call_errhandler_f
|
||||
|
||||
subroutine pompi_win_create_errhandler_f(win_errhandler_fn,errhandler,ierror) &
|
||||
BIND(C, name="pompi_win_create_errhandler_f")
|
||||
use :: mpi_f08_interfaces_callbacks, only : MPI_Win_errhandler_function
|
||||
implicit none
|
||||
OMPI_PROCEDURE(MPI_Win_errhandler_function) :: win_errhandler_fn
|
||||
INTEGER, INTENT(OUT) :: errhandler
|
||||
@ -2350,6 +2360,9 @@ subroutine pompi_grequest_start_f(query_fn,free_fn,cancel_fn, &
|
||||
extra_state,request,ierror) &
|
||||
BIND(C, name="pompi_grequest_start_f")
|
||||
use :: mpi_f08_types, only : MPI_ADDRESS_KIND
|
||||
use :: mpi_f08_interfaces_callbacks, only : MPI_Grequest_query_function
|
||||
use :: mpi_f08_interfaces_callbacks, only : MPI_Grequest_free_function
|
||||
use :: mpi_f08_interfaces_callbacks, only : MPI_Grequest_cancel_function
|
||||
implicit none
|
||||
OMPI_PROCEDURE(MPI_Grequest_query_function) :: query_fn
|
||||
OMPI_PROCEDURE(MPI_Grequest_free_function) :: free_fn
|
||||
@ -2947,6 +2960,8 @@ subroutine pompi_register_datarep_f(datarep,read_conversion_fn, &
|
||||
BIND(C, name="pompi_register_datarep_f")
|
||||
use, intrinsic :: ISO_C_BINDING, only : C_CHAR
|
||||
use :: mpi_f08_types, only : MPI_ADDRESS_KIND
|
||||
use :: mpi_f08_interfaces_callbacks, only : MPI_Datarep_conversion_function
|
||||
use :: mpi_f08_interfaces_callbacks, only : MPI_Datarep_extent_function
|
||||
implicit none
|
||||
OMPI_PROCEDURE(MPI_Datarep_conversion_function) :: read_conversion_fn
|
||||
OMPI_PROCEDURE(MPI_Datarep_conversion_function) :: write_conversion_fn
|
||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user