1
1

oshmem: there's no fortran sentinels in oshmem

Turns out that this is just copy-n-pasted code from OMPI.  To be
clear: there's no need for the oshmem layer to instantiate sentinels
like mpi_fortran_bottom.

Thanks @jsquyres for pointing this.
Этот коммит содержится в:
Gilles Gouaillardet 2015-05-12 13:01:16 +09:00
родитель 8f941a6613
Коммит 5142194058

Просмотреть файл

@ -107,87 +107,6 @@ MPI_Comm oshmem_comm_world = {0};
opal_thread_t *oshmem_mpi_main_thread = NULL;
/* Constants for the Fortran layer. These values are referred to via
common blocks in the Fortran equivalents. See
ompi/mpi/f77/constants.h for a more detailed explanation.
The values are *NOT* initialized. We do not use the values of
these constants; only their addresses (because they're always
passed by reference by Fortran).
Initializing upon instantiation these can reveal size and/or
alignment differences between Fortran and C (!) which can cause
warnings or errors upon linking (e.g., making static libraries with
the intel 9.0 compilers on 64 bit platforms shows alignment
differences between libmpi.a and the user's application, resulting
in a linker warning). FWIW, if you initialize these variables in
functions (i.e., not at the instantiation in the global scope), the
linker somehow "figures it all out" (w.r.t. different alignments
between fortan common blocks and the corresponding C variables) and
no linker warnings occur.
Note that the rationale for the types of each of these variables is
discussed in ompi/include/mpif-common.h. Do not change the types
without also modifying ompi/mpi/f77/constants.h and
ompi/include/mpif-common.h.
*/
#define INST(type, value, upper_case, lower_case, single_u, double_u) \
type lower_case = value; \
type upper_case = value; \
type single_u = value; \
type double_u = value
INST(int,
0,
MPI_FORTRAN_BOTTOM,
mpi_fortran_bottom,
mpi_fortran_bottom_,
mpi_fortran_bottom__);
INST(int,
0,
MPI_FORTRAN_IN_PLACE,
mpi_fortran_in_place,
mpi_fortran_in_place_,
mpi_fortran_in_place__);
INST(char *,
NULL,
MPI_FORTRAN_ARGV_NULL,
mpi_fortran_argv_null,
mpi_fortran_argv_null_,
mpi_fortran_argv_null__);
INST(double,
0.0,
MPI_FORTRAN_ARGVS_NULL,
mpi_fortran_argvs_null,
mpi_fortran_argvs_null_,
mpi_fortran_argvs_null__);
INST(int *,
NULL,
MPI_FORTRAN_ERRCODES_IGNORE,
mpi_fortran_errcodes_ignore,
mpi_fortran_errcodes_ignore_,
mpi_fortran_errcodes_ignore__);
INST(int *,
NULL,
MPI_FORTRAN_STATUS_IGNORE,
mpi_fortran_status_ignore,
mpi_fortran_status_ignore_,
mpi_fortran_status_ignore__);
INST(double,
0.0,
MPI_FORTRAN_STATUSES_IGNORE,
mpi_fortran_statuses_ignore,
mpi_fortran_statuses_ignore_,
mpi_fortran_statuses_ignore__);
/*
* Hash tables for MPI_Type_create_f90* functions
*/
opal_hash_table_t ompi_mpi_f90_integer_hashtable = {{0}};
opal_hash_table_t ompi_mpi_f90_real_hashtable = {{0}};
opal_hash_table_t ompi_mpi_f90_complex_hashtable = {{0}};
static int _shmem_init(int argc, char **argv, int requested, int *provided);
#if OSHMEM_OPAL_THREAD_ENABLE