1
1
openmpi/ompi/mpi/fortran/configure-fortran-output.h.in
Jeff Squyres 7390ab8a23 Many updates and bug fixes for the Fortran bindings. Sorry these
aren't separated out into individual commits; they represent a few
months of work in the Mercurial branch, and it seemed error-prone to
try to break them up into multiple SVN commits.

 * Remove 2nd overloaded interfaces for MPI_TESTALL, MPI_TESTSOME,
   MPI_WAITALL, and MPI_WAITSOME in the "mpi" module implementations
   (because we're not allowed to have them, anyway -- it causes
   complications in the profiling interface).  This forced an MPI-2.2
   errata in the MPI Forum; we applied the errata here (the array of
   statuses parameter could not have a specific dimension specified in
   the dummy argument).  Fixes trac:3166.
 * Similarly, fix type for MPI_ARGVS_NULL in Fortran
 * Add MPI_3.0 function MPI_F_SYNC_REG (Fortran interfaces only).
 * Add MPI-3.0 MPI_MESSAGE_NO_PROC in the mpi_f08 module.
 * Added mpi_f08 handle comparison operators, per MPI-3.0 addendum to
   the F08 proposal at the last Forum meeting.  
 * Added missing type(MPI_File) and type(Message) in mpi_f08 module.
 * Fix --disable-mpi-io configure switch with all Fortran interfaces
 * Re-factor the Fortran header files to be fundamentally simpler and
   easier to maintain.  Fortran constant values in the header files
   are now generated by a script named mpif-values.pl during
   autogen.pl (they were previously generated by mpif-common.pl, but
   it was quite a bit more subtle/complex).  A second commit will
   follow this one to update svn:ignore values (just to ensure we
   don't muck up the first commit with the SVN client getting confused
   by the changed ignore values and new/changed files).
 * Fix some dependencies for compile ordering in
   ompi/mpi/fortran/use-mpi-ignore-tkr/Makefile.am. 
 * Fix bad wording in several places (.m4 file name, ompi_info output,
   etc.): we previoulsy said "F08 assumed shape" when we really meant
   "F08 assumed rank" (for Fortran gurus, those are very different
   things). 
 * Removed the GREEK/SVN version string from mpif.h.  It really had no
   purpose being there.

Still to be done:

 * Handling of 2D array of strings in MPI_COMM_SPAWN_MULTIPLE still
   isn't right yet.  Not sure how many people really care about this
   :-), but it is still broken.

This commit was SVN r26997.

The following Trac tickets were found above:
  Ticket 3166 --> https://svn.open-mpi.org/trac/ompi/ticket/3166
2012-08-10 21:19:47 +00:00

110 строки
4.0 KiB
Fortran

! -*- fortran -*-
!
! Copyright (c) 2006-2012 Cisco Systems, Inc. All rights reserved.
! Copyright (c) 2009-2012 Los Alamos National Security, LLC.
! All rights reserved.
!
! $COPYRIGHT$
!
! Additional copyrights may follow
!
! $HEADER$
!
! This file exists to have a Fortran-safe header file that has
! results from configure tests.
#ifndef OMPI_FORTRAN_CONFIGURE_OUTPUT_H
#define OMPI_FORTRAN_CONFIGURE_OUTPUT_H
! Whether we're building the MPI IO interface or not
#define OMPI_PROVIDE_MPI_FILE_INTERFACE @OMPI_PROVIDE_MPI_FILE_INTERFACE@
! Whether we're using wrapper F08 functions or not
#define OMPI_FORTRAN_NEED_WRAPPER_ROUTINES @OMPI_FORTRAN_NEED_WRAPPER_ROUTINES@
! Whether we have PRIVATE or not
#define OMPI_FORTRAN_HAVE_PRIVATE @OMPI_FORTRAN_HAVE_PRIVATE@
! Whether we have ABSTRACT or not
#define OMPI_FORTRAN_HAVE_ABSTRACT @OMPI_FORTRAN_HAVE_ABSTRACT@
! Whether we have ASYNCHRONOUS or not
#define OMPI_FORTRAN_HAVE_ASYNCHRONOUS @OMPI_FORTRAN_HAVE_ASYNCHRONOUS@
! Whether we have ASYNCHRONOUS or not
#define OMPI_FORTRAN_HAVE_PROCEDURE @OMPI_FORTRAN_HAVE_PROCEDURE@
! Whether we are building the MPI F08 bindings with subarray support or not
#define OMPI_FORTRAN_SUBARRAYS_SUPPORTED @OMPI_FORTRAN_SUBARRAYS_SUPPORTED@
! Line 1 of the ignore TKR syntax
! ...JMS not figured out yet...
! Line 2 of the ignore TKR syntax
#define OMPI_FORTRAN_IGNORE_TKR_TYPE @OMPI_FORTRAN_IGNORE_TKR_TYPE@
! Integers
#define OMPI_HAVE_FORTRAN_INTEGER1 @OMPI_HAVE_FORTRAN_INTEGER1@
#define OMPI_KIND_FORTRAN_INTEGER1 @OMPI_KIND_FORTRAN_INTEGER1@
#define OMPI_SIZEOF_FORTRAN_INTEGER1 @OMPI_SIZEOF_FORTRAN_INTEGER1@
#define OMPI_HAVE_FORTRAN_INTEGER2 @OMPI_HAVE_FORTRAN_INTEGER2@
#define OMPI_KIND_FORTRAN_INTEGER2 @OMPI_KIND_FORTRAN_INTEGER2@
#define OMPI_SIZEOF_FORTRAN_INTEGER2 @OMPI_SIZEOF_FORTRAN_INTEGER2@
#define OMPI_HAVE_FORTRAN_INTEGER4 @OMPI_HAVE_FORTRAN_INTEGER4@
#define OMPI_KIND_FORTRAN_INTEGER4 @OMPI_KIND_FORTRAN_INTEGER4@
#define OMPI_SIZEOF_FORTRAN_INTEGER4 @OMPI_SIZEOF_FORTRAN_INTEGER4@
#define OMPI_HAVE_FORTRAN_INTEGER8 @OMPI_HAVE_FORTRAN_INTEGER8@
#define OMPI_KIND_FORTRAN_INTEGER8 @OMPI_KIND_FORTRAN_INTEGER8@
#define OMPI_SIZEOF_FORTRAN_INTEGER8 @OMPI_SIZEOF_FORTRAN_INTEGER8@
#define OMPI_HAVE_FORTRAN_INTEGER16 @OMPI_HAVE_FORTRAN_INTEGER16@
#define OMPI_KIND_FORTRAN_INTEGER16 @OMPI_KIND_FORTRAN_INTEGER16@
#define OMPI_SIZEOF_FORTRAN_INTEGER16 @OMPI_SIZEOF_FORTRAN_INTEGER16@
! Reals
#define OMPI_HAVE_FORTRAN_REAL2 @OMPI_HAVE_FORTRAN_REAL2@
#define OMPI_KIND_FORTRAN_REAL2 @OMPI_KIND_FORTRAN_REAL2@
#define OMPI_SIZEOF_FORTRAN_REAL2 @OMPI_SIZEOF_FORTRAN_REAL2@
#define OMPI_HAVE_FORTRAN_REAL4 @OMPI_HAVE_FORTRAN_REAL4@
#define OMPI_KIND_FORTRAN_REAL4 @OMPI_KIND_FORTRAN_REAL4@
#define OMPI_SIZEOF_FORTRAN_REAL4 @OMPI_SIZEOF_FORTRAN_REAL4@
#define OMPI_HAVE_FORTRAN_REAL8 @OMPI_HAVE_FORTRAN_REAL8@
#define OMPI_KIND_FORTRAN_REAL8 @OMPI_KIND_FORTRAN_REAL8@
#define OMPI_SIZEOF_FORTRAN_REAL8 @OMPI_SIZEOF_FORTRAN_REAL8@
#define OMPI_HAVE_FORTRAN_REAL16 @OMPI_HAVE_FORTRAN_REAL16@
#define OMPI_KIND_FORTRAN_REAL16 @OMPI_KIND_FORTRAN_REAL16@
#define OMPI_SIZEOF_FORTRAN_REAL16 @OMPI_SIZEOF_FORTRAN_REAL16@
! Complexes
#define OMPI_HAVE_FORTRAN_COMPLEX4 @OMPI_HAVE_FORTRAN_COMPLEX4@
#define OMPI_KIND_FORTRAN_COMPLEX4 @OMPI_KIND_FORTRAN_COMPLEX4@
#define OMPI_SIZEOF_FORTRAN_COMPLEX4 @OMPI_SIZEOF_FORTRAN_COMPLEX4@
#define OMPI_HAVE_FORTRAN_COMPLEX8 @OMPI_HAVE_FORTRAN_COMPLEX8@
#define OMPI_KIND_FORTRAN_COMPLEX8 @OMPI_KIND_FORTRAN_COMPLEX8@
#define OMPI_SIZEOF_FORTRAN_COMPLEX8 @OMPI_SIZEOF_FORTRAN_COMPLEX8@
#define OMPI_HAVE_FORTRAN_COMPLEX16 @OMPI_HAVE_FORTRAN_COMPLEX16@
#define OMPI_KIND_FORTRAN_COMPLEX16 @OMPI_KIND_FORTRAN_COMPLEX16@
#define OMPI_SIZEOF_FORTRAN_COMPLEX16 @OMPI_SIZEOF_FORTRAN_COMPLEX16@
#define OMPI_HAVE_FORTRAN_COMPLEX32 @OMPI_HAVE_FORTRAN_COMPLEX32@
#define OMPI_KIND_FORTRAN_COMPLEX32 @OMPI_KIND_FORTRAN_COMPLEX32@
#define OMPI_SIZEOF_FORTRAN_COMPLEX32 @OMPI_SIZEOF_FORTRAN_COMPLEX32@
! Include some post-processing, based on the values from above
#include "ompi/mpi/fortran/configure-fortran-output-bottom.h"
#endif