1 ! -*- fortran -*- 2 ! 3 ! Copyright (c) 2004-2006 The Trustees of Indiana University and Indiana 4 ! University Research and Technology 5 ! Corporation. All rights reserved. 6 ! Copyright (c) 2004-2010 The University of Tennessee and The University 7 ! of Tennessee Research Foundation. All rights 8 ! reserved. 9 ! Copyright (c) 2004-2007 High Performance Computing Center Stuttgart, 10 ! University of Stuttgart. All rights reserved. 11 ! Copyright (c) 2004-2005 The Regents of the University of California. 12 ! All rights reserved. 13 ! Copyright (c) 2006-2012 Cisco Systems, Inc. All rights reserved. 14 ! Copyright (c) 2009 Oak Ridge National Labs. All rights reserved. 15 ! $COPYRIGHT$ 16 ! 17 ! Additional copyrights may follow 18 ! 19 ! $HEADER$ 20 ! 21 22 ! 23 ! All of these types were chosen with care to match the types of 24 ! their corresponding C variables. Do not arbitrarily change 25 ! their types without also updating: 26 ! 27 ! - the "mpi" module bindings 28 ! - the "mpi_f08" module bindings 29 ! - ompi/mpi/fortran/base/gen-mpi-mangling.pl 30 ! 31 32 ! MPI_BOTTOM is only used where choice buffers can be used (meaning 33 ! that we already have overloaded F90 bindings for all available 34 ! types), so any type is fine. 35 integer MPI_BOTTOM 36 ! MPI_IN_PLACE has the same rationale as MPI_BOTTOM. 37 integer MPI_IN_PLACE 38 ! Making MPI_ARGV_NULL be the same type as the parameter that is 39 ! exepected in the F90 binding for MPI_COMM_SPAWN means that we 40 ! don't need another interface for MPI_COMM_SPAWN. 41 character MPI_ARGV_NULL(1) 42 ! Ditto for MPI_ARGVS_NULL / MPI_COMM_SPAWN_MULTIPLE. 43 character MPI_ARGVS_NULL(1, 1) 44 ! MPI_ERRCODES_IGNORE has similar rationale to MPI_ARGV_NULL. The 45 ! F77 functions are all smart enough to check that the errcodes 46 ! parameter is not ERRCODES_IGNORE before assigning values into it 47 ! (hence, the fact that this is an array of only 1 element does not 48 ! matter -- we'll never overrun it because we never assign values 49 ! into it). 50 integer MPI_ERRCODES_IGNORE(1) 51 ! MPI_STATUS_IGNORE has similar rationale to MPI_ERRCODES_IGNORE. 52 integer MPI_STATUS_IGNORE(MPI_STATUS_SIZE) 53 ! Ditto for MPI_STATUSES_IGNORE 54 integer MPI_STATUSES_IGNORE(MPI_STATUS_SIZE, 1) 55 ! Ditto for MPI_UNWEIGHTED 56 integer MPI_UNWEIGHTED(1) 57 ! Ditto for MPI_WEIGHTS_EMPTY 58 integer MPI_WEIGHTS_EMPTY(1) 59 60 common/mpi_fortran_bottom/MPI_BOTTOM 61 common/mpi_fortran_in_place/MPI_IN_PLACE 62 common/mpi_fortran_argv_null/MPI_ARGV_NULL 63 common/mpi_fortran_argvs_null/MPI_ARGVS_NULL 64 common/mpi_fortran_errcodes_ignore/MPI_ERRCODES_IGNORE 65 common/mpi_fortran_status_ignore/MPI_STATUS_IGNORE 66 common/mpi_fortran_statuses_ignore/MPI_STATUSES_IGNORE 67 common/mpi_fortran_unweighted/MPI_UNWEIGHTED 68 common/mpi_fortran_weights_empty/MPI_WEIGHTS_EMPTY