1
1

Merge pull request #7105 from ggouaillardet/topic/f08_bind_c_constants_revamp

fortran/use-mpi-f08: revamp mpi_f08 constants
Этот коммит содержится в:
Jeff Squyres 2019-10-28 09:14:23 -04:00 коммит произвёл GitHub
родитель aa8be9c12d 51e23f8cb6
Коммит e59e6f714c
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
12 изменённых файлов: 156 добавлений и 499 удалений

2
.gitignore поставляемый
Просмотреть файл

@ -213,7 +213,7 @@ ompi/mpi/fortran/mpif-h/sizeof_f.f90
ompi/mpi/fortran/mpif-h/profile/p*.c
ompi/mpi/fortran/mpif-h/profile/psizeof_f.f90
ompi/mpi/fortran/use-mpi-f08/constants.h
ompi/mpi/fortran/use-mpi-f08/mod/mpi-f08-constants.h
ompi/mpi/fortran/use-mpi-f08/sizeof_f08.f90
ompi/mpi/fortran/use-mpi-f08/sizeof_f08.h
ompi/mpi/fortran/use-mpi-f08/profile/psizeof_f08.f90

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

@ -1,44 +0,0 @@
dnl -*- shell-script -*-
dnl
dnl Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
dnl University Research and Technology
dnl Corporation. All rights reserved.
dnl Copyright (c) 2004-2005 The University of Tennessee and The University
dnl of Tennessee Research Foundation. All rights
dnl reserved.
dnl Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
dnl University of Stuttgart. All rights reserved.
dnl Copyright (c) 2004-2005 The Regents of the University of California.
dnl All rights reserved.
dnl Copyright (c) 2010-2014 Cisco Systems, Inc. All rights reserved.
dnl $COPYRIGHT$
dnl
dnl Additional copyrights may follow
dnl
dnl $HEADER$
dnl
# Check whether or not the Fortran compiler supports the "protected"
# keyword in derived types or not.
# OMPI_FORTRAN_CHECK_PROTECTED([action if found],
# [action if not found])
# ----------------------------------------------------
AC_DEFUN([OMPI_FORTRAN_CHECK_PROTECTED],[
AS_VAR_PUSHDEF([protected_var], [ompi_cv_fortran_protected])
AC_CACHE_CHECK([if Fortran compiler supports PROTECTED], protected_var,
[AC_LANG_PUSH([Fortran])
AC_COMPILE_IFELSE([AC_LANG_SOURCE([[module test_for_protected
integer, protected :: bogus
end module test_for_protected]])],
[AS_VAR_SET(protected_var, yes)],
[AS_VAR_SET(protected_var, no)])
touch conftest_foo.mod
rm -rf *.mod 2>/dev/null
AC_LANG_POP([Fortran])
])
AS_VAR_IF(protected_var, [yes], [$1], [$2])
AS_VAR_POPDEF([protected_var])dnl
])

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

@ -15,8 +15,8 @@ dnl Copyright (c) 2006-2008 Sun Microsystems, Inc. All rights reserved.
dnl Copyright (c) 2006-2007 Los Alamos National Security, LLC. All rights
dnl reserved.
dnl Copyright (c) 2009 Oak Ridge National Labs. All rights reserved.
dnl Copyright (c) 2014-2017 Research Organization for Information Science
dnl and Technology (RIST). All rights reserved.
dnl Copyright (c) 2014-2019 Research Organization for Information Science
dnl and Technology (RIST). All rights reserved.
dnl Copyright (c) 2016 IBM Corporation. All rights reserved.
dnl Copyright (c) 2018 FUJITSU LIMITED. All rights reserved.
dnl $COPYRIGHT$
@ -487,14 +487,6 @@ AC_DEFUN([OMPI_SETUP_MPI_FORTRAN],[
[OMPI_FORTRAN_HAVE_PRIVATE=1],
[OMPI_FORTRAN_HAVE_PRIVATE=0])])
OMPI_FORTRAN_HAVE_PROTECTED=0
AS_IF([test $OMPI_TRY_FORTRAN_BINDINGS -ge $OMPI_FORTRAN_USEMPIF08_BINDINGS && \
test $OMPI_BUILD_FORTRAN_BINDINGS -ge $OMPI_FORTRAN_USEMPIF08_BINDINGS],
[ # Does the compiler support "protected"
OMPI_FORTRAN_CHECK_PROTECTED(
[OMPI_FORTRAN_HAVE_PROTECTED=1],
[OMPI_FORTRAN_HAVE_PROTECTED=0])])
OMPI_FORTRAN_HAVE_ABSTRACT=0
AS_IF([test $OMPI_TRY_FORTRAN_BINDINGS -ge $OMPI_FORTRAN_USEMPIF08_BINDINGS && \
test $OMPI_BUILD_FORTRAN_BINDINGS -ge $OMPI_FORTRAN_USEMPIF08_BINDINGS],
@ -754,12 +746,6 @@ end type test_mpi_handle],
[$OMPI_FORTRAN_HAVE_PRIVATE],
[For mpi-f08-types.f90 and ompi_info: whether the compiler supports the "private" keyword or not (used in MPI_Status)])
# For configure-fortran-output.h, mpi-f08-types.F90 (and ompi_info)
AC_SUBST([OMPI_FORTRAN_HAVE_PROTECTED])
AC_DEFINE_UNQUOTED([OMPI_FORTRAN_HAVE_PROTECTED],
[$OMPI_FORTRAN_HAVE_PROTECTED],
[For mpi-f08-types.f90 and .F90 and ompi_info: whether the compiler supports the "protected" keyword or not])
# For configure-fortran-output.h, mpi-f08-interfaces-callbacks.F90
# (and ompi_info)
AC_SUBST([OMPI_FORTRAN_HAVE_ABSTRACT])

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

@ -1,8 +1,8 @@
#!/usr/bin/env perl
#
# Copyright (c) 2011-2014 Cisco Systems, Inc. All rights reserved.
# Copyright (c) 2016-2017 Research Organization for Information Science
# and Technology (RIST). All rights reserved.
# Copyright (c) 2016-2019 Research Organization for Information Science
# and Technology (RIST). All rights reserved.
# Copyright (c) 2016-2018 FUJITSU LIMITED. All rights reserved.
# $COPYRIGHT$
#
@ -469,35 +469,35 @@ write_fortran_file($header, $io_constants, $lio_constants,
# Create preprocessor files
my $output = '/* WARNING! THIS IS A GENERATED FILE!!
* ANY EDITS YOU PUT HERE WILL BE LOST!
* Instead, edit topdir/ompi/include/mpif-values.pl
*/
my $output = '! WARNING! THIS IS A GENERATED FILE!!
! ANY EDITS YOU PUT HERE WILL BE LOST!
! Instead, edit topdir/ompi/include/mpif-values.pl
!
/*
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
* University Research and Technology
* Corporation. All rights reserved.
* Copyright (c) 2004-2006 The University of Tennessee and The University
* of Tennessee Research Foundation. All rights
* reserved.
* Copyright (c) 2004-2007 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) 2007-2009 Cisco Systems, Inc. All rights reserved.
* Copyright (c) 2008-2009 Sun Microsystems, Inc. All rights reserved.
* Copyright (c) 2009 Oak Ridge National Labs. All rights reserved.
* Copyright (c) 2009-2012 Los Alamos National Security, LLC.
* All rights reserved.
* Copyright (c) 2016 Research Organization for Information Science
* and Technology (RIST). All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow
*
* $HEADER$
*/
!
! Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
! University Research and Technology
! Corporation. All rights reserved.
! Copyright (c) 2004-2006 The University of Tennessee and The University
! of Tennessee Research Foundation. All rights
! reserved.
! Copyright (c) 2004-2007 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) 2007-2009 Cisco Systems, Inc. All rights reserved.
! Copyright (c) 2008-2009 Sun Microsystems, Inc. All rights reserved.
! Copyright (c) 2009 Oak Ridge National Labs. All rights reserved.
! Copyright (c) 2009-2012 Los Alamos National Security, LLC.
! All rights reserved.
! Copyright (c) 2016-2019 Research Organization for Information Science
! and Technology (RIST). All rights reserved.
! $COPYRIGHT$
!
! Additional copyrights may follow
!
! $HEADER$
!
#ifndef USE_MPI_F08_CONSTANTS_H
#define USE_MPI_F08_CONSTANTS_H
@ -523,8 +523,8 @@ foreach my $key (sort(keys(%{$io_handles}))) {
$output .= "#define OMPI_$key $io_handles->{$key}\n";
}
$output .= "\n";
$output .= "#endif /* USE_MPI_F08_CONSTANTS_H */\n";
$output .= "#endif\n";
write_file("$topdir/ompi/mpi/fortran/use-mpi-f08/constants.h", $output);
write_file("$topdir/ompi/mpi/fortran/use-mpi-f08/mod/mpi-f08-constants.h", $output);
exit(0);

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

@ -1,113 +0,0 @@
# Open MPI's Fortran libraries have a bunch of deliberate common
# symbols. Whitelist them.
ompi_f08_mpi_2complex
ompi_f08_mpi_2double_complex
ompi_f08_mpi_2double_precision
ompi_f08_mpi_2int
ompi_f08_mpi_2integer
ompi_f08_mpi_2real
ompi_f08_mpi_aint
ompi_f08_mpi_band
ompi_f08_mpi_bor
ompi_f08_mpi_bxor
ompi_f08_mpi_byte
ompi_f08_mpi_c_bool
ompi_f08_mpi_c_complex
ompi_f08_mpi_c_double_complex
ompi_f08_mpi_c_float16
ompi_f08_mpi_c_float_complex
ompi_f08_mpi_c_long_double_complex
ompi_f08_mpi_c_short_float_complex
ompi_f08_mpi_char
ompi_f08_mpi_character
ompi_f08_mpi_comm_null
ompi_f08_mpi_comm_self
ompi_f08_mpi_comm_world
ompi_f08_mpi_complex
ompi_f08_mpi_complex16
ompi_f08_mpi_complex32
ompi_f08_mpi_complex4
ompi_f08_mpi_complex8
ompi_f08_mpi_count
ompi_f08_mpi_cxx_bool
ompi_f08_mpi_cxx_complex
ompi_f08_mpi_cxx_double_complex
ompi_f08_mpi_cxx_float_complex
ompi_f08_mpi_cxx_long_double_complex
ompi_f08_mpi_cxx_short_float_complex
ompi_f08_mpi_datatype_null
ompi_f08_mpi_double
ompi_f08_mpi_double_complex
ompi_f08_mpi_double_int
ompi_f08_mpi_double_precision
ompi_f08_mpi_errhandler_null
ompi_f08_mpi_errors_are_fatal
ompi_f08_mpi_errors_return
ompi_f08_mpi_file_null
ompi_f08_mpi_float
ompi_f08_mpi_float_int
ompi_f08_mpi_group_empty
ompi_f08_mpi_group_null
ompi_f08_mpi_info_env
ompi_f08_mpi_info_null
ompi_f08_mpi_int
ompi_f08_mpi_int16
ompi_f08_mpi_int32
ompi_f08_mpi_int64
ompi_f08_mpi_int8
ompi_f08_mpi_integer
ompi_f08_mpi_integer1
ompi_f08_mpi_integer16
ompi_f08_mpi_integer2
ompi_f08_mpi_integer4
ompi_f08_mpi_integer8
ompi_f08_mpi_land
ompi_f08_mpi_lb
ompi_f08_mpi_logical
ompi_f08_mpi_logical1
ompi_f08_mpi_logical2
ompi_f08_mpi_logical4
ompi_f08_mpi_logical8
ompi_f08_mpi_long
ompi_f08_mpi_long_double
ompi_f08_mpi_long_double_int
ompi_f08_mpi_long_int
ompi_f08_mpi_long_long
ompi_f08_mpi_long_long_int
ompi_f08_mpi_lor
ompi_f08_mpi_lxor
ompi_f08_mpi_max
ompi_f08_mpi_maxloc
ompi_f08_mpi_message_no_proc
ompi_f08_mpi_message_null
ompi_f08_mpi_min
ompi_f08_mpi_minloc
ompi_f08_mpi_no_op
ompi_f08_mpi_offset
ompi_f08_mpi_op_null
ompi_f08_mpi_packed
ompi_f08_mpi_prod
ompi_f08_mpi_real
ompi_f08_mpi_real16
ompi_f08_mpi_real2
ompi_f08_mpi_real4
ompi_f08_mpi_real8
ompi_f08_mpi_replace
ompi_f08_mpi_request_null
ompi_f08_mpi_short
ompi_f08_mpi_short_float
ompi_f08_mpi_short_int
ompi_f08_mpi_signed_char
ompi_f08_mpi_sum
ompi_f08_mpi_ub
ompi_f08_mpi_uint16
ompi_f08_mpi_uint32
ompi_f08_mpi_uint64
ompi_f08_mpi_uint8
ompi_f08_mpi_unsigned
ompi_f08_mpi_unsigned_char
ompi_f08_mpi_unsigned_long
ompi_f08_mpi_unsigned_long_long
ompi_f08_mpi_unsigned_short
ompi_f08_mpi_wchar
ompi_f08_mpi_win_null

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

@ -38,11 +38,4 @@
#define OMPI_PRIVATE
#endif
! PROTECTED or not
#if OMPI_FORTRAN_HAVE_PROTECTED
#define OMPI_PROTECTED , PROTECTED
#else
#define OMPI_PROTECTED
#endif
#endif

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

@ -802,9 +802,7 @@ lib@OMPI_LIBMPI_NAME@_usempif08_la_SOURCES = \
$(mpi_api_files) \
$(pmpi_api_files) \
mpi-f08.F90 \
buffer_detach.c \
constants.h \
constants.c
buffer_detach.c
# These are generated; do not ship them
nodist_lib@OMPI_LIBMPI_NAME@_usempif08_la_SOURCES =

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

@ -1,163 +0,0 @@
/*
* Copyright (c) 2010-2015 Cisco Systems, Inc. All rights reserved.
* Copyright (c) 2015-2018 Research Organization for Information Science
* and Technology (RIST). All rights reserved.
*
* Copyright (c) 2018 FUJITSU LIMITED. All rights reserved.
* $COPYRIGHT$
*
* This file provides symbols for the derived type values needed
* in mpi3_types.f90.
*/
#include "ompi_config.h"
#include "constants.h"
/*
* The following typedef is used to adjust the size of objects
* exported to Fortran via a BIND(C) symbol. Note that an array of
* one of the handles in Fortran, i.e., type(MPI_Comm) has standard
* integer strides so there should be no problem with using them in in
* arrays or common blocks.
*/
typedef MPI_Fint ompi_fortran_08_handle_t[OMPI_FORTRAN_F08_HANDLE_SIZE / sizeof(MPI_Fint)];
#if OMPI_FORTRAN_F08_HANDLE_ALIGNMENT > OMPI_FORTRAN_F08_HANDLE_SIZE
#define OMPI_F08_HANDLE_ALIGNED __opal_attribute_aligned__(OMPI_FORTRAN_F08_HANDLE_ALIGNMENT)
#else
#define OMPI_F08_HANDLE_ALIGNED
#endif
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_comm_world = {OMPI_MPI_COMM_WORLD};
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_comm_self = {OMPI_MPI_COMM_SELF};
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_group_empty = {OMPI_MPI_GROUP_EMPTY};
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_errors_are_fatal = {OMPI_MPI_ERRORS_ARE_FATAL};
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_errors_return = {OMPI_MPI_ERRORS_RETURN};
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_message_no_proc = {OMPI_MPI_MESSAGE_NO_PROC};
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_info_env = {OMPI_MPI_INFO_ENV};
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_max = {OMPI_MPI_MAX};
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_min = {OMPI_MPI_MIN};
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_sum = {OMPI_MPI_SUM};
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_prod = {OMPI_MPI_PROD};
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_land = {OMPI_MPI_LAND};
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_band = {OMPI_MPI_BAND};
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_lor = {OMPI_MPI_LOR};
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_bor = {OMPI_MPI_BOR};
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_lxor = {OMPI_MPI_LXOR};
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_bxor = {OMPI_MPI_BXOR};
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_maxloc = {OMPI_MPI_MAXLOC};
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_minloc = {OMPI_MPI_MINLOC};
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_replace = {OMPI_MPI_REPLACE};
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_no_op = {OMPI_MPI_NO_OP};
/*
* NULL "handles" (indices)
*/
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_comm_null = {OMPI_MPI_COMM_NULL};
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_datatype_null = {OMPI_MPI_DATATYPE_NULL};
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_errhandler_null = {OMPI_MPI_ERRHANDLER_NULL};
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_group_null = {OMPI_MPI_GROUP_NULL};
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_info_null = {OMPI_MPI_INFO_NULL};
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_message_null = {OMPI_MPI_MESSAGE_NULL};
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_op_null = {OMPI_MPI_OP_NULL};
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_request_null = {OMPI_MPI_REQUEST_NULL};
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_win_null = {OMPI_MPI_WIN_NULL};
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_file_null = {OMPI_MPI_FILE_NULL};
/*
* common block items from ompi/include/mpif-handles.h
*/
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_aint = {OMPI_MPI_AINT};
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_byte = {OMPI_MPI_BYTE};
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_packed = {OMPI_MPI_PACKED};
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_ub = {OMPI_MPI_UB};
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_lb = {OMPI_MPI_LB};
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_char = {OMPI_MPI_CHAR};
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_signed_char = {OMPI_MPI_SIGNED_CHAR};
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_unsigned_char = {OMPI_MPI_UNSIGNED_CHAR};
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_wchar = {OMPI_MPI_WCHAR};
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_character = {OMPI_MPI_CHARACTER};
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_logical = {OMPI_MPI_LOGICAL};
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_int = {OMPI_MPI_INT};
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_int16 = {OMPI_MPI_INT16_T};
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_int32 = {OMPI_MPI_INT32_T};
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_int64 = {OMPI_MPI_INT64_T};
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_int8 = {OMPI_MPI_INT8_T};
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_uint16 = {OMPI_MPI_UINT16_T};
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_uint32 = {OMPI_MPI_UINT32_T};
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_uint64 = {OMPI_MPI_UINT64_T};
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_uint8 = {OMPI_MPI_UINT8_T};
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_short = {OMPI_MPI_SHORT};
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_unsigned_short = {OMPI_MPI_UNSIGNED_SHORT};
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_unsigned = {OMPI_MPI_UNSIGNED};
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_long = {OMPI_MPI_LONG};
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_unsigned_long = {OMPI_MPI_UNSIGNED_LONG};
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_long_long = {OMPI_MPI_LONG_LONG};
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_unsigned_long_long = {OMPI_MPI_UNSIGNED_LONG_LONG};
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_long_long_int = {OMPI_MPI_LONG_LONG_INT};
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_integer = {OMPI_MPI_INTEGER};
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_integer1 = {OMPI_MPI_INTEGER1};
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_integer2 = {OMPI_MPI_INTEGER2};
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_integer4 = {OMPI_MPI_INTEGER4};
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_integer8 = {OMPI_MPI_INTEGER8};
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_integer16 = {OMPI_MPI_INTEGER16};
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_float = {OMPI_MPI_FLOAT};
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_double = {OMPI_MPI_DOUBLE};
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_long_double = {OMPI_MPI_LONG_DOUBLE};
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_real = {OMPI_MPI_REAL};
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_real4 = {OMPI_MPI_REAL4};
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_real8 = {OMPI_MPI_REAL8};
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_real16 = {OMPI_MPI_REAL16};
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_double_precision = {OMPI_MPI_DOUBLE_PRECISION};
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_c_complex = {OMPI_MPI_C_COMPLEX};
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_c_float_complex = {OMPI_MPI_C_FLOAT_COMPLEX};
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_c_double_complex = {OMPI_MPI_C_DOUBLE_COMPLEX};
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_c_long_double_complex = {OMPI_MPI_C_LONG_DOUBLE_COMPLEX};
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_cxx_complex = {OMPI_MPI_CXX_COMPLEX};
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_cxx_float_complex = {OMPI_MPI_CXX_FLOAT_COMPLEX};
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_cxx_double_complex = {OMPI_MPI_CXX_DOUBLE_COMPLEX};
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_cxx_long_double_complex = {OMPI_MPI_CXX_LONG_DOUBLE_COMPLEX};
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_complex = {OMPI_MPI_COMPLEX};
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_complex8 = {OMPI_MPI_COMPLEX8};
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_complex16 = {OMPI_MPI_COMPLEX16};
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_complex32 = {OMPI_MPI_COMPLEX32};
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_double_complex = {OMPI_MPI_DOUBLE_COMPLEX};
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_float_int = {OMPI_MPI_FLOAT_INT};
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_double_int = {OMPI_MPI_DOUBLE_INT};
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_2real = {OMPI_MPI_2REAL};
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_2double_precision = {OMPI_MPI_2DOUBLE_PRECISION};
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_2int = {OMPI_MPI_2INT};
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_short_int = {OMPI_MPI_SHORT_INT};
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_long_int = {OMPI_MPI_LONG_INT};
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_long_double_int = {OMPI_MPI_LONG_DOUBLE_INT};
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_2integer = {OMPI_MPI_2INTEGER};
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_2complex = {OMPI_MPI_2COMPLEX};
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_2double_complex = {OMPI_MPI_2DOUBLE_COMPLEX};
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_real2 = {OMPI_MPI_REAL2};
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_logical1 = {OMPI_MPI_LOGICAL1};
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_logical2 = {OMPI_MPI_LOGICAL2};
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_logical4 = {OMPI_MPI_LOGICAL4};
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_logical8 = {OMPI_MPI_LOGICAL8};
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_c_bool = {OMPI_MPI_C_BOOL};
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_cxx_bool = {OMPI_MPI_CXX_BOOL};
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_count = {OMPI_MPI_COUNT};
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_offset = {OMPI_MPI_OFFSET};
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_complex4 = {OMPI_MPI_COMPLEX4};
/*
* Handles not defined in ompi/include/mpif-handles.h but defined
* in 'shortfloat' MPI extensions (ompi/mpiext/shortfloat)
*
* OMPI_MPI_* macros are not defined in ompi/include/mpif-values.pl
* because they should not be included in mpif.h. So immediate values
* defined in ompi/datatype/ompi_datatype_module.c are used here.
* ompi_f08_mpi_c_float16 is a synonym for ompi_f08_mpi_short_float.
*/
#if defined(HAVE_SHORT_FLOAT) || defined(HAVE_OPAL_SHORT_FLOAT_T)
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_short_float = {74};
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_c_short_float_complex = {75};
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_cxx_short_float_complex = {76};
OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_c_float16 = {74};
#endif

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

@ -43,7 +43,8 @@ noinst_LTLIBRARIES = libusempif08_internal_modules.la libforce_usempif08_interna
libusempif08_internal_modules_la_SOURCES = \
mpi-f08-types.F90 \
mpi-f08-callbacks.F90
mpi-f08-callbacks.F90 \
mpi-f08-constants.h
libforce_usempif08_internal_modules_to_be_built_la_SOURCES = \
mpi-f08-interfaces.F90 \

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

@ -3,8 +3,8 @@
! Copyright (c) 2009-2015 Cisco Systems, Inc. All rights reserved.
! Copyright (c) 2009-2012 Los Alamos National Security, LLC.
! All rights reserved.
! Copyright (c) 2015-2018 Research Organization for Information Science
! and Technology (RIST). All rights reserved.
! Copyright (c) 2015-2019 Research Organization for Information Science
! and Technology (RIST). All rights reserved.
! Copyright (c) 2018 FUJITSU LIMITED. All rights reserved.
! $COPYRIGHT$
!
@ -13,6 +13,7 @@
! (type(MPI_Comm_world) and MPI_COMM_WORLD, respectively).
#include "ompi/mpi/fortran/configure-fortran-output.h"
#include "ompi/mpi/fortran/use-mpi-f08/mod/mpi-f08-constants.h"
module mpi_f08_types
@ -78,47 +79,47 @@ module mpi_f08_types
! Pre-defined handles
!
type(MPI_Comm), bind(C, name="ompi_f08_mpi_comm_world") OMPI_PROTECTED :: MPI_COMM_WORLD
type(MPI_Comm), bind(C, name="ompi_f08_mpi_comm_self") OMPI_PROTECTED :: MPI_COMM_SELF
type(MPI_Comm), parameter :: MPI_COMM_WORLD = MPI_Comm(OMPI_MPI_COMM_WORLD)
type(MPI_Comm), parameter :: MPI_COMM_SELF = MPI_Comm(OMPI_MPI_COMM_SELF)
type(MPI_Group), bind(C, name="ompi_f08_mpi_group_empty") OMPI_PROTECTED :: MPI_GROUP_EMPTY
type(MPI_Group), parameter :: MPI_GROUP_EMPTY = MPI_Group(OMPI_MPI_GROUP_EMPTY)
type(MPI_Errhandler), bind(C, name="ompi_f08_mpi_errors_are_fatal") OMPI_PROTECTED :: MPI_ERRORS_ARE_FATAL
type(MPI_Errhandler), bind(C, name="ompi_f08_mpi_errors_return") OMPI_PROTECTED :: MPI_ERRORS_RETURN
type(MPI_Errhandler), parameter :: MPI_ERRORS_ARE_FATAL = MPI_Errhandler(OMPI_MPI_ERRORS_ARE_FATAL)
type(MPI_Errhandler), parameter :: MPI_ERRORS_RETURN = MPI_Errhandler(OMPI_MPI_ERRORS_RETURN)
type(MPI_Message), bind(C, name="ompi_f08_mpi_message_no_proc") OMPI_PROTECTED :: MPI_MESSAGE_NO_PROC
type(MPI_Message), parameter :: MPI_MESSAGE_NO_PROC = MPI_Message(OMPI_MPI_MESSAGE_NO_PROC)
type(MPI_Info), bind(C, name="ompi_f08_mpi_info_env") OMPI_PROTECTED :: MPI_INFO_ENV
type(MPI_Info), parameter :: MPI_INFO_ENV = MPI_Info(OMPI_MPI_INFO_ENV)
type(MPI_Op), bind(C, name="ompi_f08_mpi_max" ) OMPI_PROTECTED :: MPI_MAX
type(MPI_Op), bind(C, name="ompi_f08_mpi_min" ) OMPI_PROTECTED :: MPI_MIN
type(MPI_Op), bind(C, name="ompi_f08_mpi_sum" ) OMPI_PROTECTED :: MPI_SUM
type(MPI_Op), bind(C, name="ompi_f08_mpi_prod" ) OMPI_PROTECTED :: MPI_PROD
type(MPI_Op), bind(C, name="ompi_f08_mpi_land" ) OMPI_PROTECTED :: MPI_LAND
type(MPI_Op), bind(C, name="ompi_f08_mpi_band" ) OMPI_PROTECTED :: MPI_BAND
type(MPI_Op), bind(C, name="ompi_f08_mpi_lor" ) OMPI_PROTECTED :: MPI_LOR
type(MPI_Op), bind(C, name="ompi_f08_mpi_bor" ) OMPI_PROTECTED :: MPI_BOR
type(MPI_Op), bind(C, name="ompi_f08_mpi_lxor" ) OMPI_PROTECTED :: MPI_LXOR
type(MPI_Op), bind(C, name="ompi_f08_mpi_bxor" ) OMPI_PROTECTED :: MPI_BXOR
type(MPI_Op), bind(C, name="ompi_f08_mpi_maxloc" ) OMPI_PROTECTED :: MPI_MAXLOC
type(MPI_Op), bind(C, name="ompi_f08_mpi_minloc" ) OMPI_PROTECTED :: MPI_MINLOC
type(MPI_Op), bind(C, name="ompi_f08_mpi_replace" ) OMPI_PROTECTED :: MPI_REPLACE
type(MPI_Op), bind(C, name="ompi_f08_mpi_no_op" ) OMPI_PROTECTED :: MPI_NO_OP
type(MPI_Op), parameter :: MPI_MAX = MPI_Op(OMPI_MPI_MAX)
type(MPI_Op), parameter :: MPI_MIN = MPI_Op(OMPI_MPI_MIN)
type(MPI_Op), parameter :: MPI_SUM = MPI_Op(OMPI_MPI_SUM)
type(MPI_Op), parameter :: MPI_PROD = MPI_Op(OMPI_MPI_PROD)
type(MPI_Op), parameter :: MPI_LAND = MPI_Op(OMPI_MPI_LAND)
type(MPI_Op), parameter :: MPI_BAND = MPI_Op(OMPI_MPI_BAND)
type(MPI_Op), parameter :: MPI_LOR = MPI_Op(OMPI_MPI_LOR)
type(MPI_Op), parameter :: MPI_BOR = MPI_Op(OMPI_MPI_BOR)
type(MPI_Op), parameter :: MPI_LXOR = MPI_Op(OMPI_MPI_LXOR)
type(MPI_Op), parameter :: MPI_BXOR = MPI_Op(OMPI_MPI_BXOR)
type(MPI_Op), parameter :: MPI_MAXLOC = MPI_Op(OMPI_MPI_MAXLOC)
type(MPI_Op), parameter :: MPI_MINLOC = MPI_Op(OMPI_MPI_MINLOC)
type(MPI_Op), parameter :: MPI_REPLACE = MPI_Op(OMPI_MPI_REPLACE)
type(MPI_Op), parameter :: MPI_NO_OP = MPI_Op(OMPI_MPI_NO_OP)
!
! NULL "handles" (indices)
!
type(MPI_Comm), bind(C, name="ompi_f08_mpi_comm_null") OMPI_PROTECTED :: MPI_COMM_NULL
type(MPI_Datatype), bind(C, name="ompi_f08_mpi_datatype_null") OMPI_PROTECTED :: MPI_DATATYPE_NULL
type(MPI_Errhandler), bind(C, name="ompi_f08_mpi_errhandler_null") OMPI_PROTECTED :: MPI_ERRHANDLER_NULL
type(MPI_Group), bind(C, name="ompi_f08_mpi_group_null") OMPI_PROTECTED :: MPI_GROUP_NULL
type(MPI_Info), bind(C, name="ompi_f08_mpi_info_null") OMPI_PROTECTED :: MPI_INFO_NULL
type(MPI_Message), bind(C, name="ompi_f08_mpi_message_null") OMPI_PROTECTED :: MPI_MESSAGE_NULL
type(MPI_Op), bind(C, name="ompi_f08_mpi_op_null") OMPI_PROTECTED :: MPI_OP_NULL
type(MPI_Request), bind(C, name="ompi_f08_mpi_request_null") OMPI_PROTECTED :: MPI_REQUEST_NULL
type(MPI_Win), bind(C, name="ompi_f08_mpi_win_null") OMPI_PROTECTED :: MPI_WIN_NULL
type(MPI_File), bind(C, name="ompi_f08_mpi_file_null") OMPI_PROTECTED :: MPI_FILE_NULL
type(MPI_Comm), parameter :: MPI_COMM_NULL = MPI_Comm(OMPI_MPI_COMM_NULL)
type(MPI_Datatype), parameter :: MPI_DATATYPE_NULL = MPI_Datatype(OMPI_MPI_COMM_NULL)
type(MPI_Errhandler), parameter:: MPI_ERRHANDLER_NULL = MPI_Errhandler(OMPI_MPI_ERRHANDLER_NULL)
type(MPI_Group), parameter :: MPI_GROUP_NULL = MPI_Group(OMPI_MPI_GROUP_NULL)
type(MPI_Info), parameter :: MPI_INFO_NULL = MPI_Info(OMPI_MPI_INFO_NULL)
type(MPI_Message), parameter :: MPI_MESSAGE_NULL = MPI_Message(OMPI_MPI_MESSAGE_NULL)
type(MPI_Op), parameter :: MPI_OP_NULL = MPI_Op(OMPI_MPI_OP_NULL)
type(MPI_Request), parameter :: MPI_REQUEST_NULL = MPI_Request(OMPI_MPI_REQUEST_NULL)
type(MPI_Win), parameter :: MPI_WIN_NULL = MPI_Win(OMPI_MPI_WIN_NULL)
type(MPI_File), parameter :: MPI_FILE_NULL = MPI_File(OMPI_MPI_FILE_NULL)
!
! Pre-defined datatype bindings
@ -127,82 +128,82 @@ module mpi_f08_types
! They are defined in ompi/runtime/ompi_mpi_init.c
!
type(MPI_Datatype), bind(C, name="ompi_f08_mpi_aint") OMPI_PROTECTED :: MPI_AINT
type(MPI_Datatype), bind(C, name="ompi_f08_mpi_byte") OMPI_PROTECTED :: MPI_BYTE
type(MPI_Datatype), bind(C, name="ompi_f08_mpi_packed") OMPI_PROTECTED :: MPI_PACKED
type(MPI_Datatype), bind(C, name="ompi_f08_mpi_ub") OMPI_PROTECTED :: MPI_UB
type(MPI_Datatype), bind(C, name="ompi_f08_mpi_lb") OMPI_PROTECTED :: MPI_LB
type(MPI_Datatype), bind(C, name="ompi_f08_mpi_char") OMPI_PROTECTED :: MPI_CHAR
type(MPI_Datatype), bind(C, name="ompi_f08_mpi_signed_char") OMPI_PROTECTED :: MPI_SIGNED_CHAR
type(MPI_Datatype), bind(C, name="ompi_f08_mpi_unsigned_char") OMPI_PROTECTED :: MPI_UNSIGNED_CHAR
type(MPI_Datatype), bind(C, name="ompi_f08_mpi_wchar") OMPI_PROTECTED :: MPI_WCHAR
type(MPI_Datatype), bind(C, name="ompi_f08_mpi_character") OMPI_PROTECTED :: MPI_CHARACTER
type(MPI_Datatype), bind(C, name="ompi_f08_mpi_logical") OMPI_PROTECTED :: MPI_LOGICAL
type(MPI_Datatype), bind(C, name="ompi_f08_mpi_int") OMPI_PROTECTED :: MPI_INT
type(MPI_Datatype), bind(C, name="ompi_f08_mpi_int16") OMPI_PROTECTED :: MPI_INT16_T
type(MPI_Datatype), bind(C, name="ompi_f08_mpi_int32") OMPI_PROTECTED :: MPI_INT32_T
type(MPI_Datatype), bind(C, name="ompi_f08_mpi_int64") OMPI_PROTECTED :: MPI_INT64_T
type(MPI_Datatype), bind(C, name="ompi_f08_mpi_int8") OMPI_PROTECTED :: MPI_INT8_T
type(MPI_Datatype), bind(C, name="ompi_f08_mpi_uint16") OMPI_PROTECTED :: MPI_UINT16_T
type(MPI_Datatype), bind(C, name="ompi_f08_mpi_uint32") OMPI_PROTECTED :: MPI_UINT32_T
type(MPI_Datatype), bind(C, name="ompi_f08_mpi_uint64") OMPI_PROTECTED :: MPI_UINT64_T
type(MPI_Datatype), bind(C, name="ompi_f08_mpi_uint8") OMPI_PROTECTED :: MPI_UINT8_T
type(MPI_Datatype), bind(C, name="ompi_f08_mpi_short") OMPI_PROTECTED :: MPI_SHORT
type(MPI_Datatype), bind(C, name="ompi_f08_mpi_unsigned_short") OMPI_PROTECTED :: MPI_UNSIGNED_SHORT
type(MPI_Datatype), bind(C, name="ompi_f08_mpi_unsigned") OMPI_PROTECTED :: MPI_UNSIGNED
type(MPI_Datatype), bind(C, name="ompi_f08_mpi_long") OMPI_PROTECTED :: MPI_LONG
type(MPI_Datatype), bind(C, name="ompi_f08_mpi_unsigned_long") OMPI_PROTECTED :: MPI_UNSIGNED_LONG
type(MPI_Datatype), bind(C, name="ompi_f08_mpi_long_long") OMPI_PROTECTED :: MPI_LONG_LONG
type(MPI_Datatype), bind(C, name="ompi_f08_mpi_unsigned_long_long") OMPI_PROTECTED :: MPI_UNSIGNED_LONG_LONG
type(MPI_Datatype), bind(C, name="ompi_f08_mpi_long_long_int") OMPI_PROTECTED :: MPI_LONG_LONG_INT
type(MPI_Datatype), bind(C, name="ompi_f08_mpi_integer") OMPI_PROTECTED :: MPI_INTEGER
type(MPI_Datatype), bind(C, name="ompi_f08_mpi_integer1") OMPI_PROTECTED :: MPI_INTEGER1
type(MPI_Datatype), bind(C, name="ompi_f08_mpi_integer2") OMPI_PROTECTED :: MPI_INTEGER2
type(MPI_Datatype), bind(C, name="ompi_f08_mpi_integer4") OMPI_PROTECTED :: MPI_INTEGER4
type(MPI_Datatype), bind(C, name="ompi_f08_mpi_integer8") OMPI_PROTECTED :: MPI_INTEGER8
type(MPI_Datatype), bind(C, name="ompi_f08_mpi_integer16") OMPI_PROTECTED :: MPI_INTEGER16
type(MPI_Datatype), bind(C, name="ompi_f08_mpi_float") OMPI_PROTECTED :: MPI_FLOAT
type(MPI_Datatype), bind(C, name="ompi_f08_mpi_double") OMPI_PROTECTED :: MPI_DOUBLE
type(MPI_Datatype), bind(C, name="ompi_f08_mpi_long_double") OMPI_PROTECTED :: MPI_LONG_DOUBLE
type(MPI_Datatype), bind(C, name="ompi_f08_mpi_real") OMPI_PROTECTED :: MPI_REAL
type(MPI_Datatype), bind(C, name="ompi_f08_mpi_real4") OMPI_PROTECTED :: MPI_REAL4
type(MPI_Datatype), bind(C, name="ompi_f08_mpi_real8") OMPI_PROTECTED :: MPI_REAL8
type(MPI_Datatype), bind(C, name="ompi_f08_mpi_real16") OMPI_PROTECTED :: MPI_REAL16
type(MPI_Datatype), bind(C, name="ompi_f08_mpi_double_precision") OMPI_PROTECTED :: MPI_DOUBLE_PRECISION
type(MPI_Datatype), bind(C, name="ompi_f08_mpi_c_complex") OMPI_PROTECTED :: MPI_C_COMPLEX
type(MPI_Datatype), bind(C, name="ompi_f08_mpi_c_float_complex") OMPI_PROTECTED :: MPI_C_FLOAT_COMPLEX
type(MPI_Datatype), bind(C, name="ompi_f08_mpi_c_double_complex") OMPI_PROTECTED :: MPI_C_DOUBLE_COMPLEX
type(MPI_Datatype), bind(C, name="ompi_f08_mpi_c_long_double_complex") OMPI_PROTECTED :: MPI_C_LONG_DOUBLE_COMPLEX
type(MPI_Datatype), bind(C, name="ompi_f08_mpi_cxx_complex") OMPI_PROTECTED :: MPI_CXX_COMPLEX
type(MPI_Datatype), bind(C, name="ompi_f08_mpi_cxx_float_complex") OMPI_PROTECTED :: MPI_CXX_FLOAT_COMPLEX
type(MPI_Datatype), bind(C, name="ompi_f08_mpi_cxx_double_complex") OMPI_PROTECTED :: MPI_CXX_DOUBLE_COMPLEX
type(MPI_Datatype), bind(C, name="ompi_f08_mpi_cxx_long_double_complex") OMPI_PROTECTED :: MPI_CXX_LONG_DOUBLE_COMPLEX
type(MPI_Datatype), bind(C, name="ompi_f08_mpi_complex") OMPI_PROTECTED :: MPI_COMPLEX
type(MPI_Datatype), bind(C, name="ompi_f08_mpi_complex8") OMPI_PROTECTED :: MPI_COMPLEX8
type(MPI_Datatype), bind(C, name="ompi_f08_mpi_complex16") OMPI_PROTECTED :: MPI_COMPLEX16
type(MPI_Datatype), bind(C, name="ompi_f08_mpi_complex32") OMPI_PROTECTED :: MPI_COMPLEX32
type(MPI_Datatype), bind(C, name="ompi_f08_mpi_double_complex") OMPI_PROTECTED :: MPI_DOUBLE_COMPLEX
type(MPI_Datatype), bind(C, name="ompi_f08_mpi_float_int") OMPI_PROTECTED :: MPI_FLOAT_INT
type(MPI_Datatype), bind(C, name="ompi_f08_mpi_double_int") OMPI_PROTECTED :: MPI_DOUBLE_INT
type(MPI_Datatype), bind(C, name="ompi_f08_mpi_2real") OMPI_PROTECTED :: MPI_2REAL
type(MPI_Datatype), bind(C, name="ompi_f08_mpi_2double_precision") OMPI_PROTECTED :: MPI_2DOUBLE_PRECISION
type(MPI_Datatype), bind(C, name="ompi_f08_mpi_2int") OMPI_PROTECTED :: MPI_2INT
type(MPI_Datatype), bind(C, name="ompi_f08_mpi_short_int") OMPI_PROTECTED :: MPI_SHORT_INT
type(MPI_Datatype), bind(C, name="ompi_f08_mpi_long_int") OMPI_PROTECTED :: MPI_LONG_INT
type(MPI_Datatype), bind(C, name="ompi_f08_mpi_long_double_int") OMPI_PROTECTED :: MPI_LONG_DOUBLE_INT
type(MPI_Datatype), bind(C, name="ompi_f08_mpi_2integer") OMPI_PROTECTED :: MPI_2INTEGER
type(MPI_Datatype), bind(C, name="ompi_f08_mpi_2complex") OMPI_PROTECTED :: MPI_2COMPLEX
type(MPI_Datatype), bind(C, name="ompi_f08_mpi_2double_complex") OMPI_PROTECTED :: MPI_2DOUBLE_COMPLEX
type(MPI_Datatype), bind(C, name="ompi_f08_mpi_real2") OMPI_PROTECTED :: MPI_REAL2
type(MPI_Datatype), bind(C, name="ompi_f08_mpi_logical1") OMPI_PROTECTED :: MPI_LOGICAL1
type(MPI_Datatype), bind(C, name="ompi_f08_mpi_logical2") OMPI_PROTECTED :: MPI_LOGICAL2
type(MPI_Datatype), bind(C, name="ompi_f08_mpi_logical4") OMPI_PROTECTED :: MPI_LOGICAL4
type(MPI_Datatype), bind(C, name="ompi_f08_mpi_logical8") OMPI_PROTECTED :: MPI_LOGICAL8
type(MPI_Datatype), bind(C, name="ompi_f08_mpi_c_bool") OMPI_PROTECTED :: MPI_C_BOOL
type(MPI_Datatype), bind(C, name="ompi_f08_mpi_cxx_bool") OMPI_PROTECTED :: MPI_CXX_BOOL
type(MPI_Datatype), bind(C, name="ompi_f08_mpi_count") OMPI_PROTECTED :: MPI_COUNT
type(MPI_Datatype), bind(C, name="ompi_f08_mpi_offset") OMPI_PROTECTED :: MPI_OFFSET
type(MPI_Datatype), bind(C, name="ompi_f08_mpi_complex4") OMPI_PROTECTED :: MPI_COMPLEX4
type(MPI_Datatype), parameter :: MPI_AINT = MPI_Datatype(OMPI_MPI_AINT)
type(MPI_Datatype), parameter :: MPI_BYTE = MPI_Datatype(OMPI_MPI_BYTE)
type(MPI_Datatype), parameter :: MPI_PACKED = MPI_Datatype(OMPI_MPI_PACKED)
type(MPI_Datatype), parameter :: MPI_UB = MPI_Datatype(OMPI_MPI_UB)
type(MPI_Datatype), parameter :: MPI_LB = MPI_Datatype(OMPI_MPI_LB)
type(MPI_Datatype), parameter :: MPI_CHAR = MPI_Datatype(OMPI_MPI_CHAR)
type(MPI_Datatype), parameter :: MPI_SIGNED_CHAR = MPI_Datatype(OMPI_MPI_SIGNED_CHAR)
type(MPI_Datatype), parameter :: MPI_UNSIGNED_CHAR = MPI_Datatype(OMPI_MPI_UNSIGNED_CHAR)
type(MPI_Datatype), parameter :: MPI_WCHAR = MPI_Datatype(OMPI_MPI_WCHAR)
type(MPI_Datatype), parameter :: MPI_CHARACTER = MPI_Datatype(OMPI_MPI_CHARACTER)
type(MPI_Datatype), parameter :: MPI_LOGICAL = MPI_Datatype(OMPI_MPI_LOGICAL)
type(MPI_Datatype), parameter :: MPI_INT = MPI_Datatype(OMPI_MPI_INT)
type(MPI_Datatype), parameter :: MPI_INT16_T = MPI_Datatype(OMPI_MPI_INT16_T)
type(MPI_Datatype), parameter :: MPI_INT32_T = MPI_Datatype(OMPI_MPI_INT32_T)
type(MPI_Datatype), parameter :: MPI_INT64_T = MPI_Datatype(OMPI_MPI_INT64_T)
type(MPI_Datatype), parameter :: MPI_INT8_T = MPI_Datatype(OMPI_MPI_INT8_T)
type(MPI_Datatype), parameter :: MPI_UINT16_T = MPI_Datatype(OMPI_MPI_UINT16_T)
type(MPI_Datatype), parameter :: MPI_UINT32_T = MPI_Datatype(OMPI_MPI_UINT32_T)
type(MPI_Datatype), parameter :: MPI_UINT64_T = MPI_Datatype(OMPI_MPI_UINT64_T)
type(MPI_Datatype), parameter :: MPI_UINT8_T = MPI_Datatype(OMPI_MPI_UINT8_T)
type(MPI_Datatype), parameter :: MPI_SHORT = MPI_Datatype(OMPI_MPI_SHORT)
type(MPI_Datatype), parameter :: MPI_UNSIGNED_SHORT = MPI_Datatype(OMPI_MPI_UNSIGNED_SHORT)
type(MPI_Datatype), parameter :: MPI_UNSIGNED = MPI_Datatype(OMPI_MPI_UNSIGNED)
type(MPI_Datatype), parameter :: MPI_LONG = MPI_Datatype(OMPI_MPI_LONG)
type(MPI_Datatype), parameter :: MPI_UNSIGNED_LONG = MPI_Datatype(OMPI_MPI_UNSIGNED_LONG)
type(MPI_Datatype), parameter :: MPI_LONG_LONG = MPI_Datatype(OMPI_MPI_LONG_LONG)
type(MPI_Datatype), parameter :: MPI_UNSIGNED_LONG_LONG = MPI_Datatype(OMPI_MPI_UNSIGNED_LONG_LONG)
type(MPI_Datatype), parameter :: MPI_LONG_LONG_INT = MPI_Datatype(OMPI_MPI_LONG_LONG_INT)
type(MPI_Datatype), parameter :: MPI_INTEGER = MPI_Datatype(OMPI_MPI_INTEGER)
type(MPI_Datatype), parameter :: MPI_INTEGER1 = MPI_Datatype(OMPI_MPI_INTEGER1)
type(MPI_Datatype), parameter :: MPI_INTEGER2 = MPI_Datatype(OMPI_MPI_INTEGER2)
type(MPI_Datatype), parameter :: MPI_INTEGER4 = MPI_Datatype(OMPI_MPI_INTEGER4)
type(MPI_Datatype), parameter :: MPI_INTEGER8 = MPI_Datatype(OMPI_MPI_INTEGER8)
type(MPI_Datatype), parameter :: MPI_INTEGER16 = MPI_Datatype(OMPI_MPI_INTEGER16)
type(MPI_Datatype), parameter :: MPI_FLOAT = MPI_Datatype(OMPI_MPI_FLOAT)
type(MPI_Datatype), parameter :: MPI_DOUBLE = MPI_Datatype(OMPI_MPI_DOUBLE)
type(MPI_Datatype), parameter :: MPI_LONG_DOUBLE = MPI_Datatype(OMPI_MPI_LONG_DOUBLE)
type(MPI_Datatype), parameter :: MPI_REAL = MPI_Datatype(OMPI_MPI_REAL)
type(MPI_Datatype), parameter :: MPI_REAL4 = MPI_Datatype(OMPI_MPI_REAL4)
type(MPI_Datatype), parameter :: MPI_REAL8 = MPI_Datatype(OMPI_MPI_REAL8)
type(MPI_Datatype), parameter :: MPI_REAL16 = MPI_Datatype(OMPI_MPI_REAL16)
type(MPI_Datatype), parameter :: MPI_DOUBLE_PRECISION = MPI_Datatype(OMPI_MPI_DOUBLE_PRECISION)
type(MPI_Datatype), parameter :: MPI_C_COMPLEX = MPI_Datatype(OMPI_MPI_C_COMPLEX)
type(MPI_Datatype), parameter :: MPI_C_FLOAT_COMPLEX = MPI_Datatype(OMPI_MPI_C_FLOAT_COMPLEX)
type(MPI_Datatype), parameter :: MPI_C_DOUBLE_COMPLEX = MPI_Datatype(OMPI_MPI_C_DOUBLE_COMPLEX)
type(MPI_Datatype), parameter :: MPI_C_LONG_DOUBLE_COMPLEX = MPI_Datatype(OMPI_MPI_C_LONG_DOUBLE_COMPLEX)
type(MPI_Datatype), parameter :: MPI_CXX_COMPLEX = MPI_Datatype(OMPI_MPI_CXX_COMPLEX)
type(MPI_Datatype), parameter :: MPI_CXX_FLOAT_COMPLEX = MPI_Datatype(OMPI_MPI_CXX_FLOAT_COMPLEX)
type(MPI_Datatype), parameter :: MPI_CXX_DOUBLE_COMPLEX = MPI_Datatype(OMPI_MPI_CXX_DOUBLE_COMPLEX)
type(MPI_Datatype), parameter :: MPI_CXX_LONG_DOUBLE_COMPLEX = MPI_Datatype(OMPI_MPI_CXX_LONG_DOUBLE_COMPLEX)
type(MPI_Datatype), parameter :: MPI_COMPLEX = MPI_Datatype(OMPI_MPI_COMPLEX)
type(MPI_Datatype), parameter :: MPI_COMPLEX8 = MPI_Datatype(OMPI_MPI_COMPLEX8)
type(MPI_Datatype), parameter :: MPI_COMPLEX16 = MPI_Datatype(OMPI_MPI_COMPLEX16)
type(MPI_Datatype), parameter :: MPI_COMPLEX32 = MPI_Datatype(OMPI_MPI_COMPLEX32)
type(MPI_Datatype), parameter :: MPI_DOUBLE_COMPLEX = MPI_Datatype(OMPI_MPI_COMPLEX)
type(MPI_Datatype), parameter :: MPI_FLOAT_INT = MPI_Datatype(OMPI_MPI_FLOAT_INT)
type(MPI_Datatype), parameter :: MPI_DOUBLE_INT = MPI_Datatype(OMPI_MPI_DOUBLE_INT)
type(MPI_Datatype), parameter :: MPI_2REAL = MPI_Datatype(OMPI_MPI_2REAL)
type(MPI_Datatype), parameter :: MPI_2DOUBLE_PRECISION = MPI_Datatype(OMPI_MPI_2DOUBLE_PRECISION)
type(MPI_Datatype), parameter :: MPI_2INT = MPI_Datatype(OMPI_MPI_2INT)
type(MPI_Datatype), parameter :: MPI_SHORT_INT = MPI_Datatype(OMPI_MPI_SHORT_INT)
type(MPI_Datatype), parameter :: MPI_LONG_INT = MPI_Datatype(OMPI_MPI_LONG_INT)
type(MPI_Datatype), parameter :: MPI_LONG_DOUBLE_INT = MPI_Datatype(OMPI_MPI_LONG_DOUBLE_INT)
type(MPI_Datatype), parameter :: MPI_2INTEGER = MPI_Datatype(OMPI_MPI_2INTEGER)
type(MPI_Datatype), parameter :: MPI_2COMPLEX = MPI_Datatype(OMPI_MPI_2COMPLEX)
type(MPI_Datatype), parameter :: MPI_2DOUBLE_COMPLEX = MPI_Datatype(OMPI_MPI_2DOUBLE_COMPLEX)
type(MPI_Datatype), parameter :: MPI_REAL2 = MPI_Datatype(OMPI_MPI_REAL2)
type(MPI_Datatype), parameter :: MPI_LOGICAL1 = MPI_Datatype(OMPI_MPI_LOGICAL1)
type(MPI_Datatype), parameter :: MPI_LOGICAL2 = MPI_Datatype(OMPI_MPI_LOGICAL2)
type(MPI_Datatype), parameter :: MPI_LOGICAL4 = MPI_Datatype(OMPI_MPI_LOGICAL4)
type(MPI_Datatype), parameter :: MPI_LOGICAL8 = MPI_Datatype(OMPI_MPI_LOGICAL8)
type(MPI_Datatype), parameter :: MPI_C_BOOL = MPI_Datatype(OMPI_MPI_C_BOOL)
type(MPI_Datatype), parameter :: MPI_CXX_BOOL = MPI_Datatype(OMPI_MPI_CXX_BOOL)
type(MPI_Datatype), parameter :: MPI_COUNT = MPI_Datatype(OMPI_MPI_COUNT)
type(MPI_Datatype), parameter :: MPI_OFFSET = MPI_Datatype(OMPI_MPI_OFFSET)
type(MPI_Datatype), parameter :: MPI_COMPLEX4 = MPI_Datatype(OMPI_MPI_COMPLEX4)
!... Special sentinel constants
!------------------------------

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

@ -1,6 +1,8 @@
! -*- fortran -*-
!
! Copyright (c) 2018 FUJITSU LIMITED. All rights reserved.
! Copyright (c) 2019 Research Organization for Information Science
! and Technology (RIST). All rights reserved.
! $COPYRIGHT$
!
! Additional copyrights may follow
@ -11,10 +13,10 @@
! This whole file will be included in the mpi_f08_ext module interface
! section.
type(MPI_Datatype), bind(C, name="ompi_f08_mpi_short_float") OMPI_PROTECTED :: MPIX_SHORT_FLOAT
type(MPI_Datatype), bind(C, name="ompi_f08_mpi_c_short_float_complex") OMPI_PROTECTED :: MPIX_C_SHORT_FLOAT_COMPLEX
type(MPI_Datatype), bind(C, name="ompi_f08_mpi_cxx_short_float_complex") OMPI_PROTECTED :: MPIX_CXX_SHORT_FLOAT_COMPLEX
type(MPI_Datatype), parameter :: MPIX_SHORT_FLOAT = MPI_Datatype(74)
type(MPI_Datatype), parameter :: MPIX_C_SHORT_FLOAT_COMPLEX = MPI_Datatype(75)
type(MPI_Datatype), parameter :: MPIX_CXX_SHORT_FLOAT_COMPLEX = MPI_Datatype(76)
#if @OMPI_MPIX_SHORT_FLOAT_IS_C_FLOAT16@
type(MPI_Datatype), bind(C, name="ompi_f08_mpi_c_float16") OMPI_PROTECTED :: MPIX_C_FLOAT16
type(MPI_Datatype), parameter :: MPIX_C_FLOAT16 = MPI_Datatype(74)
#endif

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

@ -11,8 +11,8 @@
* All rights reserved.
* Copyright (c) 2007-2017 Cisco Systems, Inc. All rights reserved
* Copyright (c) 2009 Oak Ridge National Labs. All rights reserved.
* Copyright (c) 2014-2017 Research Organization for Information Science
* and Technology (RIST). All rights reserved.
* Copyright (c) 2014-2019 Research Organization for Information Science
* and Technology (RIST). All rights reserved.
* Copyright (c) 2015 Intel, Inc. All rights reserved
* Copyright (c) 2018 Amazon.com, Inc. or its affiliates. All Rights reserved.
* Copyright (c) 2018 FUJITSU LIMITED. All rights reserved.
@ -199,7 +199,6 @@ void ompi_info_do_config(bool want_all)
fortran_have_bind_c_type_name = OMPI_FORTRAN_HAVE_BIND_C_TYPE_NAME ?
"yes" : "no";
fortran_have_private = OMPI_FORTRAN_HAVE_PRIVATE ? "yes" : "no";
fortran_have_protected = OMPI_FORTRAN_HAVE_PROTECTED ? "yes" : "no";
fortran_have_abstract = OMPI_FORTRAN_HAVE_ABSTRACT ? "yes" : "no";
fortran_have_asynchronous = OMPI_FORTRAN_HAVE_ASYNCHRONOUS ? "yes" : "no";
fortran_have_procedure = OMPI_FORTRAN_HAVE_PROCEDURE ? "yes" : "no";
@ -443,9 +442,6 @@ void ompi_info_do_config(bool want_all)
opal_info_out("Fort PRIVATE",
"compiler:fortran:private",
fortran_have_private);
opal_info_out("Fort PROTECTED",
"compiler:fortran:protected",
fortran_have_protected);
opal_info_out("Fort ABSTRACT",
"compiler:fortran:abstract",
fortran_have_abstract);