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 0fe0b333ebf..31c2abefc26 100644 --- a/config/ompi_setup_mpi_fortran.m4 +++ b/config/ompi_setup_mpi_fortran.m4 @@ -449,14 +449,27 @@ end program]])], # 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) @@ -590,8 +603,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], @@ -599,8 +610,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? @@ -630,6 +639,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 @@ -652,6 +667,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 # ------------------- @@ -792,10 +809,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) @@ -877,6 +893,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/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 05db27ced50..96e9381b1f2 100644 --- a/ompi/include/Makefile.am +++ b/ompi/include/Makefile.am @@ -42,7 +42,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 ec2ba43fa1b..0d8b552df29 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 d788d56c2da..3797716ed12 100644 --- a/ompi/mpi/fortran/use-mpi-f08/Makefile.am +++ b/ompi/mpi/fortran/use-mpi-f08/Makefile.am @@ -45,6 +45,7 @@ AM_FCFLAGS = -I$(top_srcdir)/ompi/mpi/fortran/use-mpi-f08/mod \ $(OMPI_FC_MODULE_FLAG)$(top_builddir)/ompi/$(OMPI_FORTRAN_USEMPI_DIR) \ $(OMPI_FC_MODULE_FLAG)mod \ $(OMPI_FC_MODULE_FLAG)bindings \ + $(OMPI_FC_MODULE_FLAG)ts \ -I$(top_srcdir) -I$(top_builddir) $(FCFLAGS_f90) \ -DOMPI_BUILD_MPI_PROFILING=0 @@ -548,6 +549,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/allgather_init_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/allgather_init_f08.F90 index 8fe93a449d0..a290a795d88 100644 --- a/ompi/mpi/fortran/use-mpi-f08/allgather_init_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/allgather_init_f08.F90 @@ -16,8 +16,8 @@ subroutine MPI_Allgather_init_f08(sendbuf,sendcount,sendtype,recvbuf,recvcount,r use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Info, MPI_Request use :: ompi_mpifh_bindings, only : 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 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/allgatherv_init_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/allgatherv_init_f08.F90 index 97f1b223350..800cf311091 100644 --- a/ompi/mpi/fortran/use-mpi-f08/allgatherv_init_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/allgatherv_init_f08.F90 @@ -17,8 +17,8 @@ subroutine MPI_Allgatherv_init_f08(sendbuf,sendcount,sendtype,recvbuf,recvcounts use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Info, MPI_Request use :: ompi_mpifh_bindings, only : 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(*) 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/allreduce_init_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/allreduce_init_f08.F90 index 85b67cac49c..caa46bdb66e 100644 --- a/ompi/mpi/fortran/use-mpi-f08/allreduce_init_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/allreduce_init_f08.F90 @@ -16,8 +16,8 @@ subroutine MPI_Allreduce_init_f08(sendbuf,recvbuf,count,datatype,op,comm,info,re use :: mpi_f08_types, only : MPI_Datatype, MPI_Op, MPI_Comm, MPI_Info, MPI_Request use :: ompi_mpifh_bindings, only : 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 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/alltoall_init_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/alltoall_init_f08.F90 index 513ef505d00..f5234cd5b66 100644 --- a/ompi/mpi/fortran/use-mpi-f08/alltoall_init_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/alltoall_init_f08.F90 @@ -17,8 +17,8 @@ subroutine MPI_Alltoall_init_f08(sendbuf,sendcount,sendtype,recvbuf,& use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Info, MPI_Request use :: ompi_mpifh_bindings, only : 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 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/alltoallv_init_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/alltoallv_init_f08.F90 index 49bf9e97d01..b3998d14dfb 100644 --- a/ompi/mpi/fortran/use-mpi-f08/alltoallv_init_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/alltoallv_init_f08.F90 @@ -17,8 +17,8 @@ subroutine MPI_Alltoallv_init_f08(sendbuf,sendcounts,sdispls,sendtype,recvbuf,& use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Info, MPI_Request use :: ompi_mpifh_bindings, only : 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(*) 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/alltoallw_init_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/alltoallw_init_f08.F90 index ce2dbd88532..514b6be2a1a 100644 --- a/ompi/mpi/fortran/use-mpi-f08/alltoallw_init_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/alltoallw_init_f08.F90 @@ -17,8 +17,8 @@ subroutine MPI_Alltoallw_init_f08(sendbuf,sendcounts,sdispls,sendtypes,& use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Info, MPI_Request use :: ompi_mpifh_bindings, only : 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(*) TYPE(MPI_Datatype), INTENT(IN) OMPI_ASYNCHRONOUS :: sendtypes(*), recvtypes(*) TYPE(MPI_Comm), INTENT(IN) :: comm 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/bcast_init_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/bcast_init_f08.F90 index 997d28263e3..b6233d67220 100644 --- a/ompi/mpi/fortran/use-mpi-f08/bcast_init_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/bcast_init_f08.F90 @@ -16,7 +16,7 @@ subroutine MPI_Bcast_init_f08(buffer,count,datatype,root,comm,info,request,ierro use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Info, MPI_Request use :: ompi_mpifh_bindings, only : 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 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 2de875ade72..8d034f5b88e 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 @@ -273,10 +273,10 @@ end subroutine ompi_isend_f subroutine ompi_isendrecv_f(sendbuf,sendcount,sendtype,dest,sendtag,recvbuf, & recvcount,recvtype,source,recvtag,comm,request,ierror) & - BIND(C, name="ompi_isendrecv_f") + BIND(C, name="ompi_isendrecv_@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, dest, sendtag, recvcount, source, recvtag INTEGER, INTENT(IN) :: sendtype INTEGER, INTENT(IN) :: recvtype @@ -287,9 +287,9 @@ end subroutine ompi_isendrecv_f subroutine ompi_isendrecv_replace_f(buf,count,datatype,dest,sendtag,source, & recvtag,comm,request,ierror) & - BIND(C, name="ompi_isendrecv_replace_f") + BIND(C, name="ompi_isendrecv_replace_@OMPI_F08_BINDINGS_EXTENSION@") 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 @@ -312,7 +312,7 @@ subroutine ompi_psend_init_f(buf,partitions,count,datatype,dest,tag,comm,info,re BIND(C, name="ompi_psend_init_f") use :: mpi_f08_types, only : MPI_COUNT_KIND implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: buf INTEGER, INTENT(IN) :: partitions, dest, tag INTEGER(KIND=MPI_COUNT_KIND), INTENT(IN):: count INTEGER, INTENT(IN) :: datatype @@ -326,7 +326,7 @@ subroutine ompi_precv_init_f(buf,partitions,count,datatype,dest,tag,comm,info,re BIND(C, name="ompi_precv_init_f") use :: mpi_f08_types, only : MPI_COUNT_KIND implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: buf INTEGER, INTENT(IN) :: partitions, dest, tag INTEGER(KIND=MPI_COUNT_KIND), INTENT(IN):: count INTEGER, INTENT(IN) :: datatype @@ -372,10 +372,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 @@ -384,9 +384,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 @@ -402,9 +402,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 @@ -412,9 +412,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 @@ -423,9 +423,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 @@ -434,11 +434,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 @@ -449,10 +449,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 @@ -461,9 +461,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 @@ -472,9 +472,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 @@ -482,9 +482,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 @@ -551,10 +551,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 @@ -581,10 +581,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 @@ -594,13 +594,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 @@ -855,10 +855,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 @@ -868,13 +868,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 @@ -885,10 +885,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 @@ -897,11 +897,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 @@ -914,8 +914,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 @@ -927,10 +927,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 @@ -941,10 +941,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 @@ -958,8 +958,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 @@ -971,10 +971,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 @@ -983,10 +983,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 @@ -998,8 +998,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 @@ -1011,10 +1011,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 @@ -1024,10 +1024,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 @@ -1040,8 +1040,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 @@ -1053,10 +1053,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 @@ -1066,10 +1066,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 @@ -1082,8 +1082,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 @@ -1095,10 +1095,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 @@ -1108,10 +1108,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 @@ -1124,8 +1124,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 @@ -1160,9 +1160,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 @@ -1170,9 +1170,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 @@ -1183,7 +1183,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 @@ -1193,10 +1193,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 @@ -1205,10 +1205,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 @@ -1220,8 +1220,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 @@ -1233,10 +1233,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 @@ -1246,10 +1246,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 @@ -1262,8 +1262,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 @@ -1275,10 +1275,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 @@ -1289,10 +1289,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 @@ -1306,8 +1306,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 @@ -1326,10 +1326,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 @@ -1338,10 +1338,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 @@ -1353,8 +1353,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 @@ -1365,10 +1365,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 @@ -1377,10 +1377,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 @@ -1390,10 +1390,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 @@ -1406,8 +1406,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 @@ -1419,10 +1419,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 @@ -1432,10 +1432,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 @@ -1448,8 +1448,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 @@ -1460,10 +1460,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 @@ -1472,10 +1472,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 @@ -1487,8 +1487,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 @@ -1500,10 +1500,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 @@ -1513,10 +1513,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 @@ -1529,8 +1529,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 @@ -1542,10 +1542,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 @@ -1556,10 +1556,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(*) @@ -1574,8 +1574,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 @@ -2376,9 +2376,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 @@ -2645,10 +2645,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 @@ -2662,10 +2662,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 @@ -2678,10 +2678,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 @@ -2693,10 +2693,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 @@ -2711,13 +2711,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 @@ -2731,13 +2731,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 @@ -2749,10 +2749,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 @@ -2764,10 +2764,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 @@ -2787,11 +2787,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 @@ -2801,11 +2801,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 @@ -2815,10 +2815,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 @@ -2837,20 +2837,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 @@ -3176,10 +3176,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 @@ -3187,12 +3187,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 @@ -3200,10 +3200,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 @@ -3211,12 +3211,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 @@ -3224,10 +3224,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 @@ -3235,10 +3235,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 @@ -3246,12 +3246,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 @@ -3259,10 +3259,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 @@ -3270,12 +3270,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 @@ -3283,9 +3283,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 @@ -3316,11 +3316,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 @@ -3328,11 +3328,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 @@ -3340,32 +3340,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 @@ -3373,12 +3373,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 @@ -3386,33 +3386,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 @@ -3420,31 +3420,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 @@ -3511,11 +3511,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 @@ -3523,11 +3523,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 @@ -3535,32 +3535,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 @@ -3568,12 +3568,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 @@ -3581,33 +3581,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 @@ -3615,31 +3615,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 @@ -3670,7 +3670,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 @@ -3730,9 +3730,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) & @@ -3757,9 +3757,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 @@ -3768,10 +3768,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 @@ -3781,11 +3781,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 @@ -3794,11 +3794,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 @@ -3811,8 +3811,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 @@ -3823,11 +3823,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 @@ -3837,11 +3837,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 @@ -3855,8 +3855,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 @@ -3868,11 +3868,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 @@ -3881,11 +3881,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 @@ -3898,8 +3898,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 @@ -3910,11 +3910,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 @@ -3923,11 +3923,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 @@ -3940,8 +3940,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 @@ -3952,11 +3952,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 @@ -3966,11 +3966,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 @@ -3984,8 +3984,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/exscan_init_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/exscan_init_f08.F90 index 3669eb7d454..598be80385e 100644 --- a/ompi/mpi/fortran/use-mpi-f08/exscan_init_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/exscan_init_f08.F90 @@ -16,8 +16,8 @@ subroutine MPI_Exscan_init_f08(sendbuf,recvbuf,count,datatype,op,comm,info,reque use :: mpi_f08_types, only : MPI_Datatype, MPI_Op, MPI_Comm, MPI_Info, MPI_Request use :: ompi_mpifh_bindings, only : 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 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/gather_init_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/gather_init_f08.F90 index d18bfd1bc19..b2ac45260e3 100644 --- a/ompi/mpi/fortran/use-mpi-f08/gather_init_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/gather_init_f08.F90 @@ -17,8 +17,8 @@ subroutine MPI_Gather_init_f08(sendbuf,sendcount,sendtype,recvbuf,recvcount,& use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Info, MPI_Request use :: ompi_mpifh_bindings, only : 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 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/gatherv_init_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/gatherv_init_f08.F90 index 5ab996416ed..3da8aa5bcea 100644 --- a/ompi/mpi/fortran/use-mpi-f08/gatherv_init_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/gatherv_init_f08.F90 @@ -17,8 +17,8 @@ subroutine MPI_Gatherv_init_f08(sendbuf,sendcount,sendtype,recvbuf,recvcounts,& use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Info, MPI_Request use :: ompi_mpifh_bindings, only : 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(*) 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/isendrecv_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/isendrecv_f08.F90 index 0975c50f4ab..5daae2073f8 100644 --- a/ompi/mpi/fortran/use-mpi-f08/isendrecv_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/isendrecv_f08.F90 @@ -19,8 +19,8 @@ subroutine MPI_Isendrecv_f08(sendbuf,sendcount,sendtype,dest,sendtag,recvbuf, & use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request use :: ompi_mpifh_bindings, only : 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 TYPE(MPI_Datatype), INTENT(IN) :: sendtype TYPE(MPI_Datatype), INTENT(IN) :: recvtype diff --git a/ompi/mpi/fortran/use-mpi-f08/isendrecv_replace_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/isendrecv_replace_f08.F90 index 91a18ca4ac6..0a67312a838 100644 --- a/ompi/mpi/fortran/use-mpi-f08/isendrecv_replace_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/isendrecv_replace_f08.F90 @@ -19,7 +19,7 @@ subroutine MPI_Isendrecv_replace_f08(buf,count,datatype,dest,sendtag,source, & use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request use :: ompi_mpifh_bindings, only : 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 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 c66f92d1332..6b2d97d679e 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,102 +113,97 @@ 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 -subroutine MPI_Isendrecv_f08(sendbuf,sendcount,sendtype,dest,sendtag,recvbuf, & +subroutine MPI_Isendrecv_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(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 TYPE(MPI_Request), INTENT(OUT) :: request INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_Isendrecv_f08 +end subroutine MPI_Isendrecv_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ end interface MPI_Isendrecv interface MPI_Isendrecv_replace -subroutine MPI_Isendrecv_replace_f08(buf,count,datatype,dest,sendtag,source,recvtag, & +subroutine MPI_Isendrecv_replace_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(buf,count,datatype,dest,sendtag,source,recvtag, & 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 TYPE(MPI_Request), INTENT(OUT) :: request INTEGER, OPTIONAL, INTENT(OUT) :: ierror -end subroutine MPI_Isendrecv_replace_f08 +end subroutine MPI_Isendrecv_replace_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ 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, MPI_COUNT_KIND 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, dest, tag INTEGER(MPI_COUNT_KIND), INTENT(IN) :: count TYPE(MPI_Datatype), INTENT(IN) :: datatype @@ -222,12 +217,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, MPI_COUNT_KIND 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, dest, tag INTEGER(MPI_COUNT_KIND), INTENT(IN) :: count TYPE(MPI_Datatype), INTENT(IN) :: datatype @@ -291,31 +281,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 @@ -339,88 +329,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_call_errhandler @@ -530,30 +520,30 @@ end subroutine MPI_Session_set_errhandler_f08 end interface MPI_Session_set_errhandler 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 @@ -681,14 +671,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 @@ -714,39 +704,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 @@ -755,7 +745,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 @@ -1026,68 +1016,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 @@ -1095,9 +1085,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 @@ -1108,36 +1098,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 @@ -1145,9 +1135,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 @@ -1159,43 +1149,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 @@ -1207,34 +1197,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 @@ -1242,9 +1232,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 @@ -1255,34 +1245,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 @@ -1290,9 +1280,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 @@ -1303,34 +1293,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 @@ -1338,9 +1328,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 @@ -1381,38 +1371,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 @@ -1423,43 +1413,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 @@ -1471,34 +1461,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 @@ -1506,9 +1496,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 @@ -1519,36 +1509,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 @@ -1556,9 +1546,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 @@ -1601,43 +1591,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 @@ -1649,50 +1639,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 @@ -1700,9 +1690,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 @@ -1714,36 +1704,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 @@ -1751,9 +1741,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 @@ -1765,43 +1755,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 @@ -1813,34 +1803,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 @@ -1848,9 +1838,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 @@ -1861,36 +1851,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 @@ -1898,9 +1888,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 @@ -2972,12 +2962,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 @@ -3305,12 +3295,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 @@ -3318,17 +3308,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 @@ -3337,32 +3327,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 @@ -3370,40 +3360,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 @@ -3411,32 +3401,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 @@ -3444,40 +3434,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 @@ -3490,18 +3480,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 @@ -3516,26 +3506,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 @@ -3916,147 +3906,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 @@ -4083,165 +4073,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 @@ -4320,165 +4310,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 @@ -4504,8 +4494,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 @@ -4576,11 +4566,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 @@ -4619,62 +4609,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 @@ -4682,9 +4672,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 @@ -4695,36 +4685,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 @@ -4732,9 +4722,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 @@ -4746,34 +4736,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 @@ -4781,9 +4771,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 @@ -4794,34 +4784,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 @@ -4829,9 +4819,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 @@ -4842,36 +4832,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 @@ -4879,9 +4869,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 41e747e975c..f69dc735f19 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,28 @@ #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_f08 PMPI_Isendrecv_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Isendrecv_f08ts PMPI_Isendrecv_f08ts #define MPI_Isendrecv_replace PMPI_Isendrecv_replace -#define MPI_Isendrecv_replace_f08 PMPI_Isendrecv_replace_f08 +#define MPI_Isendrecv_replace_f08 PMPI_Isendrecv_replace_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Isendrecv_replace_f08ts PMPI_Isendrecv_replace_f08ts #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 +58,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_call_errhandler PMPI_Session_call_errhandler #define MPI_Session_call_errhandler_f08 PMPI_Session_call_errhandler_f08 #define MPI_Session_create_errhandler PMPI_Session_create_errhandler @@ -74,7 +92,6 @@ #define MPI_Session_get_errhandler PMPI_Session_get_errhandler #define MPI_Session_get_errhandler_f08 PMPI_Session_get_errhandler_f08 #define MPI_Session_get_info PMPI_Session_get_info -#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 #define MPI_Session_get_nth_pset_f08 PMPI_Session_get_nth_pset_f08 @@ -91,9 +108,11 @@ #define MPI_Session_set_errhandler PMPI_Session_set_errhandler #define MPI_Session_set_errhandler_f08 PMPI_Session_set_errhandler_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 @@ -117,15 +136,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 @@ -175,43 +197,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 @@ -221,27 +257,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 @@ -251,41 +295,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 @@ -487,7 +544,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 @@ -551,35 +609,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 @@ -659,53 +730,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 @@ -721,29 +814,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 @@ -759,7 +864,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 @@ -767,38 +873,171 @@ #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_Isendrecv_f08 MPI_Isendrecv_f08@OMPI_F08_BINDINGS_TS_SUFFIX@ +#define MPI_Isendrecv_replace_f08 MPI_Isendrecv_replace_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 db0cb3e323c..6fc89f88358 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_allgather_init_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/neighbor_allgather_init_f08.F90 index 0137d7ef79b..0ac8679628b 100644 --- a/ompi/mpi/fortran/use-mpi-f08/neighbor_allgather_init_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/neighbor_allgather_init_f08.F90 @@ -16,8 +16,8 @@ subroutine MPI_Neighbor_allgather_init_f08(sendbuf,sendcount,sendtype,recvbuf,re use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Info, MPI_Request use :: ompi_mpifh_bindings, only : ompi_neighbor_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 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_allgatherv_init_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/neighbor_allgatherv_init_f08.F90 index eebeaecfbae..3658ec29c7c 100644 --- a/ompi/mpi/fortran/use-mpi-f08/neighbor_allgatherv_init_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/neighbor_allgatherv_init_f08.F90 @@ -17,8 +17,8 @@ subroutine MPI_Neighbor_allgatherv_init_f08(sendbuf,sendcount,sendtype,recvbuf,r use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Info, MPI_Request use :: ompi_mpifh_bindings, only : ompi_neighbor_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(*) 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_alltoall_init_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/neighbor_alltoall_init_f08.F90 index a77283d4e78..d8a2bef3d43 100644 --- a/ompi/mpi/fortran/use-mpi-f08/neighbor_alltoall_init_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/neighbor_alltoall_init_f08.F90 @@ -17,8 +17,8 @@ subroutine MPI_Neighbor_alltoall_init_f08(sendbuf,sendcount,sendtype,recvbuf,& use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Info, MPI_Request use :: ompi_mpifh_bindings, only : ompi_neighbor_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 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_alltoallv_init_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/neighbor_alltoallv_init_f08.F90 index 1ed7d8a502b..e9a160c4361 100644 --- a/ompi/mpi/fortran/use-mpi-f08/neighbor_alltoallv_init_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/neighbor_alltoallv_init_f08.F90 @@ -17,8 +17,8 @@ subroutine MPI_Neighbor_alltoallv_init_f08(sendbuf,sendcounts,sdispls,sendtype,r use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Info, MPI_Request use :: ompi_mpifh_bindings, only : ompi_neighbor_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(*) 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/neighbor_alltoallw_init_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/neighbor_alltoallw_init_f08.F90 index 6ab2219e1c8..25ef7cedc7d 100644 --- a/ompi/mpi/fortran/use-mpi-f08/neighbor_alltoallw_init_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/neighbor_alltoallw_init_f08.F90 @@ -16,8 +16,8 @@ subroutine MPI_Neighbor_alltoallw_init_f08(sendbuf,sendcounts,sdispls,sendtypes, use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Info, MPI_Request, MPI_ADDRESS_KIND use :: ompi_mpifh_bindings, only : ompi_neighbor_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(*), recvcounts(*) INTEGER(MPI_ADDRESS_KIND), INTENT(IN) OMPI_ASYNCHRONOUS :: sdispls(*), rdispls(*) TYPE(MPI_Datatype), INTENT(IN) OMPI_ASYNCHRONOUS :: 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/precv_init_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/precv_init_f08.F90 index 94fae6fb892..79214d86eba 100644 --- a/ompi/mpi/fortran/use-mpi-f08/precv_init_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/precv_init_f08.F90 @@ -19,7 +19,7 @@ subroutine MPI_Precv_init_f08(buf,partitions,count,datatype,dest,tag,comm,info,r use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Info, MPI_Request, MPI_COUNT_KIND use :: ompi_mpifh_bindings, only : 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, dest, tag INTEGER(KIND=MPI_COUNT_KIND), INTENT(IN) :: count TYPE(MPI_Datatype), INTENT(IN) :: datatype diff --git a/ompi/mpi/fortran/use-mpi-f08/profile/Makefile.am b/ompi/mpi/fortran/use-mpi-f08/profile/Makefile.am index 6a244187dd9..181ab18a8ab 100644 --- a/ompi/mpi/fortran/use-mpi-f08/profile/Makefile.am +++ b/ompi/mpi/fortran/use-mpi-f08/profile/Makefile.am @@ -48,6 +48,7 @@ AM_FCFLAGS = -I$(top_srcdir)/ompi/mpi/fortran/use-mpi-f08/mod \ $(OMPI_FC_MODULE_FLAG)$(top_builddir)/ompi/$(OMPI_FORTRAN_USEMPI_DIR) \ $(OMPI_FC_MODULE_FLAG)../mod \ $(OMPI_FC_MODULE_FLAG)../bindings \ + $(OMPI_FC_MODULE_FLAG)../ts \ -I$(top_srcdir) -I$(top_builddir) $(FCFLAGS_f90) \ -DOMPI_BUILD_MPI_PROFILING=1 diff --git a/ompi/mpi/fortran/use-mpi-f08/psend_init_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/psend_init_f08.F90 index 2d117074cc6..69b9601e4e2 100644 --- a/ompi/mpi/fortran/use-mpi-f08/psend_init_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/psend_init_f08.F90 @@ -17,7 +17,7 @@ subroutine MPI_Psend_init_f08(buf,partitions,count,datatype,dest,tag,comm,info,r use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Info, MPI_Request, MPI_COUNT_KIND use :: ompi_mpifh_bindings, only : 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, dest, tag INTEGER(KIND=MPI_COUNT_KIND), INTENT(IN) :: count TYPE(MPI_Datatype), INTENT(IN) :: datatype 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_init_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/reduce_init_f08.F90 index 00dbda4965f..18c365c0452 100644 --- a/ompi/mpi/fortran/use-mpi-f08/reduce_init_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/reduce_init_f08.F90 @@ -16,8 +16,8 @@ subroutine MPI_Reduce_init_f08(sendbuf,recvbuf,count,datatype,op,root,comm,info, use :: mpi_f08_types, only : MPI_Datatype, MPI_Op, MPI_Comm, MPI_Info, MPI_Request use :: ompi_mpifh_bindings, only : 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 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_block_init_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/reduce_scatter_block_init_f08.F90 index 460f2a158c2..af6ea92a0af 100644 --- a/ompi/mpi/fortran/use-mpi-f08/reduce_scatter_block_init_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/reduce_scatter_block_init_f08.F90 @@ -16,8 +16,8 @@ subroutine MPI_Reduce_scatter_block_init_f08(sendbuf,recvbuf,recvcount,datatype, use :: mpi_f08_types, only : MPI_Datatype, MPI_Op, MPI_Comm, MPI_Info, MPI_Request use :: ompi_mpifh_bindings, only : 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 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/reduce_scatter_init_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/reduce_scatter_init_f08.F90 index e7531662b47..351a9bc49b3 100644 --- a/ompi/mpi/fortran/use-mpi-f08/reduce_scatter_init_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/reduce_scatter_init_f08.F90 @@ -16,8 +16,8 @@ subroutine MPI_Reduce_scatter_init_f08(sendbuf,recvbuf,recvcounts,datatype,op,co use :: mpi_f08_types, only : MPI_Datatype, MPI_Op, MPI_Comm, MPI_Info, MPI_Request use :: ompi_mpifh_bindings, only : 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(*) 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/scan_init_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/scan_init_f08.F90 index 0b7fe3b993d..09b94fd5c50 100644 --- a/ompi/mpi/fortran/use-mpi-f08/scan_init_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/scan_init_f08.F90 @@ -16,8 +16,8 @@ subroutine MPI_Scan_init_f08(sendbuf,recvbuf,count,datatype,op,comm,info,request use :: mpi_f08_types, only : MPI_Datatype, MPI_Op, MPI_Comm, MPI_Info, MPI_Request use :: ompi_mpifh_bindings, only : 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 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/scatter_init_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/scatter_init_f08.F90 index e892d27dea8..a099e02a16a 100644 --- a/ompi/mpi/fortran/use-mpi-f08/scatter_init_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/scatter_init_f08.F90 @@ -17,8 +17,8 @@ subroutine MPI_Scatter_init_f08(sendbuf,sendcount,sendtype,recvbuf,& use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Info, MPI_Request use :: ompi_mpifh_bindings, only : 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 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/scatterv_init_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/scatterv_init_f08.F90 index bbf3c77cdd0..bbe27d5729f 100644 --- a/ompi/mpi/fortran/use-mpi-f08/scatterv_init_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/scatterv_init_f08.F90 @@ -17,8 +17,8 @@ subroutine MPI_Scatterv_init_f08(sendbuf,sendcounts,displs,sendtype,recvbuf,& use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Info, MPI_Request use :: ompi_mpifh_bindings, only : 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(*) 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..51d1ae720ec --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/Makefile.am @@ -0,0 +1,155 @@ +# -*- 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 \ + isendrecv_ts.c \ + isendrecv_replace_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/isendrecv_replace_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/isendrecv_replace_ts.c new file mode 100644 index 00000000000..e8fe9db99a0 --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/isendrecv_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_Isendrecv_replace"; + +void ompi_isendrecv_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 *request, MPI_Fint *ierr) +{ + int c_ierr; + MPI_Request c_req; + 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_Isendrecv_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_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/isendrecv_ts.c b/ompi/mpi/fortran/use-mpi-f08/ts/isendrecv_ts.c new file mode 100644 index 00000000000..5299c30db9a --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/ts/isendrecv_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/mpi/fortran/base/constants.h" + +static const char FUNC_NAME[] = "MPI_Isendrecv"; + +void ompi_isendrecv_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 *request, MPI_Fint *ierr) +{ + int c_ierr; + MPI_Comm c_comm = PMPI_Comm_f2c (*comm); + MPI_Request c_req; + MPI_Datatype c_senddatatype, c_sendtype = PMPI_Type_f2c(*sendtype); + MPI_Datatype c_recvdatatype, c_recvtype = PMPI_Type_f2c(*recvtype); + 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_Isendrecv(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_req); + 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) { + *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"