1
1
openmpi/ompi/mpi/fortran/use-mpi-tkr/fortran_kinds.sh.in
Ralph Castain 1e2019ce2a Revert "Update to sync with OMPI master and cleanup to build"
This reverts commit cb55c88a8b7817d5891ff06a447ea190b0e77479.
2016-11-22 15:03:20 -08:00

85 строки
2.7 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 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$
#
max_array_rank=7
ikinds="@OMPI_FORTRAN_IKINDS@"
rkinds="@OMPI_FORTRAN_RKINDS@"
ckinds="@OMPI_FORTRAN_CKINDS@"
# In prior versions of Open MPI, we used to allow the user to choose
# which "size" of "use mpi" module to build: tiny, small, medium, and
# large. Large never really worked.
#
# According to MPI-3 p610:34-41, if ignore TKR is not supported, we
# should not provide interfaces for MPI subroutines with choice
# buffers. So we default to "small" (in 1.7-1.7.3, we defaulted to
# "medium", but then MPI-3 p610 was pointed out to us in Jan 2014, so
# we changed the default back to "small").
size=small
# fix up for broken generation scripts that don't properly compute the
# ranks variable before using it
ranks="1"
rank="2"
while test "`expr $rank \\<= $max_array_rank`" = "1"; do
ranks="$ranks $rank"
rank="`expr $rank + 1`"
done
unset rank
#
# Helper function
#
check_size() {
# Sanity check
if test "$1" != "trivial" -a "$1" != "small" -a "$1" != "medium" -a \
"$1" != "large"; then
echo "WARNING: unrecognized size: $1" >&2
fi
# Check the value
output=0
if test "$1" = "trivial"; then
# Since we've got a trivial source, always build it (since
# trivial is the smallest allowable size to build, and we
# already verified above that the size is valid).
output=1
elif test "$1" = "small"; then
# If we've got a small source, build it unless the user only
# requested trivial.
if test "$size" != "trivial"; then
output=1
fi
elif test "$1" = "medium"; then
# If we've got a medium source, build it only if the user
# requested medium or large.
if test "$size" = "medium" -o "$size" = "large"; then
output=1
fi
elif test "$1" = "large"; then
# If we've got a large source, build it only if the user
# requested large.
if test "$size" = "large"; then
output=1
fi
fi
}