fortran/use-mpi-f08: revamp constant declarations
In order to work around an issue with flang based compilers, avoid declaring bind(C) constants and use plain Fortran parameter instead. For example, type(MPI_Comm), bind(C, name="ompi_f08_mpi_comm_world") OMPI_PROTECTED :: MPI_COMM_WORLD is changed to type(MPI_Comm), parameter :: MPI_COMM_WORLD = MPI_Comm(OMPI_MPI_COMM_WORLD) Note that in order to preserve ABI compatibility, ompi/mpi/fortran/use-mpi-f08/constants.{c,h} have been kept even if its symbols are no more referenced by Open MPI. Refs. open-mpi/ompi#7091 Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
Этот коммит содержится в:
родитель
aa8be9c12d
Коммит
b10a60a5a9
1
.gitignore
поставляемый
1
.gitignore
поставляемый
@ -213,6 +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/mod/mpi-f08-constants.h
|
||||
ompi/mpi/fortran/use-mpi-f08/constants.h
|
||||
ompi/mpi/fortran/use-mpi-f08/sizeof_f08.f90
|
||||
ompi/mpi/fortran/use-mpi-f08/sizeof_f08.h
|
||||
|
@ -1,7 +1,7 @@
|
||||
#!/usr/bin/env perl
|
||||
#
|
||||
# Copyright (c) 2011-2014 Cisco Systems, Inc. All rights reserved.
|
||||
# Copyright (c) 2016-2017 Research Organization for Information Science
|
||||
# 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$
|
||||
@ -527,4 +527,62 @@ $output .= "#endif /* USE_MPI_F08_CONSTANTS_H */\n";
|
||||
|
||||
write_file("$topdir/ompi/mpi/fortran/use-mpi-f08/constants.h", $output);
|
||||
|
||||
$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-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
|
||||
|
||||
';
|
||||
|
||||
foreach my $key (sort(keys(%{$constants}))) {
|
||||
$output .= "#define OMPI_$key $constants->{$key}\n";
|
||||
}
|
||||
$output .= "\n";
|
||||
foreach my $key (sort(keys(%{$handles}))) {
|
||||
$output .= "#define OMPI_$key $handles->{$key}\n";
|
||||
}
|
||||
|
||||
foreach my $key (sort(keys(%{$io_constants}))) {
|
||||
$output .= "#define OMPI_$key $io_constants->{$key}\n";
|
||||
}
|
||||
foreach my $key (sort(keys(%{$lio_constants}))) {
|
||||
$output .= "#define OMPI_$key $lio_constants->{$key}\n";
|
||||
}
|
||||
$output .= "\n";
|
||||
foreach my $key (sort(keys(%{$io_handles}))) {
|
||||
$output .= "#define OMPI_$key $io_handles->{$key}\n";
|
||||
}
|
||||
$output .= "\n";
|
||||
$output .= "#endif\n";
|
||||
|
||||
write_file("$topdir/ompi/mpi/fortran/use-mpi-f08/mod/mpi-f08-constants.h", $output);
|
||||
|
||||
exit(0);
|
||||
|
@ -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,7 +3,7 @@
|
||||
! 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
|
||||
! 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
|
||||
|
Загрузка…
Ссылка в новой задаче
Block a user