1
1
openmpi/ompi/mpi/fortran/use-mpi-tkr/fortran_kinds.sh.in
Jeff Squyres 69ecf1670c Remove even more dead Fortran configury.
This configure option was only relevant when we were generating TKR
"use mpi" interfaces for MPI subroutines with choice buffers.  Now
that we aren't, the only interface that needs to accept a choice
buffer is MPI_SIZEOF (which we have to provide).  

And since there's now only several dozen interfaces in the "mpi" TKR
module, there's no reason to not generate ''all'' possible array rank
values (when there were thousands of interfaces, generating 4-vs-7
array ranks per interface per type was a big deal).  The default used
to be 4; now we can just hard-code it to 7, the max possible value for
Fortran 2003 (I think the max was raised ?to 11? in F2008, but let's
not go there for now).

cmr=v1.7.5:reviewer=dgoodell:subject=Remove even more dead Fortran configury

This commit was SVN r30257.
2014-01-11 14:06:59 +00: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
}