diff --git a/config/ompi_config_files.m4 b/config/ompi_config_files.m4 index 119d0ddabaf..bdb8173213a 100644 --- a/config/ompi_config_files.m4 +++ b/config/ompi_config_files.m4 @@ -43,8 +43,11 @@ AC_DEFUN([OMPI_CONFIG_FILES],[ ompi/mpi/fortran/use-mpi-f08/base/Makefile ompi/mpi/fortran/use-mpi-f08/profile/Makefile ompi/mpi/fortran/use-mpi-f08/bindings/Makefile + ompi/mpi/fortran/use-mpi-f08/ts/Makefile ompi/mpi/fortran/use-mpi-f08/mod/Makefile + ompi/mpi/fortran/use-mpi-f08/mod/mpi-f08-subarrays-config.h ompi/mpi/fortran/use-mpi-f08/mod/mpi-f08-interfaces.h + ompi/mpi/fortran/use-mpi-f08/mod/mpi-f08-rename.h ompi/mpi/fortran/mpiext-use-mpi/Makefile ompi/mpi/fortran/mpiext-use-mpi-f08/Makefile ompi/mpi/tool/Makefile diff --git a/config/ompi_fortran_check_ts.m4 b/config/ompi_fortran_check_ts.m4 new file mode 100644 index 00000000000..1cc9d07a827 --- /dev/null +++ b/config/ompi_fortran_check_ts.m4 @@ -0,0 +1,69 @@ +dnl -*- shell-script -*- +dnl +dnl Copyright (c) 2019 Research Organization for Information Science +dnl and Technology (RIST). All rights reserved. +dnl $COPYRIGHT$ +dnl +dnl Additional copyrights may follow +dnl +dnl $HEADER$ +dnl + +# Check whether or not the C compiler supports ISO_Fortran_binding.h +# Also check whether C and Fortran compiler interoperate. +# +# OMPI_FORTRAN_CHECK_TS([action if found], [action if not found]) +# ---------------------------------------------------- +AC_DEFUN([OMPI_FORTRAN_CHECK_TS],[ + AS_VAR_PUSHDEF([fortran_ts], [ompi_cv_fortran_have_ts]) + + AC_CHECK_HEADERS([ISO_Fortran_binding.h], + [AC_CACHE_CHECK([if Fortran and C compilers support ISO_Fortran_binding.h], fortran_ts, + [mkdir conftest.$$ + cd conftest.$$ + + # Try to compile the C bindings + cat > conftest_c.c << EOF +#include + +int is_contiguous_c(CFI_cdesc_t* x) { + return CFI_is_contiguous(x); +} +EOF + OPAL_LOG_COMMAND([$CC $CCFLAGS -c conftest_c.c], + [cat > conftest.f90 << EOF +module MOD_IS_CONTIGUOUS + +interface + +function is_contiguous(buf) BIND(C, name="is_contiguous_c") + implicit none + type(*), dimension(..) :: buf + integer :: is_contiguous +end function is_contiguous + +end interface + +end module + +program test_is_contiguous + use MOD_IS_CONTIGUOUS + implicit none + integer :: a0, a1(2), a2(2,2), a3(2,2,2) + write (*,*) is_contiguous(a0) + write (*,*) is_contiguous(a1) + write (*,*) is_contiguous(a2) + write (*,*) is_contiguous(a3) +end program +EOF + OPAL_LOG_COMMAND([$FC $FCFLAGS $FCFLAGS_f90 -o conftest conftest.f90 conftest_c.o $LDFLAGS $LIBS], + [AS_VAR_SET(fortran_ts, yes)], + [AS_VAR_SET(fortran_ts, no)])], + [AS_VAR_SET(fortran_ts, no)]) + cd .. + rm -rf conftest.$$])], + [AS_VAR_SET(fortran_ts, no)]) + + AS_VAR_IF(fortran_ts, [yes], [$1], [$2]) + AS_VAR_POPDEF([fortran_ts])dnl +]) diff --git a/config/ompi_setup_mpi_fortran.m4 b/config/ompi_setup_mpi_fortran.m4 index 077d4b6b3d9..8b3be5384fa 100644 --- a/config/ompi_setup_mpi_fortran.m4 +++ b/config/ompi_setup_mpi_fortran.m4 @@ -417,14 +417,27 @@ AC_DEFUN([OMPI_SETUP_MPI_FORTRAN],[ # If we got all the stuff from above, then also look for the new # F08 syntax that we can use for the use_mpif08 module. - # We need to have ignore TKR functionality to build the mpi_f08 + OMPI_FORTRAN_HAVE_TS=0 + OMPI_MPI_SUBARRAYS_SUPPORTED=.false. + OMPI_MPI_ASYNC_PROTECTS_NONBLOCKING=.false. + AS_IF([test $OMPI_TRY_FORTRAN_BINDINGS -ge $OMPI_FORTRAN_USEMPIF08_BINDINGS], + [OMPI_FORTRAN_CHECK_TS([OMPI_FORTRAN_HAVE_TS=1])]) + + AC_SUBST(OMPI_MPI_SUBARRAYS_SUPPORTED) + AC_SUBST(OMPI_MPI_ASYNC_PROTECTS_NONBLOCKING) + + # We need to have ignore TKR or the ISO Fortran bindings functionality to build the mpi_f08 # module - AS_IF([test $OMPI_TRY_FORTRAN_BINDINGS -ge $OMPI_FORTRAN_USEMPIF08_BINDINGS && \ - test $OMPI_FORTRAN_HAVE_IGNORE_TKR -eq 1], - [OMPI_BUILD_FORTRAN_BINDINGS=$OMPI_FORTRAN_USEMPIF08_BINDINGS - OMPI_FORTRAN_F08_PREDECL=$OMPI_FORTRAN_IGNORE_TKR_PREDECL - OMPI_FORTRAN_F08_TYPE=$OMPI_FORTRAN_IGNORE_TKR_TYPE - ]) + AS_IF([test $OMPI_TRY_FORTRAN_BINDINGS -ge $OMPI_FORTRAN_USEMPIF08_BINDINGS], + [AS_IF([test $OMPI_FORTRAN_HAVE_IGNORE_TKR -eq 1], + [OMPI_BUILD_FORTRAN_BINDINGS=$OMPI_FORTRAN_USEMPIF08_BINDINGS + OMPI_FORTRAN_F08_PREDECL=$OMPI_FORTRAN_IGNORE_TKR_PREDECL + OMPI_FORTRAN_F08_TYPE=$OMPI_FORTRAN_IGNORE_TKR_TYPE + ]) + AS_IF([test $OMPI_FORTRAN_HAVE_TS -eq 1], + [OMPI_BUILD_FORTRAN_BINDINGS=$OMPI_FORTRAN_USEMPIF08_BINDINGS + OMPI_MPI_SUBARRAYS_SUPPORTED=.true. + OMPI_MPI_ASYNC_PROTECTS_NONBLOCKING=.true.])]) # The overall "_BIND_C" variable will be set to 1 if we have all # the necessary forms of BIND(C) @@ -558,8 +571,6 @@ end type test_mpi_handle], ]) OMPI_FORTRAN_NEED_WRAPPER_ROUTINES=1 - OMPI_FORTRAN_F08_PREDECL='!' - OMPI_FORTRAN_F08_TYPE=real OMPI_FORTRAN_HAVE_F08_ASSUMED_RANK=0 AS_IF([test $OMPI_TRY_FORTRAN_BINDINGS -ge $OMPI_FORTRAN_USEMPIF08_BINDINGS && \ test $OMPI_BUILD_FORTRAN_BINDINGS -ge $OMPI_FORTRAN_USEMPIF08_BINDINGS], @@ -567,8 +578,6 @@ end type test_mpi_handle], OMPI_FORTRAN_CHECK_F08_ASSUMED_RANK( [ # If we have assumed rank, we can build the use # mpi_f08 module "better" - OMPI_FORTRAN_F08_PREDECL='!' - OMPI_FORTRAN_F08_TYPE='type(*), dimension(..)' OMPI_FORTRAN_HAVE_F08_ASSUMED_RANK=1]) # Which mpi_f08 implementation are we using? @@ -598,6 +607,12 @@ end type test_mpi_handle], [OMPI_FORTRAN_ELEMENTAL_TYPE=])]) AC_SUBST(OMPI_FORTRAN_ELEMENTAL_TYPE) + OMPI_FORTRAN_HAVE_C_ISO_FORTRAN=0 + AS_IF([test $OMPI_TRY_FORTRAN_BINDINGS -ge $OMPI_FORTRAN_USEMPIF08_BINDINGS && \ + test $OMPI_BUILD_FORTRAN_BINDINGS -ge $OMPI_FORTRAN_USEMPIF08_BINDINGS], + [OMPI_FORTRAN_CHECK_TS([OMPI_FORTRAN_HAVE_TS=1], + [OMPI_FORTRAN_HAVE_TS=0])]) + # Note: the current implementation *only* has wrappers; # there is no optimized implementation for a "good" # compiler. I'm leaving the above logic in place for @@ -620,6 +635,8 @@ end type test_mpi_handle], AS_IF([test $OMPI_MIN_REQUIRED_FORTRAN_BINDINGS -gt $OMPI_BUILD_FORTRAN_BINDINGS], [AC_MSG_ERROR([Cannot build requested Fortran bindings, aborting])]) + AC_CONFIG_FILES([ompi/mpi/fortran/use-mpi-f08/bindings/mpi-f-interfaces-bind.h]) + # ------------------- # mpif.h final setup # ------------------- @@ -760,10 +777,9 @@ end type test_mpi_handle], # This goes into mpifort-wrapper-data.txt AC_SUBST(OMPI_FORTRAN_USEMPIF08_LIB) - # These go into interfaces/mpi-f08-interfaces-[no]bind.h (and - # mpi-f*-interfaces*.h files) - AC_SUBST(OMPI_FORTRAN_F08_PREDECL) - AC_SUBST(OMPI_FORTRAN_F08_TYPE) + # These go into mod/mpi-f08-interfaces.h + AC_SUBST(OMPI_F08_IGNORE_TKR_PREDECL) + AC_SUBST(OMPI_F08_IGNORE_TKR_TYPE) AC_SUBST(OMPI_MPI_PREFIX) AC_SUBST(OMPI_MPI_BIND_PREFIX) @@ -845,6 +861,22 @@ end type test_mpi_handle], # For configure-fortran-output.h AC_SUBST(OMPI_FORTRAN_HAVE_BIND_C) + AM_CONDITIONAL(OMPI_FORTRAN_HAVE_TS, + [test $OMPI_FORTRAN_HAVE_TS -eq 1]) + AC_SUBST(OMPI_FORTRAN_HAVE_TS) + + AS_IF([test $OMPI_FORTRAN_HAVE_TS -eq 1], + [OMPI_F08_IGNORE_TKR_TYPE="type(*), dimension(..)" + OMPI_F08_IGNORE_TKR_PREDECL="! no attribute required for" + OMPI_F08_BINDINGS_EXTENSION="ts" + OMPI_F08_BINDINGS_TS_SUFFIX="ts"], + [OMPI_F08_IGNORE_TKR_TYPE=$OMPI_FORTRAN_IGNORE_TKR_TYPE + OMPI_F08_IGNORE_TKR_PREDECL=$OMPI_FORTRAN_IGNORE_TKR_PREDECL + OMPI_F08_BINDINGS_EXTENSION="f" + OMPI_F08_BINDINGS_TS_SUFFIX=""]) + AC_SUBST(OMPI_F08_BINDINGS_EXTENSION) + AC_SUBST(OMPI_F08_BINDINGS_TS_SUFFIX) + # Somewhat redundant because ompi/Makefile.am won't traverse into # ompi/mpi/fortran/use-mpi-f08 if it's not to be built, but we # might as well have ompi/mpi/fortran/use-mpi-f08/Makefile.am be diff --git a/docs/news/news-v5.0.x.rst b/docs/news/news-v5.0.x.rst index cfa06bee38d..fdaaae50226 100644 --- a/docs/news/news-v5.0.x.rst +++ b/docs/news/news-v5.0.x.rst @@ -4,9 +4,9 @@ Open MPI v5.0.x series This file contains all the NEWS updates for the Open MPI v5.0.x series, in reverse chronological order. -Open MPI version 5.0.0rc5 +Open MPI version 5.0.0rc6 ------------------------- -:Date: 07 April 2022 +:Date: 15 April 2022 .. admonition:: MPIR API has been removed :class: warning @@ -40,24 +40,36 @@ Open MPI version 5.0.0rc5 libraries, rather than linked into the Open MPI core libraries. -Changes since rc4: +Changes since rc5: - - Various changes and cleanup to fix, and better support the static building of Open MPI. - The PRRTE submodule pointer has been updated to bring in the following fixes: - - Added silent single-dash to double-dash conversion to the mpirun/mpiexec command - line. This promotes backwards compatibility with the v4.x series. - - Fixed a bug where launch-failure messages from PRRTE would be printed twice. - - Changes to the BTL ``OFI`` component to better support the HPE SS11 network. - - Fixed a compile failure when building with ``UCC`` (``configure --with-ucc=...``). - - Fixed several memory leaks in the ``UCX`` component. - - Fixed a bug where ``autogen.pl --force`` would fail. - - Fixed a large number of warnings when compiling on macOS. - - Fixed two dead links in ``HACKING.md``. Thanks to Lachlan Bell for finding and fixing. - - Updated various documentation to rename ``master`` to ``main`` where relevant. + - Fixed a bug where the deprecated option ``--oversubscribe`` for ``mpirun`` + was not translated correctly to its new equivalent (``--map-by :oversubscribe``). + - Fixed a case where ``--map-by ppr:x:oversubscribe`` would not work correctly. + In this case, ``:oversubscribe`` was effectively ignored. + + - Fixed incorrect behavior with ``MPI_Allreduce()`` when using ``MPI_MAX`` with + the ``MPI_UNSIGNED_LONG`` type. Thanks to Kendra Long for the report and their + contrubution to the fix. + + - Various fixes to the ``openmpi.spec`` file to fix issues with rpm generation. + + - Fixed a bug in one-sided ``UCX`` calls where not all in-flight messages + would be flushed before cleanup. + + - Build fixes - the following builds options with Open MPI were fixed: + + - ``usNIC`` - (``configure --with-usnic=..``) + - ``HCOLL`` - (``configure --with-hcoll=..``) + - ``XPMEM`` - (``configure --with-xpmem=..``). + + - Thanks to Alex Margol for the fix. + + - Various documentation improvements and updates. -- Updated PMIx to ``v4.2`` branch - current hash: ``d3445c8``. -- Updated PRRTE to ``v2.1`` branch - current hash: ``f3828e8``. +- Updated PMIx to the ``v4.2`` branch - current hash: ``7ddb00e``. +- Updated PRRTE to the ``v2.1`` branch - current hash: ``407e8d5``. - New Features: @@ -116,16 +128,19 @@ Changes since rc4: interface matching between peers in order to improve ``MPI_Init()`` wireup performance. + - Changes to the BTL ``OFI`` component to better support the HPE SS11 network. + - Shared Memory: - - The legacy ``sm`` (shared memory) BTL has been removed. - The next-generation shared memory BTL ``vader`` replaces it, - and has been renamed to be ``sm`` (``vader`` will still work as an alias). - - Update the new ``sm`` BTL to not use Linux Cross Memory Attach (CMA) in user namespaces. - - Fixed a crash when using the new ``sm`` BTL when compiled with Linux Cross Memory Attach (``XPMEM``). - Thanks to George Katevenis for reporting this issue. + - The legacy ``sm`` (shared memory) BTL has been removed. + The next-generation shared memory BTL ``vader`` replaces it, + and has been renamed to be ``sm`` (``vader`` will still work as an alias). + - Update the new ``sm`` BTL to not use Linux Cross Memory Attach (CMA) in user namespaces. + - Fixed a crash when using the new ``sm`` BTL when compiled with Linux Cross Memory Attach (``XPMEM``). + Thanks to George Katevenis for reporting this issue. - Updated the ``-mca pml`` option to only accept one pml, not a list. + - Deprecations and removals: - ORTE, the underlying OMPI launcher has been removed, and replaced @@ -145,23 +160,27 @@ Changes since rc4: - ompi/contrib: Removed ``libompitrace``. This library was incomplete and unmaintained. If needed, it is available in the v4/v4.1 series. + - HWLOC updates: - Open MPI now requires HWLOC v1.11.0 or later. - The internal HWLOC shipped with OMPI has been updated to v2.7.1. - Enable --enable-plugins when appropriate. + - Documentation updates and improvements: - Open MPI now uses readthedocs.io for all documentation. - Converted man pages to markdown. Thanks to Fangcong Yin for their contribution to this effort. - - Various ``README.md`` fixes - thanks to: Yixin Zhang, Samuel Cho, - Robert Langfield, Alex Ross, Sophia Fang, mitchelltopaloglu, Evstrife, - and Hao Tong for their contributions. + - Various ``README.md`` and ``HACKING.md`` fixes - thanks to: Yixin Zhang, Samuel Cho, + Robert Langfield, Alex Ross, Sophia Fang, mitchelltopaloglu, Evstrife, Hao Tong + and Lachlan Bell for their contributions. - Various CUDA documentation fixes. Thanks to Simon Byrne for finding and fixing these typos. + - Build updates and fixes: + - Various changes and cleanup to fix, and better support the static building of Open MPI. - Change the default component build behavior to prefer building components as part of the core Open MPI library instead of individual DSOs. Currently, this means the Open SHMEM layer will only build if @@ -187,6 +206,7 @@ Changes since rc4: due to a missing header inclusion. Thanks to Sylvain Didelot for finding and fixing this issue. - Add support for GNU Autoconf v2.7.x. + - Other updates and bug fixes: - Updated Open MPI to use ``ROMIO`` v3.4.1. diff --git a/ompi/Makefile.am b/ompi/Makefile.am index 8ebbd66c0c1..09cdbfe4024 100644 --- a/ompi/Makefile.am +++ b/ompi/Makefile.am @@ -88,6 +88,7 @@ SUBDIRS = \ mpi/fortran/use-mpi-f08/base \ mpi/fortran/use-mpi-f08/mod \ mpi/fortran/use-mpi-f08/bindings \ + mpi/fortran/use-mpi-f08/ts \ $(OMPI_MPIEXT_USEMPIF08_DIRS) \ mpi/fortran/use-mpi-f08 \ mpi/fortran/mpiext-use-mpi-f08 \ @@ -120,6 +121,7 @@ DIST_SUBDIRS = \ mpi/fortran/use-mpi-f08/base \ mpi/fortran/use-mpi-f08/mod \ mpi/fortran/use-mpi-f08/bindings \ + mpi/fortran/use-mpi-f08/ts \ mpi/fortran/mpiext-use-mpi-f08 \ mpi/java \ $(OMPI_MPIEXT_ALL_SUBDIRS) \ diff --git a/ompi/include/Makefile.am b/ompi/include/Makefile.am index 222ec75bbbc..bf71d8fbd5b 100644 --- a/ompi/include/Makefile.am +++ b/ompi/include/Makefile.am @@ -41,7 +41,8 @@ include_HEADERS += \ mpif-handles.h \ mpif-io-constants.h \ mpif-io-handles.h \ - mpif-sentinels.h + mpif-sentinels.h \ + mpif-subarrays-config.h endif diff --git a/ompi/include/mpif-config.h.in b/ompi/include/mpif-config.h.in index fc2054df637..5c3c1590e7c 100644 --- a/ompi/include/mpif-config.h.in +++ b/ompi/include/mpif-config.h.in @@ -15,6 +15,8 @@ ! reserved. ! Copyright (c) 2019 Triad National Security, LLC. All rights ! reserved. +! Copyright (c) 2019 Research Organization for Information Science +! and Technology (RIST). All rights reserved. ! $COPYRIGHT$ ! ! Additional copyrights may follow @@ -74,14 +76,3 @@ parameter (MPI_MAX_DATAREP_STRING=@OPAL_MAX_DATAREP_STRING@-1) parameter (MPI_MAX_PSET_NAME_LEN=@OPAL_MAX_PSET_NAME_LEN@-1) parameter (MPI_MAX_STRINGTAG_LEN=@OPAL_MAX_STRINGTAG_LEN@-1) - -! -! MPI F08 conformance -! - logical MPI_SUBARRAYS_SUPPORTED - logical MPI_ASYNC_PROTECTS_NONBLOCKING - ! Hard-coded for .false. for now - parameter (MPI_SUBARRAYS_SUPPORTED= .false.) - ! Hard-coded for .false. for now - parameter (MPI_ASYNC_PROTECTS_NONBLOCKING = .false.) - diff --git a/ompi/include/mpif-subarrays-config.h b/ompi/include/mpif-subarrays-config.h new file mode 100644 index 00000000000..f1ac870417a --- /dev/null +++ b/ompi/include/mpif-subarrays-config.h @@ -0,0 +1,19 @@ +! -*- fortran -*- +! +! Copyright (c) 2019 Research Organization for Information Science +! and Technology (RIST). All rights reserved. +! $COPYRIGHT$ +! +! Additional copyrights may follow +! +! $HEADER$ +! + +! +! MPI F08 conformance +! + logical MPI_SUBARRAYS_SUPPORTED + logical MPI_ASYNC_PROTECTS_NONBLOCKING + parameter (MPI_SUBARRAYS_SUPPORTED= .FALSE.) + parameter (MPI_ASYNC_PROTECTS_NONBLOCKING = .FALSE.) + diff --git a/ompi/include/mpif.h.in b/ompi/include/mpif.h.in index d4cbd138325..6e5124a517e 100644 --- a/ompi/include/mpif.h.in +++ b/ompi/include/mpif.h.in @@ -11,8 +11,8 @@ ! 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 (c) 2017 Research Organization for Information Science -! and Technology (RIST). All rights reserved. +! Copyright (c) 2017-2019 Research Organization for Information Science +! and Technology (RIST). All rights reserved. ! $COPYRIGHT$ ! ! Additional copyrights may follow @@ -54,6 +54,7 @@ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! include 'mpif-config.h' + include 'mpif-subarrays-config.h' include 'mpif-constants.h' include 'mpif-handles.h' include 'mpif-io-constants.h' diff --git a/ompi/mpi/fortran/base/fint_2_int.h b/ompi/mpi/fortran/base/fint_2_int.h index 44ce1289567..03415fe6da1 100644 --- a/ompi/mpi/fortran/base/fint_2_int.h +++ b/ompi/mpi/fortran/base/fint_2_int.h @@ -47,9 +47,10 @@ #define OMPI_SINGLE_FINT_2_INT(in) #define OMPI_SINGLE_INT_2_FINT(in) #define OMPI_ARRAY_INT_2_FINT(in, n) + #define OMPI_COND_STATEMENT(a) #elif OMPI_SIZEOF_FORTRAN_INTEGER > SIZEOF_INT - #define OMPI_ARRAY_NAME_DECL(a) int *c_##a + #define OMPI_ARRAY_NAME_DECL(a) int *c_##a = NULL #define OMPI_2_DIM_ARRAY_NAME_DECL(a, dim2) int (*c_##a)[dim2], dim2_index #define OMPI_SINGLE_NAME_DECL(a) int c_##a #define OMPI_ARRAY_NAME_CONVERT(a) c_##a @@ -86,7 +87,8 @@ /* This is for IN parameters. Does only free */ #define OMPI_ARRAY_FINT_2_INT_CLEANUP(in) \ - free(OMPI_ARRAY_NAME_CONVERT(in)) + if (NULL != OMPI_ARRAY_NAME_CONVERT(in)) \ + free(OMPI_ARRAY_NAME_CONVERT(in)) /* This is for single IN parameter */ #define OMPI_SINGLE_FINT_2_INT(in) \ @@ -105,8 +107,10 @@ } \ free(OMPI_ARRAY_NAME_CONVERT(in)); \ } while (0) + + #define OMPI_COND_STATEMENT(a) a #else /* int > MPI_Fint */ - #define OMPI_ARRAY_NAME_DECL(a) int *c_##a + #define OMPI_ARRAY_NAME_DECL(a) int *c_##a = NULL #define OMPI_2_DIM_ARRAY_NAME_DECL(a, dim2) int (*c_##a)[dim2], dim2_index #define OMPI_SINGLE_NAME_DECL(a) int c_##a #define OMPI_ARRAY_NAME_CONVERT(a) c_##a @@ -140,7 +144,8 @@ } while (0) #define OMPI_ARRAY_FINT_2_INT_CLEANUP(in) \ - free(OMPI_ARRAY_NAME_CONVERT(in)) + if (NULL != OMPI_ARRAY_NAME_CONVERT(in)) \ + free(OMPI_ARRAY_NAME_CONVERT(in)) #define OMPI_SINGLE_FINT_2_INT(in) \ OMPI_ARRAY_NAME_CONVERT(in) = *(in) @@ -157,6 +162,7 @@ free(OMPI_ARRAY_NAME_CONVERT(in)); \ } while (0) + #define OMPI_COND_STATEMENT(a) a #endif /* diff --git a/ompi/mpi/fortran/configure-fortran-output.h.in b/ompi/mpi/fortran/configure-fortran-output.h.in index 2c96d83a2b6..740fa9bd2c2 100644 --- a/ompi/mpi/fortran/configure-fortran-output.h.in +++ b/ompi/mpi/fortran/configure-fortran-output.h.in @@ -43,6 +43,22 @@ ! Line 2 of the ignore TKR syntax #define OMPI_FORTRAN_IGNORE_TKR_TYPE @OMPI_FORTRAN_IGNORE_TKR_TYPE@ +! The Fortran ISO C type type(*), dimension(..) is not (yet) supported by all compilers. +! If it is supported, OMPI_F08_IGNORE_TKR_TYPE will be type(*), dimension(..). +! Otherwise, it will be the same value as OMPI_FORTRAN_IGNORE_TKR_TYPE. +#define OMPI_F08_IGNORE_TKR_TYPE @OMPI_F08_IGNORE_TKR_TYPE@ + +! If the Fortran compiler supports type(*), dimension(..), this macro will be "_desc" +! so that the F08 descriptor-enabled Open MPI Fortran back-end functions are invoked. +! Otherwise, it will be "_f" so that the non-F08-descriptor Open MPI Fortran back-end functions are invoked. +#define OMPI_F08_BINDINGS_EXTENSION @OMPI_F08_BINDINGS_EXTENSION@ + +! If the Fortran compiler supports type(*), dimension(..), this macro will be empty +! (i.e., we do not want to ignore the TKR of the buf parameter). +! Otherwise, it will be set to !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf so that the GCC compiler +! (and related compilers, such as the Intel compiler) will ignore the TKR of the buf dummy argument. + +#define OMPI_F08_GCC_ATTRIBUTES(buf) @OMPI_F08_GCC_ATTRIBUTES@ #define OMPI_FORTRAN_BUILD_SIZEOF @OMPI_FORTRAN_BUILD_SIZEOF@ ! Integers diff --git a/ompi/mpi/fortran/use-mpi-f08/Makefile.am b/ompi/mpi/fortran/use-mpi-f08/Makefile.am index 95f449ffc34..a5ece6bfc6d 100644 --- a/ompi/mpi/fortran/use-mpi-f08/Makefile.am +++ b/ompi/mpi/fortran/use-mpi-f08/Makefile.am @@ -37,14 +37,14 @@ AM_CPPFLAGS = # MPI bindings. if OMPI_BUILD_FORTRAN_USEMPIF08_BINDINGS -AM_FCFLAGS = -I$(top_srcdir)/ompi/mpi/fortran/use-mpi-f08/mod \ - -I$(top_builddir)/ompi/include \ +AM_FCFLAGS = -I$(top_builddir)/ompi/include \ -I$(top_srcdir)/ompi/include \ $(OMPI_FC_MODULE_FLAG)$(top_builddir)/ompi/mpi/fortran/use-mpi \ $(OMPI_FC_MODULE_FLAG)$(top_builddir)/ompi/$(OMPI_FORTRAN_USEMPI_DIR) \ $(OMPI_FC_MODULE_FLAG)mod \ $(OMPI_FC_MODULE_FLAG)bindings \ - -I$(top_srcdir) -I$(top_builddir) $(FCFLAGS_f90) \ + $(OMPI_FC_MODULE_FLAG)ts \ + -I$(top_srcdir) $(FCFLAGS_f90) \ -DOMPI_BUILD_MPI_PROFILING=0 MOSTLYCLEANFILES = *.mod @@ -540,6 +540,14 @@ lib@OMPI_LIBMPI_NAME@_usempif08_la_LIBADD = \ lib@OMPI_LIBMPI_NAME@_usempif08_la_DEPENDENCIES = $(module_sentinel_files) lib@OMPI_LIBMPI_NAME@_usempif08_la_LDFLAGS = -version-info $(libmpi_usempif08_so_version) +if OMPI_FORTRAN_HAVE_TS +lib@OMPI_LIBMPI_NAME@_usempif08_la_LIBADD += \ + ts/libusempif08_ts.la + +lib@OMPI_LIBMPI_NAME@_usempif08_la_DEPENDENCIES += \ + ts/libusempif08_ts.la +endif + # # Automake doesn't do Fortran dependency analysis, so must list them # manually here. Bummer! diff --git a/ompi/mpi/fortran/use-mpi-f08/accumulate_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/accumulate_f08.F90 index cf5f9ada671..913407ffaba 100644 --- a/ompi/mpi/fortran/use-mpi-f08/accumulate_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/accumulate_f08.F90 @@ -17,7 +17,7 @@ subroutine MPI_Accumulate_f08(origin_addr,origin_count,origin_datatype,& use :: mpi_f08_types, only : MPI_Datatype, MPI_Op, MPI_Win, MPI_ADDRESS_KIND use :: ompi_mpifh_bindings, only : ompi_accumulate_f implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: origin_addr + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: origin_addr INTEGER, INTENT(IN) :: origin_count, target_rank, target_count TYPE(MPI_Datatype), INTENT(IN) :: origin_datatype INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: target_disp diff --git a/ompi/mpi/fortran/use-mpi-f08/allgather_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/allgather_f08.F90 index ed2aefbad59..6df8ecdf630 100644 --- a/ompi/mpi/fortran/use-mpi-f08/allgather_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/allgather_f08.F90 @@ -15,8 +15,8 @@ subroutine MPI_Allgather_f08(sendbuf,sendcount,sendtype,recvbuf,recvcount,recvty use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm use :: ompi_mpifh_bindings, only : ompi_allgather_f implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE :: recvbuf INTEGER, INTENT(IN) :: sendcount, recvcount TYPE(MPI_Datatype), INTENT(IN) :: sendtype TYPE(MPI_Datatype), INTENT(IN) :: recvtype diff --git a/ompi/mpi/fortran/use-mpi-f08/allgatherv_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/allgatherv_f08.F90 index 260b89a986b..afb8bad3392 100644 --- a/ompi/mpi/fortran/use-mpi-f08/allgatherv_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/allgatherv_f08.F90 @@ -16,8 +16,8 @@ subroutine MPI_Allgatherv_f08(sendbuf,sendcount,sendtype,recvbuf,recvcounts,& use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm use :: ompi_mpifh_bindings, only : ompi_allgatherv_f implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE :: recvbuf INTEGER, INTENT(IN) :: sendcount INTEGER, INTENT(IN) :: recvcounts(*), displs(*) TYPE(MPI_Datatype), INTENT(IN) :: sendtype diff --git a/ompi/mpi/fortran/use-mpi-f08/allreduce_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/allreduce_f08.F90 index 0e98b9e171a..a8ee0f884c7 100644 --- a/ompi/mpi/fortran/use-mpi-f08/allreduce_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/allreduce_f08.F90 @@ -15,8 +15,8 @@ subroutine MPI_Allreduce_f08(sendbuf,recvbuf,count,datatype,op,comm,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Op, MPI_Comm use :: ompi_mpifh_bindings, only : ompi_allreduce_f implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE :: recvbuf INTEGER, INTENT(IN) :: count TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Op), INTENT(IN) :: op diff --git a/ompi/mpi/fortran/use-mpi-f08/alltoall_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/alltoall_f08.F90 index f201dd2f769..8b51b0dcabe 100644 --- a/ompi/mpi/fortran/use-mpi-f08/alltoall_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/alltoall_f08.F90 @@ -16,8 +16,8 @@ subroutine MPI_Alltoall_f08(sendbuf,sendcount,sendtype,recvbuf,& use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm use :: ompi_mpifh_bindings, only : ompi_alltoall_f implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE :: recvbuf INTEGER, INTENT(IN) :: sendcount, recvcount TYPE(MPI_Datatype), INTENT(IN) :: sendtype TYPE(MPI_Datatype), INTENT(IN) :: recvtype diff --git a/ompi/mpi/fortran/use-mpi-f08/alltoallv_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/alltoallv_f08.F90 index 0acf0fd03a5..874e697cac0 100644 --- a/ompi/mpi/fortran/use-mpi-f08/alltoallv_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/alltoallv_f08.F90 @@ -16,8 +16,8 @@ subroutine MPI_Alltoallv_f08(sendbuf,sendcounts,sdispls,sendtype,recvbuf,& use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm use :: ompi_mpifh_bindings, only : ompi_alltoallv_f implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE :: recvbuf INTEGER, INTENT(IN) :: sendcounts(*), sdispls(*), recvcounts(*), rdispls(*) TYPE(MPI_Datatype), INTENT(IN) :: sendtype TYPE(MPI_Datatype), INTENT(IN) :: recvtype diff --git a/ompi/mpi/fortran/use-mpi-f08/alltoallw_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/alltoallw_f08.F90 index f63ac4842f7..7dd27b7e5f7 100644 --- a/ompi/mpi/fortran/use-mpi-f08/alltoallw_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/alltoallw_f08.F90 @@ -16,8 +16,8 @@ subroutine MPI_Alltoallw_f08(sendbuf,sendcounts,sdispls,sendtypes,& use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm use :: ompi_mpifh_bindings, only : ompi_alltoallw_f implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE :: recvbuf INTEGER, INTENT(IN) :: sendcounts(*), sdispls(*), recvcounts(*), rdispls(*) TYPE(MPI_Datatype), INTENT(IN) :: sendtypes(*) TYPE(MPI_Datatype), INTENT(IN) :: recvtypes(*) diff --git a/ompi/mpi/fortran/use-mpi-f08/bcast_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/bcast_f08.F90 index 1a5e5001411..401825a7ece 100644 --- a/ompi/mpi/fortran/use-mpi-f08/bcast_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/bcast_f08.F90 @@ -16,7 +16,7 @@ subroutine MPI_Bcast_f08(buffer,count,datatype,root,comm,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm use :: ompi_mpifh_bindings, only : ompi_bcast_f implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE :: buffer + OMPI_F08_IGNORE_TKR_TYPE :: buffer INTEGER, INTENT(IN) :: count, root TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Comm), INTENT(IN) :: comm diff --git a/ompi/mpi/fortran/use-mpi-f08/bindings/mpi-f-interfaces-bind.h b/ompi/mpi/fortran/use-mpi-f08/bindings/mpi-f-interfaces-bind.h.in similarity index 87% rename from ompi/mpi/fortran/use-mpi-f08/bindings/mpi-f-interfaces-bind.h rename to ompi/mpi/fortran/use-mpi-f08/bindings/mpi-f-interfaces-bind.h.in index 668ec44e9c8..978fde2ce3e 100644 --- a/ompi/mpi/fortran/use-mpi-f08/bindings/mpi-f-interfaces-bind.h +++ b/ompi/mpi/fortran/use-mpi-f08/bindings/mpi-f-interfaces-bind.h.in @@ -170,9 +170,9 @@ interface subroutine ompi_bsend_f(buf,count,datatype,dest,tag,comm,ierror) & - BIND(C, name="ompi_bsend_f") + BIND(C, name="ompi_bsend_@OMPI_F08_BINDINGS_EXTENSION@") implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: buf INTEGER, INTENT(IN) :: count, dest, tag INTEGER, INTENT(IN) :: datatype INTEGER, INTENT(IN) :: comm @@ -180,9 +180,9 @@ subroutine ompi_bsend_f(buf,count,datatype,dest,tag,comm,ierror) & end subroutine ompi_bsend_f subroutine ompi_bsend_init_f(buf,count,datatype,dest,tag,comm,request,ierror) & - BIND(C, name="ompi_bsend_init_f") + BIND(C, name="ompi_bsend_init_@OMPI_F08_BINDINGS_EXTENSION@") implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: buf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: buf INTEGER, INTENT(IN) :: count, dest, tag INTEGER, INTENT(IN) :: datatype INTEGER, INTENT(IN) :: comm @@ -191,9 +191,9 @@ subroutine ompi_bsend_init_f(buf,count,datatype,dest,tag,comm,request,ierror) & end subroutine ompi_bsend_init_f subroutine ompi_buffer_attach_f(buffer,size,ierror) & - BIND(C, name="ompi_buffer_attach_f") + BIND(C, name="ompi_buffer_attach_@OMPI_F08_BINDINGS_EXTENSION@") implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: buffer + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: buffer INTEGER, INTENT(IN) :: size INTEGER, INTENT(OUT) :: ierror end subroutine ompi_buffer_attach_f @@ -228,9 +228,9 @@ subroutine ompi_get_count_f(status,datatype,count,ierror) & end subroutine ompi_get_count_f subroutine ompi_ibsend_f(buf,count,datatype,dest,tag,comm,request,ierror) & - BIND(C, name="ompi_ibsend_f") + BIND(C, name="ompi_ibsend_@OMPI_F08_BINDINGS_EXTENSION@") implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: buf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: buf INTEGER, INTENT(IN) :: count, dest, tag INTEGER, INTENT(IN) :: datatype INTEGER, INTENT(IN) :: comm @@ -239,9 +239,9 @@ subroutine ompi_ibsend_f(buf,count,datatype,dest,tag,comm,request,ierror) & end subroutine ompi_ibsend_f subroutine ompi_irecv_f(buf,count,datatype,source,tag,comm,request,ierror) & - BIND(C, name="ompi_irecv_f") + BIND(C, name="ompi_irecv_@OMPI_F08_BINDINGS_EXTENSION@") implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: buf + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: buf INTEGER, INTENT(IN) :: count, source, tag INTEGER, INTENT(IN) :: datatype INTEGER, INTENT(IN) :: comm @@ -250,9 +250,9 @@ subroutine ompi_irecv_f(buf,count,datatype,source,tag,comm,request,ierror) & end subroutine ompi_irecv_f subroutine ompi_irsend_f(buf,count,datatype,dest,tag,comm,request,ierror) & - BIND(C, name="ompi_irsend_f") + BIND(C, name="ompi_irsend_@OMPI_F08_BINDINGS_EXTENSION@") implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: buf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: buf INTEGER, INTENT(IN) :: count, dest, tag INTEGER, INTENT(IN) :: datatype INTEGER, INTENT(IN) :: comm @@ -261,9 +261,9 @@ subroutine ompi_irsend_f(buf,count,datatype,dest,tag,comm,request,ierror) & end subroutine ompi_irsend_f subroutine ompi_isend_f(buf,count,datatype,dest,tag,comm,request,ierror) & - BIND(C, name="ompi_isend_f") + BIND(C, name="ompi_isend_@OMPI_F08_BINDINGS_EXTENSION@") implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: buf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: buf INTEGER, INTENT(IN) :: count, dest, tag INTEGER, INTENT(IN) :: datatype INTEGER, INTENT(IN) :: comm @@ -275,8 +275,8 @@ subroutine ompi_isendrecv_f(sendbuf,sendcount,sendtype,dest,sendtag,recvbuf, & recvcount,recvtype,source,recvtag,comm,request,ierror) & BIND(C, name="ompi_isendrecv_f") implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE :: recvbuf INTEGER, INTENT(IN) :: sendcount, dest, sendtag, recvcount, source, recvtag INTEGER, INTENT(IN) :: sendtype INTEGER, INTENT(IN) :: recvtype @@ -289,7 +289,7 @@ subroutine ompi_isendrecv_replace_f(buf,count,datatype,dest,sendtag,source, & recvtag,comm,request,ierror) & BIND(C, name="ompi_isendrecv_replace_f") implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE :: buf + OMPI_F08_IGNORE_TKR_TYPE :: buf INTEGER, INTENT(IN) :: count, dest, sendtag, source, recvtag INTEGER, INTENT(IN) :: datatype INTEGER, INTENT(IN) :: comm @@ -298,9 +298,9 @@ subroutine ompi_isendrecv_replace_f(buf,count,datatype,dest,sendtag,source, & end subroutine ompi_isendrecv_replace_f subroutine ompi_issend_f(buf,count,datatype,dest,tag,comm,request,ierror) & - BIND(C, name="ompi_issend_f") + BIND(C, name="ompi_issend_@OMPI_F08_BINDINGS_EXTENSION@") implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: buf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: buf INTEGER, INTENT(IN) :: count, dest, tag INTEGER, INTENT(IN) :: datatype INTEGER, INTENT(IN) :: comm @@ -311,7 +311,7 @@ end subroutine ompi_issend_f subroutine ompi_psend_init_f(buf,partitions,count,datatype,dest,tag,comm,info,request,ierror) & BIND(C, name="ompi_psend_init_f") implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: buf INTEGER, INTENT(IN) :: partitions, count, dest, tag INTEGER, INTENT(IN) :: datatype INTEGER, INTENT(IN) :: comm @@ -323,7 +323,7 @@ end subroutine ompi_psend_init_f subroutine ompi_precv_init_f(buf,partitions,count,datatype,dest,tag,comm,info,request,ierror) & BIND(C, name="ompi_precv_init_f") implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: buf INTEGER, INTENT(IN) :: partitions, count, dest, tag INTEGER, INTENT(IN) :: datatype INTEGER, INTENT(IN) :: comm @@ -368,10 +368,10 @@ subroutine ompi_probe_f(source,tag,comm,status,ierror) & end subroutine ompi_probe_f subroutine ompi_recv_f(buf,count,datatype,source,tag,comm,status,ierror) & - BIND(C, name="ompi_recv_f") + BIND(C, name="ompi_recv_@OMPI_F08_BINDINGS_EXTENSION@") use :: mpi_f08_types, only : MPI_Status implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE :: buf + OMPI_F08_IGNORE_TKR_TYPE :: buf INTEGER, INTENT(IN) :: count, source, tag INTEGER, INTENT(IN) :: datatype INTEGER, INTENT(IN) :: comm @@ -380,9 +380,9 @@ subroutine ompi_recv_f(buf,count,datatype,source,tag,comm,status,ierror) & end subroutine ompi_recv_f subroutine ompi_recv_init_f(buf,count,datatype,source,tag,comm,request,ierror) & - BIND(C, name="ompi_recv_init_f") + BIND(C, name="ompi_recv_init_@OMPI_F08_BINDINGS_EXTENSION@") implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: buf + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: buf INTEGER, INTENT(IN) :: count, source, tag INTEGER, INTENT(IN) :: datatype INTEGER, INTENT(IN) :: comm @@ -398,9 +398,9 @@ subroutine ompi_request_free_f(request,ierror) & end subroutine ompi_request_free_f subroutine ompi_rsend_f(buf,count,datatype,dest,tag,comm,ierror) & - BIND(C, name="ompi_rsend_f") + BIND(C, name="ompi_rsend_@OMPI_F08_BINDINGS_EXTENSION@") implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: buf INTEGER, INTENT(IN) :: count, dest, tag INTEGER, INTENT(IN) :: datatype INTEGER, INTENT(IN) :: comm @@ -408,9 +408,9 @@ subroutine ompi_rsend_f(buf,count,datatype,dest,tag,comm,ierror) & end subroutine ompi_rsend_f subroutine ompi_rsend_init_f(buf,count,datatype,dest,tag,comm,request,ierror) & - BIND(C, name="ompi_rsend_init_f") + BIND(C, name="ompi_rsend_init_@OMPI_F08_BINDINGS_EXTENSION@") implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: buf + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: buf INTEGER, INTENT(IN) :: count, dest, tag INTEGER, INTENT(IN) :: datatype INTEGER, INTENT(IN) :: comm @@ -419,9 +419,9 @@ subroutine ompi_rsend_init_f(buf,count,datatype,dest,tag,comm,request,ierror) & end subroutine ompi_rsend_init_f subroutine ompi_send_f(buf,count,datatype,dest,tag,comm,ierror) & - BIND(C, name="ompi_send_f") + BIND(C, name="ompi_send_@OMPI_F08_BINDINGS_EXTENSION@") implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: buf INTEGER, INTENT(IN) :: count, dest, tag INTEGER, INTENT(IN) :: datatype INTEGER, INTENT(IN) :: comm @@ -430,11 +430,11 @@ end subroutine ompi_send_f subroutine ompi_sendrecv_f(sendbuf,sendcount,sendtype,dest,sendtag,recvbuf, & recvcount,recvtype,source,recvtag,comm,status,ierror) & - BIND(C, name="ompi_sendrecv_f") + BIND(C, name="ompi_sendrecv_@OMPI_F08_BINDINGS_EXTENSION@") use :: mpi_f08_types, only : MPI_Status implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE :: recvbuf INTEGER, INTENT(IN) :: sendcount, dest, sendtag, recvcount, source, recvtag INTEGER, INTENT(IN) :: sendtype INTEGER, INTENT(IN) :: recvtype @@ -445,10 +445,10 @@ end subroutine ompi_sendrecv_f subroutine ompi_sendrecv_replace_f(buf,count,datatype,dest,sendtag,source, & recvtag,comm,status,ierror) & - BIND(C, name="ompi_sendrecv_replace_f") + BIND(C, name="ompi_sendrecv_replace_@OMPI_F08_BINDINGS_EXTENSION@") use :: mpi_f08_types, only : MPI_Status implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE :: buf + OMPI_F08_IGNORE_TKR_TYPE :: buf INTEGER, INTENT(IN) :: count, dest, sendtag, source, recvtag INTEGER, INTENT(IN) :: datatype INTEGER, INTENT(IN) :: comm @@ -457,9 +457,9 @@ subroutine ompi_sendrecv_replace_f(buf,count,datatype,dest,sendtag,source, & end subroutine ompi_sendrecv_replace_f subroutine ompi_send_init_f(buf,count,datatype,dest,tag,comm,request,ierror) & - BIND(C, name="ompi_send_init_f") + BIND(C, name="ompi_send_init_@OMPI_F08_BINDINGS_EXTENSION@") implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: buf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: buf INTEGER, INTENT(IN) :: count, dest, tag INTEGER, INTENT(IN) :: datatype INTEGER, INTENT(IN) :: comm @@ -468,9 +468,9 @@ subroutine ompi_send_init_f(buf,count,datatype,dest,tag,comm,request,ierror) & end subroutine ompi_send_init_f subroutine ompi_ssend_f(buf,count,datatype,dest,tag,comm,ierror) & - BIND(C, name="ompi_ssend_f") + BIND(C, name="ompi_ssend_@OMPI_F08_BINDINGS_EXTENSION@") implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: buf INTEGER, INTENT(IN) :: count, dest, tag INTEGER, INTENT(IN) :: datatype INTEGER, INTENT(IN) :: comm @@ -478,9 +478,9 @@ subroutine ompi_ssend_f(buf,count,datatype,dest,tag,comm,ierror) & end subroutine ompi_ssend_f subroutine ompi_ssend_init_f(buf,count,datatype,dest,tag,comm,request,ierror) & - BIND(C, name="ompi_ssend_init_f") + BIND(C, name="ompi_ssend_init_@OMPI_F08_BINDINGS_EXTENSION@") implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: buf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: buf INTEGER, INTENT(IN) :: count, dest, tag INTEGER, INTENT(IN) :: datatype INTEGER, INTENT(IN) :: comm @@ -547,10 +547,10 @@ subroutine ompi_waitsome_f(incount,array_of_requests,outcount, & end subroutine ompi_waitsome_f subroutine ompi_get_address_f(location,address,ierror) & - BIND(C, name="ompi_get_address_f") + BIND(C, name="ompi_get_address_@OMPI_F08_BINDINGS_EXTENSION@") use :: mpi_f08_types, only : MPI_ADDRESS_KIND implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: location + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: location INTEGER(MPI_ADDRESS_KIND), INTENT(OUT) :: address INTEGER, INTENT(OUT) :: ierror end subroutine ompi_get_address_f @@ -577,10 +577,10 @@ end subroutine ompi_get_elements_x_f subroutine ompi_pack_f(inbuf,incount,datatype,outbuf,outsize, & position,comm,ierror) & - BIND(C, name="ompi_pack_f") + BIND(C, name="ompi_pack_@OMPI_F08_BINDINGS_EXTENSION@") implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: inbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE :: outbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: inbuf + OMPI_F08_IGNORE_TKR_TYPE :: outbuf INTEGER, INTENT(IN) :: incount, outsize INTEGER, INTENT(IN) :: datatype INTEGER, INTENT(INOUT) :: position @@ -590,13 +590,13 @@ end subroutine ompi_pack_f subroutine ompi_pack_external_f(datarep,inbuf,incount,datatype, & outbuf,outsize,position,ierror,datarep_len) & - BIND(C, name="ompi_pack_external_f") + BIND(C, name="ompi_pack_external_@OMPI_F08_BINDINGS_EXTENSION@") use, intrinsic :: ISO_C_BINDING, only : C_CHAR use :: mpi_f08_types, only : MPI_ADDRESS_KIND implicit none CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: datarep - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: inbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE :: outbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: inbuf + OMPI_F08_IGNORE_TKR_TYPE :: outbuf INTEGER, INTENT(IN) :: incount INTEGER, INTENT(IN) :: datatype INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: outsize @@ -851,10 +851,10 @@ end subroutine ompi_type_vector_f subroutine ompi_unpack_f(inbuf,insize,position,outbuf,outcount, & datatype,comm,ierror) & - BIND(C, name="ompi_unpack_f") + BIND(C, name="ompi_unpack_@OMPI_F08_BINDINGS_EXTENSION@") implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: inbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE :: outbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: inbuf + OMPI_F08_IGNORE_TKR_TYPE :: outbuf INTEGER, INTENT(IN) :: insize, outcount INTEGER, INTENT(INOUT) :: position INTEGER, INTENT(IN) :: datatype @@ -864,13 +864,13 @@ end subroutine ompi_unpack_f subroutine ompi_unpack_external_f(datarep,inbuf,insize,position, & outbuf,outcount,datatype,ierror,datarep_len) & - BIND(C, name="ompi_unpack_external_f") + BIND(C, name="ompi_unpack_external_@OMPI_F08_BINDINGS_EXTENSION@") use, intrinsic :: ISO_C_BINDING, only : C_CHAR use :: mpi_f08_types, only : MPI_ADDRESS_KIND implicit none CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: datarep - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: inbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE :: outbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: inbuf + OMPI_F08_IGNORE_TKR_TYPE :: outbuf INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: insize INTEGER(MPI_ADDRESS_KIND), INTENT(INOUT) :: position INTEGER, INTENT(IN) :: outcount @@ -881,10 +881,10 @@ end subroutine ompi_unpack_external_f subroutine ompi_allgather_f(sendbuf,sendcount,sendtype,recvbuf, & recvcount,recvtype,comm,ierror) & - BIND(C, name="ompi_allgather_f") + BIND(C, name="ompi_allgather_@OMPI_F08_BINDINGS_EXTENSION@") implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE :: recvbuf INTEGER, INTENT(IN) :: sendcount, recvcount INTEGER, INTENT(IN) :: sendtype INTEGER, INTENT(IN) :: recvtype @@ -893,11 +893,11 @@ subroutine ompi_allgather_f(sendbuf,sendcount,sendtype,recvbuf, & end subroutine ompi_allgather_f subroutine ompi_iallgather_f(sendbuf,sendcount,sendtype,recvbuf, & - recvcount,recvtype,comm,request,ierror) & - BIND(C, name="ompi_iallgather_f") + recvcount,recvtype,comm,request,ierror) & + BIND(C, name="ompi_iallgather_@OMPI_F08_BINDINGS_EXTENSION@") implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf INTEGER, INTENT(IN) :: sendcount, recvcount INTEGER, INTENT(IN) :: sendtype INTEGER, INTENT(IN) :: recvtype @@ -910,8 +910,8 @@ subroutine ompi_allgather_init_f(sendbuf,sendcount,sendtype,recvbuf, & recvcount,recvtype,comm,info,request,ierror) & BIND(C, name="ompi_allgather_init_f") implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf INTEGER, INTENT(IN) :: sendcount, recvcount INTEGER, INTENT(IN) :: sendtype INTEGER, INTENT(IN) :: recvtype @@ -923,10 +923,10 @@ end subroutine ompi_allgather_init_f subroutine ompi_allgatherv_f(sendbuf,sendcount,sendtype,recvbuf, & recvcounts,displs,recvtype,comm,ierror) & - BIND(C, name="ompi_allgatherv_f") + BIND(C, name="ompi_allgatherv_@OMPI_F08_BINDINGS_EXTENSION@") implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE :: recvbuf INTEGER, INTENT(IN) :: sendcount INTEGER, INTENT(IN) :: recvcounts(*), displs(*) INTEGER, INTENT(IN) :: sendtype @@ -937,10 +937,10 @@ end subroutine ompi_allgatherv_f subroutine ompi_iallgatherv_f(sendbuf,sendcount,sendtype,recvbuf, & recvcounts,displs,recvtype,comm,request,ierror) & - BIND(C, name="ompi_iallgatherv_f") + BIND(C, name="ompi_iallgatherv_@OMPI_F08_BINDINGS_EXTENSION@") implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf INTEGER, INTENT(IN) :: sendcount INTEGER, INTENT(IN) OMPI_ASYNCHRONOUS :: recvcounts(*), displs(*) INTEGER, INTENT(IN) :: sendtype @@ -954,8 +954,8 @@ subroutine ompi_allgatherv_init_f(sendbuf,sendcount,sendtype,recvbuf, & recvcounts,displs,recvtype,comm,info,request,ierror) & BIND(C, name="ompi_allgatherv_init_f") implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf INTEGER, INTENT(IN) :: sendcount INTEGER, INTENT(IN) OMPI_ASYNCHRONOUS :: recvcounts(*), displs(*) INTEGER, INTENT(IN) :: sendtype @@ -967,10 +967,10 @@ subroutine ompi_allgatherv_init_f(sendbuf,sendcount,sendtype,recvbuf, & end subroutine ompi_allgatherv_init_f subroutine ompi_allreduce_f(sendbuf,recvbuf,count,datatype,op,comm,ierror) & - BIND(C, name="ompi_allreduce_f") + BIND(C, name="ompi_allreduce_@OMPI_F08_BINDINGS_EXTENSION@") implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE :: recvbuf INTEGER, INTENT(IN) :: count INTEGER, INTENT(IN) :: datatype INTEGER, INTENT(IN) :: op @@ -979,10 +979,10 @@ subroutine ompi_allreduce_f(sendbuf,recvbuf,count,datatype,op,comm,ierror) & end subroutine ompi_allreduce_f subroutine ompi_iallreduce_f(sendbuf,recvbuf,count,datatype,op,comm,request,ierror) & - BIND(C, name="ompi_iallreduce_f") + BIND(C, name="ompi_iallreduce_@OMPI_F08_BINDINGS_EXTENSION@") implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf INTEGER, INTENT(IN) :: count INTEGER, INTENT(IN) :: datatype INTEGER, INTENT(IN) :: op @@ -994,8 +994,8 @@ end subroutine ompi_iallreduce_f subroutine ompi_allreduce_init_f(sendbuf,recvbuf,count,datatype,op,comm,info,request,ierror) & BIND(C, name="ompi_allreduce_init_f") implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf INTEGER, INTENT(IN) :: count INTEGER, INTENT(IN) :: datatype INTEGER, INTENT(IN) :: op @@ -1007,10 +1007,10 @@ end subroutine ompi_allreduce_init_f subroutine ompi_alltoall_f(sendbuf,sendcount,sendtype,recvbuf, & recvcount,recvtype,comm,ierror) & - BIND(C, name="ompi_alltoall_f") + BIND(C, name="ompi_alltoall_@OMPI_F08_BINDINGS_EXTENSION@") implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE :: recvbuf INTEGER, INTENT(IN) :: sendcount, recvcount INTEGER, INTENT(IN) :: sendtype INTEGER, INTENT(IN) :: recvtype @@ -1020,10 +1020,10 @@ end subroutine ompi_alltoall_f subroutine ompi_ialltoall_f(sendbuf,sendcount,sendtype,recvbuf, & recvcount,recvtype,comm,request,ierror) & - BIND(C, name="ompi_ialltoall_f") + BIND(C, name="ompi_ialltoall_@OMPI_F08_BINDINGS_EXTENSION@") implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf INTEGER, INTENT(IN) :: sendcount, recvcount INTEGER, INTENT(IN) :: sendtype INTEGER, INTENT(IN) :: recvtype @@ -1036,8 +1036,8 @@ subroutine ompi_alltoall_init_f(sendbuf,sendcount,sendtype,recvbuf, & recvcount,recvtype,comm,info,request,ierror) & BIND(C, name="ompi_alltoall_init_f") implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf INTEGER, INTENT(IN) :: sendcount, recvcount INTEGER, INTENT(IN) :: sendtype INTEGER, INTENT(IN) :: recvtype @@ -1049,10 +1049,10 @@ end subroutine ompi_alltoall_init_f subroutine ompi_alltoallv_f(sendbuf,sendcounts,sdispls,sendtype, & recvbuf,recvcounts,rdispls,recvtype,comm,ierror) & - BIND(C, name="ompi_alltoallv_f") + BIND(C, name="ompi_alltoallv_@OMPI_F08_BINDINGS_EXTENSION@") implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE :: recvbuf INTEGER, INTENT(IN) :: sendcounts(*), sdispls(*), recvcounts(*), rdispls(*) INTEGER, INTENT(IN) :: sendtype INTEGER, INTENT(IN) :: recvtype @@ -1062,10 +1062,10 @@ end subroutine ompi_alltoallv_f subroutine ompi_ialltoallv_f(sendbuf,sendcounts,sdispls,sendtype, & recvbuf,recvcounts,rdispls,recvtype,comm,request,ierror) & - BIND(C, name="ompi_ialltoallv_f") + BIND(C, name="ompi_ialltoallv_@OMPI_F08_BINDINGS_EXTENSION@") implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf INTEGER, INTENT(IN) OMPI_ASYNCHRONOUS :: sendcounts(*), sdispls(*), recvcounts(*), rdispls(*) INTEGER, INTENT(IN) :: sendtype INTEGER, INTENT(IN) :: recvtype @@ -1078,8 +1078,8 @@ subroutine ompi_alltoallv_init_f(sendbuf,sendcounts,sdispls,sendtype, & recvbuf,recvcounts,rdispls,recvtype,comm,info,request,ierror) & BIND(C, name="ompi_alltoallv_init_f") implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf INTEGER, INTENT(IN) OMPI_ASYNCHRONOUS :: sendcounts(*), sdispls(*), recvcounts(*), rdispls(*) INTEGER, INTENT(IN) :: sendtype INTEGER, INTENT(IN) :: recvtype @@ -1091,10 +1091,10 @@ end subroutine ompi_alltoallv_init_f subroutine ompi_alltoallw_f(sendbuf,sendcounts,sdispls,sendtypes, & recvbuf,recvcounts,rdispls,recvtypes,comm,ierror) & - BIND(C, name="ompi_alltoallw_f") + BIND(C, name="ompi_alltoallw_@OMPI_F08_BINDINGS_EXTENSION@") implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE :: recvbuf INTEGER, INTENT(IN) :: sendcounts(*), sdispls(*), recvcounts(*), rdispls(*) INTEGER, INTENT(IN) :: sendtypes INTEGER, INTENT(IN) :: recvtypes @@ -1104,10 +1104,10 @@ end subroutine ompi_alltoallw_f subroutine ompi_ialltoallw_f(sendbuf,sendcounts,sdispls,sendtypes, & recvbuf,recvcounts,rdispls,recvtypes,comm,request,ierror) & - BIND(C, name="ompi_ialltoallw_f") + BIND(C, name="ompi_ialltoallw_@OMPI_F08_BINDINGS_EXTENSION@") implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf INTEGER, INTENT(IN) OMPI_ASYNCHRONOUS :: sendcounts(*), sdispls(*), recvcounts(*), rdispls(*) INTEGER, INTENT(IN) OMPI_ASYNCHRONOUS :: sendtypes INTEGER, INTENT(IN) OMPI_ASYNCHRONOUS :: recvtypes @@ -1120,8 +1120,8 @@ subroutine ompi_alltoallw_init_f(sendbuf,sendcounts,sdispls,sendtypes, & recvbuf,recvcounts,rdispls,recvtypes,comm,info,request,ierror) & BIND(C, name="ompi_alltoallw_init_f") implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf INTEGER, INTENT(IN) OMPI_ASYNCHRONOUS :: sendcounts(*), sdispls(*), recvcounts(*), rdispls(*) INTEGER, INTENT(IN) OMPI_ASYNCHRONOUS :: sendtypes INTEGER, INTENT(IN) OMPI_ASYNCHRONOUS :: recvtypes @@ -1156,9 +1156,9 @@ subroutine ompi_barrier_init_f(comm,info,request,ierror) & end subroutine ompi_barrier_init_f subroutine ompi_bcast_f(buffer,count,datatype,root,comm,ierror) & - BIND(C, name="ompi_bcast_f") + BIND(C, name="ompi_bcast_@OMPI_F08_BINDINGS_EXTENSION@") implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE :: buffer + OMPI_F08_IGNORE_TKR_TYPE :: buffer INTEGER, INTENT(IN) :: count, root INTEGER, INTENT(IN) :: datatype INTEGER, INTENT(IN) :: comm @@ -1166,9 +1166,9 @@ subroutine ompi_bcast_f(buffer,count,datatype,root,comm,ierror) & end subroutine ompi_bcast_f subroutine ompi_ibcast_f(buffer,count,datatype,root,comm,request,ierror) & - BIND(C, name="ompi_ibcast_f") + BIND(C, name="ompi_ibcast_@OMPI_F08_BINDINGS_EXTENSION@") implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: buffer + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: buffer INTEGER, INTENT(IN) :: count, root INTEGER, INTENT(IN) :: datatype INTEGER, INTENT(IN) :: comm @@ -1179,7 +1179,7 @@ end subroutine ompi_ibcast_f subroutine ompi_bcast_init_f(buffer,count,datatype,root,comm,info,request,ierror) & BIND(C, name="ompi_bcast_init_f") implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: buffer + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: buffer INTEGER, INTENT(IN) :: count, root INTEGER, INTENT(IN) :: datatype INTEGER, INTENT(IN) :: comm @@ -1189,10 +1189,10 @@ subroutine ompi_bcast_init_f(buffer,count,datatype,root,comm,info,request,ierror end subroutine ompi_bcast_init_f subroutine ompi_exscan_f(sendbuf,recvbuf,count,datatype,op,comm,ierror) & - BIND(C, name="ompi_exscan_f") + BIND(C, name="ompi_exscan_@OMPI_F08_BINDINGS_EXTENSION@") implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE :: recvbuf INTEGER, INTENT(IN) :: count INTEGER, INTENT(IN) :: datatype INTEGER, INTENT(IN) :: op @@ -1201,10 +1201,10 @@ subroutine ompi_exscan_f(sendbuf,recvbuf,count,datatype,op,comm,ierror) & end subroutine ompi_exscan_f subroutine ompi_iexscan_f(sendbuf,recvbuf,count,datatype,op,comm,request,ierror) & - BIND(C, name="ompi_iexscan_f") + BIND(C, name="ompi_iexscan_@OMPI_F08_BINDINGS_EXTENSION@") implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf INTEGER, INTENT(IN) :: count INTEGER, INTENT(IN) :: datatype INTEGER, INTENT(IN) :: op @@ -1216,8 +1216,8 @@ end subroutine ompi_iexscan_f subroutine ompi_exscan_init_f(sendbuf,recvbuf,count,datatype,op,comm,info,request,ierror) & BIND(C, name="ompi_exscan_init_f") implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf INTEGER, INTENT(IN) :: count INTEGER, INTENT(IN) :: datatype INTEGER, INTENT(IN) :: op @@ -1229,10 +1229,10 @@ end subroutine ompi_exscan_init_f subroutine ompi_gather_f(sendbuf,sendcount,sendtype,recvbuf, & recvcount,recvtype,root,comm,ierror) & - BIND(C, name="ompi_gather_f") + BIND(C, name="ompi_gather_@OMPI_F08_BINDINGS_EXTENSION@") implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE :: recvbuf INTEGER, INTENT(IN) :: sendcount, recvcount, root INTEGER, INTENT(IN) :: sendtype INTEGER, INTENT(IN) :: recvtype @@ -1242,10 +1242,10 @@ end subroutine ompi_gather_f subroutine ompi_igather_f(sendbuf,sendcount,sendtype,recvbuf, & recvcount,recvtype,root,comm,request,ierror) & - BIND(C, name="ompi_igather_f") + BIND(C, name="ompi_igather_@OMPI_F08_BINDINGS_EXTENSION@") implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf INTEGER, INTENT(IN) :: sendcount, recvcount, root INTEGER, INTENT(IN) :: sendtype INTEGER, INTENT(IN) :: recvtype @@ -1258,8 +1258,8 @@ subroutine ompi_gather_init_f(sendbuf,sendcount,sendtype,recvbuf, & recvcount,recvtype,root,comm,info,request,ierror) & BIND(C, name="ompi_gather_init_f") implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf INTEGER, INTENT(IN) :: sendcount, recvcount, root INTEGER, INTENT(IN) :: sendtype INTEGER, INTENT(IN) :: recvtype @@ -1271,10 +1271,10 @@ end subroutine ompi_gather_init_f subroutine ompi_gatherv_f(sendbuf,sendcount,sendtype,recvbuf, & recvcounts,displs,recvtype,root,comm,ierror) & - BIND(C, name="ompi_gatherv_f") + BIND(C, name="ompi_gatherv_@OMPI_F08_BINDINGS_EXTENSION@") implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE :: recvbuf INTEGER, INTENT(IN) :: sendcount, root INTEGER, INTENT(IN) :: recvcounts(*), displs(*) INTEGER, INTENT(IN) :: sendtype @@ -1285,10 +1285,10 @@ end subroutine ompi_gatherv_f subroutine ompi_igatherv_f(sendbuf,sendcount,sendtype,recvbuf, & recvcounts,displs,recvtype,root,comm,request,ierror) & - BIND(C, name="ompi_igatherv_f") + BIND(C, name="ompi_igatherv_@OMPI_F08_BINDINGS_EXTENSION@") implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf INTEGER, INTENT(IN) :: sendcount, root INTEGER, INTENT(IN) OMPI_ASYNCHRONOUS :: recvcounts(*), displs(*) INTEGER, INTENT(IN) :: sendtype @@ -1302,8 +1302,8 @@ subroutine ompi_gatherv_init_f(sendbuf,sendcount,sendtype,recvbuf, & recvcounts,displs,recvtype,root,comm,info,request,ierror) & BIND(C, name="ompi_gatherv_init_f") implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf INTEGER, INTENT(IN) :: sendcount, root INTEGER, INTENT(IN) OMPI_ASYNCHRONOUS :: recvcounts(*), displs(*) INTEGER, INTENT(IN) :: sendtype @@ -1322,10 +1322,10 @@ subroutine ompi_op_free_f(op,ierror) & end subroutine ompi_op_free_f subroutine ompi_reduce_f(sendbuf,recvbuf,count,datatype,op,root,comm,ierror) & - BIND(C, name="ompi_reduce_f") + BIND(C, name="ompi_reduce_@OMPI_F08_BINDINGS_EXTENSION@") implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE :: recvbuf INTEGER, INTENT(IN) :: count, root INTEGER, INTENT(IN) :: datatype INTEGER, INTENT(IN) :: op @@ -1334,10 +1334,10 @@ subroutine ompi_reduce_f(sendbuf,recvbuf,count,datatype,op,root,comm,ierror) & end subroutine ompi_reduce_f subroutine ompi_ireduce_f(sendbuf,recvbuf,count,datatype,op,root,comm,request,ierror) & - BIND(C, name="ompi_ireduce_f") + BIND(C, name="ompi_ireduce_@OMPI_F08_BINDINGS_EXTENSION@") implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf INTEGER, INTENT(IN) :: count, root INTEGER, INTENT(IN) :: datatype INTEGER, INTENT(IN) :: op @@ -1349,8 +1349,8 @@ end subroutine ompi_ireduce_f subroutine ompi_reduce_init_f(sendbuf,recvbuf,count,datatype,op,root,comm,info,request,ierror) & BIND(C, name="ompi_reduce_init_f") implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf INTEGER, INTENT(IN) :: count, root INTEGER, INTENT(IN) :: datatype INTEGER, INTENT(IN) :: op @@ -1361,10 +1361,10 @@ subroutine ompi_reduce_init_f(sendbuf,recvbuf,count,datatype,op,root,comm,info,r end subroutine ompi_reduce_init_f subroutine ompi_reduce_local_f(inbuf,inoutbuf,count,datatype,op,ierror) & - BIND(C, name="ompi_reduce_local_f") + BIND(C, name="ompi_reduce_local_@OMPI_F08_BINDINGS_EXTENSION@") implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: inbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE :: inoutbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: inbuf + OMPI_F08_IGNORE_TKR_TYPE :: inoutbuf INTEGER, INTENT(IN) :: count INTEGER, INTENT(IN) :: datatype INTEGER, INTENT(IN) :: op @@ -1373,10 +1373,10 @@ end subroutine ompi_reduce_local_f subroutine ompi_reduce_scatter_f(sendbuf,recvbuf,recvcounts, & datatype,op,comm,ierror) & - BIND(C, name="ompi_reduce_scatter_f") + BIND(C, name="ompi_reduce_scatter_@OMPI_F08_BINDINGS_EXTENSION@") implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE :: recvbuf INTEGER, INTENT(IN) :: recvcounts(*) INTEGER, INTENT(IN) :: datatype INTEGER, INTENT(IN) :: op @@ -1386,10 +1386,10 @@ end subroutine ompi_reduce_scatter_f subroutine ompi_ireduce_scatter_f(sendbuf,recvbuf,recvcounts, & datatype,op,comm,request,ierror) & - BIND(C, name="ompi_ireduce_scatter_f") + BIND(C, name="ompi_ireduce_scatter_@OMPI_F08_BINDINGS_EXTENSION@") implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf INTEGER, INTENT(IN) OMPI_ASYNCHRONOUS :: recvcounts(*) INTEGER, INTENT(IN) :: datatype INTEGER, INTENT(IN) :: op @@ -1402,8 +1402,8 @@ subroutine ompi_reduce_scatter_init_f(sendbuf,recvbuf,recvcounts, & datatype,op,comm,info,request,ierror) & BIND(C, name="ompi_reduce_scatter_init_f") implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf INTEGER, INTENT(IN) OMPI_ASYNCHRONOUS :: recvcounts(*) INTEGER, INTENT(IN) :: datatype INTEGER, INTENT(IN) :: op @@ -1415,10 +1415,10 @@ end subroutine ompi_reduce_scatter_init_f subroutine ompi_reduce_scatter_block_f(sendbuf,recvbuf,recvcount, & datatype,op,comm,ierror) & - BIND(C, name="ompi_reduce_scatter_block_f") + BIND(C, name="ompi_reduce_scatter_block_@OMPI_F08_BINDINGS_EXTENSION@") implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE :: recvbuf INTEGER, INTENT(IN) :: recvcount INTEGER, INTENT(IN) :: datatype INTEGER, INTENT(IN) :: op @@ -1428,10 +1428,10 @@ end subroutine ompi_reduce_scatter_block_f subroutine ompi_ireduce_scatter_block_f(sendbuf,recvbuf,recvcount, & datatype,op,comm,request,ierror) & - BIND(C, name="ompi_ireduce_scatter_block_f") + BIND(C, name="ompi_ireduce_scatter_block_@OMPI_F08_BINDINGS_EXTENSION@") implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf INTEGER, INTENT(IN) :: recvcount INTEGER, INTENT(IN) :: datatype INTEGER, INTENT(IN) :: op @@ -1444,8 +1444,8 @@ subroutine ompi_reduce_scatter_block_init_f(sendbuf,recvbuf,recvcount, & datatype,op,comm,info,request,ierror) & BIND(C, name="ompi_reduce_scatter_block_init_f") implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf INTEGER, INTENT(IN) :: recvcount INTEGER, INTENT(IN) :: datatype INTEGER, INTENT(IN) :: op @@ -1456,10 +1456,10 @@ subroutine ompi_reduce_scatter_block_init_f(sendbuf,recvbuf,recvcount, & end subroutine ompi_reduce_scatter_block_init_f subroutine ompi_scan_f(sendbuf,recvbuf,count,datatype,op,comm,ierror) & - BIND(C, name="ompi_scan_f") + BIND(C, name="ompi_scan_@OMPI_F08_BINDINGS_EXTENSION@") implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE :: recvbuf INTEGER, INTENT(IN) :: count INTEGER, INTENT(IN) :: datatype INTEGER, INTENT(IN) :: op @@ -1468,10 +1468,10 @@ subroutine ompi_scan_f(sendbuf,recvbuf,count,datatype,op,comm,ierror) & end subroutine ompi_scan_f subroutine ompi_iscan_f(sendbuf,recvbuf,count,datatype,op,comm,request,ierror) & - BIND(C, name="ompi_iscan_f") + BIND(C, name="ompi_iscan_@OMPI_F08_BINDINGS_EXTENSION@") implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf INTEGER, INTENT(IN) :: count INTEGER, INTENT(IN) :: datatype INTEGER, INTENT(IN) :: op @@ -1483,8 +1483,8 @@ end subroutine ompi_iscan_f subroutine ompi_scan_init_f(sendbuf,recvbuf,count,datatype,op,comm,info,request,ierror) & BIND(C, name="ompi_scan_init_f") implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf INTEGER, INTENT(IN) :: count INTEGER, INTENT(IN) :: datatype INTEGER, INTENT(IN) :: op @@ -1496,10 +1496,10 @@ end subroutine ompi_scan_init_f subroutine ompi_scatter_f(sendbuf,sendcount,sendtype,recvbuf, & recvcount,recvtype,root,comm,ierror) & - BIND(C, name="ompi_scatter_f") + BIND(C, name="ompi_scatter_@OMPI_F08_BINDINGS_EXTENSION@") implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE :: recvbuf INTEGER, INTENT(IN) :: sendcount, recvcount, root INTEGER, INTENT(IN) :: sendtype INTEGER, INTENT(IN) :: recvtype @@ -1509,10 +1509,10 @@ end subroutine ompi_scatter_f subroutine ompi_iscatter_f(sendbuf,sendcount,sendtype,recvbuf, & recvcount,recvtype,root,comm,request,ierror) & - BIND(C, name="ompi_iscatter_f") + BIND(C, name="ompi_iscatter_@OMPI_F08_BINDINGS_EXTENSION@") implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf INTEGER, INTENT(IN) :: sendcount, recvcount, root INTEGER, INTENT(IN) :: sendtype INTEGER, INTENT(IN) :: recvtype @@ -1525,8 +1525,8 @@ subroutine ompi_scatter_init_f(sendbuf,sendcount,sendtype,recvbuf, & recvcount,recvtype,root,comm,info,request,ierror) & BIND(C, name="ompi_scatter_init_f") implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf INTEGER, INTENT(IN) :: sendcount, recvcount, root INTEGER, INTENT(IN) :: sendtype INTEGER, INTENT(IN) :: recvtype @@ -1538,10 +1538,10 @@ end subroutine ompi_scatter_init_f subroutine ompi_scatterv_f(sendbuf,sendcounts,displs,sendtype, & recvbuf,recvcount,recvtype,root,comm,ierror) & - BIND(C, name="ompi_scatterv_f") + BIND(C, name="ompi_scatterv_@OMPI_F08_BINDINGS_EXTENSION@") implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE :: recvbuf INTEGER, INTENT(IN) :: recvcount, root INTEGER, INTENT(IN) :: sendcounts(*), displs(*) INTEGER, INTENT(IN) :: sendtype @@ -1552,10 +1552,10 @@ end subroutine ompi_scatterv_f subroutine ompi_iscatterv_f(sendbuf,sendcounts,displs,sendtype, & recvbuf,recvcount,recvtype,root,comm,request,ierror) & - BIND(C, name="ompi_iscatterv_f") + BIND(C, name="ompi_iscatterv_@OMPI_F08_BINDINGS_EXTENSION@") implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf INTEGER, INTENT(IN) :: recvcount, root INTEGER, INTENT(IN) OMPI_ASYNCHRONOUS :: sendcounts(*), displs(*) @@ -1570,8 +1570,8 @@ subroutine ompi_scatterv_init_f(sendbuf,sendcounts,displs,sendtype, & recvbuf,recvcount,recvtype,root,comm,info,request,ierror) & BIND(C, name="ompi_scatterv_init_f") implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf INTEGER, INTENT(IN) :: recvcount, root INTEGER, INTENT(IN) OMPI_ASYNCHRONOUS :: sendcounts(*), displs(*) INTEGER, INTENT(IN) :: sendtype @@ -2372,9 +2372,9 @@ subroutine ompi_finalize_f(ierror) & end subroutine ompi_finalize_f subroutine ompi_free_mem_f(base,ierror) & - BIND(C, name="ompi_free_mem_f") + BIND(C, name="ompi_free_mem_@OMPI_F08_BINDINGS_EXTENSION@") implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: base + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: base INTEGER, INTENT(OUT) :: ierror end subroutine ompi_free_mem_f @@ -2634,10 +2634,10 @@ end subroutine ompi_unpublish_name_f subroutine ompi_accumulate_f(origin_addr,origin_count,origin_datatype, & target_rank,target_disp, & target_count,target_datatype,op,win,ierror) & - BIND(C, name="ompi_accumulate_f") + BIND(C, name="ompi_accumulate_@OMPI_F08_BINDINGS_EXTENSION@") use :: mpi_f08_types, only : MPI_ADDRESS_KIND implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: origin_addr + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: origin_addr INTEGER, INTENT(IN) :: origin_count, target_rank, target_count INTEGER, INTENT(IN) :: origin_datatype INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: target_disp @@ -2651,10 +2651,10 @@ subroutine ompi_raccumulate_f(origin_addr,origin_count,origin_datatype, & target_rank,target_disp, & target_count,target_datatype,op,win, & request,ierror) & - BIND(C, name="ompi_raccumulate_f") + BIND(C, name="ompi_raccumulate_@OMPI_F08_BINDINGS_EXTENSION@") use :: mpi_f08_types, only : MPI_ADDRESS_KIND implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: origin_addr + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: origin_addr INTEGER, INTENT(IN) :: origin_count, target_rank, target_count INTEGER, INTENT(IN) :: origin_datatype INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: target_disp @@ -2667,10 +2667,10 @@ end subroutine ompi_raccumulate_f subroutine ompi_get_f(origin_addr,origin_count,origin_datatype,target_rank, & target_disp,target_count,target_datatype,win,ierror) & - BIND(C, name="ompi_get_f") + BIND(C, name="ompi_get_@OMPI_F08_BINDINGS_EXTENSION@") use :: mpi_f08_types, only : MPI_ADDRESS_KIND implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: origin_addr + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: origin_addr INTEGER, INTENT(IN) :: origin_count, target_rank, target_count INTEGER, INTENT(IN) :: origin_datatype INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: target_disp @@ -2682,10 +2682,10 @@ end subroutine ompi_get_f subroutine ompi_rget_f(origin_addr,origin_count,origin_datatype,target_rank, & target_disp,target_count,target_datatype,win,request, & ierror) & - BIND(C, name="ompi_rget_f") + BIND(C, name="ompi_rget_@OMPI_F08_BINDINGS_EXTENSION@") use :: mpi_f08_types, only : MPI_ADDRESS_KIND implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: origin_addr + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: origin_addr INTEGER, INTENT(IN) :: origin_count, target_rank, target_count INTEGER, INTENT(IN) :: origin_datatype INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: target_disp @@ -2700,13 +2700,13 @@ subroutine ompi_get_accumulate_f(origin_addr,origin_count,origin_datatype, & target_rank,target_disp, & target_count,target_datatype,op,win, & ierror) & - BIND(C, name="ompi_get_accumulate_f") + BIND(C, name="ompi_get_accumulate_@OMPI_F08_BINDINGS_EXTENSION@") use :: mpi_f08_types, only : MPI_ADDRESS_KIND implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: origin_addr + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: origin_addr INTEGER, INTENT(IN) :: origin_count, result_count, target_rank, target_count INTEGER, INTENT(IN) :: origin_datatype - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: result_addr + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: result_addr INTEGER, INTENT(IN) :: result_datatype INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: target_disp INTEGER, INTENT(IN) :: target_datatype @@ -2720,13 +2720,13 @@ subroutine ompi_rget_accumulate_f(origin_addr,origin_count,origin_datatype, & target_rank,target_disp, & target_count,target_datatype,op,win, & request,ierror) & - BIND(C, name="ompi_rget_accumulate_f") + BIND(C, name="ompi_rget_accumulate_@OMPI_F08_BINDINGS_EXTENSION@") use :: mpi_f08_types, only : MPI_ADDRESS_KIND implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: origin_addr + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: origin_addr INTEGER, INTENT(IN) :: origin_count, result_count, target_rank, target_count INTEGER, INTENT(IN) :: origin_datatype - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: result_addr + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: result_addr INTEGER, INTENT(IN) :: result_datatype INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: target_disp INTEGER, INTENT(IN) :: target_datatype @@ -2738,10 +2738,10 @@ end subroutine ompi_rget_accumulate_f subroutine ompi_put_f(origin_addr,origin_count,origin_datatype,target_rank, & target_disp,target_count,target_datatype,win,ierror) & - BIND(C, name="ompi_put_f") + BIND(C, name="ompi_put_@OMPI_F08_BINDINGS_EXTENSION@") use :: mpi_f08_types, only : MPI_ADDRESS_KIND implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: origin_addr + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: origin_addr INTEGER, INTENT(IN) :: origin_count, target_rank, target_count INTEGER, INTENT(IN) :: origin_datatype INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: target_disp @@ -2753,10 +2753,10 @@ end subroutine ompi_put_f subroutine ompi_rput_f(origin_addr,origin_count,origin_datatype,target_rank, & target_disp,target_count,target_datatype,win,request, & ierror) & - BIND(C, name="ompi_rput_f") + BIND(C, name="ompi_rput_@OMPI_F08_BINDINGS_EXTENSION@") use :: mpi_f08_types, only : MPI_ADDRESS_KIND implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: origin_addr + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: origin_addr INTEGER, INTENT(IN) :: origin_count, target_rank, target_count INTEGER, INTENT(IN) :: origin_datatype INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: target_disp @@ -2776,11 +2776,11 @@ end subroutine ompi_win_complete_f subroutine ompi_compare_and_swap_f(origin_addr,compare_addr,result_addr, & datatype,target_rank,target_disp, win, & ierror) & - BIND(C, name="ompi_compare_and_swap_f") + BIND(C, name="ompi_compare_and_swap_@OMPI_F08_BINDINGS_EXTENSION@") use :: mpi_f08_types, only : MPI_ADDRESS_KIND implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: origin_addr, compare_addr - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: result_addr + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: origin_addr, compare_addr + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: result_addr INTEGER, INTENT(IN) :: datatype INTEGER, INTENT(IN) :: target_rank INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: target_disp @@ -2790,11 +2790,11 @@ end subroutine ompi_compare_and_swap_f subroutine ompi_fetch_and_op_f(origin_addr,result_addr,datatype,target_rank, & target_disp,op,win,ierror) & - BIND(C, name="ompi_fetch_and_op_f") + BIND(C, name="ompi_fetch_and_op_@OMPI_F08_BINDINGS_EXTENSION@") use :: mpi_f08_types, only : MPI_ADDRESS_KIND implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: origin_addr - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: result_addr + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: origin_addr + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: result_addr INTEGER, INTENT(IN) :: datatype INTEGER, INTENT(IN) :: target_rank INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: target_disp @@ -2804,10 +2804,10 @@ subroutine ompi_fetch_and_op_f(origin_addr,result_addr,datatype,target_rank, & end subroutine ompi_fetch_and_op_f subroutine ompi_win_create_f(base,size,disp_unit,info,comm,win,ierror) & - BIND(C, name="ompi_win_create_f") + BIND(C, name="ompi_win_create_@OMPI_F08_BINDINGS_EXTENSION@") use :: mpi_f08_types, only : MPI_ADDRESS_KIND implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: base + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: base INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: size INTEGER, INTENT(IN) :: disp_unit INTEGER, INTENT(IN) :: info @@ -2826,20 +2826,20 @@ subroutine ompi_win_create_dynamic_f(info,comm,win,ierror) & end subroutine ompi_win_create_dynamic_f subroutine ompi_win_attach_f(win,base,size,ierror) & - BIND(C, name="ompi_win_attach_f") + BIND(C, name="ompi_win_attach_@OMPI_F08_BINDINGS_EXTENSION@") use :: mpi_f08_types, only : MPI_ADDRESS_KIND implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: base + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: base INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: size INTEGER, INTENT(IN) :: win INTEGER, INTENT(OUT) :: ierror end subroutine ompi_win_attach_f subroutine ompi_win_detach_f(win,base,ierror) & - BIND(C, name="ompi_win_detach_f") + BIND(C, name="ompi_win_detach_@OMPI_F08_BINDINGS_EXTENSION@") use :: mpi_f08_types, only : MPI_ADDRESS_KIND implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: base + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: base INTEGER, INTENT(IN) :: win INTEGER, INTENT(OUT) :: ierror end subroutine ompi_win_detach_f @@ -3165,10 +3165,10 @@ subroutine ompi_file_get_view_f(fh,disp,etype,filetype,datarep,ierror,datarep_le end subroutine ompi_file_get_view_f subroutine ompi_file_iread_f(fh,buf,count,datatype,request,ierror) & - BIND(C, name="ompi_file_iread_f") + BIND(C, name="ompi_file_iread_@OMPI_F08_BINDINGS_EXTENSION@") implicit none INTEGER, INTENT(IN) :: fh - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: buf + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: buf INTEGER, INTENT(IN) :: count INTEGER, INTENT(IN) :: datatype INTEGER, INTENT(OUT) :: request @@ -3176,12 +3176,12 @@ subroutine ompi_file_iread_f(fh,buf,count,datatype,request,ierror) & end subroutine ompi_file_iread_f subroutine ompi_file_iread_at_f(fh,offset,buf,count,datatype,request,ierror) & - BIND(C, name="ompi_file_iread_at_f") + BIND(C, name="ompi_file_iread_at_@OMPI_F08_BINDINGS_EXTENSION@") use :: mpi_f08_types, only : MPI_OFFSET_KIND implicit none INTEGER, INTENT(IN) :: fh INTEGER(MPI_OFFSET_KIND), INTENT(IN) :: offset - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: buf + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: buf INTEGER, INTENT(IN) :: count INTEGER, INTENT(IN) :: datatype INTEGER, INTENT(OUT) :: request @@ -3189,10 +3189,10 @@ subroutine ompi_file_iread_at_f(fh,offset,buf,count,datatype,request,ierror) & end subroutine ompi_file_iread_at_f subroutine ompi_file_iread_all_f(fh,buf,count,datatype,request,ierror) & - BIND(C, name="ompi_file_iread_all_f") + BIND(C, name="ompi_file_iread_all_@OMPI_F08_BINDINGS_EXTENSION@") implicit none INTEGER, INTENT(IN) :: fh - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: buf + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: buf INTEGER, INTENT(IN) :: count INTEGER, INTENT(IN) :: datatype INTEGER, INTENT(OUT) :: request @@ -3200,12 +3200,12 @@ subroutine ompi_file_iread_all_f(fh,buf,count,datatype,request,ierror) & end subroutine ompi_file_iread_all_f subroutine ompi_file_iread_at_all_f(fh,offset,buf,count,datatype,request,ierror) & - BIND(C, name="ompi_file_iread_at_all_f") + BIND(C, name="ompi_file_iread_at_all_@OMPI_F08_BINDINGS_EXTENSION@") use :: mpi_f08_types, only : MPI_OFFSET_KIND implicit none INTEGER, INTENT(IN) :: fh INTEGER(MPI_OFFSET_KIND), INTENT(IN) :: offset - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: buf + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: buf INTEGER, INTENT(IN) :: count INTEGER, INTENT(IN) :: datatype INTEGER, INTENT(OUT) :: request @@ -3213,10 +3213,10 @@ subroutine ompi_file_iread_at_all_f(fh,offset,buf,count,datatype,request,ierror) end subroutine ompi_file_iread_at_all_f subroutine ompi_file_iread_shared_f(fh,buf,count,datatype,request,ierror) & - BIND(C, name="ompi_file_iread_shared_f") + BIND(C, name="ompi_file_iread_shared_@OMPI_F08_BINDINGS_EXTENSION@") implicit none INTEGER, INTENT(IN) :: fh - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: buf + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: buf INTEGER, INTENT(IN) :: count INTEGER, INTENT(IN) :: datatype INTEGER, INTENT(OUT) :: request @@ -3224,10 +3224,10 @@ subroutine ompi_file_iread_shared_f(fh,buf,count,datatype,request,ierror) & end subroutine ompi_file_iread_shared_f subroutine ompi_file_iwrite_f(fh,buf,count,datatype,request,ierror) & - BIND(C, name="ompi_file_iwrite_f") + BIND(C, name="ompi_file_iwrite_@OMPI_F08_BINDINGS_EXTENSION@") implicit none INTEGER, INTENT(IN) :: fh - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: buf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: buf INTEGER, INTENT(IN) :: count INTEGER, INTENT(IN) :: datatype INTEGER, INTENT(OUT) :: request @@ -3235,12 +3235,12 @@ subroutine ompi_file_iwrite_f(fh,buf,count,datatype,request,ierror) & end subroutine ompi_file_iwrite_f subroutine ompi_file_iwrite_at_f(fh,offset,buf,count,datatype,request,ierror) & - BIND(C, name="ompi_file_iwrite_at_f") + BIND(C, name="ompi_file_iwrite_at_@OMPI_F08_BINDINGS_EXTENSION@") use :: mpi_f08_types, only : MPI_OFFSET_KIND implicit none INTEGER, INTENT(IN) :: fh INTEGER(MPI_OFFSET_KIND), INTENT(IN) :: offset - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: buf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: buf INTEGER, INTENT(IN) :: count INTEGER, INTENT(IN) :: datatype INTEGER, INTENT(OUT) :: request @@ -3248,10 +3248,10 @@ subroutine ompi_file_iwrite_at_f(fh,offset,buf,count,datatype,request,ierror) & end subroutine ompi_file_iwrite_at_f subroutine ompi_file_iwrite_all_f(fh,buf,count,datatype,request,ierror) & - BIND(C, name="ompi_file_iwrite_all_f") + BIND(C, name="ompi_file_iwrite_all_@OMPI_F08_BINDINGS_EXTENSION@") implicit none INTEGER, INTENT(IN) :: fh - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: buf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: buf INTEGER, INTENT(IN) :: count INTEGER, INTENT(IN) :: datatype INTEGER, INTENT(OUT) :: request @@ -3259,12 +3259,12 @@ subroutine ompi_file_iwrite_all_f(fh,buf,count,datatype,request,ierror) & end subroutine ompi_file_iwrite_all_f subroutine ompi_file_iwrite_at_all_f(fh,offset,buf,count,datatype,request,ierror) & - BIND(C, name="ompi_file_iwrite_at_all_f") + BIND(C, name="ompi_file_iwrite_at_all_@OMPI_F08_BINDINGS_EXTENSION@") use :: mpi_f08_types, only : MPI_OFFSET_KIND implicit none INTEGER, INTENT(IN) :: fh INTEGER(MPI_OFFSET_KIND), INTENT(IN) :: offset - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: buf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: buf INTEGER, INTENT(IN) :: count INTEGER, INTENT(IN) :: datatype INTEGER, INTENT(OUT) :: request @@ -3272,9 +3272,9 @@ subroutine ompi_file_iwrite_at_all_f(fh,offset,buf,count,datatype,request,ierror end subroutine ompi_file_iwrite_at_all_f subroutine ompi_file_iwrite_shared_f(fh,buf,count,datatype,request,ierror) & - BIND(C, name="ompi_file_iwrite_shared_f") + BIND(C, name="ompi_file_iwrite_shared_@OMPI_F08_BINDINGS_EXTENSION@") implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: buf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: buf INTEGER, INTENT(IN) :: fh INTEGER, INTENT(IN) :: count INTEGER, INTENT(IN) :: datatype @@ -3305,11 +3305,11 @@ subroutine ompi_file_preallocate_f(fh,size,ierror) & end subroutine ompi_file_preallocate_f subroutine ompi_file_read_f(fh,buf,count,datatype,status,ierror) & - BIND(C, name="ompi_file_read_f") + BIND(C, name="ompi_file_read_@OMPI_F08_BINDINGS_EXTENSION@") use :: mpi_f08_types, only : MPI_Status implicit none INTEGER, INTENT(IN) :: fh - OMPI_FORTRAN_IGNORE_TKR_TYPE :: buf + OMPI_F08_IGNORE_TKR_TYPE :: buf INTEGER, INTENT(IN) :: count INTEGER, INTENT(IN) :: datatype TYPE(MPI_Status) :: status @@ -3317,11 +3317,11 @@ subroutine ompi_file_read_f(fh,buf,count,datatype,status,ierror) & end subroutine ompi_file_read_f subroutine ompi_file_read_all_f(fh,buf,count,datatype,status,ierror) & - BIND(C, name="ompi_file_read_all_f") + BIND(C, name="ompi_file_read_all_@OMPI_F08_BINDINGS_EXTENSION@") use :: mpi_f08_types, only : MPI_Status implicit none INTEGER, INTENT(IN) :: fh - OMPI_FORTRAN_IGNORE_TKR_TYPE :: buf + OMPI_F08_IGNORE_TKR_TYPE :: buf INTEGER, INTENT(IN) :: count INTEGER, INTENT(IN) :: datatype TYPE(MPI_Status) :: status @@ -3329,32 +3329,32 @@ subroutine ompi_file_read_all_f(fh,buf,count,datatype,status,ierror) & end subroutine ompi_file_read_all_f subroutine ompi_file_read_all_begin_f(fh,buf,count,datatype,ierror) & - BIND(C, name="ompi_file_read_all_begin_f") + BIND(C, name="ompi_file_read_all_begin_@OMPI_F08_BINDINGS_EXTENSION@") implicit none INTEGER, INTENT(IN) :: fh - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: buf + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: buf INTEGER, INTENT(IN) :: count INTEGER, INTENT(IN) :: datatype INTEGER, INTENT(OUT) :: ierror end subroutine ompi_file_read_all_begin_f subroutine ompi_file_read_all_end_f(fh,buf,status,ierror) & - BIND(C, name="ompi_file_read_all_end_f") + BIND(C, name="ompi_file_read_all_end_@OMPI_F08_BINDINGS_EXTENSION@") use :: mpi_f08_types, only : MPI_Status implicit none INTEGER, INTENT(IN) :: fh - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: buf - TYPE(MPI_Status) :: status + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: buf + TYPE(MPI_Status), INTENT(OUT) :: status INTEGER, INTENT(OUT) :: ierror end subroutine ompi_file_read_all_end_f subroutine ompi_file_read_at_f(fh,offset,buf,count,datatype,status,ierror) & - BIND(C, name="ompi_file_read_at_f") + BIND(C, name="ompi_file_read_at_@OMPI_F08_BINDINGS_EXTENSION@") use :: mpi_f08_types, only : MPI_Status, MPI_OFFSET_KIND implicit none INTEGER, INTENT(IN) :: fh INTEGER(MPI_OFFSET_KIND), INTENT(IN) :: offset - OMPI_FORTRAN_IGNORE_TKR_TYPE :: buf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: buf INTEGER, INTENT(IN) :: count INTEGER, INTENT(IN) :: datatype TYPE(MPI_Status) :: status @@ -3362,12 +3362,12 @@ subroutine ompi_file_read_at_f(fh,offset,buf,count,datatype,status,ierror) & end subroutine ompi_file_read_at_f subroutine ompi_file_read_at_all_f(fh,offset,buf,count,datatype,status,ierror) & - BIND(C, name="ompi_file_read_at_all_f") + BIND(C, name="ompi_file_read_at_all_@OMPI_F08_BINDINGS_EXTENSION@") use :: mpi_f08_types, only : MPI_Status, MPI_OFFSET_KIND implicit none INTEGER, INTENT(IN) :: fh INTEGER(MPI_OFFSET_KIND), INTENT(IN) :: offset - OMPI_FORTRAN_IGNORE_TKR_TYPE :: buf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: buf INTEGER, INTENT(IN) :: count INTEGER, INTENT(IN) :: datatype TYPE(MPI_Status) :: status @@ -3375,33 +3375,33 @@ subroutine ompi_file_read_at_all_f(fh,offset,buf,count,datatype,status,ierror) & end subroutine ompi_file_read_at_all_f subroutine ompi_file_read_at_all_begin_f(fh,offset,buf,count,datatype,ierror) & - BIND(C, name="ompi_file_read_at_all_begin_f") + BIND(C, name="ompi_file_read_at_all_begin_@OMPI_F08_BINDINGS_EXTENSION@") use :: mpi_f08_types, only : MPI_OFFSET_KIND implicit none INTEGER, INTENT(IN) :: fh INTEGER(MPI_OFFSET_KIND), INTENT(IN) :: offset - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: buf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: buf INTEGER, INTENT(IN) :: count INTEGER, INTENT(IN) :: datatype INTEGER, INTENT(OUT) :: ierror end subroutine ompi_file_read_at_all_begin_f subroutine ompi_file_read_at_all_end_f(fh,buf,status,ierror) & - BIND(C, name="ompi_file_read_at_all_end_f") + BIND(C, name="ompi_file_read_at_all_end_@OMPI_F08_BINDINGS_EXTENSION@") use :: mpi_f08_types, only : MPI_Status implicit none INTEGER, INTENT(IN) :: fh - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: buf - TYPE(MPI_Status) :: status + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: buf + TYPE(MPI_Status), INTENT(OUT) :: status INTEGER, INTENT(OUT) :: ierror end subroutine ompi_file_read_at_all_end_f subroutine ompi_file_read_ordered_f(fh,buf,count,datatype,status,ierror) & - BIND(C, name="ompi_file_read_ordered_f") + BIND(C, name="ompi_file_read_ordered_@OMPI_F08_BINDINGS_EXTENSION@") use :: mpi_f08_types, only : MPI_Status implicit none INTEGER, INTENT(IN) :: fh - OMPI_FORTRAN_IGNORE_TKR_TYPE :: buf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: buf INTEGER, INTENT(IN) :: count INTEGER, INTENT(IN) :: datatype TYPE(MPI_Status) :: status @@ -3409,31 +3409,31 @@ subroutine ompi_file_read_ordered_f(fh,buf,count,datatype,status,ierror) & end subroutine ompi_file_read_ordered_f subroutine ompi_file_read_ordered_begin_f(fh,buf,count,datatype,ierror) & - BIND(C, name="ompi_file_read_ordered_begin_f") + BIND(C, name="ompi_file_read_ordered_begin_@OMPI_F08_BINDINGS_EXTENSION@") implicit none INTEGER, INTENT(IN) :: fh - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: buf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: buf INTEGER, INTENT(IN) :: count INTEGER, INTENT(IN) :: datatype INTEGER, INTENT(OUT) :: ierror end subroutine ompi_file_read_ordered_begin_f subroutine ompi_file_read_ordered_end_f(fh,buf,status,ierror) & - BIND(C, name="ompi_file_read_ordered_end_f") + BIND(C, name="ompi_file_read_ordered_end_@OMPI_F08_BINDINGS_EXTENSION@") use :: mpi_f08_types, only : MPI_Status implicit none INTEGER, INTENT(IN) :: fh - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: buf - TYPE(MPI_Status) :: status + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: buf + TYPE(MPI_Status), INTENT(OUT) :: status INTEGER, INTENT(OUT) :: ierror end subroutine ompi_file_read_ordered_end_f subroutine ompi_file_read_shared_f(fh,buf,count,datatype,status,ierror) & - BIND(C, name="ompi_file_read_shared_f") + BIND(C, name="ompi_file_read_shared_@OMPI_F08_BINDINGS_EXTENSION@") use :: mpi_f08_types, only : MPI_Status implicit none INTEGER, INTENT(IN) :: fh - OMPI_FORTRAN_IGNORE_TKR_TYPE :: buf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: buf INTEGER, INTENT(IN) :: count INTEGER, INTENT(IN) :: datatype TYPE(MPI_Status) :: status @@ -3500,11 +3500,11 @@ subroutine ompi_file_sync_f(fh,ierror) & end subroutine ompi_file_sync_f subroutine ompi_file_write_f(fh,buf,count,datatype,status,ierror) & - BIND(C, name="ompi_file_write_f") + BIND(C, name="ompi_file_write_@OMPI_F08_BINDINGS_EXTENSION@") use :: mpi_f08_types, only : MPI_Status implicit none INTEGER, INTENT(IN) :: fh - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: buf INTEGER, INTENT(IN) :: count INTEGER, INTENT(IN) :: datatype TYPE(MPI_Status) :: status @@ -3512,11 +3512,11 @@ subroutine ompi_file_write_f(fh,buf,count,datatype,status,ierror) & end subroutine ompi_file_write_f subroutine ompi_file_write_all_f(fh,buf,count,datatype,status,ierror) & - BIND(C, name="ompi_file_write_all_f") + BIND(C, name="ompi_file_write_all_@OMPI_F08_BINDINGS_EXTENSION@") use :: mpi_f08_types, only : MPI_Status implicit none INTEGER, INTENT(IN) :: fh - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: buf INTEGER, INTENT(IN) :: count INTEGER, INTENT(IN) :: datatype TYPE(MPI_Status) :: status @@ -3524,32 +3524,32 @@ subroutine ompi_file_write_all_f(fh,buf,count,datatype,status,ierror) & end subroutine ompi_file_write_all_f subroutine ompi_file_write_all_begin_f(fh,buf,count,datatype,ierror) & - BIND(C, name="ompi_file_write_all_begin_f") + BIND(C, name="ompi_file_write_all_begin_@OMPI_F08_BINDINGS_EXTENSION@") implicit none INTEGER, INTENT(IN) :: fh - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: buf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: buf INTEGER, INTENT(IN) :: count INTEGER, INTENT(IN) :: datatype INTEGER, INTENT(OUT) :: ierror end subroutine ompi_file_write_all_begin_f subroutine ompi_file_write_all_end_f(fh,buf,status,ierror) & - BIND(C, name="ompi_file_write_all_end_f") + BIND(C, name="ompi_file_write_all_end_@OMPI_F08_BINDINGS_EXTENSION@") use :: mpi_f08_types, only : MPI_Status implicit none INTEGER, INTENT(IN) :: fh - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: buf - TYPE(MPI_Status) :: status + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: buf + TYPE(MPI_Status), INTENT(OUT) :: status INTEGER, INTENT(OUT) :: ierror end subroutine ompi_file_write_all_end_f subroutine ompi_file_write_at_f(fh,offset,buf,count,datatype,status,ierror) & - BIND(C, name="ompi_file_write_at_f") + BIND(C, name="ompi_file_write_at_@OMPI_F08_BINDINGS_EXTENSION@") use :: mpi_f08_types, only : MPI_Status, MPI_OFFSET_KIND implicit none INTEGER, INTENT(IN) :: fh INTEGER(MPI_OFFSET_KIND), INTENT(IN) :: offset - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: buf INTEGER, INTENT(IN) :: count INTEGER, INTENT(IN) :: datatype TYPE(MPI_Status) :: status @@ -3557,12 +3557,12 @@ subroutine ompi_file_write_at_f(fh,offset,buf,count,datatype,status,ierror) & end subroutine ompi_file_write_at_f subroutine ompi_file_write_at_all_f(fh,offset,buf,count,datatype,status,ierror) & - BIND(C, name="ompi_file_write_at_all_f") + BIND(C, name="ompi_file_write_at_all_@OMPI_F08_BINDINGS_EXTENSION@") use :: mpi_f08_types, only : MPI_Status, MPI_OFFSET_KIND implicit none INTEGER, INTENT(IN) :: fh INTEGER(MPI_OFFSET_KIND), INTENT(IN) :: offset - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: buf INTEGER, INTENT(IN) :: count INTEGER, INTENT(IN) :: datatype TYPE(MPI_Status) :: status @@ -3570,33 +3570,33 @@ subroutine ompi_file_write_at_all_f(fh,offset,buf,count,datatype,status,ierror) end subroutine ompi_file_write_at_all_f subroutine ompi_file_write_at_all_begin_f(fh,offset,buf,count,datatype,ierror) & - BIND(C, name="ompi_file_write_at_all_begin_f") + BIND(C, name="ompi_file_write_at_all_begin_@OMPI_F08_BINDINGS_EXTENSION@") use :: mpi_f08_types, only : MPI_OFFSET_KIND implicit none INTEGER, INTENT(IN) :: fh INTEGER(MPI_OFFSET_KIND), INTENT(IN) :: offset - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: buf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: buf INTEGER, INTENT(IN) :: count INTEGER, INTENT(IN) :: datatype INTEGER, INTENT(OUT) :: ierror end subroutine ompi_file_write_at_all_begin_f subroutine ompi_file_write_at_all_end_f(fh,buf,status,ierror) & - BIND(C, name="ompi_file_write_at_all_end_f") + BIND(C, name="ompi_file_write_at_all_end_@OMPI_F08_BINDINGS_EXTENSION@") use :: mpi_f08_types, only : MPI_Status implicit none INTEGER, INTENT(IN) :: fh - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: buf - TYPE(MPI_Status) :: status + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: buf + TYPE(MPI_Status), INTENT(OUT) :: status INTEGER, INTENT(OUT) :: ierror end subroutine ompi_file_write_at_all_end_f subroutine ompi_file_write_ordered_f(fh,buf,count,datatype,status,ierror) & - BIND(C, name="ompi_file_write_ordered_f") + BIND(C, name="ompi_file_write_ordered_@OMPI_F08_BINDINGS_EXTENSION@") use :: mpi_f08_types, only : MPI_Status implicit none INTEGER, INTENT(IN) :: fh - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: buf INTEGER, INTENT(IN) :: count INTEGER, INTENT(IN) :: datatype TYPE(MPI_Status) :: status @@ -3604,31 +3604,31 @@ subroutine ompi_file_write_ordered_f(fh,buf,count,datatype,status,ierror) & end subroutine ompi_file_write_ordered_f subroutine ompi_file_write_ordered_begin_f(fh,buf,count,datatype,ierror) & - BIND(C, name="ompi_file_write_ordered_begin_f") + BIND(C, name="ompi_file_write_ordered_begin_@OMPI_F08_BINDINGS_EXTENSION@") implicit none INTEGER, INTENT(IN) :: fh - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: buf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: buf INTEGER, INTENT(IN) :: count INTEGER, INTENT(IN) :: datatype INTEGER, INTENT(OUT) :: ierror end subroutine ompi_file_write_ordered_begin_f subroutine ompi_file_write_ordered_end_f(fh,buf,status,ierror) & - BIND(C, name="ompi_file_write_ordered_end_f") + BIND(C, name="ompi_file_write_ordered_end_@OMPI_F08_BINDINGS_EXTENSION@") use :: mpi_f08_types, only : MPI_Status implicit none INTEGER, INTENT(IN) :: fh - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: buf - TYPE(MPI_Status) :: status + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: buf + TYPE(MPI_Status), INTENT(OUT) :: status INTEGER, INTENT(OUT) :: ierror end subroutine ompi_file_write_ordered_end_f subroutine ompi_file_write_shared_f(fh,buf,count,datatype,status,ierror) & - BIND(C, name="ompi_file_write_shared_f") + BIND(C, name="ompi_file_write_shared_@OMPI_F08_BINDINGS_EXTENSION@") use :: mpi_f08_types, only : MPI_Status implicit none INTEGER, INTENT(IN) :: fh - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: buf INTEGER, INTENT(IN) :: count INTEGER, INTENT(IN) :: datatype TYPE(MPI_Status) :: status @@ -3659,7 +3659,7 @@ end subroutine ompi_register_datarep_f !subroutine ompi_sizeof(x,size,ierror) & ! BIND(C, name="ompi_sizeof_f") ! implicit none -! OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: x +! OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: x ! INTEGER, INTENT(OUT) :: size ! INTEGER, INTENT(OUT) :: ierror !end subroutine ompi_sizeof @@ -3719,9 +3719,9 @@ subroutine ompi_comm_split_type_f(comm,split_type,key,info,newcomm,ierror) & end subroutine ompi_comm_split_type_f subroutine ompi_f_sync_reg_f(buf) & - BIND(C, name="ompi_f_sync_reg_f") + BIND(C, name="ompi_f_sync_reg_@OMPI_F08_BINDINGS_EXTENSION@") implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE :: buf + OMPI_F08_IGNORE_TKR_TYPE :: buf end subroutine ompi_f_sync_reg_f subroutine ompi_get_library_version_f(name,resultlen,ierror,name_len) & @@ -3746,9 +3746,9 @@ subroutine ompi_mprobe_f(source,tag,comm,message,status,ierror) & end subroutine ompi_mprobe_f subroutine ompi_imrecv_f(buf,count,datatype,message,request,ierror) & - BIND(C, name="ompi_imrecv_f") + BIND(C, name="ompi_imrecv_@OMPI_F08_BINDINGS_EXTENSION@") implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: buf + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: buf INTEGER, INTENT(IN) :: count INTEGER, INTENT(IN) :: datatype INTEGER, INTENT(INOUT) :: message @@ -3757,10 +3757,10 @@ subroutine ompi_imrecv_f(buf,count,datatype,message,request,ierror) & end subroutine ompi_imrecv_f subroutine ompi_mrecv_f(buf,count,datatype,message,status,ierror) & - BIND(C, name="ompi_mrecv_f") + BIND(C, name="ompi_mrecv_@OMPI_F08_BINDINGS_EXTENSION@") use :: mpi_f08_types, only : MPI_Status implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE :: buf + OMPI_F08_IGNORE_TKR_TYPE :: buf INTEGER, INTENT(IN) :: count INTEGER, INTENT(IN) :: datatype INTEGER, INTENT(INOUT) :: message @@ -3770,11 +3770,11 @@ end subroutine ompi_mrecv_f subroutine ompi_neighbor_allgather_f(sendbuf,sendcount,sendtype,recvbuf,recvcount,recvtype, & comm,ierror) & - BIND(C, name="ompi_neighbor_allgather_f") + BIND(C, name="ompi_neighbor_allgather_@OMPI_F08_BINDINGS_EXTENSION@") use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE :: recvbuf INTEGER, INTENT(IN) :: sendcount, recvcount INTEGER, INTENT(IN) :: sendtype, recvtype INTEGER, INTENT(IN) :: comm @@ -3783,11 +3783,11 @@ end subroutine ompi_neighbor_allgather_f subroutine ompi_ineighbor_allgather_f(sendbuf,sendcount,sendtype,recvbuf,recvcount,recvtype, & comm,request,ierror) & - BIND(C, name="ompi_ineighbor_allgather_f") + BIND(C, name="ompi_ineighbor_allgather_@OMPI_F08_BINDINGS_EXTENSION@") use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf INTEGER, INTENT(IN) :: sendcount, recvcount INTEGER, INTENT(IN) :: sendtype, recvtype INTEGER, INTENT(IN) :: comm @@ -3800,8 +3800,8 @@ subroutine ompi_neighbor_allgather_init_f(sendbuf,sendcount,sendtype,recvbuf,rec BIND(C, name="ompi_neighbor_allgather_init_f") use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE :: recvbuf INTEGER, INTENT(IN) :: sendcount, recvcount INTEGER, INTENT(IN) :: sendtype, recvtype INTEGER, INTENT(IN) :: comm @@ -3812,11 +3812,11 @@ end subroutine ompi_neighbor_allgather_init_f subroutine ompi_neighbor_allgatherv_f(sendbuf,sendcount,sendtype,recvbuf,recvcounts,displs, & recvtype,comm,ierror) & - BIND(C, name="ompi_neighbor_allgatherv_f") + BIND(C, name="ompi_neighbor_allgatherv_@OMPI_F08_BINDINGS_EXTENSION@") use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE :: recvbuf INTEGER, INTENT(IN) :: sendcount INTEGER, INTENT(IN) :: recvcounts(*), displs(*) INTEGER, INTENT(IN) :: sendtype, recvtype @@ -3826,11 +3826,11 @@ end subroutine ompi_neighbor_allgatherv_f subroutine ompi_ineighbor_allgatherv_f(sendbuf,sendcount,sendtype,recvbuf,recvcounts,displs, & recvtype,comm,request,ierror) & - BIND(C, name="ompi_ineighbor_allgatherv_f") + BIND(C, name="ompi_ineighbor_allgatherv_@OMPI_F08_BINDINGS_EXTENSION@") use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf INTEGER, INTENT(IN) :: sendcount INTEGER, INTENT(IN) OMPI_ASYNCHRONOUS :: recvcounts(*), displs(*) INTEGER, INTENT(IN) :: sendtype, recvtype @@ -3844,8 +3844,8 @@ subroutine ompi_neighbor_allgatherv_init_f(sendbuf,sendcount,sendtype,recvbuf,re BIND(C, name="ompi_neighbor_allgatherv_init_f") use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE :: recvbuf INTEGER, INTENT(IN) :: sendcount INTEGER, INTENT(IN) :: recvcounts(*), displs(*) INTEGER, INTENT(IN) :: sendtype, recvtype @@ -3857,11 +3857,11 @@ end subroutine ompi_neighbor_allgatherv_init_f subroutine ompi_neighbor_alltoall_f(sendbuf,sendcount,sendtype,recvbuf,recvcount,recvtype, & comm,ierror) & - BIND(C, name="ompi_neighbor_alltoall_f") + BIND(C, name="ompi_neighbor_alltoall_@OMPI_F08_BINDINGS_EXTENSION@") use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE :: recvbuf INTEGER, INTENT(IN) :: sendcount, recvcount INTEGER, INTENT(IN) :: sendtype, recvtype INTEGER, INTENT(IN) :: comm @@ -3870,11 +3870,11 @@ end subroutine ompi_neighbor_alltoall_f subroutine ompi_ineighbor_alltoall_f(sendbuf,sendcount,sendtype,recvbuf,recvcount,recvtype, & comm,request,ierror) & - BIND(C, name="ompi_ineighbor_alltoall_f") + BIND(C, name="ompi_ineighbor_alltoall_@OMPI_F08_BINDINGS_EXTENSION@") use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf INTEGER, INTENT(IN) :: sendcount, recvcount INTEGER, INTENT(IN) :: sendtype, recvtype INTEGER, INTENT(IN) :: comm @@ -3887,8 +3887,8 @@ subroutine ompi_neighbor_alltoall_init_f(sendbuf,sendcount,sendtype,recvbuf,recv BIND(C, name="ompi_neighbor_alltoall_init_f") use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE :: recvbuf INTEGER, INTENT(IN) :: sendcount, recvcount INTEGER, INTENT(IN) :: sendtype, recvtype INTEGER, INTENT(IN) :: comm @@ -3899,11 +3899,11 @@ end subroutine ompi_neighbor_alltoall_init_f subroutine ompi_neighbor_alltoallv_f(sendbuf,sendcounts,sdispls,sendtype,recvbuf,recvcounts, & rdispls,recvtype,comm,ierror) & - BIND(C, name="ompi_neighbor_alltoallv_f") + BIND(C, name="ompi_neighbor_alltoallv_@OMPI_F08_BINDINGS_EXTENSION@") use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE :: recvbuf INTEGER, INTENT(IN) :: sendcounts(*), sdispls(*), recvcounts(*), rdispls(*) INTEGER, INTENT(IN) :: sendtype, recvtype INTEGER, INTENT(IN) :: comm @@ -3912,11 +3912,11 @@ end subroutine ompi_neighbor_alltoallv_f subroutine ompi_ineighbor_alltoallv_f(sendbuf,sendcounts,sdispls,sendtype,recvbuf,recvcounts, & rdispls,recvtype,comm,request,ierror) & - BIND(C, name="ompi_ineighbor_alltoallv_f") + BIND(C, name="ompi_ineighbor_alltoallv_@OMPI_F08_BINDINGS_EXTENSION@") use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf INTEGER, INTENT(IN) OMPI_ASYNCHRONOUS :: sendcounts(*), sdispls(*), recvcounts(*), rdispls(*) INTEGER, INTENT(IN) :: sendtype, recvtype INTEGER, INTENT(IN) :: comm @@ -3929,8 +3929,8 @@ subroutine ompi_neighbor_alltoallv_init_f(sendbuf,sendcounts,sdispls,sendtype,re BIND(C, name="ompi_neighbor_alltoallv_init_f") use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE :: recvbuf INTEGER, INTENT(IN) :: sendcounts(*), sdispls(*), recvcounts(*), rdispls(*) INTEGER, INTENT(IN) :: sendtype, recvtype INTEGER, INTENT(IN) :: comm @@ -3941,11 +3941,11 @@ end subroutine ompi_neighbor_alltoallv_init_f subroutine ompi_neighbor_alltoallw_f(sendbuf,sendcounts,sdispls,sendtypes,recvbuf,recvcounts, & rdispls,recvtypes,comm,ierror) & - BIND(C, name="ompi_neighbor_alltoallw_f") + BIND(C, name="ompi_neighbor_alltoallw_@OMPI_F08_BINDINGS_EXTENSION@") use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_ADDRESS_KIND implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE :: recvbuf INTEGER, INTENT(IN) :: sendcounts(*), recvcounts(*) INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: sdispls(*), rdispls(*) INTEGER, INTENT(IN) :: sendtypes, recvtypes @@ -3955,11 +3955,11 @@ end subroutine ompi_neighbor_alltoallw_f subroutine ompi_ineighbor_alltoallw_f(sendbuf,sendcounts,sdispls,sendtypes,recvbuf,recvcounts, & rdispls,recvtypes,comm,request,ierror) & - BIND(C, name="ompi_ineighbor_alltoallw_f") + BIND(C, name="ompi_ineighbor_alltoallw_@OMPI_F08_BINDINGS_EXTENSION@") use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request, MPI_ADDRESS_KIND implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf INTEGER, INTENT(IN) OMPI_ASYNCHRONOUS :: sendcounts(*), recvcounts(*) INTEGER(MPI_ADDRESS_KIND), INTENT(IN) OMPI_ASYNCHRONOUS :: sdispls(*), rdispls(*) INTEGER, INTENT(IN) :: sendtypes, recvtypes @@ -3973,8 +3973,8 @@ subroutine ompi_neighbor_alltoallw_init_f(sendbuf,sendcounts,sdispls,sendtypes,r BIND(C, name="ompi_neighbor_alltoallw_init_f") use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request, MPI_ADDRESS_KIND implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE :: recvbuf INTEGER, INTENT(IN) :: sendcounts(*), recvcounts(*) INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: sdispls(*), rdispls(*) INTEGER, INTENT(IN) :: sendtypes, recvtypes diff --git a/ompi/mpi/fortran/use-mpi-f08/bsend_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/bsend_f08.F90 index d35900bacc1..40e0bdb5e97 100644 --- a/ompi/mpi/fortran/use-mpi-f08/bsend_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/bsend_f08.F90 @@ -15,7 +15,7 @@ subroutine MPI_Bsend_f08(buf,count,datatype,dest,tag,comm,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm use :: ompi_mpifh_bindings, only : ompi_bsend_f implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: buf INTEGER, INTENT(IN) :: count, dest, tag TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Comm), INTENT(IN) :: comm diff --git a/ompi/mpi/fortran/use-mpi-f08/bsend_init_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/bsend_init_f08.F90 index 78e48fc1240..e300d9c33f1 100644 --- a/ompi/mpi/fortran/use-mpi-f08/bsend_init_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/bsend_init_f08.F90 @@ -17,7 +17,7 @@ subroutine MPI_Bsend_init_f08(buf,count,datatype,dest,tag,comm,request,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request use :: ompi_mpifh_bindings, only : ompi_bsend_init_f implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: buf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: buf INTEGER, INTENT(IN) :: count, dest, tag TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Comm), INTENT(IN) :: comm diff --git a/ompi/mpi/fortran/use-mpi-f08/buffer_attach_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/buffer_attach_f08.F90 index d5491bc753e..c561904e686 100644 --- a/ompi/mpi/fortran/use-mpi-f08/buffer_attach_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/buffer_attach_f08.F90 @@ -15,7 +15,7 @@ subroutine MPI_Buffer_attach_f08(buffer,size,ierror) use :: ompi_mpifh_bindings, only : ompi_buffer_attach_f implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS:: buffer + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: buffer INTEGER, INTENT(IN) :: size INTEGER, OPTIONAL, INTENT(OUT) :: ierror integer :: c_ierror diff --git a/ompi/mpi/fortran/use-mpi-f08/compare_and_swap_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/compare_and_swap_f08.F90 index 07f9080087b..a1ef8935258 100644 --- a/ompi/mpi/fortran/use-mpi-f08/compare_and_swap_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/compare_and_swap_f08.F90 @@ -17,8 +17,8 @@ subroutine MPI_Compare_and_swap_f08(origin_addr,compare_addr,result_addr,& use :: mpi_f08_types, only : MPI_Datatype, MPI_Win, MPI_ADDRESS_KIND use :: ompi_mpifh_bindings, only : ompi_compare_and_swap_f implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: origin_addr, compare_addr - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: result_addr + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: origin_addr, compare_addr + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: result_addr TYPE(MPI_Datatype), INTENT(IN) :: datatype INTEGER, INTENT(IN) :: target_rank INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: target_disp diff --git a/ompi/mpi/fortran/use-mpi-f08/exscan_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/exscan_f08.F90 index cf78dc016c5..0cda1084c44 100644 --- a/ompi/mpi/fortran/use-mpi-f08/exscan_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/exscan_f08.F90 @@ -15,8 +15,8 @@ subroutine MPI_Exscan_f08(sendbuf,recvbuf,count,datatype,op,comm,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Op, MPI_Comm use :: ompi_mpifh_bindings, only : ompi_exscan_f implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE :: recvbuf INTEGER, INTENT(IN) :: count TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Op), INTENT(IN) :: op diff --git a/ompi/mpi/fortran/use-mpi-f08/f_sync_reg_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/f_sync_reg_f08.F90 index ec8d86c5cb6..d80b1dc267c 100644 --- a/ompi/mpi/fortran/use-mpi-f08/f_sync_reg_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/f_sync_reg_f08.F90 @@ -15,7 +15,7 @@ subroutine MPI_F_sync_reg_f08(buf) use :: ompi_mpifh_bindings, only : ompi_f_sync_reg_f implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS:: buf + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: buf call ompi_f_sync_reg_f(buf) diff --git a/ompi/mpi/fortran/use-mpi-f08/fetch_and_op_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/fetch_and_op_f08.F90 index 4958a4019ac..d71b9f3b22a 100644 --- a/ompi/mpi/fortran/use-mpi-f08/fetch_and_op_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/fetch_and_op_f08.F90 @@ -16,8 +16,8 @@ subroutine MPI_Fetch_and_op_f08(origin_addr,result_addr,datatype,target_rank, & use :: mpi_f08_types, only : MPI_Datatype, MPI_Op, MPI_Win, MPI_ADDRESS_KIND use :: ompi_mpifh_bindings, only : ompi_fetch_and_op_f implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: origin_addr - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: result_addr + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: origin_addr + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: result_addr TYPE(MPI_Datatype), INTENT(IN) :: datatype INTEGER, INTENT(IN) :: target_rank INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: target_disp diff --git a/ompi/mpi/fortran/use-mpi-f08/file_iread_all_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/file_iread_all_f08.F90 index 88a2f714bef..5fc3e69c4d7 100644 --- a/ompi/mpi/fortran/use-mpi-f08/file_iread_all_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/file_iread_all_f08.F90 @@ -16,7 +16,7 @@ subroutine MPI_File_iread_all_f08(fh,buf,count,datatype,request,ierror) use :: ompi_mpifh_bindings, only : ompi_file_iread_all_f implicit none TYPE(MPI_File), INTENT(IN) :: fh - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: buf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: buf INTEGER, INTENT(IN) :: count TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Request), INTENT(OUT) :: request diff --git a/ompi/mpi/fortran/use-mpi-f08/file_iread_at_all_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/file_iread_at_all_f08.F90 index b62a3de3ce4..0864a4248e1 100644 --- a/ompi/mpi/fortran/use-mpi-f08/file_iread_at_all_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/file_iread_at_all_f08.F90 @@ -17,7 +17,7 @@ subroutine MPI_File_iread_at_all_f08(fh,offset,buf,count,datatype,request,ierror implicit none TYPE(MPI_File), INTENT(IN) :: fh INTEGER(MPI_OFFSET_KIND), INTENT(IN) :: offset - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: buf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: buf INTEGER, INTENT(IN) :: count TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Request), INTENT(OUT) :: request diff --git a/ompi/mpi/fortran/use-mpi-f08/file_iread_at_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/file_iread_at_f08.F90 index 177a855ba35..a033541d95f 100644 --- a/ompi/mpi/fortran/use-mpi-f08/file_iread_at_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/file_iread_at_f08.F90 @@ -17,7 +17,7 @@ subroutine MPI_File_iread_at_f08(fh,offset,buf,count,datatype,request,ierror) implicit none TYPE(MPI_File), INTENT(IN) :: fh INTEGER(MPI_OFFSET_KIND), INTENT(IN) :: offset - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: buf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: buf INTEGER, INTENT(IN) :: count TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Request), INTENT(OUT) :: request diff --git a/ompi/mpi/fortran/use-mpi-f08/file_iread_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/file_iread_f08.F90 index 4b403188c9d..4d7290cb017 100644 --- a/ompi/mpi/fortran/use-mpi-f08/file_iread_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/file_iread_f08.F90 @@ -16,7 +16,7 @@ subroutine MPI_File_iread_f08(fh,buf,count,datatype,request,ierror) use :: ompi_mpifh_bindings, only : ompi_file_iread_f implicit none TYPE(MPI_File), INTENT(IN) :: fh - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: buf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: buf INTEGER, INTENT(IN) :: count TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Request), INTENT(OUT) :: request diff --git a/ompi/mpi/fortran/use-mpi-f08/file_iread_shared_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/file_iread_shared_f08.F90 index 91e40cc4e52..611e618e30b 100644 --- a/ompi/mpi/fortran/use-mpi-f08/file_iread_shared_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/file_iread_shared_f08.F90 @@ -16,7 +16,7 @@ subroutine MPI_File_iread_shared_f08(fh,buf,count,datatype,request,ierror) use :: ompi_mpifh_bindings, only : ompi_file_iread_shared_f implicit none TYPE(MPI_File), INTENT(IN) :: fh - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: buf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: buf INTEGER, INTENT(IN) :: count TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Request), INTENT(OUT) :: request diff --git a/ompi/mpi/fortran/use-mpi-f08/file_iwrite_all_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/file_iwrite_all_f08.F90 index e42f494ab10..58891792363 100644 --- a/ompi/mpi/fortran/use-mpi-f08/file_iwrite_all_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/file_iwrite_all_f08.F90 @@ -16,7 +16,7 @@ subroutine MPI_File_iwrite_all_f08(fh,buf,count,datatype,request,ierror) use :: ompi_mpifh_bindings, only : ompi_file_iwrite_all_f implicit none TYPE(MPI_File), INTENT(IN) :: fh - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS, INTENT(IN) :: buf + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS, INTENT(IN) :: buf INTEGER, INTENT(IN) :: count TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Request), INTENT(OUT) :: request diff --git a/ompi/mpi/fortran/use-mpi-f08/file_iwrite_at_all_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/file_iwrite_at_all_f08.F90 index 149c7ba6d5b..c245691857b 100644 --- a/ompi/mpi/fortran/use-mpi-f08/file_iwrite_at_all_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/file_iwrite_at_all_f08.F90 @@ -17,7 +17,7 @@ subroutine MPI_File_iwrite_at_all_f08(fh,offset,buf,count,datatype,request,ierro implicit none TYPE(MPI_File), INTENT(IN) :: fh INTEGER(MPI_OFFSET_KIND), INTENT(IN) :: offset - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS, INTENT(IN) :: buf + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS, INTENT(IN) :: buf INTEGER, INTENT(IN) :: count TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Request), INTENT(OUT) :: request diff --git a/ompi/mpi/fortran/use-mpi-f08/file_iwrite_at_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/file_iwrite_at_f08.F90 index 08135a0bd2b..2cf4e93b56e 100644 --- a/ompi/mpi/fortran/use-mpi-f08/file_iwrite_at_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/file_iwrite_at_f08.F90 @@ -17,7 +17,7 @@ subroutine MPI_File_iwrite_at_f08(fh,offset,buf,count,datatype,request,ierror) implicit none TYPE(MPI_File), INTENT(IN) :: fh INTEGER(MPI_OFFSET_KIND), INTENT(IN) :: offset - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS, INTENT(IN) :: buf + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS, INTENT(IN) :: buf INTEGER, INTENT(IN) :: count TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Request), INTENT(OUT) :: request diff --git a/ompi/mpi/fortran/use-mpi-f08/file_iwrite_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/file_iwrite_f08.F90 index e6e17ad77f3..e0bf1982c54 100644 --- a/ompi/mpi/fortran/use-mpi-f08/file_iwrite_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/file_iwrite_f08.F90 @@ -16,7 +16,7 @@ subroutine MPI_File_iwrite_f08(fh,buf,count,datatype,request,ierror) use :: ompi_mpifh_bindings, only : ompi_file_iwrite_f implicit none TYPE(MPI_File), INTENT(IN) :: fh - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS, INTENT(IN) :: buf + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS, INTENT(IN) :: buf INTEGER, INTENT(IN) :: count TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Request), INTENT(OUT) :: request diff --git a/ompi/mpi/fortran/use-mpi-f08/file_iwrite_shared_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/file_iwrite_shared_f08.F90 index de15107a306..5253212c6f8 100644 --- a/ompi/mpi/fortran/use-mpi-f08/file_iwrite_shared_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/file_iwrite_shared_f08.F90 @@ -15,7 +15,7 @@ subroutine MPI_File_iwrite_shared_f08(fh,buf,count,datatype,request,ierror) use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Request use :: ompi_mpifh_bindings, only : ompi_file_iwrite_shared_f implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS, INTENT(IN) :: buf + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS, INTENT(IN) :: buf TYPE(MPI_File), INTENT(IN) :: fh INTEGER, INTENT(IN) :: count TYPE(MPI_Datatype), INTENT(IN) :: datatype diff --git a/ompi/mpi/fortran/use-mpi-f08/file_read_all_begin_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/file_read_all_begin_f08.F90 index a2b2060e246..5b3fe0494a6 100644 --- a/ompi/mpi/fortran/use-mpi-f08/file_read_all_begin_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/file_read_all_begin_f08.F90 @@ -16,7 +16,7 @@ subroutine MPI_File_read_all_begin_f08(fh,buf,count,datatype,ierror) use :: ompi_mpifh_bindings, only : ompi_file_read_all_begin_f implicit none TYPE(MPI_File), INTENT(IN) :: fh - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS, INTENT(IN) :: buf + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS, INTENT(IN) :: buf INTEGER, INTENT(IN) :: count TYPE(MPI_Datatype), INTENT(IN) :: datatype INTEGER, OPTIONAL, INTENT(OUT) :: ierror diff --git a/ompi/mpi/fortran/use-mpi-f08/file_read_all_end_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/file_read_all_end_f08.F90 index 0a5d251a128..4497a88e9b7 100644 --- a/ompi/mpi/fortran/use-mpi-f08/file_read_all_end_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/file_read_all_end_f08.F90 @@ -16,7 +16,7 @@ subroutine MPI_File_read_all_end_f08(fh,buf,status,ierror) use :: ompi_mpifh_bindings, only : ompi_file_read_all_end_f implicit none TYPE(MPI_File), INTENT(IN) :: fh - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS, INTENT(IN) :: buf + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS, INTENT(IN) :: buf TYPE(MPI_Status), INTENT(OUT) :: status INTEGER, OPTIONAL, INTENT(OUT) :: ierror integer :: c_ierror diff --git a/ompi/mpi/fortran/use-mpi-f08/file_read_all_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/file_read_all_f08.F90 index 4a917a50265..f12aecf4907 100644 --- a/ompi/mpi/fortran/use-mpi-f08/file_read_all_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/file_read_all_f08.F90 @@ -16,7 +16,7 @@ subroutine MPI_File_read_all_f08(fh,buf,count,datatype,status,ierror) use :: ompi_mpifh_bindings, only : ompi_file_read_all_f implicit none TYPE(MPI_File), INTENT(IN) :: fh - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: buf INTEGER, INTENT(IN) :: count TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Status), INTENT(OUT) :: status diff --git a/ompi/mpi/fortran/use-mpi-f08/file_read_at_all_begin_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/file_read_at_all_begin_f08.F90 index 8d4527e19bd..dba073591b3 100644 --- a/ompi/mpi/fortran/use-mpi-f08/file_read_at_all_begin_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/file_read_at_all_begin_f08.F90 @@ -17,7 +17,7 @@ subroutine MPI_File_read_at_all_begin_f08(fh,offset,buf,count,datatype,ierror) implicit none TYPE(MPI_File), INTENT(IN) :: fh INTEGER(MPI_OFFSET_KIND), INTENT(IN) :: offset - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS, INTENT(IN) :: buf + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS, INTENT(IN) :: buf INTEGER, INTENT(IN) :: count TYPE(MPI_Datatype), INTENT(IN) :: datatype INTEGER, OPTIONAL, INTENT(OUT) :: ierror diff --git a/ompi/mpi/fortran/use-mpi-f08/file_read_at_all_end_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/file_read_at_all_end_f08.F90 index 0cf1a58bda5..eacde9be0fb 100644 --- a/ompi/mpi/fortran/use-mpi-f08/file_read_at_all_end_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/file_read_at_all_end_f08.F90 @@ -16,7 +16,7 @@ subroutine MPI_File_read_at_all_end_f08(fh,buf,status,ierror) use :: ompi_mpifh_bindings, only : ompi_file_read_at_all_end_f implicit none TYPE(MPI_File), INTENT(IN) :: fh - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS, INTENT(IN) :: buf + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS, INTENT(IN) :: buf TYPE(MPI_Status), INTENT(OUT) :: status INTEGER, OPTIONAL, INTENT(OUT) :: ierror integer :: c_ierror diff --git a/ompi/mpi/fortran/use-mpi-f08/file_read_at_all_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/file_read_at_all_f08.F90 index e358b7dbbaf..f184a47f594 100644 --- a/ompi/mpi/fortran/use-mpi-f08/file_read_at_all_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/file_read_at_all_f08.F90 @@ -17,7 +17,7 @@ subroutine MPI_File_read_at_all_f08(fh,offset,buf,count,datatype,status,ierror) implicit none TYPE(MPI_File), INTENT(IN) :: fh INTEGER(MPI_OFFSET_KIND), INTENT(IN) :: offset - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: buf INTEGER, INTENT(IN) :: count TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Status), INTENT(OUT) :: status diff --git a/ompi/mpi/fortran/use-mpi-f08/file_read_at_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/file_read_at_f08.F90 index e7004c759e0..3807e53fe92 100644 --- a/ompi/mpi/fortran/use-mpi-f08/file_read_at_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/file_read_at_f08.F90 @@ -17,7 +17,7 @@ subroutine MPI_File_read_at_f08(fh,offset,buf,count,datatype,status,ierror) implicit none TYPE(MPI_File), INTENT(IN) :: fh INTEGER(MPI_OFFSET_KIND), INTENT(IN) :: offset - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: buf INTEGER, INTENT(IN) :: count TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Status), INTENT(OUT) :: status diff --git a/ompi/mpi/fortran/use-mpi-f08/file_read_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/file_read_f08.F90 index ea4daf5f3dc..b66860bdd62 100644 --- a/ompi/mpi/fortran/use-mpi-f08/file_read_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/file_read_f08.F90 @@ -16,7 +16,7 @@ subroutine MPI_File_read_f08(fh,buf,count,datatype,status,ierror) use :: ompi_mpifh_bindings, only : ompi_file_read_f implicit none TYPE(MPI_File), INTENT(IN) :: fh - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: buf INTEGER, INTENT(IN) :: count TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Status), INTENT(OUT) :: status diff --git a/ompi/mpi/fortran/use-mpi-f08/file_read_ordered_begin_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/file_read_ordered_begin_f08.F90 index 3f67832e930..095697ac2ae 100644 --- a/ompi/mpi/fortran/use-mpi-f08/file_read_ordered_begin_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/file_read_ordered_begin_f08.F90 @@ -16,7 +16,7 @@ subroutine MPI_File_read_ordered_begin_f08(fh,buf,count,datatype,ierror) use :: ompi_mpifh_bindings, only : ompi_file_read_ordered_begin_f implicit none TYPE(MPI_File), INTENT(IN) :: fh - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS, INTENT(IN) :: buf + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS, INTENT(IN) :: buf INTEGER, INTENT(IN) :: count TYPE(MPI_Datatype), INTENT(IN) :: datatype INTEGER, OPTIONAL, INTENT(OUT) :: ierror diff --git a/ompi/mpi/fortran/use-mpi-f08/file_read_ordered_end_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/file_read_ordered_end_f08.F90 index 8ddde76a44d..fc644828951 100644 --- a/ompi/mpi/fortran/use-mpi-f08/file_read_ordered_end_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/file_read_ordered_end_f08.F90 @@ -16,7 +16,7 @@ subroutine MPI_File_read_ordered_end_f08(fh,buf,status,ierror) use :: ompi_mpifh_bindings, only : ompi_file_read_ordered_end_f implicit none TYPE(MPI_File), INTENT(IN) :: fh - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS, INTENT(IN) :: buf + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS, INTENT(IN) :: buf TYPE(MPI_Status), INTENT(OUT) :: status INTEGER, OPTIONAL, INTENT(OUT) :: ierror integer :: c_ierror diff --git a/ompi/mpi/fortran/use-mpi-f08/file_read_ordered_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/file_read_ordered_f08.F90 index c9947619c16..990b0b32216 100644 --- a/ompi/mpi/fortran/use-mpi-f08/file_read_ordered_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/file_read_ordered_f08.F90 @@ -16,7 +16,7 @@ subroutine MPI_File_read_ordered_f08(fh,buf,count,datatype,status,ierror) use :: ompi_mpifh_bindings, only : ompi_file_read_ordered_f implicit none TYPE(MPI_File), INTENT(IN) :: fh - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: buf INTEGER, INTENT(IN) :: count TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Status), INTENT(OUT) :: status diff --git a/ompi/mpi/fortran/use-mpi-f08/file_read_shared_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/file_read_shared_f08.F90 index a6bd046f497..f00b2cb9a29 100644 --- a/ompi/mpi/fortran/use-mpi-f08/file_read_shared_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/file_read_shared_f08.F90 @@ -16,7 +16,7 @@ subroutine MPI_File_read_shared_f08(fh,buf,count,datatype,status,ierror) use :: ompi_mpifh_bindings, only : ompi_file_read_shared_f implicit none TYPE(MPI_File), INTENT(IN) :: fh - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: buf INTEGER, INTENT(IN) :: count TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Status), INTENT(OUT) :: status diff --git a/ompi/mpi/fortran/use-mpi-f08/file_write_all_begin_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/file_write_all_begin_f08.F90 index 6bdbc0ec7ca..4710f8d12ba 100644 --- a/ompi/mpi/fortran/use-mpi-f08/file_write_all_begin_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/file_write_all_begin_f08.F90 @@ -16,7 +16,7 @@ subroutine MPI_File_write_all_begin_f08(fh,buf,count,datatype,ierror) use :: ompi_mpifh_bindings, only : ompi_file_write_all_begin_f implicit none TYPE(MPI_File), INTENT(IN) :: fh - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS, INTENT(IN) :: buf + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS, INTENT(IN) :: buf INTEGER, INTENT(IN) :: count TYPE(MPI_Datatype), INTENT(IN) :: datatype INTEGER, OPTIONAL, INTENT(OUT) :: ierror diff --git a/ompi/mpi/fortran/use-mpi-f08/file_write_all_end_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/file_write_all_end_f08.F90 index 8a42355052a..1e3790bbae2 100644 --- a/ompi/mpi/fortran/use-mpi-f08/file_write_all_end_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/file_write_all_end_f08.F90 @@ -16,7 +16,7 @@ subroutine MPI_File_write_all_end_f08(fh,buf,status,ierror) use :: ompi_mpifh_bindings, only : ompi_file_write_all_end_f implicit none TYPE(MPI_File), INTENT(IN) :: fh - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS, INTENT(IN) :: buf + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS, INTENT(IN) :: buf TYPE(MPI_Status), INTENT(OUT) :: status INTEGER, OPTIONAL, INTENT(OUT) :: ierror integer :: c_ierror diff --git a/ompi/mpi/fortran/use-mpi-f08/file_write_all_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/file_write_all_f08.F90 index af975304c94..73f01728669 100644 --- a/ompi/mpi/fortran/use-mpi-f08/file_write_all_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/file_write_all_f08.F90 @@ -16,7 +16,7 @@ subroutine MPI_File_write_all_f08(fh,buf,count,datatype,status,ierror) use :: ompi_mpifh_bindings, only : ompi_file_write_all_f implicit none TYPE(MPI_File), INTENT(IN) :: fh - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: buf INTEGER, INTENT(IN) :: count TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Status), INTENT(OUT) :: status diff --git a/ompi/mpi/fortran/use-mpi-f08/file_write_at_all_begin_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/file_write_at_all_begin_f08.F90 index 22a80139d15..2c6459f24f7 100644 --- a/ompi/mpi/fortran/use-mpi-f08/file_write_at_all_begin_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/file_write_at_all_begin_f08.F90 @@ -17,7 +17,7 @@ subroutine MPI_File_write_at_all_begin_f08(fh,offset,buf,count,datatype,ierror) implicit none TYPE(MPI_File), INTENT(IN) :: fh INTEGER(MPI_OFFSET_KIND), INTENT(IN) :: offset - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS, INTENT(IN) :: buf + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS, INTENT(IN) :: buf INTEGER, INTENT(IN) :: count TYPE(MPI_Datatype), INTENT(IN) :: datatype INTEGER, OPTIONAL, INTENT(OUT) :: ierror diff --git a/ompi/mpi/fortran/use-mpi-f08/file_write_at_all_end_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/file_write_at_all_end_f08.F90 index 5a180b34252..82081fc4d8e 100644 --- a/ompi/mpi/fortran/use-mpi-f08/file_write_at_all_end_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/file_write_at_all_end_f08.F90 @@ -16,7 +16,7 @@ subroutine MPI_File_write_at_all_end_f08(fh,buf,status,ierror) use :: ompi_mpifh_bindings, only : ompi_file_write_at_all_end_f implicit none TYPE(MPI_File), INTENT(IN) :: fh - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS, INTENT(IN) :: buf + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS, INTENT(IN) :: buf TYPE(MPI_Status), INTENT(OUT) :: status INTEGER, OPTIONAL, INTENT(OUT) :: ierror integer :: c_ierror diff --git a/ompi/mpi/fortran/use-mpi-f08/file_write_at_all_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/file_write_at_all_f08.F90 index 6973a334bae..3d2903d2d2c 100644 --- a/ompi/mpi/fortran/use-mpi-f08/file_write_at_all_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/file_write_at_all_f08.F90 @@ -17,7 +17,7 @@ subroutine MPI_File_write_at_all_f08(fh,offset,buf,count,datatype,status,ierror) implicit none TYPE(MPI_File), INTENT(IN) :: fh INTEGER(MPI_OFFSET_KIND), INTENT(IN) :: offset - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: buf INTEGER, INTENT(IN) :: count TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Status), INTENT(OUT) :: status diff --git a/ompi/mpi/fortran/use-mpi-f08/file_write_at_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/file_write_at_f08.F90 index 1ad8f65703e..71f3eb4590c 100644 --- a/ompi/mpi/fortran/use-mpi-f08/file_write_at_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/file_write_at_f08.F90 @@ -17,7 +17,7 @@ subroutine MPI_File_write_at_f08(fh,offset,buf,count,datatype,status,ierror) implicit none TYPE(MPI_File), INTENT(IN) :: fh INTEGER(MPI_OFFSET_KIND), INTENT(IN) :: offset - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: buf INTEGER, INTENT(IN) :: count TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Status), INTENT(OUT) :: status diff --git a/ompi/mpi/fortran/use-mpi-f08/file_write_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/file_write_f08.F90 index 8dd3c49496d..4cf18e28498 100644 --- a/ompi/mpi/fortran/use-mpi-f08/file_write_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/file_write_f08.F90 @@ -16,7 +16,7 @@ subroutine MPI_File_write_f08(fh,buf,count,datatype,status,ierror) use :: ompi_mpifh_bindings, only : ompi_file_write_f implicit none TYPE(MPI_File), INTENT(IN) :: fh - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: buf INTEGER, INTENT(IN) :: count TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Status), INTENT(OUT) :: status diff --git a/ompi/mpi/fortran/use-mpi-f08/file_write_ordered_begin_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/file_write_ordered_begin_f08.F90 index cec70707280..af107f04e4f 100644 --- a/ompi/mpi/fortran/use-mpi-f08/file_write_ordered_begin_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/file_write_ordered_begin_f08.F90 @@ -16,7 +16,7 @@ subroutine MPI_File_write_ordered_begin_f08(fh,buf,count,datatype,ierror) use :: ompi_mpifh_bindings, only : ompi_file_write_ordered_begin_f implicit none TYPE(MPI_File), INTENT(IN) :: fh - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS, INTENT(IN) :: buf + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS, INTENT(IN) :: buf INTEGER, INTENT(IN) :: count TYPE(MPI_Datatype), INTENT(IN) :: datatype INTEGER, OPTIONAL, INTENT(OUT) :: ierror diff --git a/ompi/mpi/fortran/use-mpi-f08/file_write_ordered_end_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/file_write_ordered_end_f08.F90 index 2226ec5b5d8..2958434a2b3 100644 --- a/ompi/mpi/fortran/use-mpi-f08/file_write_ordered_end_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/file_write_ordered_end_f08.F90 @@ -16,7 +16,7 @@ subroutine MPI_File_write_ordered_end_f08(fh,buf,status,ierror) use :: ompi_mpifh_bindings, only : ompi_file_write_ordered_end_f implicit none TYPE(MPI_File), INTENT(IN) :: fh - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS, INTENT(IN) :: buf + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS, INTENT(IN) :: buf TYPE(MPI_Status), INTENT(OUT) :: status INTEGER, OPTIONAL, INTENT(OUT) :: ierror integer :: c_ierror diff --git a/ompi/mpi/fortran/use-mpi-f08/file_write_ordered_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/file_write_ordered_f08.F90 index 8087420e5ff..049b39ee6a0 100644 --- a/ompi/mpi/fortran/use-mpi-f08/file_write_ordered_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/file_write_ordered_f08.F90 @@ -16,7 +16,7 @@ subroutine MPI_File_write_ordered_f08(fh,buf,count,datatype,status,ierror) use :: ompi_mpifh_bindings, only : ompi_file_write_ordered_f implicit none TYPE(MPI_File), INTENT(IN) :: fh - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: buf INTEGER, INTENT(IN) :: count TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Status), INTENT(OUT) :: status diff --git a/ompi/mpi/fortran/use-mpi-f08/file_write_shared_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/file_write_shared_f08.F90 index f2e4400dda9..9d73bdfe7a3 100644 --- a/ompi/mpi/fortran/use-mpi-f08/file_write_shared_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/file_write_shared_f08.F90 @@ -16,7 +16,7 @@ subroutine MPI_File_write_shared_f08(fh,buf,count,datatype,status,ierror) use :: ompi_mpifh_bindings, only : ompi_file_write_shared_f implicit none TYPE(MPI_File), INTENT(IN) :: fh - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: buf INTEGER, INTENT(IN) :: count TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Status), INTENT(OUT) :: status diff --git a/ompi/mpi/fortran/use-mpi-f08/free_mem_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/free_mem_f08.F90 index 02a4006e5d2..e43b13a971e 100644 --- a/ompi/mpi/fortran/use-mpi-f08/free_mem_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/free_mem_f08.F90 @@ -12,7 +12,7 @@ subroutine MPI_Free_mem_f08(base,ierror) use :: ompi_mpifh_bindings, only : ompi_free_mem_f implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: base + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: base INTEGER, OPTIONAL, INTENT(OUT) :: ierror integer :: c_ierror diff --git a/ompi/mpi/fortran/use-mpi-f08/gather_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/gather_f08.F90 index f238c103fbb..37549696ef1 100644 --- a/ompi/mpi/fortran/use-mpi-f08/gather_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/gather_f08.F90 @@ -16,8 +16,8 @@ subroutine MPI_Gather_f08(sendbuf,sendcount,sendtype,recvbuf,recvcount,& use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm use :: ompi_mpifh_bindings, only : ompi_gather_f implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE :: recvbuf INTEGER, INTENT(IN) :: sendcount, recvcount, root TYPE(MPI_Datatype), INTENT(IN) :: sendtype TYPE(MPI_Datatype), INTENT(IN) :: recvtype diff --git a/ompi/mpi/fortran/use-mpi-f08/gatherv_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/gatherv_f08.F90 index b53fa2e00e7..6cd8d6b3a1d 100644 --- a/ompi/mpi/fortran/use-mpi-f08/gatherv_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/gatherv_f08.F90 @@ -16,8 +16,8 @@ subroutine MPI_Gatherv_f08(sendbuf,sendcount,sendtype,recvbuf,recvcounts,& use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm use :: ompi_mpifh_bindings, only : ompi_gatherv_f implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE :: recvbuf INTEGER, INTENT(IN) :: sendcount, root INTEGER, INTENT(IN) :: recvcounts(*), displs(*) TYPE(MPI_Datatype), INTENT(IN) :: sendtype diff --git a/ompi/mpi/fortran/use-mpi-f08/get_accumulate_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/get_accumulate_f08.F90 index 9fd4f2ead5b..19d0bb4b1ad 100644 --- a/ompi/mpi/fortran/use-mpi-f08/get_accumulate_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/get_accumulate_f08.F90 @@ -18,10 +18,10 @@ subroutine MPI_Get_accumulate_f08(origin_addr,origin_count,origin_datatype,& use :: mpi_f08_types, only : MPI_Datatype, MPI_Op, MPI_Win, MPI_ADDRESS_KIND use :: ompi_mpifh_bindings, only : ompi_get_accumulate_f implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: origin_addr + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: origin_addr INTEGER, INTENT(IN) :: origin_count, result_count, target_rank, target_count TYPE(MPI_Datatype), INTENT(IN) :: origin_datatype - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: result_addr + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: result_addr TYPE(MPI_Datatype), INTENT(IN) :: result_datatype INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: target_disp TYPE(MPI_Datatype), INTENT(IN) :: target_datatype diff --git a/ompi/mpi/fortran/use-mpi-f08/get_address_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/get_address_f08.F90 index 187086d0fc5..1e050d00d29 100644 --- a/ompi/mpi/fortran/use-mpi-f08/get_address_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/get_address_f08.F90 @@ -15,7 +15,7 @@ subroutine MPI_Get_address_f08(location,address,ierror) use :: mpi_f08_types, only : MPI_ADDRESS_KIND use :: ompi_mpifh_bindings, only : ompi_get_address_f implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: location + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: location INTEGER(MPI_ADDRESS_KIND), INTENT(OUT) :: address INTEGER, OPTIONAL, INTENT(OUT) :: ierror integer :: c_ierror diff --git a/ompi/mpi/fortran/use-mpi-f08/get_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/get_f08.F90 index a51ca425ccd..15821aa8a99 100644 --- a/ompi/mpi/fortran/use-mpi-f08/get_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/get_f08.F90 @@ -16,7 +16,7 @@ subroutine MPI_Get_f08(origin_addr,origin_count,origin_datatype,target_rank,& use :: mpi_f08_types, only : MPI_Datatype, MPI_Win, MPI_ADDRESS_KIND use :: ompi_mpifh_bindings, only : ompi_get_f implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: origin_addr + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: origin_addr INTEGER, INTENT(IN) :: origin_count, target_rank, target_count TYPE(MPI_Datatype), INTENT(IN) :: origin_datatype INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: target_disp diff --git a/ompi/mpi/fortran/use-mpi-f08/iallgather_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/iallgather_f08.F90 index f178b948529..192d2e8b074 100644 --- a/ompi/mpi/fortran/use-mpi-f08/iallgather_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/iallgather_f08.F90 @@ -15,8 +15,8 @@ subroutine MPI_Iallgather_f08(sendbuf,sendcount,sendtype,recvbuf,recvcount,recvt use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request use :: ompi_mpifh_bindings, only : ompi_iallgather_f implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf INTEGER, INTENT(IN) :: sendcount, recvcount TYPE(MPI_Datatype), INTENT(IN) :: sendtype TYPE(MPI_Datatype), INTENT(IN) :: recvtype diff --git a/ompi/mpi/fortran/use-mpi-f08/iallgatherv_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/iallgatherv_f08.F90 index 3d44e27b0c7..d008e8d58c3 100644 --- a/ompi/mpi/fortran/use-mpi-f08/iallgatherv_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/iallgatherv_f08.F90 @@ -16,8 +16,8 @@ subroutine MPI_Iallgatherv_f08(sendbuf,sendcount,sendtype,recvbuf,recvcounts,& use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request use :: ompi_mpifh_bindings, only : ompi_iallgatherv_f implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf INTEGER, INTENT(IN) :: sendcount INTEGER, INTENT(IN) OMPI_ASYNCHRONOUS :: recvcounts(*), displs(*) TYPE(MPI_Datatype), INTENT(IN) :: sendtype diff --git a/ompi/mpi/fortran/use-mpi-f08/iallreduce_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/iallreduce_f08.F90 index e0bbffec347..999dc05f40b 100644 --- a/ompi/mpi/fortran/use-mpi-f08/iallreduce_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/iallreduce_f08.F90 @@ -15,8 +15,8 @@ subroutine MPI_Iallreduce_f08(sendbuf,recvbuf,count,datatype,op,comm,request,ier use :: mpi_f08_types, only : MPI_Datatype, MPI_Op, MPI_Comm, MPI_Request use :: ompi_mpifh_bindings, only : ompi_iallreduce_f implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf INTEGER, INTENT(IN) :: count TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Op), INTENT(IN) :: op diff --git a/ompi/mpi/fortran/use-mpi-f08/ialltoall_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/ialltoall_f08.F90 index 3df84b0352d..5e94f6aaa77 100644 --- a/ompi/mpi/fortran/use-mpi-f08/ialltoall_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/ialltoall_f08.F90 @@ -16,8 +16,8 @@ subroutine MPI_Ialltoall_f08(sendbuf,sendcount,sendtype,recvbuf,& use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request use :: ompi_mpifh_bindings, only : ompi_ialltoall_f implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf INTEGER, INTENT(IN) :: sendcount, recvcount TYPE(MPI_Datatype), INTENT(IN) :: sendtype TYPE(MPI_Datatype), INTENT(IN) :: recvtype diff --git a/ompi/mpi/fortran/use-mpi-f08/ialltoallv_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/ialltoallv_f08.F90 index 65bc9858931..f98f1f7dc30 100644 --- a/ompi/mpi/fortran/use-mpi-f08/ialltoallv_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/ialltoallv_f08.F90 @@ -16,9 +16,9 @@ subroutine MPI_Ialltoallv_f08(sendbuf,sendcounts,sdispls,sendtype,recvbuf,& use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request use :: ompi_mpifh_bindings, only : ompi_ialltoallv_f implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf - INTEGER, INTENT(IN) OMPI_ASYNCHRONOUS :: sendcounts(*), sdispls(*), recvcounts(*), rdispls(*) + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf + INTEGER, INTENT(IN), ASYNCHRONOUS :: sendcounts(*), sdispls(*), recvcounts(*), rdispls(*) TYPE(MPI_Datatype), INTENT(IN) :: sendtype TYPE(MPI_Datatype), INTENT(IN) :: recvtype TYPE(MPI_Comm), INTENT(IN) :: comm diff --git a/ompi/mpi/fortran/use-mpi-f08/ialltoallw_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/ialltoallw_f08.F90 index c5432df5815..d6d21753737 100644 --- a/ompi/mpi/fortran/use-mpi-f08/ialltoallw_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/ialltoallw_f08.F90 @@ -17,8 +17,8 @@ subroutine MPI_Ialltoallw_f08(sendbuf,sendcounts,sdispls,sendtypes,& use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request use :: ompi_mpifh_bindings, only : ompi_ialltoallw_f implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf INTEGER, INTENT(IN) OMPI_ASYNCHRONOUS :: sendcounts(*), sdispls(*), recvcounts(*), rdispls(*) TYPE(MPI_Datatype), INTENT(IN) OMPI_ASYNCHRONOUS :: sendtypes(*), recvtypes(*) TYPE(MPI_Comm), INTENT(IN) :: comm diff --git a/ompi/mpi/fortran/use-mpi-f08/ibcast_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/ibcast_f08.F90 index c6778c3173b..48f5699af70 100644 --- a/ompi/mpi/fortran/use-mpi-f08/ibcast_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/ibcast_f08.F90 @@ -16,7 +16,7 @@ subroutine MPI_Ibcast_f08(buffer,count,datatype,root,comm,request,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request use :: ompi_mpifh_bindings, only : ompi_ibcast_f implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: buffer + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: buffer INTEGER, INTENT(IN) :: count, root TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Comm), INTENT(IN) :: comm diff --git a/ompi/mpi/fortran/use-mpi-f08/ibsend_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/ibsend_f08.F90 index 9e51ddeb526..6f728f3e8e0 100644 --- a/ompi/mpi/fortran/use-mpi-f08/ibsend_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/ibsend_f08.F90 @@ -15,7 +15,7 @@ subroutine MPI_Ibsend_f08(buf,count,datatype,dest,tag,comm,request,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request use :: ompi_mpifh_bindings, only : ompi_ibsend_f implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: buf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: buf INTEGER, INTENT(IN) :: count, dest, tag TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Comm), INTENT(IN) :: comm diff --git a/ompi/mpi/fortran/use-mpi-f08/iexscan_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/iexscan_f08.F90 index 072b3d15e72..c7d2cc38b53 100644 --- a/ompi/mpi/fortran/use-mpi-f08/iexscan_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/iexscan_f08.F90 @@ -15,8 +15,8 @@ subroutine MPI_Iexscan_f08(sendbuf,recvbuf,count,datatype,op,comm,request,ierror use :: mpi_f08_types, only : MPI_Datatype, MPI_Op, MPI_Comm, MPI_Request use :: ompi_mpifh_bindings, only : ompi_iexscan_f implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf INTEGER, INTENT(IN) :: count TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Op), INTENT(IN) :: op diff --git a/ompi/mpi/fortran/use-mpi-f08/igather_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/igather_f08.F90 index f69ddca8ef2..a1a743d1363 100644 --- a/ompi/mpi/fortran/use-mpi-f08/igather_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/igather_f08.F90 @@ -16,8 +16,8 @@ subroutine MPI_Igather_f08(sendbuf,sendcount,sendtype,recvbuf,recvcount,& use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request use :: ompi_mpifh_bindings, only : ompi_igather_f implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf INTEGER, INTENT(IN) :: sendcount, recvcount, root TYPE(MPI_Datatype), INTENT(IN) :: sendtype TYPE(MPI_Datatype), INTENT(IN) :: recvtype diff --git a/ompi/mpi/fortran/use-mpi-f08/igatherv_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/igatherv_f08.F90 index 5a8d817deb7..2b36d54768a 100644 --- a/ompi/mpi/fortran/use-mpi-f08/igatherv_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/igatherv_f08.F90 @@ -16,8 +16,8 @@ subroutine MPI_Igatherv_f08(sendbuf,sendcount,sendtype,recvbuf,recvcounts,& use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request use :: ompi_mpifh_bindings, only : ompi_igatherv_f implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf INTEGER, INTENT(IN) :: sendcount, root INTEGER, INTENT(IN) OMPI_ASYNCHRONOUS :: recvcounts(*), displs(*) TYPE(MPI_Datatype), INTENT(IN) :: sendtype diff --git a/ompi/mpi/fortran/use-mpi-f08/imrecv_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/imrecv_f08.F90 index 8242465a83f..cfb70cd5dae 100644 --- a/ompi/mpi/fortran/use-mpi-f08/imrecv_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/imrecv_f08.F90 @@ -15,7 +15,7 @@ subroutine MPI_Imrecv_f08(buf,count,datatype,message,request,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Message, MPI_Request use :: ompi_mpifh_bindings, only : ompi_imrecv_f implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: buf + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: buf INTEGER, INTENT(IN) :: count TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Message), INTENT(INOUT) :: message diff --git a/ompi/mpi/fortran/use-mpi-f08/ineighbor_allgather_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/ineighbor_allgather_f08.F90 index d487136a03b..932c77c0348 100644 --- a/ompi/mpi/fortran/use-mpi-f08/ineighbor_allgather_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/ineighbor_allgather_f08.F90 @@ -16,8 +16,8 @@ subroutine MPI_Ineighbor_allgather_f08(sendbuf,sendcount,sendtype,recvbuf,recvco use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request use :: ompi_mpifh_bindings, only : ompi_ineighbor_allgather_f implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS, INTENT(IN) :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS:: sendbuf + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf INTEGER, INTENT(IN) :: sendcount, recvcount TYPE(MPI_Datatype), INTENT(IN) :: sendtype TYPE(MPI_Datatype), INTENT(IN) :: recvtype diff --git a/ompi/mpi/fortran/use-mpi-f08/ineighbor_allgatherv_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/ineighbor_allgatherv_f08.F90 index 74b606c4ae3..c2bca3bab55 100644 --- a/ompi/mpi/fortran/use-mpi-f08/ineighbor_allgatherv_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/ineighbor_allgatherv_f08.F90 @@ -17,8 +17,8 @@ subroutine MPI_Ineighbor_allgatherv_f08(sendbuf,sendcount,sendtype,recvbuf,recvc use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request use :: ompi_mpifh_bindings, only : ompi_ineighbor_allgatherv_f implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS, INTENT(IN) :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf INTEGER, INTENT(IN) :: sendcount INTEGER OMPI_ASYNCHRONOUS, INTENT(IN) :: recvcounts(*), displs(*) TYPE(MPI_Datatype), INTENT(IN) :: sendtype diff --git a/ompi/mpi/fortran/use-mpi-f08/ineighbor_alltoall_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/ineighbor_alltoall_f08.F90 index e87e9d567d2..20542e38a55 100644 --- a/ompi/mpi/fortran/use-mpi-f08/ineighbor_alltoall_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/ineighbor_alltoall_f08.F90 @@ -17,8 +17,8 @@ subroutine MPI_Ineighbor_alltoall_f08(sendbuf,sendcount,sendtype,recvbuf,& use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request use :: ompi_mpifh_bindings, only : ompi_ineighbor_alltoall_f implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf INTEGER, INTENT(IN) :: sendcount, recvcount TYPE(MPI_Datatype), INTENT(IN) :: sendtype TYPE(MPI_Datatype), INTENT(IN) :: recvtype diff --git a/ompi/mpi/fortran/use-mpi-f08/ineighbor_alltoallv_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/ineighbor_alltoallv_f08.F90 index ed73dae8593..4cd4768f84a 100644 --- a/ompi/mpi/fortran/use-mpi-f08/ineighbor_alltoallv_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/ineighbor_alltoallv_f08.F90 @@ -17,8 +17,8 @@ subroutine MPI_Ineighbor_alltoallv_f08(sendbuf,sendcounts,sdispls,sendtype,recvb use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request use :: ompi_mpifh_bindings, only : ompi_ineighbor_alltoallv_f implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS, INTENT(IN) :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf INTEGER, INTENT(IN) OMPI_ASYNCHRONOUS :: sendcounts(*), sdispls(*), recvcounts(*), rdispls(*) TYPE(MPI_Datatype), INTENT(IN) :: sendtype TYPE(MPI_Datatype), INTENT(IN) :: recvtype diff --git a/ompi/mpi/fortran/use-mpi-f08/ineighbor_alltoallw_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/ineighbor_alltoallw_f08.F90 index 6a3970b4f8e..96d1de32e61 100644 --- a/ompi/mpi/fortran/use-mpi-f08/ineighbor_alltoallw_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/ineighbor_alltoallw_f08.F90 @@ -16,8 +16,8 @@ subroutine MPI_Ineighbor_alltoallw_f08(sendbuf,sendcounts,sdispls,sendtypes,& use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request, MPI_ADDRESS_KIND use :: ompi_mpifh_bindings, only : ompi_ineighbor_alltoallw_f implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS, INTENT(IN) :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS, INTENT(IN) :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf INTEGER OMPI_ASYNCHRONOUS, INTENT(IN) :: sendcounts(*), recvcounts(*) INTEGER(MPI_ADDRESS_KIND) OMPI_ASYNCHRONOUS, INTENT(IN) :: sdispls(*), rdispls(*) TYPE(MPI_Datatype) OMPI_ASYNCHRONOUS, INTENT(IN) :: sendtypes(*) diff --git a/ompi/mpi/fortran/use-mpi-f08/irecv_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/irecv_f08.F90 index a793a29d3bf..0fc19ea6b49 100644 --- a/ompi/mpi/fortran/use-mpi-f08/irecv_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/irecv_f08.F90 @@ -15,7 +15,7 @@ subroutine MPI_Irecv_f08(buf,count,datatype,source,tag,comm,request,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request use :: ompi_mpifh_bindings, only : ompi_irecv_f implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: buf + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: buf INTEGER, INTENT(IN) :: count, source, tag TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Comm), INTENT(IN) :: comm diff --git a/ompi/mpi/fortran/use-mpi-f08/ireduce_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/ireduce_f08.F90 index f69dd777fb9..7f94a900a1e 100644 --- a/ompi/mpi/fortran/use-mpi-f08/ireduce_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/ireduce_f08.F90 @@ -15,8 +15,8 @@ subroutine MPI_Ireduce_f08(sendbuf,recvbuf,count,datatype,op,root,comm,request,i use :: mpi_f08_types, only : MPI_Datatype, MPI_Op, MPI_Comm, MPI_Request use :: ompi_mpifh_bindings, only : ompi_ireduce_f implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf INTEGER, INTENT(IN) :: count, root TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Op), INTENT(IN) :: op diff --git a/ompi/mpi/fortran/use-mpi-f08/ireduce_scatter_block_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/ireduce_scatter_block_f08.F90 index 0e2a3906131..82f81af2d5c 100644 --- a/ompi/mpi/fortran/use-mpi-f08/ireduce_scatter_block_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/ireduce_scatter_block_f08.F90 @@ -15,8 +15,8 @@ subroutine MPI_Ireduce_scatter_block_f08(sendbuf,recvbuf,recvcount,datatype,op,c use :: mpi_f08_types, only : MPI_Datatype, MPI_Op, MPI_Comm, MPI_Request use :: ompi_mpifh_bindings, only : ompi_ireduce_scatter_block_f implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf INTEGER, INTENT(IN) :: recvcount TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Op), INTENT(IN) :: op diff --git a/ompi/mpi/fortran/use-mpi-f08/ireduce_scatter_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/ireduce_scatter_f08.F90 index 8f1c4db8d46..d8b95b6ceb8 100644 --- a/ompi/mpi/fortran/use-mpi-f08/ireduce_scatter_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/ireduce_scatter_f08.F90 @@ -15,8 +15,8 @@ subroutine MPI_Ireduce_scatter_f08(sendbuf,recvbuf,recvcounts,datatype,op,comm,r use :: mpi_f08_types, only : MPI_Datatype, MPI_Op, MPI_Comm, MPI_Request use :: ompi_mpifh_bindings, only : ompi_ireduce_scatter_f implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf INTEGER, INTENT(IN) OMPI_ASYNCHRONOUS :: recvcounts(*) TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Op), INTENT(IN) :: op diff --git a/ompi/mpi/fortran/use-mpi-f08/irsend_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/irsend_f08.F90 index b87f025b284..b8a43e15c4c 100644 --- a/ompi/mpi/fortran/use-mpi-f08/irsend_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/irsend_f08.F90 @@ -15,7 +15,7 @@ subroutine MPI_Irsend_f08(buf,count,datatype,dest,tag,comm,request,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request use :: ompi_mpifh_bindings, only : ompi_irsend_f implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: buf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: buf INTEGER, INTENT(IN) :: count, dest, tag TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Comm), INTENT(IN) :: comm diff --git a/ompi/mpi/fortran/use-mpi-f08/iscan_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/iscan_f08.F90 index 5504b6f16c0..2cd4f49b6af 100644 --- a/ompi/mpi/fortran/use-mpi-f08/iscan_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/iscan_f08.F90 @@ -15,8 +15,8 @@ subroutine MPI_Iscan_f08(sendbuf,recvbuf,count,datatype,op,comm,request,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Op, MPI_Comm, MPI_Request use :: ompi_mpifh_bindings, only : ompi_iscan_f implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf INTEGER, INTENT(IN) :: count TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Op), INTENT(IN) :: op diff --git a/ompi/mpi/fortran/use-mpi-f08/iscatter_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/iscatter_f08.F90 index 3849525959e..b8793f152b9 100644 --- a/ompi/mpi/fortran/use-mpi-f08/iscatter_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/iscatter_f08.F90 @@ -16,8 +16,8 @@ subroutine MPI_Iscatter_f08(sendbuf,sendcount,sendtype,recvbuf,& use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request use :: ompi_mpifh_bindings, only : ompi_iscatter_f implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf INTEGER, INTENT(IN) :: sendcount, recvcount, root TYPE(MPI_Datatype), INTENT(IN) :: sendtype TYPE(MPI_Datatype), INTENT(IN) :: recvtype diff --git a/ompi/mpi/fortran/use-mpi-f08/iscatterv_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/iscatterv_f08.F90 index ddc1b429a69..7549dd39a4e 100644 --- a/ompi/mpi/fortran/use-mpi-f08/iscatterv_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/iscatterv_f08.F90 @@ -16,8 +16,8 @@ subroutine MPI_Iscatterv_f08(sendbuf,sendcounts,displs,sendtype,recvbuf,& use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request use :: ompi_mpifh_bindings, only : ompi_iscatterv_f implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: recvbuf INTEGER, INTENT(IN) :: recvcount, root INTEGER, INTENT(IN) OMPI_ASYNCHRONOUS :: sendcounts(*), displs(*) TYPE(MPI_Datatype), INTENT(IN) :: sendtype diff --git a/ompi/mpi/fortran/use-mpi-f08/isend_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/isend_f08.F90 index c3d2600515b..0926d5ea419 100644 --- a/ompi/mpi/fortran/use-mpi-f08/isend_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/isend_f08.F90 @@ -15,7 +15,7 @@ subroutine MPI_Isend_f08(buf,count,datatype,dest,tag,comm,request,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request use :: ompi_mpifh_bindings, only : ompi_isend_f implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: buf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: buf INTEGER, INTENT(IN) :: count, dest, tag TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Comm), INTENT(IN) :: comm diff --git a/ompi/mpi/fortran/use-mpi-f08/issend_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/issend_f08.F90 index d9ba894d04d..ea8c3d83832 100644 --- a/ompi/mpi/fortran/use-mpi-f08/issend_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/issend_f08.F90 @@ -15,7 +15,7 @@ subroutine MPI_Issend_f08(buf,count,datatype,dest,tag,comm,request,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request use :: ompi_mpifh_bindings, only : ompi_issend_f implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: buf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: buf INTEGER, INTENT(IN) :: count, dest, tag TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Comm), INTENT(IN) :: comm diff --git a/ompi/mpi/fortran/use-mpi-f08/mod/Makefile.am b/ompi/mpi/fortran/use-mpi-f08/mod/Makefile.am index 87f1c2db8ba..f7b312c2496 100644 --- a/ompi/mpi/fortran/use-mpi-f08/mod/Makefile.am +++ b/ompi/mpi/fortran/use-mpi-f08/mod/Makefile.am @@ -64,7 +64,10 @@ libforce_usempif08_internal_modules_to_be_built_la_SOURCES = \ nodist_noinst_HEADERS = mpi-f08-interfaces.h -noinst_HEADERS = mpi-f08-rename.h +noinst_HEADERS = \ + mpi-f08-subarrays-config.h \ + mpi-f08-rename.h \ + mpi-f08-interfaces.h libforce_usempi_internal_modules_to_be_built.la: libusempif08_internal_modules.la diff --git a/ompi/mpi/fortran/use-mpi-f08/mod/mpi-f08-interfaces.h.in b/ompi/mpi/fortran/use-mpi-f08/mod/mpi-f08-interfaces.h.in index f67a295eacc..0f4d8934e7e 100644 --- a/ompi/mpi/fortran/use-mpi-f08/mod/mpi-f08-interfaces.h.in +++ b/ompi/mpi/fortran/use-mpi-f08/mod/mpi-f08-interfaces.h.in @@ -20,40 +20,40 @@ ! name (e.g., "MPI_Init_f08"). interface MPI_Bsend -subroutine MPI_Bsend_f08(buf,count,datatype,dest,tag,comm,ierror) +subroutine MPI_Bsend_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(buf,count,datatype,dest,tag,comm,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm implicit none - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ buf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) :: buf + @OMPI_F08_IGNORE_TKR_PREDECL@ buf + @OMPI_F08_IGNORE_TKR_TYPE@, INTENT(IN) :: buf INTEGER, INTENT(IN) :: count, dest, tag TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Comm), INTENT(IN) :: comm INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_Bsend_f08 +end subroutine MPI_Bsend_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_Bsend interface MPI_Bsend_init -subroutine MPI_Bsend_init_f08(buf,count,datatype,dest,tag,comm,request,ierror) +subroutine MPI_Bsend_init_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(buf,count,datatype,dest,tag,comm,request,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request implicit none - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ buf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: buf + @OMPI_F08_IGNORE_TKR_PREDECL@ buf + @OMPI_F08_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: buf INTEGER, INTENT(IN) :: count, dest, tag TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Comm), INTENT(IN) :: comm TYPE(MPI_Request), INTENT(OUT) :: request INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_Bsend_init_f08 +end subroutine MPI_Bsend_init_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_Bsend_init interface MPI_Buffer_attach -subroutine MPI_Buffer_attach_f08(buffer,size,ierror) +subroutine MPI_Buffer_attach_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(buffer,size,ierror) implicit none - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ buffer - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: buffer + @OMPI_F08_IGNORE_TKR_PREDECL@ buffer + @OMPI_F08_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: buffer INTEGER, INTENT(IN) :: size INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_Buffer_attach_f08 +end subroutine MPI_Buffer_attach_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_Buffer_attach interface MPI_Buffer_detach @@ -87,17 +87,17 @@ end subroutine MPI_Get_count_f08 end interface MPI_Get_count interface MPI_Ibsend -subroutine MPI_Ibsend_f08(buf,count,datatype,dest,tag,comm,request,ierror) +subroutine MPI_Ibsend_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(buf,count,datatype,dest,tag,comm,request,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request implicit none - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ buf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: buf + @OMPI_F08_IGNORE_TKR_PREDECL@ buf + @OMPI_F08_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: buf INTEGER, INTENT(IN) :: count, dest, tag TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Comm), INTENT(IN) :: comm TYPE(MPI_Request), INTENT(OUT) :: request INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_Ibsend_f08 +end subroutine MPI_Ibsend_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_Ibsend interface MPI_Iprobe @@ -113,45 +113,45 @@ end subroutine MPI_Iprobe_f08 end interface MPI_Iprobe interface MPI_Irecv -subroutine MPI_Irecv_f08(buf,count,datatype,source,tag,comm,request,ierror) +subroutine MPI_Irecv_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(buf,count,datatype,source,tag,comm,request,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request implicit none - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ buf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: buf + @OMPI_F08_IGNORE_TKR_PREDECL@ buf + @OMPI_F08_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: buf INTEGER, INTENT(IN) :: count, source, tag TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Comm), INTENT(IN) :: comm TYPE(MPI_Request), INTENT(OUT) :: request INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_Irecv_f08 +end subroutine MPI_Irecv_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_Irecv interface MPI_Irsend -subroutine MPI_Irsend_f08(buf,count,datatype,dest,tag,comm,request,ierror) +subroutine MPI_Irsend_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(buf,count,datatype,dest,tag,comm,request,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request implicit none - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ buf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: buf + @OMPI_F08_IGNORE_TKR_PREDECL@ buf + @OMPI_F08_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: buf INTEGER, INTENT(IN) :: count, dest, tag TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Comm), INTENT(IN) :: comm TYPE(MPI_Request), INTENT(OUT) :: request INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_Irsend_f08 +end subroutine MPI_Irsend_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_Irsend interface MPI_Isend -subroutine MPI_Isend_f08(buf,count,datatype,dest,tag,comm,request,ierror) +subroutine MPI_Isend_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(buf,count,datatype,dest,tag,comm,request,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request implicit none - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ buf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: buf + @OMPI_F08_IGNORE_TKR_PREDECL@ buf + @OMPI_F08_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: buf INTEGER, INTENT(IN) :: count, dest, tag TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Comm), INTENT(IN) :: comm TYPE(MPI_Request), INTENT(OUT) :: request INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_Isend_f08 +end subroutine MPI_Isend_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_Isend interface MPI_Isendrecv @@ -159,9 +159,9 @@ subroutine MPI_Isendrecv_f08(sendbuf,sendcount,sendtype,dest,sendtag,recvbuf, & recvcount,recvtype,source,recvtag,comm,request,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request implicit none - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ sendbuf, recvbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) :: sendbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ :: recvbuf + @OMPI_F08_IGNORE_TKR_PREDECL@ sendbuf, recvbuf + @OMPI_F08_IGNORE_TKR_TYPE@, INTENT(IN) :: sendbuf + @OMPI_F08_IGNORE_TKR_TYPE@ :: recvbuf INTEGER, INTENT(IN) :: sendcount, dest, sendtag, recvcount, source, recvtag TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype TYPE(MPI_Comm), INTENT(IN) :: comm @@ -175,8 +175,8 @@ subroutine MPI_Isendrecv_replace_f08(buf,count,datatype,dest,sendtag,source,recv comm,request,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request implicit none - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ buf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ :: buf + @OMPI_F08_IGNORE_TKR_PREDECL@ buf + @OMPI_F08_IGNORE_TKR_TYPE@ :: buf INTEGER, INTENT(IN) :: count, dest, sendtag, source, recvtag TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Comm), INTENT(IN) :: comm @@ -186,29 +186,24 @@ end subroutine MPI_Isendrecv_replace_f08 end interface MPI_Isendrecv_replace interface MPI_Issend -subroutine MPI_Issend_f08(buf,count,datatype,dest,tag,comm,request,ierror) +subroutine MPI_Issend_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(buf,count,datatype,dest,tag,comm,request,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request implicit none - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ buf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: buf + @OMPI_F08_IGNORE_TKR_PREDECL@ buf + @OMPI_F08_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: buf INTEGER, INTENT(IN) :: count, dest, tag TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Comm), INTENT(IN) :: comm TYPE(MPI_Request), INTENT(OUT) :: request INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_Issend_f08 +end subroutine MPI_Issend_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_Issend interface MPI_Precv_init subroutine MPI_Precv_init_f08(buf,partitions,count,datatype,dest,tag,comm,request,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request implicit none - !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf - !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf - !$PRAGMA IGNORE_TKR buf - !DIR$ IGNORE_TKR buf - !IBM* IGNORE_TKR buf - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: buf INTEGER, INTENT(IN) :: partitions, count, dest, tag TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Comm), INTENT(IN) :: comm @@ -221,12 +216,7 @@ interface MPI_Psend_init subroutine MPI_Psend_init_f08(buf,partitions,count,datatype,dest,tag,comm,request,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request implicit none - !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf - !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf - !$PRAGMA IGNORE_TKR buf - !DIR$ IGNORE_TKR buf - !IBM* IGNORE_TKR buf - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: buf INTEGER, INTENT(IN) :: partitions, count, dest, tag TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Comm), INTENT(IN) :: comm @@ -289,31 +279,31 @@ end subroutine MPI_Probe_f08 end interface MPI_Probe interface MPI_Recv -subroutine MPI_Recv_f08(buf,count,datatype,source,tag,comm,status,ierror) +subroutine MPI_Recv_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(buf,count,datatype,source,tag,comm,status,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Status implicit none - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ buf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ :: buf + @OMPI_F08_IGNORE_TKR_PREDECL@ buf + @OMPI_F08_IGNORE_TKR_TYPE@ :: buf INTEGER, INTENT(IN) :: count, source, tag TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Comm), INTENT(IN) :: comm TYPE(MPI_Status) :: status INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_Recv_f08 +end subroutine MPI_Recv_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_Recv interface MPI_Recv_init -subroutine MPI_Recv_init_f08(buf,count,datatype,source,tag,comm,request,ierror) +subroutine MPI_Recv_init_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(buf,count,datatype,source,tag,comm,request,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request implicit none - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ buf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: buf + @OMPI_F08_IGNORE_TKR_PREDECL@ buf + @OMPI_F08_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: buf INTEGER, INTENT(IN) :: count, source, tag TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Comm), INTENT(IN) :: comm TYPE(MPI_Request), INTENT(OUT) :: request INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_Recv_init_f08 +end subroutine MPI_Recv_init_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_Recv_init interface MPI_Request_free @@ -337,88 +327,88 @@ end subroutine MPI_Request_get_status_f08 end interface MPI_Request_get_status interface MPI_Rsend -subroutine MPI_Rsend_f08(buf,count,datatype,dest,tag,comm,ierror) +subroutine MPI_Rsend_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(buf,count,datatype,dest,tag,comm,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm implicit none - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ buf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) :: buf + @OMPI_F08_IGNORE_TKR_PREDECL@ buf + @OMPI_F08_IGNORE_TKR_TYPE@, INTENT(IN) :: buf INTEGER, INTENT(IN) :: count, dest, tag TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Comm), INTENT(IN) :: comm INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_Rsend_f08 +end subroutine MPI_Rsend_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_Rsend interface MPI_Rsend_init -subroutine MPI_Rsend_init_f08(buf,count,datatype,dest,tag,comm,request,ierror) +subroutine MPI_Rsend_init_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(buf,count,datatype,dest,tag,comm,request,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request implicit none - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ buf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: buf + @OMPI_F08_IGNORE_TKR_PREDECL@ buf + @OMPI_F08_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: buf INTEGER, INTENT(IN) :: count, dest, tag TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Comm), INTENT(IN) :: comm TYPE(MPI_Request), INTENT(OUT) :: request INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_Rsend_init_f08 +end subroutine MPI_Rsend_init_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_Rsend_init interface MPI_Send -subroutine MPI_Send_f08(buf,count,datatype,dest,tag,comm,ierror) +subroutine MPI_Send_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(buf,count,datatype,dest,tag,comm,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm implicit none - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ buf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) :: buf + @OMPI_F08_IGNORE_TKR_PREDECL@ buf + @OMPI_F08_IGNORE_TKR_TYPE@, INTENT(IN) :: buf INTEGER, INTENT(IN) :: count, dest, tag TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Comm), INTENT(IN) :: comm INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_Send_f08 +end subroutine MPI_Send_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_Send interface MPI_Sendrecv -subroutine MPI_Sendrecv_f08(sendbuf,sendcount,sendtype,dest,sendtag,recvbuf, & +subroutine MPI_Sendrecv_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(sendbuf,sendcount,sendtype,dest,sendtag,recvbuf, & recvcount,recvtype,source,recvtag,comm,status,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Status implicit none - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ sendbuf, recvbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) :: sendbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ :: recvbuf + @OMPI_F08_IGNORE_TKR_PREDECL@ sendbuf, recvbuf + @OMPI_F08_IGNORE_TKR_TYPE@, INTENT(IN) :: sendbuf + @OMPI_F08_IGNORE_TKR_TYPE@ :: recvbuf INTEGER, INTENT(IN) :: sendcount, dest, sendtag, recvcount, source, recvtag TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype TYPE(MPI_Comm), INTENT(IN) :: comm TYPE(MPI_Status) :: status INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_Sendrecv_f08 +end subroutine MPI_Sendrecv_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_Sendrecv interface MPI_Sendrecv_replace -subroutine MPI_Sendrecv_replace_f08(buf,count,datatype,dest,sendtag,source,recvtag, & +subroutine MPI_Sendrecv_replace_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(buf,count,datatype,dest,sendtag,source,recvtag, & comm,status,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Status implicit none - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ buf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ :: buf + @OMPI_F08_IGNORE_TKR_PREDECL@ buf + @OMPI_F08_IGNORE_TKR_TYPE@ :: buf INTEGER, INTENT(IN) :: count, dest, sendtag, source, recvtag TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Comm), INTENT(IN) :: comm TYPE(MPI_Status) :: status INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_Sendrecv_replace_f08 +end subroutine MPI_Sendrecv_replace_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_Sendrecv_replace interface MPI_Send_init -subroutine MPI_Send_init_f08(buf,count,datatype,dest,tag,comm,request,ierror) +subroutine MPI_Send_init_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(buf,count,datatype,dest,tag,comm,request,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request implicit none - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ buf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: buf + @OMPI_F08_IGNORE_TKR_PREDECL@ buf + @OMPI_F08_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: buf INTEGER, INTENT(IN) :: count, dest, tag TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Comm), INTENT(IN) :: comm TYPE(MPI_Request), INTENT(OUT) :: request INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_Send_init_f08 +end subroutine MPI_Send_init_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_Send_init interface MPI_Session_get_info @@ -487,30 +477,30 @@ end subroutine MPI_Session_finalize_f08 end interface MPI_Session_finalize interface MPI_Ssend -subroutine MPI_Ssend_f08(buf,count,datatype,dest,tag,comm,ierror) +subroutine MPI_Ssend_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(buf,count,datatype,dest,tag,comm,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm implicit none - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ buf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) :: buf + @OMPI_F08_IGNORE_TKR_PREDECL@ buf + @OMPI_F08_IGNORE_TKR_TYPE@, INTENT(IN) :: buf INTEGER, INTENT(IN) :: count, dest, tag TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Comm), INTENT(IN) :: comm INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_Ssend_f08 +end subroutine MPI_Ssend_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_Ssend interface MPI_Ssend_init -subroutine MPI_Ssend_init_f08(buf,count,datatype,dest,tag,comm,request,ierror) +subroutine MPI_Ssend_init_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(buf,count,datatype,dest,tag,comm,request,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request implicit none - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ buf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: buf + @OMPI_F08_IGNORE_TKR_PREDECL@ buf + @OMPI_F08_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: buf INTEGER, INTENT(IN) :: count, dest, tag TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Comm), INTENT(IN) :: comm TYPE(MPI_Request), INTENT(OUT) :: request INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_Ssend_init_f08 +end subroutine MPI_Ssend_init_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_Ssend_init interface MPI_Start @@ -638,14 +628,14 @@ end subroutine MPI_Waitsome_f08 end interface MPI_Waitsome interface MPI_Get_address -subroutine MPI_Get_address_f08(location,address,ierror) +subroutine MPI_Get_address_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(location,address,ierror) use :: mpi_f08_types, only : MPI_ADDRESS_KIND implicit none - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ location - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: location + @OMPI_F08_IGNORE_TKR_PREDECL@ location + @OMPI_F08_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: location INTEGER(MPI_ADDRESS_KIND), INTENT(OUT) :: address INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_Get_address_f08 +end subroutine MPI_Get_address_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_Get_address interface MPI_Get_elements @@ -671,39 +661,39 @@ end subroutine MPI_Get_elements_x_f08 end interface MPI_Get_elements_x interface MPI_Pack -subroutine MPI_Pack_f08(inbuf,incount,datatype,outbuf,outsize,position,comm,ierror) +subroutine MPI_Pack_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(inbuf,incount,datatype,outbuf,outsize,position,comm,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm implicit none - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ inbuf, outbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) :: inbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ :: outbuf + @OMPI_F08_IGNORE_TKR_PREDECL@ inbuf, outbuf + @OMPI_F08_IGNORE_TKR_TYPE@, INTENT(IN) :: inbuf + @OMPI_F08_IGNORE_TKR_TYPE@ :: outbuf INTEGER, INTENT(IN) :: incount, outsize TYPE(MPI_Datatype), INTENT(IN) :: datatype INTEGER, INTENT(INOUT) :: position TYPE(MPI_Comm), INTENT(IN) :: comm INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_Pack_f08 +end subroutine MPI_Pack_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_Pack interface MPI_Pack_external -subroutine MPI_Pack_external_f08(datarep,inbuf,incount,datatype,outbuf,outsize, & +subroutine MPI_Pack_external_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(datarep,inbuf,incount,datatype,outbuf,outsize, & position,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_ADDRESS_KIND implicit none CHARACTER(LEN=*), INTENT(IN) :: datarep - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ inbuf, outbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) :: inbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ :: outbuf + @OMPI_F08_IGNORE_TKR_PREDECL@ inbuf, outbuf + @OMPI_F08_IGNORE_TKR_TYPE@, INTENT(IN) :: inbuf + @OMPI_F08_IGNORE_TKR_TYPE@ :: outbuf INTEGER, INTENT(IN) :: incount TYPE(MPI_Datatype), INTENT(IN) :: datatype INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: outsize INTEGER(MPI_ADDRESS_KIND), INTENT(INOUT) :: position INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_Pack_external_f08 +end subroutine MPI_Pack_external_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_Pack_external interface MPI_Pack_external_size -subroutine MPI_Pack_external_size_f08(datarep,incount,datatype,size,ierror & +subroutine MPI_Pack_external_size_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(datarep,incount,datatype,size,ierror & ) use :: mpi_f08_types, only : MPI_Datatype, MPI_ADDRESS_KIND implicit none @@ -712,7 +702,7 @@ subroutine MPI_Pack_external_size_f08(datarep,incount,datatype,size,ierror & CHARACTER(LEN=*), INTENT(IN) :: datarep INTEGER(MPI_ADDRESS_KIND), INTENT(OUT) :: size INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_Pack_external_size_f08 +end subroutine MPI_Pack_external_size_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_Pack_external_size interface MPI_Pack_size @@ -983,68 +973,68 @@ end subroutine MPI_Type_vector_f08 end interface MPI_Type_vector interface MPI_Unpack -subroutine MPI_Unpack_f08(inbuf,insize,position,outbuf,outcount,datatype,comm, & +subroutine MPI_Unpack_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(inbuf,insize,position,outbuf,outcount,datatype,comm, & ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm implicit none - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ inbuf, outbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) :: inbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ :: outbuf + @OMPI_F08_IGNORE_TKR_PREDECL@ inbuf, outbuf + @OMPI_F08_IGNORE_TKR_TYPE@, INTENT(IN) :: inbuf + @OMPI_F08_IGNORE_TKR_TYPE@ :: outbuf INTEGER, INTENT(IN) :: insize, outcount INTEGER, INTENT(INOUT) :: position TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Comm), INTENT(IN) :: comm INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_Unpack_f08 +end subroutine MPI_Unpack_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_Unpack interface MPI_Unpack_external -subroutine MPI_Unpack_external_f08(datarep,inbuf,insize,position,outbuf,outcount, & +subroutine MPI_Unpack_external_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(datarep,inbuf,insize,position,outbuf,outcount, & datatype,ierror & ) use :: mpi_f08_types, only : MPI_Datatype, MPI_ADDRESS_KIND implicit none CHARACTER(LEN=*), INTENT(IN) :: datarep - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ inbuf, outbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) :: inbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ :: outbuf + @OMPI_F08_IGNORE_TKR_PREDECL@ inbuf, outbuf + @OMPI_F08_IGNORE_TKR_TYPE@, INTENT(IN) :: inbuf + @OMPI_F08_IGNORE_TKR_TYPE@ :: outbuf INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: insize INTEGER(MPI_ADDRESS_KIND), INTENT(INOUT) :: position INTEGER, INTENT(IN) :: outcount TYPE(MPI_Datatype), INTENT(IN) :: datatype INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_Unpack_external_f08 +end subroutine MPI_Unpack_external_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_Unpack_external interface MPI_Allgather -subroutine MPI_Allgather_f08(sendbuf,sendcount,sendtype,recvbuf,recvcount,recvtype, & +subroutine MPI_Allgather_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(sendbuf,sendcount,sendtype,recvbuf,recvcount,recvtype, & comm,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm implicit none - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ sendbuf, recvbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) :: sendbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ :: recvbuf + @OMPI_F08_IGNORE_TKR_PREDECL@ sendbuf, recvbuf + @OMPI_F08_IGNORE_TKR_TYPE@, INTENT(IN) :: sendbuf + @OMPI_F08_IGNORE_TKR_TYPE@ :: recvbuf INTEGER, INTENT(IN) :: sendcount, recvcount TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype TYPE(MPI_Comm), INTENT(IN) :: comm INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_Allgather_f08 +end subroutine MPI_Allgather_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_Allgather interface MPI_Iallgather -subroutine MPI_Iallgather_f08(sendbuf,sendcount,sendtype,recvbuf,recvcount,recvtype, & +subroutine MPI_Iallgather_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(sendbuf,sendcount,sendtype,recvbuf,recvcount,recvtype, & comm,request,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request implicit none - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ sendbuf, recvbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: recvbuf + @OMPI_F08_IGNORE_TKR_PREDECL@ sendbuf, recvbuf + @OMPI_F08_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf + @OMPI_F08_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: recvbuf INTEGER, INTENT(IN) :: sendcount, recvcount TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype TYPE(MPI_Comm), INTENT(IN) :: comm TYPE(MPI_Request), INTENT(OUT) :: request INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_Iallgather_f08 +end subroutine MPI_Iallgather_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_Iallgather interface MPI_Allgather_init @@ -1052,9 +1042,9 @@ subroutine MPI_Allgather_init_f08(sendbuf,sendcount,sendtype,recvbuf,recvcount,r comm,info,request,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Info, MPI_Request implicit none - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ sendbuf, recvbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: recvbuf + @OMPI_F08_IGNORE_TKR_PREDECL@ sendbuf, recvbuf + @OMPI_F08_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf + @OMPI_F08_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: recvbuf INTEGER, INTENT(IN) :: sendcount, recvcount TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype TYPE(MPI_Comm), INTENT(IN) :: comm @@ -1065,36 +1055,36 @@ end subroutine MPI_Allgather_init_f08 end interface MPI_Allgather_init interface MPI_Allgatherv -subroutine MPI_Allgatherv_f08(sendbuf,sendcount,sendtype,recvbuf,recvcounts,displs, & +subroutine MPI_Allgatherv_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(sendbuf,sendcount,sendtype,recvbuf,recvcounts,displs, & recvtype,comm,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm implicit none - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ sendbuf, recvbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) :: sendbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ :: recvbuf + @OMPI_F08_IGNORE_TKR_PREDECL@ sendbuf, recvbuf + @OMPI_F08_IGNORE_TKR_TYPE@, INTENT(IN) :: sendbuf + @OMPI_F08_IGNORE_TKR_TYPE@ :: recvbuf INTEGER, INTENT(IN) :: sendcount INTEGER, INTENT(IN) :: recvcounts(*), displs(*) TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype TYPE(MPI_Comm), INTENT(IN) :: comm INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_Allgatherv_f08 +end subroutine MPI_Allgatherv_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_Allgatherv interface MPI_Iallgatherv -subroutine MPI_Iallgatherv_f08(sendbuf,sendcount,sendtype,recvbuf,recvcounts,displs, & - recvtype,comm,request,ierror) +subroutine MPI_Iallgatherv_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(sendbuf,sendcount,sendtype,recvbuf,recvcounts,displs, & + recvtype,comm,request,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request implicit none - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ sendbuf, recvbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: recvbuf + @OMPI_F08_IGNORE_TKR_PREDECL@ sendbuf, recvbuf + @OMPI_F08_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf + @OMPI_F08_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: recvbuf INTEGER, INTENT(IN) :: sendcount INTEGER, INTENT(IN) OMPI_ASYNCHRONOUS :: recvcounts(*), displs(*) TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype TYPE(MPI_Comm), INTENT(IN) :: comm TYPE(MPI_Request), INTENT(OUT) :: request INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_Iallgatherv_f08 +end subroutine MPI_Iallgatherv_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_Iallgatherv interface MPI_Allgatherv_init @@ -1102,9 +1092,9 @@ subroutine MPI_Allgatherv_init_f08(sendbuf,sendcount,sendtype,recvbuf,recvcounts recvtype,comm,info,request,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Info, MPI_Request implicit none - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ sendbuf, recvbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: recvbuf + @OMPI_F08_IGNORE_TKR_PREDECL@ sendbuf, recvbuf + @OMPI_F08_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf + @OMPI_F08_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: recvbuf INTEGER, INTENT(IN) :: sendcount INTEGER, INTENT(IN) OMPI_ASYNCHRONOUS :: recvcounts(*), displs(*) TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype @@ -1116,43 +1106,43 @@ end subroutine MPI_Allgatherv_init_f08 end interface MPI_Allgatherv_init interface MPI_Allreduce -subroutine MPI_Allreduce_f08(sendbuf,recvbuf,count,datatype,op,comm,ierror) +subroutine MPI_Allreduce_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(sendbuf,recvbuf,count,datatype,op,comm,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Op, MPI_Comm implicit none - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ sendbuf, recvbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) :: sendbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ :: recvbuf + @OMPI_F08_IGNORE_TKR_PREDECL@ sendbuf, recvbuf + @OMPI_F08_IGNORE_TKR_TYPE@, INTENT(IN) :: sendbuf + @OMPI_F08_IGNORE_TKR_TYPE@ :: recvbuf INTEGER, INTENT(IN) :: count TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Op), INTENT(IN) :: op TYPE(MPI_Comm), INTENT(IN) :: comm INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_Allreduce_f08 +end subroutine MPI_Allreduce_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_Allreduce interface MPI_Iallreduce -subroutine MPI_Iallreduce_f08(sendbuf,recvbuf,count,datatype,op,comm,request,ierror) +subroutine MPI_Iallreduce_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(sendbuf,recvbuf,count,datatype,op,comm,request,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Op, MPI_Comm, MPI_Request implicit none - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ sendbuf, recvbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: recvbuf + @OMPI_F08_IGNORE_TKR_PREDECL@ sendbuf, recvbuf + @OMPI_F08_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf + @OMPI_F08_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: recvbuf INTEGER, INTENT(IN) :: count TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Op), INTENT(IN) :: op TYPE(MPI_Comm), INTENT(IN) :: comm TYPE(MPI_Request), INTENT(OUT) :: request INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_Iallreduce_f08 +end subroutine MPI_Iallreduce_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_Iallreduce interface MPI_Allreduce_init subroutine MPI_Allreduce_init_f08(sendbuf,recvbuf,count,datatype,op,comm,info,request,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Op, MPI_Comm, MPI_Info, MPI_Request implicit none - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ sendbuf, recvbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: recvbuf + @OMPI_F08_IGNORE_TKR_PREDECL@ sendbuf, recvbuf + @OMPI_F08_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf + @OMPI_F08_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: recvbuf INTEGER, INTENT(IN) :: count TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Op), INTENT(IN) :: op @@ -1164,34 +1154,34 @@ end subroutine MPI_Allreduce_init_f08 end interface MPI_Allreduce_init interface MPI_Alltoall -subroutine MPI_Alltoall_f08(sendbuf,sendcount,sendtype,recvbuf,recvcount,recvtype, & +subroutine MPI_Alltoall_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(sendbuf,sendcount,sendtype,recvbuf,recvcount,recvtype, & comm,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm implicit none - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ sendbuf, recvbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) :: sendbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ :: recvbuf + @OMPI_F08_IGNORE_TKR_PREDECL@ sendbuf, recvbuf + @OMPI_F08_IGNORE_TKR_TYPE@, INTENT(IN) :: sendbuf + @OMPI_F08_IGNORE_TKR_TYPE@ :: recvbuf INTEGER, INTENT(IN) :: sendcount, recvcount TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype TYPE(MPI_Comm), INTENT(IN) :: comm INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_Alltoall_f08 +end subroutine MPI_Alltoall_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_Alltoall interface MPI_Ialltoall -subroutine MPI_Ialltoall_f08(sendbuf,sendcount,sendtype,recvbuf,recvcount,recvtype, & - comm,request,ierror) +subroutine MPI_Ialltoall_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(sendbuf,sendcount,sendtype,recvbuf,recvcount,recvtype, & + comm,request,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request implicit none - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ sendbuf, recvbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: recvbuf + @OMPI_F08_IGNORE_TKR_PREDECL@ sendbuf, recvbuf + @OMPI_F08_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf + @OMPI_F08_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: recvbuf INTEGER, INTENT(IN) :: sendcount, recvcount TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype TYPE(MPI_Comm), INTENT(IN) :: comm TYPE(MPI_Request), INTENT(OUT) :: request INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_Ialltoall_f08 +end subroutine MPI_Ialltoall_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_Ialltoall interface MPI_Alltoall_init @@ -1199,9 +1189,9 @@ subroutine MPI_Alltoall_init_f08(sendbuf,sendcount,sendtype,recvbuf,recvcount,re comm,info,request,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Info, MPI_Request implicit none - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ sendbuf, recvbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: recvbuf + @OMPI_F08_IGNORE_TKR_PREDECL@ sendbuf, recvbuf + @OMPI_F08_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf + @OMPI_F08_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: recvbuf INTEGER, INTENT(IN) OMPI_ASYNCHRONOUS :: sendcount, recvcount TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype TYPE(MPI_Comm), INTENT(IN) :: comm @@ -1212,34 +1202,34 @@ end subroutine MPI_Alltoall_init_f08 end interface MPI_Alltoall_init interface MPI_Alltoallv -subroutine MPI_Alltoallv_f08(sendbuf,sendcounts,sdispls,sendtype,recvbuf,recvcounts, & +subroutine MPI_Alltoallv_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(sendbuf,sendcounts,sdispls,sendtype,recvbuf,recvcounts, & rdispls,recvtype,comm,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm implicit none - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ sendbuf, recvbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) :: sendbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ :: recvbuf + @OMPI_F08_IGNORE_TKR_PREDECL@ sendbuf, recvbuf + @OMPI_F08_IGNORE_TKR_TYPE@, INTENT(IN) :: sendbuf + @OMPI_F08_IGNORE_TKR_TYPE@ :: recvbuf INTEGER, INTENT(IN) :: sendcounts(*), sdispls(*), recvcounts(*), rdispls(*) TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype TYPE(MPI_Comm), INTENT(IN) :: comm INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_Alltoallv_f08 +end subroutine MPI_Alltoallv_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_Alltoallv interface MPI_Ialltoallv -subroutine MPI_Ialltoallv_f08(sendbuf,sendcounts,sdispls,sendtype,recvbuf,recvcounts, & - rdispls,recvtype,comm,request,ierror) +subroutine MPI_Ialltoallv_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(sendbuf,sendcounts,sdispls,sendtype,recvbuf,recvcounts, & + rdispls,recvtype,comm,request,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request implicit none - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ sendbuf, recvbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: recvbuf + @OMPI_F08_IGNORE_TKR_PREDECL@ sendbuf, recvbuf + @OMPI_F08_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf + @OMPI_F08_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: recvbuf INTEGER, INTENT(IN) OMPI_ASYNCHRONOUS :: sendcounts(*), sdispls(*), recvcounts(*), rdispls(*) TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype TYPE(MPI_Comm), INTENT(IN) :: comm TYPE(MPI_Request), INTENT(OUT) :: request INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_Ialltoallv_f08 +end subroutine MPI_Ialltoallv_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_Ialltoallv interface MPI_Alltoallv_init @@ -1247,9 +1237,9 @@ subroutine MPI_Alltoallv_init_f08(sendbuf,sendcounts,sdispls,sendtype,recvbuf,re rdispls,recvtype,comm,info,request,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Info, MPI_Request implicit none - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ sendbuf, recvbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: recvbuf + @OMPI_F08_IGNORE_TKR_PREDECL@ sendbuf, recvbuf + @OMPI_F08_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf + @OMPI_F08_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: recvbuf INTEGER, INTENT(IN) OMPI_ASYNCHRONOUS :: sendcounts(*), sdispls(*), recvcounts(*), rdispls(*) TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype TYPE(MPI_Comm), INTENT(IN) :: comm @@ -1260,34 +1250,34 @@ end subroutine MPI_Alltoallv_init_f08 end interface MPI_Alltoallv_init interface MPI_Alltoallw -subroutine MPI_Alltoallw_f08(sendbuf,sendcounts,sdispls,sendtypes,recvbuf,recvcounts, & +subroutine MPI_Alltoallw_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(sendbuf,sendcounts,sdispls,sendtypes,recvbuf,recvcounts, & rdispls,recvtypes,comm,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm implicit none - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ sendbuf, recvbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) :: sendbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ :: recvbuf + @OMPI_F08_IGNORE_TKR_PREDECL@ sendbuf, recvbuf + @OMPI_F08_IGNORE_TKR_TYPE@, INTENT(IN) :: sendbuf + @OMPI_F08_IGNORE_TKR_TYPE@ :: recvbuf INTEGER, INTENT(IN) :: sendcounts(*), sdispls(*), recvcounts(*), rdispls(*) TYPE(MPI_Datatype), INTENT(IN) :: sendtypes(*), recvtypes(*) TYPE(MPI_Comm), INTENT(IN) :: comm INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_Alltoallw_f08 +end subroutine MPI_Alltoallw_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_Alltoallw interface MPI_Ialltoallw -subroutine MPI_Ialltoallw_f08(sendbuf,sendcounts,sdispls,sendtypes,recvbuf,recvcounts, & - rdispls,recvtypes,comm,request,ierror) +subroutine MPI_Ialltoallw_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(sendbuf,sendcounts,sdispls,sendtypes,recvbuf,recvcounts, & + rdispls,recvtypes,comm,request,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request implicit none - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ sendbuf, recvbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: recvbuf + @OMPI_F08_IGNORE_TKR_PREDECL@ sendbuf, recvbuf + @OMPI_F08_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf + @OMPI_F08_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: recvbuf INTEGER, INTENT(IN) OMPI_ASYNCHRONOUS :: sendcounts(*), sdispls(*), recvcounts(*), rdispls(*) TYPE(MPI_Datatype), INTENT(IN) OMPI_ASYNCHRONOUS :: sendtypes(*), recvtypes(*) TYPE(MPI_Comm), INTENT(IN) :: comm TYPE(MPI_Request), INTENT(OUT) :: request INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_Ialltoallw_f08 +end subroutine MPI_Ialltoallw_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_Ialltoallw interface MPI_Alltoallw_init @@ -1295,9 +1285,9 @@ subroutine MPI_Alltoallw_init_f08(sendbuf,sendcounts,sdispls,sendtypes,recvbuf,r rdispls,recvtypes,comm,info,request,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Info, MPI_Request implicit none - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ sendbuf, recvbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: recvbuf + @OMPI_F08_IGNORE_TKR_PREDECL@ sendbuf, recvbuf + @OMPI_F08_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf + @OMPI_F08_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: recvbuf INTEGER, INTENT(IN) OMPI_ASYNCHRONOUS :: sendcounts(*), sdispls(*), recvcounts(*), rdispls(*) TYPE(MPI_Datatype), INTENT(IN) OMPI_ASYNCHRONOUS :: sendtypes(*), recvtypes(*) TYPE(MPI_Comm), INTENT(IN) :: comm @@ -1338,38 +1328,38 @@ end subroutine MPI_Barrier_init_f08 end interface MPI_Barrier_init interface MPI_Bcast -subroutine MPI_Bcast_f08(buffer,count,datatype,root,comm,ierror) +subroutine MPI_Bcast_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(buffer,count,datatype,root,comm,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm implicit none - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ buffer - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ :: buffer + @OMPI_F08_IGNORE_TKR_PREDECL@ buffer + @OMPI_F08_IGNORE_TKR_TYPE@ :: buffer INTEGER, INTENT(IN) :: count, root TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Comm), INTENT(IN) :: comm INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_Bcast_f08 +end subroutine MPI_Bcast_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_Bcast interface MPI_Ibcast -subroutine MPI_Ibcast_f08(buffer,count,datatype,root,comm,request,ierror) +subroutine MPI_Ibcast_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(buffer,count,datatype,root,comm,request,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request implicit none - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ buffer - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: buffer + @OMPI_F08_IGNORE_TKR_PREDECL@ buffer + @OMPI_F08_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: buffer INTEGER, INTENT(IN) :: count, root TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Comm), INTENT(IN) :: comm TYPE(MPI_Request), INTENT(OUT) :: request INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_Ibcast_f08 +end subroutine MPI_Ibcast_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_Ibcast interface MPI_Bcast_init subroutine MPI_Bcast_init_f08(buffer,count,datatype,root,comm,info,request,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Info, MPI_Request implicit none - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ buffer - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: buffer + @OMPI_F08_IGNORE_TKR_PREDECL@ buffer + @OMPI_F08_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: buffer INTEGER, INTENT(IN) :: count, root TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Comm), INTENT(IN) :: comm @@ -1380,43 +1370,43 @@ end subroutine MPI_Bcast_init_f08 end interface MPI_Bcast_init interface MPI_Exscan -subroutine MPI_Exscan_f08(sendbuf,recvbuf,count,datatype,op,comm,ierror) +subroutine MPI_Exscan_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(sendbuf,recvbuf,count,datatype,op,comm,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Op, MPI_Comm implicit none - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ sendbuf, recvbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) :: sendbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ :: recvbuf + @OMPI_F08_IGNORE_TKR_PREDECL@ sendbuf, recvbuf + @OMPI_F08_IGNORE_TKR_TYPE@, INTENT(IN) :: sendbuf + @OMPI_F08_IGNORE_TKR_TYPE@ :: recvbuf INTEGER, INTENT(IN) :: count TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Op), INTENT(IN) :: op TYPE(MPI_Comm), INTENT(IN) :: comm INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_Exscan_f08 +end subroutine MPI_Exscan_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_Exscan interface MPI_Iexscan -subroutine MPI_Iexscan_f08(sendbuf,recvbuf,count,datatype,op,comm,request,ierror) +subroutine MPI_Iexscan_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(sendbuf,recvbuf,count,datatype,op,comm,request,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Op, MPI_Comm, MPI_Request implicit none - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ sendbuf, recvbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: recvbuf + @OMPI_F08_IGNORE_TKR_PREDECL@ sendbuf, recvbuf + @OMPI_F08_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf + @OMPI_F08_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: recvbuf INTEGER, INTENT(IN) :: count TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Op), INTENT(IN) :: op TYPE(MPI_Comm), INTENT(IN) :: comm TYPE(MPI_Request), INTENT(OUT) :: request INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_Iexscan_f08 +end subroutine MPI_Iexscan_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_Iexscan interface MPI_Exscan_init subroutine MPI_Exscan_init_f08(sendbuf,recvbuf,count,datatype,op,comm,info,request,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Op, MPI_Comm, MPI_Info, MPI_Request implicit none - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ sendbuf, recvbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: recvbuf + @OMPI_F08_IGNORE_TKR_PREDECL@ sendbuf, recvbuf + @OMPI_F08_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf + @OMPI_F08_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: recvbuf INTEGER, INTENT(IN) :: count TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Op), INTENT(IN) :: op @@ -1428,34 +1418,34 @@ end subroutine MPI_Exscan_init_f08 end interface MPI_Exscan_init interface MPI_Gather -subroutine MPI_Gather_f08(sendbuf,sendcount,sendtype,recvbuf,recvcount,recvtype, & +subroutine MPI_Gather_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(sendbuf,sendcount,sendtype,recvbuf,recvcount,recvtype, & root,comm,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm implicit none - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ sendbuf, recvbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) :: sendbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ :: recvbuf + @OMPI_F08_IGNORE_TKR_PREDECL@ sendbuf, recvbuf + @OMPI_F08_IGNORE_TKR_TYPE@, INTENT(IN) :: sendbuf + @OMPI_F08_IGNORE_TKR_TYPE@ :: recvbuf INTEGER, INTENT(IN) :: sendcount, recvcount, root TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype TYPE(MPI_Comm), INTENT(IN) :: comm INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_Gather_f08 +end subroutine MPI_Gather_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_Gather interface MPI_Igather -subroutine MPI_Igather_f08(sendbuf,sendcount,sendtype,recvbuf,recvcount,recvtype, & - root,comm,request,ierror) +subroutine MPI_Igather_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(sendbuf,sendcount,sendtype,recvbuf,recvcount,recvtype, & + root,comm,request,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request implicit none - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ sendbuf, recvbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: recvbuf + @OMPI_F08_IGNORE_TKR_PREDECL@ sendbuf, recvbuf + @OMPI_F08_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf + @OMPI_F08_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: recvbuf INTEGER, INTENT(IN) :: sendcount, recvcount, root TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype TYPE(MPI_Comm), INTENT(IN) :: comm TYPE(MPI_Request), INTENT(OUT) :: request INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_Igather_f08 +end subroutine MPI_Igather_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_Igather interface MPI_Gather_init @@ -1463,9 +1453,9 @@ subroutine MPI_Gather_init_f08(sendbuf,sendcount,sendtype,recvbuf,recvcount,recv root,comm,info,request,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Info, MPI_Request implicit none - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ sendbuf, recvbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: recvbuf + @OMPI_F08_IGNORE_TKR_PREDECL@ sendbuf, recvbuf + @OMPI_F08_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf + @OMPI_F08_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: recvbuf INTEGER, INTENT(IN) :: sendcount, recvcount, root TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype TYPE(MPI_Comm), INTENT(IN) :: comm @@ -1476,36 +1466,36 @@ end subroutine MPI_Gather_init_f08 end interface MPI_Gather_init interface MPI_Gatherv -subroutine MPI_Gatherv_f08(sendbuf,sendcount,sendtype,recvbuf,recvcounts,displs, & +subroutine MPI_Gatherv_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(sendbuf,sendcount,sendtype,recvbuf,recvcounts,displs, & recvtype,root,comm,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm implicit none - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ sendbuf, recvbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) :: sendbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ :: recvbuf + @OMPI_F08_IGNORE_TKR_PREDECL@ sendbuf, recvbuf + @OMPI_F08_IGNORE_TKR_TYPE@, INTENT(IN) :: sendbuf + @OMPI_F08_IGNORE_TKR_TYPE@ :: recvbuf INTEGER, INTENT(IN) :: sendcount, root INTEGER, INTENT(IN) :: recvcounts(*), displs(*) TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype TYPE(MPI_Comm), INTENT(IN) :: comm INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_Gatherv_f08 +end subroutine MPI_Gatherv_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_Gatherv interface MPI_Igatherv -subroutine MPI_Igatherv_f08(sendbuf,sendcount,sendtype,recvbuf,recvcounts,displs, & - recvtype,root,comm,request,ierror) +subroutine MPI_Igatherv_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(sendbuf,sendcount,sendtype,recvbuf,recvcounts,displs, & + recvtype,root,comm,request,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request implicit none - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ sendbuf, recvbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: recvbuf + @OMPI_F08_IGNORE_TKR_PREDECL@ sendbuf, recvbuf + @OMPI_F08_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf + @OMPI_F08_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: recvbuf INTEGER, INTENT(IN) :: sendcount, root INTEGER, INTENT(IN) OMPI_ASYNCHRONOUS :: recvcounts(*), displs(*) TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype TYPE(MPI_Comm), INTENT(IN) :: comm TYPE(MPI_Request), INTENT(OUT) :: request INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_Igatherv_f08 +end subroutine MPI_Igatherv_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_Igatherv interface MPI_Gatherv_init @@ -1513,9 +1503,9 @@ subroutine MPI_Gatherv_init_f08(sendbuf,sendcount,sendtype,recvbuf,recvcounts,di recvtype,root,comm,info,request,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Info, MPI_Request implicit none - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ sendbuf, recvbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: recvbuf + @OMPI_F08_IGNORE_TKR_PREDECL@ sendbuf, recvbuf + @OMPI_F08_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf + @OMPI_F08_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: recvbuf INTEGER, INTENT(IN) :: sendcount, root INTEGER, INTENT(IN) OMPI_ASYNCHRONOUS :: recvcounts(*), displs(*) TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype @@ -1558,43 +1548,43 @@ end subroutine MPI_Op_free_f08 end interface MPI_Op_free interface MPI_Reduce -subroutine MPI_Reduce_f08(sendbuf,recvbuf,count,datatype,op,root,comm,ierror) +subroutine MPI_Reduce_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(sendbuf,recvbuf,count,datatype,op,root,comm,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Op, MPI_Comm implicit none - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ sendbuf, recvbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) :: sendbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ :: recvbuf + @OMPI_F08_IGNORE_TKR_PREDECL@ sendbuf, recvbuf + @OMPI_F08_IGNORE_TKR_TYPE@, INTENT(IN) :: sendbuf + @OMPI_F08_IGNORE_TKR_TYPE@ :: recvbuf INTEGER, INTENT(IN) :: count, root TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Op), INTENT(IN) :: op TYPE(MPI_Comm), INTENT(IN) :: comm INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_Reduce_f08 +end subroutine MPI_Reduce_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_Reduce interface MPI_Ireduce -subroutine MPI_Ireduce_f08(sendbuf,recvbuf,count,datatype,op,root,comm,request,ierror) +subroutine MPI_Ireduce_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(sendbuf,recvbuf,count,datatype,op,root,comm,request,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Op, MPI_Comm, MPI_Request implicit none - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ sendbuf, recvbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: recvbuf + @OMPI_F08_IGNORE_TKR_PREDECL@ sendbuf, recvbuf + @OMPI_F08_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf + @OMPI_F08_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: recvbuf INTEGER, INTENT(IN) :: count, root TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Op), INTENT(IN) :: op TYPE(MPI_Comm), INTENT(IN) :: comm TYPE(MPI_Request), INTENT(OUT) :: request INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_Ireduce_f08 +end subroutine MPI_Ireduce_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_Ireduce interface MPI_Reduce_init subroutine MPI_Reduce_init_f08(sendbuf,recvbuf,count,datatype,op,root,comm,info,request,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Op, MPI_Comm, MPI_Info, MPI_Request implicit none - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ sendbuf, recvbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: recvbuf + @OMPI_F08_IGNORE_TKR_PREDECL@ sendbuf, recvbuf + @OMPI_F08_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf + @OMPI_F08_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: recvbuf INTEGER, INTENT(IN) :: count, root TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Op), INTENT(IN) :: op @@ -1606,50 +1596,50 @@ end subroutine MPI_Reduce_init_f08 end interface MPI_Reduce_init interface MPI_Reduce_local -subroutine MPI_Reduce_local_f08(inbuf,inoutbuf,count,datatype,op,ierror) +subroutine MPI_Reduce_local_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(inbuf,inoutbuf,count,datatype,op,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Op implicit none - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ inbuf, inoutbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) :: inbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ :: inoutbuf + @OMPI_F08_IGNORE_TKR_PREDECL@ inbuf, inoutbuf + @OMPI_F08_IGNORE_TKR_TYPE@, INTENT(IN) :: inbuf + @OMPI_F08_IGNORE_TKR_TYPE@ :: inoutbuf INTEGER, INTENT(IN) :: count TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Op), INTENT(IN) :: op INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_Reduce_local_f08 +end subroutine MPI_Reduce_local_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_Reduce_local interface MPI_Reduce_scatter -subroutine MPI_Reduce_scatter_f08(sendbuf,recvbuf,recvcounts,datatype,op,comm, & +subroutine MPI_Reduce_scatter_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(sendbuf,recvbuf,recvcounts,datatype,op,comm, & ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Op, MPI_Comm implicit none - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ sendbuf, recvbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) :: sendbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ :: recvbuf + @OMPI_F08_IGNORE_TKR_PREDECL@ sendbuf, recvbuf + @OMPI_F08_IGNORE_TKR_TYPE@, INTENT(IN) :: sendbuf + @OMPI_F08_IGNORE_TKR_TYPE@ :: recvbuf INTEGER, INTENT(IN) :: recvcounts(*) TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Op), INTENT(IN) :: op TYPE(MPI_Comm), INTENT(IN) :: comm INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_Reduce_scatter_f08 +end subroutine MPI_Reduce_scatter_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_Reduce_scatter interface MPI_Ireduce_scatter -subroutine MPI_Ireduce_scatter_f08(sendbuf,recvbuf,recvcounts,datatype,op,comm, & - request,ierror) +subroutine MPI_Ireduce_scatter_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(sendbuf,recvbuf,recvcounts,datatype,op,comm, & + request,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Op, MPI_Comm, MPI_Request implicit none - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ sendbuf, recvbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: recvbuf + @OMPI_F08_IGNORE_TKR_PREDECL@ sendbuf, recvbuf + @OMPI_F08_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf + @OMPI_F08_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: recvbuf INTEGER, INTENT(IN) OMPI_ASYNCHRONOUS :: recvcounts(*) TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Op), INTENT(IN) :: op TYPE(MPI_Comm), INTENT(IN) :: comm TYPE(MPI_Request), INTENT(OUT) :: request INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_Ireduce_scatter_f08 +end subroutine MPI_Ireduce_scatter_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_Ireduce_scatter interface MPI_Reduce_scatter_init @@ -1657,9 +1647,9 @@ subroutine MPI_Reduce_scatter_init_f08(sendbuf,recvbuf,recvcounts,datatype,op,co info,request,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Op, MPI_Comm, MPI_Info, MPI_Request implicit none - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ sendbuf, recvbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: recvbuf + @OMPI_F08_IGNORE_TKR_PREDECL@ sendbuf, recvbuf + @OMPI_F08_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf + @OMPI_F08_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: recvbuf INTEGER, INTENT(IN) OMPI_ASYNCHRONOUS :: recvcounts(*) TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Op), INTENT(IN) :: op @@ -1671,36 +1661,36 @@ end subroutine MPI_Reduce_scatter_init_f08 end interface MPI_Reduce_scatter_init interface MPI_Reduce_scatter_block -subroutine MPI_Reduce_scatter_block_f08(sendbuf,recvbuf,recvcount,datatype,op,comm, & +subroutine MPI_Reduce_scatter_block_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(sendbuf,recvbuf,recvcount,datatype,op,comm, & ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Op, MPI_Comm implicit none - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ sendbuf, recvbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) :: sendbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ :: recvbuf + @OMPI_F08_IGNORE_TKR_PREDECL@ sendbuf, recvbuf + @OMPI_F08_IGNORE_TKR_TYPE@, INTENT(IN) :: sendbuf + @OMPI_F08_IGNORE_TKR_TYPE@ :: recvbuf INTEGER, INTENT(IN) :: recvcount TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Op), INTENT(IN) :: op TYPE(MPI_Comm), INTENT(IN) :: comm INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_Reduce_scatter_block_f08 +end subroutine MPI_Reduce_scatter_block_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_Reduce_scatter_block interface MPI_Ireduce_scatter_block -subroutine MPI_Ireduce_scatter_block_f08(sendbuf,recvbuf,recvcount,datatype,op,comm, & - request,ierror) +subroutine MPI_Ireduce_scatter_block_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(sendbuf,recvbuf,recvcount,datatype,op,comm, & + request,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Op, MPI_Comm, MPI_Request implicit none - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ sendbuf, recvbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: recvbuf + @OMPI_F08_IGNORE_TKR_PREDECL@ sendbuf, recvbuf + @OMPI_F08_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf + @OMPI_F08_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: recvbuf INTEGER, INTENT(IN) :: recvcount TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Op), INTENT(IN) :: op TYPE(MPI_Comm), INTENT(IN) :: comm TYPE(MPI_Request), INTENT(OUT) :: request INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_Ireduce_scatter_block_f08 +end subroutine MPI_Ireduce_scatter_block_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_Ireduce_scatter_block interface MPI_Reduce_scatter_block_init @@ -1708,9 +1698,9 @@ subroutine MPI_Reduce_scatter_block_init_f08(sendbuf,recvbuf,recvcount,datatype, info,request,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Op, MPI_Comm, MPI_Info, MPI_Request implicit none - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ sendbuf, recvbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: recvbuf + @OMPI_F08_IGNORE_TKR_PREDECL@ sendbuf, recvbuf + @OMPI_F08_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf + @OMPI_F08_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: recvbuf INTEGER, INTENT(IN) :: recvcount TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Op), INTENT(IN) :: op @@ -1722,43 +1712,43 @@ end subroutine MPI_Reduce_scatter_block_init_f08 end interface MPI_Reduce_scatter_block_init interface MPI_Scan -subroutine MPI_Scan_f08(sendbuf,recvbuf,count,datatype,op,comm,ierror) +subroutine MPI_Scan_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(sendbuf,recvbuf,count,datatype,op,comm,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Op, MPI_Comm implicit none - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ sendbuf, recvbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) :: sendbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ :: recvbuf + @OMPI_F08_IGNORE_TKR_PREDECL@ sendbuf, recvbuf + @OMPI_F08_IGNORE_TKR_TYPE@, INTENT(IN) :: sendbuf + @OMPI_F08_IGNORE_TKR_TYPE@ :: recvbuf INTEGER, INTENT(IN) :: count TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Op), INTENT(IN) :: op TYPE(MPI_Comm), INTENT(IN) :: comm INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_Scan_f08 +end subroutine MPI_Scan_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_Scan interface MPI_Iscan -subroutine MPI_Iscan_f08(sendbuf,recvbuf,count,datatype,op,comm,request,ierror) +subroutine MPI_Iscan_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(sendbuf,recvbuf,count,datatype,op,comm,request,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Op, MPI_Comm, MPI_Request implicit none - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ sendbuf, recvbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: recvbuf + @OMPI_F08_IGNORE_TKR_PREDECL@ sendbuf, recvbuf + @OMPI_F08_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf + @OMPI_F08_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: recvbuf INTEGER, INTENT(IN) :: count TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Op), INTENT(IN) :: op TYPE(MPI_Comm), INTENT(IN) :: comm TYPE(MPI_Request), INTENT(OUT) :: request INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_Iscan_f08 +end subroutine MPI_Iscan_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_Iscan interface MPI_Scan_init subroutine MPI_Scan_init_f08(sendbuf,recvbuf,count,datatype,op,comm,info,request,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Op, MPI_Comm, MPI_Info, MPI_Request implicit none - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ sendbuf, recvbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: recvbuf + @OMPI_F08_IGNORE_TKR_PREDECL@ sendbuf, recvbuf + @OMPI_F08_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf + @OMPI_F08_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: recvbuf INTEGER, INTENT(IN) :: count TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Op), INTENT(IN) :: op @@ -1770,34 +1760,34 @@ end subroutine MPI_Scan_init_f08 end interface MPI_Scan_init interface MPI_Scatter -subroutine MPI_Scatter_f08(sendbuf,sendcount,sendtype,recvbuf,recvcount,recvtype, & +subroutine MPI_Scatter_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(sendbuf,sendcount,sendtype,recvbuf,recvcount,recvtype, & root,comm,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm implicit none - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ sendbuf, recvbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) :: sendbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ :: recvbuf + @OMPI_F08_IGNORE_TKR_PREDECL@ sendbuf, recvbuf + @OMPI_F08_IGNORE_TKR_TYPE@, INTENT(IN) :: sendbuf + @OMPI_F08_IGNORE_TKR_TYPE@ :: recvbuf INTEGER, INTENT(IN) :: sendcount, recvcount, root TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype TYPE(MPI_Comm), INTENT(IN) :: comm INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_Scatter_f08 +end subroutine MPI_Scatter_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_Scatter interface MPI_Iscatter -subroutine MPI_Iscatter_f08(sendbuf,sendcount,sendtype,recvbuf,recvcount,recvtype, & - root,comm,request,ierror) +subroutine MPI_Iscatter_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(sendbuf,sendcount,sendtype,recvbuf,recvcount,recvtype, & + root,comm,request,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request implicit none - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ sendbuf, recvbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: recvbuf + @OMPI_F08_IGNORE_TKR_PREDECL@ sendbuf, recvbuf + @OMPI_F08_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf + @OMPI_F08_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: recvbuf INTEGER, INTENT(IN) :: sendcount, recvcount, root TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype TYPE(MPI_Comm), INTENT(IN) :: comm TYPE(MPI_Request), INTENT(OUT) :: request INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_Iscatter_f08 +end subroutine MPI_Iscatter_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_Iscatter interface MPI_Scatter_init @@ -1805,9 +1795,9 @@ subroutine MPI_Scatter_init_f08(sendbuf,sendcount,sendtype,recvbuf,recvcount,rec root,comm,info,request,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Info, MPI_Request implicit none - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ sendbuf, recvbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: recvbuf + @OMPI_F08_IGNORE_TKR_PREDECL@ sendbuf, recvbuf + @OMPI_F08_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf + @OMPI_F08_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: recvbuf INTEGER, INTENT(IN) :: sendcount, recvcount, root TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype TYPE(MPI_Comm), INTENT(IN) :: comm @@ -1818,36 +1808,36 @@ end subroutine MPI_Scatter_init_f08 end interface MPI_Scatter_init interface MPI_Scatterv -subroutine MPI_Scatterv_f08(sendbuf,sendcounts,displs,sendtype,recvbuf,recvcount, & +subroutine MPI_Scatterv_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(sendbuf,sendcounts,displs,sendtype,recvbuf,recvcount, & recvtype,root,comm,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm implicit none - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ sendbuf, recvbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) :: sendbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ :: recvbuf + @OMPI_F08_IGNORE_TKR_PREDECL@ sendbuf, recvbuf + @OMPI_F08_IGNORE_TKR_TYPE@, INTENT(IN) :: sendbuf + @OMPI_F08_IGNORE_TKR_TYPE@ :: recvbuf INTEGER, INTENT(IN) :: recvcount, root INTEGER, INTENT(IN) :: sendcounts(*), displs(*) TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype TYPE(MPI_Comm), INTENT(IN) :: comm INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_Scatterv_f08 +end subroutine MPI_Scatterv_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_Scatterv interface MPI_Iscatterv -subroutine MPI_Iscatterv_f08(sendbuf,sendcounts,displs,sendtype,recvbuf,recvcount, & - recvtype,root,comm,request,ierror) +subroutine MPI_Iscatterv_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(sendbuf,sendcounts,displs,sendtype,recvbuf,recvcount, & + recvtype,root,comm,request,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request implicit none - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ sendbuf, recvbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: recvbuf + @OMPI_F08_IGNORE_TKR_PREDECL@ sendbuf, recvbuf + @OMPI_F08_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf + @OMPI_F08_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: recvbuf INTEGER, INTENT(IN) :: recvcount, root INTEGER, INTENT(IN) OMPI_ASYNCHRONOUS :: sendcounts(*), displs(*) TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype TYPE(MPI_Comm), INTENT(IN) :: comm TYPE(MPI_Request), INTENT(OUT) :: request INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_Iscatterv_f08 +end subroutine MPI_Iscatterv_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_Iscatterv interface MPI_Scatterv_init @@ -1855,9 +1845,9 @@ subroutine MPI_Scatterv_init_f08(sendbuf,sendcounts,displs,sendtype,recvbuf,recv recvtype,root,comm,info,request,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Info, MPI_Request implicit none - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ sendbuf, recvbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: recvbuf + @OMPI_F08_IGNORE_TKR_PREDECL@ sendbuf, recvbuf + @OMPI_F08_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf + @OMPI_F08_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: recvbuf INTEGER, INTENT(IN) :: recvcount, root INTEGER, INTENT(IN) OMPI_ASYNCHRONOUS :: sendcounts(*), displs(*) TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype @@ -2929,12 +2919,12 @@ end interface MPI_Finalized ! the dummy argument is not an assumed-shape array. This will ! be okay once the Interop TR is implemented. interface MPI_Free_mem -subroutine MPI_Free_mem_f08(base,ierror) +subroutine MPI_Free_mem_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(base,ierror) implicit none - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ base - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) :: base + @OMPI_F08_IGNORE_TKR_PREDECL@ base + @OMPI_F08_IGNORE_TKR_TYPE@, INTENT(IN) :: base INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_Free_mem_f08 +end subroutine MPI_Free_mem_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_Free_mem interface MPI_Get_processor_name @@ -3253,12 +3243,12 @@ end subroutine MPI_Unpublish_name_f08 end interface MPI_Unpublish_name interface MPI_Accumulate -subroutine MPI_Accumulate_f08(origin_addr,origin_count,origin_datatype,target_rank, & +subroutine MPI_Accumulate_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(origin_addr,origin_count,origin_datatype,target_rank, & target_disp,target_count,target_datatype,op,win,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Op, MPI_Win, MPI_ADDRESS_KIND implicit none - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ origin_addr - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: origin_addr + @OMPI_F08_IGNORE_TKR_PREDECL@ origin_addr + @OMPI_F08_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: origin_addr INTEGER, INTENT(IN) :: origin_count, target_rank, target_count TYPE(MPI_Datatype), INTENT(IN) :: origin_datatype INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: target_disp @@ -3266,17 +3256,17 @@ subroutine MPI_Accumulate_f08(origin_addr,origin_count,origin_datatype,target_ra TYPE(MPI_Op), INTENT(IN) :: op TYPE(MPI_Win), INTENT(IN) :: win INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_Accumulate_f08 +end subroutine MPI_Accumulate_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_Accumulate interface MPI_Raccumulate -subroutine MPI_Raccumulate_f08(origin_addr,origin_count,origin_datatype,target_rank, & +subroutine MPI_Raccumulate_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(origin_addr,origin_count,origin_datatype,target_rank, & target_disp,target_count,target_datatype,op,win,request, & ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Op, MPI_Win, MPI_Request, MPI_ADDRESS_KIND implicit none - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ origin_addr - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: origin_addr + @OMPI_F08_IGNORE_TKR_PREDECL@ origin_addr + @OMPI_F08_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: origin_addr INTEGER, INTENT(IN) :: origin_count, target_rank, target_count TYPE(MPI_Datatype), INTENT(IN) :: origin_datatype INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: target_disp @@ -3285,32 +3275,32 @@ subroutine MPI_Raccumulate_f08(origin_addr,origin_count,origin_datatype,target_r TYPE(MPI_Win), INTENT(IN) :: win TYPE(MPI_Request), INTENT(OUT) :: request INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_Raccumulate_f08 +end subroutine MPI_Raccumulate_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_Raccumulate interface MPI_Get -subroutine MPI_Get_f08(origin_addr,origin_count,origin_datatype,target_rank, & - target_disp,target_count,target_datatype,win,ierror) +subroutine MPI_Get_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(origin_addr,origin_count,origin_datatype,target_rank, & + target_disp,target_count,target_datatype,win,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Win, MPI_ADDRESS_KIND implicit none - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ origin_addr - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: origin_addr + @OMPI_F08_IGNORE_TKR_PREDECL@ origin_addr + @OMPI_F08_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: origin_addr INTEGER, INTENT(IN) :: origin_count, target_rank, target_count TYPE(MPI_Datatype), INTENT(IN) :: origin_datatype INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: target_disp TYPE(MPI_Datatype), INTENT(IN) :: target_datatype TYPE(MPI_Win), INTENT(IN) :: win INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_Get_f08 +end subroutine MPI_Get_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_Get interface MPI_Rget -subroutine MPI_Rget_f08(origin_addr,origin_count,origin_datatype,target_rank, & +subroutine MPI_Rget_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(origin_addr,origin_count,origin_datatype,target_rank, & target_disp,target_count,target_datatype,win,request,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Request, MPI_Win, MPI_ADDRESS_KIND implicit none - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ origin_addr - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: origin_addr + @OMPI_F08_IGNORE_TKR_PREDECL@ origin_addr + @OMPI_F08_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: origin_addr INTEGER, INTENT(IN) :: origin_count, target_rank, target_count TYPE(MPI_Datatype), INTENT(IN) :: origin_datatype INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: target_disp @@ -3318,40 +3308,40 @@ subroutine MPI_Rget_f08(origin_addr,origin_count,origin_datatype,target_rank, & TYPE(MPI_Win), INTENT(IN) :: win TYPE(MPI_Request), INTENT(OUT) :: request INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_Rget_f08 +end subroutine MPI_Rget_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_Rget interface MPI_Get_accumulate -subroutine MPI_Get_accumulate_f08(origin_addr,origin_count,origin_datatype,result_addr, & +subroutine MPI_Get_accumulate_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(origin_addr,origin_count,origin_datatype,result_addr, & result_count,result_datatype,target_rank,target_disp, & target_count,target_datatype,op,win,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Op, MPI_Win, MPI_ADDRESS_KIND implicit none - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ origin_addr,result_addr - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: origin_addr + @OMPI_F08_IGNORE_TKR_PREDECL@ origin_addr,result_addr + @OMPI_F08_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: origin_addr INTEGER, INTENT(IN) :: origin_count, result_count, target_rank, target_count TYPE(MPI_Datatype), INTENT(IN) :: origin_datatype - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: result_addr + @OMPI_F08_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: result_addr TYPE(MPI_Datatype), INTENT(IN) :: result_datatype INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: target_disp TYPE(MPI_Datatype), INTENT(IN) :: target_datatype TYPE(MPI_Op), INTENT(IN) :: op TYPE(MPI_Win), INTENT(IN) :: win INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_Get_accumulate_f08 +end subroutine MPI_Get_accumulate_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_Get_accumulate interface MPI_Rget_accumulate -subroutine MPI_Rget_accumulate_f08(origin_addr,origin_count,origin_datatype,result_addr, & +subroutine MPI_Rget_accumulate_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(origin_addr,origin_count,origin_datatype,result_addr, & result_count,result_datatype,target_rank,target_disp, & target_count,target_datatype,op,win,request,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Op, MPI_Request, MPI_Win, MPI_ADDRESS_KIND implicit none - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ origin_addr,result_addr - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: origin_addr + @OMPI_F08_IGNORE_TKR_PREDECL@ origin_addr,result_addr + @OMPI_F08_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: origin_addr INTEGER, INTENT(IN) :: origin_count, result_count, target_rank, target_count TYPE(MPI_Datatype), INTENT(IN) :: origin_datatype - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: result_addr + @OMPI_F08_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: result_addr TYPE(MPI_Datatype), INTENT(IN) :: result_datatype INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: target_disp TYPE(MPI_Datatype), INTENT(IN) :: target_datatype @@ -3359,32 +3349,32 @@ subroutine MPI_Rget_accumulate_f08(origin_addr,origin_count,origin_datatype,resu TYPE(MPI_Win), INTENT(IN) :: win TYPE(MPI_Request), INTENT(OUT) :: request INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_Rget_accumulate_f08 +end subroutine MPI_Rget_accumulate_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_Rget_accumulate interface MPI_Put -subroutine MPI_Put_f08(origin_addr,origin_count,origin_datatype,target_rank, & - target_disp,target_count,target_datatype,win,ierror) +subroutine MPI_Put_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(origin_addr,origin_count,origin_datatype,target_rank, & + target_disp,target_count,target_datatype,win,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Win, MPI_ADDRESS_KIND implicit none - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ origin_addr - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: origin_addr + @OMPI_F08_IGNORE_TKR_PREDECL@ origin_addr + @OMPI_F08_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: origin_addr INTEGER, INTENT(IN) :: origin_count, target_rank, target_count TYPE(MPI_Datatype), INTENT(IN) :: origin_datatype INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: target_disp TYPE(MPI_Datatype), INTENT(IN) :: target_datatype TYPE(MPI_Win), INTENT(IN) :: win INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_Put_f08 +end subroutine MPI_Put_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_Put interface MPI_Rput -subroutine MPI_Rput_f08(origin_addr,origin_count,origin_datatype,target_rank, & +subroutine MPI_Rput_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(origin_addr,origin_count,origin_datatype,target_rank, & target_disp,target_count,target_datatype,win,request,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Win, MPI_Request, MPI_ADDRESS_KIND implicit none - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ origin_addr - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: origin_addr + @OMPI_F08_IGNORE_TKR_PREDECL@ origin_addr + @OMPI_F08_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: origin_addr INTEGER, INTENT(IN) :: origin_count, target_rank, target_count TYPE(MPI_Datatype), INTENT(IN) :: origin_datatype INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: target_disp @@ -3392,40 +3382,40 @@ subroutine MPI_Rput_f08(origin_addr,origin_count,origin_datatype,target_rank, & TYPE(MPI_Win), INTENT(IN) :: win TYPE(MPI_Request), INTENT(OUT) :: request INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_Rput_f08 +end subroutine MPI_Rput_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_Rput interface MPI_Fetch_and_op -subroutine MPI_Fetch_and_op_f08(origin_addr,result_addr,datatype,target_rank, & +subroutine MPI_Fetch_and_op_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(origin_addr,result_addr,datatype,target_rank, & target_disp,op,win,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Op, MPI_Win, MPI_ADDRESS_KIND implicit none - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ origin_addr,result_addr - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: origin_addr - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: result_addr + @OMPI_F08_IGNORE_TKR_PREDECL@ origin_addr,result_addr + @OMPI_F08_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: origin_addr + @OMPI_F08_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: result_addr TYPE(MPI_Datatype), INTENT(IN) :: datatype INTEGER, INTENT(IN) :: target_rank INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: target_disp TYPE(MPI_Op), INTENT(IN) :: op TYPE(MPI_Win), INTENT(IN) :: win INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_Fetch_and_op_f08 +end subroutine MPI_Fetch_and_op_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_Fetch_and_op interface MPI_Compare_and_swap -subroutine MPI_Compare_and_swap_f08(origin_addr,compare_addr,result_addr,datatype, & +subroutine MPI_Compare_and_swap_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(origin_addr,compare_addr,result_addr,datatype, & target_rank,target_disp,win,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Win, MPI_ADDRESS_KIND implicit none - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ origin_addr,compare_addr,result_addr - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: origin_addr,compare_addr - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: result_addr + @OMPI_F08_IGNORE_TKR_PREDECL@ origin_addr,compare_addr,result_addr + @OMPI_F08_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: origin_addr,compare_addr + @OMPI_F08_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: result_addr TYPE(MPI_Datatype), INTENT(IN) :: datatype INTEGER, INTENT(IN) :: target_rank INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: target_disp TYPE(MPI_Win), INTENT(IN) :: win INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_Compare_and_swap_f08 +end subroutine MPI_Compare_and_swap_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_Compare_and_swap interface MPI_Win_complete @@ -3438,18 +3428,18 @@ end subroutine MPI_Win_complete_f08 end interface MPI_Win_complete interface MPI_Win_create -subroutine MPI_Win_create_f08(base,size,disp_unit,info,comm,win,ierror) +subroutine MPI_Win_create_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(base,size,disp_unit,info,comm,win,ierror) use :: mpi_f08_types, only : MPI_Info, MPI_Comm, MPI_Win, MPI_ADDRESS_KIND implicit none - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ base - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: base + @OMPI_F08_IGNORE_TKR_PREDECL@ base + @OMPI_F08_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: base INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: size INTEGER, INTENT(IN) :: disp_unit TYPE(MPI_Info), INTENT(IN) :: info TYPE(MPI_Comm), INTENT(IN) :: comm TYPE(MPI_Win), INTENT(OUT) :: win INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_Win_create_f08 +end subroutine MPI_Win_create_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_Win_create interface MPI_Win_create_dynamic @@ -3464,26 +3454,26 @@ end subroutine MPI_Win_create_dynamic_f08 end interface MPI_Win_create_dynamic interface MPI_Win_attach -subroutine MPI_Win_attach_f08(win,base,size,ierror) +subroutine MPI_Win_attach_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(win,base,size,ierror) use :: mpi_f08_types, only : MPI_Win, MPI_ADDRESS_KIND implicit none - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ base - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: base + @OMPI_F08_IGNORE_TKR_PREDECL@ base + @OMPI_F08_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: base INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: size TYPE(MPI_Win), INTENT(IN) :: win INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_Win_attach_f08 +end subroutine MPI_Win_attach_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_Win_attach interface MPI_Win_detach -subroutine MPI_Win_detach_f08(win,base,ierror) +subroutine MPI_Win_detach_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(win,base,ierror) use :: mpi_f08_types, only : MPI_Win, MPI_ADDRESS_KIND implicit none - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ base - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: base + @OMPI_F08_IGNORE_TKR_PREDECL@ base + @OMPI_F08_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: base TYPE(MPI_Win), INTENT(IN) :: win INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_Win_detach_f08 +end subroutine MPI_Win_detach_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_Win_detach interface MPI_Win_fence @@ -3864,147 +3854,147 @@ end subroutine MPI_File_get_view_f08 end interface MPI_File_get_view interface MPI_File_iread -subroutine MPI_File_iread_f08(fh,buf,count,datatype,request,ierror) +subroutine MPI_File_iread_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(fh,buf,count,datatype,request,ierror) use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Request implicit none TYPE(MPI_File), INTENT(IN) :: fh - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ buf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: buf + @OMPI_F08_IGNORE_TKR_PREDECL@ buf + @OMPI_F08_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: buf INTEGER, INTENT(IN) :: count TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Request), INTENT(OUT) :: request INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_File_iread_f08 +end subroutine MPI_File_iread_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_File_iread interface MPI_File_iread_at -subroutine MPI_File_iread_at_f08(fh,offset,buf,count,datatype,request,ierror) +subroutine MPI_File_iread_at_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(fh,offset,buf,count,datatype,request,ierror) use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Request, MPI_OFFSET_KIND implicit none TYPE(MPI_File), INTENT(IN) :: fh INTEGER(MPI_OFFSET_KIND), INTENT(IN) :: offset - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ buf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: buf + @OMPI_F08_IGNORE_TKR_PREDECL@ buf + @OMPI_F08_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: buf INTEGER, INTENT(IN) :: count TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Request), INTENT(OUT) :: request INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_File_iread_at_f08 +end subroutine MPI_File_iread_at_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_File_iread_at interface MPI_File_iread_all -subroutine MPI_File_iread_all_f08(fh,buf,count,datatype,request,ierror) +subroutine MPI_File_iread_all_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(fh,buf,count,datatype,request,ierror) use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Request implicit none TYPE(MPI_File), INTENT(IN) :: fh - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ buf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: buf + @OMPI_F08_IGNORE_TKR_PREDECL@ buf + @OMPI_F08_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: buf INTEGER, INTENT(IN) :: count TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Request), INTENT(OUT) :: request INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_File_iread_all_f08 +end subroutine MPI_File_iread_all_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_File_iread_all interface MPI_File_iread_at_all -subroutine MPI_File_iread_at_all_f08(fh,offset,buf,count,datatype,request,ierror) +subroutine MPI_File_iread_at_all_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(fh,offset,buf,count,datatype,request,ierror) use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Request, MPI_OFFSET_KIND implicit none TYPE(MPI_File), INTENT(IN) :: fh INTEGER(MPI_OFFSET_KIND), INTENT(IN) :: offset - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ buf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: buf + @OMPI_F08_IGNORE_TKR_PREDECL@ buf + @OMPI_F08_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: buf INTEGER, INTENT(IN) :: count TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Request), INTENT(OUT) :: request INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_File_iread_at_all_f08 +end subroutine MPI_File_iread_at_all_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_File_iread_at_all interface MPI_File_iread_shared -subroutine MPI_File_iread_shared_f08(fh,buf,count,datatype,request,ierror) +subroutine MPI_File_iread_shared_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(fh,buf,count,datatype,request,ierror) use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Request implicit none TYPE(MPI_File), INTENT(IN) :: fh - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ buf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: buf + @OMPI_F08_IGNORE_TKR_PREDECL@ buf + @OMPI_F08_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: buf INTEGER, INTENT(IN) :: count TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Request), INTENT(OUT) :: request INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_File_iread_shared_f08 +end subroutine MPI_File_iread_shared_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_File_iread_shared interface MPI_File_iwrite -subroutine MPI_File_iwrite_f08(fh,buf,count,datatype,request,ierror) +subroutine MPI_File_iwrite_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(fh,buf,count,datatype,request,ierror) use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Request implicit none TYPE(MPI_File), INTENT(IN) :: fh - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ buf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: buf + @OMPI_F08_IGNORE_TKR_PREDECL@ buf + @OMPI_F08_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: buf INTEGER, INTENT(IN) :: count TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Request), INTENT(OUT) :: request INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_File_iwrite_f08 +end subroutine MPI_File_iwrite_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_File_iwrite interface MPI_File_iwrite_at -subroutine MPI_File_iwrite_at_f08(fh,offset,buf,count,datatype,request,ierror) +subroutine MPI_File_iwrite_at_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(fh,offset,buf,count,datatype,request,ierror) use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Request, MPI_OFFSET_KIND implicit none TYPE(MPI_File), INTENT(IN) :: fh INTEGER(MPI_OFFSET_KIND), INTENT(IN) :: offset - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ buf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: buf + @OMPI_F08_IGNORE_TKR_PREDECL@ buf + @OMPI_F08_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: buf INTEGER, INTENT(IN) :: count TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Request), INTENT(OUT) :: request INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_File_iwrite_at_f08 +end subroutine MPI_File_iwrite_at_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_File_iwrite_at interface MPI_File_iwrite_all -subroutine MPI_File_iwrite_all_f08(fh,buf,count,datatype,request,ierror) +subroutine MPI_File_iwrite_all_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(fh,buf,count,datatype,request,ierror) use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Request implicit none TYPE(MPI_File), INTENT(IN) :: fh - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ buf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: buf + @OMPI_F08_IGNORE_TKR_PREDECL@ buf + @OMPI_F08_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: buf INTEGER, INTENT(IN) :: count TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Request), INTENT(OUT) :: request INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_File_iwrite_all_f08 +end subroutine MPI_File_iwrite_all_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_File_iwrite_all interface MPI_File_iwrite_at_all -subroutine MPI_File_iwrite_at_all_f08(fh,offset,buf,count,datatype,request,ierror) +subroutine MPI_File_iwrite_at_all_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(fh,offset,buf,count,datatype,request,ierror) use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Request, MPI_OFFSET_KIND implicit none TYPE(MPI_File), INTENT(IN) :: fh INTEGER(MPI_OFFSET_KIND), INTENT(IN) :: offset - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ buf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: buf + @OMPI_F08_IGNORE_TKR_PREDECL@ buf + @OMPI_F08_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: buf INTEGER, INTENT(IN) :: count TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Request), INTENT(OUT) :: request INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_File_iwrite_at_all_f08 +end subroutine MPI_File_iwrite_at_all_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_File_iwrite_at_all interface MPI_File_iwrite_shared -subroutine MPI_File_iwrite_shared_f08(fh,buf,count,datatype,request,ierror) +subroutine MPI_File_iwrite_shared_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(fh,buf,count,datatype,request,ierror) use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Request implicit none - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ buf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: buf + @OMPI_F08_IGNORE_TKR_PREDECL@ buf + @OMPI_F08_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: buf TYPE(MPI_File), INTENT(IN) :: fh INTEGER, INTENT(IN) :: count TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Request), INTENT(OUT) :: request INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_File_iwrite_shared_f08 +end subroutine MPI_File_iwrite_shared_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_File_iwrite_shared interface MPI_File_open @@ -4031,165 +4021,165 @@ end subroutine MPI_File_preallocate_f08 end interface MPI_File_preallocate interface MPI_File_read -subroutine MPI_File_read_f08(fh,buf,count,datatype,status,ierror) +subroutine MPI_File_read_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(fh,buf,count,datatype,status,ierror) use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Status implicit none TYPE(MPI_File), INTENT(IN) :: fh - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ buf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ :: buf + @OMPI_F08_IGNORE_TKR_PREDECL@ buf + @OMPI_F08_IGNORE_TKR_TYPE@ :: buf INTEGER, INTENT(IN) :: count TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Status) :: status INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_File_read_f08 +end subroutine MPI_File_read_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_File_read interface MPI_File_read_all -subroutine MPI_File_read_all_f08(fh,buf,count,datatype,status,ierror) +subroutine MPI_File_read_all_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(fh,buf,count,datatype,status,ierror) use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Status implicit none TYPE(MPI_File), INTENT(IN) :: fh - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ buf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ :: buf + @OMPI_F08_IGNORE_TKR_PREDECL@ buf + @OMPI_F08_IGNORE_TKR_TYPE@ :: buf INTEGER, INTENT(IN) :: count TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Status) :: status INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_File_read_all_f08 +end subroutine MPI_File_read_all_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_File_read_all interface MPI_File_read_all_begin -subroutine MPI_File_read_all_begin_f08(fh,buf,count,datatype,ierror) +subroutine MPI_File_read_all_begin_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(fh,buf,count,datatype,ierror) use :: mpi_f08_types, only : MPI_File, MPI_Datatype implicit none TYPE(MPI_File), INTENT(IN) :: fh - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ buf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: buf + @OMPI_F08_IGNORE_TKR_PREDECL@ buf + @OMPI_F08_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: buf INTEGER, INTENT(IN) :: count TYPE(MPI_Datatype), INTENT(IN) :: datatype INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_File_read_all_begin_f08 +end subroutine MPI_File_read_all_begin_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_File_read_all_begin interface MPI_File_read_all_end -subroutine MPI_File_read_all_end_f08(fh,buf,status,ierror) +subroutine MPI_File_read_all_end_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(fh,buf,status,ierror) use :: mpi_f08_types, only : MPI_File, MPI_Status implicit none TYPE(MPI_File), INTENT(IN) :: fh - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ buf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: buf + @OMPI_F08_IGNORE_TKR_PREDECL@ buf + @OMPI_F08_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: buf TYPE(MPI_Status) :: status INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_File_read_all_end_f08 +end subroutine MPI_File_read_all_end_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_File_read_all_end interface MPI_File_read_at -subroutine MPI_File_read_at_f08(fh,offset,buf,count,datatype,status,ierror) +subroutine MPI_File_read_at_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(fh,offset,buf,count,datatype,status,ierror) use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Status, MPI_OFFSET_KIND implicit none TYPE(MPI_File), INTENT(IN) :: fh INTEGER(MPI_OFFSET_KIND), INTENT(IN) :: offset - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ buf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ :: buf + @OMPI_F08_IGNORE_TKR_PREDECL@ buf + @OMPI_F08_IGNORE_TKR_TYPE@ :: buf INTEGER, INTENT(IN) :: count TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Status) :: status INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_File_read_at_f08 +end subroutine MPI_File_read_at_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_File_read_at interface MPI_File_read_at_all -subroutine MPI_File_read_at_all_f08(fh,offset,buf,count,datatype,status,ierror) +subroutine MPI_File_read_at_all_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(fh,offset,buf,count,datatype,status,ierror) use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Status, MPI_OFFSET_KIND implicit none TYPE(MPI_File), INTENT(IN) :: fh INTEGER(MPI_OFFSET_KIND), INTENT(IN) :: offset - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ buf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ :: buf + @OMPI_F08_IGNORE_TKR_PREDECL@ buf + @OMPI_F08_IGNORE_TKR_TYPE@ :: buf INTEGER, INTENT(IN) :: count TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Status) :: status INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_File_read_at_all_f08 +end subroutine MPI_File_read_at_all_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_File_read_at_all interface MPI_File_read_at_all_begin -subroutine MPI_File_read_at_all_begin_f08(fh,offset,buf,count,datatype,ierror) +subroutine MPI_File_read_at_all_begin_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(fh,offset,buf,count,datatype,ierror) use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_OFFSET_KIND implicit none TYPE(MPI_File), INTENT(IN) :: fh INTEGER(MPI_OFFSET_KIND), INTENT(IN) :: offset - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ buf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: buf + @OMPI_F08_IGNORE_TKR_PREDECL@ buf + @OMPI_F08_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: buf INTEGER, INTENT(IN) :: count TYPE(MPI_Datatype), INTENT(IN) :: datatype INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_File_read_at_all_begin_f08 +end subroutine MPI_File_read_at_all_begin_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_File_read_at_all_begin interface MPI_File_read_at_all_end -subroutine MPI_File_read_at_all_end_f08(fh,buf,status,ierror) +subroutine MPI_File_read_at_all_end_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(fh,buf,status,ierror) use :: mpi_f08_types, only : MPI_File, MPI_Status implicit none TYPE(MPI_File), INTENT(IN) :: fh - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ buf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: buf + @OMPI_F08_IGNORE_TKR_PREDECL@ buf + @OMPI_F08_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: buf TYPE(MPI_Status) :: status INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_File_read_at_all_end_f08 +end subroutine MPI_File_read_at_all_end_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_File_read_at_all_end interface MPI_File_read_ordered -subroutine MPI_File_read_ordered_f08(fh,buf,count,datatype,status,ierror) +subroutine MPI_File_read_ordered_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(fh,buf,count,datatype,status,ierror) use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Status implicit none TYPE(MPI_File), INTENT(IN) :: fh - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ buf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ :: buf + @OMPI_F08_IGNORE_TKR_PREDECL@ buf + @OMPI_F08_IGNORE_TKR_TYPE@ :: buf INTEGER, INTENT(IN) :: count TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Status) :: status INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_File_read_ordered_f08 +end subroutine MPI_File_read_ordered_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_File_read_ordered interface MPI_File_read_ordered_begin -subroutine MPI_File_read_ordered_begin_f08(fh,buf,count,datatype,ierror) +subroutine MPI_File_read_ordered_begin_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(fh,buf,count,datatype,ierror) use :: mpi_f08_types, only : MPI_File, MPI_Datatype implicit none TYPE(MPI_File), INTENT(IN) :: fh - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ buf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: buf + @OMPI_F08_IGNORE_TKR_PREDECL@ buf + @OMPI_F08_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: buf INTEGER, INTENT(IN) :: count TYPE(MPI_Datatype), INTENT(IN) :: datatype INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_File_read_ordered_begin_f08 +end subroutine MPI_File_read_ordered_begin_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_File_read_ordered_begin interface MPI_File_read_ordered_end -subroutine MPI_File_read_ordered_end_f08(fh,buf,status,ierror) +subroutine MPI_File_read_ordered_end_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(fh,buf,status,ierror) use :: mpi_f08_types, only : MPI_File, MPI_Status implicit none TYPE(MPI_File), INTENT(IN) :: fh - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ buf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: buf + @OMPI_F08_IGNORE_TKR_PREDECL@ buf + @OMPI_F08_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: buf TYPE(MPI_Status) :: status INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_File_read_ordered_end_f08 +end subroutine MPI_File_read_ordered_end_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_File_read_ordered_end interface MPI_File_read_shared -subroutine MPI_File_read_shared_f08(fh,buf,count,datatype,status,ierror) +subroutine MPI_File_read_shared_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(fh,buf,count,datatype,status,ierror) use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Status implicit none TYPE(MPI_File), INTENT(IN) :: fh - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ buf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ :: buf + @OMPI_F08_IGNORE_TKR_PREDECL@ buf + @OMPI_F08_IGNORE_TKR_TYPE@ :: buf INTEGER, INTENT(IN) :: count TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Status) :: status INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_File_read_shared_f08 +end subroutine MPI_File_read_shared_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_File_read_shared interface MPI_File_seek @@ -4268,165 +4258,165 @@ end subroutine MPI_File_sync_f08 end interface MPI_File_sync interface MPI_File_write -subroutine MPI_File_write_f08(fh,buf,count,datatype,status,ierror) +subroutine MPI_File_write_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(fh,buf,count,datatype,status,ierror) use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Status implicit none TYPE(MPI_File), INTENT(IN) :: fh - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ buf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) :: buf + @OMPI_F08_IGNORE_TKR_PREDECL@ buf + @OMPI_F08_IGNORE_TKR_TYPE@, INTENT(IN) :: buf INTEGER, INTENT(IN) :: count TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Status) :: status INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_File_write_f08 +end subroutine MPI_File_write_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_File_write interface MPI_File_write_all -subroutine MPI_File_write_all_f08(fh,buf,count,datatype,status,ierror) +subroutine MPI_File_write_all_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(fh,buf,count,datatype,status,ierror) use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Status implicit none TYPE(MPI_File), INTENT(IN) :: fh - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ buf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) :: buf + @OMPI_F08_IGNORE_TKR_PREDECL@ buf + @OMPI_F08_IGNORE_TKR_TYPE@, INTENT(IN) :: buf INTEGER, INTENT(IN) :: count TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Status) :: status INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_File_write_all_f08 +end subroutine MPI_File_write_all_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_File_write_all interface MPI_File_write_all_begin -subroutine MPI_File_write_all_begin_f08(fh,buf,count,datatype,ierror) +subroutine MPI_File_write_all_begin_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(fh,buf,count,datatype,ierror) use :: mpi_f08_types, only : MPI_File, MPI_Datatype implicit none TYPE(MPI_File), INTENT(IN) :: fh - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ buf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: buf + @OMPI_F08_IGNORE_TKR_PREDECL@ buf + @OMPI_F08_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: buf INTEGER, INTENT(IN) :: count TYPE(MPI_Datatype), INTENT(IN) :: datatype INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_File_write_all_begin_f08 +end subroutine MPI_File_write_all_begin_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_File_write_all_begin interface MPI_File_write_all_end -subroutine MPI_File_write_all_end_f08(fh,buf,status,ierror) +subroutine MPI_File_write_all_end_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(fh,buf,status,ierror) use :: mpi_f08_types, only : MPI_File, MPI_Status implicit none TYPE(MPI_File), INTENT(IN) :: fh - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ buf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: buf + @OMPI_F08_IGNORE_TKR_PREDECL@ buf + @OMPI_F08_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: buf TYPE(MPI_Status) :: status INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_File_write_all_end_f08 +end subroutine MPI_File_write_all_end_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_File_write_all_end interface MPI_File_write_at -subroutine MPI_File_write_at_f08(fh,offset,buf,count,datatype,status,ierror) +subroutine MPI_File_write_at_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(fh,offset,buf,count,datatype,status,ierror) use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Status, MPI_OFFSET_KIND implicit none TYPE(MPI_File), INTENT(IN) :: fh INTEGER(MPI_OFFSET_KIND), INTENT(IN) :: offset - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ buf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) :: buf + @OMPI_F08_IGNORE_TKR_PREDECL@ buf + @OMPI_F08_IGNORE_TKR_TYPE@, INTENT(IN) :: buf INTEGER, INTENT(IN) :: count TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Status) :: status INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_File_write_at_f08 +end subroutine MPI_File_write_at_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_File_write_at interface MPI_File_write_at_all -subroutine MPI_File_write_at_all_f08(fh,offset,buf,count,datatype,status,ierror) +subroutine MPI_File_write_at_all_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(fh,offset,buf,count,datatype,status,ierror) use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Status, MPI_OFFSET_KIND implicit none TYPE(MPI_File), INTENT(IN) :: fh INTEGER(MPI_OFFSET_KIND), INTENT(IN) :: offset - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ buf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) :: buf + @OMPI_F08_IGNORE_TKR_PREDECL@ buf + @OMPI_F08_IGNORE_TKR_TYPE@, INTENT(IN) :: buf INTEGER, INTENT(IN) :: count TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Status) :: status INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_File_write_at_all_f08 +end subroutine MPI_File_write_at_all_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_File_write_at_all interface MPI_File_write_at_all_begin -subroutine MPI_File_write_at_all_begin_f08(fh,offset,buf,count,datatype,ierror) +subroutine MPI_File_write_at_all_begin_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(fh,offset,buf,count,datatype,ierror) use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_OFFSET_KIND implicit none TYPE(MPI_File), INTENT(IN) :: fh INTEGER(MPI_OFFSET_KIND), INTENT(IN) :: offset - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ buf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: buf + @OMPI_F08_IGNORE_TKR_PREDECL@ buf + @OMPI_F08_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: buf INTEGER, INTENT(IN) :: count TYPE(MPI_Datatype), INTENT(IN) :: datatype INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_File_write_at_all_begin_f08 +end subroutine MPI_File_write_at_all_begin_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_File_write_at_all_begin interface MPI_File_write_at_all_end -subroutine MPI_File_write_at_all_end_f08(fh,buf,status,ierror) +subroutine MPI_File_write_at_all_end_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(fh,buf,status,ierror) use :: mpi_f08_types, only : MPI_File, MPI_Status implicit none TYPE(MPI_File), INTENT(IN) :: fh - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ buf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: buf + @OMPI_F08_IGNORE_TKR_PREDECL@ buf + @OMPI_F08_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: buf TYPE(MPI_Status) :: status INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_File_write_at_all_end_f08 +end subroutine MPI_File_write_at_all_end_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_File_write_at_all_end interface MPI_File_write_ordered -subroutine MPI_File_write_ordered_f08(fh,buf,count,datatype,status,ierror) +subroutine MPI_File_write_ordered_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(fh,buf,count,datatype,status,ierror) use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Status implicit none TYPE(MPI_File), INTENT(IN) :: fh - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ buf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) :: buf + @OMPI_F08_IGNORE_TKR_PREDECL@ buf + @OMPI_F08_IGNORE_TKR_TYPE@, INTENT(IN) :: buf INTEGER, INTENT(IN) :: count TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Status) :: status INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_File_write_ordered_f08 +end subroutine MPI_File_write_ordered_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_File_write_ordered interface MPI_File_write_ordered_begin -subroutine MPI_File_write_ordered_begin_f08(fh,buf,count,datatype,ierror) +subroutine MPI_File_write_ordered_begin_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(fh,buf,count,datatype,ierror) use :: mpi_f08_types, only : MPI_File, MPI_Datatype implicit none TYPE(MPI_File), INTENT(IN) :: fh - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ buf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: buf + @OMPI_F08_IGNORE_TKR_PREDECL@ buf + @OMPI_F08_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: buf INTEGER, INTENT(IN) :: count TYPE(MPI_Datatype), INTENT(IN) :: datatype INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_File_write_ordered_begin_f08 +end subroutine MPI_File_write_ordered_begin_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_File_write_ordered_begin interface MPI_File_write_ordered_end -subroutine MPI_File_write_ordered_end_f08(fh,buf,status,ierror) +subroutine MPI_File_write_ordered_end_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(fh,buf,status,ierror) use :: mpi_f08_types, only : MPI_File, MPI_Status implicit none TYPE(MPI_File), INTENT(IN) :: fh - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ buf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: buf + @OMPI_F08_IGNORE_TKR_PREDECL@ buf + @OMPI_F08_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: buf TYPE(MPI_Status) :: status INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_File_write_ordered_end_f08 +end subroutine MPI_File_write_ordered_end_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_File_write_ordered_end interface MPI_File_write_shared -subroutine MPI_File_write_shared_f08(fh,buf,count,datatype,status,ierror) +subroutine MPI_File_write_shared_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(fh,buf,count,datatype,status,ierror) use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Status implicit none TYPE(MPI_File), INTENT(IN) :: fh - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ buf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) :: buf + @OMPI_F08_IGNORE_TKR_PREDECL@ buf + @OMPI_F08_IGNORE_TKR_TYPE@, INTENT(IN) :: buf INTEGER, INTENT(IN) :: count TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Status) :: status INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_File_write_shared_f08 +end subroutine MPI_File_write_shared_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_File_write_shared interface MPI_Register_datarep @@ -4452,8 +4442,8 @@ end interface MPI_Register_datarep !subroutine MPI_Sizeof(x,size,ierror) ! use :: mpi_f08_types ! implicit none -! @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ x -! @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) :: x +! @OMPI_F08_IGNORE_TKR_PREDECL@ x +! @OMPI_F08_IGNORE_TKR_TYPE@, INTENT(IN) :: x ! INTEGER, INTENT(OUT) :: size ! INTEGER, OPTIONAL, INTENT(OUT) :: ierror !end subroutine MPI_Sizeof @@ -4524,11 +4514,11 @@ end subroutine MPI_Comm_split_type_f08 end interface MPI_Comm_split_type interface MPI_F_sync_reg -subroutine MPI_F_sync_reg_f08(buf) +subroutine MPI_F_sync_reg_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(buf) implicit none - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ buf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: buf -end subroutine MPI_F_sync_reg_f08 + @OMPI_F08_IGNORE_TKR_PREDECL@ buf + @OMPI_F08_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: buf +end subroutine MPI_F_sync_reg_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_F_sync_reg interface MPI_Get_library_version @@ -4567,62 +4557,62 @@ end subroutine MPI_Improbe_f08 end interface MPI_Improbe interface MPI_Imrecv -subroutine MPI_Imrecv_f08(buf,count,datatype,message,request,ierror) +subroutine MPI_Imrecv_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(buf,count,datatype,message,request,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Message, MPI_Request implicit none - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ buf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: buf + @OMPI_F08_IGNORE_TKR_PREDECL@ buf + @OMPI_F08_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: buf INTEGER, INTENT(IN) :: count TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Message), INTENT(INOUT) :: message TYPE(MPI_Request), INTENT(OUT) :: request INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_Imrecv_f08 +end subroutine MPI_Imrecv_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_Imrecv interface MPI_Mrecv -subroutine MPI_Mrecv_f08(buf,count,datatype,message,status,ierror) +subroutine MPI_Mrecv_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(buf,count,datatype,message,status,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Message, MPI_Status implicit none - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ buf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ :: buf + @OMPI_F08_IGNORE_TKR_PREDECL@ buf + @OMPI_F08_IGNORE_TKR_TYPE@ :: buf INTEGER, INTENT(IN) :: count TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Message), INTENT(INOUT) :: message TYPE(MPI_Status) :: status INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_Mrecv_f08 +end subroutine MPI_Mrecv_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_Mrecv interface MPI_Neighbor_allgather -subroutine MPI_Neighbor_allgather_f08(sendbuf,sendcount,sendtype,recvbuf,recvcount,recvtype, & - comm,ierror) +subroutine MPI_Neighbor_allgather_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(sendbuf,sendcount,sendtype,recvbuf,recvcount,recvtype, & + comm,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm implicit none - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ sendbuf, recvbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) :: sendbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ :: recvbuf + @OMPI_F08_IGNORE_TKR_PREDECL@ sendbuf, recvbuf + @OMPI_F08_IGNORE_TKR_TYPE@, INTENT(IN) :: sendbuf + @OMPI_F08_IGNORE_TKR_TYPE@ :: recvbuf INTEGER, INTENT(IN) :: sendcount, recvcount TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype TYPE(MPI_Comm), INTENT(IN) :: comm INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_Neighbor_allgather_f08 +end subroutine MPI_Neighbor_allgather_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_Neighbor_allgather interface MPI_Ineighbor_allgather -subroutine MPI_Ineighbor_allgather_f08(sendbuf,sendcount,sendtype,recvbuf,recvcount,recvtype, & - comm,request,ierror) +subroutine MPI_Ineighbor_allgather_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(sendbuf,sendcount,sendtype,recvbuf,recvcount,recvtype, & + comm,request,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request implicit none - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ sendbuf, recvbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: recvbuf + @OMPI_F08_IGNORE_TKR_PREDECL@ sendbuf, recvbuf + @OMPI_F08_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf + @OMPI_F08_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: recvbuf INTEGER, INTENT(IN) :: sendcount, recvcount TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype TYPE(MPI_Comm), INTENT(IN) :: comm TYPE(MPI_Request), INTENT(OUT) :: request INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_Ineighbor_allgather_f08 +end subroutine MPI_Ineighbor_allgather_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_Ineighbor_allgather interface MPI_Neighbor_allgather_init @@ -4630,9 +4620,9 @@ subroutine MPI_Neighbor_allgather_init_f08(sendbuf,sendcount,sendtype,recvbuf,re comm,info,request,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Info, MPI_Request implicit none - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ sendbuf, recvbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) :: sendbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ :: recvbuf + @OMPI_F08_IGNORE_TKR_PREDECL@ sendbuf, recvbuf + @OMPI_F08_IGNORE_TKR_TYPE@, INTENT(IN) :: sendbuf + @OMPI_F08_IGNORE_TKR_TYPE@ :: recvbuf INTEGER, INTENT(IN) :: sendcount, recvcount TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype TYPE(MPI_Comm), INTENT(IN) :: comm @@ -4643,36 +4633,36 @@ end subroutine MPI_Neighbor_allgather_init_f08 end interface MPI_Neighbor_allgather_init interface MPI_Neighbor_allgatherv -subroutine MPI_Neighbor_allgatherv_f08(sendbuf,sendcount,sendtype,recvbuf,recvcounts,displs, & - recvtype,comm,ierror) +subroutine MPI_Neighbor_allgatherv_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(sendbuf,sendcount,sendtype,recvbuf,recvcounts,displs, & + recvtype,comm,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm implicit none - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ sendbuf, recvbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) :: sendbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ :: recvbuf + @OMPI_F08_IGNORE_TKR_PREDECL@ sendbuf, recvbuf + @OMPI_F08_IGNORE_TKR_TYPE@, INTENT(IN) :: sendbuf + @OMPI_F08_IGNORE_TKR_TYPE@ :: recvbuf INTEGER, INTENT(IN) :: sendcount INTEGER, INTENT(IN) :: recvcounts(*), displs(*) TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype TYPE(MPI_Comm), INTENT(IN) :: comm INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_Neighbor_allgatherv_f08 +end subroutine MPI_Neighbor_allgatherv_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_Neighbor_allgatherv interface MPI_Ineighbor_allgatherv -subroutine MPI_Ineighbor_allgatherv_f08(sendbuf,sendcount,sendtype,recvbuf,recvcounts,displs, & - recvtype,comm,request,ierror) +subroutine MPI_Ineighbor_allgatherv_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(sendbuf,sendcount,sendtype,recvbuf,recvcounts,displs, & + recvtype,comm,request,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request implicit none - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ sendbuf, recvbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: recvbuf + @OMPI_F08_IGNORE_TKR_PREDECL@ sendbuf, recvbuf + @OMPI_F08_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf + @OMPI_F08_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: recvbuf INTEGER, INTENT(IN) :: sendcount INTEGER, INTENT(IN) OMPI_ASYNCHRONOUS :: recvcounts(*), displs(*) TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype TYPE(MPI_Comm), INTENT(IN) :: comm TYPE(MPI_Request), INTENT(OUT) :: request INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_Ineighbor_allgatherv_f08 +end subroutine MPI_Ineighbor_allgatherv_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_Ineighbor_allgatherv interface MPI_Neighbor_allgatherv_init @@ -4680,9 +4670,9 @@ subroutine MPI_Neighbor_allgatherv_init_f08(sendbuf,sendcount,sendtype,recvbuf,r recvtype,comm,info,request,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Info, MPI_Request implicit none - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ sendbuf, recvbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) :: sendbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ :: recvbuf + @OMPI_F08_IGNORE_TKR_PREDECL@ sendbuf, recvbuf + @OMPI_F08_IGNORE_TKR_TYPE@, INTENT(IN) :: sendbuf + @OMPI_F08_IGNORE_TKR_TYPE@ :: recvbuf INTEGER, INTENT(IN) :: sendcount INTEGER, INTENT(IN) :: recvcounts(*), displs(*) TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype @@ -4694,34 +4684,34 @@ end subroutine MPI_Neighbor_allgatherv_init_f08 end interface MPI_Neighbor_allgatherv_init interface MPI_Neighbor_alltoall -subroutine MPI_Neighbor_alltoall_f08(sendbuf,sendcount,sendtype,recvbuf,recvcount,recvtype, & - comm,ierror) +subroutine MPI_Neighbor_alltoall_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(sendbuf,sendcount,sendtype,recvbuf,recvcount,recvtype, & + comm,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm implicit none - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ sendbuf, recvbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) :: sendbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ :: recvbuf + @OMPI_F08_IGNORE_TKR_PREDECL@ sendbuf, recvbuf + @OMPI_F08_IGNORE_TKR_TYPE@, INTENT(IN) :: sendbuf + @OMPI_F08_IGNORE_TKR_TYPE@ :: recvbuf INTEGER, INTENT(IN) :: sendcount, recvcount TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype TYPE(MPI_Comm), INTENT(IN) :: comm INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_Neighbor_alltoall_f08 +end subroutine MPI_Neighbor_alltoall_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_Neighbor_alltoall interface MPI_Ineighbor_alltoall -subroutine MPI_Ineighbor_alltoall_f08(sendbuf,sendcount,sendtype,recvbuf,recvcount,recvtype, & - comm,request,ierror) +subroutine MPI_Ineighbor_alltoall_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(sendbuf,sendcount,sendtype,recvbuf,recvcount,recvtype, & + comm,request,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request implicit none - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ sendbuf, recvbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: recvbuf + @OMPI_F08_IGNORE_TKR_PREDECL@ sendbuf, recvbuf + @OMPI_F08_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf + @OMPI_F08_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: recvbuf INTEGER, INTENT(IN) :: sendcount, recvcount TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype TYPE(MPI_Comm), INTENT(IN) :: comm TYPE(MPI_Request), INTENT(OUT) :: request INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_Ineighbor_alltoall_f08 +end subroutine MPI_Ineighbor_alltoall_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_Ineighbor_alltoall interface MPI_Neighbor_alltoall_init @@ -4729,9 +4719,9 @@ subroutine MPI_Neighbor_alltoall_init_f08(sendbuf,sendcount,sendtype,recvbuf,rec comm,info,request,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Info, MPI_Request implicit none - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ sendbuf, recvbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) :: sendbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ :: recvbuf + @OMPI_F08_IGNORE_TKR_PREDECL@ sendbuf, recvbuf + @OMPI_F08_IGNORE_TKR_TYPE@, INTENT(IN) :: sendbuf + @OMPI_F08_IGNORE_TKR_TYPE@ :: recvbuf INTEGER, INTENT(IN) :: sendcount, recvcount TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype TYPE(MPI_Comm), INTENT(IN) :: comm @@ -4742,34 +4732,34 @@ end subroutine MPI_Neighbor_alltoall_init_f08 end interface MPI_Neighbor_alltoall_init interface MPI_Neighbor_alltoallv -subroutine MPI_Neighbor_alltoallv_f08(sendbuf,sendcounts,sdispls,sendtype,recvbuf,recvcounts, & - rdispls,recvtype,comm,ierror) +subroutine MPI_Neighbor_alltoallv_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(sendbuf,sendcounts,sdispls,sendtype,recvbuf,recvcounts, & + rdispls,recvtype,comm,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm implicit none - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ sendbuf, recvbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) :: sendbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ :: recvbuf + @OMPI_F08_IGNORE_TKR_PREDECL@ sendbuf, recvbuf + @OMPI_F08_IGNORE_TKR_TYPE@, INTENT(IN) :: sendbuf + @OMPI_F08_IGNORE_TKR_TYPE@ :: recvbuf INTEGER, INTENT(IN) :: sendcounts(*), sdispls(*), recvcounts(*), rdispls(*) TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype TYPE(MPI_Comm), INTENT(IN) :: comm INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_Neighbor_alltoallv_f08 +end subroutine MPI_Neighbor_alltoallv_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_Neighbor_alltoallv interface MPI_Ineighbor_alltoallv -subroutine MPI_Ineighbor_alltoallv_f08(sendbuf,sendcounts,sdispls,sendtype,recvbuf,recvcounts, & - rdispls,recvtype,comm,request,ierror) +subroutine MPI_Ineighbor_alltoallv_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(sendbuf,sendcounts,sdispls,sendtype,recvbuf,recvcounts, & + rdispls,recvtype,comm,request,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request implicit none - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ sendbuf, recvbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: recvbuf + @OMPI_F08_IGNORE_TKR_PREDECL@ sendbuf, recvbuf + @OMPI_F08_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf + @OMPI_F08_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: recvbuf INTEGER, INTENT(IN) OMPI_ASYNCHRONOUS :: sendcounts(*), sdispls(*), recvcounts(*), rdispls(*) TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype TYPE(MPI_Comm), INTENT(IN) :: comm TYPE(MPI_Request), INTENT(OUT) :: request INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_Ineighbor_alltoallv_f08 +end subroutine MPI_Ineighbor_alltoallv_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_Ineighbor_alltoallv interface MPI_Neighbor_alltoallv_init @@ -4777,9 +4767,9 @@ subroutine MPI_Neighbor_alltoallv_init_f08(sendbuf,sendcounts,sdispls,sendtype,r rdispls,recvtype,comm,info,request,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Info, MPI_Request implicit none - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ sendbuf, recvbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) :: sendbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ :: recvbuf + @OMPI_F08_IGNORE_TKR_PREDECL@ sendbuf, recvbuf + @OMPI_F08_IGNORE_TKR_TYPE@, INTENT(IN) :: sendbuf + @OMPI_F08_IGNORE_TKR_TYPE@ :: recvbuf INTEGER, INTENT(IN) :: sendcounts(*), sdispls(*), recvcounts(*), rdispls(*) TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype TYPE(MPI_Comm), INTENT(IN) :: comm @@ -4790,36 +4780,36 @@ end subroutine MPI_Neighbor_alltoallv_init_f08 end interface MPI_Neighbor_alltoallv_init interface MPI_Neighbor_alltoallw -subroutine MPI_Neighbor_alltoallw_f08(sendbuf,sendcounts,sdispls,sendtypes,recvbuf,recvcounts, & - rdispls,recvtypes,comm,ierror) +subroutine MPI_Neighbor_alltoallw_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(sendbuf,sendcounts,sdispls,sendtypes,recvbuf,recvcounts, & + rdispls,recvtypes,comm,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_ADDRESS_KIND implicit none - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ sendbuf, recvbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) :: sendbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ :: recvbuf + @OMPI_F08_IGNORE_TKR_PREDECL@ sendbuf, recvbuf + @OMPI_F08_IGNORE_TKR_TYPE@, INTENT(IN) :: sendbuf + @OMPI_F08_IGNORE_TKR_TYPE@ :: recvbuf INTEGER, INTENT(IN) :: sendcounts(*), recvcounts(*) INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: sdispls(*), rdispls(*) TYPE(MPI_Datatype), INTENT(IN) :: sendtypes(*), recvtypes(*) TYPE(MPI_Comm), INTENT(IN) :: comm INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_Neighbor_alltoallw_f08 +end subroutine MPI_Neighbor_alltoallw_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_Neighbor_alltoallw interface MPI_Ineighbor_alltoallw -subroutine MPI_Ineighbor_alltoallw_f08(sendbuf,sendcounts,sdispls,sendtypes,recvbuf,recvcounts, & - rdispls,recvtypes,comm,request,ierror) +subroutine MPI_Ineighbor_alltoallw_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(sendbuf,sendcounts,sdispls,sendtypes,recvbuf,recvcounts, & + rdispls,recvtypes,comm,request,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request, MPI_ADDRESS_KIND implicit none - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ sendbuf, recvbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: recvbuf + @OMPI_F08_IGNORE_TKR_PREDECL@ sendbuf, recvbuf + @OMPI_F08_IGNORE_TKR_TYPE@, INTENT(IN) OMPI_ASYNCHRONOUS :: sendbuf + @OMPI_F08_IGNORE_TKR_TYPE@ OMPI_ASYNCHRONOUS :: recvbuf INTEGER, INTENT(IN) OMPI_ASYNCHRONOUS :: sendcounts(*), recvcounts(*) INTEGER(MPI_ADDRESS_KIND), INTENT(IN) OMPI_ASYNCHRONOUS :: sdispls(*), rdispls(*) TYPE(MPI_Datatype), INTENT(IN) OMPI_ASYNCHRONOUS :: sendtypes(*), recvtypes(*) TYPE(MPI_Comm), INTENT(IN) :: comm TYPE(MPI_Request), INTENT(OUT) :: request INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_Ineighbor_alltoallw_f08 +end subroutine MPI_Ineighbor_alltoallw_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_Ineighbor_alltoallw interface MPI_Neighbor_alltoallw_init @@ -4827,9 +4817,9 @@ subroutine MPI_Neighbor_alltoallw_init_f08(sendbuf,sendcounts,sdispls,sendtypes, rdispls,recvtypes,comm,info,request,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Info, MPI_Request, MPI_ADDRESS_KIND implicit none - @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ sendbuf, recvbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@, INTENT(IN) :: sendbuf - @OMPI_FORTRAN_IGNORE_TKR_TYPE@ :: recvbuf + @OMPI_F08_IGNORE_TKR_PREDECL@ sendbuf, recvbuf + @OMPI_F08_IGNORE_TKR_TYPE@, INTENT(IN) :: sendbuf + @OMPI_F08_IGNORE_TKR_TYPE@ :: recvbuf INTEGER, INTENT(IN) :: sendcounts(*), recvcounts(*) INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: sdispls(*), rdispls(*) TYPE(MPI_Datatype), INTENT(IN) :: sendtypes(*), recvtypes(*) diff --git a/ompi/mpi/fortran/use-mpi-f08/mod/mpi-f08-rename.h b/ompi/mpi/fortran/use-mpi-f08/mod/mpi-f08-rename.h.in similarity index 58% rename from ompi/mpi/fortran/use-mpi-f08/mod/mpi-f08-rename.h rename to ompi/mpi/fortran/use-mpi-f08/mod/mpi-f08-rename.h.in index 06d2bb0e426..801f05a1453 100644 --- a/ompi/mpi/fortran/use-mpi-f08/mod/mpi-f08-rename.h +++ b/ompi/mpi/fortran/use-mpi-f08/mod/mpi-f08-rename.h.in @@ -6,11 +6,14 @@ #if OMPI_BUILD_MPI_PROFILING #define MPI_Bsend PMPI_Bsend -#define MPI_Bsend_f08 PMPI_Bsend_f08 +#define MPI_Bsend_f08 PMPI_Bsend_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Bsend_f08ts PMPI_Bsend_f08ts #define MPI_Bsend_init PMPI_Bsend_init -#define MPI_Bsend_init_f08 PMPI_Bsend_init_f08 +#define MPI_Bsend_init_f08 PMPI_Bsend_init_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Bsend_init_f08ts PMPI_Bsend_init_f08ts #define MPI_Buffer_attach PMPI_Buffer_attach -#define MPI_Buffer_attach_f08 PMPI_Buffer_attach_f08 +#define MPI_Buffer_attach_f08 PMPI_Buffer_attach_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Buffer_attach_f08ts PMPI_Buffer_attach_f08ts #define MPI_Buffer_detach PMPI_Buffer_detach #define MPI_Buffer_detach_f08 PMPI_Buffer_detach_f08 #define MPI_Cancel PMPI_Cancel @@ -18,21 +21,26 @@ #define MPI_Get_count PMPI_Get_count #define MPI_Get_count_f08 PMPI_Get_count_f08 #define MPI_Ibsend PMPI_Ibsend -#define MPI_Ibsend_f08 PMPI_Ibsend_f08 +#define MPI_Ibsend_f08 PMPI_Ibsend_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Ibsend_f08ts PMPI_Ibsend_f08ts #define MPI_Iprobe PMPI_Iprobe #define MPI_Iprobe_f08 PMPI_Iprobe_f08 #define MPI_Irecv PMPI_Irecv -#define MPI_Irecv_f08 PMPI_Irecv_f08 +#define MPI_Irecv_f08 PMPI_Irecv_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Irecv_f08ts PMPI_Irecv_f08ts #define MPI_Irsend PMPI_Irsend -#define MPI_Irsend_f08 PMPI_Irsend_f08 +#define MPI_Irsend_f08 PMPI_Irsend_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Irsend_f08ts PMPI_Irsend_f08ts #define MPI_Isend PMPI_Isend -#define MPI_Isend_f08 PMPI_Isend_f08 +#define MPI_Isend_f08 PMPI_Isend_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Isend_f08ts PMPI_Isend_f08ts #define MPI_Isendrecv PMPI_Isendrecv #define MPI_Isendrecv_f08 PMPI_Isendrecv_f08 #define MPI_Isendrecv_replace PMPI_Isendrecv_replace #define MPI_Isendrecv_replace_f08 PMPI_Isendrecv_replace_f08 #define MPI_Issend PMPI_Issend -#define MPI_Issend_f08 PMPI_Issend_f08 +#define MPI_Issend_f08 PMPI_Issend_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Issend_f08ts PMPI_Issend_f08ts #define MPI_Precv_init PMPI_Precv_init #define MPI_Precv_init_f08 PMPI_Precv_init_f08 #define MPI_Psend_init PMPI_Psend_init @@ -48,25 +56,33 @@ #define MPI_Probe PMPI_Probe #define MPI_Probe_f08 PMPI_Probe_f08 #define MPI_Recv PMPI_Recv -#define MPI_Recv_f08 PMPI_Recv_f08 +#define MPI_Recv_f08 PMPI_Recv_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Recv_f08ts PMPI_Recv_f08ts #define MPI_Recv_init PMPI_Recv_init -#define MPI_Recv_init_f08 PMPI_Recv_init_f08 +#define MPI_Recv_init_f08 PMPI_Recv_init_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Recv_init_f08ts PMPI_Recv_init_f08ts #define MPI_Request_free PMPI_Request_free #define MPI_Request_free_f08 PMPI_Request_free_f08 #define MPI_Request_get_status PMPI_Request_get_status #define MPI_Request_get_status_f08 PMPI_Request_get_status_f08 #define MPI_Rsend PMPI_Rsend -#define MPI_Rsend_f08 PMPI_Rsend_f08 +#define MPI_Rsend_f08 PMPI_Rsend_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Rsend_f08ts PMPI_Rsend_f08ts #define MPI_Rsend_init PMPI_Rsend_init -#define MPI_Rsend_init_f08 PMPI_Rsend_init_f08 +#define MPI_Rsend_init_f08 PMPI_Rsend_init_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Rsend_init_f08ts PMPI_Rsend_init_f08ts #define MPI_Send PMPI_Send -#define MPI_Send_f08 PMPI_Send_f08 +#define MPI_Send_f08 PMPI_Send_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Send_f08ts PMPI_Send_f08ts #define MPI_Sendrecv PMPI_Sendrecv -#define MPI_Sendrecv_f08 PMPI_Sendrecv_f08 +#define MPI_Sendrecv_f08 PMPI_Sendrecv_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Sendrecv_f08ts PMPI_Sendrecv_f08ts #define MPI_Sendrecv_replace PMPI_Sendrecv_replace -#define MPI_Sendrecv_replace_f08 PMPI_Sendrecv_replace_f08 +#define MPI_Sendrecv_replace_f08 PMPI_Sendrecv_replace_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Sendrecv_replace_f08ts PMPI_Sendrecv_replace_f08ts #define MPI_Send_init PMPI_Send_init -#define MPI_Send_init_f08 PMPI_Send_init_f08 +#define MPI_Send_init_f08 PMPI_Send_init_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Send_init_f08ts PMPI_Send_init_f08ts #define MPI_Session_get_info PMPI_Session_get_info #define MPI_Session_get_info_f08 PMPI_Session_get_info_f08 #define MPI_Session_get_nth_pset PMPI_Session_get_nth_pset @@ -82,9 +98,11 @@ #define MPI_Session_finalize PMPI_Session_finalize #define MPI_Session_finalize_f08 PMPI_Session_finalize_f08 #define MPI_Ssend PMPI_Ssend -#define MPI_Ssend_f08 PMPI_Ssend_f08 +#define MPI_Ssend_f08 PMPI_Ssend_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Ssend_f08ts PMPI_Ssend_f08ts #define MPI_Ssend_init PMPI_Ssend_init -#define MPI_Ssend_init_f08 PMPI_Ssend_init_f08 +#define MPI_Ssend_init_f08 PMPI_Ssend_init_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Ssend_init_f08ts PMPI_Ssend_init_f08ts #define MPI_Start PMPI_Start #define MPI_Start_f08 PMPI_Start_f08 #define MPI_Startall PMPI_Startall @@ -108,15 +126,18 @@ #define MPI_Waitsome PMPI_Waitsome #define MPI_Waitsome_f08 PMPI_Waitsome_f08 #define MPI_Get_address PMPI_Get_address -#define MPI_Get_address_f08 PMPI_Get_address_f08 +#define MPI_Get_address_f08 PMPI_Get_address_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Get_address_f08ts PMPI_Get_address_f08ts #define MPI_Get_elements PMPI_Get_elements #define MPI_Get_elements_f08 PMPI_Get_elements_f08 #define MPI_Get_elements_x PMPI_Get_elements_x #define MPI_Get_elements_x_f08 PMPI_Get_elements_x_f08 #define MPI_Pack PMPI_Pack -#define MPI_Pack_f08 PMPI_Pack_f08 +#define MPI_Pack_f08 PMPI_Pack_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Pack_f08ts PMPI_Pack_f08s #define MPI_Pack_external PMPI_Pack_external -#define MPI_Pack_external_f08 PMPI_Pack_external_f08 +#define MPI_Pack_external_f08 PMPI_Pack_external_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Pack_external_f08ts PMPI_Pack_external_f08ts #define MPI_Pack_external_size PMPI_Pack_external_size #define MPI_Pack_external_size_f08 PMPI_Pack_external_size_f08 #define MPI_Pack_size PMPI_Pack_size @@ -166,43 +187,57 @@ #define MPI_Type_vector PMPI_Type_vector #define MPI_Type_vector_f08 PMPI_Type_vector_f08 #define MPI_Unpack PMPI_Unpack -#define MPI_Unpack_f08 PMPI_Unpack_f08 +#define MPI_Unpack_f08 PMPI_Unpack_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Unpack_f08ts PMPI_Unpack_f08ts #define MPI_Unpack_external PMPI_Unpack_external -#define MPI_Unpack_external_f08 PMPI_Unpack_external_f08 +#define MPI_Unpack_external_f08 PMPI_Unpack_external_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Unpack_external_f08ts PMPI_Unpack_external_f08ts #define MPI_Allgather PMPI_Allgather -#define MPI_Allgather_f08 PMPI_Allgather_f08 +#define MPI_Allgather_f08 PMPI_Allgather_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Allgather_f08ts PMPI_Allgather_f08ts #define MPI_Iallgather PMPI_Iallgather -#define MPI_Iallgather_f08 PMPI_Iallgather_f08 +#define MPI_Iallgather_f08 PMPI_Iallgather_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Iallgather_f08ts PMPI_Iallgather_f08ts #define MPI_Allgather_init PMPI_Allgather_init #define MPI_Allgather_init_f08 PMPI_Allgather_init_f08 #define MPI_Allgatherv PMPI_Allgatherv -#define MPI_Allgatherv_f08 PMPI_Allgatherv_f08 +#define MPI_Allgatherv_f08 PMPI_Allgatherv_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Allgatherv_f08ts PMPI_Allgatherv_f08ts #define MPI_Iallgatherv PMPI_Iallgatherv -#define MPI_Iallgatherv_f08 PMPI_Iallgatherv_f08 +#define MPI_Iallgatherv_f08 PMPI_Iallgatherv_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Iallgatherv_f08ts PMPI_Iallgatherv_f08ts #define MPI_Allgatherv_init PMPI_Allgatherv_init #define MPI_Allgatherv_init_f08 PMPI_Allgatherv_init_f08 #define MPI_Allreduce PMPI_Allreduce -#define MPI_Allreduce_f08 PMPI_Allreduce_f08 +#define MPI_Allreduce_f08 PMPI_Allreduce_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Allreduce_f08ts PMPI_Allreduce_f08ts #define MPI_Iallreduce PMPI_Iallreduce -#define MPI_Iallreduce_f08 PMPI_Iallreduce_f08 +#define MPI_Iallreduce_f08 PMPI_Iallreduce_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Iallreduce_f08ts PMPI_Iallreduce_f08ts #define MPI_Allreduce_init PMPI_Allreduce_init #define MPI_Allreduce_init_f08 PMPI_Allreduce_init_f08 #define MPI_Alltoall PMPI_Alltoall -#define MPI_Alltoall_f08 PMPI_Alltoall_f08 +#define MPI_Alltoall_f08 PMPI_Alltoall_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Alltoall_f08ts PMPI_Alltoall_f08ts #define MPI_Ialltoall PMPI_Ialltoall -#define MPI_Ialltoall_f08 PMPI_Ialltoall_f08 +#define MPI_Ialltoall_f08 PMPI_Ialltoall_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Ialltoall_f08ts PMPI_Ialltoall_f08ts #define MPI_Alltoall_init PMPI_Alltoall_init #define MPI_Alltoall_init_f08 PMPI_Alltoall_init_f08 #define MPI_Alltoallv PMPI_Alltoallv -#define MPI_Alltoallv_f08 PMPI_Alltoallv_f08 +#define MPI_Alltoallv_f08 PMPI_Alltoallv_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Alltoallv_f08ts PMPI_Alltoallv_f08ts #define MPI_Ialltoallv PMPI_Ialltoallv -#define MPI_Ialltoallv_f08 PMPI_Ialltoallv_f08 +#define MPI_Ialltoallv_f08 PMPI_Ialltoallv_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Ialltoallv_f08ts PMPI_Ialltoallv_f08ts #define MPI_Alltoallv_init PMPI_Alltoallv_init #define MPI_Alltoallv_init_f08 PMPI_Alltoallv_init_f08 #define MPI_Alltoallw PMPI_Alltoallw -#define MPI_Alltoallw_f08 PMPI_Alltoallw_f08 +#define MPI_Alltoallw_f08 PMPI_Alltoallw_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Alltoallw_f08ts PMPI_Alltoallw_f08ts #define MPI_Ialltoallw PMPI_Ialltoallw -#define MPI_Ialltoallw_f08 PMPI_Ialltoallw_f08 +#define MPI_Ialltoallw_f08 PMPI_Ialltoallw_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Ialltoallw_f08ts PMPI_Ialltoallw_f08ts #define MPI_Alltoallw_init PMPI_Alltoallw_init #define MPI_Alltoallw_init_f08 PMPI_Alltoallw_init_f08 #define MPI_Barrier PMPI_Barrier @@ -212,27 +247,35 @@ #define MPI_Barrier_init PMPI_Barrier_init #define MPI_Barrier_init_f08 PMPI_Barrier_init_f08 #define MPI_Bcast PMPI_Bcast -#define MPI_Bcast_f08 PMPI_Bcast_f08 +#define MPI_Bcast_f08 PMPI_Bcast_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Bcast_f08ts PMPI_Bcast_f08ts #define MPI_Ibcast PMPI_Ibcast -#define MPI_Ibcast_f08 PMPI_Ibcast_f08 +#define MPI_Ibcast_f08 PMPI_Ibcast_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Ibcast_f08ts PMPI_Ibcast_f08ts #define MPI_Bcast_init PMPI_Bcast_init #define MPI_Bcast_init_f08 PMPI_Bcast_init_f08 #define MPI_Exscan PMPI_Exscan -#define MPI_Exscan_f08 PMPI_Exscan_f08 +#define MPI_Exscan_f08 PMPI_Exscan_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Exscan_f08ts PMPI_Exscan_f08ts #define MPI_Iexscan PMPI_Iexscan -#define MPI_Iexscan_f08 PMPI_Iexscan_f08 +#define MPI_Iexscan_f08 PMPI_Iexscan_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Iexscan_f08ts PMPI_Iexscan_f08ts #define MPI_Exscan_init PMPI_Exscan_init #define MPI_Exscan_init_f08 PMPI_Exscan_init_f08 #define MPI_Gather PMPI_Gather -#define MPI_Gather_f08 PMPI_Gather_f08 +#define MPI_Gather_f08 PMPI_Gather_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Gather_f08ts PMPI_Gather_f08ts #define MPI_Igather PMPI_Igather -#define MPI_Igather_f08 PMPI_Igather_f08 +#define MPI_Igather_f08 PMPI_Igather_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Igather_f08ts PMPI_Igather_f08ts #define MPI_Gather_init PMPI_Gather_init #define MPI_Gather_init_f08 PMPI_Gather_init_f08 #define MPI_Gatherv PMPI_Gatherv -#define MPI_Gatherv_f08 PMPI_Gatherv_f08 +#define MPI_Gatherv_f08 PMPI_Gatherv_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Gatherv_f08ts PMPI_Gatherv_f08ts #define MPI_Igatherv PMPI_Igatherv -#define MPI_Igatherv_f08 PMPI_Igatherv_f08 +#define MPI_Igatherv_f08 PMPI_Igatherv_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Igatherv_f08ts PMPI_Igatherv_f08ts #define MPI_Gatherv_init PMPI_Gatherv_init #define MPI_Gatherv_init_f08 PMPI_Gatherv_init_f08 #define MPI_Op_commutative PMPI_Op_commutative @@ -242,41 +285,54 @@ #define MPI_Op_free PMPI_Op_free #define MPI_Op_free_f08 PMPI_Op_free_f08 #define MPI_Reduce PMPI_Reduce -#define MPI_Reduce_f08 PMPI_Reduce_f08 +#define MPI_Reduce_f08 PMPI_Reduce_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Reduce_f08ts PMPI_Reduce_f08ts #define MPI_Ireduce PMPI_Ireduce -#define MPI_Ireduce_f08 PMPI_Ireduce_f08 +#define MPI_Ireduce_f08 PMPI_Ireduce_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Ireduce_f08ts PMPI_Ireduce_f08ts #define MPI_Reduce_init PMPI_Reduce_init #define MPI_Reduce_init_f08 PMPI_Reduce_init_f08 #define MPI_Reduce_local PMPI_Reduce_local -#define MPI_Reduce_local_f08 PMPI_Reduce_local_f08 +#define MPI_Reduce_local_f08 PMPI_Reduce_local_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Reduce_local_f08ts PMPI_Reduce_local_f08ts #define MPI_Reduce_scatter PMPI_Reduce_scatter -#define MPI_Reduce_scatter_f08 PMPI_Reduce_scatter_f08 +#define MPI_Reduce_scatter_f08 PMPI_Reduce_scatter_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Reduce_scatter_f08ts PMPI_Reduce_scatter_f08ts #define MPI_Ireduce_scatter PMPI_Ireduce_scatter -#define MPI_Ireduce_scatter_f08 PMPI_Ireduce_scatter_f08 +#define MPI_Ireduce_scatter_f08 PMPI_Ireduce_scatter_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Ireduce_scatter_f08ts PMPI_Ireduce_scatter_f08ts #define MPI_Reduce_scatter_init PMPI_Reduce_scatter_init #define MPI_Reduce_scatter_init_f08 PMPI_Reduce_scatter_init_f08 #define MPI_Reduce_scatter_block PMPI_Reduce_scatter_block -#define MPI_Reduce_scatter_block_f08 PMPI_Reduce_scatter_block_f08 +#define MPI_Reduce_scatter_block_f08 PMPI_Reduce_scatter_block_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Reduce_scatter_block_f08ts PMPI_Reduce_scatter_block_f08ts #define MPI_Ireduce_scatter_block PMPI_Ireduce_scatter_block -#define MPI_Ireduce_scatter_block_f08 PMPI_Ireduce_scatter_block_f08 +#define MPI_Ireduce_scatter_block_f08 PMPI_Ireduce_scatter_block_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Ireduce_scatter_block_f08ts PMPI_Ireduce_scatter_block_f08ts #define MPI_Reduce_scatter_block_init PMPI_Reduce_scatter_block_init #define MPI_Reduce_scatter_block_init_f08 PMPI_Reduce_scatter_block_init_f08 #define MPI_Scan PMPI_Scan -#define MPI_Scan_f08 PMPI_Scan_f08 +#define MPI_Scan_f08 PMPI_Scan_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Scan_f08ts PMPI_Scan_f08ts #define MPI_Iscan PMPI_Iscan -#define MPI_Iscan_f08 PMPI_Iscan_f08 +#define MPI_Iscan_f08 PMPI_Iscan_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Iscan_f08ts PMPI_Iscan_f08ts #define MPI_Scan_init PMPI_Scan_init #define MPI_Scan_init_f08 PMPI_Scan_init_f08 #define MPI_Scatter PMPI_Scatter -#define MPI_Scatter_f08 PMPI_Scatter_f08 +#define MPI_Scatter_f08 PMPI_Scatter_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Scatter_f08ts PMPI_Scatter_f08ts #define MPI_Iscatter PMPI_Iscatter -#define MPI_Iscatter_f08 PMPI_Iscatter_f08 +#define MPI_Iscatter_f08 PMPI_Iscatter_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Iscatter_f08ts PMPI_Iscatter_f08ts #define MPI_Scatter_init PMPI_Scatter_init #define MPI_Scatter_init_f08 PMPI_Scatter_init_f08 #define MPI_Scatterv PMPI_Scatterv -#define MPI_Scatterv_f08 PMPI_Scatterv_f08 +#define MPI_Scatterv_f08 PMPI_Scatterv_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Scatterv_f08ts PMPI_Scatterv_f08ts #define MPI_Iscatterv PMPI_Iscatterv -#define MPI_Iscatterv_f08 PMPI_Iscatterv_f08 +#define MPI_Iscatterv_f08 PMPI_Iscatterv_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Iscatterv_f08ts PMPI_Iscatterv_f08ts #define MPI_Scatterv_init PMPI_Scatterv_init #define MPI_Scatterv_init_f08 PMPI_Scatterv_init_f08 #define MPI_Comm_compare PMPI_Comm_compare @@ -478,7 +534,8 @@ #define MPI_Finalized PMPI_Finalized #define MPI_Finalized_f08 PMPI_Finalized_f08 #define MPI_Free_mem PMPI_Free_mem -#define MPI_Free_mem_f08 PMPI_Free_mem_f08 +#define MPI_Free_mem_f08 PMPI_Free_mem_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Free_mem_f08ts PMPI_Free_mem_f08ts #define MPI_Get_processor_name PMPI_Get_processor_name #define MPI_Get_processor_name_f08 PMPI_Get_processor_name_f08 #define MPI_Get_version PMPI_Get_version @@ -540,35 +597,48 @@ #define MPI_Unpublish_name PMPI_Unpublish_name #define MPI_Unpublish_name_f08 PMPI_Unpublish_name_f08 #define MPI_Accumulate PMPI_Accumulate -#define MPI_Accumulate_f08 PMPI_Accumulate_f08 +#define MPI_Accumulate_f08 PMPI_Accumulate_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Accumulate_f08ts PMPI_Accumulate_f08ts #define MPI_Raccumulate PMPI_Raccumulate -#define MPI_Raccumulate_f08 PMPI_Raccumulate_f08 +#define MPI_Raccumulate_f08 PMPI_Raccumulate_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Raccumulate_f08ts PMPI_Raccumulate_f08ts #define MPI_Get PMPI_Get -#define MPI_Get_f08 PMPI_Get_f08 +#define MPI_Get_f08 PMPI_Get_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Get_f08ts PMPI_Get_f08ts #define MPI_Rget PMPI_Rget -#define MPI_Rget_f08 PMPI_Rget_f08 +#define MPI_Rget_f08 PMPI_Rget_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Rget_f08ts PMPI_Rget_f08ts #define MPI_Get_accumulate PMPI_Get_accumulate -#define MPI_Get_accumulate_f08 PMPI_Get_accumulate_f08 +#define MPI_Get_accumulate_f08 PMPI_Get_accumulate_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Get_accumulate_f08ts PMPI_Get_accumulate_f08ts #define MPI_Rget_accumulate PMPI_Rget_accumulate -#define MPI_Rget_accumulate_f08 PMPI_Rget_accumulate_f08 +#define MPI_Rget_accumulate_f08 PMPI_Rget_accumulate_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Rget_accumulate_f08ts PMPI_Rget_accumulate_f08ts #define MPI_Put PMPI_Put -#define MPI_Put_f08 PMPI_Put_f08 +#define MPI_Put_f08 PMPI_Put_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Put_f08ts PMPI_Put_f08ts #define MPI_Rput PMPI_Rput -#define MPI_Rput_f08 PMPI_Rput_f08 +#define MPI_Rput_f08 PMPI_Rput_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Rput_f08ts PMPI_Rput_f08ts #define MPI_Fetch_and_op PMPI_Fetch_and_op -#define MPI_Fetch_and_op_f08 PMPI_Fetch_and_op_f08 +#define MPI_Fetch_and_op_f08 PMPI_Fetch_and_op_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Fetch_and_op_f08ts PMPI_Fetch_and_op_f08ts #define MPI_Compare_and_swap PMPI_Compare_and_swap -#define MPI_Compare_and_swap_f08 PMPI_Compare_and_swap_f08 +#define MPI_Compare_and_swap_f08 PMPI_Compare_and_swap_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Compare_and_swap_f08ts PMPI_Compare_and_swap_f08ts #define MPI_Win_complete PMPI_Win_complete #define MPI_Win_complete_f08 PMPI_Win_complete_f08 #define MPI_Win_create PMPI_Win_create -#define MPI_Win_create_f08 PMPI_Win_create_f08 +#define MPI_Win_create_f08 PMPI_Win_create_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Win_create_f08ts PMPI_Win_create_f08ts #define MPI_Win_create_dynamic PMPI_Win_create_dynamic #define MPI_Win_create_dynamic_f08 PMPI_Win_create_dynamic_f08 #define MPI_Win_attach PMPI_Win_attach -#define MPI_Win_attach_f08 PMPI_Win_attach_f08 +#define MPI_Win_attach_f08 PMPI_Win_attach_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Win_attach_f08ts PMPI_Win_attach_f08ts #define MPI_Win_detach PMPI_Win_detach -#define MPI_Win_detach_f08 PMPI_Win_detach_f08 +#define MPI_Win_detach_f08 PMPI_Win_detach_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Win_detach_f08ts PMPI_Win_detach_f08ts #define MPI_Win_fence PMPI_Win_fence #define MPI_Win_fence_f08 PMPI_Win_fence_f08 #define MPI_Win_free PMPI_Win_free @@ -648,53 +718,75 @@ #define MPI_File_get_view PMPI_File_get_view #define MPI_File_get_view_f08 PMPI_File_get_view_f08 #define MPI_File_iread PMPI_File_iread -#define MPI_File_iread_f08 PMPI_File_iread_f08 +#define MPI_File_iread_f08 PMPI_File_iread_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_File_iread_f08ts PMPI_File_iread_f08ts #define MPI_File_iread_at PMPI_File_iread_at -#define MPI_File_iread_at_f08 PMPI_File_iread_at_f08 +#define MPI_File_iread_at_f08 PMPI_File_iread_at_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_File_iread_at_f08ts PMPI_File_iread_at_f08ts #define MPI_File_iread_all PMPI_File_iread_all -#define MPI_File_iread_all_f08 PMPI_File_iread_all_f08 +#define MPI_File_iread_all_f08 PMPI_File_iread_all_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_File_iread_all_f08ts PMPI_File_iread_all_f08ts #define MPI_File_iread_at_all PMPI_File_iread_at_all -#define MPI_File_iread_at_all_f08 PMPI_File_iread_at_all_f08 +#define MPI_File_iread_at_all_f08 PMPI_File_iread_at_all_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_File_iread_at_all_f08ts PMPI_File_iread_at_all_f08ts #define MPI_File_iread_shared PMPI_File_iread_shared -#define MPI_File_iread_shared_f08 PMPI_File_iread_shared_f08 +#define MPI_File_iread_shared_f08 PMPI_File_iread_shared_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_File_iread_shared_f08ts PMPI_File_iread_shared_f08ts #define MPI_File_iwrite PMPI_File_iwrite -#define MPI_File_iwrite_f08 PMPI_File_iwrite_f08 +#define MPI_File_iwrite_f08 PMPI_File_iwrite_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_File_iwrite_f08ts PMPI_File_iwrite_f08ts #define MPI_File_iwrite_at PMPI_File_iwrite_at -#define MPI_File_iwrite_at_f08 PMPI_File_iwrite_at_f08 +#define MPI_File_iwrite_at_f08 PMPI_File_iwrite_at_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_File_iwrite_at_f08ts PMPI_File_iwrite_at_f08ts #define MPI_File_iwrite_all PMPI_File_iwrite_all -#define MPI_File_iwrite_all_f08 PMPI_File_iwrite_all_f08 +#define MPI_File_iwrite_all_f08 PMPI_File_iwrite_all_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_File_iwrite_all_f08ts PMPI_File_iwrite_all_f08ts #define MPI_File_iwrite_at_all PMPI_File_iwrite_at_all -#define MPI_File_iwrite_at_all_f08 PMPI_File_iwrite_at_all_f08 +#define MPI_File_iwrite_at_all_f08 PMPI_File_iwrite_at_all_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_File_iwrite_at_all_f08ts PMPI_File_iwrite_at_all_f08ts #define MPI_File_iwrite_shared PMPI_File_iwrite_shared -#define MPI_File_iwrite_shared_f08 PMPI_File_iwrite_shared_f08 +#define MPI_File_iwrite_shared_f08 PMPI_File_iwrite_shared_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_File_iwrite_shared_f08ts PMPI_File_iwrite_shared_f08ts #define MPI_File_open PMPI_File_open #define MPI_File_open_f08 PMPI_File_open_f08 #define MPI_File_preallocate PMPI_File_preallocate #define MPI_File_preallocate_f08 PMPI_File_preallocate_f08 #define MPI_File_read PMPI_File_read -#define MPI_File_read_f08 PMPI_File_read_f08 +#define MPI_File_read_f08 PMPI_File_read_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_File_read_f08ts PMPI_File_read_f08ts #define MPI_File_read_all PMPI_File_read_all -#define MPI_File_read_all_f08 PMPI_File_read_all_f08 +#define MPI_File_read_all_f08 PMPI_File_read_all_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_File_read_all_f08ts PMPI_File_read_all_f08ts #define MPI_File_read_all_begin PMPI_File_read_all_begin -#define MPI_File_read_all_begin_f08 PMPI_File_read_all_begin_f08 +#define MPI_File_read_all_begin_f08 PMPI_File_read_all_begin_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_File_read_all_begin_f08ts PMPI_File_read_all_begin_f08ts #define MPI_File_read_all_end PMPI_File_read_all_end -#define MPI_File_read_all_end_f08 PMPI_File_read_all_end_f08 +#define MPI_File_read_all_end_f08 PMPI_File_read_all_end_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_File_read_all_end_f08ts PMPI_File_read_all_end_f08ts #define MPI_File_read_at PMPI_File_read_at -#define MPI_File_read_at_f08 PMPI_File_read_at_f08 +#define MPI_File_read_at_f08 PMPI_File_read_at_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_File_read_at_f08ts PMPI_File_read_at_f08ts #define MPI_File_read_at_all PMPI_File_read_at_all -#define MPI_File_read_at_all_f08 PMPI_File_read_at_all_f08 +#define MPI_File_read_at_all_f08 PMPI_File_read_at_all_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_File_read_at_all_f08ts PMPI_File_read_at_all_f08ts #define MPI_File_read_at_all_begin PMPI_File_read_at_all_begin -#define MPI_File_read_at_all_begin_f08 PMPI_File_read_at_all_begin_f08 +#define MPI_File_read_at_all_begin_f08 PMPI_File_read_at_all_begin_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_File_read_at_all_begin_f08ts PMPI_File_read_at_all_begin_f08ts #define MPI_File_read_at_all_end PMPI_File_read_at_all_end -#define MPI_File_read_at_all_end_f08 PMPI_File_read_at_all_end_f08 +#define MPI_File_read_at_all_end_f08 PMPI_File_read_at_all_end_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_File_read_at_all_end_f08ts PMPI_File_read_at_all_end_f08ts #define MPI_File_read_ordered PMPI_File_read_ordered -#define MPI_File_read_ordered_f08 PMPI_File_read_ordered_f08 +#define MPI_File_read_ordered_f08 PMPI_File_read_ordered_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_File_read_ordered_f08ts PMPI_File_read_ordered_f08ts #define MPI_File_read_ordered_begin PMPI_File_read_ordered_begin -#define MPI_File_read_ordered_begin_f08 PMPI_File_read_ordered_begin_f08 +#define MPI_File_read_ordered_begin_f08 PMPI_File_read_ordered_begin_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_File_read_ordered_begin_f08ts PMPI_File_read_ordered_begin_f08ts #define MPI_File_read_ordered_end PMPI_File_read_ordered_end -#define MPI_File_read_ordered_end_f08 PMPI_File_read_ordered_end_f08 +#define MPI_File_read_ordered_end_f08 PMPI_File_read_ordered_end_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_File_read_ordered_end_f08ts PMPI_File_read_ordered_end_f08ts #define MPI_File_read_shared PMPI_File_read_shared -#define MPI_File_read_shared_f08 PMPI_File_read_shared_f08 +#define MPI_File_read_shared_f08 PMPI_File_read_shared_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_File_read_shared_f08ts PMPI_File_read_shared_f08ts #define MPI_File_seek PMPI_File_seek #define MPI_File_seek_f08 PMPI_File_seek_f08 #define MPI_File_seek_shared PMPI_File_seek_shared @@ -710,29 +802,41 @@ #define MPI_File_sync PMPI_File_sync #define MPI_File_sync_f08 PMPI_File_sync_f08 #define MPI_File_write PMPI_File_write -#define MPI_File_write_f08 PMPI_File_write_f08 +#define MPI_File_write_f08 PMPI_File_write_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_File_write_f08ts PMPI_File_write_f08ts #define MPI_File_write_all PMPI_File_write_all -#define MPI_File_write_all_f08 PMPI_File_write_all_f08 +#define MPI_File_write_all_f08 PMPI_File_write_all_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_File_write_all_f08ts PMPI_File_write_all_f08ts #define MPI_File_write_all_begin PMPI_File_write_all_begin -#define MPI_File_write_all_begin_f08 PMPI_File_write_all_begin_f08 +#define MPI_File_write_all_begin_f08 PMPI_File_write_all_begin_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_File_write_all_begin_f08ts PMPI_File_write_all_begin_f08ts #define MPI_File_write_all_end PMPI_File_write_all_end -#define MPI_File_write_all_end_f08 PMPI_File_write_all_end_f08 +#define MPI_File_write_all_end_f08 PMPI_File_write_all_end_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_File_write_all_end_f08ts PMPI_File_write_all_end_f08ts #define MPI_File_write_at PMPI_File_write_at -#define MPI_File_write_at_f08 PMPI_File_write_at_f08 +#define MPI_File_write_at_f08 PMPI_File_write_at_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_File_write_at_f08ts PMPI_File_write_at_f08ts #define MPI_File_write_at_all PMPI_File_write_at_all -#define MPI_File_write_at_all_f08 PMPI_File_write_at_all_f08 +#define MPI_File_write_at_all_f08 PMPI_File_write_at_all_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_File_write_at_all_f08ts PMPI_File_write_at_all_f08ts #define MPI_File_write_at_all_begin PMPI_File_write_at_all_begin -#define MPI_File_write_at_all_begin_f08 PMPI_File_write_at_all_begin_f08 +#define MPI_File_write_at_all_begin_f08 PMPI_File_write_at_all_begin_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_File_write_at_all_begin_f08ts PMPI_File_write_at_all_begin_f08ts #define MPI_File_write_at_all_end PMPI_File_write_at_all_end -#define MPI_File_write_at_all_end_f08 PMPI_File_write_at_all_end_f08 +#define MPI_File_write_at_all_end_f08 PMPI_File_write_at_all_end_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_File_write_at_all_end_f08ts PMPI_File_write_at_all_end_f08ts #define MPI_File_write_ordered PMPI_File_write_ordered -#define MPI_File_write_ordered_f08 PMPI_File_write_ordered_f08 +#define MPI_File_write_ordered_f08 PMPI_File_write_ordered_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_File_write_ordered_f08ts PMPI_File_write_ordered_f08ts #define MPI_File_write_ordered_begin PMPI_File_write_ordered_begin -#define MPI_File_write_ordered_begin_f08 PMPI_File_write_ordered_begin_f08 +#define MPI_File_write_ordered_begin_f08 PMPI_File_write_ordered_begin_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_File_write_ordered_begin_f08ts PMPI_File_write_ordered_begin_f08ts #define MPI_File_write_ordered_end PMPI_File_write_ordered_end -#define MPI_File_write_ordered_end_f08 PMPI_File_write_ordered_end_f08 +#define MPI_File_write_ordered_end_f08 PMPI_File_write_ordered_end_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_File_write_ordered_end_f08ts PMPI_File_write_ordered_end_f08ts #define MPI_File_write_shared PMPI_File_write_shared -#define MPI_File_write_shared_f08 PMPI_File_write_shared_f08 +#define MPI_File_write_shared_f08 PMPI_File_write_shared_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_File_write_shared_f08ts PMPI_File_write_shared_f08ts #define MPI_Register_datarep PMPI_Register_datarep #define MPI_Register_datarep_f08 PMPI_Register_datarep_f08 #define MPI_Type_create_f90_complex PMPI_Type_create_f90_complex @@ -748,7 +852,8 @@ #define MPI_Comm_split_type PMPI_Comm_split_type #define MPI_Comm_split_type_f08 PMPI_Comm_split_type_f08 #define MPI_F_sync_reg PMPI_F_sync_reg -#define MPI_F_sync_reg_f08 PMPI_F_sync_reg_f08 +#define MPI_F_sync_reg_f08 PMPI_F_sync_reg_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_F_sync_reg_f08ts PMPI_F_sync_reg_f08ts #define MPI_Get_library_version PMPI_Get_library_version #define MPI_Get_library_version_f08 PMPI_Get_library_version_f08 #define MPI_Mprobe PMPI_Mprobe @@ -756,38 +861,169 @@ #define MPI_Improbe PMPI_Improbe #define MPI_Improbe_f08 PMPI_Improbe_f08 #define MPI_Imrecv PMPI_Imrecv -#define MPI_Imrecv_f08 PMPI_Imrecv_f08 +#define MPI_Imrecv_f08 PMPI_Imrecv_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Imrecv_f08ts PMPI_Imrecv_f08ts #define MPI_Mrecv PMPI_Mrecv -#define MPI_Mrecv_f08 PMPI_Mrecv_f08 +#define MPI_Mrecv_f08 PMPI_Mrecv_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Mrecv_f08ts PMPI_Mrecv_f08ts #define MPI_Neighbor_allgather PMPI_Neighbor_allgather -#define MPI_Neighbor_allgather_f08 PMPI_Neighbor_allgather_f08 +#define MPI_Neighbor_allgather_f08 PMPI_Neighbor_allgather_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Neighbor_allgather_f08ts PMPI_Neighbor_allgather_f08ts #define MPI_Ineighbor_allgather PMPI_Ineighbor_allgather -#define MPI_Ineighbor_allgather_f08 PMPI_Ineighbor_allgather_f08 +#define MPI_Ineighbor_allgather_f08 PMPI_Ineighbor_allgather_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Ineighbor_allgather_f08ts PMPI_Ineighbor_allgather_f08ts #define MPI_Neighbor_allgather_init PMPI_Neighbor_allgather_init #define MPI_Neighbor_allgather_init_f08 PMPI_Neighbor_allgather_init_f08 #define MPI_Neighbor_allgatherv PMPI_Neighbor_allgatherv -#define MPI_Neighbor_allgatherv_f08 PMPI_Neighbor_allgatherv_f08 +#define MPI_Neighbor_allgatherv_f08 PMPI_Neighbor_allgatherv_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Neighbor_allgatherv_f08ts PMPI_Neighbor_allgatherv_f08ts #define MPI_Ineighbor_allgatherv PMPI_Ineighbor_allgatherv -#define MPI_Ineighbor_allgatherv_f08 PMPI_Ineighbor_allgatherv_f08 +#define MPI_Ineighbor_allgatherv_f08 PMPI_Ineighbor_allgatherv_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Ineighbor_allgatherv_f08ts PMPI_Ineighbor_allgatherv_f08ts #define MPI_Neighbor_allgatherv_init PMPI_Neighbor_allgatherv_init #define MPI_Neighbor_allgatherv_init_f08 PMPI_Neighbor_allgatherv_init_f08 #define MPI_Neighbor_alltoall PMPI_Neighbor_alltoall -#define MPI_Neighbor_alltoall_f08 PMPI_Neighbor_alltoall_f08 +#define MPI_Neighbor_alltoall_f08 PMPI_Neighbor_alltoall_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Neighbor_alltoall_f08ts PMPI_Neighbor_alltoall_f08ts #define MPI_Ineighbor_alltoall PMPI_Ineighbor_alltoall -#define MPI_Ineighbor_alltoall_f08 PMPI_Ineighbor_alltoall_f08 +#define MPI_Ineighbor_alltoall_f08 PMPI_Ineighbor_alltoall_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Ineighbor_alltoall_f08ts PMPI_Ineighbor_alltoall_f08ts #define MPI_Neighbor_alltoall_init PMPI_Neighbor_alltoall_init #define MPI_Neighbor_alltoall_init_f08 PMPI_Neighbor_alltoall_init_f08 #define MPI_Neighbor_alltoallv PMPI_Neighbor_alltoallv -#define MPI_Neighbor_alltoallv_f08 PMPI_Neighbor_alltoallv_f08 +#define MPI_Neighbor_alltoallv_f08 PMPI_Neighbor_alltoallv_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Neighbor_alltoallv_f08ts PMPI_Neighbor_alltoallv_f08ts #define MPI_Ineighbor_alltoallv PMPI_Ineighbor_alltoallv -#define MPI_Ineighbor_alltoallv_f08 PMPI_Ineighbor_alltoallv_init_f08 +#define MPI_Ineighbor_alltoallv_f08 PMPI_Ineighbor_alltoallv_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Ineighbor_alltoallv_f08ts PMPI_Ineighbor_alltoallv_f08ts #define MPI_Neighbor_alltoallv_init PMPI_Neighbor_alltoallv_init #define MPI_Neighbor_alltoallv_init_f08 PMPI_Neighbor_alltoallv_init_f08 #define MPI_Neighbor_alltoallw PMPI_Neighbor_alltoallw -#define MPI_Neighbor_alltoallw_f08 PMPI_Neighbor_alltoallw_f08 +#define MPI_Neighbor_alltoallw_f08 PMPI_Neighbor_alltoallw_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Neighbor_alltoallw_f08ts PMPI_Neighbor_alltoallw_f08ts #define MPI_Ineighbor_alltoallw PMPI_Ineighbor_alltoallw -#define MPI_Ineighbor_alltoallw_f08 PMPI_Ineighbor_alltoallw_f08 +#define MPI_Ineighbor_alltoallw_f08 PMPI_Ineighbor_alltoallw_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Ineighbor_alltoallw_f08ts PMPI_Ineighbor_alltoallw_f08ts #define MPI_Neighbor_alltoallw_init PMPI_Neighbor_alltoallw_init #define MPI_Neighbor_alltoallw_init_f08 PMPI_Neighbor_alltoallw_init_f08 +#elif @OMPI_FORTRAN_HAVE_TS@ + +#define MPI_Bsend_f08 MPI_Bsend_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Bsend_init_f08 MPI_Bsend_init_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Buffer_attach_f08 MPI_Buffer_attach_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Ibsend_f08 MPI_Ibsend_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Irecv_f08 MPI_Irecv_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Irsend_f08 MPI_Irsend_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Isend_f08 MPI_Isend_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Issend_f08 MPI_Issend_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Recv_f08 MPI_Recv_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Recv_init_f08 MPI_Recv_init_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Rsend_f08 MPI_Rsend_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Rsend_init_f08 MPI_Rsend_init_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Send_f08 MPI_Send_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Sendrecv_f08 MPI_Sendrecv_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Sendrecv_replace_f08 MPI_Sendrecv_replace_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Send_init_f08 MPI_Send_init_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Ssend_f08 MPI_Ssend_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Ssend_init_f08 MPI_Ssend_init_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Get_address_f08 MPI_Get_address_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Pack_f08 MPI_Pack_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Pack_external_f08 MPI_Pack_external_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Unpack_f08 MPI_Unpack_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Unpack_external_f08 MPI_Unpack_external_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Allgather_f08 MPI_Allgather_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Iallgather_f08 MPI_Iallgather_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Allgatherv_f08 MPI_Allgatherv_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Iallgatherv_f08 MPI_Iallgatherv_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Allreduce_f08 MPI_Allreduce_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Iallreduce_f08 MPI_Iallreduce_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Alltoall_f08 MPI_Alltoall_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Ialltoall_f08 MPI_IaLltoall_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Alltoallv_f08 MPI_Alltoallv_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Ialltoallv_f08 MPI_Ialltoallv_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Alltoallw_f08 MPI_Alltoallw_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Ialltoallw_f08 MPI_Ialltoallw_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Bcast_f08 MPI_Bcast_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Ibcast_f08 MPI_Ibcast_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Exscan_f08 MPI_Exscan_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Iexscan_f08 MPI_Iexscan_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Gather_f08 MPI_Gather_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Igather_f08 MPI_Igather_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Gatherv_f08 MPI_Gatherv_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Igatherv_f08 MPI_Igatherv_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Reduce_f08 MPI_Reduce_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Ireduce_f08 MPI_Ireduce_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Reduce_local_f08 MPI_Reduce_local_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Reduce_scatter_f08 MPI_Reduce_scatter_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Ireduce_scatter_f08 MPI_Ireduce_scatter_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Reduce_scatter_block_f08 MPI_Reduce_scatter_block_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Ireduce_scatter_block_f08 MPI_Ireduce_scatter_block_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Scan_f08 MPI_Scan_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Iscan_f08 MPI_Iscan_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Scatter_f08 MPI_Scatter_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Iscatter_f08 MPI_Iscatter_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Scatterv_f08 MPI_Scatterv_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Iscatterv_f08 MPI_Iscatterv_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Free_mem_f08 MPI_Free_mem_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Accumulate_f08 MPI_Accumulate_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Raccumulate_f08 MPI_Raccumulate_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Get_f08 MPI_Get_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Rget_f08 MPI_Rget_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Get_accumulate_f08 MPI_Get_accumulate_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Rget_accumulate_f08 MPI_Rget_accumulate_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Put_f08 MPI_Put_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Rput_f08 MPI_Rput_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Fetch_and_op_f08 MPI_Fetch_and_op_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Compare_and_swap_f08 MPI_Compare_and_swap_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Win_create_f08 MPI_Win_create_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Win_attach_f08 MPI_Win_attach_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Win_detach_f08 MPI_Win_detach_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_File_iread_f08 MPI_File_iread_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_File_iread_at_f08 MPI_File_iread_at_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_File_iread_all_f08 MPI_File_iread_all_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_File_iread_at_all_f08 MPI_File_iread_at_all_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_File_iread_shared_f08 MPI_File_iread_shared_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_File_iwrite_f08 MPI_File_iwrite_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_File_iwrite_at_f08 MPI_File_iwrite_at_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_File_iwrite_all_f08 MPI_File_iwrite_all_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_File_iwrite_at_all_f08 MPI_File_iwrite_at_all_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_File_iwrite_shared_f08 MPI_File_iwrite_shared_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_File_read_f08 MPI_File_read_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_File_read_all_f08 MPI_File_read_all_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_File_read_all_begin_f08 MPI_File_read_all_begin_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_File_read_all_end_f08 MPI_File_read_all_end_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_File_read_at_f08 MPI_File_read_at_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_File_read_at_all_f08 MPI_File_read_at_all_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_File_read_at_all_begin_f08 MPI_File_read_at_all_begin_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_File_read_at_all_end_f08 MPI_File_read_at_all_end_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_File_read_ordered_f08 MPI_File_read_ordered_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_File_read_ordered_begin_f08 MPI_File_read_ordered_begin_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_File_read_ordered_end_f08 MPI_File_read_ordered_end_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_File_read_shared_f08 MPI_File_read_shared_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_File_write_f08 MPI_File_write_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_File_write_all_f08 MPI_File_write_all_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_File_write_all_begin_f08 MPI_File_write_all_begin_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_File_write_all_end_f08 MPI_File_write_all_end_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_File_write_at_f08 MPI_File_write_at_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_File_write_at_all_f08 MPI_File_write_at_all_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_File_write_at_all_begin_f08 MPI_File_write_at_all_begin_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_File_write_at_all_end_f08 MPI_File_write_at_all_end_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_File_write_ordered_f08 MPI_File_write_ordered_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_File_write_ordered_begin_f08 MPI_File_write_ordered_begin_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_File_write_ordered_end_f08 MPI_File_write_ordered_end_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_File_write_shared_f08 MPI_File_write_shared_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_F_sync_reg_f08 MPI_F_sync_reg_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Imrecv_f08 MPI_Imrecv_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Mrecv_f08 MPI_Mrecv_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Neighbor_allgather_f08 MPI_Neighbor_allgather_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Ineighbor_allgather_f08 MPI_Ineighbor_allgather_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Neighbor_allgatherv_f08 MPI_Neighbor_allgatherv_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Ineighbor_allgatherv_f08 MPI_Ineighbor_allgatherv_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Neighbor_alltoall_f08 MPI_Neighbor_alltoall_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Ineighbor_alltoall_f08 MPI_Ineighbor_alltoall_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Neighbor_alltoallv_f08 MPI_Neighbor_alltoallv_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Ineighbor_alltoallv_f08 MPI_Ineighbor_alltoallv_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Neighbor_alltoallw_f08 MPI_Neighbor_alltoallw_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Ineighbor_alltoallw_f08 MPI_Ineighbor_alltoallw_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ #endif diff --git a/ompi/mpi/fortran/use-mpi-f08/mod/mpi-f08-subarrays-config.h.in b/ompi/mpi/fortran/use-mpi-f08/mod/mpi-f08-subarrays-config.h.in new file mode 100644 index 00000000000..70da39adce6 --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/mod/mpi-f08-subarrays-config.h.in @@ -0,0 +1,19 @@ +! -*- fortran -*- +! +! Copyright (c) 2019 Research Organization for Information Science +! and Technology (RIST). All rights reserved. +! $COPYRIGHT$ +! +! Additional copyrights may follow +! +! $HEADER$ +! + +! +! MPI F08 conformance +! + logical MPI_SUBARRAYS_SUPPORTED + logical MPI_ASYNC_PROTECTS_NONBLOCKING + parameter (MPI_SUBARRAYS_SUPPORTED= @OMPI_MPI_SUBARRAYS_SUPPORTED@) + parameter (MPI_ASYNC_PROTECTS_NONBLOCKING = @OMPI_MPI_ASYNC_PROTECTS_NONBLOCKING@) + diff --git a/ompi/mpi/fortran/use-mpi-f08/mod/mpi-f08-types.F90 b/ompi/mpi/fortran/use-mpi-f08/mod/mpi-f08-types.F90 index 5d0d7c09427..1c2675448e6 100644 --- a/ompi/mpi/fortran/use-mpi-f08/mod/mpi-f08-types.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/mod/mpi-f08-types.F90 @@ -25,6 +25,7 @@ module mpi_f08_types use mpi_types include "mpif-config.h" + include "mpi-f08-subarrays-config.h" include "mpif-constants.h" include "mpif-io-constants.h" diff --git a/ompi/mpi/fortran/use-mpi-f08/mrecv_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/mrecv_f08.F90 index 3eb9651cb31..dace4d5c0a7 100644 --- a/ompi/mpi/fortran/use-mpi-f08/mrecv_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/mrecv_f08.F90 @@ -15,7 +15,7 @@ subroutine MPI_Mrecv_f08(buf,count,datatype,message,status,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Message, MPI_Status use :: ompi_mpifh_bindings, only : ompi_mrecv_f implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE :: buf + OMPI_F08_IGNORE_TKR_TYPE :: buf INTEGER, INTENT(IN) :: count TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Message), INTENT(INOUT) :: message diff --git a/ompi/mpi/fortran/use-mpi-f08/neighbor_allgather_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/neighbor_allgather_f08.F90 index 084ab11076b..c13acb92660 100644 --- a/ompi/mpi/fortran/use-mpi-f08/neighbor_allgather_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/neighbor_allgather_f08.F90 @@ -16,8 +16,8 @@ subroutine MPI_Neighbor_allgather_f08(sendbuf,sendcount,sendtype,recvbuf,recvcou use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm use :: ompi_mpifh_bindings, only : ompi_neighbor_allgather_f implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE :: recvbuf INTEGER, INTENT(IN) :: sendcount, recvcount TYPE(MPI_Datatype), INTENT(IN) :: sendtype TYPE(MPI_Datatype), INTENT(IN) :: recvtype diff --git a/ompi/mpi/fortran/use-mpi-f08/neighbor_allgatherv_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/neighbor_allgatherv_f08.F90 index 7335c3f8b39..7906cb9ddc1 100644 --- a/ompi/mpi/fortran/use-mpi-f08/neighbor_allgatherv_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/neighbor_allgatherv_f08.F90 @@ -17,8 +17,8 @@ subroutine MPI_Neighbor_allgatherv_f08(sendbuf,sendcount,sendtype,recvbuf,recvco use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm use :: ompi_mpifh_bindings, only : ompi_neighbor_allgatherv_f implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE :: recvbuf INTEGER, INTENT(IN) :: sendcount INTEGER, INTENT(IN) :: recvcounts(*), displs(*) TYPE(MPI_Datatype), INTENT(IN) :: sendtype diff --git a/ompi/mpi/fortran/use-mpi-f08/neighbor_alltoall_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/neighbor_alltoall_f08.F90 index 8bfb42dd83b..5b64de2548b 100644 --- a/ompi/mpi/fortran/use-mpi-f08/neighbor_alltoall_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/neighbor_alltoall_f08.F90 @@ -17,8 +17,8 @@ subroutine MPI_Neighbor_alltoall_f08(sendbuf,sendcount,sendtype,recvbuf,& use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm use :: ompi_mpifh_bindings, only : ompi_neighbor_alltoall_f implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE :: recvbuf INTEGER, INTENT(IN) :: sendcount, recvcount TYPE(MPI_Datatype), INTENT(IN) :: sendtype TYPE(MPI_Datatype), INTENT(IN) :: recvtype diff --git a/ompi/mpi/fortran/use-mpi-f08/neighbor_alltoallv_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/neighbor_alltoallv_f08.F90 index 377ac5b6f1f..da0af7777f3 100644 --- a/ompi/mpi/fortran/use-mpi-f08/neighbor_alltoallv_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/neighbor_alltoallv_f08.F90 @@ -17,8 +17,8 @@ subroutine MPI_Neighbor_alltoallv_f08(sendbuf,sendcounts,sdispls,sendtype,recvbu use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm use :: ompi_mpifh_bindings, only : ompi_neighbor_alltoallv_f implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE :: recvbuf INTEGER, INTENT(IN) :: sendcounts(*), sdispls(*), recvcounts(*), rdispls(*) TYPE(MPI_Datatype), INTENT(IN) :: sendtype TYPE(MPI_Datatype), INTENT(IN) :: recvtype diff --git a/ompi/mpi/fortran/use-mpi-f08/neighbor_alltoallw_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/neighbor_alltoallw_f08.F90 index e0fd6a68b8e..b72bb25c62d 100644 --- a/ompi/mpi/fortran/use-mpi-f08/neighbor_alltoallw_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/neighbor_alltoallw_f08.F90 @@ -16,8 +16,8 @@ subroutine MPI_Neighbor_alltoallw_f08(sendbuf,sendcounts,sdispls,sendtypes,& use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_ADDRESS_KIND use :: ompi_mpifh_bindings, only : ompi_neighbor_alltoallw_f implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE :: recvbuf INTEGER, INTENT(IN) :: sendcounts(*), recvcounts(*) INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: sdispls(*), rdispls(*) TYPE(MPI_Datatype), INTENT(IN) :: sendtypes(*) diff --git a/ompi/mpi/fortran/use-mpi-f08/pack_external_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/pack_external_f08.F90 index 9f4ae490051..6471cc12198 100644 --- a/ompi/mpi/fortran/use-mpi-f08/pack_external_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/pack_external_f08.F90 @@ -18,8 +18,8 @@ subroutine MPI_Pack_external_f08(datarep,inbuf,incount,datatype,outbuf,outsize, use :: ompi_mpifh_bindings, only : ompi_pack_external_f implicit none CHARACTER(LEN=*), INTENT(IN) :: datarep - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: inbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE :: outbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: inbuf + OMPI_F08_IGNORE_TKR_TYPE :: outbuf INTEGER, INTENT(IN) :: incount TYPE(MPI_Datatype), INTENT(IN) :: datatype INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: outsize diff --git a/ompi/mpi/fortran/use-mpi-f08/pack_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/pack_f08.F90 index 5b0da89c213..607aeb6189e 100644 --- a/ompi/mpi/fortran/use-mpi-f08/pack_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/pack_f08.F90 @@ -16,8 +16,8 @@ subroutine MPI_Pack_f08(inbuf,incount,datatype,outbuf,outsize,position,comm,ierr use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm use :: ompi_mpifh_bindings, only : ompi_pack_f implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: inbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE :: outbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: inbuf + OMPI_F08_IGNORE_TKR_TYPE :: outbuf INTEGER, INTENT(IN) :: incount, outsize TYPE(MPI_Datatype), INTENT(IN) :: datatype INTEGER, INTENT(INOUT) :: position diff --git a/ompi/mpi/fortran/use-mpi-f08/profile/Makefile.am b/ompi/mpi/fortran/use-mpi-f08/profile/Makefile.am index c855a01d4db..4436a627dc9 100644 --- a/ompi/mpi/fortran/use-mpi-f08/profile/Makefile.am +++ b/ompi/mpi/fortran/use-mpi-f08/profile/Makefile.am @@ -39,14 +39,14 @@ AM_CPPFLAGS = # MPI bindings. if OMPI_BUILD_FORTRAN_USEMPIF08_BINDINGS -AM_FCFLAGS = -I$(top_srcdir)/ompi/mpi/fortran/use-mpi-f08/mod \ - -I$(top_builddir)/ompi/include \ +AM_FCFLAGS = -I$(top_builddir)/ompi/include \ -I$(top_srcdir)/ompi/include \ $(OMPI_FC_MODULE_FLAG)$(top_builddir)/ompi/mpi/fortran/use-mpi \ $(OMPI_FC_MODULE_FLAG)$(top_builddir)/ompi/$(OMPI_FORTRAN_USEMPI_DIR) \ $(OMPI_FC_MODULE_FLAG)../mod \ $(OMPI_FC_MODULE_FLAG)../bindings \ - -I$(top_srcdir) -I$(top_builddir) $(FCFLAGS_f90) \ + $(OMPI_FC_MODULE_FLAG)../ts \ + -I$(top_srcdir) $(FCFLAGS_f90) \ -DOMPI_BUILD_MPI_PROFILING=1 CLEANFILES += *.i90 diff --git a/ompi/mpi/fortran/use-mpi-f08/put_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/put_f08.F90 index b58e4d88623..ebe01517632 100644 --- a/ompi/mpi/fortran/use-mpi-f08/put_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/put_f08.F90 @@ -16,7 +16,7 @@ subroutine MPI_Put_f08(origin_addr,origin_count,origin_datatype,target_rank,& use :: mpi_f08_types, only : MPI_Datatype, MPI_Win, MPI_ADDRESS_KIND use :: ompi_mpifh_bindings, only : ompi_put_f implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: origin_addr + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: origin_addr INTEGER, INTENT(IN) :: origin_count, target_rank, target_count TYPE(MPI_Datatype), INTENT(IN) :: origin_datatype INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: target_disp diff --git a/ompi/mpi/fortran/use-mpi-f08/raccumulate_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/raccumulate_f08.F90 index 1935be341d4..f9b4f554954 100644 --- a/ompi/mpi/fortran/use-mpi-f08/raccumulate_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/raccumulate_f08.F90 @@ -17,7 +17,7 @@ subroutine MPI_Raccumulate_f08(origin_addr,origin_count,origin_datatype,& use :: mpi_f08_types, only : MPI_Datatype, MPI_Op, MPI_Win, MPI_Request, MPI_ADDRESS_KIND use :: ompi_mpifh_bindings, only : ompi_raccumulate_f implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: origin_addr + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: origin_addr INTEGER, INTENT(IN) :: origin_count, target_rank, target_count TYPE(MPI_Datatype), INTENT(IN) :: origin_datatype INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: target_disp diff --git a/ompi/mpi/fortran/use-mpi-f08/recv_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/recv_f08.F90 index 034fe0fdc19..1d4415e6171 100644 --- a/ompi/mpi/fortran/use-mpi-f08/recv_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/recv_f08.F90 @@ -15,7 +15,7 @@ subroutine MPI_Recv_f08(buf,count,datatype,source,tag,comm,status,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Status use :: ompi_mpifh_bindings, only : ompi_recv_f implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE :: buf + OMPI_F08_IGNORE_TKR_TYPE :: buf INTEGER, INTENT(IN) :: count, source, tag TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Comm), INTENT(IN) :: comm diff --git a/ompi/mpi/fortran/use-mpi-f08/recv_init_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/recv_init_f08.F90 index 5207511c281..6d559ecebc0 100644 --- a/ompi/mpi/fortran/use-mpi-f08/recv_init_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/recv_init_f08.F90 @@ -16,7 +16,7 @@ subroutine MPI_Recv_init_f08(buf,count,datatype,source,tag,comm,request,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request use :: ompi_mpifh_bindings, only : ompi_recv_init_f implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: buf + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: buf INTEGER, INTENT(IN) :: count, source, tag TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Comm), INTENT(IN) :: comm diff --git a/ompi/mpi/fortran/use-mpi-f08/reduce_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/reduce_f08.F90 index 1f9baea4005..0998b899d8c 100644 --- a/ompi/mpi/fortran/use-mpi-f08/reduce_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/reduce_f08.F90 @@ -15,8 +15,8 @@ subroutine MPI_Reduce_f08(sendbuf,recvbuf,count,datatype,op,root,comm,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Op, MPI_Comm use :: ompi_mpifh_bindings, only : ompi_reduce_f implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE :: recvbuf INTEGER, INTENT(IN) :: count, root TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Op), INTENT(IN) :: op diff --git a/ompi/mpi/fortran/use-mpi-f08/reduce_local_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/reduce_local_f08.F90 index ad9c10106b0..65ac16320d3 100644 --- a/ompi/mpi/fortran/use-mpi-f08/reduce_local_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/reduce_local_f08.F90 @@ -15,8 +15,8 @@ subroutine MPI_Reduce_local_f08(inbuf,inoutbuf,count,datatype,op,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Op use :: ompi_mpifh_bindings, only : ompi_reduce_local_f implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: inbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE :: inoutbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: inbuf + OMPI_F08_IGNORE_TKR_TYPE :: inoutbuf INTEGER, INTENT(IN) :: count TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Op), INTENT(IN) :: op diff --git a/ompi/mpi/fortran/use-mpi-f08/reduce_scatter_block_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/reduce_scatter_block_f08.F90 index 6bd4b38bbce..89ef152d5c2 100644 --- a/ompi/mpi/fortran/use-mpi-f08/reduce_scatter_block_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/reduce_scatter_block_f08.F90 @@ -15,8 +15,8 @@ subroutine MPI_Reduce_scatter_block_f08(sendbuf,recvbuf,recvcount,datatype,op,co use :: mpi_f08_types, only : MPI_Datatype, MPI_Op, MPI_Comm use :: ompi_mpifh_bindings, only : ompi_reduce_scatter_block_f implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE :: recvbuf INTEGER, INTENT(IN) :: recvcount TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Op), INTENT(IN) :: op diff --git a/ompi/mpi/fortran/use-mpi-f08/reduce_scatter_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/reduce_scatter_f08.F90 index a8587ea033b..da06ad7dd8e 100644 --- a/ompi/mpi/fortran/use-mpi-f08/reduce_scatter_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/reduce_scatter_f08.F90 @@ -15,8 +15,8 @@ subroutine MPI_Reduce_scatter_f08(sendbuf,recvbuf,recvcounts,datatype,op,comm,ie use :: mpi_f08_types, only : MPI_Datatype, MPI_Op, MPI_Comm use :: ompi_mpifh_bindings, only : ompi_reduce_scatter_f implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE :: recvbuf INTEGER, INTENT(IN) :: recvcounts(*) TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Op), INTENT(IN) :: op diff --git a/ompi/mpi/fortran/use-mpi-f08/rget_accumulate_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/rget_accumulate_f08.F90 index f442abf2358..f134ed7c0fb 100644 --- a/ompi/mpi/fortran/use-mpi-f08/rget_accumulate_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/rget_accumulate_f08.F90 @@ -18,10 +18,10 @@ subroutine MPI_Rget_accumulate_f08(origin_addr,origin_count,origin_datatype,& use :: mpi_f08_types, only : MPI_Datatype, MPI_Op, MPI_Win, MPI_Request, MPI_ADDRESS_KIND use :: ompi_mpifh_bindings, only : ompi_rget_accumulate_f implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: origin_addr + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: origin_addr INTEGER, INTENT(IN) :: origin_count, result_count, target_rank, target_count TYPE(MPI_Datatype), INTENT(IN) :: origin_datatype - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: result_addr + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: result_addr TYPE(MPI_Datatype), INTENT(IN) :: result_datatype INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: target_disp TYPE(MPI_Datatype), INTENT(IN) :: target_datatype diff --git a/ompi/mpi/fortran/use-mpi-f08/rget_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/rget_f08.F90 index 5e419fa8bfb..6ca4bc5f1ea 100644 --- a/ompi/mpi/fortran/use-mpi-f08/rget_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/rget_f08.F90 @@ -16,7 +16,7 @@ subroutine MPI_Rget_f08(origin_addr,origin_count,origin_datatype,target_rank,& use :: mpi_f08_types, only : MPI_Datatype, MPI_Win, MPI_Request, MPI_ADDRESS_KIND use :: ompi_mpifh_bindings, only : ompi_rget_f implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: origin_addr + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: origin_addr INTEGER, INTENT(IN) :: origin_count, target_rank, target_count TYPE(MPI_Datatype), INTENT(IN) :: origin_datatype INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: target_disp diff --git a/ompi/mpi/fortran/use-mpi-f08/rput_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/rput_f08.F90 index efbca357754..7138b4d0334 100644 --- a/ompi/mpi/fortran/use-mpi-f08/rput_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/rput_f08.F90 @@ -16,7 +16,7 @@ subroutine MPI_Rput_f08(origin_addr,origin_count,origin_datatype,target_rank,& use :: mpi_f08_types, only : MPI_Datatype, MPI_Win, MPI_Request, MPI_ADDRESS_KIND use :: ompi_mpifh_bindings, only : ompi_rput_f implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: origin_addr + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: origin_addr INTEGER, INTENT(IN) :: origin_count, target_rank, target_count TYPE(MPI_Datatype), INTENT(IN) :: origin_datatype INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: target_disp diff --git a/ompi/mpi/fortran/use-mpi-f08/rsend_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/rsend_f08.F90 index e00ebee63e9..08365634ac7 100644 --- a/ompi/mpi/fortran/use-mpi-f08/rsend_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/rsend_f08.F90 @@ -15,7 +15,7 @@ subroutine MPI_Rsend_f08(buf,count,datatype,dest,tag,comm,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm use :: ompi_mpifh_bindings, only : ompi_rsend_f implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: buf INTEGER, INTENT(IN) :: count, dest, tag TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Comm), INTENT(IN) :: comm diff --git a/ompi/mpi/fortran/use-mpi-f08/rsend_init_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/rsend_init_f08.F90 index 28a3e8a6d31..c7f8466795e 100644 --- a/ompi/mpi/fortran/use-mpi-f08/rsend_init_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/rsend_init_f08.F90 @@ -15,7 +15,7 @@ subroutine MPI_Rsend_init_f08(buf,count,datatype,dest,tag,comm,request,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request use :: ompi_mpifh_bindings, only : ompi_rsend_init_f implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS, INTENT(IN) :: buf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: buf INTEGER, INTENT(IN) :: count, dest, tag TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Comm), INTENT(IN) :: comm diff --git a/ompi/mpi/fortran/use-mpi-f08/scan_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/scan_f08.F90 index 78a09fa6dad..0ee5d63ab6c 100644 --- a/ompi/mpi/fortran/use-mpi-f08/scan_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/scan_f08.F90 @@ -15,8 +15,8 @@ subroutine MPI_Scan_f08(sendbuf,recvbuf,count,datatype,op,comm,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Op, MPI_Comm use :: ompi_mpifh_bindings, only : ompi_scan_f implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE :: recvbuf INTEGER, INTENT(IN) :: count TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Op), INTENT(IN) :: op diff --git a/ompi/mpi/fortran/use-mpi-f08/scatter_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/scatter_f08.F90 index 26ee9507e6f..71442c8b029 100644 --- a/ompi/mpi/fortran/use-mpi-f08/scatter_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/scatter_f08.F90 @@ -16,8 +16,8 @@ subroutine MPI_Scatter_f08(sendbuf,sendcount,sendtype,recvbuf,& use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm use :: ompi_mpifh_bindings, only : ompi_scatter_f implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE :: recvbuf INTEGER, INTENT(IN) :: sendcount, recvcount, root TYPE(MPI_Datatype), INTENT(IN) :: sendtype TYPE(MPI_Datatype), INTENT(IN) :: recvtype diff --git a/ompi/mpi/fortran/use-mpi-f08/scatterv_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/scatterv_f08.F90 index 931d264748b..fa2c715fed1 100644 --- a/ompi/mpi/fortran/use-mpi-f08/scatterv_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/scatterv_f08.F90 @@ -16,8 +16,8 @@ subroutine MPI_Scatterv_f08(sendbuf,sendcounts,displs,sendtype,recvbuf,& use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm use :: ompi_mpifh_bindings, only : ompi_scatterv_f implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE :: recvbuf INTEGER, INTENT(IN) :: recvcount, root INTEGER, INTENT(IN) :: sendcounts(*), displs(*) TYPE(MPI_Datatype), INTENT(IN) :: sendtype diff --git a/ompi/mpi/fortran/use-mpi-f08/send_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/send_f08.F90 index 25fecbffb7a..c8f6105c7d9 100644 --- a/ompi/mpi/fortran/use-mpi-f08/send_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/send_f08.F90 @@ -15,7 +15,7 @@ subroutine MPI_Send_f08(buf,count,datatype,dest,tag,comm,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm use :: ompi_mpifh_bindings, only : ompi_send_f implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: buf INTEGER, INTENT(IN) :: count, dest, tag TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Comm), INTENT(IN) :: comm diff --git a/ompi/mpi/fortran/use-mpi-f08/send_init_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/send_init_f08.F90 index 769501bddb6..a8bf3d3524f 100644 --- a/ompi/mpi/fortran/use-mpi-f08/send_init_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/send_init_f08.F90 @@ -15,7 +15,7 @@ subroutine MPI_Send_init_f08(buf,count,datatype,dest,tag,comm,request,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request use :: ompi_mpifh_bindings, only : ompi_send_init_f implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS, INTENT(IN) :: buf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: buf INTEGER, INTENT(IN) :: count, dest, tag TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Comm), INTENT(IN) :: comm diff --git a/ompi/mpi/fortran/use-mpi-f08/sendrecv_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/sendrecv_f08.F90 index 9cbef5c81e8..0b1c5f71d3e 100644 --- a/ompi/mpi/fortran/use-mpi-f08/sendrecv_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/sendrecv_f08.F90 @@ -13,12 +13,12 @@ #include "mpi-f08-rename.h" subroutine MPI_Sendrecv_f08(sendbuf,sendcount,sendtype,dest,sendtag,recvbuf, & - recvcount,recvtype,source,recvtag,comm,status,ierror) + recvcount,recvtype,source,recvtag,comm,status,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Status use :: ompi_mpifh_bindings, only : ompi_sendrecv_f implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE :: recvbuf INTEGER, INTENT(IN) :: sendcount, dest, sendtag, recvcount, source, recvtag TYPE(MPI_Datatype), INTENT(IN) :: sendtype TYPE(MPI_Datatype), INTENT(IN) :: recvtype diff --git a/ompi/mpi/fortran/use-mpi-f08/sendrecv_replace_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/sendrecv_replace_f08.F90 index 4ed700efa61..6248d13f3fa 100644 --- a/ompi/mpi/fortran/use-mpi-f08/sendrecv_replace_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/sendrecv_replace_f08.F90 @@ -17,7 +17,7 @@ subroutine MPI_Sendrecv_replace_f08(buf,count,datatype,dest,sendtag,source, & use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Status use :: ompi_mpifh_bindings, only : ompi_sendrecv_replace_f implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE :: buf + OMPI_F08_IGNORE_TKR_TYPE :: buf INTEGER, INTENT(IN) :: count, dest, sendtag, source, recvtag TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Comm), INTENT(IN) :: comm diff --git a/ompi/mpi/fortran/use-mpi-f08/ssend_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/ssend_f08.F90 index b4221f659bb..9177bc5db06 100644 --- a/ompi/mpi/fortran/use-mpi-f08/ssend_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/ssend_f08.F90 @@ -15,7 +15,7 @@ subroutine MPI_Ssend_f08(buf,count,datatype,dest,tag,comm,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm use :: ompi_mpifh_bindings, only : ompi_ssend_f implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: buf INTEGER, INTENT(IN) :: count, dest, tag TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Comm), INTENT(IN) :: comm diff --git a/ompi/mpi/fortran/use-mpi-f08/ssend_init_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/ssend_init_f08.F90 index e40b75c6108..e664ba0cb25 100644 --- a/ompi/mpi/fortran/use-mpi-f08/ssend_init_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/ssend_init_f08.F90 @@ -15,7 +15,7 @@ subroutine MPI_Ssend_init_f08(buf,count,datatype,dest,tag,comm,request,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request use :: ompi_mpifh_bindings, only : ompi_ssend_init_f implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS, INTENT(IN) :: buf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: buf INTEGER, INTENT(IN) :: count, dest, tag TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Comm), INTENT(IN) :: comm diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/Makefile.am b/ompi/mpi/fortran/use-mpi-f08/ts/Makefile.am new file mode 100644 index 00000000000..18178efc0a0 --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/Makefile.am @@ -0,0 +1,153 @@ +# -*- makefile -*- +# +# Copyright (c) 2006-2015 Cisco Systems, Inc. All rights reserved. +# Copyright (c) 2012-2013 The University of Tennessee and The University +# of Tennessee Research Foundation. All rights +# reserved. +# Copyright (c) 2012-2013 Inria. All rights reserved. +# Copyright (c) 2013 Los Alamos National Security, LLC. All rights +# reserved. +# Copyright (c) 2015-2019 Research Organization for Information Science +# and Technology (RIST). All rights reserved. +# Copyright (c) 2016 IBM Corporation. All rights reserved. +# +# $COPYRIGHT$ +# +# Additional copyrights may follow +# +# $HEADER$ +# + +include $(top_srcdir)/Makefile.ompi-rules + + +if OMPI_FORTRAN_HAVE_TS + +AM_CPPFLAGS = -DOMPI_COMPILING_FORTRAN_WRAPPERS=1 + +noinst_LTLIBRARIES = libusempif08_ts.la + +endif + +libusempif08_ts_la_SOURCES = \ + bindings.h \ + ts.h \ + ts.c \ + \ + accumulate_ts.c \ + allgather_ts.c \ + allgatherv_ts.c \ + allreduce_ts.c \ + alltoall_ts.c \ + alltoallv_ts.c \ + alltoallw_ts.c \ + bcast_ts.c \ + bsend_ts.c \ + bsend_init_ts.c \ + buffer_attach_ts.c \ + compare_and_swap_ts.c \ + exscan_ts.c \ + f_sync_reg_ts.c \ + fetch_and_op_ts.c \ + file_iread_ts.c \ + file_iread_at_ts.c \ + file_iread_all_ts.c \ + file_iread_at_all_ts.c \ + file_iread_shared_ts.c \ + file_iwrite_ts.c \ + file_iwrite_at_ts.c \ + file_iwrite_all_ts.c \ + file_iwrite_at_all_ts.c \ + file_iwrite_shared_ts.c \ + file_read_all_begin_ts.c \ + file_read_all_ts.c \ + file_read_all_end_ts.c \ + file_read_at_all_begin_ts.c \ + file_read_at_all_ts.c \ + file_read_at_all_end_ts.c \ + file_read_at_ts.c \ + file_read_ts.c \ + file_read_ordered_begin_ts.c \ + file_read_ordered_ts.c \ + file_read_ordered_end_ts.c \ + file_read_shared_ts.c \ + file_write_all_begin_ts.c \ + file_write_all_ts.c \ + file_write_all_end_ts.c \ + file_write_at_all_begin_ts.c \ + file_write_at_all_ts.c \ + file_write_at_all_end_ts.c \ + file_write_at_ts.c \ + file_write_ts.c \ + file_write_ordered_begin_ts.c \ + file_write_ordered_ts.c \ + file_write_ordered_end_ts.c \ + file_write_shared_ts.c \ + free_mem_ts.c \ + gather_ts.c \ + gatherv_ts.c \ + get_address_ts.c \ + get_accumulate_ts.c \ + get_ts.c \ + iallgather_ts.c \ + iallgatherv_ts.c \ + iallreduce_ts.c \ + ialltoall_ts.c \ + ialltoallv_ts.c \ + ialltoallw_ts.c \ + ibcast_ts.c \ + ibsend_ts.c \ + iexscan_ts.c \ + igather_ts.c \ + igatherv_ts.c \ + imrecv_ts.c \ + ineighbor_allgather_ts.c \ + ineighbor_allgatherv_ts.c \ + ineighbor_alltoall_ts.c \ + ineighbor_alltoallv_ts.c \ + ineighbor_alltoallw_ts.c \ + irecv_ts.c \ + ireduce_ts.c \ + ireduce_scatter_block_ts.c \ + ireduce_scatter_ts.c \ + irsend_ts.c \ + iscan_ts.c \ + iscatter_ts.c \ + iscatterv_ts.c \ + isend_ts.c \ + issend_ts.c \ + mrecv_ts.c \ + neighbor_allgather_ts.c \ + neighbor_allgatherv_ts.c \ + neighbor_alltoall_ts.c \ + neighbor_alltoallv_ts.c \ + neighbor_alltoallw_ts.c \ + pack_ts.c \ + pack_external_ts.c \ + put_ts.c \ + raccumulate_ts.c \ + recv_ts.c \ + recv_init_ts.c \ + reduce_ts.c \ + reduce_local_ts.c \ + reduce_scatter_block_ts.c \ + reduce_scatter_ts.c \ + rget_accumulate_ts.c \ + rget_ts.c \ + rput_ts.c \ + rsend_ts.c \ + rsend_init_ts.c \ + scan_ts.c \ + scatter_ts.c \ + scatterv_ts.c \ + send_ts.c \ + send_init_ts.c \ + sendrecv_ts.c \ + sendrecv_replace_ts.c \ + ssend_ts.c \ + ssend_init_ts.c \ + unpack_ts.c \ + unpack_external_ts.c \ + win_attach_ts.c \ + win_create_ts.c \ + win_detach_ts.c diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/accumulate_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/accumulate_ts.c new file mode 100644 index 00000000000..a92d16019ec --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/accumulate_ts.c @@ -0,0 +1,64 @@ +/* + * Copyright (c) 2004-2005 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) 2011-2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/win/win.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + +static const char FUNC_NAME[] = "MPI_Accumulate"; + +void ompi_accumulate_ts(CFI_cdesc_t *x, MPI_Fint *origin_count, + MPI_Fint *origin_datatype, MPI_Fint *target_rank, + MPI_Aint *target_disp, MPI_Fint *target_count, + MPI_Fint *target_datatype, MPI_Fint *op, MPI_Fint *win, + MPI_Fint *ierr) +{ + int c_ierr; + + MPI_Datatype c_origin_datatype, c_origin_type = PMPI_Type_f2c(*origin_datatype); + MPI_Datatype c_target_datatype = PMPI_Type_f2c(*target_datatype); + MPI_Win c_win = PMPI_Win_f2c(*win); + MPI_Op c_op = PMPI_Op_f2c(*op); + char *origin_addr = x->base_addr; + int c_origin_count = OMPI_INT_2_FINT(*origin_count); + + OMPI_CFI_2_C(x, c_origin_count, c_origin_type, c_origin_datatype, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_win, c_ierr, FUNC_NAME) + return; + } + c_ierr = PMPI_Accumulate(OMPI_F2C_BOTTOM(origin_addr), + c_origin_count, + c_origin_datatype, + OMPI_FINT_2_INT(*target_rank), + *target_disp, + OMPI_FINT_2_INT(*target_count), + c_target_datatype, c_op, c_win); + if (c_origin_datatype != c_origin_type) { + ompi_datatype_destroy(&c_origin_datatype); + } + + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/allgather_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/allgather_ts.c new file mode 100644 index 00000000000..c279aab00a3 --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/allgather_ts.c @@ -0,0 +1,77 @@ +/* + * Copyright (c) 2004-2005 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) 2011-2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/communicator/communicator.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + +static const char FUNC_NAME[] = "MPI_Allgather"; + +void ompi_allgather_ts(CFI_cdesc_t* x1, MPI_Fint *sendcount, MPI_Fint *sendtype, + CFI_cdesc_t* x2, MPI_Fint *recvcount, MPI_Fint *recvtype, + MPI_Fint *comm, MPI_Fint *ierr) +{ + int c_ierr; + MPI_Comm c_comm = PMPI_Comm_f2c(*comm); + int c_sendcount = 0; + MPI_Datatype c_sendtype = NULL, c_senddatatype = NULL; + MPI_Datatype c_recvtype = PMPI_Type_f2c(*recvtype); + void *sendbuf = x1->base_addr, *recvbuf = x2->base_addr; + + OMPI_CFI_CHECK_CONTIGUOUS(x2, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME) + return; + } + + if (OMPI_COMM_IS_INTER(c_comm) || !OMPI_IS_FORTRAN_IN_PLACE(sendbuf)) { + c_sendtype = PMPI_Type_f2c(*sendtype); + c_sendcount = OMPI_FINT_2_INT(*sendcount); + OMPI_CFI_2_C(x1, c_sendcount, c_sendtype, c_senddatatype, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME) + return; + } + } else { + sendbuf = MPI_IN_PLACE; + } + + sendbuf = (char *) OMPI_F2C_BOTTOM(sendbuf); + recvbuf = (char *) OMPI_F2C_BOTTOM(recvbuf); + + c_ierr = PMPI_Allgather(sendbuf, + c_sendcount, + c_senddatatype, + recvbuf, + OMPI_FINT_2_INT(*recvcount), + c_recvtype, c_comm); + + if (c_senddatatype != c_sendtype) { + ompi_datatype_destroy(&c_senddatatype); + } + + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/allgatherv_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/allgatherv_ts.c new file mode 100644 index 00000000000..f379d4c4618 --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/allgatherv_ts.c @@ -0,0 +1,99 @@ +/* + * Copyright (c) 2004-2005 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) 2011-2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/communicator/communicator.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + +static const char FUNC_NAME[] = "MPI_Allgatherv"; + +void ompi_allgatherv_ts(CFI_cdesc_t *x1, MPI_Fint *sendcount, MPI_Fint *sendtype, + CFI_cdesc_t *x2, MPI_Fint *recvcounts, MPI_Fint *displs, + MPI_Fint *recvtype, MPI_Fint *comm, MPI_Fint *ierr) +{ + int c_ierr; + MPI_Comm c_comm = PMPI_Comm_f2c(*comm); + int c_sendcount = 0; + MPI_Datatype c_sendtype = NULL, c_senddatatype = NULL, c_recvtype = PMPI_Type_f2c(*recvtype); + char *sendbuf = x1->base_addr, *recvbuf = x2->base_addr; + OMPI_COND_STATEMENT(int size); + OMPI_ARRAY_NAME_DECL(recvcounts); + OMPI_ARRAY_NAME_DECL(displs); + + OMPI_CFI_CHECK_CONTIGUOUS(x2, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME) + return; + } + + if (OMPI_COMM_IS_INTER(c_comm)) { + OMPI_COND_STATEMENT(size = ompi_comm_remote_size(c_comm)); + c_sendtype = PMPI_Type_f2c(*sendtype); + c_sendcount = OMPI_FINT_2_INT(*sendcount); + OMPI_CFI_2_C(x1, c_sendcount, c_sendtype, c_senddatatype, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME) + return; + } + } else { + OMPI_COND_STATEMENT(size = ompi_comm_size(c_comm)); + if (OMPI_IS_FORTRAN_IN_PLACE(sendbuf)) { + sendbuf = MPI_IN_PLACE; + } else { + c_sendtype = PMPI_Type_f2c(*sendtype); + c_sendcount = OMPI_FINT_2_INT(*sendcount); + OMPI_CFI_2_C(x1, c_sendcount, c_sendtype, c_senddatatype, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME) + return; + } + } + } + + OMPI_ARRAY_FINT_2_INT(recvcounts, size); + OMPI_ARRAY_FINT_2_INT(displs, size); + + sendbuf = (char *) OMPI_F2C_BOTTOM(sendbuf); + recvbuf = (char *) OMPI_F2C_BOTTOM(recvbuf); + + c_ierr = PMPI_Allgatherv(sendbuf, + c_sendcount, + c_senddatatype, + recvbuf, + OMPI_ARRAY_NAME_CONVERT(recvcounts), + OMPI_ARRAY_NAME_CONVERT(displs), + c_recvtype, c_comm); + + if (c_senddatatype != c_sendtype) { + ompi_datatype_destroy(&c_senddatatype); + } + + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + + OMPI_ARRAY_FINT_2_INT_CLEANUP(recvcounts); + OMPI_ARRAY_FINT_2_INT_CLEANUP(displs); +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/allreduce_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/allreduce_ts.c new file mode 100644 index 00000000000..ffdc913960a --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/allreduce_ts.c @@ -0,0 +1,65 @@ +/* + * Copyright (c) 2004-2005 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) 2011-2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/communicator/communicator.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + +static const char FUNC_NAME[] = "MPI_Allreduce"; + +void ompi_allreduce_ts(CFI_cdesc_t *x1, CFI_cdesc_t *x2, MPI_Fint *count, + MPI_Fint *datatype, MPI_Fint *op, MPI_Fint *comm, + MPI_Fint *ierr) +{ + int c_ierr; + int c_count = OMPI_FINT_2_INT(*count); + MPI_Comm c_comm = PMPI_Comm_f2c(*comm); + MPI_Datatype c_type; + MPI_Op c_op; + char *sendbuf = x1->base_addr, *recvbuf = x2->base_addr; + + OMPI_CFI_CHECK_CONTIGUOUS(x1, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME) + return; + } + OMPI_CFI_CHECK_CONTIGUOUS(x2, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME) + return; + } + c_type = PMPI_Type_f2c(*datatype); + c_op = PMPI_Op_f2c(*op); + + sendbuf = (char *) OMPI_F2C_IN_PLACE(sendbuf); + sendbuf = (char *) OMPI_F2C_BOTTOM(sendbuf); + recvbuf = (char *) OMPI_F2C_BOTTOM(recvbuf); + + c_ierr = PMPI_Allreduce(sendbuf, recvbuf, + c_count, + c_type, c_op, c_comm); + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/alltoall_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/alltoall_ts.c new file mode 100644 index 00000000000..96e10a0b72c --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/alltoall_ts.c @@ -0,0 +1,72 @@ +/* + * Copyright (c) 2004-2005 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) 2011-2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/communicator/communicator.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + +static const char FUNC_NAME[] = "MPI_Alltoall"; + +void ompi_alltoall_ts(CFI_cdesc_t* x1, MPI_Fint *sendcount, MPI_Fint *sendtype, + CFI_cdesc_t* x2, MPI_Fint *recvcount, MPI_Fint *recvtype, + MPI_Fint *comm, MPI_Fint *ierr) +{ + int c_ierr; + MPI_Comm c_comm = PMPI_Comm_f2c(*comm); + MPI_Datatype c_sendtype = NULL, c_recvtype = PMPI_Type_f2c(*recvtype); + void *sendbuf = x1->base_addr, *recvbuf = x2->base_addr; + int c_sendcount = 0, c_recvcount = OMPI_FINT_2_INT(*recvcount); + + if (OMPI_COMM_IS_INTER(c_comm) || !OMPI_IS_FORTRAN_IN_PLACE(sendbuf)) { + c_sendtype = PMPI_Type_f2c(*sendtype); + c_sendcount = OMPI_FINT_2_INT(*sendcount); + OMPI_CFI_CHECK_CONTIGUOUS(x1, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME) + return; + } + } else { + sendbuf = MPI_IN_PLACE; + } + + OMPI_CFI_CHECK_CONTIGUOUS(x2, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME) + return; + } + + sendbuf = (char *) OMPI_F2C_BOTTOM(sendbuf); + recvbuf = (char *) OMPI_F2C_BOTTOM(recvbuf); + + c_ierr = PMPI_Alltoall(sendbuf, + c_sendcount, + c_sendtype, + recvbuf, + c_recvcount, + c_recvtype, c_comm); + + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/alltoallv_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/alltoallv_ts.c new file mode 100644 index 00000000000..05911515992 --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/alltoallv_ts.c @@ -0,0 +1,89 @@ +/* + * Copyright (c) 2004-2005 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) 2011-2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/communicator/communicator.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + +static const char FUNC_NAME[] = "MPI_Alltoallv"; + +void ompi_alltoallv_ts(CFI_cdesc_t *x1, MPI_Fint *sendcounts, MPI_Fint *sdispls, + MPI_Fint *sendtype, CFI_cdesc_t *x2, MPI_Fint *recvcounts, + MPI_Fint *rdispls, MPI_Fint *recvtype, + MPI_Fint *comm, MPI_Fint *ierr) +{ + int c_ierr; + MPI_Comm c_comm = PMPI_Comm_f2c(*comm); + char *sendbuf = x1->base_addr, *recvbuf = x2->base_addr; + MPI_Datatype c_sendtype = NULL, c_recvtype = PMPI_Type_f2c(*recvtype); + OMPI_COND_STATEMENT(int size = OMPI_COMM_IS_INTER(c_comm)?ompi_comm_remote_size(c_comm):ompi_comm_size(c_comm)); + OMPI_ARRAY_NAME_DECL(sendcounts); + OMPI_ARRAY_NAME_DECL(sdispls); + OMPI_ARRAY_NAME_DECL(recvcounts); + OMPI_ARRAY_NAME_DECL(rdispls); + + if (OMPI_COMM_IS_INTER(c_comm) || !OMPI_IS_FORTRAN_IN_PLACE(sendbuf)) { + c_sendtype = PMPI_Type_f2c(*sendtype); + OMPI_CFI_CHECK_CONTIGUOUS(x1, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME) + return; + } + OMPI_ARRAY_FINT_2_INT(sendcounts, size); + OMPI_ARRAY_FINT_2_INT(sdispls, size); + } else { + sendbuf = MPI_IN_PLACE; + } + + OMPI_CFI_CHECK_CONTIGUOUS(x2, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME) + return; + } + + OMPI_ARRAY_FINT_2_INT(recvcounts, size); + OMPI_ARRAY_FINT_2_INT(rdispls, size); + + sendbuf = (char *) OMPI_F2C_BOTTOM(sendbuf); + recvbuf = (char *) OMPI_F2C_BOTTOM(recvbuf); + + c_ierr = PMPI_Alltoallv(sendbuf, + OMPI_ARRAY_NAME_CONVERT(sendcounts), + OMPI_ARRAY_NAME_CONVERT(sdispls), + c_sendtype, + recvbuf, + OMPI_ARRAY_NAME_CONVERT(recvcounts), + OMPI_ARRAY_NAME_CONVERT(rdispls), + c_recvtype, c_comm); + + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + if (MPI_IN_PLACE == sendbuf) { + OMPI_ARRAY_FINT_2_INT_CLEANUP(sendcounts); + OMPI_ARRAY_FINT_2_INT_CLEANUP(sdispls); + } + OMPI_ARRAY_FINT_2_INT_CLEANUP(recvcounts); + OMPI_ARRAY_FINT_2_INT_CLEANUP(rdispls); +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/alltoallw_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/alltoallw_ts.c new file mode 100644 index 00000000000..48d146e0ac0 --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/alltoallw_ts.c @@ -0,0 +1,100 @@ +/* + * Copyright (c) 2004-2005 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) 2011-2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/communicator/communicator.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" +#include "ompi/communicator/communicator.h" + +static const char FUNC_NAME[] = "MPI_Alltoallw"; + +void ompi_alltoallw_ts(CFI_cdesc_t *x1, MPI_Fint *sendcounts, + MPI_Fint *sdispls, MPI_Fint *sendtypes, + CFI_cdesc_t *x2, MPI_Fint *recvcounts, + MPI_Fint *rdispls, MPI_Fint *recvtypes, + MPI_Fint *comm, MPI_Fint *ierr) +{ + MPI_Comm c_comm = PMPI_Comm_f2c(*comm); + MPI_Datatype *c_sendtypes = NULL, *c_recvtypes; + int size, c_ierr; + char *sendbuf = x1->base_addr, *recvbuf = x2->base_addr; + + OMPI_ARRAY_NAME_DECL(sendcounts); + OMPI_ARRAY_NAME_DECL(sdispls); + OMPI_ARRAY_NAME_DECL(recvcounts); + OMPI_ARRAY_NAME_DECL(rdispls); + + OMPI_CFI_CHECK_CONTIGUOUS(x1, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME) + return; + } + OMPI_CFI_CHECK_CONTIGUOUS(x2, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME) + return; + } + size = OMPI_COMM_IS_INTER(c_comm)?ompi_comm_remote_size(c_comm):ompi_comm_size(c_comm); + + if (!OMPI_IS_FORTRAN_IN_PLACE(sendbuf)) { + c_sendtypes = (MPI_Datatype *) malloc(size * sizeof(MPI_Datatype)); + OMPI_ARRAY_FINT_2_INT(sendcounts, size); + OMPI_ARRAY_FINT_2_INT(sdispls, size); + for (int i=0; ibase_addr; + int c_count = OMPI_FINT_2_INT(*count); + + OMPI_CFI_2_C(x, c_count, c_type, c_datatype, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME); + return; + } + + c_ierr = PMPI_Bsend_init(OMPI_F2C_BOTTOM(buf), c_count, + c_datatype, + OMPI_FINT_2_INT(*dest), + OMPI_FINT_2_INT(*tag), + c_comm, &c_req); + if (c_datatype != c_type) { + ompi_datatype_destroy(&c_datatype); + } + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + + if (MPI_SUCCESS == c_ierr) { + *request = PMPI_Request_c2f(c_req); + } +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/bsend_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/bsend_ts.c new file mode 100644 index 00000000000..df43de45b07 --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/bsend_ts.c @@ -0,0 +1,53 @@ +/* + * Copyright (c) 2004-2005 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) 2011-2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/communicator/communicator.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + +static const char FUNC_NAME[] = "MPI_Bsend"; + +void ompi_bsend_ts(CFI_cdesc_t* x, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *ierr) +{ + int c_ierr; + MPI_Comm c_comm = PMPI_Comm_f2c (*comm); + MPI_Datatype c_datatype, c_type = PMPI_Type_f2c(*datatype); + void *buf = x->base_addr; + int c_count = OMPI_FINT_2_INT(*count); + + OMPI_CFI_2_C(x, c_count, c_type, c_datatype, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME); + return; + } + + c_ierr = PMPI_Bsend(OMPI_F2C_BOTTOM(buf), c_count, + c_datatype, OMPI_FINT_2_INT(*dest), + OMPI_FINT_2_INT(*tag), c_comm); + if (c_datatype != c_type) { + ompi_datatype_destroy(&c_datatype); + } + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/buffer_attach_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/buffer_attach_ts.c new file mode 100644 index 00000000000..def14ca056d --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/buffer_attach_ts.c @@ -0,0 +1,40 @@ +/* + * Copyright (c) 2004-2005 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) 2011-2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/communicator/communicator.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" + +static const char FUNC_NAME[] = "MPI_Buffer_attach"; + +void ompi_buffer_attach_ts(CFI_cdesc_t *x, MPI_Fint *size, MPI_Fint *ierr) +{ + int c_ierr; + if (OMPI_CFI_IS_CONTIGUOUS(x)) { + c_ierr = PMPI_Buffer_attach(x->base_addr, OMPI_FINT_2_INT(*size)); + } else { + c_ierr = MPI_ERR_BUFFER; + OMPI_ERRHANDLER_INVOKE(MPI_COMM_SELF, c_ierr, FUNC_NAME); + } + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/compare_and_swap_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/compare_and_swap_ts.c new file mode 100644 index 00000000000..30689910b61 --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/compare_and_swap_ts.c @@ -0,0 +1,67 @@ +/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ +/* + * Copyright (c) 2004-2005 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) 2011-2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2014 Los Alamos National Security, LLC. All rights + * reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/win/win.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + +static const char FUNC_NAME[] = "MPI_Compare_and_swap"; + +void ompi_compare_and_swap_ts(CFI_cdesc_t *x1, CFI_cdesc_t *x2, CFI_cdesc_t *x3, + MPI_Fint *datatype, MPI_Fint *target_rank, MPI_Aint *target_disp, + MPI_Fint *win, MPI_Fint *ierr) +{ + int c_ierr; + MPI_Datatype c_datatype = PMPI_Type_f2c(*datatype); + MPI_Win c_win = PMPI_Win_f2c(*win); + char *origin_addr = x1->base_addr, *compare_addr = x2->base_addr, *result_addr = x3->base_addr; + + OMPI_CFI_CHECK_CONTIGUOUS(x1, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_win, c_ierr, FUNC_NAME) + return; + } + OMPI_CFI_CHECK_CONTIGUOUS(x2, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_win, c_ierr, FUNC_NAME) + return; + } + OMPI_CFI_CHECK_CONTIGUOUS(x3, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + return; + } + c_ierr = PMPI_Compare_and_swap(OMPI_F2C_BOTTOM(origin_addr), + OMPI_F2C_BOTTOM(compare_addr), + OMPI_F2C_BOTTOM(result_addr), + c_datatype, + OMPI_FINT_2_INT(*target_rank), + *target_disp, c_win); + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/exscan_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/exscan_ts.c new file mode 100644 index 00000000000..ccbe107a221 --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/exscan_ts.c @@ -0,0 +1,64 @@ +/* + * Copyright (c) 2004-2005 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) 2011-2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/communicator/communicator.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + +static const char FUNC_NAME[] = "MPI_Exscan"; + +void ompi_exscan_ts(CFI_cdesc_t *x1, CFI_cdesc_t *x2, MPI_Fint *count, + MPI_Fint *datatype, MPI_Fint *op, MPI_Fint *comm, + MPI_Fint *ierr) +{ + int c_ierr; + MPI_Comm c_comm = PMPI_Comm_f2c(*comm); + MPI_Datatype c_type; + MPI_Op c_op; + char *sendbuf = x1->base_addr, *recvbuf = x2->base_addr; + + OMPI_CFI_CHECK_CONTIGUOUS(x1, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME) + return; + } + OMPI_CFI_CHECK_CONTIGUOUS(x2, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME) + return; + } + c_type = PMPI_Type_f2c(*datatype); + c_op = PMPI_Op_f2c(*op); + + sendbuf = (char *) OMPI_F2C_IN_PLACE(sendbuf); + sendbuf = (char *) OMPI_F2C_BOTTOM (sendbuf); + recvbuf = (char *) OMPI_F2C_BOTTOM (recvbuf); + + c_ierr = PMPI_Exscan(sendbuf, recvbuf, + OMPI_FINT_2_INT(*count), + c_type, c_op, c_comm); + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/f_sync_reg_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/f_sync_reg_ts.c new file mode 100644 index 00000000000..a20db111458 --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/f_sync_reg_ts.c @@ -0,0 +1,32 @@ +/* + * Copyright (c) 2004-2005 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) 2011-2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2012 University of Oregon. All rights reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + +void ompi_f_sync_reg_ts(CFI_cdesc_t *x) +{ + /* This is a noop in C to disable potential Fortran optimizations. */ + return; +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/fetch_and_op_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/fetch_and_op_ts.c new file mode 100644 index 00000000000..0d2a8c00367 --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/fetch_and_op_ts.c @@ -0,0 +1,62 @@ +/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ +/* + * Copyright (c) 2004-2005 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) 2011-2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2014 Los Alamos National Security, LLC. All rights + * reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/win/win.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + +static const char FUNC_NAME[] = "MPI_Fetch_and_op"; + +void ompi_fetch_and_op_ts(CFI_cdesc_t *x1, CFI_cdesc_t *x2, MPI_Fint *datatype, + MPI_Fint *target_rank, MPI_Aint *target_disp, + MPI_Fint *op, MPI_Fint *win, MPI_Fint *ierr) +{ + int c_ierr; + MPI_Datatype c_datatype = PMPI_Type_f2c(*datatype); + MPI_Win c_win = PMPI_Win_f2c(*win); + MPI_Op c_op = PMPI_Op_f2c(*op); + char *origin_addr = x1->base_addr, *result_addr = x2->base_addr; + + OMPI_CFI_CHECK_CONTIGUOUS(x1, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_win, c_ierr, FUNC_NAME) + return; + } + OMPI_CFI_CHECK_CONTIGUOUS(x2, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_win, c_ierr, FUNC_NAME) + return; + } + c_ierr = PMPI_Fetch_and_op(OMPI_F2C_BOTTOM(origin_addr), + OMPI_F2C_BOTTOM(result_addr), + c_datatype, + OMPI_FINT_2_INT(*target_rank), + *target_disp, c_op, c_win); + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/file_iread_all_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/file_iread_all_ts.c new file mode 100644 index 00000000000..e33bad86e34 --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/file_iread_all_ts.c @@ -0,0 +1,60 @@ +/* + * Copyright (c) 2004-2005 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) 2011-2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/file/file.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + +static const char FUNC_NAME[] = "MPI_File_iread_all"; + +void ompi_file_iread_all_ts(MPI_Fint *fh, CFI_cdesc_t *x, MPI_Fint *count, + MPI_Fint *datatype, MPI_Fint *request, MPI_Fint *ierr) +{ + int c_ierr; + MPI_File c_fh = PMPI_File_f2c(*fh); + MPI_Datatype c_datatype, c_type = PMPI_Type_f2c(*datatype); + void *buf = x->base_addr; + int c_count = OMPI_FINT_2_INT(*count); + MPI_Request c_request; + + OMPI_CFI_2_C(x, c_count, c_type, c_datatype, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_fh, c_ierr, FUNC_NAME) + return; + } + + c_ierr = PMPI_File_iread_all(c_fh, OMPI_F2C_BOTTOM(buf), + c_count, + c_datatype, &c_request); + + if (c_datatype != c_type) { + ompi_datatype_destroy(&c_datatype); + } + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + + if (MPI_SUCCESS == c_ierr) { + *request = PMPI_Request_c2f(c_request); + } +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/file_iread_at_all_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/file_iread_at_all_ts.c new file mode 100644 index 00000000000..8ba8451e2c1 --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/file_iread_at_all_ts.c @@ -0,0 +1,62 @@ +/* + * Copyright (c) 2004-2005 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) 2011-2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/file/file.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + +static const char FUNC_NAME[] = "MPI_File_iread_at_all"; + +void ompi_file_iread_at_all_ts(MPI_Fint *fh, MPI_Offset *offset, + CFI_cdesc_t *x, MPI_Fint *count, + MPI_Fint *datatype, MPI_Fint *request, MPI_Fint *ierr) +{ + int c_ierr; + MPI_File c_fh = PMPI_File_f2c(*fh); + MPI_Datatype c_datatype, c_type = PMPI_Type_f2c(*datatype); + void *buf = x->base_addr; + int c_count = OMPI_FINT_2_INT(*count); + MPI_Request c_request; + + OMPI_CFI_2_C(x, c_count, c_type, c_datatype, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_fh, c_ierr, FUNC_NAME) + return; + } + + c_ierr = PMPI_File_iread_at_all(c_fh, (MPI_Offset) *offset, + OMPI_F2C_BOTTOM(buf), + c_count, + c_datatype, + &c_request); + if (c_datatype != c_type) { + ompi_datatype_destroy(&c_datatype); + } + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + + if (MPI_SUCCESS == c_ierr) { + *request = PMPI_Request_c2f(c_request); + } +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/file_iread_at_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/file_iread_at_ts.c new file mode 100644 index 00000000000..2039c5ef8a0 --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/file_iread_at_ts.c @@ -0,0 +1,62 @@ +/* + * Copyright (c) 2004-2005 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) 2011-2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/file/file.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + +static const char FUNC_NAME[] = "MPI_File_iread_at"; + +void ompi_file_iread_at_ts(MPI_Fint *fh, MPI_Offset *offset, + CFI_cdesc_t *x, MPI_Fint *count, + MPI_Fint *datatype, MPI_Fint *request, MPI_Fint *ierr) +{ + int c_ierr; + MPI_File c_fh = PMPI_File_f2c(*fh); + MPI_Datatype c_datatype, c_type = PMPI_Type_f2c(*datatype); + void *buf = x->base_addr; + int c_count = OMPI_FINT_2_INT(*count); + MPI_Request c_request; + + OMPI_CFI_2_C(x, c_count, c_type, c_datatype, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_fh, c_ierr, FUNC_NAME) + return; + } + + c_ierr = PMPI_File_iread_at(c_fh, (MPI_Offset) *offset, + OMPI_F2C_BOTTOM(buf), + c_count, + c_datatype, + &c_request); + if (c_datatype != c_type) { + ompi_datatype_destroy(&c_datatype); + } + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + + if (MPI_SUCCESS == c_ierr) { + *request = PMPI_Request_c2f(c_request); + } +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/file_iread_shared_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/file_iread_shared_ts.c new file mode 100644 index 00000000000..40a461da8f8 --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/file_iread_shared_ts.c @@ -0,0 +1,62 @@ +/* + * Copyright (c) 2004-2005 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) 2011-2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/file/file.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + +static const char FUNC_NAME[] = "MPI_File_iread_shared"; + +void ompi_file_iread_shared_ts(MPI_Fint *fh, CFI_cdesc_t *x, MPI_Fint *count, + MPI_Fint *datatype, MPI_Fint *request, + MPI_Fint *ierr) +{ + int c_ierr; + MPI_File c_fh = PMPI_File_f2c(*fh); + MPI_Datatype c_datatype, c_type = PMPI_Type_f2c(*datatype); + void *buf = x->base_addr; + int c_count = OMPI_FINT_2_INT(*count); + MPI_Request c_request; + + OMPI_CFI_2_C(x, c_count, c_type, c_datatype, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_fh, c_ierr, FUNC_NAME) + return; + } + + c_ierr = PMPI_File_iread_shared(c_fh, + OMPI_F2C_BOTTOM(buf), + c_count, + c_datatype, + &c_request); + if (c_datatype != c_type) { + ompi_datatype_destroy(&c_datatype); + } + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + + if (MPI_SUCCESS == c_ierr) { + *request = PMPI_Request_c2f(c_request); + } +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/file_iread_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/file_iread_ts.c new file mode 100644 index 00000000000..7463b40a4bb --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/file_iread_ts.c @@ -0,0 +1,60 @@ +/* + * Copyright (c) 2004-2005 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) 2011-2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/file/file.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + +static const char FUNC_NAME[] = "MPI_File_iread"; + +void ompi_file_iread_ts(MPI_Fint *fh, CFI_cdesc_t *x, MPI_Fint *count, + MPI_Fint *datatype, MPI_Fint *request, MPI_Fint *ierr) +{ + int c_ierr; + MPI_File c_fh = PMPI_File_f2c(*fh); + MPI_Datatype c_datatype, c_type = PMPI_Type_f2c(*datatype); + void *buf = x->base_addr; + int c_count = OMPI_FINT_2_INT(*count); + MPI_Request c_request; + + OMPI_CFI_2_C(x, c_count, c_type, c_datatype, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_fh, c_ierr, FUNC_NAME) + return; + } + + c_ierr = PMPI_File_iread(c_fh, OMPI_F2C_BOTTOM(buf), + c_count, + c_datatype, &c_request); + + if (c_datatype != c_type) { + ompi_datatype_destroy(&c_datatype); + } + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + + if (MPI_SUCCESS == c_ierr) { + *request = PMPI_Request_c2f(c_request); + } +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/file_iwrite_all_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/file_iwrite_all_ts.c new file mode 100644 index 00000000000..c7ce5fc81e1 --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/file_iwrite_all_ts.c @@ -0,0 +1,59 @@ +/* + * Copyright (c) 2004-2005 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) 2011-2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/file/file.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + +static const char FUNC_NAME[] = "MPI_File_iwrite_all"; + +void ompi_file_iwrite_all_ts(MPI_Fint *fh, CFI_cdesc_t *x, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *request, MPI_Fint *ierr) +{ + int c_ierr; + MPI_File c_fh = PMPI_File_f2c(*fh); + MPI_Datatype c_datatype, c_type = PMPI_Type_f2c(*datatype); + void *buf = x->base_addr; + int c_count = OMPI_FINT_2_INT(*count); + MPI_Request c_request; + + OMPI_CFI_2_C(x, c_count, c_type, c_datatype, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_fh, c_ierr, FUNC_NAME) + return; + } + + c_ierr = PMPI_File_iwrite_all(c_fh, OMPI_F2C_BOTTOM(buf), + c_count, + c_datatype, + &c_request); + if (c_datatype != c_type) { + ompi_datatype_destroy(&c_datatype); + } + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + + if (MPI_SUCCESS == c_ierr) { + *request = PMPI_Request_c2f(c_request); + } +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/file_iwrite_at_all_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/file_iwrite_at_all_ts.c new file mode 100644 index 00000000000..a3b3e3ee2e1 --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/file_iwrite_at_all_ts.c @@ -0,0 +1,63 @@ +/* + * Copyright (c) 2004-2005 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) 2011-2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/file/file.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + +static const char FUNC_NAME[] = "MPI_File_iwrite_at_all"; + +void ompi_file_iwrite_at_all_ts(MPI_Fint *fh, MPI_Offset *offset, CFI_cdesc_t *x, + MPI_Fint *count, MPI_Fint *datatype, + MPI_Fint *request, MPI_Fint *ierr) +{ + int c_ierr; + MPI_File c_fh = PMPI_File_f2c(*fh); + MPI_Datatype c_datatype, c_type = PMPI_Type_f2c(*datatype); + void *buf = x->base_addr; + int c_count = OMPI_FINT_2_INT(*count); + MPI_Request c_request; + + OMPI_CFI_2_C(x, c_count, c_type, c_datatype, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_fh, c_ierr, FUNC_NAME) + return; + } + + c_ierr = PMPI_File_iwrite_at_all(c_fh, (MPI_Offset) *offset, + OMPI_F2C_BOTTOM(buf), + c_count, + c_datatype, + &c_request); + + if (c_datatype != c_type) { + ompi_datatype_destroy(&c_datatype); + } + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + + if (MPI_SUCCESS == c_ierr) { + *request = PMPI_Request_c2f(c_request); + } +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/file_iwrite_at_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/file_iwrite_at_ts.c new file mode 100644 index 00000000000..06d6d2d2e2b --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/file_iwrite_at_ts.c @@ -0,0 +1,63 @@ +/* + * Copyright (c) 2004-2005 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) 2011-2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/file/file.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + +static const char FUNC_NAME[] = "MPI_File_iwrite_at"; + +void ompi_file_iwrite_at_ts(MPI_Fint *fh, MPI_Offset *offset, CFI_cdesc_t *x, + MPI_Fint *count, MPI_Fint *datatype, + MPI_Fint *request, MPI_Fint *ierr) +{ + int c_ierr; + MPI_File c_fh = PMPI_File_f2c(*fh); + MPI_Datatype c_datatype, c_type = PMPI_Type_f2c(*datatype); + void *buf = x->base_addr; + int c_count = OMPI_FINT_2_INT(*count); + MPI_Request c_request; + + OMPI_CFI_2_C(x, c_count, c_type, c_datatype, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_fh, c_ierr, FUNC_NAME) + return; + } + + c_ierr = PMPI_File_iwrite_at(c_fh, (MPI_Offset) *offset, + OMPI_F2C_BOTTOM(buf), + c_count, + c_datatype, + &c_request); + + if (c_datatype != c_type) { + ompi_datatype_destroy(&c_datatype); + } + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + + if (MPI_SUCCESS == c_ierr) { + *request = PMPI_Request_c2f(c_request); + } +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/file_iwrite_shared_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/file_iwrite_shared_ts.c new file mode 100644 index 00000000000..bdbcc7a4da1 --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/file_iwrite_shared_ts.c @@ -0,0 +1,63 @@ +/* + * Copyright (c) 2004-2005 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) 2011-2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/file/file.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + +static const char FUNC_NAME[] = "MPI_File_iwrite_shared"; + +void ompi_file_iwrite_shared_ts(MPI_Fint *fh, CFI_cdesc_t *x, MPI_Fint *count, + MPI_Fint *datatype, MPI_Fint *request, + MPI_Fint *ierr) +{ + int c_ierr; + MPI_File c_fh = PMPI_File_f2c(*fh); + MPI_Datatype c_datatype, c_type = PMPI_Type_f2c(*datatype); + void *buf = x->base_addr; + int c_count = OMPI_FINT_2_INT(*count); + MPI_Request c_request; + + OMPI_CFI_2_C(x, c_count, c_type, c_datatype, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_fh, c_ierr, FUNC_NAME) + return; + } + + c_ierr = PMPI_File_iwrite_shared(c_fh, + OMPI_F2C_BOTTOM(buf), + c_count, + c_datatype, + &c_request); + + if (c_datatype != c_type) { + ompi_datatype_destroy(&c_datatype); + } + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + + if (MPI_SUCCESS == c_ierr) { + *request = PMPI_Request_c2f(c_request); + } +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/file_iwrite_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/file_iwrite_ts.c new file mode 100644 index 00000000000..41d3293a6e3 --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/file_iwrite_ts.c @@ -0,0 +1,60 @@ +/* + * Copyright (c) 2004-2005 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) 2011-2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/file/file.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + +static const char FUNC_NAME[] = "MPI_File_iwrite"; + +void ompi_file_iwrite_ts(MPI_Fint *fh, CFI_cdesc_t *x, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *request, MPI_Fint *ierr) +{ + int c_ierr; + MPI_File c_fh = PMPI_File_f2c(*fh); + MPI_Datatype c_datatype, c_type = PMPI_Type_f2c(*datatype); + void *buf = x->base_addr; + int c_count = OMPI_FINT_2_INT(*count); + MPI_Request c_request; + + OMPI_CFI_2_C(x, c_count, c_type, c_datatype, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_fh, c_ierr, FUNC_NAME) + return; + } + + c_ierr = PMPI_File_iwrite(c_fh, OMPI_F2C_BOTTOM(buf), + c_count, + c_datatype, + &c_request); + + if (c_datatype != c_type) { + ompi_datatype_destroy(&c_datatype); + } + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + + if (MPI_SUCCESS == c_ierr) { + *request = PMPI_Request_c2f(c_request); + } +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/file_read_all_begin_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/file_read_all_begin_ts.c new file mode 100644 index 00000000000..f8a1537a33f --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/file_read_all_begin_ts.c @@ -0,0 +1,56 @@ +/* + * Copyright (c) 2004-2005 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) 2011-2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/file/file.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + +static const char FUNC_NAME[] = "MPI_File_read_all_begin"; + +void ompi_file_read_all_begin_ts(MPI_Fint *fh, CFI_cdesc_t *x, + MPI_Fint *count, MPI_Fint *datatype, + MPI_Fint *ierr) +{ + int c_ierr; + MPI_File c_fh = PMPI_File_f2c(*fh); + MPI_Datatype c_datatype, c_type = PMPI_Type_f2c(*datatype); + void *buf = x->base_addr; + int c_count = OMPI_FINT_2_INT(*count); + + OMPI_CFI_2_C(x, c_count, c_type, c_datatype, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_fh, c_ierr, FUNC_NAME) + return; + } + + c_ierr = PMPI_File_read_all_begin(c_fh, OMPI_F2C_BOTTOM(buf), + c_count, + c_datatype); + + if (c_datatype != c_type) { + ompi_datatype_destroy(&c_datatype); + } + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/file_read_all_end_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/file_read_all_end_ts.c new file mode 100644 index 00000000000..8571227de65 --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/file_read_all_end_ts.c @@ -0,0 +1,46 @@ +/* + * Copyright (c) 2004-2005 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) 2011-2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2012 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/file/file.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/mpi/fortran/mpif-h/status-conversion.h" +#include "ompi/mpi/fortran/base/constants.h" + +void ompi_file_read_all_end_ts(MPI_Fint *fh, CFI_cdesc_t *x, MPI_Fint *status, + MPI_Fint *ierr) +{ + int c_ierr; + void *buf = x->base_addr; + OMPI_FORTRAN_STATUS_DECLARATION(c_status,c_status2) + MPI_File c_fh = PMPI_File_f2c(*fh); + + OMPI_FORTRAN_STATUS_SET_POINTER(c_status,c_status2,status) + + c_ierr = PMPI_File_read_all_end(c_fh, buf, c_status); + + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + + OMPI_FORTRAN_STATUS_RETURN(c_status,c_status2,status,c_ierr) +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/file_read_all_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/file_read_all_ts.c new file mode 100644 index 00000000000..3d83c95cb7f --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/file_read_all_ts.c @@ -0,0 +1,62 @@ +/* + * Copyright (c) 2004-2005 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) 2011-2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2012 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/file/file.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/mpi/fortran/mpif-h/status-conversion.h" +#include "ompi/mpi/fortran/base/constants.h" + +static const char FUNC_NAME[] = "MPI_File_read_all"; + +void ompi_file_read_all_ts(MPI_Fint *fh, CFI_cdesc_t *x, MPI_Fint *count, + MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr) +{ + int c_ierr; + MPI_File c_fh = PMPI_File_f2c(*fh); + MPI_Datatype c_datatype, c_type = PMPI_Type_f2c(*datatype); + void *buf = x->base_addr; + int c_count = OMPI_FINT_2_INT(*count); + OMPI_FORTRAN_STATUS_DECLARATION(c_status,c_status2) + + OMPI_FORTRAN_STATUS_SET_POINTER(c_status,c_status2,status) + + OMPI_CFI_2_C(x, c_count, c_type, c_datatype, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_fh, c_ierr, FUNC_NAME) + return; + } + + c_ierr = PMPI_File_read_all(c_fh, OMPI_F2C_BOTTOM(buf), + c_count, + c_datatype, c_status); + + if (c_datatype != c_type) { + ompi_datatype_destroy(&c_datatype); + } + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + + OMPI_FORTRAN_STATUS_RETURN(c_status,c_status2,status,c_ierr) +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/file_read_at_all_begin_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/file_read_at_all_begin_ts.c new file mode 100644 index 00000000000..e25babd8fd0 --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/file_read_at_all_begin_ts.c @@ -0,0 +1,58 @@ +/* + * Copyright (c) 2004-2005 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) 2011-2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/file/file.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + +static const char FUNC_NAME[] = "MPI_File_read_at_all_begin"; + +void ompi_file_read_at_all_begin_ts(MPI_Fint *fh, MPI_Offset *offset, + CFI_cdesc_t *x, MPI_Fint *count, + MPI_Fint *datatype, MPI_Fint *ierr) +{ + int c_ierr; + MPI_File c_fh = PMPI_File_f2c(*fh); + MPI_Datatype c_datatype, c_type = PMPI_Type_f2c(*datatype); + void *buf = x->base_addr; + int c_count = OMPI_FINT_2_INT(*count); + + OMPI_CFI_2_C(x, c_count, c_type, c_datatype, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_fh, c_ierr, FUNC_NAME) + return; + } + + c_ierr = PMPI_File_read_at_all_begin(c_fh, + (MPI_Offset) *offset, + OMPI_F2C_BOTTOM(buf), + c_count, + c_datatype); + + if (c_datatype != c_type) { + ompi_datatype_destroy(&c_datatype); + } + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/file_read_at_all_end_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/file_read_at_all_end_ts.c new file mode 100644 index 00000000000..c73d5ea2ca9 --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/file_read_at_all_end_ts.c @@ -0,0 +1,45 @@ +/* + * Copyright (c) 2004-2005 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) 2011-2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2012 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/file/file.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/mpi/fortran/mpif-h/status-conversion.h" +#include "ompi/mpi/fortran/base/constants.h" + +void ompi_file_read_at_all_end_ts(MPI_Fint *fh, CFI_cdesc_t *x, + MPI_Fint *status, MPI_Fint *ierr) +{ + int c_ierr; + MPI_File c_fh = PMPI_File_f2c(*fh); + void *buf = x->base_addr; + OMPI_FORTRAN_STATUS_DECLARATION(c_status,c_status2) + + OMPI_FORTRAN_STATUS_SET_POINTER(c_status,c_status2,status) + + c_ierr = PMPI_File_read_at_all_end(c_fh, buf, c_status); + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + + OMPI_FORTRAN_STATUS_RETURN(c_status,c_status2,status,c_ierr) +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/file_read_at_all_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/file_read_at_all_ts.c new file mode 100644 index 00000000000..a04b7b3f173 --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/file_read_at_all_ts.c @@ -0,0 +1,67 @@ +/* + * Copyright (c) 2004-2005 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-2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2012 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/file/file.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/mpi/fortran/mpif-h/status-conversion.h" +#include "ompi/mpi/fortran/base/constants.h" + +static const char FUNC_NAME[] = "MPI_File_read_at_all"; + +void ompi_file_read_at_all_ts(MPI_Fint *fh, MPI_Offset *offset, + CFI_cdesc_t *x, MPI_Fint *count, + MPI_Fint *datatype, MPI_Fint *status, + MPI_Fint *ierr) +{ + int c_ierr; + MPI_File c_fh = PMPI_File_f2c(*fh); + MPI_Datatype c_datatype, c_type = PMPI_Type_f2c(*datatype); + void *buf = x->base_addr; + int c_count = OMPI_FINT_2_INT(*count); + OMPI_FORTRAN_STATUS_DECLARATION(c_status,c_status2) + + OMPI_CFI_2_C(x, c_count, c_type, c_datatype, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_fh, c_ierr, FUNC_NAME) + return; + } + + OMPI_FORTRAN_STATUS_SET_POINTER(c_status,c_status2,status) + + c_ierr = PMPI_File_read_at_all(c_fh, + (MPI_Offset) *offset, + OMPI_F2C_BOTTOM(buf), + c_count, + c_datatype, + c_status); + + if (c_datatype != c_type) { + ompi_datatype_destroy(&c_datatype); + } + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + + OMPI_FORTRAN_STATUS_RETURN(c_status,c_status2,status,c_ierr) +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/file_read_at_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/file_read_at_ts.c new file mode 100644 index 00000000000..9ee707e97b3 --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/file_read_at_ts.c @@ -0,0 +1,65 @@ +/* + * Copyright (c) 2004-2005 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-2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2012 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/file/file.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/mpi/fortran/mpif-h/status-conversion.h" +#include "ompi/mpi/fortran/base/constants.h" + +static const char FUNC_NAME[] = "MPI_File_read_at"; + +void ompi_file_read_at_ts(MPI_Fint *fh, MPI_Offset *offset, CFI_cdesc_t *x, + MPI_Fint *count, MPI_Fint *datatype, + MPI_Fint *status, MPI_Fint *ierr) +{ + int c_ierr; + MPI_File c_fh = PMPI_File_f2c(*fh); + MPI_Datatype c_datatype, c_type = PMPI_Type_f2c(*datatype); + void *buf = x->base_addr; + int c_count = OMPI_FINT_2_INT(*count); + OMPI_FORTRAN_STATUS_DECLARATION(c_status,c_status2) + + OMPI_CFI_2_C(x, c_count, c_type, c_datatype, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_fh, c_ierr, FUNC_NAME) + return; + } + + OMPI_FORTRAN_STATUS_SET_POINTER(c_status,c_status2,status) + + c_ierr = PMPI_File_read_at(c_fh, + (MPI_Offset) *offset, + buf, + c_count, + c_datatype, c_status); + + if (c_datatype != c_type) { + ompi_datatype_destroy(&c_datatype); + } + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + + OMPI_FORTRAN_STATUS_RETURN(c_status,c_status2,status,c_ierr) +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/file_read_ordered_begin_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/file_read_ordered_begin_ts.c new file mode 100644 index 00000000000..7bb46b7da16 --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/file_read_ordered_begin_ts.c @@ -0,0 +1,55 @@ +/* + * Copyright (c) 2004-2005 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) 2011-2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/file/file.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + +static const char FUNC_NAME[] = "MPI_File_read_ordered_begin"; + +void ompi_file_read_ordered_begin_ts(MPI_Fint *fh, CFI_cdesc_t *x, MPI_Fint *count, + MPI_Fint *datatype, MPI_Fint *ierr) +{ + int c_ierr; + MPI_File c_fh = PMPI_File_f2c(*fh); + MPI_Datatype c_datatype, c_type = PMPI_Type_f2c(*datatype); + void *buf = x->base_addr; + int c_count = OMPI_FINT_2_INT(*count); + + OMPI_CFI_2_C(x, c_count, c_type, c_datatype, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_fh, c_ierr, FUNC_NAME) + return; + } + + c_ierr = PMPI_File_read_ordered_begin(c_fh, OMPI_F2C_BOTTOM(buf), + c_count, + c_datatype); + + if (c_datatype != c_type) { + ompi_datatype_destroy(&c_datatype); + } + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/file_read_ordered_end_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/file_read_ordered_end_ts.c new file mode 100644 index 00000000000..a554dede8b8 --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/file_read_ordered_end_ts.c @@ -0,0 +1,45 @@ +/* + * Copyright (c) 2004-2005 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-2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2012 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/file/file.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/mpi/fortran/mpif-h/status-conversion.h" +#include "ompi/mpi/fortran/base/constants.h" + +void ompi_file_read_ordered_end_ts(MPI_Fint *fh, CFI_cdesc_t *x, + MPI_Fint *status, MPI_Fint *ierr) +{ + int c_ierr; + MPI_File c_fh = PMPI_File_f2c(*fh); + void *buf = x->base_addr; + OMPI_FORTRAN_STATUS_DECLARATION(c_status,c_status2) + + OMPI_FORTRAN_STATUS_SET_POINTER(c_status,c_status2,status) + + c_ierr = PMPI_File_read_ordered_end(c_fh, buf, c_status); + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + + OMPI_FORTRAN_STATUS_RETURN(c_status,c_status2,status,c_ierr) +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/file_read_ordered_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/file_read_ordered_ts.c new file mode 100644 index 00000000000..1fb26bce2ae --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/file_read_ordered_ts.c @@ -0,0 +1,65 @@ +/* + * Copyright (c) 2004-2005 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) 2011-2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2012 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/file/file.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/mpi/fortran/mpif-h/status-conversion.h" +#include "ompi/mpi/fortran/base/constants.h" + +static const char FUNC_NAME[] = "MPI_File_read_ordered"; + +void ompi_file_read_ordered_ts(MPI_Fint *fh, CFI_cdesc_t *x, MPI_Fint *count, + MPI_Fint *datatype, MPI_Fint *status, + MPI_Fint *ierr) +{ + int c_ierr; + MPI_File c_fh = PMPI_File_f2c(*fh); + MPI_Datatype c_datatype, c_type = PMPI_Type_f2c(*datatype); + void *buf = x->base_addr; + int c_count = OMPI_FINT_2_INT(*count); + OMPI_FORTRAN_STATUS_DECLARATION(c_status,c_status2) + + OMPI_CFI_2_C(x, c_count, c_type, c_datatype, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_fh, c_ierr, FUNC_NAME) + return; + } + + OMPI_FORTRAN_STATUS_SET_POINTER(c_status,c_status2,status) + + c_ierr = PMPI_File_read_ordered(c_fh, + OMPI_F2C_BOTTOM(buf), + c_count, + c_datatype, + c_status); + + if (c_datatype != c_type) { + ompi_datatype_destroy(&c_datatype); + } + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + + OMPI_FORTRAN_STATUS_RETURN(c_status,c_status2,status,c_ierr) +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/file_read_shared_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/file_read_shared_ts.c new file mode 100644 index 00000000000..ba769f1fcbc --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/file_read_shared_ts.c @@ -0,0 +1,65 @@ +/* + * Copyright (c) 2004-2005 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) 2011-2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2012 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/file/file.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/mpi/fortran/mpif-h/status-conversion.h" +#include "ompi/mpi/fortran/base/constants.h" + +static const char FUNC_NAME[] = "MPI_File_read_shared"; + +void ompi_file_read_shared_ts(MPI_Fint *fh, CFI_cdesc_t *x, MPI_Fint *count, + MPI_Fint *datatype, MPI_Fint *status, + MPI_Fint *ierr) +{ + int c_ierr; + MPI_File c_fh = PMPI_File_f2c(*fh); + MPI_Datatype c_datatype, c_type = PMPI_Type_f2c(*datatype); + void *buf = x->base_addr; + int c_count = OMPI_FINT_2_INT(*count); + OMPI_FORTRAN_STATUS_DECLARATION(c_status,c_status2) + + OMPI_CFI_2_C(x, c_count, c_type, c_datatype, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_fh, c_ierr, FUNC_NAME) + return; + } + + OMPI_FORTRAN_STATUS_SET_POINTER(c_status,c_status2,status) + + c_ierr = PMPI_File_read_shared(c_fh, + OMPI_F2C_BOTTOM(buf), + c_count, + c_datatype, + c_status); + + if (c_datatype != c_type) { + ompi_datatype_destroy(&c_datatype); + } + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + + OMPI_FORTRAN_STATUS_RETURN(c_status,c_status2,status,c_ierr) +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/file_read_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/file_read_ts.c new file mode 100644 index 00000000000..003d3eabb2f --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/file_read_ts.c @@ -0,0 +1,62 @@ +/* + * Copyright (c) 2004-2005 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-2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2012 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/file/file.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/mpi/fortran/mpif-h/status-conversion.h" +#include "ompi/mpi/fortran/base/constants.h" + +static const char FUNC_NAME[] = "MPI_File_read"; + +void ompi_file_read_ts(MPI_Fint *fh, CFI_cdesc_t *x, MPI_Fint *count, + MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr) +{ + int c_ierr; + MPI_File c_fh = PMPI_File_f2c(*fh); + MPI_Datatype c_datatype, c_type = PMPI_Type_f2c(*datatype); + void *buf = x->base_addr; + int c_count = OMPI_FINT_2_INT(*count); + OMPI_FORTRAN_STATUS_DECLARATION(c_status,c_status2) + + OMPI_CFI_2_C(x, c_count, c_type, c_datatype, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_fh, c_ierr, FUNC_NAME) + return; + } + + OMPI_FORTRAN_STATUS_SET_POINTER(c_status,c_status2,status) + + c_ierr = PMPI_File_read(c_fh, OMPI_F2C_BOTTOM(buf), + c_count, + c_datatype, c_status); + + if (c_datatype != c_type) { + ompi_datatype_destroy(&c_datatype); + } + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + + OMPI_FORTRAN_STATUS_RETURN(c_status,c_status2,status,c_ierr) +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/file_write_all_begin_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/file_write_all_begin_ts.c new file mode 100644 index 00000000000..ef5fefd346d --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/file_write_all_begin_ts.c @@ -0,0 +1,56 @@ +/* + * Copyright (c) 2004-2005 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) 2011-2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/file/file.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + +static const char FUNC_NAME[] = "MPI_File_write_all_begin"; + +void ompi_file_write_all_begin_ts(MPI_Fint *fh, CFI_cdesc_t *x, + MPI_Fint *count, MPI_Fint *datatype, + MPI_Fint *ierr) +{ + int c_ierr; + MPI_File c_fh = PMPI_File_f2c(*fh); + MPI_Datatype c_datatype, c_type = PMPI_Type_f2c(*datatype); + void *buf = x->base_addr; + int c_count = OMPI_FINT_2_INT(*count); + + OMPI_CFI_2_C(x, c_count, c_type, c_datatype, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_fh, c_ierr, FUNC_NAME) + return; + } + + c_ierr = PMPI_File_write_all_begin(c_fh, OMPI_F2C_BOTTOM(buf), + c_count, + c_datatype); + + if (c_datatype != c_type) { + ompi_datatype_destroy(&c_datatype); + } + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/file_write_all_end_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/file_write_all_end_ts.c new file mode 100644 index 00000000000..f0e23a1eb69 --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/file_write_all_end_ts.c @@ -0,0 +1,46 @@ +/* + * Copyright (c) 2004-2005 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) 2011-2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2012 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/file/file.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/mpi/fortran/mpif-h/status-conversion.h" +#include "ompi/mpi/fortran/base/constants.h" + +void ompi_file_write_all_end_ts(MPI_Fint *fh, CFI_cdesc_t *x, MPI_Fint *status, + MPI_Fint *ierr) +{ + int c_ierr; + void *buf = x->base_addr; + OMPI_FORTRAN_STATUS_DECLARATION(c_status,c_status2) + MPI_File c_fh = PMPI_File_f2c(*fh); + + OMPI_FORTRAN_STATUS_SET_POINTER(c_status,c_status2,status) + + c_ierr = PMPI_File_write_all_end(c_fh, buf, c_status); + + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + + OMPI_FORTRAN_STATUS_RETURN(c_status,c_status2,status,c_ierr) +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/file_write_all_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/file_write_all_ts.c new file mode 100644 index 00000000000..daabd56c39b --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/file_write_all_ts.c @@ -0,0 +1,62 @@ +/* + * Copyright (c) 2004-2005 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) 2011-2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2012 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/file/file.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/mpi/fortran/mpif-h/status-conversion.h" +#include "ompi/mpi/fortran/base/constants.h" + +static const char FUNC_NAME[] = "MPI_File_write_all"; + +void ompi_file_write_all_ts(MPI_Fint *fh, CFI_cdesc_t *x, MPI_Fint *count, + MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr) +{ + int c_ierr; + MPI_File c_fh = PMPI_File_f2c(*fh); + MPI_Datatype c_datatype, c_type = PMPI_Type_f2c(*datatype); + void *buf = x->base_addr; + int c_count = OMPI_FINT_2_INT(*count); + OMPI_FORTRAN_STATUS_DECLARATION(c_status,c_status2) + + OMPI_CFI_2_C(x, c_count, c_type, c_datatype, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_fh, c_ierr, FUNC_NAME) + return; + } + + OMPI_FORTRAN_STATUS_SET_POINTER(c_status,c_status2,status) + + c_ierr = PMPI_File_write_all(c_fh, OMPI_F2C_BOTTOM(buf), + c_count, + c_datatype, c_status); + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + + if (c_datatype != c_type) { + ompi_datatype_destroy(&c_datatype); + } + + OMPI_FORTRAN_STATUS_RETURN(c_status,c_status2,status,c_ierr) +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/file_write_at_all_begin_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/file_write_at_all_begin_ts.c new file mode 100644 index 00000000000..a9a42c1bc61 --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/file_write_at_all_begin_ts.c @@ -0,0 +1,59 @@ +/* + * Copyright (c) 2004-2005 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) 2011-2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/file/file.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + +static const char FUNC_NAME[] = "MPI_File_write_at_all_begin"; + +void ompi_file_write_at_all_begin_ts(MPI_Fint *fh, MPI_Offset *offset, + CFI_cdesc_t *x, MPI_Fint *count, + MPI_Fint *datatype, MPI_Fint *ierr) +{ + int c_ierr; + MPI_File c_fh = PMPI_File_f2c(*fh); + MPI_Datatype c_datatype, c_type = PMPI_Type_f2c(*datatype); + void *buf = x->base_addr; + int c_count = OMPI_FINT_2_INT(*count); + + OMPI_CFI_2_C(x, c_count, c_type, c_datatype, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_fh, c_ierr, FUNC_NAME) + return; + } + + + c_ierr = PMPI_File_write_at_all_begin(c_fh, + (MPI_Offset) *offset, + OMPI_F2C_BOTTOM(buf), + c_count, + c_datatype); + + if (c_datatype != c_type) { + ompi_datatype_destroy(&c_datatype); + } + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/file_write_at_all_end_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/file_write_at_all_end_ts.c new file mode 100644 index 00000000000..cb84356044c --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/file_write_at_all_end_ts.c @@ -0,0 +1,46 @@ +/* + * Copyright (c) 2004-2005 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) 2011-2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2012 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/file/file.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/mpi/fortran/mpif-h/status-conversion.h" +#include "ompi/mpi/fortran/base/constants.h" + +void ompi_file_write_at_all_end_ts(MPI_Fint *fh, CFI_cdesc_t *x, + MPI_Fint *status, MPI_Fint *ierr) +{ + int c_ierr; + MPI_File c_fh = PMPI_File_f2c(*fh); + void *buf = x->base_addr; + OMPI_FORTRAN_STATUS_DECLARATION(c_status,c_status2) + + OMPI_FORTRAN_STATUS_SET_POINTER(c_status,c_status2,status) + + c_ierr = PMPI_File_write_at_all_end(c_fh, buf, c_status); + + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + + OMPI_FORTRAN_STATUS_RETURN(c_status,c_status2,status,c_ierr) +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/file_write_at_all_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/file_write_at_all_ts.c new file mode 100644 index 00000000000..52f92ffd4f1 --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/file_write_at_all_ts.c @@ -0,0 +1,67 @@ +/* + * Copyright (c) 2004-2005 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) 2011-2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2012 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/file/file.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/mpi/fortran/mpif-h/status-conversion.h" +#include "ompi/mpi/fortran/base/constants.h" + +static const char FUNC_NAME[] = "MPI_File_write_at_all"; + +void ompi_file_write_at_all_ts(MPI_Fint *fh, MPI_Offset *offset, + CFI_cdesc_t *x, MPI_Fint *count, + MPI_Fint *datatype, MPI_Fint *status, + MPI_Fint *ierr) +{ + int c_ierr; + MPI_File c_fh = PMPI_File_f2c(*fh); + MPI_Datatype c_datatype, c_type = PMPI_Type_f2c(*datatype); + void *buf = x->base_addr; + int c_count = OMPI_FINT_2_INT(*count); + OMPI_FORTRAN_STATUS_DECLARATION(c_status,c_status2) + + OMPI_CFI_2_C(x, c_count, c_type, c_datatype, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_fh, c_ierr, FUNC_NAME) + return; + } + + OMPI_FORTRAN_STATUS_SET_POINTER(c_status,c_status2,status) + + c_ierr = PMPI_File_write_at_all(c_fh, + (MPI_Offset) *offset, + OMPI_F2C_BOTTOM(buf), + c_count, + c_datatype, + c_status); + + if (c_datatype != c_type) { + ompi_datatype_destroy(&c_datatype); + } + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + + OMPI_FORTRAN_STATUS_RETURN(c_status,c_status2,status,c_ierr) +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/file_write_at_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/file_write_at_ts.c new file mode 100644 index 00000000000..b0b51fff21c --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/file_write_at_ts.c @@ -0,0 +1,65 @@ +/* + * Copyright (c) 2004-2005 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) 2011-2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2012 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/file/file.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/mpi/fortran/mpif-h/status-conversion.h" +#include "ompi/mpi/fortran/base/constants.h" + +static const char FUNC_NAME[] = "MPI_File_write_at"; + +void ompi_file_write_at_ts(MPI_Fint *fh, MPI_Offset *offset, + CFI_cdesc_t *x, MPI_Fint *count, + MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr) +{ + int c_ierr; + MPI_File c_fh = PMPI_File_f2c(*fh); + MPI_Datatype c_datatype, c_type = PMPI_Type_f2c(*datatype); + void *buf = x->base_addr; + int c_count = OMPI_FINT_2_INT(*count); + OMPI_FORTRAN_STATUS_DECLARATION(c_status,c_status2) + + OMPI_CFI_2_C(x, c_count, c_type, c_datatype, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_fh, c_ierr, FUNC_NAME) + return; + } + + OMPI_FORTRAN_STATUS_SET_POINTER(c_status,c_status2,status) + + c_ierr = PMPI_File_write_at(c_fh, + (MPI_Offset) *offset, + OMPI_F2C_BOTTOM(buf), + c_count, + c_datatype, c_status); + + if (c_datatype != c_type) { + ompi_datatype_destroy(&c_datatype); + } + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + + OMPI_FORTRAN_STATUS_RETURN(c_status,c_status2,status,c_ierr) +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/file_write_ordered_begin_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/file_write_ordered_begin_ts.c new file mode 100644 index 00000000000..8e171e1771a --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/file_write_ordered_begin_ts.c @@ -0,0 +1,56 @@ +/* + * Copyright (c) 2004-2005 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) 2011-2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/file/file.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + +static const char FUNC_NAME[] = "MPI_File_write_ordered_begin"; + +void ompi_file_write_ordered_begin_ts(MPI_Fint *fh, CFI_cdesc_t *x, + MPI_Fint *count, MPI_Fint *datatype, + MPI_Fint *ierr) +{ + int c_ierr; + MPI_File c_fh = PMPI_File_f2c(*fh); + MPI_Datatype c_datatype, c_type = PMPI_Type_f2c(*datatype); + void *buf = x->base_addr; + int c_count = OMPI_FINT_2_INT(*count); + + OMPI_CFI_2_C(x, c_count, c_type, c_datatype, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_fh, c_ierr, FUNC_NAME) + return; + } + + c_ierr = PMPI_File_write_ordered_begin(c_fh, OMPI_F2C_BOTTOM(buf), + c_count, + c_datatype); + + if (c_datatype != c_type) { + ompi_datatype_destroy(&c_datatype); + } + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/file_write_ordered_end_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/file_write_ordered_end_ts.c new file mode 100644 index 00000000000..2da0deb0af1 --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/file_write_ordered_end_ts.c @@ -0,0 +1,46 @@ +/* + * Copyright (c) 2004-2005 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) 2011-2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2012 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/file/file.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/mpi/fortran/mpif-h/status-conversion.h" +#include "ompi/mpi/fortran/base/constants.h" + +void ompi_file_write_ordered_end_ts(MPI_Fint *fh, CFI_cdesc_t *x, + MPI_Fint *status, MPI_Fint *ierr) +{ + int c_ierr; + MPI_File c_fh = PMPI_File_f2c(*fh); + void *buf = x->base_addr; + OMPI_FORTRAN_STATUS_DECLARATION(c_status,c_status2) + + OMPI_FORTRAN_STATUS_SET_POINTER(c_status,c_status2,status) + + c_ierr = PMPI_File_write_ordered_end(c_fh, buf, c_status); + + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + + OMPI_FORTRAN_STATUS_RETURN(c_status,c_status2,status,c_ierr) +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/file_write_ordered_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/file_write_ordered_ts.c new file mode 100644 index 00000000000..cc045c37b24 --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/file_write_ordered_ts.c @@ -0,0 +1,65 @@ +/* + * Copyright (c) 2004-2005 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) 2011-2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2012 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/file/file.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/mpi/fortran/mpif-h/status-conversion.h" +#include "ompi/mpi/fortran/base/constants.h" + +static const char FUNC_NAME[] = "MPI_File_write_ordered"; + +void ompi_file_write_ordered_ts(MPI_Fint *fh, CFI_cdesc_t *x, MPI_Fint *count, + MPI_Fint *datatype, MPI_Fint *status, + MPI_Fint *ierr) +{ + int c_ierr; + MPI_File c_fh = PMPI_File_f2c(*fh); + MPI_Datatype c_datatype, c_type = PMPI_Type_f2c(*datatype); + void *buf = x->base_addr; + int c_count = OMPI_FINT_2_INT(*count); + OMPI_FORTRAN_STATUS_DECLARATION(c_status,c_status2) + + OMPI_CFI_2_C(x, c_count, c_type, c_datatype, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_fh, c_ierr, FUNC_NAME) + return; + } + + OMPI_FORTRAN_STATUS_SET_POINTER(c_status,c_status2,status) + + c_ierr = PMPI_File_write_ordered(c_fh, + OMPI_F2C_BOTTOM(buf), + c_count, + c_datatype, + c_status); + + if (c_datatype != c_type) { + ompi_datatype_destroy(&c_datatype); + } + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + + OMPI_FORTRAN_STATUS_RETURN(c_status,c_status2,status,c_ierr) +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/file_write_shared_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/file_write_shared_ts.c new file mode 100644 index 00000000000..ba83e1a6f72 --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/file_write_shared_ts.c @@ -0,0 +1,65 @@ +/* + * Copyright (c) 2004-2005 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) 2011-2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2012 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/file/file.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/mpi/fortran/mpif-h/status-conversion.h" +#include "ompi/mpi/fortran/base/constants.h" + +static const char FUNC_NAME[] = "MPI_File_write_shared"; + +void ompi_file_write_shared_ts(MPI_Fint *fh, CFI_cdesc_t *x, MPI_Fint *count, + MPI_Fint *datatype, MPI_Fint *status, + MPI_Fint *ierr) +{ + int c_ierr; + MPI_File c_fh = PMPI_File_f2c(*fh); + MPI_Datatype c_datatype, c_type = PMPI_Type_f2c(*datatype); + void *buf = x->base_addr; + int c_count = OMPI_FINT_2_INT(*count); + OMPI_FORTRAN_STATUS_DECLARATION(c_status,c_status2) + + OMPI_CFI_2_C(x, c_count, c_type, c_datatype, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_fh, c_ierr, FUNC_NAME) + return; + } + + OMPI_FORTRAN_STATUS_SET_POINTER(c_status,c_status2,status) + + c_ierr = PMPI_File_write_shared(c_fh, + OMPI_F2C_BOTTOM(buf), + c_count, + c_datatype, + c_status); + + if (c_datatype != c_type) { + ompi_datatype_destroy(&c_datatype); + } + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + + OMPI_FORTRAN_STATUS_RETURN(c_status,c_status2,status,c_ierr) +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/file_write_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/file_write_ts.c new file mode 100644 index 00000000000..29e0f818946 --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/file_write_ts.c @@ -0,0 +1,62 @@ +/* + * Copyright (c) 2004-2005 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) 2011-2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2012 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/file/file.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/mpi/fortran/mpif-h/status-conversion.h" +#include "ompi/mpi/fortran/base/constants.h" + +static const char FUNC_NAME[] = "MPI_File_write"; + +void ompi_file_write_ts(MPI_Fint *fh, CFI_cdesc_t *x, MPI_Fint *count, + MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr) +{ + int c_ierr; + MPI_File c_fh = PMPI_File_f2c(*fh); + MPI_Datatype c_datatype, c_type = PMPI_Type_f2c(*datatype); + void *buf = x->base_addr; + int c_count = OMPI_FINT_2_INT(*count); + OMPI_FORTRAN_STATUS_DECLARATION(c_status,c_status2) + + OMPI_CFI_2_C(x, c_count, c_type, c_datatype, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_fh, c_ierr, FUNC_NAME) + return; + } + + OMPI_FORTRAN_STATUS_SET_POINTER(c_status,c_status2,status) + + c_ierr = PMPI_File_write(c_fh, OMPI_F2C_BOTTOM(buf), + OMPI_FINT_2_INT(*count), + c_type, c_status); + + if (c_datatype != c_type) { + ompi_datatype_destroy(&c_datatype); + } + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + + OMPI_FORTRAN_STATUS_RETURN(c_status,c_status2,status,c_ierr) +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/free_mem_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/free_mem_ts.c new file mode 100644 index 00000000000..af159fac3b9 --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/free_mem_ts.c @@ -0,0 +1,40 @@ +/* + * Copyright (c) 2004-2005 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) 2011-2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/communicator/communicator.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" + +static const char FUNC_NAME[] = "MPI_Free_mem"; + +void ompi_free_mem_ts(CFI_cdesc_t *x, MPI_Fint *ierr) +{ + int c_ierr; + if (OMPI_CFI_IS_CONTIGUOUS(x)) { + c_ierr = PMPI_Free_mem(x->base_addr); + } else { + c_ierr = MPI_ERR_BUFFER; + OMPI_ERRHANDLER_INVOKE(MPI_COMM_SELF, c_ierr, FUNC_NAME); + } + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/gather_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/gather_ts.c new file mode 100644 index 00000000000..a50227d38e2 --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/gather_ts.c @@ -0,0 +1,112 @@ +/* + * Copyright (c) 2004-2005 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) 2011-2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/communicator/communicator.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + +static const char FUNC_NAME[] = "MPI_Gather"; + +void ompi_gather_ts(CFI_cdesc_t *x1, MPI_Fint *sendcount, MPI_Fint *sendtype, + CFI_cdesc_t *x2, MPI_Fint *recvcount, MPI_Fint *recvtype, + MPI_Fint *root, MPI_Fint *comm, MPI_Fint *ierr) +{ + int c_root, c_ierr; + MPI_Comm c_comm; + MPI_Datatype c_senddatatype = NULL, c_sendtype = NULL; + void *sendbuf = x1->base_addr; + int c_sendcount = 0, c_recvcount = 0; + MPI_Datatype c_recvtype = NULL, c_recvdatatype = NULL; + char *recvbuf = NULL; + + c_comm = PMPI_Comm_f2c(*comm); + c_root = OMPI_FINT_2_INT(*root); + + if (OMPI_COMM_IS_INTER(c_comm)) { + if (MPI_ROOT == c_root) { + c_recvtype = PMPI_Type_f2c(*recvtype); + c_recvcount = OMPI_FINT_2_INT(*recvcount); + OMPI_CFI_2_C_ALLOC(x2, recvbuf, c_recvcount, c_recvtype, c_recvdatatype, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME) + return; + } + } else if (MPI_PROC_NULL != c_root) { + c_sendtype = PMPI_Type_f2c(*sendtype); + c_sendcount = OMPI_FINT_2_INT(*sendcount); + OMPI_CFI_2_C(x1, c_sendcount, c_sendtype, c_senddatatype, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME) + return; + } + } + } else { + if (ompi_comm_rank(c_comm) == c_root) { + c_recvtype = PMPI_Type_f2c(*recvtype); + c_recvcount = OMPI_FINT_2_INT(*recvcount); + if (OMPI_IS_FORTRAN_IN_PLACE(sendbuf)) { + sendbuf = MPI_IN_PLACE; + OMPI_CFI_2_C_COPY(x2, recvbuf, c_recvcount, c_recvtype, c_recvdatatype, c_ierr); + } else { + OMPI_CFI_2_C_ALLOC(x2, recvbuf, c_recvcount, c_recvtype, c_recvdatatype, c_ierr); + } + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME) + return; + } + } + if (!OMPI_IS_FORTRAN_IN_PLACE(sendbuf)) { + c_sendtype = PMPI_Type_f2c(*sendtype); + c_sendcount = OMPI_FINT_2_INT(*sendcount); + OMPI_CFI_2_C(x1, c_sendcount, c_sendtype, c_senddatatype, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME) + return; + } + } + } + + sendbuf = (char *) OMPI_F2C_BOTTOM(sendbuf); + recvbuf = (char *) OMPI_F2C_BOTTOM(recvbuf); + + + c_ierr = PMPI_Gather(sendbuf, c_sendcount, + c_senddatatype, recvbuf, + c_recvcount, + c_recvdatatype, + c_root, + c_comm); + if (c_senddatatype != c_sendtype) { + ompi_datatype_destroy(&c_senddatatype); + } + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + if ((OMPI_COMM_IS_INTER(c_comm) && (MPI_ROOT == c_root)) || + (!OMPI_COMM_IS_INTER(c_comm) && (ompi_comm_rank(c_comm) == c_root))) { + OMPI_C_2_CFI_COPY(x2, recvbuf, c_recvcount, c_recvtype, c_recvdatatype, c_ierr); + } +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/gatherv_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/gatherv_ts.c new file mode 100644 index 00000000000..c5f63c9c73f --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/gatherv_ts.c @@ -0,0 +1,108 @@ +/* + * Copyright (c) 2004-2005 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) 2011-2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/communicator/communicator.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + +static const char FUNC_NAME[] = "MPI_Gatherv"; + +void ompi_gatherv_ts(CFI_cdesc_t *x1, MPI_Fint *sendcount, MPI_Fint *sendtype, + CFI_cdesc_t *x2, MPI_Fint *recvcounts, MPI_Fint *displs, + MPI_Fint *recvtype, MPI_Fint *root, MPI_Fint *comm, + MPI_Fint *ierr) +{ + int c_ierr; + MPI_Comm c_comm = PMPI_Comm_f2c(*comm); + int c_root = OMPI_FINT_2_INT(*root); + MPI_Datatype c_senddatatype = NULL, c_sendtype = NULL, c_recvtype = NULL; + int c_sendcount = 0; + char *sendbuf = x1->base_addr, *recvbuf = x2->base_addr; + OMPI_ARRAY_NAME_DECL(recvcounts); + OMPI_ARRAY_NAME_DECL(displs); + + if (OMPI_COMM_IS_INTER(c_comm)) { + if (MPI_ROOT == c_root) { + OMPI_COND_STATEMENT(int size = ompi_comm_remote_size(c_comm)); + c_recvtype = PMPI_Type_f2c(*recvtype); + OMPI_CFI_CHECK_CONTIGUOUS(x2, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME); + return; + } + OMPI_ARRAY_FINT_2_INT(recvcounts, size); + OMPI_ARRAY_FINT_2_INT(displs, size); + } else if (MPI_PROC_NULL != c_root) { + c_sendtype = PMPI_Type_f2c(*sendtype); + c_sendcount = OMPI_FINT_2_INT(*sendcount); + OMPI_CFI_2_C(x1, c_sendcount, c_sendtype, c_senddatatype, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME); + return; + } + } + } else { + if (ompi_comm_rank(c_comm) == c_root) { + OMPI_COND_STATEMENT(int size = ompi_comm_size(c_comm)); + c_recvtype = PMPI_Type_f2c(*recvtype); + OMPI_CFI_CHECK_CONTIGUOUS(x2, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME); + return; + } + OMPI_ARRAY_FINT_2_INT(recvcounts, size); + OMPI_ARRAY_FINT_2_INT(displs, size); + } + if (OMPI_IS_FORTRAN_IN_PLACE(sendbuf)) { + sendbuf = MPI_IN_PLACE; + } else { + c_sendtype = PMPI_Type_f2c(*sendtype); + c_sendcount = OMPI_FINT_2_INT(*sendcount); + OMPI_CFI_2_C(x1, c_sendcount, c_sendtype, c_senddatatype, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME); + return; + } + } + } + + sendbuf = (char *) OMPI_F2C_BOTTOM(sendbuf); + recvbuf = (char *) OMPI_F2C_BOTTOM(recvbuf); + + c_ierr = PMPI_Gatherv(sendbuf, c_sendcount, + c_senddatatype, recvbuf, + OMPI_ARRAY_NAME_CONVERT(recvcounts), + OMPI_ARRAY_NAME_CONVERT(displs), + c_recvtype, + c_root, + c_comm); + + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ARRAY_FINT_2_INT_CLEANUP(recvcounts); + OMPI_ARRAY_FINT_2_INT_CLEANUP(displs); +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/get_accumulate_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/get_accumulate_ts.c new file mode 100644 index 00000000000..bcf142d9191 --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/get_accumulate_ts.c @@ -0,0 +1,84 @@ +/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ +/* + * Copyright (c) 2004-2005 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) 2011-2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2014 Los Alamos National Security, LLC. All rights + * reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/win/win.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + +static const char FUNC_NAME[] = "MPI_Get_accumulate"; + +void ompi_get_accumulate_ts(CFI_cdesc_t *x1, MPI_Fint *origin_count, + MPI_Fint *origin_datatype, CFI_cdesc_t *x2, + MPI_Fint *result_count, MPI_Fint *result_datatype, + MPI_Fint *target_rank, MPI_Aint *target_disp, + MPI_Fint *target_count, MPI_Fint *target_datatype, + MPI_Fint *op, MPI_Fint *win, MPI_Fint *ierr) +{ + int c_ierr; + MPI_Datatype c_origin_datatype, c_origin_type = PMPI_Type_f2c(*origin_datatype); + MPI_Datatype c_result_datatype, c_result_type = PMPI_Type_f2c(*result_datatype); + MPI_Datatype c_target_datatype = PMPI_Type_f2c(*target_datatype); + MPI_Win c_win = PMPI_Win_f2c(*win); + MPI_Op c_op = PMPI_Op_f2c(*op); + char *origin_addr = x1->base_addr; + int c_origin_count = OMPI_INT_2_FINT(*origin_count); + char *result_addr = x2->base_addr; + int c_result_count = OMPI_INT_2_FINT(*result_count); + + OMPI_CFI_2_C(x1, c_origin_count, c_origin_type, c_origin_datatype, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_win, c_ierr, FUNC_NAME) + return; + } + OMPI_CFI_2_C(x2, c_result_count, c_result_type, c_result_datatype, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + if (c_origin_datatype != c_origin_type) { + ompi_datatype_destroy(&c_origin_datatype); + } + OMPI_ERRHANDLER_INVOKE(c_win, c_ierr, FUNC_NAME) + return; + } + c_ierr = PMPI_Get_accumulate(OMPI_F2C_BOTTOM(origin_addr), + c_origin_count, + c_origin_datatype, + OMPI_F2C_BOTTOM(result_addr), + c_result_count, + c_result_datatype, + OMPI_FINT_2_INT(*target_rank), + *target_disp, + OMPI_FINT_2_INT(*target_count), + c_target_datatype, c_op, c_win); + if (c_origin_datatype != c_origin_type) { + ompi_datatype_destroy(&c_origin_datatype); + } + if (c_result_datatype != c_result_type) { + ompi_datatype_destroy(&c_result_datatype); + } + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/get_address_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/get_address_ts.c new file mode 100644 index 00000000000..f7ef9cac269 --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/get_address_ts.c @@ -0,0 +1,40 @@ +/* + * Copyright (c) 2004-2005 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) 2011-2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + +static const char FUNC_NAME[] = "MPI_Get_address"; + +void ompi_get_address_ts(CFI_cdesc_t *x, MPI_Aint *address, MPI_Fint *ierr) +{ + int c_ierr; + MPI_Aint c_address; + + c_ierr = PMPI_Get_address(OMPI_F2C_BOTTOM(x->base_addr), &c_address); + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + + if (MPI_SUCCESS == c_ierr) { + *address = (MPI_Aint) c_address; + } +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/get_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/get_ts.c new file mode 100644 index 00000000000..8456b249a78 --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/get_ts.c @@ -0,0 +1,60 @@ +/* + * Copyright (c) 2004-2005 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) 2011-2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/win/win.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + +static const char FUNC_NAME[] = "MPI_Get"; + +void ompi_get_ts(CFI_cdesc_t *x, MPI_Fint *origin_count, + MPI_Fint *origin_datatype, MPI_Fint *target_rank, + MPI_Aint *target_disp, MPI_Fint *target_count, + MPI_Fint *target_datatype, MPI_Fint *win, MPI_Fint *ierr) +{ + int c_ierr; + MPI_Datatype c_origin_datatype, c_origin_type = PMPI_Type_f2c(*origin_datatype); + MPI_Datatype c_target_datatype = PMPI_Type_f2c(*target_datatype); + MPI_Win c_win = PMPI_Win_f2c(*win); + char *origin_addr = x->base_addr; + int c_origin_count = OMPI_INT_2_FINT(*origin_count); + + OMPI_CFI_2_C(x, c_origin_count, c_origin_type, c_origin_datatype, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_win, c_ierr, FUNC_NAME) + return; + } + c_ierr = PMPI_Get(OMPI_F2C_BOTTOM(origin_addr), + c_origin_count, + c_origin_datatype, + OMPI_FINT_2_INT(*target_rank), + *target_disp, + OMPI_FINT_2_INT(*target_count), + c_target_datatype, c_win); + if (c_origin_datatype != c_origin_type) { + ompi_datatype_destroy(&c_origin_datatype); + } + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/iallgather_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/iallgather_ts.c new file mode 100644 index 00000000000..2978b8ac71c --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/iallgather_ts.c @@ -0,0 +1,77 @@ +/* + * Copyright (c) 2004-2005 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) 2011-2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/communicator/communicator.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + +static const char FUNC_NAME[] = "MPI_Iallgather"; + +void ompi_iallgather_ts(CFI_cdesc_t* x1, MPI_Fint *sendcount, MPI_Fint *sendtype, + CFI_cdesc_t* x2, MPI_Fint *recvcount, MPI_Fint *recvtype, + MPI_Fint *comm, MPI_Fint *request, MPI_Fint *ierr) +{ + int c_ierr; + MPI_Comm c_comm = PMPI_Comm_f2c(*comm); + MPI_Request c_req; + MPI_Datatype c_sendtype = NULL, c_senddatatype = NULL; + void *sendbuf = x1->base_addr; + int c_sendcount = 0; + MPI_Datatype c_recvtype = PMPI_Type_f2c(*recvtype); + void *recvbuf = x2->base_addr; + int c_recvcount = OMPI_FINT_2_INT(*recvcount); + + OMPI_CFI_CHECK_CONTIGUOUS(x2, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME) + return; + } + if (OMPI_COMM_IS_INTER(c_comm) || !OMPI_IS_FORTRAN_IN_PLACE(sendbuf)) { + c_sendtype = PMPI_Type_f2c(*sendtype); + c_sendcount = OMPI_FINT_2_INT(*sendcount); + OMPI_CFI_2_C(x1, c_sendcount, c_sendtype, c_senddatatype, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME) + return; + } + } else { + sendbuf = MPI_IN_PLACE; + } + + sendbuf = (char *) OMPI_F2C_BOTTOM(sendbuf); + recvbuf = (char *) OMPI_F2C_BOTTOM(recvbuf); + + c_ierr = PMPI_Iallgather(sendbuf, c_sendcount, c_sendtype, + recvbuf, c_recvcount, c_recvtype, + c_comm, &c_req); + + if (c_senddatatype != c_sendtype && c_senddatatype != NULL) { + ompi_datatype_destroy(&c_senddatatype); + } + + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + if (MPI_SUCCESS == c_ierr) *request = PMPI_Request_c2f(c_req); +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/iallgatherv_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/iallgatherv_ts.c new file mode 100644 index 00000000000..650db804283 --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/iallgatherv_ts.c @@ -0,0 +1,103 @@ +/* + * Copyright (c) 2004-2005 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) 2011-2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/communicator/communicator.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + +static const char FUNC_NAME[] = "MPI_Iallgatherv"; + +void ompi_iallgatherv_ts(CFI_cdesc_t *x1, MPI_Fint *sendcount, MPI_Fint *sendtype, + CFI_cdesc_t *x2, MPI_Fint *recvcounts, MPI_Fint *displs, + MPI_Fint *recvtype, MPI_Fint *comm, MPI_Fint *request, MPI_Fint *ierr) +{ + int c_ierr; + MPI_Comm c_comm = PMPI_Comm_f2c(*comm); + int c_sendcount = 0; + MPI_Datatype c_sendtype = NULL, c_senddatatype = NULL; + MPI_Datatype c_recvtype = PMPI_Type_f2c(*recvtype); + char *sendbuf = x1->base_addr, *recvbuf = x2->base_addr; + MPI_Request c_request; + OMPI_COND_STATEMENT(int size); + OMPI_ARRAY_NAME_DECL(recvcounts); + OMPI_ARRAY_NAME_DECL(displs); + + OMPI_CFI_CHECK_CONTIGUOUS(x2, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME); + return; + } + if (OMPI_COMM_IS_INTER(c_comm)) { + OMPI_COND_STATEMENT(size = ompi_comm_remote_size(c_comm)); + c_sendtype = PMPI_Type_f2c(*sendtype); + c_sendcount = OMPI_FINT_2_INT(*sendcount); + OMPI_CFI_2_C(x1, c_sendcount, c_sendtype, c_senddatatype, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME); + return; + } + } else { + OMPI_COND_STATEMENT(size = ompi_comm_size(c_comm)); + if (OMPI_IS_FORTRAN_IN_PLACE(sendbuf)) { + sendbuf = MPI_IN_PLACE; + } else { + c_sendtype = PMPI_Type_f2c(*sendtype); + c_sendcount = OMPI_FINT_2_INT(*sendcount); + OMPI_CFI_2_C(x1, c_sendcount, c_sendtype, c_senddatatype, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME); + return; + } + } + } + + OMPI_ARRAY_FINT_2_INT(recvcounts, size); + OMPI_ARRAY_FINT_2_INT(displs, size); + + sendbuf = (char *) OMPI_F2C_BOTTOM(sendbuf); + recvbuf = (char *) OMPI_F2C_BOTTOM(recvbuf); + + OMPI_ARRAY_FINT_2_INT(recvcounts, size); + OMPI_ARRAY_FINT_2_INT(displs, size); + + c_ierr = PMPI_Iallgatherv(sendbuf, c_sendcount, c_sendtype, + recvbuf, + OMPI_ARRAY_NAME_CONVERT(recvcounts), + OMPI_ARRAY_NAME_CONVERT(displs), + c_recvtype, + c_comm, &c_request); + + if (c_senddatatype != c_sendtype && NULL != c_senddatatype) { + ompi_datatype_destroy(&c_senddatatype); + } + + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + if (MPI_SUCCESS == c_ierr) *request = PMPI_Request_c2f(c_request); + + OMPI_ARRAY_FINT_2_INT_CLEANUP(recvcounts); + OMPI_ARRAY_FINT_2_INT_CLEANUP(displs); +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/iallreduce_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/iallreduce_ts.c new file mode 100644 index 00000000000..d65f112f1ea --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/iallreduce_ts.c @@ -0,0 +1,67 @@ +/* + * Copyright (c) 2004-2005 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) 2011-2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/communicator/communicator.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + +static const char FUNC_NAME[] = "MPI_Iallreduce"; + +void ompi_iallreduce_ts(CFI_cdesc_t *x1, CFI_cdesc_t *x2, MPI_Fint *count, + MPI_Fint *datatype, MPI_Fint *op, MPI_Fint *comm, + MPI_Fint *request, MPI_Fint *ierr) +{ + int c_ierr; + int c_count = OMPI_FINT_2_INT(*count); + MPI_Comm c_comm = PMPI_Comm_f2c(*comm); + MPI_Datatype c_type; + MPI_Request c_request; + MPI_Op c_op; + char *sendbuf = x1->base_addr, *recvbuf = x2->base_addr; + + OMPI_CFI_CHECK_CONTIGUOUS(x1, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME); + return; + } + OMPI_CFI_CHECK_CONTIGUOUS(x2, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME); + return; + } + c_type = PMPI_Type_f2c(*datatype); + c_op = PMPI_Op_f2c(*op); + + sendbuf = (char *) OMPI_F2C_IN_PLACE(sendbuf); + sendbuf = (char *) OMPI_F2C_BOTTOM(sendbuf); + recvbuf = (char *) OMPI_F2C_BOTTOM(recvbuf); + + c_ierr = PMPI_Iallreduce(sendbuf, recvbuf, + c_count, + c_type, c_op, c_comm, &c_request); + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + if (MPI_SUCCESS == c_ierr) *request = PMPI_Request_c2f(c_request); +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/ialltoall_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/ialltoall_ts.c new file mode 100644 index 00000000000..e5c698f2f98 --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/ialltoall_ts.c @@ -0,0 +1,74 @@ +/* + * Copyright (c) 2004-2005 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) 2011-2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/communicator/communicator.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + +static const char FUNC_NAME[] = "MPI_Alltoall"; + +void ompi_ialltoall_ts(CFI_cdesc_t* x1, MPI_Fint *sendcount, MPI_Fint *sendtype, + CFI_cdesc_t* x2, MPI_Fint *recvcount, MPI_Fint *recvtype, + MPI_Fint *comm, MPI_Fint *request, MPI_Fint *ierr) +{ + int c_ierr; + MPI_Comm c_comm = PMPI_Comm_f2c(*comm); + MPI_Datatype c_sendtype = NULL, c_recvtype = PMPI_Type_f2c(*recvtype); + void *sendbuf = x1->base_addr, *recvbuf = x2->base_addr; + int c_sendcount = 0, c_recvcount = OMPI_FINT_2_INT(*recvcount); + MPI_Request c_request; + + if (OMPI_COMM_IS_INTER(c_comm) || !OMPI_IS_FORTRAN_IN_PLACE(sendbuf)) { + c_sendtype = PMPI_Type_f2c(*sendtype); + c_sendcount = OMPI_FINT_2_INT(*sendcount); + OMPI_CFI_CHECK_CONTIGUOUS(x1, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME) + return; + } + } else { + sendbuf = MPI_IN_PLACE; + } + + OMPI_CFI_CHECK_CONTIGUOUS(x2, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME) + return; + } + + sendbuf = (char *) OMPI_F2C_BOTTOM(sendbuf); + recvbuf = (char *) OMPI_F2C_BOTTOM(recvbuf); + + c_ierr = PMPI_Ialltoall(sendbuf, + c_sendcount, + c_sendtype, + recvbuf, + c_recvcount, + c_recvtype, c_comm, &c_request); + + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + if (MPI_SUCCESS == c_ierr) *request = PMPI_Request_c2f(c_request); +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/ialltoallv_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/ialltoallv_ts.c new file mode 100644 index 00000000000..732e41051ee --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/ialltoallv_ts.c @@ -0,0 +1,91 @@ +/* + * Copyright (c) 2004-2005 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) 2011-2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/communicator/communicator.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + +static const char FUNC_NAME[] = "MPI_Ialltoallv"; + +void ompi_ialltoallv_ts(CFI_cdesc_t *x1, MPI_Fint *sendcounts, MPI_Fint *sdispls, + MPI_Fint *sendtype, CFI_cdesc_t *x2, MPI_Fint *recvcounts, + MPI_Fint *rdispls, MPI_Fint *recvtype, + MPI_Fint *comm, MPI_Fint *request, MPI_Fint *ierr) +{ + int c_ierr; + MPI_Comm c_comm = PMPI_Comm_f2c(*comm); + char *sendbuf = x1->base_addr, *recvbuf = x2->base_addr; + MPI_Datatype c_sendtype = NULL, c_recvtype = PMPI_Type_f2c(*recvtype); + MPI_Request c_request; + OMPI_COND_STATEMENT(int size = OMPI_COMM_IS_INTER(c_comm)?ompi_comm_remote_size(c_comm):ompi_comm_size(c_comm)); + OMPI_ARRAY_NAME_DECL(sendcounts); + OMPI_ARRAY_NAME_DECL(sdispls); + OMPI_ARRAY_NAME_DECL(recvcounts); + OMPI_ARRAY_NAME_DECL(rdispls); + + if (OMPI_COMM_IS_INTER(c_comm) || !OMPI_IS_FORTRAN_IN_PLACE(sendbuf)) { + c_sendtype = PMPI_Type_f2c(*sendtype); + OMPI_CFI_CHECK_CONTIGUOUS(x1, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME) + return; + } + OMPI_ARRAY_FINT_2_INT(sendcounts, size); + OMPI_ARRAY_FINT_2_INT(sdispls, size); + } else { + sendbuf = MPI_IN_PLACE; + } + + OMPI_CFI_CHECK_CONTIGUOUS(x2, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME) + return; + } + + OMPI_ARRAY_FINT_2_INT(recvcounts, size); + OMPI_ARRAY_FINT_2_INT(rdispls, size); + + sendbuf = (char *) OMPI_F2C_BOTTOM(sendbuf); + recvbuf = (char *) OMPI_F2C_BOTTOM(recvbuf); + + c_ierr = PMPI_Ialltoallv(sendbuf, + OMPI_ARRAY_NAME_CONVERT(sendcounts), + OMPI_ARRAY_NAME_CONVERT(sdispls), + c_sendtype, + recvbuf, + OMPI_ARRAY_NAME_CONVERT(recvcounts), + OMPI_ARRAY_NAME_CONVERT(rdispls), + c_recvtype, c_comm, &c_request); + + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + if (MPI_SUCCESS == c_ierr) *request = PMPI_Request_c2f(c_request); + if (MPI_IN_PLACE == sendbuf) { + OMPI_ARRAY_FINT_2_INT_CLEANUP(sendcounts); + OMPI_ARRAY_FINT_2_INT_CLEANUP(sdispls); + } + OMPI_ARRAY_FINT_2_INT_CLEANUP(recvcounts); + OMPI_ARRAY_FINT_2_INT_CLEANUP(rdispls); +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/ialltoallw_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/ialltoallw_ts.c new file mode 100644 index 00000000000..1d13d3ce4d0 --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/ialltoallw_ts.c @@ -0,0 +1,100 @@ +/* + * Copyright (c) 2004-2005 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) 2011-2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/communicator/communicator.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + +static const char FUNC_NAME[] = "MPI_Ialltoallw"; + +void ompi_ialltoallw_ts(CFI_cdesc_t *x1, MPI_Fint *sendcounts, + MPI_Fint *sdispls, MPI_Fint *sendtypes, + CFI_cdesc_t *x2, MPI_Fint *recvcounts, + MPI_Fint *rdispls, MPI_Fint *recvtypes, + MPI_Fint *comm, MPI_Fint *request, MPI_Fint *ierr) +{ + MPI_Comm c_comm = PMPI_Comm_f2c(*comm); + MPI_Datatype *c_sendtypes = NULL, *c_recvtypes; + MPI_Request c_request; + int size, c_ierr; + char *sendbuf = x1->base_addr, *recvbuf = x2->base_addr; + OMPI_ARRAY_NAME_DECL(sendcounts); + OMPI_ARRAY_NAME_DECL(sdispls); + OMPI_ARRAY_NAME_DECL(recvcounts); + OMPI_ARRAY_NAME_DECL(rdispls); + + OMPI_CFI_CHECK_CONTIGUOUS(x1, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME); + return; + } + OMPI_CFI_CHECK_CONTIGUOUS(x2, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME); + return; + } + size = OMPI_COMM_IS_INTER(c_comm)?ompi_comm_remote_size(c_comm):ompi_comm_size(c_comm); + + if (!OMPI_IS_FORTRAN_IN_PLACE(sendbuf)) { + c_sendtypes = (MPI_Datatype *) malloc(size * sizeof(MPI_Datatype)); + OMPI_ARRAY_FINT_2_INT(sendcounts, size); + OMPI_ARRAY_FINT_2_INT(sdispls, size); + for (int i=0; ibase_addr; + int c_count = 0; + MPI_Request c_req; + + if (OMPI_COMM_IS_INTRA(c_comm) || MPI_PROC_NULL != c_root) { + c_type = PMPI_Type_f2c(*datatype); + c_count = OMPI_FINT_2_INT(*count); + OMPI_CFI_2_C(x, c_count, c_type, c_datatype, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME); + return; + } + } + + c_ierr = PMPI_Ibcast(OMPI_F2C_BOTTOM(buffer), + c_count, + c_datatype, + c_root, + c_comm, + &c_req); + + if (c_datatype != c_type) { + ompi_datatype_destroy(&c_datatype); + } + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + if (MPI_SUCCESS == c_ierr) *request = PMPI_Request_c2f(c_req); +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/ibsend_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/ibsend_ts.c new file mode 100644 index 00000000000..2da09cd76ed --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/ibsend_ts.c @@ -0,0 +1,62 @@ +/* + * Copyright (c) 2004-2005 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) 2011-2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/communicator/communicator.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + +static const char FUNC_NAME[] = "MPI_Ibsend"; + +void ompi_ibsend_ts(CFI_cdesc_t* x, MPI_Fint *count, MPI_Fint *datatype, + MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm, + MPI_Fint *request, MPI_Fint *ierr) +{ + int c_ierr; + MPI_Datatype c_datatype, c_type = PMPI_Type_f2c(*datatype); + MPI_Request c_req; + MPI_Comm c_comm = PMPI_Comm_f2c (*comm); + + void *buf = x->base_addr; + int c_count = OMPI_FINT_2_INT(*count); + + OMPI_CFI_2_C(x, c_count, c_type, c_datatype, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME); + return; + } + + c_ierr = PMPI_Ibsend(OMPI_F2C_BOTTOM(buf), c_count, + c_datatype, OMPI_FINT_2_INT(*dest), + OMPI_FINT_2_INT(*tag), + c_comm, &c_req); + if (c_datatype != c_type) { + ompi_datatype_destroy(&c_datatype); + } + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + + if (MPI_SUCCESS == c_ierr) { + *request = PMPI_Request_c2f(c_req); + } +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/iexscan_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/iexscan_ts.c new file mode 100644 index 00000000000..21afcdb8b00 --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/iexscan_ts.c @@ -0,0 +1,66 @@ +/* + * Copyright (c) 2004-2005 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) 2011-2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/communicator/communicator.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + +static const char FUNC_NAME[] = "MPI_Iexscan"; + +void ompi_iexscan_ts(CFI_cdesc_t *x1, CFI_cdesc_t *x2, MPI_Fint *count, + MPI_Fint *datatype, MPI_Fint *op, MPI_Fint *comm, + MPI_Fint *request, MPI_Fint *ierr) +{ + int c_ierr; + MPI_Comm c_comm = PMPI_Comm_f2c(*comm); + MPI_Datatype c_type; + MPI_Request c_request; + MPI_Op c_op; + char *sendbuf = x1->base_addr, *recvbuf = x2->base_addr; + + OMPI_CFI_CHECK_CONTIGUOUS(x1, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME); + return; + } + OMPI_CFI_CHECK_CONTIGUOUS(x2, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME); + return; + } + c_type = PMPI_Type_f2c(*datatype); + c_op = PMPI_Op_f2c(*op); + + sendbuf = (char *) OMPI_F2C_IN_PLACE(sendbuf); + sendbuf = (char *) OMPI_F2C_BOTTOM (sendbuf); + recvbuf = (char *) OMPI_F2C_BOTTOM (recvbuf); + + c_ierr = PMPI_Iexscan(sendbuf, recvbuf, + OMPI_FINT_2_INT(*count), + c_type, c_op, c_comm, &c_request); + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + if (MPI_SUCCESS == c_ierr) *request = PMPI_Request_c2f(c_request); +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/igather_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/igather_ts.c new file mode 100644 index 00000000000..de43fa68e50 --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/igather_ts.c @@ -0,0 +1,101 @@ +/* + * Copyright (c) 2004-2005 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) 2011-2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/communicator/communicator.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + +static const char FUNC_NAME[] = "MPI_Igather"; + +void ompi_igather_ts(CFI_cdesc_t *x1, MPI_Fint *sendcount, MPI_Fint *sendtype, + CFI_cdesc_t *x2, MPI_Fint *recvcount, MPI_Fint *recvtype, + MPI_Fint *root, MPI_Fint *comm, MPI_Fint *request, + MPI_Fint *ierr) +{ + int c_ierr; + MPI_Comm c_comm = PMPI_Comm_f2c(*comm); + int c_root = OMPI_FINT_2_INT(*root); + MPI_Datatype c_senddatatype = NULL, c_sendtype = NULL, c_recvtype = NULL; + int c_sendcount = 0, c_recvcount = 0; + char *sendbuf = x1->base_addr, *recvbuf = x2->base_addr; + MPI_Request c_request; + + if (OMPI_COMM_IS_INTER(c_comm)) { + if (MPI_ROOT == c_root) { + c_recvtype = PMPI_Type_f2c(*recvtype); + c_recvcount = OMPI_FINT_2_INT(*recvcount); + OMPI_CFI_CHECK_CONTIGUOUS(x2, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME); + return; + } + } else if (MPI_PROC_NULL != c_root) { + c_sendtype = PMPI_Type_f2c(*sendtype); + c_sendcount = OMPI_FINT_2_INT(*sendcount); + OMPI_CFI_2_C(x1, c_sendcount, c_sendtype, c_senddatatype, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME); + return; + } + } + } else { + if (ompi_comm_rank(c_comm) == c_root) { + c_recvtype = PMPI_Type_f2c(*recvtype); + c_recvcount = OMPI_FINT_2_INT(*recvcount); + OMPI_CFI_CHECK_CONTIGUOUS(x2, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME); + return; + } + } + if (OMPI_IS_FORTRAN_IN_PLACE(sendbuf)) { + sendbuf = MPI_IN_PLACE; + } else { + c_sendtype = PMPI_Type_f2c(*sendtype); + c_sendcount = OMPI_FINT_2_INT(*sendcount); + OMPI_CFI_2_C(x1, c_sendcount, c_sendtype, c_senddatatype, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME); + return; + } + } + } + + sendbuf = (char *) OMPI_F2C_BOTTOM(sendbuf); + recvbuf = (char *) OMPI_F2C_BOTTOM(recvbuf); + + c_ierr = PMPI_Igather(sendbuf, c_sendcount, + c_senddatatype, recvbuf, + c_recvcount, + c_recvtype, + c_root, + c_comm, &c_request); + + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + if (MPI_SUCCESS == c_ierr) *request = PMPI_Request_c2f(c_request); +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/igatherv_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/igatherv_ts.c new file mode 100644 index 00000000000..aefdd02c668 --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/igatherv_ts.c @@ -0,0 +1,108 @@ +/* + * Copyright (c) 2004-2005 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) 2011-2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/communicator/communicator.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + +static const char FUNC_NAME[] = "MPI_Igatherv"; + +void ompi_igatherv_ts(CFI_cdesc_t *x1, MPI_Fint *sendcount, MPI_Fint *sendtype, + CFI_cdesc_t *x2, MPI_Fint *recvcounts, MPI_Fint *displs, + MPI_Fint *recvtype, MPI_Fint *root, MPI_Fint *comm, + MPI_Fint *request, MPI_Fint *ierr) +{ + + int c_ierr; + MPI_Comm c_comm = PMPI_Comm_f2c(*comm); + int c_root = OMPI_FINT_2_INT(*root); + MPI_Datatype c_senddatatype = NULL, c_sendtype = NULL, c_recvtype = NULL; + int c_sendcount = 0; + char *sendbuf = x1->base_addr, *recvbuf = x2->base_addr; + MPI_Request c_request; + OMPI_ARRAY_NAME_DECL(recvcounts); + OMPI_ARRAY_NAME_DECL(displs); + + if (OMPI_COMM_IS_INTER(c_comm)) { + if (MPI_ROOT == c_root) { + OMPI_COND_STATEMENT(int size = ompi_comm_remote_size(c_comm)); + c_recvtype = PMPI_Type_f2c(*recvtype); + OMPI_CFI_CHECK_CONTIGUOUS(x2, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME); + return; + } + OMPI_ARRAY_FINT_2_INT(recvcounts, size); + OMPI_ARRAY_FINT_2_INT(displs, size); + } else if (MPI_PROC_NULL != c_root) { + c_sendtype = PMPI_Type_f2c(*sendtype); + c_sendcount = OMPI_FINT_2_INT(*sendcount); + OMPI_CFI_2_C(x1, c_sendcount, c_sendtype, c_senddatatype, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME); + return; + } + } + } else { + if (ompi_comm_rank(c_comm) == c_root) { + OMPI_COND_STATEMENT(int size = ompi_comm_size(c_comm)); + c_recvtype = PMPI_Type_f2c(*recvtype); + OMPI_CFI_CHECK_CONTIGUOUS(x2, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME); + return; + } + OMPI_ARRAY_FINT_2_INT(recvcounts, size); + OMPI_ARRAY_FINT_2_INT(displs, size); + } + if (OMPI_IS_FORTRAN_IN_PLACE(sendbuf)) { + sendbuf = MPI_IN_PLACE; + } else { + c_sendtype = PMPI_Type_f2c(*sendtype); + c_sendcount = OMPI_FINT_2_INT(*sendcount); + OMPI_CFI_2_C(x1, c_sendcount, c_sendtype, c_senddatatype, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME); + return; + } + } + } + + sendbuf = (char *) OMPI_F2C_BOTTOM(sendbuf); + recvbuf = (char *) OMPI_F2C_BOTTOM(recvbuf); + + c_ierr = PMPI_Igatherv(sendbuf, c_sendcount, + c_senddatatype, recvbuf, + OMPI_ARRAY_NAME_CONVERT(recvcounts), + OMPI_ARRAY_NAME_CONVERT(displs), + c_recvtype, + c_root, + c_comm, &c_request); + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + if (MPI_SUCCESS == c_ierr) *request = PMPI_Request_c2f(c_request); +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/imrecv_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/imrecv_ts.c new file mode 100644 index 00000000000..10de6e71e6d --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/imrecv_ts.c @@ -0,0 +1,63 @@ +/* + * Copyright (c) 2004-2005 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) 2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * Copyright (c) 2015 FUJITSU LIMITED. All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/communicator/communicator.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + +static const char FUNC_NAME[] = "MPI_Imrecv"; + +void ompi_imrecv_ts(CFI_cdesc_t* x, MPI_Fint *count, MPI_Fint *datatype, + MPI_Fint *message, MPI_Fint *request, MPI_Fint *ierr) +{ + int c_ierr; + MPI_Datatype c_datatype, c_type = PMPI_Type_f2c(*datatype); + MPI_Request c_req; + MPI_Message c_message; + void *buf = x->base_addr; + int c_count = OMPI_FINT_2_INT(*count); + + c_message = PMPI_Message_f2c(*message); + + OMPI_CFI_2_C(x, c_count, c_type, c_datatype, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(MPI_COMM_SELF, c_ierr, FUNC_NAME); + return; + } + + c_ierr = PMPI_Imrecv(OMPI_F2C_BOTTOM(buf), c_count, + c_datatype, &c_message, &c_req); + if (c_datatype != c_type) { + ompi_datatype_destroy(&c_datatype); + } + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + + if (MPI_SUCCESS == c_ierr) { + *request = PMPI_Request_c2f(c_req); + /* message is an INOUT, and may be updated by the recv */ + *message = PMPI_Message_c2f(c_message); + } +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/ineighbor_allgather_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/ineighbor_allgather_ts.c new file mode 100644 index 00000000000..e4440d07b82 --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/ineighbor_allgather_ts.c @@ -0,0 +1,76 @@ +/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ +/* + * Copyright (c) 2004-2005 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) 2011-2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2013 Los Alamos National Security, LLC. All rights + * reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/communicator/communicator.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + +static const char FUNC_NAME[] = "MPI_Ineighbor_allgather"; + +void ompi_ineighbor_allgather_ts(CFI_cdesc_t *x1, MPI_Fint *sendcount, MPI_Fint *sendtype, + CFI_cdesc_t *x2, MPI_Fint *recvcount, MPI_Fint *recvtype, + MPI_Fint *comm, MPI_Fint *request, MPI_Fint *ierr) +{ + int c_ierr; + MPI_Comm c_comm = PMPI_Comm_f2c(*comm); + char *sendbuf = x1->base_addr, *recvbuf = x2->base_addr; + MPI_Datatype c_senddatatype, c_sendtype = PMPI_Type_f2c(*sendtype); + int c_sendcount = OMPI_FINT_2_INT(*sendcount); + MPI_Datatype c_recvtype = PMPI_Type_f2c(*recvtype); + MPI_Request c_req; + + OMPI_CFI_CHECK_CONTIGUOUS(x2, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME); + return; + } + OMPI_CFI_2_C(x1, c_sendcount, c_sendtype, c_senddatatype, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME); + return; + } + + c_sendtype = PMPI_Type_f2c(*sendtype); + c_recvtype = PMPI_Type_f2c(*recvtype); + + sendbuf = (char *) OMPI_F2C_IN_PLACE(sendbuf); + sendbuf = (char *) OMPI_F2C_BOTTOM(sendbuf); + recvbuf = (char *) OMPI_F2C_BOTTOM(recvbuf); + + c_ierr = PMPI_Ineighbor_allgather(sendbuf, + OMPI_FINT_2_INT(*sendcount), + c_sendtype, + recvbuf, + OMPI_FINT_2_INT(*recvcount), + c_recvtype, c_comm, &c_req); + + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + + if (MPI_SUCCESS == c_ierr) *request = PMPI_Request_c2f(c_req); +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/ineighbor_allgatherv_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/ineighbor_allgatherv_ts.c new file mode 100644 index 00000000000..48f876a0017 --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/ineighbor_allgatherv_ts.c @@ -0,0 +1,85 @@ +/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ +/* + * Copyright (c) 2004-2005 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) 2011-2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2013 Los Alamos National Security, LLC. All rights + * reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/communicator/communicator.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + +static const char FUNC_NAME[] = "MPI_Ineighbor_allgatherv"; + +void ompi_ineighbor_allgatherv_ts(CFI_cdesc_t *x1, MPI_Fint *sendcount, MPI_Fint *sendtype, + CFI_cdesc_t *x2, MPI_Fint *recvcounts, MPI_Fint *displs, + MPI_Fint *recvtype, MPI_Fint *comm, MPI_Fint *request, + MPI_Fint *ierr) +{ + MPI_Comm c_comm = PMPI_Comm_f2c(*comm); + MPI_Datatype c_senddatatype, c_sendtype = PMPI_Type_f2c(*sendtype); + char *sendbuf = x1->base_addr, *recvbuf = x2->base_addr; + int c_sendcount = OMPI_FINT_2_INT(*sendcount); + MPI_Datatype c_recvtype = PMPI_Type_f2c(*recvtype); + MPI_Request c_request; + int size, c_ierr; + OMPI_ARRAY_NAME_DECL(recvcounts); + OMPI_ARRAY_NAME_DECL(displs); + + OMPI_CFI_CHECK_CONTIGUOUS(x2, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME); + return; + } + OMPI_CFI_2_C(x1, c_sendcount, c_sendtype, c_senddatatype, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME); + return; + } + c_sendtype = PMPI_Type_f2c(*sendtype); + c_recvtype = PMPI_Type_f2c(*recvtype); + + PMPI_Comm_size(c_comm, &size); + OMPI_ARRAY_FINT_2_INT(recvcounts, size); + OMPI_ARRAY_FINT_2_INT(displs, size); + + sendbuf = (char *) OMPI_F2C_IN_PLACE(sendbuf); + sendbuf = (char *) OMPI_F2C_BOTTOM(sendbuf); + recvbuf = (char *) OMPI_F2C_BOTTOM(recvbuf); + + c_ierr = PMPI_Ineighbor_allgatherv(sendbuf, + c_sendcount, + c_sendtype, + recvbuf, + OMPI_ARRAY_NAME_CONVERT(recvcounts), + OMPI_ARRAY_NAME_CONVERT(displs), + c_recvtype, c_comm, &c_request); + + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + if (MPI_SUCCESS == c_ierr) *request = PMPI_Request_c2f(c_request); + + OMPI_ARRAY_FINT_2_INT_CLEANUP(recvcounts); + OMPI_ARRAY_FINT_2_INT_CLEANUP(displs); +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/ineighbor_alltoall_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/ineighbor_alltoall_ts.c new file mode 100644 index 00000000000..8bcce8e4110 --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/ineighbor_alltoall_ts.c @@ -0,0 +1,73 @@ +/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ +/* + * Copyright (c) 2004-2005 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) 2011-2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2013 Los Alamos National Security, LLC. All rights + * reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/communicator/communicator.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + +static const char FUNC_NAME[] = "MPI_Ineighbor_alltoall"; + +void ompi_ineighbor_alltoall_ts(CFI_cdesc_t *x1, MPI_Fint *sendcount, MPI_Fint *sendtype, + CFI_cdesc_t *x2, MPI_Fint *recvcount, MPI_Fint *recvtype, + MPI_Fint *comm, MPI_Fint *request, MPI_Fint *ierr) +{ + int c_ierr; + MPI_Comm c_comm = PMPI_Comm_f2c(*comm); + MPI_Request c_req; + MPI_Datatype c_sendtype, c_recvtype; + char *sendbuf = x1->base_addr, *recvbuf = x2->base_addr; + + OMPI_CFI_CHECK_CONTIGUOUS(x1, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME); + return; + } + OMPI_CFI_CHECK_CONTIGUOUS(x2, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME); + return; + } + + c_sendtype = PMPI_Type_f2c(*sendtype); + c_recvtype = PMPI_Type_f2c(*recvtype); + + sendbuf = (char *) OMPI_F2C_IN_PLACE(sendbuf); + sendbuf = (char *) OMPI_F2C_BOTTOM(sendbuf); + recvbuf = (char *) OMPI_F2C_BOTTOM(recvbuf); + + c_ierr = PMPI_Ineighbor_alltoall(sendbuf, + OMPI_FINT_2_INT(*sendcount), + c_sendtype, + recvbuf, + OMPI_FINT_2_INT(*recvcount), + c_recvtype, c_comm, &c_req); + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + + if (MPI_SUCCESS == c_ierr) *request = PMPI_Request_c2f(c_req); +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/ineighbor_alltoallv_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/ineighbor_alltoallv_ts.c new file mode 100644 index 00000000000..fd8714a7f7e --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/ineighbor_alltoallv_ts.c @@ -0,0 +1,90 @@ +/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ +/* + * Copyright (c) 2004-2005 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) 2011-2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2013 Los Alamos National Security, LLC. All rights + * reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/communicator/communicator.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + +static const char FUNC_NAME[] = "MPI_Ineighbor_alltoallv"; + +void ompi_ineighbor_alltoallv_ts(CFI_cdesc_t *x1, MPI_Fint *sendcounts, MPI_Fint *sdispls, + MPI_Fint *sendtype, CFI_cdesc_t *x2, MPI_Fint *recvcounts, + MPI_Fint *rdispls, MPI_Fint *recvtype, + MPI_Fint *comm, MPI_Fint *request, MPI_Fint *ierr) +{ + MPI_Comm c_comm = PMPI_Comm_f2c(*comm); + MPI_Datatype c_sendtype, c_recvtype; + MPI_Request c_request; + int size, c_ierr; + char *sendbuf = x1->base_addr, *recvbuf = x2->base_addr; + OMPI_ARRAY_NAME_DECL(sendcounts); + OMPI_ARRAY_NAME_DECL(sdispls); + OMPI_ARRAY_NAME_DECL(recvcounts); + OMPI_ARRAY_NAME_DECL(rdispls); + + OMPI_CFI_CHECK_CONTIGUOUS(x1, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME); + return; + } + OMPI_CFI_CHECK_CONTIGUOUS(x2, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME); + return; + } + + c_sendtype = PMPI_Type_f2c(*sendtype); + c_recvtype = PMPI_Type_f2c(*recvtype); + + PMPI_Comm_size(c_comm, &size); + OMPI_ARRAY_FINT_2_INT(sendcounts, size); + OMPI_ARRAY_FINT_2_INT(sdispls, size); + OMPI_ARRAY_FINT_2_INT(recvcounts, size); + OMPI_ARRAY_FINT_2_INT(rdispls, size); + + sendbuf = (char *) OMPI_F2C_IN_PLACE(sendbuf); + sendbuf = (char *) OMPI_F2C_BOTTOM(sendbuf); + recvbuf = (char *) OMPI_F2C_BOTTOM(recvbuf); + + c_ierr = PMPI_Ineighbor_alltoallv(sendbuf, + OMPI_ARRAY_NAME_CONVERT(sendcounts), + OMPI_ARRAY_NAME_CONVERT(sdispls), + c_sendtype, + recvbuf, + OMPI_ARRAY_NAME_CONVERT(recvcounts), + OMPI_ARRAY_NAME_CONVERT(rdispls), + c_recvtype, c_comm, &c_request); + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + if (MPI_SUCCESS == c_ierr) *request = PMPI_Request_c2f(c_request); + + OMPI_ARRAY_FINT_2_INT_CLEANUP(sendcounts); + OMPI_ARRAY_FINT_2_INT_CLEANUP(sdispls); + OMPI_ARRAY_FINT_2_INT_CLEANUP(recvcounts); + OMPI_ARRAY_FINT_2_INT_CLEANUP(rdispls); +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/ineighbor_alltoallw_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/ineighbor_alltoallw_ts.c new file mode 100644 index 00000000000..1d400f0e54a --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/ineighbor_alltoallw_ts.c @@ -0,0 +1,93 @@ +/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ +/* + * Copyright (c) 2004-2005 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) 2011-2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2013 Los Alamos National Security, LLC. All rights + * reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/communicator/communicator.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + +static const char FUNC_NAME[] = "MPI_Ineighbor_alltoallw"; + +void ompi_ineighbor_alltoallw_ts(CFI_cdesc_t *x1, MPI_Fint *sendcounts, + MPI_Aint *sdispls, MPI_Fint *sendtypes, + CFI_cdesc_t *x2, MPI_Fint *recvcounts, + MPI_Aint *rdispls, MPI_Fint *recvtypes, + MPI_Fint *comm, MPI_Fint *request, MPI_Fint *ierr) +{ + MPI_Comm c_comm = PMPI_Comm_f2c(*comm); + MPI_Datatype *c_sendtypes, *c_recvtypes; + MPI_Request c_request; + int size, c_ierr; + char *sendbuf = x1->base_addr, *recvbuf = x2->base_addr; + OMPI_ARRAY_NAME_DECL(sendcounts); + OMPI_ARRAY_NAME_DECL(recvcounts); + + OMPI_CFI_CHECK_CONTIGUOUS(x1, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME); + return; + } + OMPI_CFI_CHECK_CONTIGUOUS(x2, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME); + return; + } + PMPI_Comm_size(c_comm, &size); + + c_sendtypes = (MPI_Datatype *) malloc(size * sizeof(MPI_Datatype)); + c_recvtypes = (MPI_Datatype *) malloc(size * sizeof(MPI_Datatype)); + + OMPI_ARRAY_FINT_2_INT(sendcounts, size); + OMPI_ARRAY_FINT_2_INT(recvcounts, size); + + while (size > 0) { + c_sendtypes[size - 1] = PMPI_Type_f2c(sendtypes[size - 1]); + c_recvtypes[size - 1] = PMPI_Type_f2c(recvtypes[size - 1]); + --size; + } + + /* Ineighbor_alltoallw does not support MPI_IN_PLACE */ + sendbuf = (char *) OMPI_F2C_BOTTOM(sendbuf); + recvbuf = (char *) OMPI_F2C_BOTTOM(recvbuf); + + c_ierr = PMPI_Ineighbor_alltoallw(sendbuf, + OMPI_ARRAY_NAME_CONVERT(sendcounts), + sdispls, + c_sendtypes, + recvbuf, + OMPI_ARRAY_NAME_CONVERT(recvcounts), + rdispls, + c_recvtypes, c_comm, &c_request); + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + if (MPI_SUCCESS == c_ierr) *request = PMPI_Request_c2f(c_request); + + OMPI_ARRAY_FINT_2_INT_CLEANUP(sendcounts); + OMPI_ARRAY_FINT_2_INT_CLEANUP(recvcounts); + free(c_sendtypes); + free(c_recvtypes); +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/irecv_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/irecv_ts.c new file mode 100644 index 00000000000..35afc648dee --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/irecv_ts.c @@ -0,0 +1,61 @@ +/* + * Copyright (c) 2004-2005 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) 2011-2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/communicator/communicator.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + +static const char FUNC_NAME[] = "MPI_Irecv"; + +void ompi_irecv_ts(CFI_cdesc_t* x, MPI_Fint *count, MPI_Fint *datatype, + MPI_Fint *source, MPI_Fint *tag, MPI_Fint *comm, + MPI_Fint *request, MPI_Fint *ierr) +{ + int c_ierr; + MPI_Datatype c_datatype, c_type = PMPI_Type_f2c(*datatype); + MPI_Request c_req; + MPI_Comm c_comm = PMPI_Comm_f2c (*comm); + void *buf = x->base_addr; + int c_count = OMPI_FINT_2_INT(*count); + + OMPI_CFI_2_C(x, c_count, c_type, c_datatype, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME); + return; + } + + c_ierr = PMPI_Irecv(OMPI_F2C_BOTTOM(buf), c_count, + c_datatype, OMPI_FINT_2_INT(*source), + OMPI_FINT_2_INT(*tag), c_comm, &c_req); + if (c_datatype != c_type) { + ompi_datatype_destroy(&c_datatype); + } + + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + + if (MPI_SUCCESS == c_ierr) { + *request = PMPI_Request_c2f(c_req); + } +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/ireduce_scatter_block_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/ireduce_scatter_block_ts.c new file mode 100644 index 00000000000..9cd47a74a17 --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/ireduce_scatter_block_ts.c @@ -0,0 +1,71 @@ +/* + * Copyright (c) 2004-2005 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) 2011-2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/communicator/communicator.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + +static const char FUNC_NAME[] = "MPI_Ireduce_scatter_block"; + +void ompi_ireduce_scatter_block_ts(CFI_cdesc_t *x1, CFI_cdesc_t *x2, + MPI_Fint *recvcount, MPI_Fint *datatype, + MPI_Fint *op, MPI_Fint *comm, + MPI_Fint *request, MPI_Fint *ierr) +{ + int c_ierr; + MPI_Comm c_comm = PMPI_Comm_f2c(*comm); + MPI_Datatype c_type; + MPI_Request c_request; + MPI_Op c_op; + int size; + char *sendbuf = x1->base_addr, *recvbuf = x2->base_addr; + + OMPI_CFI_CHECK_CONTIGUOUS(x1, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME); + return; + } + OMPI_CFI_CHECK_CONTIGUOUS(x2, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME); + return; + } + + c_type = PMPI_Type_f2c(*datatype); + c_op = PMPI_Op_f2c(*op); + + PMPI_Comm_size(c_comm, &size); + + sendbuf = (char *) OMPI_F2C_IN_PLACE(sendbuf); + sendbuf = (char *) OMPI_F2C_BOTTOM(sendbuf); + recvbuf = (char *) OMPI_F2C_BOTTOM(recvbuf); + + c_ierr = PMPI_Ireduce_scatter_block(sendbuf, recvbuf, + OMPI_FINT_2_INT(*recvcount), + c_type, c_op, c_comm, &c_request); + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + if (MPI_SUCCESS == c_ierr) *request = PMPI_Request_c2f(c_request); +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/ireduce_scatter_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/ireduce_scatter_ts.c new file mode 100644 index 00000000000..1cb7ddeffc1 --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/ireduce_scatter_ts.c @@ -0,0 +1,72 @@ +/* + * Copyright (c) 2004-2005 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) 2011-2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/communicator/communicator.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + +static const char FUNC_NAME[] = "MPI_Ireduce_scatter"; + +void ompi_ireduce_scatter_ts(CFI_cdesc_t *x1, CFI_cdesc_t *x2, + MPI_Fint *recvcounts, MPI_Fint *datatype, + MPI_Fint *op, MPI_Fint *comm, MPI_Fint *request, + MPI_Fint *ierr) +{ + int c_ierr; + MPI_Comm c_comm = PMPI_Comm_f2c(*comm); + MPI_Datatype c_type; + MPI_Request c_request; + MPI_Op c_op; + int size; + char *sendbuf = x1->base_addr, *recvbuf = x2->base_addr; + OMPI_ARRAY_NAME_DECL(recvcounts); + + OMPI_CFI_CHECK_CONTIGUOUS(x1, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME); + return; + } + OMPI_CFI_CHECK_CONTIGUOUS(x2, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME); + return; + } + c_type = PMPI_Type_f2c(*datatype); + c_op = PMPI_Op_f2c(*op); + + PMPI_Comm_size(c_comm, &size); + OMPI_ARRAY_FINT_2_INT(recvcounts, size); + + sendbuf = (char *) OMPI_F2C_IN_PLACE(sendbuf); + sendbuf = (char *) OMPI_F2C_BOTTOM(sendbuf); + recvbuf = (char *) OMPI_F2C_BOTTOM(recvbuf); + + c_ierr = PMPI_Ireduce_scatter(sendbuf, recvbuf, + OMPI_ARRAY_NAME_CONVERT(recvcounts), + c_type, c_op, c_comm, &c_request); + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + if (MPI_SUCCESS == c_ierr) *request = PMPI_Request_c2f(c_request); +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/ireduce_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/ireduce_ts.c new file mode 100644 index 00000000000..d414642af1e --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/ireduce_ts.c @@ -0,0 +1,70 @@ +/* + * Copyright (c) 2004-2005 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) 2011-2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/communicator/communicator.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + +static const char FUNC_NAME[] = "MPI_Ireduce"; + +void ompi_ireduce_ts(CFI_cdesc_t *x1, CFI_cdesc_t *x2, MPI_Fint *count, + MPI_Fint *datatype, MPI_Fint *op, + MPI_Fint *root, MPI_Fint *comm, MPI_Fint *request, + MPI_Fint *ierr) +{ + int c_ierr; + MPI_Datatype c_type; + MPI_Request c_request; + MPI_Op c_op; + MPI_Comm c_comm = PMPI_Comm_f2c(*comm); + char *sendbuf = x1->base_addr, *recvbuf = x2->base_addr; + + OMPI_CFI_CHECK_CONTIGUOUS(x1, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME); + return; + } + OMPI_CFI_CHECK_CONTIGUOUS(x2, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME); + return; + } + + c_type = PMPI_Type_f2c(*datatype); + c_op = PMPI_Op_f2c(*op); + + sendbuf = (char *) OMPI_F2C_IN_PLACE(sendbuf); + sendbuf = (char *) OMPI_F2C_BOTTOM(sendbuf); + recvbuf = (char *) OMPI_F2C_BOTTOM(recvbuf); + + c_ierr = PMPI_Ireduce(sendbuf, recvbuf, + OMPI_FINT_2_INT(*count), + c_type, c_op, + OMPI_FINT_2_INT(*root), + c_comm, &c_request); + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + if (MPI_SUCCESS == c_ierr) *request = PMPI_Request_c2f(c_request); +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/irsend_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/irsend_ts.c new file mode 100644 index 00000000000..d775dd00fe6 --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/irsend_ts.c @@ -0,0 +1,60 @@ +/* + * Copyright (c) 2004-2005 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) 2011-2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/communicator/communicator.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + +static const char FUNC_NAME[] = "MPI_Irsend"; + +void ompi_irsend_ts(CFI_cdesc_t* x, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *request, MPI_Fint *ierr) +{ + int c_ierr; + MPI_Datatype c_datatype, c_type = PMPI_Type_f2c(*datatype); + MPI_Request c_req; + MPI_Comm c_comm = PMPI_Comm_f2c (*comm); + + void *buf = x->base_addr; + int c_count = OMPI_FINT_2_INT(*count); + + OMPI_CFI_2_C(x, c_count, c_type, c_datatype, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME); + return; + } + + c_ierr = PMPI_Irsend(OMPI_F2C_BOTTOM(buf), c_count, + c_datatype, OMPI_FINT_2_INT(*dest), + OMPI_FINT_2_INT(*tag), c_comm, + &c_req); + if (c_datatype != c_type) { + ompi_datatype_destroy(&c_datatype); + } + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + + if (MPI_SUCCESS == c_ierr) { + *request = PMPI_Request_c2f(c_req); + } +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/iscan_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/iscan_ts.c new file mode 100644 index 00000000000..29b444e18c2 --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/iscan_ts.c @@ -0,0 +1,68 @@ +/* + * Copyright (c) 2004-2005 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) 2011-2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/communicator/communicator.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + +static const char FUNC_NAME[] = "MPI_Iscan"; + +void ompi_iscan_ts(CFI_cdesc_t *x1, CFI_cdesc_t *x2, MPI_Fint *count, + MPI_Fint *datatype, MPI_Fint *op, MPI_Fint *comm, + MPI_Fint *request, MPI_Fint *ierr) +{ + int c_ierr; + MPI_Comm c_comm = PMPI_Comm_f2c(*comm); + MPI_Datatype c_type; + MPI_Request c_request; + MPI_Op c_op; + char *sendbuf = x1->base_addr, *recvbuf = x2->base_addr; + + OMPI_CFI_CHECK_CONTIGUOUS(x1, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME); + return; + } + OMPI_CFI_CHECK_CONTIGUOUS(x2, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME); + return; + } + + c_type = PMPI_Type_f2c(*datatype); + c_op = PMPI_Op_f2c(*op); + + sendbuf = (char *) OMPI_F2C_IN_PLACE(sendbuf); + sendbuf = (char *) OMPI_F2C_BOTTOM(sendbuf); + recvbuf = (char *) OMPI_F2C_BOTTOM(recvbuf); + + c_ierr = PMPI_Iscan(sendbuf, recvbuf, + OMPI_FINT_2_INT(*count), + c_type, c_op, + c_comm, &c_request); + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + if (MPI_SUCCESS == c_ierr) *request = PMPI_Request_c2f(c_request); +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/iscatter_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/iscatter_ts.c new file mode 100644 index 00000000000..9378605d75c --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/iscatter_ts.c @@ -0,0 +1,101 @@ +/* + * Copyright (c) 2004-2005 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) 2011-2012 Cisco Systems, Inc. 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$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/communicator/communicator.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + +static const char FUNC_NAME[] = "MPI_Iscatter"; + +void ompi_iscatter_ts(CFI_cdesc_t *x1, MPI_Fint *sendcount, + MPI_Fint *sendtype, CFI_cdesc_t *x2, + MPI_Fint *recvcount, MPI_Fint *recvtype, + MPI_Fint *root, MPI_Fint *comm, MPI_Fint *request, + MPI_Fint *ierr) +{ + int c_ierr; + MPI_Comm c_comm = PMPI_Comm_f2c(*comm); + int c_root = OMPI_FINT_2_INT(*root); + MPI_Datatype c_sendtype = NULL, c_recvtype = NULL, c_recvdatatype = NULL; + int c_sendcount = 0, c_recvcount = 0; + char *sendbuf = x1->base_addr, *recvbuf = x2->base_addr; + MPI_Request c_request; + + if (OMPI_COMM_IS_INTER(c_comm)) { + if (MPI_ROOT == c_root) { + c_sendtype = PMPI_Type_f2c(*sendtype); + c_sendcount = OMPI_FINT_2_INT(*sendcount); + OMPI_CFI_CHECK_CONTIGUOUS(x1, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME); + return; + } + } else if (MPI_PROC_NULL != c_root) { + c_recvtype = PMPI_Type_f2c(*recvtype); + c_recvcount = OMPI_FINT_2_INT(*recvcount); + OMPI_CFI_2_C(x2, c_recvcount, c_recvtype, c_recvdatatype, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME); + return; + } + } + } else { + if (ompi_comm_rank(c_comm) == c_root) { + c_sendtype = PMPI_Type_f2c(*sendtype); + c_sendcount = OMPI_FINT_2_INT(*sendcount); + OMPI_CFI_CHECK_CONTIGUOUS(x1, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME); + return; + } + } + if (OMPI_IS_FORTRAN_IN_PLACE(recvbuf)) { + recvbuf = MPI_IN_PLACE; + } else { + c_recvtype = PMPI_Type_f2c(*recvtype); + c_recvcount = OMPI_FINT_2_INT(*recvcount); + OMPI_CFI_2_C(x2, c_recvcount, c_recvtype, c_recvdatatype, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME); + return; + } + } + } + + recvbuf = (char *) OMPI_F2C_IN_PLACE(recvbuf); + recvbuf = (char *) OMPI_F2C_BOTTOM(recvbuf); + + + c_ierr = PMPI_Iscatter(sendbuf,c_sendcount, c_sendtype, + recvbuf, c_recvcount, c_recvdatatype, + c_root, c_comm, &c_request); + + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + if (MPI_SUCCESS == c_ierr) *request = PMPI_Request_c2f(c_request); +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/iscatterv_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/iscatterv_ts.c new file mode 100644 index 00000000000..49b6b017620 --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/iscatterv_ts.c @@ -0,0 +1,112 @@ +/* + * Copyright (c) 2004-2005 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) 2011-2012 Cisco Systems, Inc. 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$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/communicator/communicator.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + +static const char FUNC_NAME[] = "MPI_Iscatterv"; + +void ompi_iscatterv_ts(CFI_cdesc_t *x1, MPI_Fint *sendcounts, + MPI_Fint *displs, MPI_Fint *sendtype, + CFI_cdesc_t *x2, MPI_Fint *recvcount, + MPI_Fint *recvtype, MPI_Fint *root, + MPI_Fint *comm, MPI_Fint *request, MPI_Fint *ierr) +{ + int c_ierr; + MPI_Comm c_comm = PMPI_Comm_f2c(*comm); + int c_root = OMPI_FINT_2_INT(*root); + MPI_Datatype c_sendtype = NULL, c_recvtype = NULL, c_recvdatatype = NULL; + int c_recvcount = 0; + char *sendbuf = x1->base_addr, *recvbuf = x2->base_addr; + MPI_Request c_request; + OMPI_ARRAY_NAME_DECL(sendcounts); + OMPI_ARRAY_NAME_DECL(displs); + + if (OMPI_COMM_IS_INTER(c_comm)) { + if (MPI_ROOT == c_root) { + OMPI_COND_STATEMENT(int size = ompi_comm_size(c_comm)); + c_sendtype = PMPI_Type_f2c(*sendtype); + OMPI_CFI_CHECK_CONTIGUOUS(x1, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME); + return; + } + OMPI_ARRAY_FINT_2_INT(sendcounts, size); + OMPI_ARRAY_FINT_2_INT(displs, size); + } else if (MPI_PROC_NULL != c_root) { + c_recvtype = PMPI_Type_f2c(*recvtype); + c_recvcount = OMPI_FINT_2_INT(*recvcount); + OMPI_CFI_2_C(x2, c_recvcount, c_recvtype, c_recvdatatype, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME); + return; + } + } + } else { + if (ompi_comm_rank(c_comm) == c_root) { + OMPI_COND_STATEMENT(int size = ompi_comm_size(c_comm)); + c_sendtype = PMPI_Type_f2c(*sendtype); + OMPI_ARRAY_FINT_2_INT(sendcounts, size); + OMPI_ARRAY_FINT_2_INT(displs, size); + OMPI_CFI_CHECK_CONTIGUOUS(x1, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME); + return; + } + } + if (OMPI_IS_FORTRAN_IN_PLACE(recvbuf)) { + recvbuf = MPI_IN_PLACE; + } else { + c_recvtype = PMPI_Type_f2c(*recvtype); + c_recvcount = OMPI_FINT_2_INT(*recvcount); + OMPI_CFI_2_C(x2, c_recvcount, c_recvtype, c_recvdatatype, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME); + return; + } + } + } + + recvbuf = (char *) OMPI_F2C_IN_PLACE(recvbuf); + recvbuf = (char *) OMPI_F2C_BOTTOM(recvbuf); + + c_ierr = PMPI_Iscatterv(sendbuf, + OMPI_ARRAY_NAME_CONVERT(sendcounts), + OMPI_ARRAY_NAME_CONVERT(displs), + c_sendtype, + recvbuf, c_recvcount, c_recvtype, + c_root, c_comm, &c_request); + + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + if (MPI_SUCCESS == c_ierr) *request = PMPI_Request_c2f(c_request); + + OMPI_ARRAY_FINT_2_INT_CLEANUP(sendcounts); + OMPI_ARRAY_FINT_2_INT_CLEANUP(displs); +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/isend_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/isend_ts.c new file mode 100644 index 00000000000..21bfec5cd74 --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/isend_ts.c @@ -0,0 +1,60 @@ +/* + * Copyright (c) 2004-2005 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) 2011-2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/communicator/communicator.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + +static const char FUNC_NAME[] = "MPI_Isend"; + +void ompi_isend_ts(CFI_cdesc_t* x, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *request, MPI_Fint *ierr) +{ + int c_ierr; + MPI_Datatype c_datatype, c_type = PMPI_Type_f2c(*datatype); + MPI_Request c_req; + MPI_Comm c_comm = PMPI_Comm_f2c (*comm); + + void *buf = x->base_addr; + int c_count = OMPI_FINT_2_INT(*count); + + OMPI_CFI_2_C(x, c_count, c_type, c_datatype, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME); + return; + } + + c_ierr = PMPI_Isend(OMPI_F2C_BOTTOM(buf), c_count, + c_datatype, OMPI_FINT_2_INT(*dest), + OMPI_FINT_2_INT(*tag), + c_comm, &c_req); + if (c_datatype != c_type) { + ompi_datatype_destroy(&c_datatype); + } + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + + if (MPI_SUCCESS == c_ierr) { + *request = PMPI_Request_c2f(c_req); + } +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/issend_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/issend_ts.c new file mode 100644 index 00000000000..1699dd8638e --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/issend_ts.c @@ -0,0 +1,60 @@ +/* + * Copyright (c) 2004-2005 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) 2011-2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/communicator/communicator.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + +static const char FUNC_NAME[] = "MPI_Issend"; + +void ompi_issend_ts(CFI_cdesc_t* x, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *request, MPI_Fint *ierr) +{ + int c_ierr; + MPI_Datatype c_datatype, c_type = PMPI_Type_f2c(*datatype); + MPI_Request c_req; + MPI_Comm c_comm = PMPI_Comm_f2c (*comm); + + void *buf = x->base_addr; + int c_count = OMPI_FINT_2_INT(*count); + + OMPI_CFI_2_C(x, c_count, c_type, c_datatype, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME); + return; + } + + c_ierr = PMPI_Issend(OMPI_F2C_BOTTOM(buf), c_count, + c_datatype, OMPI_FINT_2_INT(*dest), + OMPI_FINT_2_INT(*tag), + c_comm, &c_req); + if (c_datatype != c_type) { + ompi_datatype_destroy(&c_datatype); + } + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + + if (MPI_SUCCESS == c_ierr) { + *request = PMPI_Request_c2f(c_req); + } +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/mrecv_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/mrecv_ts.c new file mode 100644 index 00000000000..6f773dbadf2 --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/mrecv_ts.c @@ -0,0 +1,68 @@ +/* + * Copyright (c) 2004-2005 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) 2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2012 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * Copyright (c) 2015 FUJITSU LIMITED. All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/communicator/communicator.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/mpi/fortran/mpif-h/status-conversion.h" +#include "ompi/mpi/fortran/base/constants.h" + +static const char FUNC_NAME[] = "MPI_Mrecv"; + +void ompi_mrecv_ts(CFI_cdesc_t* x, MPI_Fint *count, MPI_Fint *datatype, + MPI_Fint *message, MPI_Fint *status, MPI_Fint *ierr) +{ + int c_ierr; + OMPI_FORTRAN_STATUS_DECLARATION(c_status,c_status2) + MPI_Message c_message = PMPI_Message_f2c(*message); + MPI_Datatype c_datatype, c_type = PMPI_Type_f2c(*datatype); + void *buf = x->base_addr; + int c_count = OMPI_FINT_2_INT(*count); + + OMPI_FORTRAN_STATUS_SET_POINTER(c_status,c_status2,status) + + OMPI_CFI_2_C(x, c_count, c_type, c_datatype, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(MPI_COMM_SELF, c_ierr, FUNC_NAME); + return; + } + + + /* Call the C function */ + c_ierr = PMPI_Mrecv(OMPI_F2C_BOTTOM(buf), c_count, + c_datatype, &c_message, + c_status); + if (c_datatype != c_type) { + ompi_datatype_destroy(&c_datatype); + } + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + + if (MPI_SUCCESS == c_ierr) { + OMPI_FORTRAN_STATUS_RETURN(c_status,c_status2,status,c_ierr) + /* message is an INOUT, and may be updated by the recv */ + *message = PMPI_Message_c2f(c_message); + } +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/neighbor_allgather_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/neighbor_allgather_ts.c new file mode 100644 index 00000000000..8b22239dea2 --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/neighbor_allgather_ts.c @@ -0,0 +1,75 @@ +/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ +/* + * Copyright (c) 2004-2005 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) 2011-2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2013 Los Alamos National Security, LLC. All rights + * reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/communicator/communicator.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + +static const char FUNC_NAME[] = "MPI_Neighbor_allgather"; + +void ompi_neighbor_allgather_ts(CFI_cdesc_t *x1, MPI_Fint *sendcount, MPI_Fint *sendtype, + CFI_cdesc_t *x2, MPI_Fint *recvcount, MPI_Fint *recvtype, + MPI_Fint *comm, MPI_Fint *ierr) +{ + int c_ierr; + MPI_Comm c_comm = PMPI_Comm_f2c(*comm); + MPI_Datatype c_senddatatype, c_sendtype = PMPI_Type_f2c(*sendtype); + void *sendbuf = x1->base_addr; + int c_sendcount = OMPI_FINT_2_INT(*sendcount); + MPI_Datatype c_recvtype = PMPI_Type_f2c(*recvtype); + void *recvbuf = x2->base_addr; + int c_recvcount = OMPI_FINT_2_INT(*recvcount); + + OMPI_CFI_CHECK_CONTIGUOUS(x2, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME) + return; + } + OMPI_CFI_2_C(x1, c_sendcount, c_sendtype, c_senddatatype, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME) + return; + } + + c_sendtype = PMPI_Type_f2c(*sendtype); + c_recvtype = PMPI_Type_f2c(*recvtype); + + sendbuf = (char *) OMPI_F2C_IN_PLACE(sendbuf); + sendbuf = (char *) OMPI_F2C_BOTTOM(sendbuf); + recvbuf = (char *) OMPI_F2C_BOTTOM(recvbuf); + + c_ierr = PMPI_Neighbor_allgather(sendbuf, + c_sendcount, + c_sendtype, + recvbuf, + c_recvcount, + c_recvtype, c_comm); + + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/neighbor_allgatherv_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/neighbor_allgatherv_ts.c new file mode 100644 index 00000000000..1a45ea67d5c --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/neighbor_allgatherv_ts.c @@ -0,0 +1,83 @@ +/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ +/* + * Copyright (c) 2004-2005 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) 2011-2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2013 Los Alamos National Security, LLC. All rights + * reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/communicator/communicator.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + +static const char FUNC_NAME[] = "MPI_Neighbor_allgatherv"; + +void ompi_neighbor_allgatherv_ts(CFI_cdesc_t *x1, MPI_Fint *sendcount, MPI_Fint *sendtype, + CFI_cdesc_t *x2, MPI_Fint *recvcounts, MPI_Fint *displs, + MPI_Fint *recvtype, MPI_Fint *comm, MPI_Fint *ierr) +{ + MPI_Comm c_comm = PMPI_Comm_f2c(*comm); + MPI_Datatype c_senddatatype, c_sendtype = PMPI_Type_f2c(*sendtype); + char *sendbuf = x1->base_addr, *recvbuf = x2->base_addr; + int c_sendcount = OMPI_FINT_2_INT(*sendcount); + MPI_Datatype c_recvtype = PMPI_Type_f2c(*recvtype); + int size, c_ierr; + OMPI_ARRAY_NAME_DECL(recvcounts); + OMPI_ARRAY_NAME_DECL(displs); + + OMPI_CFI_CHECK_CONTIGUOUS(x2, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME) + return; + } + OMPI_CFI_2_C(x1, c_sendcount, c_sendtype, c_senddatatype, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME) + return; + } + + c_sendtype = PMPI_Type_f2c(*sendtype); + c_recvtype = PMPI_Type_f2c(*recvtype); + + PMPI_Comm_size(c_comm, &size); + OMPI_ARRAY_FINT_2_INT(recvcounts, size); + OMPI_ARRAY_FINT_2_INT(displs, size); + + sendbuf = (char *) OMPI_F2C_IN_PLACE(sendbuf); + sendbuf = (char *) OMPI_F2C_BOTTOM(sendbuf); + recvbuf = (char *) OMPI_F2C_BOTTOM(recvbuf); + + c_ierr = PMPI_Neighbor_allgatherv(sendbuf, + c_sendcount, + c_sendtype, + recvbuf, + OMPI_ARRAY_NAME_CONVERT(recvcounts), + OMPI_ARRAY_NAME_CONVERT(displs), + c_recvtype, c_comm); + + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + + OMPI_ARRAY_FINT_2_INT_CLEANUP(recvcounts); + OMPI_ARRAY_FINT_2_INT_CLEANUP(displs); +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/neighbor_alltoall_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/neighbor_alltoall_ts.c new file mode 100644 index 00000000000..34dbf10aa96 --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/neighbor_alltoall_ts.c @@ -0,0 +1,70 @@ +/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ +/* + * Copyright (c) 2004-2005 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) 2011-2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2013 Los Alamos National Security, LLC. All rights + * reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/communicator/communicator.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + +static const char FUNC_NAME[] = "MPI_Neighbor_alltoall"; + +void ompi_neighbor_alltoall_ts(CFI_cdesc_t *x1, MPI_Fint *sendcount, MPI_Fint *sendtype, + CFI_cdesc_t *x2, MPI_Fint *recvcount, MPI_Fint *recvtype, + MPI_Fint *comm, MPI_Fint *ierr) +{ + int c_ierr; + MPI_Comm c_comm = PMPI_Comm_f2c(*comm); + MPI_Datatype c_sendtype, c_recvtype; + char *sendbuf = x1->base_addr, *recvbuf = x2->base_addr; + + OMPI_CFI_CHECK_CONTIGUOUS(x1, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME) + return; + } + OMPI_CFI_CHECK_CONTIGUOUS(x2, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME) + return; + } + + c_sendtype = PMPI_Type_f2c(*sendtype); + c_recvtype = PMPI_Type_f2c(*recvtype); + + sendbuf = (char *) OMPI_F2C_IN_PLACE(sendbuf); + sendbuf = (char *) OMPI_F2C_BOTTOM(sendbuf); + recvbuf = (char *) OMPI_F2C_BOTTOM(recvbuf); + + c_ierr = PMPI_Neighbor_alltoall(sendbuf, + OMPI_FINT_2_INT(*sendcount), + c_sendtype, + recvbuf, + OMPI_FINT_2_INT(*recvcount), + c_recvtype, c_comm); + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/neighbor_alltoallv_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/neighbor_alltoallv_ts.c new file mode 100644 index 00000000000..c4debead501 --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/neighbor_alltoallv_ts.c @@ -0,0 +1,87 @@ +/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ +/* + * Copyright (c) 2004-2005 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) 2011-2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2013 Los Alamos National Security, LLC. All rights + * reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/communicator/communicator.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + +static const char FUNC_NAME[] = "MPI_Neighbor_alltoallv"; + +void ompi_neighbor_alltoallv_ts(CFI_cdesc_t *x1, MPI_Fint *sendcounts, MPI_Fint *sdispls, + MPI_Fint *sendtype, CFI_cdesc_t *x2, MPI_Fint *recvcounts, + MPI_Fint *rdispls, MPI_Fint *recvtype, + MPI_Fint *comm, MPI_Fint *ierr) +{ + MPI_Comm c_comm = PMPI_Comm_f2c(*comm); + MPI_Datatype c_sendtype, c_recvtype; + int size, c_ierr; + char *sendbuf = x1->base_addr, *recvbuf = x2->base_addr; + OMPI_ARRAY_NAME_DECL(sendcounts); + OMPI_ARRAY_NAME_DECL(sdispls); + OMPI_ARRAY_NAME_DECL(recvcounts); + OMPI_ARRAY_NAME_DECL(rdispls); + + OMPI_CFI_CHECK_CONTIGUOUS(x1, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME) + return; + } + OMPI_CFI_CHECK_CONTIGUOUS(x2, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME) + return; + } + c_sendtype = PMPI_Type_f2c(*sendtype); + c_recvtype = PMPI_Type_f2c(*recvtype); + + PMPI_Comm_size(c_comm, &size); + OMPI_ARRAY_FINT_2_INT(sendcounts, size); + OMPI_ARRAY_FINT_2_INT(sdispls, size); + OMPI_ARRAY_FINT_2_INT(recvcounts, size); + OMPI_ARRAY_FINT_2_INT(rdispls, size); + + sendbuf = (char *) OMPI_F2C_IN_PLACE(sendbuf); + sendbuf = (char *) OMPI_F2C_BOTTOM(sendbuf); + recvbuf = (char *) OMPI_F2C_BOTTOM(recvbuf); + + c_ierr = PMPI_Neighbor_alltoallv(sendbuf, + OMPI_ARRAY_NAME_CONVERT(sendcounts), + OMPI_ARRAY_NAME_CONVERT(sdispls), + c_sendtype, + recvbuf, + OMPI_ARRAY_NAME_CONVERT(recvcounts), + OMPI_ARRAY_NAME_CONVERT(rdispls), + c_recvtype, c_comm); + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + + OMPI_ARRAY_FINT_2_INT_CLEANUP(sendcounts); + OMPI_ARRAY_FINT_2_INT_CLEANUP(sdispls); + OMPI_ARRAY_FINT_2_INT_CLEANUP(recvcounts); + OMPI_ARRAY_FINT_2_INT_CLEANUP(rdispls); +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/neighbor_alltoallw_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/neighbor_alltoallw_ts.c new file mode 100644 index 00000000000..616c566b470 --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/neighbor_alltoallw_ts.c @@ -0,0 +1,91 @@ +/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ +/* + * Copyright (c) 2004-2005 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) 2011-2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2013 Los Alamos National Security, LLC. All rights + * reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/communicator/communicator.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + +static const char FUNC_NAME[] = "MPI_Neighbor_alltoallw"; + +void ompi_neighbor_alltoallw_ts(CFI_cdesc_t *x1, MPI_Fint *sendcounts, + MPI_Aint *sdispls, MPI_Fint *sendtypes, + CFI_cdesc_t *x2, MPI_Fint *recvcounts, + MPI_Aint *rdispls, MPI_Fint *recvtypes, + MPI_Fint *comm, MPI_Fint *ierr) +{ + MPI_Comm c_comm = PMPI_Comm_f2c(*comm); + MPI_Datatype *c_sendtypes, *c_recvtypes; + int size, c_ierr; + char *sendbuf = x1->base_addr, *recvbuf = x2->base_addr; + OMPI_ARRAY_NAME_DECL(sendcounts); + OMPI_ARRAY_NAME_DECL(recvcounts); + + OMPI_CFI_CHECK_CONTIGUOUS(x1, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME) + return; + } + OMPI_CFI_CHECK_CONTIGUOUS(x2, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME) + return; + } + PMPI_Comm_size(c_comm, &size); + + c_sendtypes = (MPI_Datatype *) malloc(size * sizeof(MPI_Datatype)); + c_recvtypes = (MPI_Datatype *) malloc(size * sizeof(MPI_Datatype)); + + OMPI_ARRAY_FINT_2_INT(sendcounts, size); + OMPI_ARRAY_FINT_2_INT(recvcounts, size); + + while (size > 0) { + c_sendtypes[size - 1] = PMPI_Type_f2c(sendtypes[size - 1]); + c_recvtypes[size - 1] = PMPI_Type_f2c(recvtypes[size - 1]); + --size; + } + + /* Alltoallw does not support MPI_IN_PLACE */ + sendbuf = (char *) OMPI_F2C_BOTTOM(sendbuf); + recvbuf = (char *) OMPI_F2C_BOTTOM(recvbuf); + + c_ierr = PMPI_Neighbor_alltoallw(sendbuf, + OMPI_ARRAY_NAME_CONVERT(sendcounts), + sdispls, + c_sendtypes, + recvbuf, + OMPI_ARRAY_NAME_CONVERT(recvcounts), + rdispls, + c_recvtypes, c_comm); + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + + OMPI_ARRAY_FINT_2_INT_CLEANUP(sendcounts); + OMPI_ARRAY_FINT_2_INT_CLEANUP(recvcounts); + free(c_sendtypes); + free(c_recvtypes); +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/pack_external_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/pack_external_ts.c new file mode 100644 index 00000000000..b62699542c8 --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/pack_external_ts.c @@ -0,0 +1,82 @@ +/* + * Copyright (c) 2004-2005 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) 2011-2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/communicator/communicator.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/constants.h" +#include "ompi/mpi/fortran/base/constants.h" +#include "ompi/mpi/fortran/base/fortran_base_strings.h" + +static const char FUNC_NAME[] = "MPI_Pack_external"; + +void ompi_pack_external_ts(char *datarep, CFI_cdesc_t* x1, MPI_Fint *incount, + MPI_Fint *datatype, CFI_cdesc_t* x2, + MPI_Aint *outsize, MPI_Aint *position, + MPI_Fint *ierr, int datarep_len) +{ + int ret, c_ierr; + char *c_datarep; + MPI_Datatype c_datatype, c_type = PMPI_Type_f2c(*datatype); + void *inbuf = x1->base_addr; + char *outbuf = x2->base_addr; + int c_incount = OMPI_FINT_2_INT(*incount); + + /* Convert the fortran string */ + + if (OMPI_SUCCESS != (ret = ompi_fortran_string_f2c(datarep, datarep_len, + &c_datarep))) { + c_ierr = OMPI_ERRHANDLER_INVOKE(MPI_COMM_SELF, ret, FUNC_NAME); + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + return; + } + + OMPI_CFI_2_C(x1, c_incount, c_type, c_datatype, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(MPI_COMM_SELF, c_ierr, FUNC_NAME); + return; + } + + OMPI_CFI_CHECK_CONTIGUOUS(x2, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (c_datatype != c_type) { + ompi_datatype_destroy(&c_datatype); + } + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(MPI_COMM_SELF, c_ierr, FUNC_NAME); + return; + } + + c_ierr = PMPI_Pack_external(c_datarep, OMPI_F2C_BOTTOM(inbuf), + c_incount, + c_datatype, outbuf, + *outsize, + position); + if (c_datatype != c_type) { + ompi_datatype_destroy(&c_datatype); + } + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + + free(c_datarep); +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/pack_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/pack_ts.c new file mode 100644 index 00000000000..52458cb5f7c --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/pack_ts.c @@ -0,0 +1,76 @@ +/* + * Copyright (c) 2004-2005 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) 2011-2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/communicator/communicator.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + +static const char FUNC_NAME[] = "MPI_Pack"; + +void ompi_pack_ts(CFI_cdesc_t* x1, MPI_Fint *incount, MPI_Fint *datatype, + CFI_cdesc_t *x2, MPI_Fint *outsize, MPI_Fint *position, + MPI_Fint *comm, MPI_Fint *ierr) +{ + int c_ierr; + MPI_Comm c_comm = PMPI_Comm_f2c(*comm); + MPI_Datatype c_datatype, c_type = PMPI_Type_f2c(*datatype); + OMPI_SINGLE_NAME_DECL(position); + void *inbuf = x1->base_addr; + char *outbuf = x2->base_addr; + int c_incount = OMPI_FINT_2_INT(*incount); + int c_outsize = OMPI_FINT_2_INT(*outsize); + + OMPI_SINGLE_FINT_2_INT(position); + + OMPI_CFI_2_C(x1, c_incount, c_type, c_datatype, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME); + return; + } + + OMPI_CFI_CHECK_CONTIGUOUS(x2, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (c_datatype != c_type) { + ompi_datatype_destroy(&c_datatype); + } + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME) + return; + } + + c_ierr = PMPI_Pack(OMPI_F2C_BOTTOM(inbuf), c_incount, + c_datatype, outbuf, + c_outsize, + OMPI_SINGLE_NAME_CONVERT(position), + c_comm); + if (c_datatype != c_type) { + ompi_datatype_destroy(&c_datatype); + } + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + + if (MPI_SUCCESS == c_ierr) { + OMPI_SINGLE_INT_2_FINT(position); + } +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/put_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/put_ts.c new file mode 100644 index 00000000000..a5a237e7029 --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/put_ts.c @@ -0,0 +1,60 @@ +/* + * Copyright (c) 2004-2005 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) 2011-2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/win/win.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + +static const char FUNC_NAME[] = "MPI_Put"; + +void ompi_put_ts(CFI_cdesc_t *x, MPI_Fint *origin_count, + MPI_Fint *origin_datatype, MPI_Fint *target_rank, + MPI_Aint *target_disp, MPI_Fint *target_count, + MPI_Fint *target_datatype, MPI_Fint *win, MPI_Fint *ierr) +{ + int c_ierr; + MPI_Datatype c_origin_datatype, c_origin_type = PMPI_Type_f2c(*origin_datatype); + MPI_Datatype c_target_datatype = PMPI_Type_f2c(*target_datatype); + MPI_Win c_win = PMPI_Win_f2c(*win); + char *origin_addr = x->base_addr; + int c_origin_count = OMPI_INT_2_FINT(*origin_count); + + OMPI_CFI_2_C(x, c_origin_count, c_origin_type, c_origin_datatype, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_win, c_ierr, FUNC_NAME) + return; + } + c_ierr = PMPI_Put(OMPI_F2C_BOTTOM(origin_addr), + c_origin_count, + c_origin_datatype, + OMPI_FINT_2_INT(*target_rank), + *target_disp, + OMPI_FINT_2_INT(*target_count), + c_target_datatype, c_win); + if (c_origin_datatype != c_origin_type) { + ompi_datatype_destroy(&c_origin_datatype); + } + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/raccumulate_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/raccumulate_ts.c new file mode 100644 index 00000000000..5159449c18e --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/raccumulate_ts.c @@ -0,0 +1,73 @@ +/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ +/* + * Copyright (c) 2004-2005 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) 2011-2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2014-2016 Los Alamos National Security, LLC. All rights + * reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/win/win.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + +static const char FUNC_NAME[] = "MPI_Raccumulate"; + +void ompi_raccumulate_ts(CFI_cdesc_t *x, MPI_Fint *origin_count, + MPI_Fint *origin_datatype, MPI_Fint *target_rank, + MPI_Aint *target_disp, MPI_Fint *target_count, + MPI_Fint *target_datatype, MPI_Fint *op, MPI_Fint *win, + MPI_Fint *request, MPI_Fint *ierr) +{ + int c_ierr; + + MPI_Datatype c_origin_datatype, c_origin_type = PMPI_Type_f2c(*origin_datatype); + MPI_Datatype c_target_datatype = PMPI_Type_f2c(*target_datatype); + MPI_Win c_win = PMPI_Win_f2c(*win); + MPI_Op c_op = PMPI_Op_f2c(*op); + MPI_Request c_req; + char *origin_addr = x->base_addr; + int c_origin_count = OMPI_INT_2_FINT(*origin_count); + + OMPI_CFI_2_C(x, c_origin_count, c_origin_type, c_origin_datatype, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_win, c_ierr, FUNC_NAME) + return; + } + c_ierr = PMPI_Raccumulate(OMPI_F2C_BOTTOM(origin_addr), + c_origin_count, + c_origin_datatype, + OMPI_FINT_2_INT(*target_rank), + *target_disp, + OMPI_FINT_2_INT(*target_count), + c_target_datatype, c_op, c_win, + &c_req); + if (c_origin_datatype != c_origin_type) { + ompi_datatype_destroy(&c_origin_datatype); + } + + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + + if (MPI_SUCCESS == c_ierr) { + *request = PMPI_Request_c2f(c_req); + } +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/recv_init_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/recv_init_ts.c new file mode 100644 index 00000000000..5d8cca6fcf2 --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/recv_init_ts.c @@ -0,0 +1,62 @@ +/* + * Copyright (c) 2004-2005 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) 2011-2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/communicator/communicator.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + +static const char FUNC_NAME[] = "MPI_Recv_init"; + +void ompi_recv_init_ts(CFI_cdesc_t* x, MPI_Fint *count, MPI_Fint *datatype, + MPI_Fint *source, MPI_Fint *tag, MPI_Fint *comm, + MPI_Fint *request, MPI_Fint *ierr) +{ + int c_ierr; + MPI_Datatype c_datatype, c_type = PMPI_Type_f2c(*datatype); + MPI_Request c_req; + MPI_Comm c_comm = PMPI_Comm_f2c (*comm); + + void *buf = x->base_addr; + int c_count = OMPI_FINT_2_INT(*count); + + OMPI_CFI_2_C(x, c_count, c_type, c_datatype, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME); + return; + } + + c_ierr = PMPI_Recv_init(OMPI_F2C_BOTTOM(buf), c_count, + c_datatype, OMPI_FINT_2_INT(*source), + OMPI_INT_2_FINT(*tag), c_comm, + &c_req); + if (c_datatype != c_type) { + ompi_datatype_destroy(&c_datatype); + } + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + + if (MPI_SUCCESS == c_ierr) { + *request = PMPI_Request_c2f(c_req); + } +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/recv_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/recv_ts.c new file mode 100644 index 00000000000..7f3c3eabda0 --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/recv_ts.c @@ -0,0 +1,65 @@ +/* + * Copyright (c) 2004-2005 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) 2011-2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2012 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/communicator/communicator.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/mpi/fortran/mpif-h/status-conversion.h" +#include "ompi/mpi/fortran/base/constants.h" + +static const char FUNC_NAME[] = "MPI_Recv"; + +void ompi_recv_ts(CFI_cdesc_t *x, MPI_Fint *count, MPI_Fint *datatype, + MPI_Fint *source, MPI_Fint *tag, MPI_Fint *comm, + MPI_Fint *status, MPI_Fint *ierr) +{ + OMPI_FORTRAN_STATUS_DECLARATION(c_status,c_status2) + MPI_Comm c_comm = PMPI_Comm_f2c(*comm); + MPI_Datatype c_datatype, c_type = PMPI_Type_f2c(*datatype); + int c_ierr; + void *buf = x->base_addr; + int c_count = OMPI_FINT_2_INT(*count); + + OMPI_CFI_2_C(x, c_count, c_type, c_datatype, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME); + return; + } + + OMPI_FORTRAN_STATUS_SET_POINTER(c_status,c_status2,status) + + /* Call the C function */ + c_ierr = PMPI_Recv(OMPI_F2C_BOTTOM(buf), c_count, + c_datatype, OMPI_FINT_2_INT(*source), + OMPI_FINT_2_INT(*tag), c_comm, + c_status); + + if (c_datatype != c_type) { + ompi_datatype_destroy(&c_datatype); + } + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + + OMPI_FORTRAN_STATUS_RETURN(c_status,c_status2,status,c_ierr) +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/reduce_local_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/reduce_local_ts.c new file mode 100644 index 00000000000..8c6e913e275 --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/reduce_local_ts.c @@ -0,0 +1,62 @@ +/* + * Copyright (c) 2004-2005 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) 2009-2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/communicator/communicator.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + +static const char FUNC_NAME[] = "MPI_Reduce_local"; + +void ompi_reduce_local_ts(CFI_cdesc_t *x1, CFI_cdesc_t *x2, MPI_Fint *count, + MPI_Fint *datatype, MPI_Fint *op, MPI_Fint *ierr) +{ + int c_ierr; + MPI_Datatype c_type; + MPI_Op c_op; + char *inbuf = x1->base_addr, *inoutbuf = x2->base_addr; + + OMPI_CFI_CHECK_CONTIGUOUS(x1, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(MPI_COMM_SELF, c_ierr, FUNC_NAME) + return; + } + OMPI_CFI_CHECK_CONTIGUOUS(x2, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(MPI_COMM_SELF, c_ierr, FUNC_NAME) + return; + } + + c_type = PMPI_Type_f2c(*datatype); + c_op = PMPI_Op_f2c(*op); + + inbuf = (char *) OMPI_F2C_BOTTOM(inbuf); + inoutbuf = (char *) OMPI_F2C_BOTTOM(inoutbuf); + + c_ierr = PMPI_Reduce_local(inbuf, inoutbuf, + OMPI_FINT_2_INT(*count), + c_type, c_op); + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/reduce_scatter_block_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/reduce_scatter_block_ts.c new file mode 100644 index 00000000000..b42e946f349 --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/reduce_scatter_block_ts.c @@ -0,0 +1,67 @@ +/* + * Copyright (c) 2004-2005 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) 2011-2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/communicator/communicator.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + +static const char FUNC_NAME[] = "MPI_Reduce_scatter_block"; + +void ompi_reduce_scatter_block_ts(CFI_cdesc_t *x1, CFI_cdesc_t *x2, + MPI_Fint *recvcount, MPI_Fint *datatype, + MPI_Fint *op, MPI_Fint *comm, MPI_Fint *ierr) +{ + int c_ierr; + MPI_Comm c_comm = PMPI_Comm_f2c(*comm); + MPI_Datatype c_type; + MPI_Op c_op; + int size; + char *sendbuf = x1->base_addr, *recvbuf = x2->base_addr; + + OMPI_CFI_CHECK_CONTIGUOUS(x1, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME) + return; + } + OMPI_CFI_CHECK_CONTIGUOUS(x2, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME) + return; + } + c_type = PMPI_Type_f2c(*datatype); + c_op = PMPI_Op_f2c(*op); + + PMPI_Comm_size(c_comm, &size); + + sendbuf = (char *) OMPI_F2C_IN_PLACE(sendbuf); + sendbuf = (char *) OMPI_F2C_BOTTOM(sendbuf); + recvbuf = (char *) OMPI_F2C_BOTTOM(recvbuf); + + c_ierr = PMPI_Reduce_scatter_block(sendbuf, recvbuf, + OMPI_FINT_2_INT(*recvcount), + c_type, c_op, c_comm); + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/reduce_scatter_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/reduce_scatter_ts.c new file mode 100644 index 00000000000..fd15214a4e1 --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/reduce_scatter_ts.c @@ -0,0 +1,70 @@ +/* + * Copyright (c) 2004-2005 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) 2011-2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/communicator/communicator.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + +static const char FUNC_NAME[] = "MPI_Reduce_scatter"; + +void ompi_reduce_scatter_ts(CFI_cdesc_t *x1, CFI_cdesc_t *x2, + MPI_Fint *recvcounts, MPI_Fint *datatype, + MPI_Fint *op, MPI_Fint *comm, MPI_Fint *ierr) +{ + int c_ierr; + MPI_Comm c_comm = PMPI_Comm_f2c(*comm); + MPI_Datatype c_type; + MPI_Op c_op; + int size; + char *sendbuf = x1->base_addr, *recvbuf = x2->base_addr; + OMPI_ARRAY_NAME_DECL(recvcounts); + + OMPI_CFI_CHECK_CONTIGUOUS(x1, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME) + return; + } + OMPI_CFI_CHECK_CONTIGUOUS(x2, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME) + return; + } + + c_type = PMPI_Type_f2c(*datatype); + c_op = PMPI_Op_f2c(*op); + + PMPI_Comm_size(c_comm, &size); + OMPI_ARRAY_FINT_2_INT(recvcounts, size); + + sendbuf = (char *) OMPI_F2C_IN_PLACE(sendbuf); + sendbuf = (char *) OMPI_F2C_BOTTOM(sendbuf); + recvbuf = (char *) OMPI_F2C_BOTTOM(recvbuf); + + c_ierr = PMPI_Reduce_scatter(sendbuf, recvbuf, + OMPI_ARRAY_NAME_CONVERT(recvcounts), + c_type, c_op, c_comm); + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/reduce_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/reduce_ts.c new file mode 100644 index 00000000000..0dffad09535 --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/reduce_ts.c @@ -0,0 +1,67 @@ +/* + * Copyright (c) 2004-2005 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) 2011-2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/communicator/communicator.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + +static const char FUNC_NAME[] = "MPI_Reduce"; + +void ompi_reduce_ts(CFI_cdesc_t *x1, CFI_cdesc_t *x2, MPI_Fint *count, + MPI_Fint *datatype, MPI_Fint *op, + MPI_Fint *root, MPI_Fint *comm, MPI_Fint *ierr) +{ + int c_ierr; + MPI_Datatype c_type; + MPI_Op c_op; + MPI_Comm c_comm = PMPI_Comm_f2c(*comm); + char *sendbuf = x1->base_addr, *recvbuf = x2->base_addr; + + OMPI_CFI_CHECK_CONTIGUOUS(x1, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME) + return; + } + OMPI_CFI_CHECK_CONTIGUOUS(x2, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME) + return; + } + + c_type = PMPI_Type_f2c(*datatype); + c_op = PMPI_Op_f2c(*op); + + sendbuf = (char *) OMPI_F2C_IN_PLACE(sendbuf); + sendbuf = (char *) OMPI_F2C_BOTTOM(sendbuf); + recvbuf = (char *) OMPI_F2C_BOTTOM(recvbuf); + + c_ierr = PMPI_Reduce(sendbuf, recvbuf, + OMPI_FINT_2_INT(*count), + c_type, c_op, + OMPI_FINT_2_INT(*root), + c_comm); + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/rget_accumulate_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/rget_accumulate_ts.c new file mode 100644 index 00000000000..766d5a94072 --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/rget_accumulate_ts.c @@ -0,0 +1,91 @@ +/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ +/* + * Copyright (c) 2004-2005 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) 2011-2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2014-2016 Los Alamos National Security, LLC. All rights + * reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * Copyright (c) 2015 FUJITSU LIMITED. All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/win/win.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + +static const char FUNC_NAME[] = "MPI_Rget_accumulate"; + +void ompi_rget_accumulate_ts(CFI_cdesc_t *x1, MPI_Fint *origin_count, + MPI_Fint *origin_datatype, CFI_cdesc_t *x2, + MPI_Fint *result_count, MPI_Fint *result_datatype, + MPI_Fint *target_rank, MPI_Aint *target_disp, + MPI_Fint *target_count, MPI_Fint *target_datatype, + MPI_Fint *op, MPI_Fint *win, MPI_Fint *request, + MPI_Fint *ierr) +{ + int c_ierr; + MPI_Datatype c_origin_datatype, c_origin_type = PMPI_Type_f2c(*origin_datatype); + MPI_Datatype c_result_datatype, c_result_type = PMPI_Type_f2c(*result_datatype); + MPI_Datatype c_target_datatype = PMPI_Type_f2c(*target_datatype); + MPI_Win c_win = PMPI_Win_f2c(*win); + MPI_Op c_op = PMPI_Op_f2c(*op); + char *origin_addr = x1->base_addr; + int c_origin_count = OMPI_INT_2_FINT(*origin_count); + char *result_addr = x2->base_addr; + int c_result_count = OMPI_INT_2_FINT(*result_count); + MPI_Request c_req; + + OMPI_CFI_2_C(x1, c_origin_count, c_origin_type, c_origin_datatype, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_win, c_ierr, FUNC_NAME) + return; + } + OMPI_CFI_2_C(x2, c_result_count, c_result_type, c_result_datatype, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + if (c_origin_datatype != c_origin_type) { + ompi_datatype_destroy(&c_origin_datatype); + } + OMPI_ERRHANDLER_INVOKE(c_win, c_ierr, FUNC_NAME); + return; + } + c_ierr = PMPI_Rget_accumulate(OMPI_F2C_BOTTOM(origin_addr), + c_origin_count, + c_origin_datatype, + OMPI_F2C_BOTTOM(result_addr), + c_result_count, + c_result_datatype, + OMPI_FINT_2_INT(*target_rank), + *target_disp, + OMPI_FINT_2_INT(*target_count), + c_target_datatype, c_op, c_win, &c_req); + if (c_origin_datatype != c_origin_type) { + ompi_datatype_destroy(&c_origin_datatype); + } + if (c_result_datatype != c_result_type) { + ompi_datatype_destroy(&c_result_datatype); + } + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + + if (MPI_SUCCESS == c_ierr) { + *request = PMPI_Request_c2f(c_req); + } +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/rget_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/rget_ts.c new file mode 100644 index 00000000000..ea48b2b2641 --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/rget_ts.c @@ -0,0 +1,69 @@ +/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ +/* + * Copyright (c) 2004-2005 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) 2011-2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2014-2016 Los Alamos National Security, LLC. All rights + * reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/win/win.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + +static const char FUNC_NAME[] = "MPI_Rget"; + +void ompi_rget_ts(CFI_cdesc_t *x, MPI_Fint *origin_count, + MPI_Fint *origin_datatype, MPI_Fint *target_rank, + MPI_Aint *target_disp, MPI_Fint *target_count, + MPI_Fint *target_datatype, MPI_Fint *win, MPI_Fint *request, + MPI_Fint *ierr) +{ + int c_ierr; + MPI_Datatype c_origin_datatype, c_origin_type = PMPI_Type_f2c(*origin_datatype); + MPI_Datatype c_target_datatype = PMPI_Type_f2c(*target_datatype); + MPI_Win c_win = PMPI_Win_f2c(*win); + char *origin_addr = x->base_addr; + int c_origin_count = OMPI_INT_2_FINT(*origin_count); + MPI_Request c_req; + + OMPI_CFI_2_C(x, c_origin_count, c_origin_type, c_origin_datatype, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_win, c_ierr, FUNC_NAME); + return; + } + c_ierr = PMPI_Rget(OMPI_F2C_BOTTOM(origin_addr), + c_origin_count, + c_origin_datatype, + OMPI_FINT_2_INT(*target_rank), + *target_disp, + OMPI_FINT_2_INT(*target_count), + c_target_datatype, c_win, &c_req); + if (c_origin_datatype != c_origin_type) { + ompi_datatype_destroy(&c_origin_datatype); + } + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + + if (MPI_SUCCESS == c_ierr) { + *request = PMPI_Request_c2f(c_req); + } +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/rput_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/rput_ts.c new file mode 100644 index 00000000000..bddc46f10f1 --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/rput_ts.c @@ -0,0 +1,69 @@ +/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ +/* + * Copyright (c) 2004-2005 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) 2011-2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2014-2016 Los Alamos National Security, LLC. All rights + * reserved. + * Copyright (c) 2015 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/win/win.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + +static const char FUNC_NAME[] = "MPI_Rput"; + +void ompi_rput_ts(CFI_cdesc_t *x, MPI_Fint *origin_count, + MPI_Fint *origin_datatype, MPI_Fint *target_rank, + MPI_Aint *target_disp, MPI_Fint *target_count, + MPI_Fint *target_datatype, MPI_Fint *win, MPI_Fint *request, + MPI_Fint *ierr) +{ + int c_ierr; + MPI_Datatype c_origin_datatype, c_origin_type = PMPI_Type_f2c(*origin_datatype); + MPI_Datatype c_target_datatype = PMPI_Type_f2c(*target_datatype); + MPI_Win c_win = PMPI_Win_f2c(*win); + char *origin_addr = x->base_addr; + int c_origin_count = OMPI_INT_2_FINT(*origin_count); + MPI_Request c_req; + + OMPI_CFI_2_C(x, c_origin_count, c_origin_type, c_origin_datatype, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_win, c_ierr, FUNC_NAME); + return; + } + c_ierr = PMPI_Rput(OMPI_F2C_BOTTOM(origin_addr), + c_origin_count, + c_origin_datatype, + OMPI_FINT_2_INT(*target_rank), + *target_disp, + OMPI_FINT_2_INT(*target_count), + c_target_datatype, c_win, &c_req); + if (c_origin_datatype != c_origin_type) { + ompi_datatype_destroy(&c_origin_datatype); + } + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + + if (MPI_SUCCESS == c_ierr) { + *request = PMPI_Request_c2f(c_req); + } +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/rsend_init_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/rsend_init_ts.c new file mode 100644 index 00000000000..f6edf74ced9 --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/rsend_init_ts.c @@ -0,0 +1,63 @@ +/* + * Copyright (c) 2004-2005 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) 2011-2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/communicator/communicator.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + +static const char FUNC_NAME[] = "MPI_Rsend_init"; + +void ompi_rsend_init_ts(CFI_cdesc_t* x, MPI_Fint *count, + MPI_Fint *datatype, MPI_Fint *dest, + MPI_Fint *tag, MPI_Fint *comm, + MPI_Fint *request, MPI_Fint *ierr) +{ + int c_ierr; + MPI_Datatype c_datatype, c_type = PMPI_Type_f2c(*datatype); + MPI_Request c_req; + MPI_Comm c_comm = PMPI_Comm_f2c (*comm); + + void *buf = x->base_addr; + int c_count = OMPI_FINT_2_INT(*count); + + OMPI_CFI_2_C(x, c_count, c_type, c_datatype, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME); + return; + } + + c_ierr = PMPI_Rsend_init(OMPI_F2C_BOTTOM(buf), c_count, + c_datatype, OMPI_FINT_2_INT(*dest), + OMPI_FINT_2_INT(*tag), + c_comm, &c_req); + if (c_datatype != c_type) { + ompi_datatype_destroy(&c_datatype); + } + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + + if (MPI_SUCCESS == c_ierr) { + *request = PMPI_Request_c2f(c_req); + } +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/rsend_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/rsend_ts.c new file mode 100644 index 00000000000..7f1721ad813 --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/rsend_ts.c @@ -0,0 +1,55 @@ +/* + * Copyright (c) 2004-2005 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) 2011-2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/communicator/communicator.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + +static const char FUNC_NAME[] = "MPI_Rsend"; + +void ompi_rsend_ts(CFI_cdesc_t* x, MPI_Fint *count, MPI_Fint *datatype, + MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *ierr) +{ + int c_ierr; + MPI_Datatype c_datatype, c_type = PMPI_Type_f2c(*datatype); + MPI_Comm c_comm = PMPI_Comm_f2c (*comm); + + void *buf = x->base_addr; + int c_count = OMPI_FINT_2_INT(*count); + + OMPI_CFI_2_C(x, c_count, c_type, c_datatype, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME); + return; + } + + c_ierr = PMPI_Rsend(OMPI_F2C_BOTTOM(buf), c_count, + c_datatype, OMPI_FINT_2_INT(*dest), + OMPI_FINT_2_INT(*tag), c_comm); + if (c_datatype != c_type) { + ompi_datatype_destroy(&c_datatype); + } + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/scan_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/scan_ts.c new file mode 100644 index 00000000000..5664c13a5de --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/scan_ts.c @@ -0,0 +1,66 @@ +/* + * Copyright (c) 2004-2005 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) 2011-2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/communicator/communicator.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + +static const char FUNC_NAME[] = "MPI_Scan"; + +void ompi_scan_ts(CFI_cdesc_t *x1, CFI_cdesc_t *x2, MPI_Fint *count, + MPI_Fint *datatype, MPI_Fint *op, MPI_Fint *comm, + MPI_Fint *ierr) +{ + int c_ierr; + MPI_Comm c_comm = PMPI_Comm_f2c(*comm); + MPI_Datatype c_type; + MPI_Op c_op; + char *sendbuf = x1->base_addr, *recvbuf = x2->base_addr; + + OMPI_CFI_CHECK_CONTIGUOUS(x1, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME) + return; + } + OMPI_CFI_CHECK_CONTIGUOUS(x2, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME) + return; + } + + c_type = PMPI_Type_f2c(*datatype); + c_op = PMPI_Op_f2c(*op); + + sendbuf = (char *) OMPI_F2C_IN_PLACE(sendbuf); + sendbuf = (char *) OMPI_F2C_BOTTOM(sendbuf); + recvbuf = (char *) OMPI_F2C_BOTTOM(recvbuf); + + c_ierr = PMPI_Scan(sendbuf, recvbuf, + OMPI_FINT_2_INT(*count), + c_type, c_op, + c_comm); + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/scatter_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/scatter_ts.c new file mode 100644 index 00000000000..5fbfdd8c064 --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/scatter_ts.c @@ -0,0 +1,99 @@ +/* + * Copyright (c) 2004-2005 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) 2011-2013 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/communicator/communicator.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + +static const char FUNC_NAME[] = "MPI_Scatter"; + +void ompi_scatter_ts(CFI_cdesc_t *x1, MPI_Fint *sendcount, + MPI_Fint *sendtype, CFI_cdesc_t *x2, + MPI_Fint *recvcount, MPI_Fint *recvtype, + MPI_Fint *root, MPI_Fint *comm, MPI_Fint *ierr) +{ + int c_ierr; + MPI_Comm c_comm = PMPI_Comm_f2c(*comm); + int c_root = OMPI_FINT_2_INT(*root); + MPI_Datatype c_sendtype = NULL, c_recvtype = NULL, c_recvdatatype = NULL; + void *sendbuf = x1->base_addr, *recvbuf = x2->base_addr; + int c_sendcount = 0, c_recvcount = 0; + + if (OMPI_COMM_IS_INTER(c_comm)) { + if (MPI_ROOT == c_root) { + c_sendtype = PMPI_Type_f2c(*sendtype); + c_sendcount = OMPI_FINT_2_INT(*sendcount); + OMPI_CFI_CHECK_CONTIGUOUS(x1, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME) + return; + } + } else if (MPI_PROC_NULL != c_root) { + c_recvtype = PMPI_Type_f2c(*recvtype); + c_recvcount = OMPI_FINT_2_INT(*recvcount); + OMPI_CFI_2_C(x2, c_recvcount, c_recvtype, c_recvdatatype, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME) + return; + } + } + } else { + if (ompi_comm_rank(c_comm) == c_root) { + c_sendtype = PMPI_Type_f2c(*sendtype); + c_sendcount = OMPI_FINT_2_INT(*sendcount); + OMPI_CFI_CHECK_CONTIGUOUS(x1, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME) + return; + } + } + if (OMPI_IS_FORTRAN_IN_PLACE(recvbuf)) { + recvbuf = MPI_IN_PLACE; + } else { + c_recvtype = PMPI_Type_f2c(*recvtype); + c_recvcount = OMPI_FINT_2_INT(*recvcount); + OMPI_CFI_2_C(x2, c_recvcount, c_recvtype, c_recvdatatype, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME) + return; + } + } + } + + sendbuf = (char *) OMPI_F2C_BOTTOM(sendbuf); + recvbuf = (char *) OMPI_F2C_BOTTOM(recvbuf); + + c_ierr = PMPI_Scatter(sendbuf,c_sendcount, c_sendtype, + recvbuf, c_recvcount, c_recvdatatype, + c_root, c_comm); + + if (c_recvdatatype != c_recvtype) { + ompi_datatype_destroy(&c_recvdatatype); + } + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/scatterv_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/scatterv_ts.c new file mode 100644 index 00000000000..78c35904b0c --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/scatterv_ts.c @@ -0,0 +1,109 @@ +/* + * Copyright (c) 2004-2005 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) 2011-2013 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/communicator/communicator.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + +static const char FUNC_NAME[] = "MPI_Scatterv"; + +void ompi_scatterv_ts(CFI_cdesc_t *x1, MPI_Fint *sendcounts, + MPI_Fint *displs, MPI_Fint *sendtype, + CFI_cdesc_t *x2, MPI_Fint *recvcount, + MPI_Fint *recvtype, MPI_Fint *root, + MPI_Fint *comm, MPI_Fint *ierr) +{ + int c_ierr; + MPI_Comm c_comm = PMPI_Comm_f2c(*comm); + int c_root = OMPI_FINT_2_INT(*root); + MPI_Datatype c_sendtype = NULL, c_recvtype = NULL, c_recvdatatype = NULL; + void *sendbuf = x1->base_addr, *recvbuf = x2->base_addr; + int c_recvcount = 0; + OMPI_ARRAY_NAME_DECL(sendcounts); + OMPI_ARRAY_NAME_DECL(displs); + + if (OMPI_COMM_IS_INTER(c_comm)) { + if (MPI_ROOT == c_root) { + OMPI_COND_STATEMENT(int size = ompi_comm_size(c_comm)); + c_sendtype = PMPI_Type_f2c(*sendtype); + OMPI_ARRAY_FINT_2_INT(sendcounts, size); + OMPI_ARRAY_FINT_2_INT(displs, size); + OMPI_CFI_CHECK_CONTIGUOUS(x1, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME) + return; + } + } else if (MPI_PROC_NULL != c_root) { + c_recvtype = PMPI_Type_f2c(*recvtype); + c_recvcount = OMPI_FINT_2_INT(*recvcount); + OMPI_CFI_2_C(x2, c_recvcount, c_recvtype, c_recvdatatype, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME) + return; + } + } + } else { + if (ompi_comm_rank(c_comm) == c_root) { + OMPI_COND_STATEMENT(int size = ompi_comm_size(c_comm)); + c_sendtype = PMPI_Type_f2c(*sendtype); + OMPI_CFI_CHECK_CONTIGUOUS(x1, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME) + return; + } + OMPI_ARRAY_FINT_2_INT(sendcounts, size); + OMPI_ARRAY_FINT_2_INT(displs, size); + } + if (OMPI_IS_FORTRAN_IN_PLACE(recvbuf)) { + recvbuf = MPI_IN_PLACE; + } else { + c_recvtype = PMPI_Type_f2c(*recvtype); + c_recvcount = OMPI_FINT_2_INT(*recvcount); + OMPI_CFI_2_C(x2, c_recvcount, c_recvtype, c_recvdatatype, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME) + return; + } + } + } + + c_ierr = PMPI_Scatterv(sendbuf, + OMPI_ARRAY_NAME_CONVERT(sendcounts), + OMPI_ARRAY_NAME_CONVERT(displs), + c_sendtype, + recvbuf, c_recvcount, c_recvdatatype, + c_root, c_comm); + + if (c_recvdatatype != c_recvtype) { + ompi_datatype_destroy(&c_recvdatatype); + } + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + + OMPI_ARRAY_FINT_2_INT_CLEANUP(sendcounts); + OMPI_ARRAY_FINT_2_INT_CLEANUP(displs); +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/send_init_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/send_init_ts.c new file mode 100644 index 00000000000..1e8453a4db7 --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/send_init_ts.c @@ -0,0 +1,63 @@ +/* + * Copyright (c) 2004-2005 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) 2011-2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/communicator/communicator.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + +static const char FUNC_NAME[] = "MPI_Send_init"; + +void ompi_send_init_ts(CFI_cdesc_t* x, MPI_Fint *count, MPI_Fint *datatype, + MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm, + MPI_Fint *request, MPI_Fint *ierr) +{ + int c_ierr; + MPI_Datatype c_datatype, c_type = PMPI_Type_f2c(*datatype); + MPI_Request c_req; + MPI_Comm c_comm = PMPI_Comm_f2c (*comm); + + void *buf = x->base_addr; + int c_count = OMPI_FINT_2_INT(*count); + + OMPI_CFI_2_C(x, c_count, c_type, c_datatype, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME); + return; + } + + + c_ierr = PMPI_Send_init(OMPI_F2C_BOTTOM(buf), c_count, + c_datatype, OMPI_FINT_2_INT(*dest), + OMPI_FINT_2_INT(*tag), + c_comm, &c_req); + if (c_datatype != c_type) { + ompi_datatype_destroy(&c_datatype); + } + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + + if (MPI_SUCCESS == c_ierr) { + *request = PMPI_Request_c2f(c_req); + } +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/send_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/send_ts.c new file mode 100644 index 00000000000..892fcd3c7f4 --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/send_ts.c @@ -0,0 +1,55 @@ +/* + * Copyright (c) 2004-2005 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) 2011-2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/communicator/communicator.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + + +static const char FUNC_NAME[] = "MPI_Send"; + +void ompi_send_ts(CFI_cdesc_t* x, MPI_Fint *count, MPI_Fint *datatype, + MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *ierr) +{ + int c_ierr; + + MPI_Comm c_comm = PMPI_Comm_f2c(*comm); + MPI_Datatype c_datatype, c_type = PMPI_Type_f2c(*datatype); + void *buf = x->base_addr; + int c_count = OMPI_FINT_2_INT(*count); + + OMPI_CFI_2_C(x, c_count, c_type, c_datatype, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME); + return; + } + c_ierr = PMPI_Send(OMPI_F2C_BOTTOM(buf), c_count, + c_datatype, OMPI_FINT_2_INT(*dest), + OMPI_FINT_2_INT(*tag), c_comm); + if (c_datatype != c_type) { + ompi_datatype_destroy(&c_datatype); + } + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/sendrecv_replace_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/sendrecv_replace_ts.c new file mode 100644 index 00000000000..6d6270fb466 --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/sendrecv_replace_ts.c @@ -0,0 +1,68 @@ +/* + * Copyright (c) 2004-2005 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) 2011-2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/communicator/communicator.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + +static const char FUNC_NAME[] = "MPI_Sendrecv_replace"; + +void ompi_sendrecv_replace_ts(CFI_cdesc_t* x, MPI_Fint *count, MPI_Fint *datatype, + MPI_Fint *dest, MPI_Fint *sendtag, + MPI_Fint *source, MPI_Fint *recvtag, + MPI_Fint *comm, MPI_Fint *status, MPI_Fint *ierr) +{ + int c_ierr; + MPI_Datatype c_datatype, c_type = PMPI_Type_f2c(*datatype); + MPI_Comm c_comm = PMPI_Comm_f2c (*comm); + + MPI_Status c_status; + void *buf = x->base_addr; + int c_count = OMPI_FINT_2_INT(*count); + + OMPI_CFI_2_C(x, c_count, c_type, c_datatype, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME); + return; + } + + c_ierr = PMPI_Sendrecv_replace(OMPI_F2C_BOTTOM(buf), + OMPI_FINT_2_INT(*count), + c_datatype, + OMPI_FINT_2_INT(*dest), + OMPI_FINT_2_INT(*sendtag), + OMPI_FINT_2_INT(*source), + OMPI_FINT_2_INT(*recvtag), + c_comm, &c_status); + if (c_datatype != c_type) { + ompi_datatype_destroy(&c_datatype); + } + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + + if (MPI_SUCCESS == c_ierr && + !OMPI_IS_FORTRAN_STATUS_IGNORE(status)) { + PMPI_Status_c2f(&c_status, status); + } +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/sendrecv_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/sendrecv_ts.c new file mode 100644 index 00000000000..544867e6c60 --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/sendrecv_ts.c @@ -0,0 +1,84 @@ +/* + * Copyright (c) 2004-2005 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) 2011-2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/communicator/communicator.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + +static const char FUNC_NAME[] = "MPI_Sendrecv"; + +void ompi_sendrecv_ts(CFI_cdesc_t* x1, MPI_Fint *sendcount, MPI_Fint *sendtype, + MPI_Fint *dest, MPI_Fint *sendtag, CFI_cdesc_t* x2, + MPI_Fint *recvcount, MPI_Fint *recvtype, + MPI_Fint *source, MPI_Fint *recvtag, MPI_Fint *comm, + MPI_Fint *status, MPI_Fint *ierr) +{ + int c_ierr; + MPI_Comm c_comm = PMPI_Comm_f2c (*comm); + + MPI_Datatype c_senddatatype, c_sendtype = PMPI_Type_f2c(*sendtype); + MPI_Datatype c_recvdatatype, c_recvtype = PMPI_Type_f2c(*recvtype); + MPI_Status c_status; + void *sendbuf = x1->base_addr; + int c_sendcount = OMPI_FINT_2_INT(*sendcount); + void *recvbuf = x2->base_addr; + int c_recvcount = OMPI_FINT_2_INT(*recvcount); + + OMPI_CFI_2_C(x1, c_sendcount, c_sendtype, c_senddatatype, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME); + return; + } + OMPI_CFI_2_C(x2, c_recvcount, c_recvtype, c_recvdatatype, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + if (c_senddatatype != c_sendtype) { + ompi_datatype_destroy(&c_senddatatype); + } + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME); + return; + } + + c_ierr = PMPI_Sendrecv(OMPI_F2C_BOTTOM(sendbuf), c_sendcount, + c_senddatatype, + OMPI_FINT_2_INT(*dest), + OMPI_FINT_2_INT(*sendtag), + OMPI_F2C_BOTTOM(recvbuf), c_recvcount, + c_recvdatatype, OMPI_FINT_2_INT(*source), + OMPI_FINT_2_INT(*recvtag), + c_comm, &c_status); + if (c_senddatatype != c_sendtype) { + ompi_datatype_destroy(&c_senddatatype); + } + if (c_recvdatatype != c_recvtype) { + ompi_datatype_destroy(&c_recvdatatype); + } + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + + if (MPI_SUCCESS == c_ierr && + !OMPI_IS_FORTRAN_STATUS_IGNORE(status)) { + PMPI_Status_c2f(&c_status, status); + } +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/ssend_init_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/ssend_init_ts.c new file mode 100644 index 00000000000..77680847458 --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/ssend_init_ts.c @@ -0,0 +1,61 @@ +/* + * Copyright (c) 2004-2005 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) 2011-2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/communicator/communicator.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + +static const char FUNC_NAME[] = "MPI_Ssend_init"; + +void ompi_ssend_init_ts(CFI_cdesc_t* x, MPI_Fint *count, MPI_Fint *datatype, + MPI_Fint *dest, MPI_Fint *tag, + MPI_Fint *comm, MPI_Fint *request, MPI_Fint *ierr) +{ + int c_ierr; + MPI_Datatype c_datatype, c_type = PMPI_Type_f2c(*datatype); + MPI_Request c_req; + MPI_Comm c_comm = PMPI_Comm_f2c (*comm); + void *buf = x->base_addr; + int c_count = OMPI_FINT_2_INT(*count); + + OMPI_CFI_2_C(x, c_count, c_type, c_datatype, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME); + return; + } + + c_ierr = PMPI_Ssend_init(OMPI_F2C_BOTTOM(buf), c_count, + c_datatype, OMPI_FINT_2_INT(*dest), + OMPI_FINT_2_INT(*tag), + c_comm, &c_req); + if (c_datatype != c_type) { + ompi_datatype_destroy(&c_datatype); + } + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + + if (MPI_SUCCESS == c_ierr) { + *request = PMPI_Request_c2f(c_req); + } +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/ssend_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/ssend_ts.c new file mode 100644 index 00000000000..59483be73cc --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/ssend_ts.c @@ -0,0 +1,56 @@ +/* + * Copyright (c) 2004-2005 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) 2011-2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/communicator/communicator.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + +static const char FUNC_NAME[] = "MPI_Ssend"; + +void ompi_ssend_ts(CFI_cdesc_t* x, MPI_Fint *count, MPI_Fint *datatype, + MPI_Fint *dest, MPI_Fint *tag, + MPI_Fint *comm, MPI_Fint *ierr) +{ + int c_ierr; + MPI_Datatype c_datatype, c_type = PMPI_Type_f2c(*datatype); + MPI_Comm c_comm = PMPI_Comm_f2c (*comm); + + void *buf = x->base_addr; + int c_count = OMPI_FINT_2_INT(*count); + + OMPI_CFI_2_C(x, c_count, c_type, c_datatype, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME); + return; + } + + c_ierr = PMPI_Ssend(OMPI_F2C_BOTTOM(buf), c_count, + c_datatype, OMPI_FINT_2_INT(*dest), + OMPI_FINT_2_INT(*tag), c_comm); + if (c_datatype != c_type) { + ompi_datatype_destroy(&c_datatype); + } + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/ts.c new file mode 100644 index 00000000000..2914c3015c4 --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/ts.c @@ -0,0 +1,138 @@ +/* -*- Mode: C; c-basic-offset:4 ; -*- */ +/* + * Copyright (c) 2014 Argonne National Laboratory. + * Copyright (c) 2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ts.h" + +#include + +int ompi_ts_create_datatype(CFI_cdesc_t *cdesc, int oldcount, MPI_Datatype oldtype, MPI_Datatype *newtype) +{ + const int MAX_RANK = 15; /* Fortran 2008 specifies a maximum rank of 15 */ + MPI_Datatype types[MAX_RANK + 1]; /* Use a fixed size array to avoid malloc. + 1 for oldtype */ + int mpi_errno = MPI_SUCCESS; + int accum_elems = 1; + int accum_sm = cdesc->elem_len; + int done = 0; /* Have we created a datatype for oldcount of oldtype? */ + int last; /* Index of the last successfully created datatype in types[] */ + int extent; + int i, j; + +#ifdef OPAL_ENABLE_DEBUG + { + size_t size; + assert(cdesc->rank <= MAX_RANK); + ompi_datatype_type_size(oldtype, &size); + /* When cdesc->elem_len != size, things suddenly become complicated. Generally, it is hard to create + * a composite datatype based on two datatypes. Currently we don't support it and doubt it is usefull. + */ + assert(cdesc->elem_len == size); + } +#endif + + types[0] = oldtype; + i = 0; + done = 0; + while (i < cdesc->rank && !done) { + if (oldcount % accum_elems) { + /* oldcount should be a multiple of accum_elems, otherwise we might need an + * MPI indexed datatype to describle the irregular region, which is not supported yet. + */ + mpi_errno = MPI_ERR_INTERN; + last = i; + goto fn_exit; + } + + extent = oldcount / accum_elems; + if (extent > cdesc->dim[i].extent) { + extent = cdesc->dim[i].extent; + } else { + /* Up to now, we have accumlated enough elements */ + done = 1; + } + + if (cdesc->dim[i].sm == accum_sm) { + mpi_errno = PMPI_Type_contiguous(extent, types[i], &types[i+1]); + } else { + mpi_errno = PMPI_Type_create_hvector(extent, 1, cdesc->dim[i].sm, types[i], &types[i+1]); + } + if (mpi_errno != MPI_SUCCESS) { + last = i; + goto fn_exit; + } + + accum_sm = cdesc->dim[i].sm * cdesc->dim[i].extent; + accum_elems *= cdesc->dim[i].extent; + i++; + } + + if (done) { + *newtype = types[i]; + MPI_Type_commit(newtype); + last = i - 1; /* To avoid freeing newtype */ + } else { + /* If # of elements given by "oldcount oldtype" is bigger than + * what cdesc describles, then we will reach here. + */ + last = i; + mpi_errno = MPI_ERR_ARG; + goto fn_exit; + } + +fn_exit: + for (j = 1; j <= last; j++) + PMPI_Type_free(&types[j]); + return mpi_errno; +} + +static void copy(CFI_dim_t *dim, int rank, char * base, char **dest, size_t len) { + for (size_t i=0; iextent; i++) { + if (rank > 1) { + copy(dim-1, rank-1, base, dest, len); + } else { + int v; + memcpy(*dest, base, len); + *dest += len; + } + base += dim->sm; + } +} + +int ompi_ts_copy(CFI_cdesc_t *cdesc, char *buffer) { + copy(&cdesc->dim[cdesc->rank - 1], cdesc->rank, cdesc->base_addr, &buffer, cdesc->elem_len); + return OMPI_SUCCESS; +} + +static void copy_back(CFI_dim_t *dim, int rank, char * base, char **source, size_t len) { + for (size_t i=0; iextent; i++) { + if (rank > 1) { + copy_back(dim-1, rank-1, base, source, len); + } else { + int v; + memcpy(base, *source, len); + *source += len; + } + base += dim->sm; + } +} + +int ompi_ts_copy_back(char *buffer, CFI_cdesc_t *cdesc) { + copy_back(&cdesc->dim[cdesc->rank - 1], cdesc->rank, cdesc->base_addr, &buffer, cdesc->elem_len); + return OMPI_SUCCESS; +} + +size_t ompi_ts_size(CFI_cdesc_t *cdesc) { + size_t res = cdesc->elem_len; + for (int i=0; irank; i++) { + res *= cdesc->dim[i].extent; + } + return res; +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/ts.h b/ompi/mpi/fortran/use-mpi-f08/ts/ts.h new file mode 100644 index 00000000000..1f134eaae65 --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/ts.h @@ -0,0 +1,107 @@ +/* -*- Mode: C; c-basic-offset:4 ; -*- */ +/* + * Copyright (c) 2014 Argonne National Laboratory. + * Copyright (c) 2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include + +#include "ompi/datatype/ompi_datatype.h" +#include "ompi/mpi/fortran/base/fint_2_int.h" + +extern int ompi_ts_create_datatype(CFI_cdesc_t *cdesc, int oldcount, MPI_Datatype oldtype, MPI_Datatype *newtype); + +extern size_t ompi_ts_size(CFI_cdesc_t *cdesc); + +extern int ompi_ts_copy_back(char *buffer, CFI_cdesc_t *cdesc); + +extern int ompi_ts_copy(CFI_cdesc_t *cdesc, char *buffer); + +#define OMPI_CFI_2_C(x, count, type, datatype, rc) \ + do { \ + datatype = type; \ + if (x->rank != 0 && !CFI_is_contiguous(x)) { \ + rc = ompi_ts_create_datatype(x, count, type, &datatype); \ + if (MPI_SUCCESS == rc) { \ + count = 1; \ + } \ + } else { \ + rc = MPI_SUCCESS; \ + } \ + } while (0) + +#define OMPI_CFI_2_C_ALLOC(x, buffer, count, type, datatype, rc) \ + do { \ + datatype = type; \ + if (x->rank != 0 && !CFI_is_contiguous(x)) { \ + size_t size = ompi_ts_size(x); \ + buffer = malloc(size); \ + if (NULL == buffer) { \ + rc = MPI_ERR_NO_MEM; \ + } else { \ + rc = MPI_SUCCESS; \ + } \ + } else { \ + buffer = x->base_addr; \ + rc = MPI_SUCCESS; \ + } \ + } while (0) + +#define OMPI_CFI_2_C_COPY(x, buffer, count, type, datatype, rc) \ + do { \ + datatype = type; \ + if (x->rank != 0 && !CFI_is_contiguous(x)) { \ + size_t size = ompi_ts_size(x); \ + buffer = malloc(size); \ + if (NULL == buffer) { \ + rc = MPI_ERR_NO_MEM; \ + } else { \ + rc = ompi_ts_copy(x, buffer); \ + } \ + } else { \ + buffer = x->base_addr; \ + rc = MPI_SUCCESS; \ + } \ + } while (0) + +#define OMPI_C_2_CFI_FREE(x, buffer, count, type, datatype, rc) \ + do { \ + if (buffer != x->base_addr) { \ + free(buffer); \ + } \ + if (type != datatype) { \ + rc = PMPI_Type_free(&datatype); \ + } \ + } while (0) + +#define OMPI_C_2_CFI_COPY(x, buffer, count, type, datatype, rc) \ + do { \ + if (buffer != x->base_addr) { \ + rc = ompi_ts_copy_back(buffer, x); \ + free(buffer); \ + } \ + if (type != datatype) { \ + rc = PMPI_Type_free(&datatype); \ + } \ + } while (0) + +#define OMPI_CFI_IS_CONTIGUOUS(x) \ + (0 == x->rank || CFI_is_contiguous(x)) + +#define OMPI_CFI_CHECK_CONTIGUOUS(x, rc) \ + do { \ + if (OMPI_CFI_IS_CONTIGUOUS(x)) { \ + rc = MPI_SUCCESS; \ + } else { \ + rc = MPI_ERR_INTERN; \ + } \ + } while (0) + diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/unpack_external_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/unpack_external_ts.c new file mode 100644 index 00000000000..26df127a3ea --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/unpack_external_ts.c @@ -0,0 +1,81 @@ +/* + * Copyright (c) 2004-2005 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) 2011-2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/communicator/communicator.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/constants.h" +#include "ompi/mpi/fortran/base/constants.h" +#include "ompi/mpi/fortran/base/fortran_base_strings.h" + +static const char FUNC_NAME[] = "MPI_Unpack_external"; + +void ompi_unpack_external_ts(char* datarep, CFI_cdesc_t* x1, MPI_Aint *insize, + MPI_Aint *position, CFI_cdesc_t* x2, + MPI_Fint *outcount, MPI_Fint *datatype, + MPI_Fint *ierr, int datarep_len) +{ + int ret, c_ierr; + char *c_datarep; + MPI_Datatype c_datatype, c_type = PMPI_Type_f2c(*datatype); + char *inbuf = x1->base_addr; + void *outbuf = x2->base_addr; + int c_outcount = OMPI_FINT_2_INT(*outcount); + + c_type = PMPI_Type_f2c(*datatype); + + /* Convert the fortran string */ + + if (OMPI_SUCCESS != (ret = ompi_fortran_string_f2c(datarep, datarep_len, + &c_datarep))) { + c_ierr = OMPI_ERRHANDLER_INVOKE(MPI_COMM_SELF, ret, FUNC_NAME); + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + return; + } + + OMPI_CFI_CHECK_CONTIGUOUS(x1, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(MPI_COMM_SELF, c_ierr, FUNC_NAME); + return; + } + + OMPI_CFI_2_C(x2, c_outcount, c_type, c_datatype, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(MPI_COMM_SELF, c_ierr, FUNC_NAME); + return; + } + + c_ierr = PMPI_Unpack_external(c_datarep, inbuf, + *insize, + position, + OMPI_F2C_BOTTOM(outbuf), + c_outcount, + c_datatype); + if (c_datatype != c_type) { + ompi_datatype_destroy(&c_datatype); + } + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + + free(c_datarep); +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/unpack_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/unpack_ts.c new file mode 100644 index 00000000000..0712d37c8a2 --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/unpack_ts.c @@ -0,0 +1,70 @@ +/* + * Copyright (c) 2004-2005 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) 2011-2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/communicator/communicator.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + +static const char FUNC_NAME[] = "MPI_Unpack"; + +void ompi_unpack_ts(CFI_cdesc_t* x1, MPI_Fint *insize, MPI_Fint *position, + CFI_cdesc_t* x2, MPI_Fint *outcount, MPI_Fint *datatype, + MPI_Fint *comm, MPI_Fint *ierr) +{ + int c_ierr; + MPI_Comm c_comm = PMPI_Comm_f2c(*comm); + MPI_Datatype c_datatype, c_type = PMPI_Type_f2c(*datatype); + OMPI_SINGLE_NAME_DECL(position); + char *inbuf = x1->base_addr; + void *outbuf = x2->base_addr; + int c_outcount = OMPI_FINT_2_INT(*outcount); + + OMPI_CFI_CHECK_CONTIGUOUS(x1, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME); + return; + } + + OMPI_CFI_2_C(x2, c_outcount, c_type, c_datatype, c_ierr); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME); + return; + } + + OMPI_SINGLE_FINT_2_INT(position); + + c_ierr = PMPI_Unpack(inbuf, OMPI_FINT_2_INT(*insize), + OMPI_SINGLE_NAME_CONVERT(position), + OMPI_F2C_BOTTOM(outbuf), c_outcount, + c_datatype, c_comm); + if (c_datatype != c_type) { + ompi_datatype_destroy(&c_datatype); + } + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + + if (MPI_SUCCESS == c_ierr) { + OMPI_SINGLE_INT_2_FINT(position); + } +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/win_attach_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/win_attach_ts.c new file mode 100644 index 00000000000..2917d7d41e7 --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/win_attach_ts.c @@ -0,0 +1,33 @@ +/* + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/win/win.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" + +static const char FUNC_NAME[] = "MPI_Win_attach"; + +void ompi_win_attach_ts(MPI_Fint *win, CFI_cdesc_t *x, MPI_Aint *size, + MPI_Fint *ierr) +{ + int c_ierr; + MPI_Win c_win; + + c_win = PMPI_Win_f2c(*win); + if (OMPI_CFI_IS_CONTIGUOUS(x)) { + c_ierr = PMPI_Win_attach(c_win, x->base_addr, *size); + } else { + c_ierr = MPI_ERR_BUFFER; + OMPI_ERRHANDLER_INVOKE(c_win, c_ierr, FUNC_NAME); + } + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/win_create_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/win_create_ts.c new file mode 100644 index 00000000000..82afda3878e --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/win_create_ts.c @@ -0,0 +1,55 @@ +/* + * Copyright (c) 2004-2005 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) 2007-2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/communicator/communicator.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" + +static const char FUNC_NAME[] = "MPI_Win_create"; + +void ompi_win_create_ts(CFI_cdesc_t *x, MPI_Aint *size, MPI_Fint *disp_unit, + MPI_Fint *info, MPI_Fint *comm, MPI_Fint *win, + MPI_Fint *ierr) +{ + int c_ierr; + MPI_Win c_win; + MPI_Info c_info; + MPI_Comm c_comm; + + c_comm = PMPI_Comm_f2c(*comm); + c_info = PMPI_Info_f2c(*info); + + if (OMPI_CFI_IS_CONTIGUOUS(x)) { + c_ierr = PMPI_Win_create(x->base_addr, *size, + OMPI_FINT_2_INT(*disp_unit), + c_info, c_comm, &c_win); + } else { + c_ierr = MPI_ERR_BUFFER; + OMPI_ERRHANDLER_INVOKE(c_comm, c_ierr, FUNC_NAME); + } + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + + if (MPI_SUCCESS == c_ierr) { + *win = PMPI_Win_c2f(c_win); + } +} diff --git a/ompi/mpi/fortran/use-mpi-f08/ts/win_detach_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/win_detach_ts.c new file mode 100644 index 00000000000..f68a03d31db --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/win_detach_ts.c @@ -0,0 +1,33 @@ +/* + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/win/win.h" +#include "ompi/errhandler/errhandler.h" +#include "ompi/mpi/fortran/use-mpi-f08/ts/bindings.h" + +static const char FUNC_NAME[] = "MPI_Win_detach"; + +void ompi_win_detach_ts(MPI_Fint *win, CFI_cdesc_t *x, + MPI_Fint *ierr) +{ + int c_ierr; + MPI_Win c_win; + + c_win = PMPI_Win_f2c(*win); + if (OMPI_CFI_IS_CONTIGUOUS(x)) { + c_ierr = PMPI_Win_detach(c_win, x->base_addr); + } else { + c_ierr = MPI_ERR_BUFFER; + OMPI_ERRHANDLER_INVOKE(c_win, c_ierr, FUNC_NAME); + } + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); +} diff --git a/ompi/mpi/fortran/use-mpi-f08/unpack_external_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/unpack_external_f08.F90 index 8cf2e637fe8..5a9f262cc11 100644 --- a/ompi/mpi/fortran/use-mpi-f08/unpack_external_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/unpack_external_f08.F90 @@ -17,8 +17,8 @@ subroutine MPI_Unpack_external_f08(datarep,inbuf,insize,position,outbuf,outcount use :: ompi_mpifh_bindings, only : ompi_unpack_external_f implicit none CHARACTER(LEN=*), INTENT(IN) :: datarep - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: inbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE :: outbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: inbuf + OMPI_F08_IGNORE_TKR_TYPE :: outbuf INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: insize INTEGER(MPI_ADDRESS_KIND), INTENT(INOUT) :: position INTEGER, INTENT(IN) :: outcount diff --git a/ompi/mpi/fortran/use-mpi-f08/unpack_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/unpack_f08.F90 index 0f91d7859bc..6b5e6c04dc6 100644 --- a/ompi/mpi/fortran/use-mpi-f08/unpack_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/unpack_f08.F90 @@ -16,8 +16,8 @@ subroutine MPI_Unpack_f08(inbuf,insize,position,outbuf,outcount,datatype,comm,ie use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm use :: ompi_mpifh_bindings, only : ompi_unpack_f implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: inbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE :: outbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: inbuf + OMPI_F08_IGNORE_TKR_TYPE :: outbuf INTEGER, INTENT(IN) :: insize, outcount INTEGER, INTENT(INOUT) :: position TYPE(MPI_Datatype), INTENT(IN) :: datatype diff --git a/ompi/mpi/fortran/use-mpi-f08/win_attach_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/win_attach_f08.F90 index fb78b337158..fdb7ef930df 100644 --- a/ompi/mpi/fortran/use-mpi-f08/win_attach_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/win_attach_f08.F90 @@ -13,7 +13,7 @@ subroutine MPI_Win_attach_f08(win,base,size,ierror) use :: mpi_f08_types, only : MPI_Win, MPI_ADDRESS_KIND use :: ompi_mpifh_bindings, only : ompi_win_attach_f implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: base + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: base INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: size TYPE(MPI_Win), INTENT(IN) :: win INTEGER, OPTIONAL, INTENT(OUT) :: ierror diff --git a/ompi/mpi/fortran/use-mpi-f08/win_create_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/win_create_f08.F90 index 2376f399ce5..1699f52b4b4 100644 --- a/ompi/mpi/fortran/use-mpi-f08/win_create_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/win_create_f08.F90 @@ -16,7 +16,7 @@ subroutine MPI_Win_create_f08(base,size,disp_unit,info,comm,win,ierror) use :: mpi_f08_types, only : MPI_Info, MPI_Comm, MPI_Win, MPI_ADDRESS_KIND use :: ompi_mpifh_bindings, only : ompi_win_create_f implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS:: base + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS:: base INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: size INTEGER, INTENT(IN) :: disp_unit TYPE(MPI_Info), INTENT(IN) :: info diff --git a/ompi/mpi/fortran/use-mpi-f08/win_detach_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/win_detach_f08.F90 index a85f5b62523..1865b2a7455 100644 --- a/ompi/mpi/fortran/use-mpi-f08/win_detach_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/win_detach_f08.F90 @@ -13,7 +13,7 @@ subroutine MPI_Win_detach_f08(win,base,ierror) use :: mpi_f08_types, only : MPI_Win, MPI_ADDRESS_KIND use :: ompi_mpifh_bindings, only : ompi_win_detach_f implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: base + OMPI_F08_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: base TYPE(MPI_Win), INTENT(IN) :: win INTEGER, OPTIONAL, INTENT(OUT) :: ierror integer :: c_ierror diff --git a/ompi/mpi/fortran/use-mpi-ignore-tkr/mpi-ignore-tkr.F90 b/ompi/mpi/fortran/use-mpi-ignore-tkr/mpi-ignore-tkr.F90 index cb1ce70966e..836094ecfa8 100644 --- a/ompi/mpi/fortran/use-mpi-ignore-tkr/mpi-ignore-tkr.F90 +++ b/ompi/mpi/fortran/use-mpi-ignore-tkr/mpi-ignore-tkr.F90 @@ -28,6 +28,7 @@ module mpi use mpi_types #endif include "mpif-config.h" + include "mpif-subarrays-config.h" include "mpif-constants.h" include "mpif-handles.h" include "mpif-io-constants.h" diff --git a/ompi/mpi/fortran/use-mpi-tkr/mpi.F90 b/ompi/mpi/fortran/use-mpi-tkr/mpi.F90 index b8b8942fdf3..b8e7c692d53 100644 --- a/ompi/mpi/fortran/use-mpi-tkr/mpi.F90 +++ b/ompi/mpi/fortran/use-mpi-tkr/mpi.F90 @@ -29,6 +29,7 @@ module mpi #endif include "mpif-config.h" + include "mpif-subarrays-config.h" include "mpif-constants.h" include "mpif-handles.h" include "mpif-io-constants.h"