0089ac20af
Older gfortran compilers (e.g., the gfortran that ships in RHEL5) do not support ISO_C_BINDING, and therefore do not support the TYPE(C_PTR) type. As such, they cannot support the overloaded interfaces for MPI_WIN_ALLOCATE_SHARED and MPI_SHARED_QUERY that are mandated in MPI-3. So we separate those interfaces out into a separate .F90 file that is #include'd in the tkr mpi.F90 file. In this separate .F90 file, we use an #if to determine whether the compiler supports ISO_C_BINDING or not. Also re-jiggered the order of testing in ompi_setup_mpi_fortran.m4: we now need to test whether the compiler supports ISO_C_BINDING even when we're only building the mpi module (not strictly when we're building the mpi_f08 module). Finally, tweaked the use-mpi-tkr/Makefile.am to: * Add some proper dependencies for mpi.F90 * Allow the general AM compilation to be used instead of supplying a specific rule for compiling mpi.F90 cmr=v1.8.2:ticket=trac:4736 This commit was SVN r32204. The following Trac tickets were found above: Ticket 4736 --> https://svn.open-mpi.org/trac/ompi/ticket/4736
54 строки
1.7 KiB
Fortran
54 строки
1.7 KiB
Fortran
! -*- f90 -*-
|
|
!
|
|
! Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
|
! University Research and Technology
|
|
! Corporation. All rights reserved.
|
|
! Copyright (c) 2004-2005 The University of Tennessee and The University
|
|
! of Tennessee Research Foundation. All rights
|
|
! reserved.
|
|
! Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
|
! University of Stuttgart. All rights reserved.
|
|
! Copyright (c) 2004-2005 The Regents of the University of California.
|
|
! All rights reserved.
|
|
! Copyright (c) 2006-2014 Cisco Systems, Inc. All rights reserved.
|
|
! $COPYRIGHT$
|
|
!
|
|
! Additional copyrights may follow
|
|
!
|
|
! $HEADER$
|
|
!
|
|
|
|
#include "ompi/mpi/fortran/configure-fortran-output.h"
|
|
|
|
module mpi
|
|
|
|
include "mpif-config.h"
|
|
include "mpif-constants.h"
|
|
include "mpif-handles.h"
|
|
#if OMPI_PROVIDE_MPI_FILE_INTERFACE
|
|
include "mpif-io-constants.h"
|
|
include "mpif-io-handles.h"
|
|
#endif
|
|
include "mpif-sentinels.h"
|
|
|
|
! The MPI attribute callback functions
|
|
|
|
include "ompi/mpi/fortran/base/attr-fn-int-callback-interfaces.h"
|
|
|
|
! The MPI_CONVERSION_FN_NULL function
|
|
|
|
include "ompi/mpi/fortran/base/conversion-fn-null-int-interface.h"
|
|
|
|
! Functions that have overloaded interfaces with TYPE(C_PTR) (which
|
|
! this compiler may or may not support). We use an "if" preprocessor
|
|
! macro in this file, so we need to use the preprocessor include
|
|
! directive, not the Fortran include.
|
|
#include "mpi-f90-cptr-interfaces.F90"
|
|
|
|
! This file is generated, and is *huge*. Its size is directly related
|
|
! to the --with-f90-max-array-dim configure parameter.
|
|
|
|
include "mpi-f90-interfaces.h"
|
|
|
|
end module mpi
|