diff --git a/config/ompi_config_files.m4 b/config/ompi_config_files.m4 index 274b404d75d..8a41fd910c6 100644 --- a/config/ompi_config_files.m4 +++ b/config/ompi_config_files.m4 @@ -1,8 +1,8 @@ # -*- shell-script -*- # # Copyright (c) 2009-2017 Cisco Systems, Inc. All rights reserved -# Copyright (c) 2017-2018 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 (c) 2018 Los Alamos National Security, LLC. All rights # reserved. # Copyright (c) 2018 FUJITSU LIMITED. All rights reserved. @@ -39,6 +39,7 @@ AC_DEFUN([OMPI_CONFIG_FILES],[ ompi/mpi/fortran/use-mpi-ignore-tkr/mpi-ignore-tkr-removed-interfaces.h ompi/mpi/fortran/use-mpi-f08/Makefile ompi/mpi/fortran/use-mpi-f08/bindings/Makefile + ompi/mpi/fortran/use-mpi-f08/cdesc/Makefile ompi/mpi/fortran/use-mpi-f08/mod/Makefile ompi/mpi/fortran/mpiext-use-mpi/Makefile ompi/mpi/fortran/mpiext-use-mpi-f08/Makefile diff --git a/config/ompi_fortran_check_bind_fortran.m4 b/config/ompi_fortran_check_bind_fortran.m4 new file mode 100644 index 00000000000..7e635657cd4 --- /dev/null +++ b/config/ompi_fortran_check_bind_fortran.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_ISO_FORTRAN_BINDING([action if found], [action if not found]) +# ---------------------------------------------------- +AC_DEFUN([OMPI_FORTRAN_CHECK_ISO_FORTRAN_BINDING],[ + AS_VAR_PUSHDEF([iso_fortran_binding_var], [ompi_cv_fortran_have_iso_fortran_binding]) + + AC_CHECK_HEADERS([ISO_Fortran_binding.h], + [AC_CACHE_CHECK([if Fortran and C compilers support ISO_Fortran_binding.h], iso_fortran_binding_var, + [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(iso_fortran_binding_var, yes)], + [AS_VAR_SET(iso_fortran_binding_var, no)])], + [AS_VAR_SET(iso_fortran_binding_var, no)]) + cd .. + rm -rf conftest.$$])], + [AS_VAR_SET(iso_fortran_binding_var, no)]) + + AS_VAR_IF(iso_fortran_binding_var, [yes], [$1], [$2]) + AS_VAR_POPDEF([iso_fortran_binding_var])dnl +]) diff --git a/config/ompi_setup_mpi_fortran.m4 b/config/ompi_setup_mpi_fortran.m4 index 8f6b6f2be0c..2347c3a2e9e 100644 --- a/config/ompi_setup_mpi_fortran.m4 +++ b/config/ompi_setup_mpi_fortran.m4 @@ -15,8 +15,8 @@ dnl Copyright (c) 2006-2008 Sun Microsystems, Inc. All rights reserved. dnl Copyright (c) 2006-2007 Los Alamos National Security, LLC. All rights dnl reserved. dnl Copyright (c) 2009 Oak Ridge National Labs. All rights reserved. -dnl Copyright (c) 2014-2017 Research Organization for Information Science -dnl and Technology (RIST). All rights reserved. +dnl Copyright (c) 2014-2019 Research Organization for Information Science +dnl and Technology (RIST). All rights reserved. dnl Copyright (c) 2016 IBM Corporation. All rights reserved. dnl Copyright (c) 2018 FUJITSU LIMITED. All rights reserved. dnl $COPYRIGHT$ @@ -558,6 +558,12 @@ end type test_mpi_handle], ]) ]) + 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_ISO_FORTRAN_BINDING([OMPI_FORTRAN_HAVE_C_ISO_FORTRAN=1], + [OMPI_FORTRAN_HAVE_C_ISO_FORTRAN=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 @@ -580,6 +586,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 # ------------------- @@ -798,6 +806,20 @@ end type test_mpi_handle], # For configure-fortran-output.h AC_SUBST(OMPI_FORTRAN_HAVE_BIND_C) + AM_CONDITIONAL(OMPI_FORTRAN_HAVE_C_ISO_FORTRAN, + [test $OMPI_FORTRAN_HAVE_C_ISO_FORTRAN -eq 1]) + + AS_IF([test $OMPI_FORTRAN_HAVE_C_ISO_FORTRAN -eq 1], + [OMPI_F08_IGNORE_TKR_TYPE="type(*), dimension(..)" + OMPI_F08_GCC_ATTRIBUTES= + OMPI_F08_BINDINGS_EXTENSION="cdesc"], + [OMPI_F08_IGNORE_TKR_TYPE=$OMPI_FORTRAN_IGNORE_TKR_TYPE + OMPI_F08_GCC_ATTRIBUTES='!GCC$ ATTRIBUTES NO_ARG_CHECK :: buf' + OMPI_F08_BINDINGS_EXTENSION="f"]) + AC_SUBST(OMPI_F08_IGNORE_TKR_TYPE) + AC_SUBST(OMPI_F08_GCC_ATTRIBUTES) + AC_SUBST(OMPI_F08_BINDINGS_EXTENSION) + # 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 5d1ce31ea88..55b118924e7 100644 --- a/ompi/Makefile.am +++ b/ompi/Makefile.am @@ -15,8 +15,8 @@ # Copyright (c) 2013-2015 Los Alamos National Security, LLC. All rights # reserved. # Copyright (c) 2015-2017 Intel, Inc. All rights reserved. -# Copyright (c) 2015-2018 Research Organization for Information Science -# and Technology (RIST). All rights reserved. +# Copyright (c) 2015-2019 Research Organization for Information Science +# and Technology (RIST). All rights reserved. # Copyright (c) 2016 IBM Corporation. All rights reserved. # Copyright (c) 2018 FUJITSU LIMITED. All rights reserved. # $COPYRIGHT$ @@ -94,6 +94,7 @@ SUBDIRS = \ mpi/fortran/mpiext-use-mpi \ mpi/fortran/use-mpi-f08/mod \ mpi/fortran/use-mpi-f08/bindings \ + mpi/fortran/use-mpi-f08/cdesc \ $(OMPI_MPIEXT_USEMPIF08_DIRS) \ mpi/fortran/use-mpi-f08 \ mpi/fortran/mpiext-use-mpi-f08 \ @@ -126,6 +127,7 @@ DIST_SUBDIRS = \ mpi/fortran/use-mpi-f08 \ mpi/fortran/use-mpi-f08/mod \ mpi/fortran/use-mpi-f08/bindings \ + mpi/fortran/use-mpi-f08/cdesc \ mpi/fortran/mpiext-use-mpi-f08 \ mpi/java \ $(OMPI_MPIEXT_ALL_SUBDIRS) \ diff --git a/ompi/mpi/fortran/configure-fortran-output.h.in b/ompi/mpi/fortran/configure-fortran-output.h.in index 6f1b82588ad..1d692d3bd56 100644 --- a/ompi/mpi/fortran/configure-fortran-output.h.in +++ b/ompi/mpi/fortran/configure-fortran-output.h.in @@ -3,8 +3,8 @@ ! Copyright (c) 2006-2014 Cisco Systems, Inc. All rights reserved. ! Copyright (c) 2009-2012 Los Alamos National Security, LLC. ! All rights reserved. -! Copyright (c) 2017-2018 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$ ! @@ -46,6 +46,17 @@ ! Line 2 of the ignore TKR syntax #define OMPI_FORTRAN_IGNORE_TKR_TYPE @OMPI_FORTRAN_IGNORE_TKR_TYPE@ +! C ISO Fortran type is 'type(*), dimension(..)' +! but existing ignore_tkr type is $OMPI_FORTRAN_IGNORE_TKR_TYPE +#define OMPI_F08_IGNORE_TKR_TYPE @OMPI_F08_IGNORE_TKR_TYPE@ + +! C ISO Fortran bindings have the _cdesc extension +! but existing Fortran bindings have the _f C bindings +#define OMPI_F08_BINDINGS_EXTENSION @OMPI_F08_BINDINGS_EXTENSION@ + +! ignore_tkr require the '!GCC$ ATTRIBUTES NO_ARG_CHECK :: buf' attribute +! but the C ISO Fortran cannot have that attribute +#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 3833f4de976..2aa672a1b76 100644 --- a/ompi/mpi/fortran/use-mpi-f08/Makefile.am +++ b/ompi/mpi/fortran/use-mpi-f08/Makefile.am @@ -7,8 +7,8 @@ # Copyright (c) 2012-2013 Inria. All rights reserved. # Copyright (c) 2013-2018 Los Alamos National Security, LLC. All rights # reserved. -# Copyright (c) 2015-2018 Research Organization for Information Science -# and Technology (RIST). All rights reserved. +# Copyright (c) 2015-2019 Research Organization for Information Science +# and Technology (RIST). All rights reserved. # Copyright (c) 2016 IBM Corporation. All rights reserved. # Copyright (c) 2017-2018 FUJITSU LIMITED. All rights reserved. # Copyright (c) 2019 Triad National Security, LLC. All rights @@ -32,6 +32,7 @@ AM_FCFLAGS = -I$(top_builddir)/ompi/include \ $(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)cdesc \ -I$(top_srcdir) $(FCFLAGS_f90) MOSTLYCLEANFILES = *.mod @@ -44,6 +45,11 @@ module_sentinel_file = \ mod/libforce_usempif08_internal_modules_to_be_built.la \ bindings/libforce_usempif08_internal_bindings_to_be_built.la +if OMPI_FORTRAN_HAVE_C_ISO_FORTRAN +module_sentinel_file += \ + cdesc/libusempif08_cdesc.la +endif + mpi-f08.lo: $(module_sentinel_file) mpi-f08.lo: mpi-f08.F90 mpi-f08.lo: sizeof_f08.h diff --git a/ompi/mpi/fortran/use-mpi-f08/allgather_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/allgather_f08.F90 index 2811cc5a73b..00a2a767e84 100644 --- a/ompi/mpi/fortran/use-mpi-f08/allgather_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/allgather_f08.F90 @@ -3,7 +3,7 @@ ! Copyright (c) 2009-2012 Cisco Systems, Inc. All rights reserved. ! Copyright (c) 2009-2012 Los Alamos National Security, LLC. ! All rights reserved. -! Copyright (c) 2018 Research Organization for Information Science +! Copyright (c) 2018-2019 Research Organization for Information Science ! and Technology (RIST). All rights reserved. ! $COPYRIGHT$ @@ -13,8 +13,8 @@ subroutine MPI_Allgather_f08(sendbuf,sendcount,sendtype,recvbuf,recvcount,recvty use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm use :: ompi_mpifh_bindings, only : ompi_allgather_f implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE :: recvbuf INTEGER, INTENT(IN) :: sendcount, recvcount TYPE(MPI_Datatype), INTENT(IN) :: sendtype TYPE(MPI_Datatype), INTENT(IN) :: recvtype diff --git a/ompi/mpi/fortran/use-mpi-f08/allgatherv_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/allgatherv_f08.F90 index eef5e1d25d8..87f6376ec55 100644 --- a/ompi/mpi/fortran/use-mpi-f08/allgatherv_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/allgatherv_f08.F90 @@ -3,7 +3,7 @@ ! Copyright (c) 2009-2012 Cisco Systems, Inc. All rights reserved. ! Copyright (c) 2009-2012 Los Alamos National Security, LLC. ! All rights reserved. -! Copyright (c) 2018 Research Organization for Information Science +! Copyright (c) 2018-2019 Research Organization for Information Science ! and Technology (RIST). All rights reserved. ! $COPYRIGHT$ @@ -14,8 +14,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/alltoall_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/alltoall_f08.F90 index 20bea7b302a..f75ee840add 100644 --- a/ompi/mpi/fortran/use-mpi-f08/alltoall_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/alltoall_f08.F90 @@ -3,7 +3,7 @@ ! Copyright (c) 2009-2012 Cisco Systems, Inc. All rights reserved. ! Copyright (c) 2009-2012 Los Alamos National Security, LLC. ! All rights reserved. -! Copyright (c) 2018 Research Organization for Information Science +! Copyright (c) 2018-2019 Research Organization for Information Science ! and Technology (RIST). All rights reserved. ! $COPYRIGHT$ @@ -14,8 +14,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/bcast_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/bcast_f08.F90 index a153bd02adb..03653af21bd 100644 --- a/ompi/mpi/fortran/use-mpi-f08/bcast_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/bcast_f08.F90 @@ -3,7 +3,7 @@ ! Copyright (c) 2009-2012 Cisco Systems, Inc. All rights reserved. ! Copyright (c) 2009-2012 Los Alamos National Security, LLC. ! All rights reserved. -! Copyright (c) 2018 Research Organization for Information Science +! Copyright (c) 2018-2019 Research Organization for Information Science ! and Technology (RIST). All rights reserved. ! Copyright (c) 2018 FUJITSU LIMITED. All rights reserved. ! $COPYRIGHT$ @@ -14,7 +14,7 @@ subroutine MPI_Bcast_f08(buffer,count,datatype,root,comm,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm use :: ompi_mpifh_bindings, only : ompi_bcast_f implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE :: buffer + OMPI_F08_IGNORE_TKR_TYPE :: buffer INTEGER, INTENT(IN) :: count, root TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Comm), INTENT(IN) :: comm diff --git a/ompi/mpi/fortran/use-mpi-f08/bindings/mpi-f-interfaces-bind.h b/ompi/mpi/fortran/use-mpi-f08/bindings/mpi-f-interfaces-bind.h.in similarity index 97% 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 32437112347..2e4c15a2267 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 @@ -164,9 +164,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 @@ -174,9 +174,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) :: buf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: buf INTEGER, INTENT(IN) :: count, dest, tag INTEGER, INTENT(IN) :: datatype INTEGER, INTENT(IN) :: comm @@ -222,9 +222,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) :: buf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: buf INTEGER, INTENT(IN) :: count, dest, tag INTEGER, INTENT(IN) :: datatype INTEGER, INTENT(IN) :: comm @@ -233,9 +233,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 :: buf + OMPI_F08_IGNORE_TKR_TYPE :: buf INTEGER, INTENT(IN) :: count, source, tag INTEGER, INTENT(IN) :: datatype INTEGER, INTENT(IN) :: comm @@ -244,9 +244,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) :: buf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: buf INTEGER, INTENT(IN) :: count, dest, tag INTEGER, INTENT(IN) :: datatype INTEGER, INTENT(IN) :: comm @@ -255,9 +255,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) :: buf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: buf INTEGER, INTENT(IN) :: count, dest, tag INTEGER, INTENT(IN) :: datatype INTEGER, INTENT(IN) :: comm @@ -266,9 +266,9 @@ subroutine ompi_isend_f(buf,count,datatype,dest,tag,comm,request,ierror) & end subroutine ompi_isend_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) :: buf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: buf INTEGER, INTENT(IN) :: count, dest, tag INTEGER, INTENT(IN) :: datatype INTEGER, INTENT(IN) :: comm @@ -287,10 +287,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 @@ -299,9 +299,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 :: buf + OMPI_F08_IGNORE_TKR_TYPE :: buf INTEGER, INTENT(IN) :: count, source, tag INTEGER, INTENT(IN) :: datatype INTEGER, INTENT(IN) :: comm @@ -317,9 +317,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 @@ -327,9 +327,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 :: buf + OMPI_F08_IGNORE_TKR_TYPE :: buf INTEGER, INTENT(IN) :: count, dest, tag INTEGER, INTENT(IN) :: datatype INTEGER, INTENT(IN) :: comm @@ -338,9 +338,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 @@ -349,11 +349,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 @@ -364,10 +364,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 @@ -376,9 +376,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) :: buf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: buf INTEGER, INTENT(IN) :: count, dest, tag INTEGER, INTENT(IN) :: datatype INTEGER, INTENT(IN) :: comm @@ -387,9 +387,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 @@ -397,9 +397,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) :: buf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: buf INTEGER, INTENT(IN) :: count, dest, tag INTEGER, INTENT(IN) :: datatype INTEGER, INTENT(IN) :: comm @@ -496,10 +496,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 @@ -509,13 +509,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 @@ -770,10 +770,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 @@ -783,13 +783,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 @@ -800,10 +800,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 @@ -827,10 +827,10 @@ end subroutine ompi_iallgather_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 @@ -881,10 +881,10 @@ end subroutine ompi_iallreduce_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 @@ -976,9 +976,9 @@ subroutine ompi_ibarrier_f(comm,request,ierror) & end subroutine ompi_ibarrier_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 @@ -1023,10 +1023,10 @@ end subroutine ompi_iexscan_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 @@ -1050,10 +1050,10 @@ end subroutine ompi_igather_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 @@ -1201,10 +1201,10 @@ end subroutine ompi_iscan_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 @@ -1228,10 +1228,10 @@ end subroutine ompi_iscatter_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 :: recvbuf INTEGER, INTENT(IN) :: recvcount, root INTEGER, INTENT(IN) :: sendcounts(*), displs(*) INTEGER, INTENT(IN) :: sendtype @@ -3339,9 +3339,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 @@ -3350,10 +3350,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 diff --git a/ompi/mpi/fortran/use-mpi-f08/bsend_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/bsend_f08.F90 index ce7479b9dd9..0cac7a33643 100644 --- a/ompi/mpi/fortran/use-mpi-f08/bsend_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/bsend_f08.F90 @@ -3,7 +3,7 @@ ! Copyright (c) 2009-2012 Cisco Systems, Inc. All rights reserved. ! Copyright (c) 2009-2012 Los Alamos National Security, LLC. ! All rights reserved. -! Copyright (c) 2018 Research Organization for Information Science +! Copyright (c) 2018-2019 Research Organization for Information Science ! and Technology (RIST). All rights reserved. ! $COPYRIGHT$ @@ -13,7 +13,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 7f5ed2c5072..ccef7871ad9 100644 --- a/ompi/mpi/fortran/use-mpi-f08/bsend_init_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/bsend_init_f08.F90 @@ -3,7 +3,7 @@ ! Copyright (c) 2009-2012 Cisco Systems, Inc. All rights reserved. ! Copyright (c) 2009-2012 Los Alamos National Security, LLC. ! All rights reserved. -! Copyright (c) 2018 Research Organization for Information Science +! Copyright (c) 2018-2019 Research Organization for Information Science ! and Technology (RIST). All rights reserved. ! $COPYRIGHT$ @@ -13,7 +13,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) :: 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/cdesc/Makefile.am b/ompi/mpi/fortran/use-mpi-f08/cdesc/Makefile.am new file mode 100644 index 00000000000..b8266f1ebd5 --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/cdesc/Makefile.am @@ -0,0 +1,79 @@ +# -*- 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 + +# This Makefile is only relevant if we're building the "use mpi_f08" +# MPI bindings. +if OMPI_BUILD_FORTRAN_USEMPIF08_BINDINGS + +AM_CPPFLAGS = -DOMPI_COMPILING_FORTRAN_WRAPPERS=1 + +########################################################################### + +module_sentinel_file = + +if OMPI_FORTRAN_HAVE_C_ISO_FORTRAN +module_sentinel_file += \ + libusempif08_cdesc.la +endif + +libusempif08_cdesc_la_SOURCES = \ + bindings.h \ + cdesc.h \ + cdesc.c \ + \ + bsend_cdesc.c \ + bsend_init_cdesc.c \ + ibsend_cdesc.c \ + imrecv_cdesc.c \ + irecv_cdesc.c \ + irsend_cdesc.c \ + isend_cdesc.c \ + issend_cdesc.c \ + mrecv_cdesc.c \ + recv_cdesc.c \ + recv_init_cdesc.c \ + rsend_cdesc.c \ + rsend_init_cdesc.c \ + send_cdesc.c \ + send_init_cdesc.c \ + sendrecv_cdesc.c \ + sendrecv_replace_cdesc.c \ + ssend_cdesc.c \ + ssend_init_cdesc.c \ + \ + pack_cdesc.c \ + pack_external_cdesc.c \ + unpack_cdesc.c \ + unpack_external_cdesc.c \ + \ + bcast_cdesc.c \ + gather_cdesc.c \ + gatherv_cdesc.c \ + allgather_cdesc.c \ + allgatherv_cdesc.c \ + scatter_cdesc.c \ + scatterv_cdesc.c \ + alltoall_cdesc.c + +noinst_LTLIBRARIES = $(module_sentinel_file) + +endif diff --git a/ompi/mpi/fortran/use-mpi-f08/cdesc/allgather_cdesc.c b/ompi/mpi/fortran/use-mpi-f08/cdesc/allgather_cdesc.c new file mode 100644 index 00000000000..cf2384be2cf --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/cdesc/allgather_cdesc.c @@ -0,0 +1,83 @@ +/* + * 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/mpif-h/bindings.h" +#include "ompi/mpi/fortran/use-mpi-f08/cdesc/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + + +void ompi_allgather_cdesc(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; + 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_recvdatatype, c_recvtype = PMPI_Type_f2c(*recvtype); + void *recvbuf = x2->base_addr; + int c_recvcount = OMPI_FINT_2_INT(*recvcount); + + c_comm = PMPI_Comm_f2c(*comm); + + sendbuf = (char *) OMPI_F2C_IN_PLACE(sendbuf); + sendbuf = (char *) OMPI_F2C_BOTTOM(sendbuf); + recvbuf = (char *) OMPI_F2C_BOTTOM(recvbuf); + + c_senddatatype = c_sendtype; + if (x1->rank != 0 && !CFI_is_contiguous(x1)) { + c_ierr = ompi_cdesc_create_datatype(x1, c_sendcount, c_sendtype, &c_senddatatype); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + return; + } + c_sendcount = 1; + } + c_recvdatatype = c_recvtype; + if (x2->rank != 0 && !CFI_is_contiguous(x2)) { + c_ierr = ompi_cdesc_create_datatype(x2, c_recvcount, c_recvtype, &c_recvdatatype); + 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); + } + return; + } + c_recvcount = 1; + } + c_ierr = PMPI_Allgather(sendbuf, + c_sendcount, + c_sendtype, + recvbuf, + c_recvcount, + c_recvtype, c_comm); + 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); +} diff --git a/ompi/mpi/fortran/use-mpi-f08/cdesc/allgatherv_cdesc.c b/ompi/mpi/fortran/use-mpi-f08/cdesc/allgatherv_cdesc.c new file mode 100644 index 00000000000..60af3f1d109 --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/cdesc/allgatherv_cdesc.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/mpi/fortran/mpif-h/bindings.h" +#include "ompi/mpi/fortran/use-mpi-f08/cdesc/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + + +void ompi_allgatherv_cdesc(CFI_cdesc_t* x1, MPI_Fint *sendcount, MPI_Fint *sendtype, + char *recvbuf, MPI_Fint *recvcounts, MPI_Fint *displs, + MPI_Fint *recvtype, MPI_Fint *comm, MPI_Fint *ierr) +{ + MPI_Comm c_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); + int size, c_ierr; + OMPI_ARRAY_NAME_DECL(recvcounts); + OMPI_ARRAY_NAME_DECL(displs); + + c_comm = PMPI_Comm_f2c(*comm); + + 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_senddatatype = c_sendtype; + if (x1->rank != 0 && !CFI_is_contiguous(x1)) { + c_ierr = ompi_cdesc_create_datatype(x1, c_sendcount, c_sendtype, &c_senddatatype); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + return; + } + c_sendcount = 1; + } + c_ierr = PMPI_Allgatherv(sendbuf, + OMPI_FINT_2_INT(*sendcount), + c_sendtype, + 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/cdesc/alltoall_cdesc.c b/ompi/mpi/fortran/use-mpi-f08/cdesc/alltoall_cdesc.c new file mode 100644 index 00000000000..6813dc298db --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/cdesc/alltoall_cdesc.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/mpi/fortran/mpif-h/bindings.h" +#include "ompi/mpi/fortran/use-mpi-f08/cdesc/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + + +void ompi_alltoall_cdesc(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; + 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_recvdatatype, c_recvtype = PMPI_Type_f2c(*recvtype); + void *recvbuf = x2->base_addr; + int c_recvcount = OMPI_FINT_2_INT(*recvcount); + + c_comm = PMPI_Comm_f2c(*comm); + + sendbuf = (char *) OMPI_F2C_IN_PLACE(sendbuf); + sendbuf = (char *) OMPI_F2C_BOTTOM(sendbuf); + recvbuf = (char *) OMPI_F2C_BOTTOM(recvbuf); + + c_senddatatype = c_sendtype; + if (x1->rank != 0 && !CFI_is_contiguous(x1)) { + c_ierr = ompi_cdesc_create_datatype(x1, c_sendcount, c_sendtype, &c_senddatatype); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + return; + } + c_sendcount = 1; + } + c_recvdatatype = c_recvtype; + if (x2->rank != 0 && !CFI_is_contiguous(x2)) { + c_ierr = ompi_cdesc_create_datatype(x2, c_recvcount, c_recvtype, &c_recvdatatype); + 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); + } + return; + } + c_recvcount = 1; + } + c_ierr = PMPI_Alltoall(sendbuf, + c_sendcount, + c_senddatatype, + recvbuf, + c_recvcount, + c_recvdatatype, c_comm); + 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); +} diff --git a/ompi/mpi/fortran/use-mpi-f08/cdesc/bcast_cdesc.c b/ompi/mpi/fortran/use-mpi-f08/cdesc/bcast_cdesc.c new file mode 100644 index 00000000000..720401d28ce --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/cdesc/bcast_cdesc.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/mpi/fortran/mpif-h/bindings.h" +#include "ompi/mpi/fortran/use-mpi-f08/cdesc/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + + +void ompi_bcast_cdesc(CFI_cdesc_t* x, MPI_Fint *count, MPI_Fint *datatype, + MPI_Fint *root, MPI_Fint *comm, MPI_Fint *ierr) +{ + int c_ierr; + MPI_Comm c_comm; + MPI_Datatype c_datatype, c_type = PMPI_Type_f2c(*datatype); + void *buffer = x->base_addr; + int c_count = OMPI_FINT_2_INT(*count); + + c_comm = PMPI_Comm_f2c(*comm); + + c_datatype = c_type; + if (x->rank != 0 && !CFI_is_contiguous(x)) { + c_ierr = ompi_cdesc_create_datatype(x, c_count, c_type, &c_datatype); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + return; + } + c_count = 1; + } + c_ierr = PMPI_Bcast(OMPI_F2C_BOTTOM(buffer), + c_count, + c_datatype, + OMPI_FINT_2_INT(*root), + 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/cdesc/bindings.h b/ompi/mpi/fortran/use-mpi-f08/cdesc/bindings.h new file mode 100644 index 00000000000..7827325fe20 --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/cdesc/bindings.h @@ -0,0 +1,150 @@ +/* + * Copyright (c) 2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#ifndef OMPI_CDESC_BINDINGS_H +#define OMPI_CDESC_BINDINGS_H + +#include "cdesc.h" + +#include "ompi_config.h" + +#include "mpi.h" + +void ompi_bsend_cdesc(CFI_cdesc_t* x, MPI_Fint *count, MPI_Fint *datatype, + MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm, + MPI_Fint *ierr); + +void ompi_bsend_init_cdesc(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); + +void ompi_ibsend_cdesc(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); + +void ompi_imrecv_cdesc(CFI_cdesc_t* x, MPI_Fint *count, MPI_Fint *datatype, + MPI_Fint *message, MPI_Fint *request, MPI_Fint *ierr); + +void ompi_irecv_cdesc(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); + +void ompi_irsend_cdesc(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); + +void ompi_isend_cdesc(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); + +void ompi_issend_cdesc(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); + +void ompi_mrecv_cdesc(CFI_cdesc_t* x, MPI_Fint *count, MPI_Fint *datatype, + MPI_Fint *message, MPI_Fint *status, MPI_Fint *ierr); + +void ompi_recv_cdesc(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); + +void ompi_recv_init_cdesc(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); + +void ompi_rsend_cdesc(CFI_cdesc_t* x, MPI_Fint *count, MPI_Fint *datatype, + MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm, + MPI_Fint *ierr); + +void ompi_rsend_init_cdesc(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); + +void ompi_send_cdesc(CFI_cdesc_t* x, MPI_Fint *count, MPI_Fint *datatype, + MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *ierr); + +void ompi_send_init_cdesc(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); + +void ompi_sendrecv_cdesc(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); + +void ompi_sendrecv_replace_cdesc(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); + +void ompi_ssend_cdesc(CFI_cdesc_t* x, MPI_Fint *count, MPI_Fint *datatype, + MPI_Fint *dest, MPI_Fint *tag, + MPI_Fint *comm, MPI_Fint *ierr); + +void ompi_ssend_init_cdesc(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); + +void ompi_pack_cdesc(CFI_cdesc_t* x, MPI_Fint *incount, MPI_Fint *datatype, + char *outbuf, MPI_Fint *outsize, MPI_Fint *position, + MPI_Fint *comm, MPI_Fint *ierr); + +void ompi_pack_external_cdesc(char *datarep, CFI_cdesc_t* x, MPI_Fint *incount, + MPI_Fint *datatype, char *outbuf, + MPI_Aint *outsize, MPI_Aint *position, + MPI_Fint *ierr, int datarep_len); + +void ompi_unpack_cdesc(char *inbuf, MPI_Fint *insize, MPI_Fint *position, + CFI_cdesc_t* x, MPI_Fint *outcount, MPI_Fint *datatype, + MPI_Fint *comm, MPI_Fint *ierr); + +void ompi_unpack_external_cdesc(char *datarep, char *inbuf, MPI_Aint *insize, + MPI_Aint *position, CFI_cdesc_t* x, + MPI_Fint *outcount, MPI_Fint *datatype, + MPI_Fint *ierr, int datarep_len); + +void ompi_bcast_cdesc(CFI_cdesc_t* x, MPI_Fint *count, MPI_Fint *datatype, + MPI_Fint *root, MPI_Fint *comm, MPI_Fint *ierr); + +void ompi_gather_cdesc(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); + +void ompi_gatherv_cdesc(CFI_cdesc_t* x1, MPI_Fint *sendcount, MPI_Fint *sendtype, + char *recvbuf, MPI_Fint *recvcounts, MPI_Fint *displs, + MPI_Fint *recvtype, MPI_Fint *root, MPI_Fint *comm, + MPI_Fint *ierr); + +void ompi_allgather_cdesc(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); + +void ompi_allgatherv_cdesc(CFI_cdesc_t* x1, MPI_Fint *sendcount, MPI_Fint *sendtype, + char *recvbuf, MPI_Fint *recvcounts, MPI_Fint *displs, + MPI_Fint *recvtype, MPI_Fint *comm, MPI_Fint *ierr); + +void ompi_scatter_cdesc(char *sendbuf, MPI_Fint *sendcount, + MPI_Fint *sendtype, CFI_cdesc_t *x, + MPI_Fint *recvcount, MPI_Fint *recvtype, + MPI_Fint *root, MPI_Fint *comm, MPI_Fint *ierr); + +void ompi_scatterv_cdesc(char *sendbuf, MPI_Fint *sendcounts, + MPI_Fint *displs, MPI_Fint *sendtype, + CFI_cdesc_t *x, MPI_Fint *recvcount, + MPI_Fint *recvtype, MPI_Fint *root, + MPI_Fint *comm, MPI_Fint *ierr); + +void ompi_alltoall_cdesc(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); + +#endif /* OMPI_CDESC_BINDINGS_H */ diff --git a/ompi/mpi/fortran/use-mpi-f08/cdesc/bsend_cdesc.c b/ompi/mpi/fortran/use-mpi-f08/cdesc/bsend_cdesc.c new file mode 100644 index 00000000000..a49269cf582 --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/cdesc/bsend_cdesc.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) 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/mpif-h/bindings.h" +#include "ompi/mpi/fortran/use-mpi-f08/cdesc/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + +void ompi_bsend_cdesc(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; + MPI_Datatype c_datatype, c_type = PMPI_Type_f2c(*datatype); + void *buf = x->base_addr; + int c_count = OMPI_FINT_2_INT(*count); + + c_comm = PMPI_Comm_f2c (*comm); + + 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/cdesc/bsend_init_cdesc.c b/ompi/mpi/fortran/use-mpi-f08/cdesc/bsend_init_cdesc.c new file mode 100644 index 00000000000..3ac13aacb8c --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/cdesc/bsend_init_cdesc.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/mpi/fortran/mpif-h/bindings.h" +#include "ompi/mpi/fortran/use-mpi-f08/cdesc/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + + +void ompi_bsend_init_cdesc(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; + void *buf = x->base_addr; + int c_count = OMPI_FINT_2_INT(*count); + + c_comm = PMPI_Comm_f2c (*comm); + + c_datatype = c_type; + if (x->rank != 0 && !CFI_is_contiguous(x)) { + c_ierr = ompi_cdesc_create_datatype(x, c_count, c_type, &c_datatype); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + return; + } + c_count = 1; + } + 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/cdesc/cdesc.c b/ompi/mpi/fortran/use-mpi-f08/cdesc/cdesc.c new file mode 100644 index 00000000000..0e508970cb5 --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/cdesc/cdesc.c @@ -0,0 +1,92 @@ +/* -*- 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 "cdesc.h" + +int ompi_cdesc_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 + { + int size; + assert(cdesc->rank <= MAX_RANK); + ompi_datatype_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; +} diff --git a/ompi/mpi/fortran/use-mpi-f08/cdesc/cdesc.h b/ompi/mpi/fortran/use-mpi-f08/cdesc/cdesc.h new file mode 100644 index 00000000000..8c2fafdbe55 --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/cdesc/cdesc.h @@ -0,0 +1,18 @@ +/* -*- 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 +#include +#include +#include + +extern int ompi_cdesc_create_datatype(CFI_cdesc_t *cdesc, int oldcount, MPI_Datatype oldtype, MPI_Datatype *newtype); diff --git a/ompi/mpi/fortran/use-mpi-f08/cdesc/gather_cdesc.c b/ompi/mpi/fortran/use-mpi-f08/cdesc/gather_cdesc.c new file mode 100644 index 00000000000..25355458d73 --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/cdesc/gather_cdesc.c @@ -0,0 +1,83 @@ +/* + * 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/mpif-h/bindings.h" +#include "ompi/mpi/fortran/use-mpi-f08/cdesc/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + + +void ompi_gather_cdesc(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; + 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_recvdatatype, c_recvtype = PMPI_Type_f2c(*recvtype); + void *recvbuf = x2->base_addr; + int c_recvcount = OMPI_FINT_2_INT(*recvcount); + int size, ierr_c; + + c_comm = PMPI_Comm_f2c(*comm); + + sendbuf = (char *) OMPI_F2C_IN_PLACE(sendbuf); + sendbuf = (char *) OMPI_F2C_BOTTOM(sendbuf); + recvbuf = (char *) OMPI_F2C_BOTTOM(recvbuf); + + c_senddatatype = c_sendtype; + if (x1->rank != 0 && !CFI_is_contiguous(x1)) { + c_ierr = ompi_cdesc_create_datatype(x1, c_sendcount, c_sendtype, &c_senddatatype); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + return; + } + c_sendcount = 1; + } + c_recvdatatype = c_recvtype; + if (x2->rank != 0 && !CFI_is_contiguous(x2)) { + c_ierr = ompi_cdesc_create_datatype(x2, c_recvcount, c_recvtype, &c_recvdatatype); + 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); + } + return; + } + c_recvcount = 1; + } + c_ierr = PMPI_Gather(sendbuf, OMPI_FINT_2_INT(*sendcount), + c_sendtype, recvbuf, + OMPI_FINT_2_INT(*recvcount), + c_recvtype, + OMPI_FINT_2_INT(*root), + c_comm); + 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); +} diff --git a/ompi/mpi/fortran/use-mpi-f08/cdesc/gatherv_cdesc.c b/ompi/mpi/fortran/use-mpi-f08/cdesc/gatherv_cdesc.c new file mode 100644 index 00000000000..435ee219042 --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/cdesc/gatherv_cdesc.c @@ -0,0 +1,73 @@ +/* + * 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/mpif-h/bindings.h" +#include "ompi/mpi/fortran/use-mpi-f08/cdesc/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + + +void ompi_gatherv_cdesc(CFI_cdesc_t* x1, MPI_Fint *sendcount, MPI_Fint *sendtype, + char *recvbuf, MPI_Fint *recvcounts, MPI_Fint *displs, + MPI_Fint *recvtype, MPI_Fint *root, MPI_Fint *comm, + MPI_Fint *ierr) +{ + MPI_Comm c_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); + int size, c_ierr; + OMPI_ARRAY_NAME_DECL(recvcounts); + OMPI_ARRAY_NAME_DECL(displs); + + c_comm = PMPI_Comm_f2c(*comm); + + 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_senddatatype = c_sendtype; + if (x1->rank != 0 && !CFI_is_contiguous(x1)) { + c_ierr = ompi_cdesc_create_datatype(x1, c_sendcount, c_sendtype, &c_senddatatype); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + return; + } + c_sendcount = 1; + } + c_ierr = PMPI_Gatherv(sendbuf, OMPI_FINT_2_INT(*sendcount), + c_sendtype, recvbuf, + OMPI_ARRAY_NAME_CONVERT(recvcounts), + OMPI_ARRAY_NAME_CONVERT(displs), + c_recvtype, + OMPI_FINT_2_INT(*root), + 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/cdesc/ibsend_cdesc.c b/ompi/mpi/fortran/use-mpi-f08/cdesc/ibsend_cdesc.c new file mode 100644 index 00000000000..043b24570a4 --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/cdesc/ibsend_cdesc.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/mpi/fortran/mpif-h/bindings.h" +#include "ompi/mpi/fortran/use-mpi-f08/cdesc/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + +void ompi_ibsend_cdesc(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; + void *buf = x->base_addr; + int c_count = OMPI_FINT_2_INT(*count); + + c_comm = PMPI_Comm_f2c (*comm); + + c_datatype = c_type; + if (x->rank != 0 && !CFI_is_contiguous(x)) { + c_ierr = ompi_cdesc_create_datatype(x, c_count, c_type, &c_datatype); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + return; + } + c_count = 1; + } + 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/cdesc/imrecv_cdesc.c b/ompi/mpi/fortran/use-mpi-f08/cdesc/imrecv_cdesc.c new file mode 100644 index 00000000000..18aeef35441 --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/cdesc/imrecv_cdesc.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) 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/mpi/fortran/mpif-h/bindings.h" +#include "ompi/mpi/fortran/use-mpi-f08/cdesc/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + +void ompi_imrecv_cdesc(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); + + if (x->rank != 0 && !CFI_is_contiguous(x)) { + c_ierr = ompi_cdesc_create_datatype(x, c_count, c_type, &c_datatype); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + return; + } + c_count = 1; + } + c_ierr = OMPI_INT_2_FINT(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/cdesc/irecv_cdesc.c b/ompi/mpi/fortran/use-mpi-f08/cdesc/irecv_cdesc.c new file mode 100644 index 00000000000..c9db30f564f --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/cdesc/irecv_cdesc.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/mpi/fortran/mpif-h/bindings.h" +#include "ompi/mpi/fortran/use-mpi-f08/cdesc/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + +void ompi_irecv_cdesc(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; + void *buf = x->base_addr; + int c_count = OMPI_FINT_2_INT(*count); + + c_datatype = c_type; + if (x->rank != 0 && !CFI_is_contiguous(x)) { + c_ierr = ompi_cdesc_create_datatype(x, c_count, c_type, &c_datatype); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + return; + } + c_count = 1; + } + + c_comm = PMPI_Comm_f2c (*comm); + + 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/cdesc/irsend_cdesc.c b/ompi/mpi/fortran/use-mpi-f08/cdesc/irsend_cdesc.c new file mode 100644 index 00000000000..1091a332446 --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/cdesc/irsend_cdesc.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/mpi/fortran/mpif-h/bindings.h" +#include "ompi/mpi/fortran/use-mpi-f08/cdesc/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + +void ompi_irsend_cdesc(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; + void *buf = x->base_addr; + int c_count = OMPI_FINT_2_INT(*count); + + c_comm = PMPI_Comm_f2c (*comm); + + c_datatype = c_type; + if (x->rank != 0 && !CFI_is_contiguous(x)) { + c_ierr = ompi_cdesc_create_datatype(x, c_count, c_type, &c_datatype); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + return; + } + c_count = 1; + } + 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/cdesc/isend_cdesc.c b/ompi/mpi/fortran/use-mpi-f08/cdesc/isend_cdesc.c new file mode 100644 index 00000000000..fede87ac94a --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/cdesc/isend_cdesc.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/mpi/fortran/mpif-h/bindings.h" +#include "ompi/mpi/fortran/use-mpi-f08/cdesc/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + +void ompi_isend_cdesc(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; + void *buf = x->base_addr; + int c_count = OMPI_FINT_2_INT(*count); + + c_comm = PMPI_Comm_f2c (*comm); + + c_datatype = c_type; + if (x->rank != 0 && !CFI_is_contiguous(x)) { + c_ierr = ompi_cdesc_create_datatype(x, c_count, c_type, &c_datatype); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + return; + } + c_count = 1; + } + 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/cdesc/issend_cdesc.c b/ompi/mpi/fortran/use-mpi-f08/cdesc/issend_cdesc.c new file mode 100644 index 00000000000..1e3d4a7e129 --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/cdesc/issend_cdesc.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/mpi/fortran/mpif-h/bindings.h" +#include "ompi/mpi/fortran/use-mpi-f08/cdesc/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + +void ompi_issend_cdesc(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; + void *buf = x->base_addr; + int c_count = OMPI_FINT_2_INT(*count); + + c_comm = PMPI_Comm_f2c (*comm); + + c_datatype = c_type; + if (x->rank != 0 && !CFI_is_contiguous(x)) { + c_ierr = ompi_cdesc_create_datatype(x, c_count, c_type, &c_datatype); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + return; + } + c_count = 1; + } + 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/cdesc/mrecv_cdesc.c b/ompi/mpi/fortran/use-mpi-f08/cdesc/mrecv_cdesc.c new file mode 100644 index 00000000000..5cb864955d9 --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/cdesc/mrecv_cdesc.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) 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/mpi/fortran/mpif-h/bindings.h" +#include "ompi/mpi/fortran/use-mpi-f08/cdesc/bindings.h" +#include "ompi/mpi/fortran/mpif-h/status-conversion.h" +#include "ompi/mpi/fortran/base/constants.h" +#include "ompi/communicator/communicator.h" + +void ompi_mrecv_cdesc(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) + + /* Call the C function */ + if (x->rank != 0 && !CFI_is_contiguous(x)) { + c_ierr = ompi_cdesc_create_datatype(x, c_count, c_type, &c_datatype); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + return; + } + c_count = 1; + } + c_ierr = OMPI_INT_2_FINT(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/cdesc/pack_cdesc.c b/ompi/mpi/fortran/use-mpi-f08/cdesc/pack_cdesc.c new file mode 100644 index 00000000000..b0c41f49796 --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/cdesc/pack_cdesc.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/mpi/fortran/mpif-h/bindings.h" +#include "ompi/mpi/fortran/use-mpi-f08/cdesc/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + +void ompi_pack_cdesc(CFI_cdesc_t* x, MPI_Fint *incount, MPI_Fint *datatype, + char *outbuf, MPI_Fint *outsize, MPI_Fint *position, + MPI_Fint *comm, MPI_Fint *ierr) +{ + int c_ierr; + MPI_Comm c_comm; + MPI_Datatype c_datatype, c_type = PMPI_Type_f2c(*datatype); + OMPI_SINGLE_NAME_DECL(position); + void *inbuf = x->base_addr; + int c_incount = OMPI_FINT_2_INT(*incount); + int c_outsize = OMPI_FINT_2_INT(*outsize); + + c_datatype = c_type; + if (x->rank != 0 && !CFI_is_contiguous(x)) { + c_ierr = ompi_cdesc_create_datatype(x, c_incount, c_type, &c_datatype); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + return; + } + c_incount = 1; + } + c_comm = PMPI_Comm_f2c(*comm); + OMPI_SINGLE_FINT_2_INT(position); + + 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/cdesc/pack_external_cdesc.c b/ompi/mpi/fortran/use-mpi-f08/cdesc/pack_external_cdesc.c new file mode 100644 index 00000000000..9a8af614892 --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/cdesc/pack_external_cdesc.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/mpi/fortran/mpif-h/bindings.h" +#include "ompi/mpi/fortran/use-mpi-f08/cdesc/bindings.h" +#include "ompi/constants.h" +#include "ompi/communicator/communicator.h" +#include "ompi/mpi/fortran/base/constants.h" +#include "ompi/mpi/fortran/base/fortran_base_strings.h" + +void ompi_pack_external_cdesc(char *datarep, CFI_cdesc_t* x, MPI_Fint *incount, + MPI_Fint *datatype, char *outbuf, + 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 = x->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_WORLD, ret, + "MPI_PACK_EXTERNAL"); + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + return; + } + + c_datatype = c_type; + if (x->rank != 0 && !CFI_is_contiguous(x)) { + c_ierr = ompi_cdesc_create_datatype(x, c_incount, c_type, &c_datatype); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + return; + } + c_incount = 1; + } + c_ierr = PMPI_Pack_external(c_datarep, OMPI_F2C_BOTTOM(inbuf), + c_incount, + c_type, 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/cdesc/recv_cdesc.c b/ompi/mpi/fortran/use-mpi-f08/cdesc/recv_cdesc.c new file mode 100644 index 00000000000..655fc279924 --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/cdesc/recv_cdesc.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/mpi/fortran/mpif-h/bindings.h" +#include "ompi/mpi/fortran/use-mpi-f08/cdesc/bindings.h" +#include "ompi/mpi/fortran/mpif-h/status-conversion.h" +#include "ompi/mpi/fortran/base/constants.h" +#include "ompi/communicator/communicator.h" + +void ompi_recv_cdesc(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); + + c_datatype = c_type; + if (x->rank != 0 && !CFI_is_contiguous(x)) { + c_ierr = ompi_cdesc_create_datatype(x, c_count, c_type, &c_datatype); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + return; + } + c_count = 1; + } + 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/cdesc/recv_init_cdesc.c b/ompi/mpi/fortran/use-mpi-f08/cdesc/recv_init_cdesc.c new file mode 100644 index 00000000000..70e1c98d1f4 --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/cdesc/recv_init_cdesc.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/mpi/fortran/mpif-h/bindings.h" +#include "ompi/mpi/fortran/use-mpi-f08/cdesc/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + +void ompi_recv_init_cdesc(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; + void *buf = x->base_addr; + int c_count = OMPI_FINT_2_INT(*count); + + c_comm = PMPI_Comm_f2c (*comm); + + c_datatype = c_type; + if (x->rank != 0 && !CFI_is_contiguous(x)) { + c_ierr = ompi_cdesc_create_datatype(x, c_count, c_type, &c_datatype); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + return; + } + c_count = 1; + } + 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/cdesc/rsend_cdesc.c b/ompi/mpi/fortran/use-mpi-f08/cdesc/rsend_cdesc.c new file mode 100644 index 00000000000..3a8304dc036 --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/cdesc/rsend_cdesc.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/mpi/fortran/mpif-h/bindings.h" +#include "ompi/mpi/fortran/use-mpi-f08/cdesc/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + +void ompi_rsend_cdesc(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; + void *buf = x->base_addr; + int c_count = OMPI_FINT_2_INT(*count); + + c_comm = PMPI_Comm_f2c (*comm); + + c_datatype = c_type; + if (x->rank != 0 && !CFI_is_contiguous(x)) { + c_ierr = ompi_cdesc_create_datatype(x, c_count, c_type, &c_datatype); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + return; + } + c_count = 1; + } + 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/cdesc/rsend_init_cdesc.c b/ompi/mpi/fortran/use-mpi-f08/cdesc/rsend_init_cdesc.c new file mode 100644 index 00000000000..8bb368cb582 --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/cdesc/rsend_init_cdesc.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/mpi/fortran/mpif-h/bindings.h" +#include "ompi/mpi/fortran/use-mpi-f08/cdesc/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + +void ompi_rsend_init_cdesc(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; + void *buf = x->base_addr; + int c_count = OMPI_FINT_2_INT(*count); + + c_comm = PMPI_Comm_f2c (*comm); + + c_datatype = c_type; + if (x->rank != 0 && !CFI_is_contiguous(x)) { + c_ierr = ompi_cdesc_create_datatype(x, c_count, c_type, &c_datatype); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + return; + } + c_count = 1; + } + 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/cdesc/scatter_cdesc.c b/ompi/mpi/fortran/use-mpi-f08/cdesc/scatter_cdesc.c new file mode 100644 index 00000000000..3c08a7005cd --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/cdesc/scatter_cdesc.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-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/mpi/fortran/mpif-h/bindings.h" +#include "ompi/mpi/fortran/use-mpi-f08/cdesc/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + +void ompi_scatter_cdesc(char *sendbuf, MPI_Fint *sendcount, + MPI_Fint *sendtype, CFI_cdesc_t *x, + MPI_Fint *recvcount, MPI_Fint *recvtype, + MPI_Fint *root, MPI_Fint *comm, MPI_Fint *ierr) +{ + int c_ierr; + MPI_Datatype c_sendtype; + MPI_Datatype c_recvdatatype, c_recvtype = PMPI_Type_f2c(*recvtype); + void *recvbuf = x->base_addr; + int c_recvcount = OMPI_FINT_2_INT(*recvcount); + MPI_Comm c_comm = PMPI_Comm_f2c(*comm); + + c_sendtype = PMPI_Type_f2c(*sendtype); + + sendbuf = (char *) OMPI_F2C_BOTTOM(sendbuf); + recvbuf = (char *) OMPI_F2C_IN_PLACE(recvbuf); + recvbuf = (char *) OMPI_F2C_BOTTOM(recvbuf); + + c_recvdatatype = c_recvtype; + if (x->rank != 0 && !CFI_is_contiguous(x)) { + c_ierr = ompi_cdesc_create_datatype(x, c_recvcount, c_recvtype, &c_recvdatatype); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + return; + } + c_recvcount = 1; + } + c_ierr = PMPI_Scatter(sendbuf,OMPI_FINT_2_INT(*sendcount), + c_sendtype, recvbuf, + c_recvcount, + c_recvdatatype, + OMPI_FINT_2_INT(*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/cdesc/scatterv_cdesc.c b/ompi/mpi/fortran/use-mpi-f08/cdesc/scatterv_cdesc.c new file mode 100644 index 00000000000..cfdc84c2aab --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/cdesc/scatterv_cdesc.c @@ -0,0 +1,78 @@ +/* + * 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/mpi/fortran/mpif-h/bindings.h" +#include "ompi/mpi/fortran/use-mpi-f08/cdesc/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + + +void ompi_scatterv_cdesc(char *sendbuf, MPI_Fint *sendcounts, + MPI_Fint *displs, MPI_Fint *sendtype, + CFI_cdesc_t *x, MPI_Fint *recvcount, + MPI_Fint *recvtype, MPI_Fint *root, + MPI_Fint *comm, MPI_Fint *ierr) +{ + MPI_Comm c_comm; + MPI_Datatype c_sendtype; + MPI_Datatype c_recvdatatype, c_recvtype = PMPI_Type_f2c(*recvtype); + void *recvbuf = x->base_addr; + int c_recvcount = OMPI_FINT_2_INT(*recvcount); + int size, c_ierr; + OMPI_ARRAY_NAME_DECL(sendcounts); + OMPI_ARRAY_NAME_DECL(displs); + + c_comm = PMPI_Comm_f2c(*comm); + c_sendtype = PMPI_Type_f2c(*sendtype); + + PMPI_Comm_size(c_comm, &size); + OMPI_ARRAY_FINT_2_INT(sendcounts, size); + OMPI_ARRAY_FINT_2_INT(displs, size); + + sendbuf = (char *) OMPI_F2C_BOTTOM(sendbuf); + recvbuf = (char *) OMPI_F2C_IN_PLACE(recvbuf); + recvbuf = (char *) OMPI_F2C_BOTTOM(recvbuf); + + c_recvdatatype = c_recvtype; + if (x->rank != 0 && !CFI_is_contiguous(x)) { + c_ierr = ompi_cdesc_create_datatype(x, c_recvcount, c_recvtype, &c_recvdatatype); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + return; + } + c_recvcount = 1; + } + c_ierr = PMPI_Scatterv(sendbuf, + OMPI_ARRAY_NAME_CONVERT(sendcounts), + OMPI_ARRAY_NAME_CONVERT(displs), + c_sendtype, recvbuf, + c_recvcount, + c_recvdatatype, + OMPI_FINT_2_INT(*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/cdesc/send_cdesc.c b/ompi/mpi/fortran/use-mpi-f08/cdesc/send_cdesc.c new file mode 100644 index 00000000000..c2a6d837f0b --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/cdesc/send_cdesc.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/mpi/fortran/mpif-h/bindings.h" +#include "ompi/mpi/fortran/use-mpi-f08/cdesc/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + + +void ompi_send_cdesc(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); + + c_datatype = c_type; + if (x->rank != 0 && !CFI_is_contiguous(x)) { + c_ierr = ompi_cdesc_create_datatype(x, c_count, c_type, &c_datatype); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + return; + } + c_count = 1; + } + 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/cdesc/send_init_cdesc.c b/ompi/mpi/fortran/use-mpi-f08/cdesc/send_init_cdesc.c new file mode 100644 index 00000000000..33ea7b74943 --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/cdesc/send_init_cdesc.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/mpi/fortran/mpif-h/bindings.h" +#include "ompi/mpi/fortran/use-mpi-f08/cdesc/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + +void ompi_send_init_cdesc(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; + void *buf = x->base_addr; + int c_count = OMPI_FINT_2_INT(*count); + + c_comm = PMPI_Comm_f2c (*comm); + c_datatype = c_type; + if (x->rank != 0 && !CFI_is_contiguous(x)) { + c_ierr = ompi_cdesc_create_datatype(x, c_count, c_type, &c_datatype); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + return; + } + c_count = 1; + } + + 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/cdesc/sendrecv_cdesc.c b/ompi/mpi/fortran/use-mpi-f08/cdesc/sendrecv_cdesc.c new file mode 100644 index 00000000000..78489b81690 --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/cdesc/sendrecv_cdesc.c @@ -0,0 +1,87 @@ +/* + * 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/mpif-h/bindings.h" +#include "ompi/mpi/fortran/use-mpi-f08/cdesc/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + +void ompi_sendrecv_cdesc(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; + 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); + + c_comm = PMPI_Comm_f2c (*comm); + + c_senddatatype = c_sendtype; + if (x1->rank != 0 && !CFI_is_contiguous(x1)) { + c_ierr = ompi_cdesc_create_datatype(x1, c_sendcount, c_sendtype, &c_senddatatype); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + return; + } + c_sendcount = 1; + } + c_recvdatatype = c_recvtype; + if (x2->rank != 0 && !CFI_is_contiguous(x2)) { + c_ierr = ompi_cdesc_create_datatype(x2, c_recvcount, c_recvtype, &c_recvdatatype); + if (MPI_SUCCESS != c_ierr) { + if (c_senddatatype != c_sendtype) { + ompi_datatype_destroy(&c_senddatatype); + } + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + return; + } + c_recvcount = 1; + } + 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/cdesc/sendrecv_replace_cdesc.c b/ompi/mpi/fortran/use-mpi-f08/cdesc/sendrecv_replace_cdesc.c new file mode 100644 index 00000000000..8010125660e --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/cdesc/sendrecv_replace_cdesc.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/mpi/fortran/mpif-h/bindings.h" +#include "ompi/mpi/fortran/use-mpi-f08/cdesc/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + +void ompi_sendrecv_replace_cdesc(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; + MPI_Status c_status; + void *buf = x->base_addr; + int c_count = OMPI_FINT_2_INT(*count); + + c_comm = PMPI_Comm_f2c (*comm); + + c_datatype = c_type; + if (x->rank != 0 && !CFI_is_contiguous(x)) { + c_ierr = ompi_cdesc_create_datatype(x, c_count, c_type, &c_datatype); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + return; + } + c_count = 1; + } + c_ierr = PMPI_Sendrecv_replace(OMPI_F2C_BOTTOM(buf), + OMPI_FINT_2_INT(*count), + c_type, + 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/cdesc/ssend_cdesc.c b/ompi/mpi/fortran/use-mpi-f08/cdesc/ssend_cdesc.c new file mode 100644 index 00000000000..0f99e9f20a1 --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/cdesc/ssend_cdesc.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/mpi/fortran/mpif-h/bindings.h" +#include "ompi/mpi/fortran/use-mpi-f08/cdesc/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + +void ompi_ssend_cdesc(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; + void *buf = x->base_addr; + int c_count = OMPI_FINT_2_INT(*count); + + c_comm = PMPI_Comm_f2c (*comm); + + c_datatype = c_type; + if (x->rank != 0 && !CFI_is_contiguous(x)) { + c_ierr = ompi_cdesc_create_datatype(x, c_count, c_type, &c_datatype); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + return; + } + c_count = 1; + } + 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/cdesc/ssend_init_cdesc.c b/ompi/mpi/fortran/use-mpi-f08/cdesc/ssend_init_cdesc.c new file mode 100644 index 00000000000..9c16a276db5 --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/cdesc/ssend_init_cdesc.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/mpi/fortran/mpif-h/bindings.h" +#include "ompi/mpi/fortran/use-mpi-f08/cdesc/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + +void ompi_ssend_init_cdesc(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; + void *buf = x->base_addr; + int c_count = OMPI_FINT_2_INT(*count); + + c_comm = PMPI_Comm_f2c (*comm); + + c_datatype = c_type; + if (x->rank != 0 && !CFI_is_contiguous(x)) { + c_ierr = ompi_cdesc_create_datatype(x, c_count, c_type, &c_datatype); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + return; + } + c_count = 1; + } + 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/cdesc/unpack_cdesc.c b/ompi/mpi/fortran/use-mpi-f08/cdesc/unpack_cdesc.c new file mode 100644 index 00000000000..8067a005af0 --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/cdesc/unpack_cdesc.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/mpi/fortran/mpif-h/bindings.h" +#include "ompi/mpi/fortran/use-mpi-f08/cdesc/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + +void ompi_unpack_cdesc(char *inbuf, MPI_Fint *insize, MPI_Fint *position, + CFI_cdesc_t* x, MPI_Fint *outcount, MPI_Fint *datatype, + MPI_Fint *comm, MPI_Fint *ierr) +{ + int c_ierr; + MPI_Comm c_comm; + MPI_Datatype c_datatype, c_type = PMPI_Type_f2c(*datatype); + OMPI_SINGLE_NAME_DECL(position); + void *outbuf = x->base_addr; + int c_outcount = OMPI_FINT_2_INT(*outcount); + + c_datatype = c_type; + if (x->rank != 0 && !CFI_is_contiguous(x)) { + c_ierr = ompi_cdesc_create_datatype(x, c_outcount, c_type, &c_datatype); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + return; + } + c_outcount = 1; + } + c_comm = PMPI_Comm_f2c(*comm); + 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/cdesc/unpack_external_cdesc.c b/ompi/mpi/fortran/use-mpi-f08/cdesc/unpack_external_cdesc.c new file mode 100644 index 00000000000..d4c268f37a5 --- /dev/null +++ b/ompi/mpi/fortran/use-mpi-f08/cdesc/unpack_external_cdesc.c @@ -0,0 +1,75 @@ +/* + * 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/mpif-h/bindings.h" +#include "ompi/mpi/fortran/use-mpi-f08/cdesc/bindings.h" +#include "ompi/constants.h" +#include "ompi/communicator/communicator.h" +#include "ompi/mpi/fortran/base/constants.h" +#include "ompi/mpi/fortran/base/fortran_base_strings.h" + +void ompi_unpack_external_cdesc(char *datarep, char *inbuf, MPI_Aint *insize, + MPI_Aint *position, CFI_cdesc_t* x, + 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); + void *outbuf = x->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_WORLD, ret, + "MPI_PACK_EXTERNAL"); + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + return; + } + + c_datatype = c_type; + if (x->rank != 0 && !CFI_is_contiguous(x)) { + c_ierr = ompi_cdesc_create_datatype(x, c_outcount, c_type, &c_datatype); + if (MPI_SUCCESS != c_ierr) { + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); + return; + } + c_outcount = 1; + } + 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/gather_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/gather_f08.F90 index 628424281d6..9ed0bc8eebc 100644 --- a/ompi/mpi/fortran/use-mpi-f08/gather_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/gather_f08.F90 @@ -3,7 +3,7 @@ ! Copyright (c) 2009-2012 Cisco Systems, Inc. All rights reserved. ! Copyright (c) 2009-2012 Los Alamos National Security, LLC. ! All rights reserved. -! Copyright (c) 2018 Research Organization for Information Science +! Copyright (c) 2018-2019 Research Organization for Information Science ! and Technology (RIST). All rights reserved. ! $COPYRIGHT$ @@ -14,8 +14,8 @@ subroutine MPI_Gather_f08(sendbuf,sendcount,sendtype,recvbuf,recvcount,& use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm use :: ompi_mpifh_bindings, only : ompi_gather_f implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE :: recvbuf INTEGER, INTENT(IN) :: sendcount, recvcount, root TYPE(MPI_Datatype), INTENT(IN) :: sendtype TYPE(MPI_Datatype), INTENT(IN) :: recvtype diff --git a/ompi/mpi/fortran/use-mpi-f08/gatherv_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/gatherv_f08.F90 index 2eb58211e1d..fd21ad5c637 100644 --- a/ompi/mpi/fortran/use-mpi-f08/gatherv_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/gatherv_f08.F90 @@ -3,7 +3,7 @@ ! Copyright (c) 2009-2012 Cisco Systems, Inc. All rights reserved. ! Copyright (c) 2009-2012 Los Alamos National Security, LLC. ! All rights reserved. -! Copyright (c) 2018 Research Organization for Information Science +! Copyright (c) 2018-2019 Research Organization for Information Science ! and Technology (RIST). All rights reserved. ! $COPYRIGHT$ @@ -14,8 +14,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/ibsend_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/ibsend_f08.F90 index 2700e677600..4d61f2d53d4 100644 --- a/ompi/mpi/fortran/use-mpi-f08/ibsend_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/ibsend_f08.F90 @@ -3,7 +3,7 @@ ! Copyright (c) 2009-2012 Cisco Systems, Inc. All rights reserved. ! Copyright (c) 2009-2012 Los Alamos National Security, LLC. ! All rights reserved. -! Copyright (c) 2018 Research Organization for Information Science +! Copyright (c) 2018-2019 Research Organization for Information Science ! and Technology (RIST). All rights reserved. ! $COPYRIGHT$ @@ -13,7 +13,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) :: 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/imrecv_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/imrecv_f08.F90 index 17763bcc421..fff0b6d6df0 100644 --- a/ompi/mpi/fortran/use-mpi-f08/imrecv_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/imrecv_f08.F90 @@ -3,7 +3,7 @@ ! Copyright (c) 2009-2012 Cisco Systems, Inc. All rights reserved. ! Copyright (c) 2009-2012 Los Alamos National Security, LLC. ! All Rights reserved. -! Copyright (c) 2018 Research Organization for Information Science +! Copyright (c) 2018-2019 Research Organization for Information Science ! and Technology (RIST). All rights reserved. ! $COPYRIGHT$ @@ -13,7 +13,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/irecv_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/irecv_f08.F90 index db607bcbb72..347aa290c40 100644 --- a/ompi/mpi/fortran/use-mpi-f08/irecv_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/irecv_f08.F90 @@ -3,7 +3,7 @@ ! Copyright (c) 2009-2012 Cisco Systems, Inc. All rights reserved. ! Copyright (c) 2009-2012 Los Alamos National Security, LLC. ! All rights reserved. -! Copyright (c) 2018 Research Organization for Information Science +! Copyright (c) 2018-2019 Research Organization for Information Science ! and Technology (RIST). All rights reserved. ! $COPYRIGHT$ @@ -13,7 +13,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/irsend_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/irsend_f08.F90 index e1b5f1ef35a..2c5135be011 100644 --- a/ompi/mpi/fortran/use-mpi-f08/irsend_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/irsend_f08.F90 @@ -3,7 +3,7 @@ ! Copyright (c) 2009-2012 Cisco Systems, Inc. All rights reserved. ! Copyright (c) 2009-2012 Los Alamos National Security, LLC. ! All rights reserved. -! Copyright (c) 2018 Research Organization for Information Science +! Copyright (c) 2018-2019 Research Organization for Information Science ! and Technology (RIST). All rights reserved. ! $COPYRIGHT$ @@ -13,7 +13,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/isend_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/isend_f08.F90 index cbf92d820a8..463a2c0559f 100644 --- a/ompi/mpi/fortran/use-mpi-f08/isend_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/isend_f08.F90 @@ -3,7 +3,7 @@ ! Copyright (c) 2009-2012 Cisco Systems, Inc. All rights reserved. ! Copyright (c) 2009-2012 Los Alamos National Security, LLC. ! All rights reserved. -! Copyright (c) 2018 Research Organization for Information Science +! Copyright (c) 2018-2019 Research Organization for Information Science ! and Technology (RIST). All rights reserved. ! $COPYRIGHT$ @@ -13,7 +13,7 @@ subroutine MPI_Isend_f08(buf,count,datatype,dest,tag,comm,request,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request use :: ompi_mpifh_bindings, only : ompi_isend_f implicit none - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: buf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: buf INTEGER, INTENT(IN) :: count, dest, tag TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Comm), INTENT(IN) :: comm diff --git a/ompi/mpi/fortran/use-mpi-f08/issend_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/issend_f08.F90 index 3ff0cb895e4..8ec20bdd147 100644 --- a/ompi/mpi/fortran/use-mpi-f08/issend_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/issend_f08.F90 @@ -3,7 +3,7 @@ ! Copyright (c) 2009-2012 Cisco Systems, Inc. All rights reserved. ! Copyright (c) 2009-2012 Los Alamos National Security, LLC. ! All rights reserved. -! Copyright (c) 2018 Research Organization for Information Science +! Copyright (c) 2018-2019 Research Organization for Information Science ! and Technology (RIST). All rights reserved. ! $COPYRIGHT$ @@ -13,7 +13,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) :: 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/mod/mpi-f08-interfaces.F90 b/ompi/mpi/fortran/use-mpi-f08/mod/mpi-f08-interfaces.F90 index 55ae341d800..5a6b334a42a 100644 --- a/ompi/mpi/fortran/use-mpi-f08/mod/mpi-f08-interfaces.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/mod/mpi-f08-interfaces.F90 @@ -7,8 +7,8 @@ ! of Tennessee Research Foundation. All rights ! reserved. ! Copyright (c) 2012 Inria. All rights reserved. -! Copyright (c) 2015-2017 Research Organization for Information Science -! and Technology (RIST). All rights reserved. +! Copyright (c) 2015-2019 Research Organization for Information Science +! and Technology (RIST). All rights reserved. ! Copyright (c) 2017-2018 FUJITSU LIMITED. All rights reserved. ! $COPYRIGHT$ ! @@ -26,11 +26,11 @@ subroutine MPI_Bsend_f08(buf,count,datatype,dest,tag,comm,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm implicit none !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf - !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf + OMPI_F08_GCC_ATTRIBUTES(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) :: count, dest, tag TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Comm), INTENT(IN) :: comm @@ -43,11 +43,11 @@ subroutine MPI_Bsend_init_f08(buf,count,datatype,dest,tag,comm,request,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request implicit none !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf - !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf + OMPI_F08_GCC_ATTRIBUTES(buf) !$PRAGMA IGNORE_TKR buf !DIR$ IGNORE_TKR buf !IBM* IGNORE_TKR buf - OMPI_FORTRAN_IGNORE_TKR_TYPE :: buf + OMPI_F08_IGNORE_TKR_TYPE :: buf INTEGER, INTENT(IN) :: count, dest, tag TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Comm), INTENT(IN) :: comm @@ -105,11 +105,11 @@ subroutine MPI_Ibsend_f08(buf,count,datatype,dest,tag,comm,request,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request implicit none !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf - !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf + OMPI_F08_GCC_ATTRIBUTES(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) :: count, dest, tag TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Comm), INTENT(IN) :: comm @@ -135,11 +135,11 @@ subroutine MPI_Irecv_f08(buf,count,datatype,source,tag,comm,request,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request implicit none !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf - !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf + OMPI_F08_GCC_ATTRIBUTES(buf) !$PRAGMA IGNORE_TKR buf !DIR$ IGNORE_TKR buf !IBM* IGNORE_TKR buf - 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 @@ -153,11 +153,11 @@ subroutine MPI_Irsend_f08(buf,count,datatype,dest,tag,comm,request,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request implicit none !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf - !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf + OMPI_F08_GCC_ATTRIBUTES(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) :: count, dest, tag TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Comm), INTENT(IN) :: comm @@ -171,11 +171,11 @@ subroutine MPI_Isend_f08(buf,count,datatype,dest,tag,comm,request,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request implicit none !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf - !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf + OMPI_F08_GCC_ATTRIBUTES(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) :: count, dest, tag TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Comm), INTENT(IN) :: comm @@ -189,11 +189,11 @@ subroutine MPI_Issend_f08(buf,count,datatype,dest,tag,comm,request,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request implicit none !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf - !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf + OMPI_F08_GCC_ATTRIBUTES(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) :: count, dest, tag TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Comm), INTENT(IN) :: comm @@ -218,11 +218,11 @@ subroutine MPI_Recv_f08(buf,count,datatype,source,tag,comm,status,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Status implicit none !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf - !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf + OMPI_F08_GCC_ATTRIBUTES(buf) !$PRAGMA IGNORE_TKR buf !DIR$ IGNORE_TKR buf !IBM* IGNORE_TKR buf - 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 @@ -236,11 +236,11 @@ subroutine MPI_Recv_init_f08(buf,count,datatype,source,tag,comm,request,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request implicit none !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf - !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf + OMPI_F08_GCC_ATTRIBUTES(buf) !$PRAGMA IGNORE_TKR buf !DIR$ IGNORE_TKR buf !IBM* IGNORE_TKR buf - 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 @@ -274,11 +274,11 @@ subroutine MPI_Rsend_f08(buf,count,datatype,dest,tag,comm,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm implicit none !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf - !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf + OMPI_F08_GCC_ATTRIBUTES(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) :: count, dest, tag TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Comm), INTENT(IN) :: comm @@ -291,11 +291,11 @@ subroutine MPI_Rsend_init_f08(buf,count,datatype,dest,tag,comm,request,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request implicit none !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf - !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf + OMPI_F08_GCC_ATTRIBUTES(buf) !$PRAGMA IGNORE_TKR buf !DIR$ IGNORE_TKR buf !IBM* IGNORE_TKR buf - OMPI_FORTRAN_IGNORE_TKR_TYPE :: buf + OMPI_F08_IGNORE_TKR_TYPE :: buf INTEGER, INTENT(IN) :: count, dest, tag TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Comm), INTENT(IN) :: comm @@ -309,11 +309,11 @@ subroutine MPI_Send_f08(buf,count,datatype,dest,tag,comm,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm implicit none !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf - !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf + OMPI_F08_GCC_ATTRIBUTES(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) :: count, dest, tag TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Comm), INTENT(IN) :: comm @@ -327,12 +327,13 @@ subroutine MPI_Sendrecv_f08(sendbuf,sendcount,sendtype,dest,sendtag,recvbuf, & use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Status implicit none !DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf - !GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf + OMPI_F08_GCC_ATTRIBUTES(sendbuf) + OMPI_F08_GCC_ATTRIBUTES(recvbuf) !$PRAGMA IGNORE_TKR sendbuf, recvbuf !DIR$ IGNORE_TKR sendbuf, recvbuf !IBM* IGNORE_TKR sendbuf, recvbuf - 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, recvtype TYPE(MPI_Comm), INTENT(IN) :: comm @@ -347,11 +348,11 @@ subroutine MPI_Sendrecv_replace_f08(buf,count,datatype,dest,sendtag,source,recvt use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Status implicit none !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf - !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf + OMPI_F08_GCC_ATTRIBUTES(buf) !$PRAGMA IGNORE_TKR buf !DIR$ IGNORE_TKR buf !IBM* IGNORE_TKR buf - 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 @@ -365,11 +366,11 @@ subroutine MPI_Send_init_f08(buf,count,datatype,dest,tag,comm,request,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request implicit none !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf - !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf + OMPI_F08_GCC_ATTRIBUTES(buf) !$PRAGMA IGNORE_TKR buf !DIR$ IGNORE_TKR buf !IBM* IGNORE_TKR buf - OMPI_FORTRAN_IGNORE_TKR_TYPE :: buf + OMPI_F08_IGNORE_TKR_TYPE :: buf INTEGER, INTENT(IN) :: count, dest, tag TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Comm), INTENT(IN) :: comm @@ -383,11 +384,11 @@ subroutine MPI_Ssend_f08(buf,count,datatype,dest,tag,comm,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm implicit none !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf - !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf + OMPI_F08_GCC_ATTRIBUTES(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) :: count, dest, tag TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Comm), INTENT(IN) :: comm @@ -400,11 +401,11 @@ subroutine MPI_Ssend_init_f08(buf,count,datatype,dest,tag,comm,request,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request implicit none !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf - !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf + OMPI_F08_GCC_ATTRIBUTES(buf) !$PRAGMA IGNORE_TKR buf !DIR$ IGNORE_TKR buf !IBM* IGNORE_TKR buf - OMPI_FORTRAN_IGNORE_TKR_TYPE :: buf + OMPI_F08_IGNORE_TKR_TYPE :: buf INTEGER, INTENT(IN) :: count, dest, tag TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Comm), INTENT(IN) :: comm @@ -579,11 +580,12 @@ subroutine MPI_Pack_f08(inbuf,incount,datatype,outbuf,outsize,position,comm,ierr use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm implicit none !DEC$ ATTRIBUTES NO_ARG_CHECK :: inbuf, outbuf - !GCC$ ATTRIBUTES NO_ARG_CHECK :: inbuf, outbuf + OMPI_F08_GCC_ATTRIBUTES(inbuf) + !GCC$ ATTRIBUTES NO_ARG_CHECK :: outbuf !$PRAGMA IGNORE_TKR inbuf, outbuf !DIR$ IGNORE_TKR inbuf, outbuf !IBM* IGNORE_TKR inbuf, outbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: inbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: inbuf OMPI_FORTRAN_IGNORE_TKR_TYPE :: outbuf INTEGER, INTENT(IN) :: incount, outsize TYPE(MPI_Datatype), INTENT(IN) :: datatype @@ -600,11 +602,12 @@ subroutine MPI_Pack_external_f08(datarep,inbuf,incount,datatype,outbuf,outsize, implicit none CHARACTER(LEN=*), INTENT(IN) :: datarep !DEC$ ATTRIBUTES NO_ARG_CHECK :: inbuf, outbuf - !GCC$ ATTRIBUTES NO_ARG_CHECK :: inbuf, outbuf + OMPI_F08_GCC_ATTRIBUTES(inbuf) + !GCC$ ATTRIBUTES NO_ARG_CHECK :: outbuf !$PRAGMA IGNORE_TKR inbuf, outbuf !DIR$ IGNORE_TKR inbuf, outbuf !IBM* IGNORE_TKR inbuf, outbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: inbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: inbuf OMPI_FORTRAN_IGNORE_TKR_TYPE :: outbuf INTEGER, INTENT(IN) :: incount TYPE(MPI_Datatype), INTENT(IN) :: datatype @@ -900,12 +903,13 @@ subroutine MPI_Unpack_f08(inbuf,insize,position,outbuf,outcount,datatype,comm, & use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm implicit none !DEC$ ATTRIBUTES NO_ARG_CHECK :: inbuf, outbuf - !GCC$ ATTRIBUTES NO_ARG_CHECK :: inbuf, outbuf + !GCC$ ATTRIBUTES NO_ARG_CHECK :: inbuf + OMPI_F08_GCC_ATTRIBUTES(outbuf) !$PRAGMA IGNORE_TKR inbuf, outbuf !DIR$ IGNORE_TKR inbuf, outbuf !IBM* IGNORE_TKR inbuf, outbuf OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: inbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE :: outbuf + OMPI_F08_IGNORE_TKR_TYPE :: outbuf INTEGER, INTENT(IN) :: insize, outcount INTEGER, INTENT(INOUT) :: position TYPE(MPI_Datatype), INTENT(IN) :: datatype @@ -922,12 +926,13 @@ subroutine MPI_Unpack_external_f08(datarep,inbuf,insize,position,outbuf,outcount implicit none CHARACTER(LEN=*), INTENT(IN) :: datarep !DEC$ ATTRIBUTES NO_ARG_CHECK :: inbuf, outbuf - !GCC$ ATTRIBUTES NO_ARG_CHECK :: inbuf, outbuf + !GCC$ ATTRIBUTES NO_ARG_CHECK :: inbuf + OMPI_F08_GCC_ATTRIBUTES(outbuf) !$PRAGMA IGNORE_TKR inbuf, outbuf !DIR$ IGNORE_TKR inbuf, outbuf !IBM* IGNORE_TKR inbuf, outbuf OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: inbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE :: outbuf + OMPI_F08_IGNORE_TKR_TYPE :: outbuf INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: insize INTEGER(MPI_ADDRESS_KIND), INTENT(INOUT) :: position INTEGER, INTENT(IN) :: outcount @@ -942,12 +947,13 @@ subroutine MPI_Allgather_f08(sendbuf,sendcount,sendtype,recvbuf,recvcount,recvty use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm implicit none !DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf - !GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf + OMPI_F08_GCC_ATTRIBUTES(sendbuf) + OMPI_F08_GCC_ATTRIBUTES(recvbuf) !$PRAGMA IGNORE_TKR sendbuf, recvbuf !DIR$ IGNORE_TKR sendbuf, recvbuf !IBM* IGNORE_TKR sendbuf, recvbuf - 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, recvtype TYPE(MPI_Comm), INTENT(IN) :: comm @@ -981,11 +987,12 @@ subroutine MPI_Allgatherv_f08(sendbuf,sendcount,sendtype,recvbuf,recvcounts,disp use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm implicit none !DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf - !GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf + OMPI_F08_GCC_ATTRIBUTES(sendbuf) + !GCC$ ATTRIBUTES NO_ARG_CHECK :: recvbuf !$PRAGMA IGNORE_TKR sendbuf, recvbuf !DIR$ IGNORE_TKR sendbuf, recvbuf !IBM* IGNORE_TKR sendbuf, recvbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf INTEGER, INTENT(IN) :: sendcount INTEGER, INTENT(IN) :: recvcounts(*), displs(*) @@ -1061,12 +1068,13 @@ subroutine MPI_Alltoall_f08(sendbuf,sendcount,sendtype,recvbuf,recvcount,recvtyp use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm implicit none !DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf - !GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf + OMPI_F08_GCC_ATTRIBUTES(sendbuf) + OMPI_F08_GCC_ATTRIBUTES(recvbuf) !$PRAGMA IGNORE_TKR sendbuf, recvbuf !DIR$ IGNORE_TKR sendbuf, recvbuf !IBM* IGNORE_TKR sendbuf, recvbuf - 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, recvtype TYPE(MPI_Comm), INTENT(IN) :: comm @@ -1196,11 +1204,11 @@ subroutine MPI_Bcast_f08(buffer,count,datatype,root,comm,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm implicit none !DEC$ ATTRIBUTES NO_ARG_CHECK :: buffer - !GCC$ ATTRIBUTES NO_ARG_CHECK :: buffer + OMPI_F08_GCC_ATTRIBUTES(buffer) !$PRAGMA IGNORE_TKR buffer !DIR$ IGNORE_TKR buffer !IBM* IGNORE_TKR buffer - 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 @@ -1271,12 +1279,13 @@ subroutine MPI_Gather_f08(sendbuf,sendcount,sendtype,recvbuf,recvcount,recvtype, use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm implicit none !DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf - !GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf + OMPI_F08_GCC_ATTRIBUTES(sendbuf) + OMPI_F08_GCC_ATTRIBUTES(recvbuf) !$PRAGMA IGNORE_TKR sendbuf, recvbuf !DIR$ IGNORE_TKR sendbuf, recvbuf !IBM* IGNORE_TKR sendbuf, recvbuf - 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, recvtype TYPE(MPI_Comm), INTENT(IN) :: comm @@ -1310,11 +1319,12 @@ subroutine MPI_Gatherv_f08(sendbuf,sendcount,sendtype,recvbuf,recvcounts,displs, use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm implicit none !DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf - !GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf + OMPI_F08_GCC_ATTRIBUTES(sendbuf) + !GCC$ ATTRIBUTES NO_ARG_CHECK :: recvbuf !$PRAGMA IGNORE_TKR sendbuf, recvbuf !DIR$ IGNORE_TKR sendbuf, recvbuf !IBM* IGNORE_TKR sendbuf, recvbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf INTEGER, INTENT(IN) :: sendcount, root INTEGER, INTENT(IN) :: recvcounts(*), displs(*) @@ -1560,12 +1570,13 @@ subroutine MPI_Scatter_f08(sendbuf,sendcount,sendtype,recvbuf,recvcount,recvtype use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm implicit none !DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf - !GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf + !GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf + OMPI_F08_GCC_ATTRIBUTES(recvbuf) !$PRAGMA IGNORE_TKR sendbuf, recvbuf !DIR$ IGNORE_TKR sendbuf, recvbuf !IBM* IGNORE_TKR sendbuf, recvbuf OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf + 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 @@ -1599,12 +1610,13 @@ subroutine MPI_Scatterv_f08(sendbuf,sendcounts,displs,sendtype,recvbuf,recvcount use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm implicit none !DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf - !GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf + !GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf + OMPI_F08_GCC_ATTRIBUTES(recvbuf) !$PRAGMA IGNORE_TKR sendbuf, recvbuf !DIR$ IGNORE_TKR sendbuf, recvbuf !IBM* IGNORE_TKR sendbuf, recvbuf OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf + OMPI_F08_IGNORE_TKR_TYPE :: recvbuf INTEGER, INTENT(IN) :: recvcount, root INTEGER, INTENT(IN) :: sendcounts(*), displs(*) TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype @@ -4506,11 +4518,11 @@ subroutine MPI_Imrecv_f08(buf,count,datatype,message,request,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Message, MPI_Request implicit none !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf - !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf + OMPI_F08_GCC_ATTRIBUTES(buf) !$PRAGMA IGNORE_TKR buf !DIR$ IGNORE_TKR buf !IBM* IGNORE_TKR buf - 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 @@ -4524,11 +4536,11 @@ subroutine MPI_Mrecv_f08(buf,count,datatype,message,status,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Message, MPI_Status implicit none !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf - !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf + OMPI_F08_GCC_ATTRIBUTES(buf) !$PRAGMA IGNORE_TKR buf !DIR$ IGNORE_TKR buf !IBM* IGNORE_TKR buf - 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/mod/pmpi-f08-interfaces.F90 b/ompi/mpi/fortran/use-mpi-f08/mod/pmpi-f08-interfaces.F90 index 6e02e8aac2c..dc79999b77e 100644 --- a/ompi/mpi/fortran/use-mpi-f08/mod/pmpi-f08-interfaces.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/mod/pmpi-f08-interfaces.F90 @@ -7,8 +7,8 @@ ! of Tennessee Research Foundation. All rights ! reserved. ! Copyright (c) 2012 Inria. All rights reserved. -! Copyright (c) 2015-2017 Research Organization for Information Science -! and Technology (RIST). All rights reserved. +! Copyright (c) 2015-2019 Research Organization for Information Science +! and Technology (RIST). All rights reserved. ! Copyright (c) 2017-2018 FUJITSU LIMITED. All rights reserved. ! $COPYRIGHT$ ! @@ -26,11 +26,11 @@ subroutine PMPI_Bsend_f08(buf,count,datatype,dest,tag,comm,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm implicit none !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf - !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf + OMPI_F08_GCC_ATTRIBUTES(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) :: count, dest, tag TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Comm), INTENT(IN) :: comm @@ -43,11 +43,11 @@ subroutine PMPI_Bsend_init_f08(buf,count,datatype,dest,tag,comm,request,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request implicit none !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf - !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf + OMPI_F08_GCC_ATTRIBUTES(buf) !$PRAGMA IGNORE_TKR buf !DIR$ IGNORE_TKR buf !IBM* IGNORE_TKR buf - OMPI_FORTRAN_IGNORE_TKR_TYPE :: buf + OMPI_F08_IGNORE_TKR_TYPE :: buf INTEGER, INTENT(IN) :: count, dest, tag TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Comm), INTENT(IN) :: comm @@ -105,11 +105,11 @@ subroutine PMPI_Ibsend_f08(buf,count,datatype,dest,tag,comm,request,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request implicit none !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf - !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf + OMPI_F08_GCC_ATTRIBUTES(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) :: count, dest, tag TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Comm), INTENT(IN) :: comm @@ -135,11 +135,11 @@ subroutine PMPI_Irecv_f08(buf,count,datatype,source,tag,comm,request,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request implicit none !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf - !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf + OMPI_F08_GCC_ATTRIBUTES(buf) !$PRAGMA IGNORE_TKR buf !DIR$ IGNORE_TKR buf !IBM* IGNORE_TKR buf - 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 @@ -153,11 +153,11 @@ subroutine PMPI_Irsend_f08(buf,count,datatype,dest,tag,comm,request,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request implicit none !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf - !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf + OMPI_F08_GCC_ATTRIBUTES(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) :: count, dest, tag TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Comm), INTENT(IN) :: comm @@ -171,11 +171,11 @@ subroutine PMPI_Isend_f08(buf,count,datatype,dest,tag,comm,request,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request implicit none !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf - !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf + OMPI_F08_GCC_ATTRIBUTES(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) :: count, dest, tag TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Comm), INTENT(IN) :: comm @@ -189,11 +189,11 @@ subroutine PMPI_Issend_f08(buf,count,datatype,dest,tag,comm,request,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request implicit none !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf - !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf + OMPI_F08_GCC_ATTRIBUTES(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) :: count, dest, tag TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Comm), INTENT(IN) :: comm @@ -218,11 +218,11 @@ subroutine PMPI_Recv_f08(buf,count,datatype,source,tag,comm,status,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Status implicit none !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf - !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf + OMPI_F08_GCC_ATTRIBUTES(buf) !$PRAGMA IGNORE_TKR buf !DIR$ IGNORE_TKR buf !IBM* IGNORE_TKR buf - 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 @@ -236,11 +236,11 @@ subroutine PMPI_Recv_init_f08(buf,count,datatype,source,tag,comm,request,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request implicit none !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf - !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf + OMPI_F08_GCC_ATTRIBUTES(buf) !$PRAGMA IGNORE_TKR buf !DIR$ IGNORE_TKR buf !IBM* IGNORE_TKR buf - 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 @@ -274,11 +274,11 @@ subroutine PMPI_Rsend_f08(buf,count,datatype,dest,tag,comm,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm implicit none !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf - !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf + OMPI_F08_GCC_ATTRIBUTES(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) :: count, dest, tag TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Comm), INTENT(IN) :: comm @@ -291,11 +291,11 @@ subroutine PMPI_Rsend_init_f08(buf,count,datatype,dest,tag,comm,request,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request implicit none !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf - !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf + OMPI_F08_GCC_ATTRIBUTES(buf) !$PRAGMA IGNORE_TKR buf !DIR$ IGNORE_TKR buf !IBM* IGNORE_TKR buf - OMPI_FORTRAN_IGNORE_TKR_TYPE :: buf + OMPI_F08_IGNORE_TKR_TYPE :: buf INTEGER, INTENT(IN) :: count, dest, tag TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Comm), INTENT(IN) :: comm @@ -309,11 +309,11 @@ subroutine PMPI_Send_f08(buf,count,datatype,dest,tag,comm,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm implicit none !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf - !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf + OMPI_F08_GCC_ATTRIBUTES(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) :: count, dest, tag TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Comm), INTENT(IN) :: comm @@ -327,12 +327,13 @@ subroutine PMPI_Sendrecv_f08(sendbuf,sendcount,sendtype,dest,sendtag,recvbuf, & use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Status implicit none !DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf - !GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf + OMPI_F08_GCC_ATTRIBUTES(sendbuf) + OMPI_F08_GCC_ATTRIBUTES(recvbuf) !$PRAGMA IGNORE_TKR sendbuf, recvbuf !DIR$ IGNORE_TKR sendbuf, recvbuf !IBM* IGNORE_TKR sendbuf, recvbuf - 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, recvtype TYPE(MPI_Comm), INTENT(IN) :: comm @@ -347,11 +348,11 @@ subroutine PMPI_Sendrecv_replace_f08(buf,count,datatype,dest,sendtag,source,recv use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Status implicit none !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf - !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf + OMPI_F08_GCC_ATTRIBUTES(buf) !$PRAGMA IGNORE_TKR buf !DIR$ IGNORE_TKR buf !IBM* IGNORE_TKR buf - 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 @@ -365,11 +366,11 @@ subroutine PMPI_Send_init_f08(buf,count,datatype,dest,tag,comm,request,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request implicit none !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf - !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf + OMPI_F08_GCC_ATTRIBUTES(buf) !$PRAGMA IGNORE_TKR buf !DIR$ IGNORE_TKR buf !IBM* IGNORE_TKR buf - OMPI_FORTRAN_IGNORE_TKR_TYPE :: buf + OMPI_F08_IGNORE_TKR_TYPE :: buf INTEGER, INTENT(IN) :: count, dest, tag TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Comm), INTENT(IN) :: comm @@ -383,11 +384,11 @@ subroutine PMPI_Ssend_f08(buf,count,datatype,dest,tag,comm,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm implicit none !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf - !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf + OMPI_F08_GCC_ATTRIBUTES(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) :: count, dest, tag TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Comm), INTENT(IN) :: comm @@ -400,11 +401,11 @@ subroutine PMPI_Ssend_init_f08(buf,count,datatype,dest,tag,comm,request,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request implicit none !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf - !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf + OMPI_F08_GCC_ATTRIBUTES(buf) !$PRAGMA IGNORE_TKR buf !DIR$ IGNORE_TKR buf !IBM* IGNORE_TKR buf - OMPI_FORTRAN_IGNORE_TKR_TYPE :: buf + OMPI_F08_IGNORE_TKR_TYPE :: buf INTEGER, INTENT(IN) :: count, dest, tag TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Comm), INTENT(IN) :: comm @@ -579,11 +580,12 @@ subroutine PMPI_Pack_f08(inbuf,incount,datatype,outbuf,outsize,position,comm,ier use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm implicit none !DEC$ ATTRIBUTES NO_ARG_CHECK :: inbuf, outbuf - !GCC$ ATTRIBUTES NO_ARG_CHECK :: inbuf, outbuf + OMPI_F08_GCC_ATTRIBUTES(inbuf) + !GCC$ ATTRIBUTES NO_ARG_CHECK :: outbuf !$PRAGMA IGNORE_TKR inbuf, outbuf !DIR$ IGNORE_TKR inbuf, outbuf !IBM* IGNORE_TKR inbuf, outbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: inbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: inbuf OMPI_FORTRAN_IGNORE_TKR_TYPE :: outbuf INTEGER, INTENT(IN) :: incount, outsize TYPE(MPI_Datatype), INTENT(IN) :: datatype @@ -600,11 +602,12 @@ subroutine PMPI_Pack_external_f08(datarep,inbuf,incount,datatype,outbuf,outsize, implicit none CHARACTER(LEN=*), INTENT(IN) :: datarep !DEC$ ATTRIBUTES NO_ARG_CHECK :: inbuf, outbuf - !GCC$ ATTRIBUTES NO_ARG_CHECK :: inbuf, outbuf + OMPI_F08_GCC_ATTRIBUTES(inbuf) + !GCC$ ATTRIBUTES NO_ARG_CHECK :: outbuf !$PRAGMA IGNORE_TKR inbuf, outbuf !DIR$ IGNORE_TKR inbuf, outbuf !IBM* IGNORE_TKR inbuf, outbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: inbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: inbuf OMPI_FORTRAN_IGNORE_TKR_TYPE :: outbuf INTEGER, INTENT(IN) :: incount TYPE(MPI_Datatype), INTENT(IN) :: datatype @@ -900,12 +903,13 @@ subroutine PMPI_Unpack_f08(inbuf,insize,position,outbuf,outcount,datatype,comm, use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm implicit none !DEC$ ATTRIBUTES NO_ARG_CHECK :: inbuf, outbuf - !GCC$ ATTRIBUTES NO_ARG_CHECK :: inbuf, outbuf + !GCC$ ATTRIBUTES NO_ARG_CHECK :: inbuf + OMPI_F08_GCC_ATTRIBUTES(outbuf) !$PRAGMA IGNORE_TKR inbuf, outbuf !DIR$ IGNORE_TKR inbuf, outbuf !IBM* IGNORE_TKR inbuf, outbuf OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: inbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE :: outbuf + OMPI_F08_IGNORE_TKR_TYPE :: outbuf INTEGER, INTENT(IN) :: insize, outcount INTEGER, INTENT(INOUT) :: position TYPE(MPI_Datatype), INTENT(IN) :: datatype @@ -922,12 +926,13 @@ subroutine PMPI_Unpack_external_f08(datarep,inbuf,insize,position,outbuf,outcoun implicit none CHARACTER(LEN=*), INTENT(IN) :: datarep !DEC$ ATTRIBUTES NO_ARG_CHECK :: inbuf, outbuf - !GCC$ ATTRIBUTES NO_ARG_CHECK :: inbuf, outbuf + !GCC$ ATTRIBUTES NO_ARG_CHECK :: inbuf + OMPI_F08_GCC_ATTRIBUTES(outbuf) !$PRAGMA IGNORE_TKR inbuf, outbuf !DIR$ IGNORE_TKR inbuf, outbuf !IBM* IGNORE_TKR inbuf, outbuf OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: inbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE :: outbuf + OMPI_F08_IGNORE_TKR_TYPE :: outbuf INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: insize INTEGER(MPI_ADDRESS_KIND), INTENT(INOUT) :: position INTEGER, INTENT(IN) :: outcount @@ -942,12 +947,13 @@ subroutine PMPI_Allgather_f08(sendbuf,sendcount,sendtype,recvbuf,recvcount,recvt use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm implicit none !DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf - !GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf + OMPI_F08_GCC_ATTRIBUTES(sendbuf) + OMPI_F08_GCC_ATTRIBUTES(recvbuf) !$PRAGMA IGNORE_TKR sendbuf, recvbuf !DIR$ IGNORE_TKR sendbuf, recvbuf !IBM* IGNORE_TKR sendbuf, recvbuf - 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, recvtype TYPE(MPI_Comm), INTENT(IN) :: comm @@ -981,11 +987,12 @@ subroutine PMPI_Allgatherv_f08(sendbuf,sendcount,sendtype,recvbuf,recvcounts,dis use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm implicit none !DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf - !GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf + OMPI_F08_GCC_ATTRIBUTES(sendbuf) + !GCC$ ATTRIBUTES NO_ARG_CHECK :: recvbuf !$PRAGMA IGNORE_TKR sendbuf, recvbuf !DIR$ IGNORE_TKR sendbuf, recvbuf !IBM* IGNORE_TKR sendbuf, recvbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf INTEGER, INTENT(IN) :: sendcount INTEGER, INTENT(IN) :: recvcounts(*), displs(*) @@ -1061,12 +1068,13 @@ subroutine PMPI_Alltoall_f08(sendbuf,sendcount,sendtype,recvbuf,recvcount,recvty use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm implicit none !DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf - !GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf + OMPI_F08_GCC_ATTRIBUTES(sendbuf) + OMPI_F08_GCC_ATTRIBUTES(recvbuf) !$PRAGMA IGNORE_TKR sendbuf, recvbuf !DIR$ IGNORE_TKR sendbuf, recvbuf !IBM* IGNORE_TKR sendbuf, recvbuf - 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, recvtype TYPE(MPI_Comm), INTENT(IN) :: comm @@ -1196,11 +1204,11 @@ subroutine PMPI_Bcast_f08(buffer,count,datatype,root,comm,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm implicit none !DEC$ ATTRIBUTES NO_ARG_CHECK :: buffer - !GCC$ ATTRIBUTES NO_ARG_CHECK :: buffer + OMPI_F08_GCC_ATTRIBUTES(buffer) !$PRAGMA IGNORE_TKR buffer !DIR$ IGNORE_TKR buffer !IBM* IGNORE_TKR buffer - 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 @@ -1271,12 +1279,13 @@ subroutine PMPI_Gather_f08(sendbuf,sendcount,sendtype,recvbuf,recvcount,recvtype use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm implicit none !DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf - !GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf + OMPI_F08_GCC_ATTRIBUTES(sendbuf) + OMPI_F08_GCC_ATTRIBUTES(recvbuf) !$PRAGMA IGNORE_TKR sendbuf, recvbuf !DIR$ IGNORE_TKR sendbuf, recvbuf !IBM* IGNORE_TKR sendbuf, recvbuf - 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, recvtype TYPE(MPI_Comm), INTENT(IN) :: comm @@ -1310,11 +1319,12 @@ subroutine PMPI_Gatherv_f08(sendbuf,sendcount,sendtype,recvbuf,recvcounts,displs use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm implicit none !DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf - !GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf + OMPI_F08_GCC_ATTRIBUTES(sendbuf) + !GCC$ ATTRIBUTES NO_ARG_CHECK :: recvbuf !$PRAGMA IGNORE_TKR sendbuf, recvbuf !DIR$ IGNORE_TKR sendbuf, recvbuf !IBM* IGNORE_TKR sendbuf, recvbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf + OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf INTEGER, INTENT(IN) :: sendcount, root INTEGER, INTENT(IN) :: recvcounts(*), displs(*) @@ -1560,12 +1570,13 @@ subroutine PMPI_Scatter_f08(sendbuf,sendcount,sendtype,recvbuf,recvcount,recvtyp use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm implicit none !DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf - !GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf + !GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf + OMPI_F08_GCC_ATTRIBUTES(recvbuf) !$PRAGMA IGNORE_TKR sendbuf, recvbuf !DIR$ IGNORE_TKR sendbuf, recvbuf !IBM* IGNORE_TKR sendbuf, recvbuf OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf + 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 @@ -1599,12 +1610,13 @@ subroutine PMPI_Scatterv_f08(sendbuf,sendcounts,displs,sendtype,recvbuf,recvcoun use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm implicit none !DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf - !GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf + !GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf + OMPI_F08_GCC_ATTRIBUTES(recvbuf) !$PRAGMA IGNORE_TKR sendbuf, recvbuf !DIR$ IGNORE_TKR sendbuf, recvbuf !IBM* IGNORE_TKR sendbuf, recvbuf OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf - OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf + OMPI_F08_IGNORE_TKR_TYPE :: recvbuf INTEGER, INTENT(IN) :: recvcount, root INTEGER, INTENT(IN) :: sendcounts(*), displs(*) TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype @@ -4506,11 +4518,11 @@ subroutine PMPI_Imrecv_f08(buf,count,datatype,message,request,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Message, MPI_Request implicit none !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf - !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf + OMPI_F08_GCC_ATTRIBUTES(buf) !$PRAGMA IGNORE_TKR buf !DIR$ IGNORE_TKR buf !IBM* IGNORE_TKR buf - 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 @@ -4524,11 +4536,11 @@ subroutine PMPI_Mrecv_f08(buf,count,datatype,message,status,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_Message, MPI_Status implicit none !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf - !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf + OMPI_F08_GCC_ATTRIBUTES(buf) !$PRAGMA IGNORE_TKR buf !DIR$ IGNORE_TKR buf !IBM* IGNORE_TKR buf - 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/mrecv_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/mrecv_f08.F90 index 157a52d36f7..83e520ec5ce 100644 --- a/ompi/mpi/fortran/use-mpi-f08/mrecv_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/mrecv_f08.F90 @@ -3,7 +3,7 @@ ! Copyright (c) 2009-2012 Cisco Systems, Inc. All rights reserved. ! Copyright (c) 2009-2012 Los Alamos National Security, LLC. ! All Rights reserved. -! Copyright (c) 2018 Research Organization for Information Science +! Copyright (c) 2018-2019 Research Organization for Information Science ! and Technology (RIST). All rights reserved. ! $COPYRIGHT$ @@ -13,7 +13,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/pack_external_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/pack_external_f08.F90 index af84cdac291..7194ab6c248 100644 --- a/ompi/mpi/fortran/use-mpi-f08/pack_external_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/pack_external_f08.F90 @@ -3,7 +3,7 @@ ! Copyright (c) 2009-2012 Cisco Systems, Inc. All rights reserved. ! Copyright (c) 2009-2012 Los Alamos National Security, LLC. ! All rights reserved. -! Copyright (c) 2018 Research Organization for Information Science +! Copyright (c) 2018-2019 Research Organization for Information Science ! and Technology (RIST). All rights reserved. ! Copyright (c) 2018 FUJITSU LIMITED. All rights reserved. ! $COPYRIGHT$ @@ -16,7 +16,7 @@ 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_F08_IGNORE_TKR_TYPE, INTENT(IN) :: inbuf OMPI_FORTRAN_IGNORE_TKR_TYPE :: outbuf INTEGER, INTENT(IN) :: incount TYPE(MPI_Datatype), INTENT(IN) :: datatype diff --git a/ompi/mpi/fortran/use-mpi-f08/pack_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/pack_f08.F90 index bee3d73a0e5..5876e6fd1a1 100644 --- a/ompi/mpi/fortran/use-mpi-f08/pack_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/pack_f08.F90 @@ -3,7 +3,7 @@ ! Copyright (c) 2009-2012 Cisco Systems, Inc. All rights reserved. ! Copyright (c) 2009-2012 Los Alamos National Security, LLC. ! All rights reserved. -! Copyright (c) 2018 Research Organization for Information Science +! Copyright (c) 2018-2019 Research Organization for Information Science ! and Technology (RIST). All rights reserved. ! Copyright (c) 2018 FUJITSU LIMITED. All rights reserved. ! $COPYRIGHT$ @@ -14,7 +14,7 @@ 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_F08_IGNORE_TKR_TYPE, INTENT(IN) :: inbuf OMPI_FORTRAN_IGNORE_TKR_TYPE :: outbuf INTEGER, INTENT(IN) :: incount, outsize TYPE(MPI_Datatype), INTENT(IN) :: datatype diff --git a/ompi/mpi/fortran/use-mpi-f08/profile/pallgather_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/profile/pallgather_f08.F90 index cbf96e381c7..c959be1091d 100644 --- a/ompi/mpi/fortran/use-mpi-f08/profile/pallgather_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/profile/pallgather_f08.F90 @@ -3,7 +3,7 @@ ! Copyright (c) 2009-2012 Cisco Systems, Inc. All rights reserved. ! Copyright (c) 2009-2012 Los Alamos National Security, LLC. ! All rights reserved. -! Copyright (c) 2018 Research Organization for Information Science +! Copyright (c) 2018-2019 Research Organization for Information Science ! and Technology (RIST). All rights reserved. ! $COPYRIGHT$ @@ -13,8 +13,8 @@ subroutine PMPI_Allgather_f08(sendbuf,sendcount,sendtype,recvbuf,recvcount,recvt 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/profile/pallgatherv_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/profile/pallgatherv_f08.F90 index 00752d9dd5b..d23e27c7979 100644 --- a/ompi/mpi/fortran/use-mpi-f08/profile/pallgatherv_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/profile/pallgatherv_f08.F90 @@ -3,7 +3,7 @@ ! Copyright (c) 2009-2012 Cisco Systems, Inc. All rights reserved. ! Copyright (c) 2009-2012 Los Alamos National Security, LLC. ! All rights reserved. -! Copyright (c) 2018 Research Organization for Information Science +! Copyright (c) 2018-2019 Research Organization for Information Science ! and Technology (RIST). All rights reserved. ! $COPYRIGHT$ @@ -14,8 +14,8 @@ subroutine PMPI_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/profile/palltoall_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/profile/palltoall_f08.F90 index 467bbaf1fe6..02f7dcbf97d 100644 --- a/ompi/mpi/fortran/use-mpi-f08/profile/palltoall_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/profile/palltoall_f08.F90 @@ -3,7 +3,7 @@ ! Copyright (c) 2009-2012 Cisco Systems, Inc. All rights reserved. ! Copyright (c) 2009-2012 Los Alamos National Security, LLC. ! All rights reserved. -! Copyright (c) 2018 Research Organization for Information Science +! Copyright (c) 2018-2019 Research Organization for Information Science ! and Technology (RIST). All rights reserved. ! $COPYRIGHT$ @@ -14,8 +14,8 @@ subroutine PMPI_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/profile/pbcast_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/profile/pbcast_f08.F90 index 94c7efd7ac2..284854b51c9 100644 --- a/ompi/mpi/fortran/use-mpi-f08/profile/pbcast_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/profile/pbcast_f08.F90 @@ -3,7 +3,7 @@ ! Copyright (c) 2009-2012 Cisco Systems, Inc. All rights reserved. ! Copyright (c) 2009-2012 Los Alamos National Security, LLC. ! All rights reserved. -! Copyright (c) 2018 Research Organization for Information Science +! Copyright (c) 2018-2019 Research Organization for Information Science ! and Technology (RIST). All rights reserved. ! Copyright (c) 2018 FUJITSU LIMITED. All rights reserved. ! $COPYRIGHT$ @@ -14,7 +14,7 @@ subroutine PMPI_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/profile/pbsend_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/profile/pbsend_f08.F90 index a443f9b9019..25d9666bc69 100644 --- a/ompi/mpi/fortran/use-mpi-f08/profile/pbsend_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/profile/pbsend_f08.F90 @@ -3,7 +3,7 @@ ! Copyright (c) 2009-2012 Cisco Systems, Inc. All rights reserved. ! Copyright (c) 2009-2012 Los Alamos National Security, LLC. ! All rights reserved. -! Copyright (c) 2018 Research Organization for Information Science +! Copyright (c) 2018-2019 Research Organization for Information Science ! and Technology (RIST). All rights reserved. ! $COPYRIGHT$ @@ -13,7 +13,7 @@ subroutine PMPI_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/profile/pbsend_init_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/profile/pbsend_init_f08.F90 index 488bce1bb7f..1a8493c2204 100644 --- a/ompi/mpi/fortran/use-mpi-f08/profile/pbsend_init_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/profile/pbsend_init_f08.F90 @@ -3,7 +3,7 @@ ! Copyright (c) 2009-2012 Cisco Systems, Inc. All rights reserved. ! Copyright (c) 2009-2012 Los Alamos National Security, LLC. ! All rights reserved. -! Copyright (c) 2018 Research Organization for Information Science +! Copyright (c) 2018-2019 Research Organization for Information Science ! and Technology (RIST). All rights reserved. ! $COPYRIGHT$ @@ -13,7 +13,7 @@ subroutine PMPI_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) :: 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/profile/pgather_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/profile/pgather_f08.F90 index e5a948c3995..6f72fdff5cb 100644 --- a/ompi/mpi/fortran/use-mpi-f08/profile/pgather_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/profile/pgather_f08.F90 @@ -3,7 +3,7 @@ ! Copyright (c) 2009-2012 Cisco Systems, Inc. All rights reserved. ! Copyright (c) 2009-2012 Los Alamos National Security, LLC. ! All rights reserved. -! Copyright (c) 2018 Research Organization for Information Science +! Copyright (c) 2018-2019 Research Organization for Information Science ! and Technology (RIST). All rights reserved. ! $COPYRIGHT$ @@ -14,8 +14,8 @@ subroutine PMPI_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/profile/pgatherv_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/profile/pgatherv_f08.F90 index 60108f91570..4a9f835aeec 100644 --- a/ompi/mpi/fortran/use-mpi-f08/profile/pgatherv_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/profile/pgatherv_f08.F90 @@ -3,7 +3,7 @@ ! Copyright (c) 2009-2012 Cisco Systems, Inc. All rights reserved. ! Copyright (c) 2009-2012 Los Alamos National Security, LLC. ! All rights reserved. -! Copyright (c) 2018 Research Organization for Information Science +! Copyright (c) 2018-2019 Research Organization for Information Science ! and Technology (RIST). All rights reserved. ! $COPYRIGHT$ @@ -14,8 +14,8 @@ subroutine PMPI_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/profile/pibsend_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/profile/pibsend_f08.F90 index 06bf415e9cc..85302db6f47 100644 --- a/ompi/mpi/fortran/use-mpi-f08/profile/pibsend_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/profile/pibsend_f08.F90 @@ -3,7 +3,7 @@ ! Copyright (c) 2009-2012 Cisco Systems, Inc. All rights reserved. ! Copyright (c) 2009-2012 Los Alamos National Security, LLC. ! All rights reserved. -! Copyright (c) 2018 Research Organization for Information Science +! Copyright (c) 2018-2019 Research Organization for Information Science ! and Technology (RIST). All rights reserved. ! $COPYRIGHT$ @@ -13,7 +13,7 @@ subroutine PMPI_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) :: 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/profile/pimrecv_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/profile/pimrecv_f08.F90 index 12e197c08ce..e9c5bada908 100644 --- a/ompi/mpi/fortran/use-mpi-f08/profile/pimrecv_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/profile/pimrecv_f08.F90 @@ -3,7 +3,7 @@ ! Copyright (c) 2009-2012 Cisco Systems, Inc. All rights reserved. ! Copyright (c) 2009-2012 Los Alamos National Security, LLC. ! All Rights reserved. -! Copyright (c) 2018 Research Organization for Information Science +! Copyright (c) 2018-2019 Research Organization for Information Science ! and Technology (RIST). All rights reserved. ! $COPYRIGHT$ @@ -13,7 +13,7 @@ subroutine PMPI_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/profile/pirecv_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/profile/pirecv_f08.F90 index 1fc53d7853b..73c16a905f9 100644 --- a/ompi/mpi/fortran/use-mpi-f08/profile/pirecv_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/profile/pirecv_f08.F90 @@ -3,7 +3,7 @@ ! Copyright (c) 2009-2012 Cisco Systems, Inc. All rights reserved. ! Copyright (c) 2009-2012 Los Alamos National Security, LLC. ! All rights reserved. -! Copyright (c) 2018 Research Organization for Information Science +! Copyright (c) 2018-2019 Research Organization for Information Science ! and Technology (RIST). All rights reserved. ! $COPYRIGHT$ @@ -13,7 +13,7 @@ subroutine PMPI_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/profile/pirsend_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/profile/pirsend_f08.F90 index fe449809dfb..d7ece2bd8f2 100644 --- a/ompi/mpi/fortran/use-mpi-f08/profile/pirsend_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/profile/pirsend_f08.F90 @@ -3,7 +3,7 @@ ! Copyright (c) 2009-2012 Cisco Systems, Inc. All rights reserved. ! Copyright (c) 2009-2012 Los Alamos National Security, LLC. ! All rights reserved. -! Copyright (c) 2018 Research Organization for Information Science +! Copyright (c) 2018-2019 Research Organization for Information Science ! and Technology (RIST). All rights reserved. ! $COPYRIGHT$ @@ -13,7 +13,7 @@ subroutine PMPI_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/profile/pisend_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/profile/pisend_f08.F90 index 0d9cd32ea6d..abde2ea7815 100644 --- a/ompi/mpi/fortran/use-mpi-f08/profile/pisend_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/profile/pisend_f08.F90 @@ -3,7 +3,7 @@ ! Copyright (c) 2009-2012 Cisco Systems, Inc. All rights reserved. ! Copyright (c) 2009-2012 Los Alamos National Security, LLC. ! All rights reserved. -! Copyright (c) 2018 Research Organization for Information Science +! Copyright (c) 2018-2019 Research Organization for Information Science ! and Technology (RIST). All rights reserved. ! $COPYRIGHT$ @@ -13,7 +13,7 @@ subroutine PMPI_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/profile/pissend_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/profile/pissend_f08.F90 index 77a03003f78..e957a935358 100644 --- a/ompi/mpi/fortran/use-mpi-f08/profile/pissend_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/profile/pissend_f08.F90 @@ -3,7 +3,7 @@ ! Copyright (c) 2009-2012 Cisco Systems, Inc. All rights reserved. ! Copyright (c) 2009-2012 Los Alamos National Security, LLC. ! All rights reserved. -! Copyright (c) 2018 Research Organization for Information Science +! Copyright (c) 2018-2019 Research Organization for Information Science ! and Technology (RIST). All rights reserved. ! $COPYRIGHT$ @@ -13,7 +13,7 @@ subroutine PMPI_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) :: 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/profile/pmrecv_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/profile/pmrecv_f08.F90 index 35d085520b3..bce3cb05f2a 100644 --- a/ompi/mpi/fortran/use-mpi-f08/profile/pmrecv_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/profile/pmrecv_f08.F90 @@ -3,7 +3,7 @@ ! Copyright (c) 2009-2012 Cisco Systems, Inc. All rights reserved. ! Copyright (c) 2009-2012 Los Alamos National Security, LLC. ! All Rights reserved. -! Copyright (c) 2018 Research Organization for Information Science +! Copyright (c) 2018-2019 Research Organization for Information Science ! and Technology (RIST). All rights reserved. ! $COPYRIGHT$ @@ -13,7 +13,7 @@ subroutine PMPI_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/profile/ppack_external_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/profile/ppack_external_f08.F90 index ab6c6d1df7b..50a14b495d1 100644 --- a/ompi/mpi/fortran/use-mpi-f08/profile/ppack_external_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/profile/ppack_external_f08.F90 @@ -3,7 +3,7 @@ ! Copyright (c) 2009-2012 Cisco Systems, Inc. All rights reserved. ! Copyright (c) 2009-2012 Los Alamos National Security, LLC. ! All rights reserved. -! Copyright (c) 2018 Research Organization for Information Science +! Copyright (c) 2018-2019 Research Organization for Information Science ! and Technology (RIST). All rights reserved. ! Copyright (c) 2018 FUJITSU LIMITED. All rights reserved. ! $COPYRIGHT$ @@ -11,12 +11,12 @@ #include "ompi/mpi/fortran/configure-fortran-output.h" subroutine PMPI_Pack_external_f08(datarep,inbuf,incount,datatype,outbuf,outsize, & - position,ierror) + position,ierror) use :: mpi_f08_types, only : MPI_Datatype, MPI_ADDRESS_KIND 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_F08_IGNORE_TKR_TYPE, INTENT(IN) :: inbuf OMPI_FORTRAN_IGNORE_TKR_TYPE :: outbuf INTEGER, INTENT(IN) :: incount TYPE(MPI_Datatype), INTENT(IN) :: datatype diff --git a/ompi/mpi/fortran/use-mpi-f08/profile/ppack_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/profile/ppack_f08.F90 index 866668a17fd..a75fcf6db0f 100644 --- a/ompi/mpi/fortran/use-mpi-f08/profile/ppack_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/profile/ppack_f08.F90 @@ -3,7 +3,7 @@ ! Copyright (c) 2009-2012 Cisco Systems, Inc. All rights reserved. ! Copyright (c) 2009-2012 Los Alamos National Security, LLC. ! All rights reserved. -! Copyright (c) 2018 Research Organization for Information Science +! Copyright (c) 2018-2019 Research Organization for Information Science ! and Technology (RIST). All rights reserved. ! Copyright (c) 2018 FUJITSU LIMITED. All rights reserved. ! $COPYRIGHT$ @@ -14,7 +14,7 @@ subroutine PMPI_Pack_f08(inbuf,incount,datatype,outbuf,outsize,position,comm,ier 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_F08_IGNORE_TKR_TYPE, INTENT(IN) :: inbuf OMPI_FORTRAN_IGNORE_TKR_TYPE :: outbuf INTEGER, INTENT(IN) :: incount, outsize TYPE(MPI_Datatype), INTENT(IN) :: datatype diff --git a/ompi/mpi/fortran/use-mpi-f08/profile/precv_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/profile/precv_f08.F90 index 0baccbcf63d..9806046394c 100644 --- a/ompi/mpi/fortran/use-mpi-f08/profile/precv_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/profile/precv_f08.F90 @@ -3,7 +3,7 @@ ! Copyright (c) 2009-2012 Cisco Systems, Inc. All rights reserved. ! Copyright (c) 2009-2012 Los Alamos National Security, LLC. ! All rights reserved. -! Copyright (c) 2018 Research Organization for Information Science +! Copyright (c) 2018-2019 Research Organization for Information Science ! and Technology (RIST). All rights reserved. ! $COPYRIGHT$ @@ -13,7 +13,7 @@ subroutine PMPI_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/profile/precv_init_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/profile/precv_init_f08.F90 index 3425aca80bc..c2e7935ce4c 100644 --- a/ompi/mpi/fortran/use-mpi-f08/profile/precv_init_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/profile/precv_init_f08.F90 @@ -3,7 +3,7 @@ ! Copyright (c) 2009-2012 Cisco Systems, Inc. All rights reserved. ! Copyright (c) 2009-2012 Los Alamos National Security, LLC. ! All rights reserved. -! Copyright (c) 2018 Research Organization for Information Science +! Copyright (c) 2018-2019 Research Organization for Information Science ! and Technology (RIST). All rights reserved. ! Copyright (c) 2018 FUJITSU LIMITED. All rights reserved. ! $COPYRIGHT$ @@ -14,7 +14,7 @@ subroutine PMPI_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 :: 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/profile/prsend_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/profile/prsend_f08.F90 index 66cb5d0e5aa..740a7b98a6e 100644 --- a/ompi/mpi/fortran/use-mpi-f08/profile/prsend_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/profile/prsend_f08.F90 @@ -3,7 +3,7 @@ ! Copyright (c) 2009-2012 Cisco Systems, Inc. All rights reserved. ! Copyright (c) 2009-2012 Los Alamos National Security, LLC. ! All rights reserved. -! Copyright (c) 2018 Research Organization for Information Science +! Copyright (c) 2018-2019 Research Organization for Information Science ! and Technology (RIST). All rights reserved. ! $COPYRIGHT$ @@ -13,7 +13,7 @@ subroutine PMPI_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/profile/prsend_init_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/profile/prsend_init_f08.F90 index 1b65ed987d7..13cb9955c37 100644 --- a/ompi/mpi/fortran/use-mpi-f08/profile/prsend_init_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/profile/prsend_init_f08.F90 @@ -3,7 +3,7 @@ ! Copyright (c) 2009-2012 Cisco Systems, Inc. All rights reserved. ! Copyright (c) 2009-2012 Los Alamos National Security, LLC. ! All rights reserved. -! Copyright (c) 2018 Research Organization for Information Science +! Copyright (c) 2018-2019 Research Organization for Information Science ! and Technology (RIST). All rights reserved. ! $COPYRIGHT$ @@ -13,7 +13,7 @@ subroutine PMPI_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, 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/profile/pscatter_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/profile/pscatter_f08.F90 index 446d83f13e3..e67f82f75fa 100644 --- a/ompi/mpi/fortran/use-mpi-f08/profile/pscatter_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/profile/pscatter_f08.F90 @@ -3,7 +3,7 @@ ! Copyright (c) 2009-2012 Cisco Systems, Inc. All rights reserved. ! Copyright (c) 2009-2012 Los Alamos National Security, LLC. ! All rights reserved. -! Copyright (c) 2018 Research Organization for Information Science +! Copyright (c) 2018-2019 Research Organization for Information Science ! and Technology (RIST). All rights reserved. ! $COPYRIGHT$ @@ -15,7 +15,7 @@ subroutine PMPI_Scatter_f08(sendbuf,sendcount,sendtype,recvbuf,& 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 :: 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/profile/pscatterv_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/profile/pscatterv_f08.F90 index 2bdb115107c..30d2b5bd23e 100644 --- a/ompi/mpi/fortran/use-mpi-f08/profile/pscatterv_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/profile/pscatterv_f08.F90 @@ -3,7 +3,7 @@ ! Copyright (c) 2009-2012 Cisco Systems, Inc. All rights reserved. ! Copyright (c) 2009-2012 Los Alamos National Security, LLC. ! All rights reserved. -! Copyright (c) 2018 Research Organization for Information Science +! Copyright (c) 2018-2019 Research Organization for Information Science ! and Technology (RIST). All rights reserved. ! $COPYRIGHT$ @@ -15,7 +15,7 @@ subroutine PMPI_Scatterv_f08(sendbuf,sendcounts,displs,sendtype,recvbuf,& 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 :: 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/profile/psend_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/profile/psend_f08.F90 index 6467dbced7e..ae16c01fb94 100644 --- a/ompi/mpi/fortran/use-mpi-f08/profile/psend_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/profile/psend_f08.F90 @@ -3,7 +3,7 @@ ! Copyright (c) 2009-2012 Cisco Systems, Inc. All rights reserved. ! Copyright (c) 2009-2012 Los Alamos National Security, LLC. ! All rights reserved. -! Copyright (c) 2018 Research Organization for Information Science +! Copyright (c) 2018-2019 Research Organization for Information Science ! and Technology (RIST). All rights reserved. ! $COPYRIGHT$ @@ -13,7 +13,7 @@ subroutine PMPI_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/profile/psend_init_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/profile/psend_init_f08.F90 index 7ca1544ee35..3a124f4d5d1 100644 --- a/ompi/mpi/fortran/use-mpi-f08/profile/psend_init_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/profile/psend_init_f08.F90 @@ -3,7 +3,7 @@ ! Copyright (c) 2009-2012 Cisco Systems, Inc. All rights reserved. ! Copyright (c) 2009-2012 Los Alamos National Security, LLC. ! All rights reserved. -! Copyright (c) 2018 Research Organization for Information Science +! Copyright (c) 2018-2019 Research Organization for Information Science ! and Technology (RIST). All rights reserved. ! $COPYRIGHT$ @@ -13,7 +13,7 @@ subroutine PMPI_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, 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/profile/psendrecv_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/profile/psendrecv_f08.F90 index 1fe911e9632..63b5d7e237c 100644 --- a/ompi/mpi/fortran/use-mpi-f08/profile/psendrecv_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/profile/psendrecv_f08.F90 @@ -3,7 +3,7 @@ ! Copyright (c) 2009-2012 Cisco Systems, Inc. All rights reserved. ! Copyright (c) 2009-2012 Los Alamos National Security, LLC. ! All rights reserved. -! Copyright (c) 2018 Research Organization for Information Science +! Copyright (c) 2018-2019 Research Organization for Information Science ! and Technology (RIST). All rights reserved. ! Copyright (c) 2018 FUJITSU LIMITED. All rights reserved. ! $COPYRIGHT$ @@ -15,8 +15,8 @@ subroutine PMPI_Sendrecv_f08(sendbuf,sendcount,sendtype,dest,sendtag,recvbuf, & 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/profile/psendrecv_replace_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/profile/psendrecv_replace_f08.F90 index 7f6bede48f3..d56e8832584 100644 --- a/ompi/mpi/fortran/use-mpi-f08/profile/psendrecv_replace_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/profile/psendrecv_replace_f08.F90 @@ -3,7 +3,7 @@ ! Copyright (c) 2009-2012 Cisco Systems, Inc. All rights reserved. ! Copyright (c) 2009-2012 Los Alamos National Security, LLC. ! All rights reserved. -! Copyright (c) 2018 Research Organization for Information Science +! Copyright (c) 2018-2019 Research Organization for Information Science ! and Technology (RIST). All rights reserved. ! Copyright (c) 2018 FUJITSU LIMITED. All rights reserved. ! $COPYRIGHT$ @@ -15,7 +15,7 @@ subroutine PMPI_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/profile/pssend_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/profile/pssend_f08.F90 index 970d9f9defe..547b4ecf8f3 100644 --- a/ompi/mpi/fortran/use-mpi-f08/profile/pssend_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/profile/pssend_f08.F90 @@ -3,7 +3,7 @@ ! Copyright (c) 2009-2012 Cisco Systems, Inc. All rights reserved. ! Copyright (c) 2009-2012 Los Alamos National Security, LLC. ! All rights reserved. -! Copyright (c) 2018 Research Organization for Information Science +! Copyright (c) 2018-2019 Research Organization for Information Science ! and Technology (RIST). All rights reserved. ! $COPYRIGHT$ @@ -13,7 +13,7 @@ subroutine PMPI_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/profile/pssend_init_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/profile/pssend_init_f08.F90 index f1f89d533f1..86b57d2618a 100644 --- a/ompi/mpi/fortran/use-mpi-f08/profile/pssend_init_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/profile/pssend_init_f08.F90 @@ -3,7 +3,7 @@ ! Copyright (c) 2009-2012 Cisco Systems, Inc. All rights reserved. ! Copyright (c) 2009-2012 Los Alamos National Security, LLC. ! All rights reserved. -! Copyright (c) 2018 Research Organization for Information Science +! Copyright (c) 2018-2019 Research Organization for Information Science ! and Technology (RIST). All rights reserved. ! $COPYRIGHT$ @@ -13,7 +13,7 @@ subroutine PMPI_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, 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/profile/punpack_external_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/profile/punpack_external_f08.F90 index 783eb2e4362..24ba02a0815 100644 --- a/ompi/mpi/fortran/use-mpi-f08/profile/punpack_external_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/profile/punpack_external_f08.F90 @@ -3,7 +3,7 @@ ! Copyright (c) 2009-2012 Cisco Systems, Inc. All rights reserved. ! Copyright (c) 2009-2012 Los Alamos National Security, LLC. ! All rights reserved. -! Copyright (c) 2018 Research Organization for Information Science +! Copyright (c) 2018-2019 Research Organization for Information Science ! and Technology (RIST). All rights reserved. ! Copyright (c) 2018 FUJITSU LIMITED. All rights reserved. ! $COPYRIGHT$ @@ -16,7 +16,7 @@ subroutine PMPI_Unpack_external_f08(datarep,inbuf,insize,position,outbuf,outcoun 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 :: 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/profile/punpack_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/profile/punpack_f08.F90 index 5ff77842262..542affd3f50 100644 --- a/ompi/mpi/fortran/use-mpi-f08/profile/punpack_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/profile/punpack_f08.F90 @@ -3,7 +3,7 @@ ! Copyright (c) 2009-2012 Cisco Systems, Inc. All rights reserved. ! Copyright (c) 2009-2012 Los Alamos National Security, LLC. ! All rights reserved. -! Copyright (c) 2018 Research Organization for Information Science +! Copyright (c) 2018-2019 Research Organization for Information Science ! and Technology (RIST). All rights reserved. ! Copyright (c) 2018 FUJITSU LIMITED. All rights reserved. ! $COPYRIGHT$ @@ -15,7 +15,7 @@ subroutine PMPI_Unpack_f08(inbuf,insize,position,outbuf,outcount,datatype,comm,i 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 :: 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/recv_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/recv_f08.F90 index 17a32d644bb..9285047df6d 100644 --- a/ompi/mpi/fortran/use-mpi-f08/recv_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/recv_f08.F90 @@ -3,7 +3,7 @@ ! Copyright (c) 2009-2012 Cisco Systems, Inc. All rights reserved. ! Copyright (c) 2009-2012 Los Alamos National Security, LLC. ! All rights reserved. -! Copyright (c) 2018 Research Organization for Information Science +! Copyright (c) 2018-2019 Research Organization for Information Science ! and Technology (RIST). All rights reserved. ! $COPYRIGHT$ @@ -13,7 +13,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 70491ffd169..f3c4ede65c5 100644 --- a/ompi/mpi/fortran/use-mpi-f08/recv_init_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/recv_init_f08.F90 @@ -3,7 +3,7 @@ ! Copyright (c) 2009-2012 Cisco Systems, Inc. All rights reserved. ! Copyright (c) 2009-2012 Los Alamos National Security, LLC. ! All rights reserved. -! Copyright (c) 2018 Research Organization for Information Science +! Copyright (c) 2018-2019 Research Organization for Information Science ! and Technology (RIST). All rights reserved. ! Copyright (c) 2018 FUJITSU LIMITED. All rights reserved. ! $COPYRIGHT$ @@ -14,7 +14,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 :: 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/rsend_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/rsend_f08.F90 index 06b08e30fa3..d257f476a87 100644 --- a/ompi/mpi/fortran/use-mpi-f08/rsend_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/rsend_f08.F90 @@ -3,7 +3,7 @@ ! Copyright (c) 2009-2012 Cisco Systems, Inc. All rights reserved. ! Copyright (c) 2009-2012 Los Alamos National Security, LLC. ! All rights reserved. -! Copyright (c) 2018 Research Organization for Information Science +! Copyright (c) 2018-2019 Research Organization for Information Science ! and Technology (RIST). All rights reserved. ! $COPYRIGHT$ @@ -13,7 +13,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 7945d6d7575..9d665645513 100644 --- a/ompi/mpi/fortran/use-mpi-f08/rsend_init_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/rsend_init_f08.F90 @@ -3,7 +3,7 @@ ! Copyright (c) 2009-2012 Cisco Systems, Inc. All rights reserved. ! Copyright (c) 2009-2012 Los Alamos National Security, LLC. ! All rights reserved. -! Copyright (c) 2018 Research Organization for Information Science +! Copyright (c) 2018-2019 Research Organization for Information Science ! and Technology (RIST). All rights reserved. ! $COPYRIGHT$ @@ -13,7 +13,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, 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/scatter_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/scatter_f08.F90 index 09e43c86e95..1fcdde226f9 100644 --- a/ompi/mpi/fortran/use-mpi-f08/scatter_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/scatter_f08.F90 @@ -3,7 +3,7 @@ ! Copyright (c) 2009-2012 Cisco Systems, Inc. All rights reserved. ! Copyright (c) 2009-2012 Los Alamos National Security, LLC. ! All rights reserved. -! Copyright (c) 2018 Research Organization for Information Science +! Copyright (c) 2018-2019 Research Organization for Information Science ! and Technology (RIST). All rights reserved. ! $COPYRIGHT$ @@ -15,7 +15,7 @@ subroutine MPI_Scatter_f08(sendbuf,sendcount,sendtype,recvbuf,& 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 :: 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 44f07c54788..882d8272fc3 100644 --- a/ompi/mpi/fortran/use-mpi-f08/scatterv_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/scatterv_f08.F90 @@ -3,7 +3,7 @@ ! Copyright (c) 2009-2012 Cisco Systems, Inc. All rights reserved. ! Copyright (c) 2009-2012 Los Alamos National Security, LLC. ! All rights reserved. -! Copyright (c) 2018 Research Organization for Information Science +! Copyright (c) 2018-2019 Research Organization for Information Science ! and Technology (RIST). All rights reserved. ! $COPYRIGHT$ @@ -15,7 +15,7 @@ subroutine MPI_Scatterv_f08(sendbuf,sendcounts,displs,sendtype,recvbuf,& 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 :: recvbuf INTEGER, INTENT(IN) :: recvcount, root INTEGER, INTENT(IN) :: sendcounts(*), displs(*) TYPE(MPI_Datatype), INTENT(IN) :: sendtype diff --git a/ompi/mpi/fortran/use-mpi-f08/send_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/send_f08.F90 index ff2903b2c58..d085a737bbf 100644 --- a/ompi/mpi/fortran/use-mpi-f08/send_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/send_f08.F90 @@ -3,7 +3,7 @@ ! Copyright (c) 2009-2012 Cisco Systems, Inc. All rights reserved. ! Copyright (c) 2009-2012 Los Alamos National Security, LLC. ! All rights reserved. -! Copyright (c) 2018 Research Organization for Information Science +! Copyright (c) 2018-2019 Research Organization for Information Science ! and Technology (RIST). All rights reserved. ! $COPYRIGHT$ @@ -13,7 +13,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 84ab38e6043..70e137d0ba6 100644 --- a/ompi/mpi/fortran/use-mpi-f08/send_init_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/send_init_f08.F90 @@ -3,7 +3,7 @@ ! Copyright (c) 2009-2012 Cisco Systems, Inc. All rights reserved. ! Copyright (c) 2009-2012 Los Alamos National Security, LLC. ! All rights reserved. -! Copyright (c) 2018 Research Organization for Information Science +! Copyright (c) 2018-2019 Research Organization for Information Science ! and Technology (RIST). All rights reserved. ! $COPYRIGHT$ @@ -13,7 +13,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, 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/sendrecv_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/sendrecv_f08.F90 index 44bb08570f6..311f4c0933a 100644 --- a/ompi/mpi/fortran/use-mpi-f08/sendrecv_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/sendrecv_f08.F90 @@ -3,7 +3,7 @@ ! Copyright (c) 2009-2012 Cisco Systems, Inc. All rights reserved. ! Copyright (c) 2009-2012 Los Alamos National Security, LLC. ! All rights reserved. -! Copyright (c) 2018 Research Organization for Information Science +! Copyright (c) 2018-2019 Research Organization for Information Science ! and Technology (RIST). All rights reserved. ! Copyright (c) 2018 FUJITSU LIMITED. All rights reserved. ! $COPYRIGHT$ @@ -11,12 +11,12 @@ #include "ompi/mpi/fortran/configure-fortran-output.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 a1d56ef662f..273744b1520 100644 --- a/ompi/mpi/fortran/use-mpi-f08/sendrecv_replace_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/sendrecv_replace_f08.F90 @@ -3,7 +3,7 @@ ! Copyright (c) 2009-2012 Cisco Systems, Inc. All rights reserved. ! Copyright (c) 2009-2012 Los Alamos National Security, LLC. ! All rights reserved. -! Copyright (c) 2018 Research Organization for Information Science +! Copyright (c) 2018-2019 Research Organization for Information Science ! and Technology (RIST). All rights reserved. ! Copyright (c) 2018 FUJITSU LIMITED. All rights reserved. ! $COPYRIGHT$ @@ -15,7 +15,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 5c235e4aece..48b2874b40d 100644 --- a/ompi/mpi/fortran/use-mpi-f08/ssend_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/ssend_f08.F90 @@ -3,7 +3,7 @@ ! Copyright (c) 2009-2012 Cisco Systems, Inc. All rights reserved. ! Copyright (c) 2009-2012 Los Alamos National Security, LLC. ! All rights reserved. -! Copyright (c) 2018 Research Organization for Information Science +! Copyright (c) 2018-2019 Research Organization for Information Science ! and Technology (RIST). All rights reserved. ! $COPYRIGHT$ @@ -13,7 +13,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 b95680ed603..af3dff596fe 100644 --- a/ompi/mpi/fortran/use-mpi-f08/ssend_init_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/ssend_init_f08.F90 @@ -3,7 +3,7 @@ ! Copyright (c) 2009-2012 Cisco Systems, Inc. All rights reserved. ! Copyright (c) 2009-2012 Los Alamos National Security, LLC. ! All rights reserved. -! Copyright (c) 2018 Research Organization for Information Science +! Copyright (c) 2018-2019 Research Organization for Information Science ! and Technology (RIST). All rights reserved. ! $COPYRIGHT$ @@ -13,7 +13,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, 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/unpack_external_f08.F90 b/ompi/mpi/fortran/use-mpi-f08/unpack_external_f08.F90 index 5cbd47c5e2f..a7591abe476 100644 --- a/ompi/mpi/fortran/use-mpi-f08/unpack_external_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/unpack_external_f08.F90 @@ -3,7 +3,7 @@ ! Copyright (c) 2009-2012 Cisco Systems, Inc. All rights reserved. ! Copyright (c) 2009-2012 Los Alamos National Security, LLC. ! All rights reserved. -! Copyright (c) 2018 Research Organization for Information Science +! Copyright (c) 2018-2019 Research Organization for Information Science ! and Technology (RIST). All rights reserved. ! Copyright (c) 2018 FUJITSU LIMITED. All rights reserved. ! $COPYRIGHT$ @@ -16,7 +16,7 @@ subroutine MPI_Unpack_external_f08(datarep,inbuf,insize,position,outbuf,outcount 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 :: 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 929a58ebda5..a207ec005ce 100644 --- a/ompi/mpi/fortran/use-mpi-f08/unpack_f08.F90 +++ b/ompi/mpi/fortran/use-mpi-f08/unpack_f08.F90 @@ -3,7 +3,7 @@ ! Copyright (c) 2009-2012 Cisco Systems, Inc. All rights reserved. ! Copyright (c) 2009-2012 Los Alamos National Security, LLC. ! All rights reserved. -! Copyright (c) 2018 Research Organization for Information Science +! Copyright (c) 2018-2019 Research Organization for Information Science ! and Technology (RIST). All rights reserved. ! Copyright (c) 2018 FUJITSU LIMITED. All rights reserved. ! $COPYRIGHT$ @@ -15,7 +15,7 @@ subroutine MPI_Unpack_f08(inbuf,insize,position,outbuf,outcount,datatype,comm,ie 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 :: outbuf INTEGER, INTENT(IN) :: insize, outcount INTEGER, INTENT(INOUT) :: position TYPE(MPI_Datatype), INTENT(IN) :: datatype