02d8a46d5f
* 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.
62 строки
2.1 KiB
Bash
Исполняемый файл
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
|