1
1
openmpi/ompi/mpi/f90/scripts/mpi_waitsome_f90.f90.sh
Jeff Squyres 02d8a46d5f Fix for ticket #89.
* Change the type of Fortan's MPI_STATUSES_IGNORE to double complex
so that it will never possibly be mistaken for a real status (i.e.,
integer(MPI_STATUS_SIZE)), particularly in the F90 bindings.  See
comment in mpif-common.h explaining this (analogous argument to
MPI_ARGVS_NULL for MPI_COMM_SPAWN_MULTIPLE).
 * Add second interfaces for the following functions that take a double
complex (i.e., MPI_STATUSES_IGNORE).  This required adding the second
interface in mpi-f90-interfaces.h[.sh] and then generating new wrapper
functions to call the back-end F77 function for each of these four, so
we added 4 new files in ompi/mpi/f90/scripts/ and updated the various
Makefile.am's to match:
   * MPI_TESTALL
   * MPI_TESTSOME
   * MPI_WAITALL
   * MPI_WAITSOME

The XSL is now not in sync with the scripts.  Although I suppose that
that is becoming less and less important (because it does not impact
the end user at all -- to be 100% explicit, no release should ever be
held up because the XSL is out of sync), but it will probably be
important when we go to fix the "large" interface; so it's still worth
fixing... for now...

This commit was SVN r10281.
2006-06-09 23:40:20 +00:00

62 строки
2.1 KiB
Bash
Исполняемый файл

#! /bin/sh
#
# Copyright (c) 2004-2006 The Trustees of Indiana University and Indiana
# University Research and Technology
# Corporation. All rights reserved.
# Copyright (c) 2004-2005 The Regents of the University of California.
# All rights reserved.
# Copyright (c) 2006 Cisco Systems, Inc. All rights reserved.
# $COPYRIGHT$
#
# Additional copyrights may follow
#
# $HEADER$
#
# This flie was not generated by XML scripts; it was written by hand.
# It may be generated someday, but at this point, it was simpler to
# just write it by hand.
. "$1/fortran_kinds.sh"
# This entire file is only generated in small or larger modules. So
# if we're not at least small, bail now.
check_size small
if test "$output" = "0"; then
exit 0
fi
# Ok, we should continue.
cat <<EOF
subroutine MPI_Waitsome_normal(incount, array_of_requests, outcount, array_of_indices, array_of_statuses&
, ierr)
include 'mpif-config.h'
integer, intent(in) :: incount
integer, dimension(incount), intent(inout) :: array_of_requests
integer, intent(out) :: outcount
integer, dimension(*), intent(out) :: array_of_indices
integer, dimension(incount, MPI_STATUS_SIZE), intent(inout) :: array_of_statuses
integer, intent(out) :: ierr
call MPI_Waitsome(incount, array_of_requests, outcount, array_of_indices, array_of_statuses, ierr)
end subroutine MPI_Waitsome_normal
subroutine MPI_Waitsome_ignore(incount, array_of_requests, outcount, array_of_indices, array_of_statuses&
, ierr)
! Note that we need mpif-common.h (not mpif-config.h) because we need
! the global common variable MPI_STATUSES_IGNORE
include 'mpif-common.h'
integer, intent(in) :: incount
integer, dimension(incount), intent(inout) :: array_of_requests
integer, intent(out) :: outcount
integer, dimension(*), intent(out) :: array_of_indices
double complex, intent(in) :: array_of_statuses
integer, intent(out) :: ierr
call MPI_Waitsome(incount, array_of_requests, outcount, array_of_indices, MPI_STATUSES_IGNORE, ierr)
end subroutine MPI_Waitsome_ignore
EOF