It is now almost impossible to add a new function to the MPI interface
without messing the Fortran part. This commit was SVN r26967.
Этот коммит содержится в:
родитель
f7528bb404
Коммит
083938cc10
@ -3,6 +3,10 @@
|
|||||||
! Copyright (c) 2009-2012 Cisco Systems, Inc. All rights reserved.
|
! Copyright (c) 2009-2012 Cisco Systems, Inc. All rights reserved.
|
||||||
! Copyright (c) 2009-2012 Los Alamos National Security, LLC.
|
! Copyright (c) 2009-2012 Los Alamos National Security, LLC.
|
||||||
! All rights reserved.
|
! All rights reserved.
|
||||||
|
! Copyright (c) 2012 The University of Tennessee and The University
|
||||||
|
! of Tennessee Research Foundation. All rights
|
||||||
|
! reserved.
|
||||||
|
! Copyright (c) 2012 Inria. All rights reserved.
|
||||||
! $COPYRIGHT$
|
! $COPYRIGHT$
|
||||||
!
|
!
|
||||||
! This file provides the interface specifications for the MPI Fortran
|
! This file provides the interface specifications for the MPI Fortran
|
||||||
@ -723,6 +727,20 @@ subroutine MPI_Type_create_indexed_block_f08(count,blocklength, &
|
|||||||
end subroutine MPI_Type_create_indexed_block_f08
|
end subroutine MPI_Type_create_indexed_block_f08
|
||||||
end interface MPI_Type_create_indexed_block
|
end interface MPI_Type_create_indexed_block
|
||||||
|
|
||||||
|
interface MPI_Type_create_hindexed_block
|
||||||
|
subroutine MPI_Type_create_hindexed_block_f08(count,blocklength, &
|
||||||
|
array_of_displacements,oldtype,newtype,ierror &
|
||||||
|
) OMPI_F08_INTERFACE_BIND_C("MPI_Type_create_hindexed_block_f08")
|
||||||
|
use :: mpi_f08_types, only : MPI_Datatype
|
||||||
|
implicit none
|
||||||
|
INTEGER, INTENT(IN) :: count, blocklength
|
||||||
|
INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: array_of_displacements(count)
|
||||||
|
TYPE(MPI_Datatype), INTENT(IN) :: oldtype
|
||||||
|
TYPE(MPI_Datatype), INTENT(OUT) :: newtype
|
||||||
|
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
|
||||||
|
end subroutine MPI_Type_create_hindexed_block_f08
|
||||||
|
end interface MPI_Type_create_hindexed_block
|
||||||
|
|
||||||
interface MPI_Type_create_resized
|
interface MPI_Type_create_resized
|
||||||
subroutine MPI_Type_create_resized_f08(oldtype,lb,extent,newtype,ierror &
|
subroutine MPI_Type_create_resized_f08(oldtype,lb,extent,newtype,ierror &
|
||||||
) OMPI_F08_INTERFACE_BIND_C("MPI_Type_create_resized_f08")
|
) OMPI_F08_INTERFACE_BIND_C("MPI_Type_create_resized_f08")
|
||||||
|
@ -3,6 +3,10 @@
|
|||||||
! Copyright (c) 2009-2012 Cisco Systems, Inc. All rights reserved.
|
! Copyright (c) 2009-2012 Cisco Systems, Inc. All rights reserved.
|
||||||
! Copyright (c) 2009-2012 Los Alamos National Security, LLC.
|
! Copyright (c) 2009-2012 Los Alamos National Security, LLC.
|
||||||
! All rights reserved.
|
! All rights reserved.
|
||||||
|
! Copyright (c) 2012 The University of Tennessee and The University
|
||||||
|
! of Tennessee Research Foundation. All rights
|
||||||
|
! reserved.
|
||||||
|
! Copyright (c) 2012 Inria. All rights reserved.
|
||||||
! $COPYRIGHT$
|
! $COPYRIGHT$
|
||||||
!
|
!
|
||||||
! This file provides the interface specifications for the MPI Fortran
|
! This file provides the interface specifications for the MPI Fortran
|
||||||
@ -723,6 +727,20 @@ subroutine PMPI_Type_create_indexed_block_f08(count,blocklength, &
|
|||||||
end subroutine PMPI_Type_create_indexed_block_f08
|
end subroutine PMPI_Type_create_indexed_block_f08
|
||||||
end interface PMPI_Type_create_indexed_block
|
end interface PMPI_Type_create_indexed_block
|
||||||
|
|
||||||
|
interface PMPI_Type_create_hindexed_block
|
||||||
|
subroutine PMPI_Type_create_hindexed_block_f08(count,blocklength, &
|
||||||
|
array_of_displacements,oldtype,newtype,ierror &
|
||||||
|
) OMPI_F08_INTERFACE_BIND_C("PMPI_Type_create_hindexed_block_f08")
|
||||||
|
use :: mpi_f08_types, only : MPI_Datatype
|
||||||
|
implicit none
|
||||||
|
INTEGER, INTENT(IN) :: count, blocklength
|
||||||
|
INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: array_of_displacements(count)
|
||||||
|
TYPE(MPI_Datatype), INTENT(IN) :: oldtype
|
||||||
|
TYPE(MPI_Datatype), INTENT(OUT) :: newtype
|
||||||
|
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
|
||||||
|
end subroutine PMPI_Type_create_hindexed_block_f08
|
||||||
|
end interface PMPI_Type_create_hindexed_block
|
||||||
|
|
||||||
interface PMPI_Type_create_resized
|
interface PMPI_Type_create_resized
|
||||||
subroutine PMPI_Type_create_resized_f08(oldtype,lb,extent,newtype,ierror &
|
subroutine PMPI_Type_create_resized_f08(oldtype,lb,extent,newtype,ierror &
|
||||||
) OMPI_F08_INTERFACE_BIND_C("PMPI_Type_create_resized_f08")
|
) OMPI_F08_INTERFACE_BIND_C("PMPI_Type_create_resized_f08")
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
# Copyright (c) 2004-2007 The Trustees of Indiana University and Indiana
|
# Copyright (c) 2004-2007 The Trustees of Indiana University and Indiana
|
||||||
# University Research and Technology
|
# University Research and Technology
|
||||||
# Corporation. All rights reserved.
|
# Corporation. All rights reserved.
|
||||||
# Copyright (c) 2004-2005 The University of Tennessee and The University
|
# Copyright (c) 2004-2012 The University of Tennessee and The University
|
||||||
# of Tennessee Research Foundation. All rights
|
# of Tennessee Research Foundation. All rights
|
||||||
# reserved.
|
# reserved.
|
||||||
# Copyright (c) 2004-2009 High Performance Computing Center Stuttgart,
|
# Copyright (c) 2004-2009 High Performance Computing Center Stuttgart,
|
||||||
@ -10,6 +10,7 @@
|
|||||||
# Copyright (c) 2004-2005 The Regents of the University of California.
|
# Copyright (c) 2004-2005 The Regents of the University of California.
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
# Copyright (c) 2006-2012 Cisco Systems, Inc. All rights reserved.
|
# Copyright (c) 2006-2012 Cisco Systems, Inc. All rights reserved.
|
||||||
|
# Copyright (c) 2012 Inria. All rights reserved.
|
||||||
# $COPYRIGHT$
|
# $COPYRIGHT$
|
||||||
#
|
#
|
||||||
# Additional copyrights may follow
|
# Additional copyrights may follow
|
||||||
@ -269,6 +270,7 @@ libmpi_mpifh_la_SOURCES += \
|
|||||||
type_create_hindexed_f.c \
|
type_create_hindexed_f.c \
|
||||||
type_create_hvector_f.c \
|
type_create_hvector_f.c \
|
||||||
type_create_indexed_block_f.c \
|
type_create_indexed_block_f.c \
|
||||||
|
type_create_hindexed_block_f.c \
|
||||||
type_create_keyval_f.c \
|
type_create_keyval_f.c \
|
||||||
type_create_resized_f.c \
|
type_create_resized_f.c \
|
||||||
type_create_struct_f.c \
|
type_create_struct_f.c \
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||||
# University Research and Technology
|
# University Research and Technology
|
||||||
# Corporation. All rights reserved.
|
# Corporation. All rights reserved.
|
||||||
# Copyright (c) 2004-2005 The University of Tennessee and The University
|
# Copyright (c) 2004-2012 The University of Tennessee and The University
|
||||||
# of Tennessee Research Foundation. All rights
|
# of Tennessee Research Foundation. All rights
|
||||||
# reserved.
|
# reserved.
|
||||||
# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||||
@ -11,6 +11,7 @@
|
|||||||
# Copyright (c) 2004-2005 The Regents of the University of California.
|
# Copyright (c) 2004-2005 The Regents of the University of California.
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
# Copyright (c) 2009-2012 Cisco Systems, Inc. All rights reserved.
|
# Copyright (c) 2009-2012 Cisco Systems, Inc. All rights reserved.
|
||||||
|
# Copyright (c) 2012 Inria. All rights reserved.
|
||||||
# $COPYRIGHT$
|
# $COPYRIGHT$
|
||||||
#
|
#
|
||||||
# Additional copyrights may follow
|
# Additional copyrights may follow
|
||||||
@ -238,6 +239,7 @@ nodist_libmpi_mpifh_pmpi_la_SOURCES = \
|
|||||||
ptype_create_hindexed_f.c \
|
ptype_create_hindexed_f.c \
|
||||||
ptype_create_hvector_f.c \
|
ptype_create_hvector_f.c \
|
||||||
ptype_create_indexed_block_f.c \
|
ptype_create_indexed_block_f.c \
|
||||||
|
ptype_create_hindexed_block_f.c \
|
||||||
ptype_create_keyval_f.c \
|
ptype_create_keyval_f.c \
|
||||||
ptype_create_resized_f.c \
|
ptype_create_resized_f.c \
|
||||||
ptype_create_struct_f.c \
|
ptype_create_struct_f.c \
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||||
* University Research and Technology
|
* University Research and Technology
|
||||||
* Corporation. All rights reserved.
|
* Corporation. All rights reserved.
|
||||||
* Copyright (c) 2004-2005 The University of Tennessee and The University
|
* Copyright (c) 2004-2012 The University of Tennessee and The University
|
||||||
* of Tennessee Research Foundation. All rights
|
* of Tennessee Research Foundation. All rights
|
||||||
* reserved.
|
* reserved.
|
||||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||||
@ -10,6 +10,7 @@
|
|||||||
* Copyright (c) 2004-2005 The Regents of the University of California.
|
* Copyright (c) 2004-2005 The Regents of the University of California.
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
* Copyright (c) 2009-2012 Cisco Systems, Inc. All rights reserved.
|
* Copyright (c) 2009-2012 Cisco Systems, Inc. All rights reserved.
|
||||||
|
* Copyright (c) 2012 Inria. All rights reserved.
|
||||||
* $COPYRIGHT$
|
* $COPYRIGHT$
|
||||||
*
|
*
|
||||||
* Additional copyrights may follow
|
* Additional copyrights may follow
|
||||||
@ -275,6 +276,7 @@
|
|||||||
#define ompi_type_create_hvector_f pompi_type_create_hvector_f
|
#define ompi_type_create_hvector_f pompi_type_create_hvector_f
|
||||||
#define ompi_type_create_keyval_f pompi_type_create_keyval_f
|
#define ompi_type_create_keyval_f pompi_type_create_keyval_f
|
||||||
#define ompi_type_create_indexed_block_f pompi_type_create_indexed_block_f
|
#define ompi_type_create_indexed_block_f pompi_type_create_indexed_block_f
|
||||||
|
#define ompi_type_create_hindexed_block_f pompi_type_create_hindexed_block_f
|
||||||
#define ompi_type_create_struct_f pompi_type_create_struct_f
|
#define ompi_type_create_struct_f pompi_type_create_struct_f
|
||||||
#define ompi_type_create_subarray_f pompi_type_create_subarray_f
|
#define ompi_type_create_subarray_f pompi_type_create_subarray_f
|
||||||
#define ompi_type_create_resized_f pompi_type_create_resized_f
|
#define ompi_type_create_resized_f pompi_type_create_resized_f
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||||
* University Research and Technology
|
* University Research and Technology
|
||||||
* Corporation. All rights reserved.
|
* Corporation. All rights reserved.
|
||||||
* Copyright (c) 2004-2005 The University of Tennessee and The University
|
* Copyright (c) 2004-2012 The University of Tennessee and The University
|
||||||
* of Tennessee Research Foundation. All rights
|
* of Tennessee Research Foundation. All rights
|
||||||
* reserved.
|
* reserved.
|
||||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||||
@ -10,6 +10,7 @@
|
|||||||
* Copyright (c) 2004-2005 The Regents of the University of California.
|
* Copyright (c) 2004-2005 The Regents of the University of California.
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
* Copyright (c) 2006-2012 Cisco Systems, Inc. All rights reserved.
|
* Copyright (c) 2006-2012 Cisco Systems, Inc. All rights reserved.
|
||||||
|
* Copyright (c) 2012 Inria. All rights reserved.
|
||||||
* $COPYRIGHT$
|
* $COPYRIGHT$
|
||||||
*
|
*
|
||||||
* Additional copyrights may follow
|
* Additional copyrights may follow
|
||||||
@ -330,6 +331,7 @@ PN2(void, MPI_Type_create_hindexed, mpi_type_create_hindexed, MPI_TYPE_CREATE_HI
|
|||||||
PN2(void, MPI_Type_create_hvector, mpi_type_create_hvector, MPI_TYPE_CREATE_HVECTOR, (MPI_Fint *count, MPI_Fint *blocklength, MPI_Aint *stride, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr));
|
PN2(void, MPI_Type_create_hvector, mpi_type_create_hvector, MPI_TYPE_CREATE_HVECTOR, (MPI_Fint *count, MPI_Fint *blocklength, MPI_Aint *stride, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr));
|
||||||
PN2(void, MPI_Type_create_keyval, mpi_type_create_keyval, MPI_TYPE_CREATE_KEYVAL, (ompi_mpi2_fortran_copy_attr_function* type_copy_attr_fn, ompi_mpi2_fortran_delete_attr_function* type_delete_attr_fn, MPI_Fint *type_keyval, MPI_Aint *extra_state, MPI_Fint *ierr));
|
PN2(void, MPI_Type_create_keyval, mpi_type_create_keyval, MPI_TYPE_CREATE_KEYVAL, (ompi_mpi2_fortran_copy_attr_function* type_copy_attr_fn, ompi_mpi2_fortran_delete_attr_function* type_delete_attr_fn, MPI_Fint *type_keyval, MPI_Aint *extra_state, MPI_Fint *ierr));
|
||||||
PN2(void, MPI_Type_create_indexed_block, mpi_type_create_indexed_block, MPI_TYPE_CREATE_INDEXED_BLOCK, (MPI_Fint *count, MPI_Fint *blocklength, MPI_Fint *array_of_displacements, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr));
|
PN2(void, MPI_Type_create_indexed_block, mpi_type_create_indexed_block, MPI_TYPE_CREATE_INDEXED_BLOCK, (MPI_Fint *count, MPI_Fint *blocklength, MPI_Fint *array_of_displacements, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr));
|
||||||
|
PN2(void, MPI_Type_create_hindexed_block, mpi_type_create_hindexed_block, MPI_TYPE_CREATE_HINDEXED_BLOCK, (MPI_Fint *count, MPI_Fint *blocklength, MPI_Aint *array_of_displacements, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr));
|
||||||
PN2(void, MPI_Type_create_struct, mpi_type_create_struct, MPI_TYPE_CREATE_STRUCT, (MPI_Fint *count, MPI_Fint *array_of_block_lengths, MPI_Aint *array_of_displacements, MPI_Fint *array_of_types, MPI_Fint *newtype, MPI_Fint *ierr));
|
PN2(void, MPI_Type_create_struct, mpi_type_create_struct, MPI_TYPE_CREATE_STRUCT, (MPI_Fint *count, MPI_Fint *array_of_block_lengths, MPI_Aint *array_of_displacements, MPI_Fint *array_of_types, MPI_Fint *newtype, MPI_Fint *ierr));
|
||||||
PN2(void, MPI_Type_create_subarray, mpi_type_create_subarray, MPI_TYPE_CREATE_SUBARRAY, (MPI_Fint *ndims, MPI_Fint *size_array, MPI_Fint *subsize_array, MPI_Fint *start_array, MPI_Fint *order, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr));
|
PN2(void, MPI_Type_create_subarray, mpi_type_create_subarray, MPI_TYPE_CREATE_SUBARRAY, (MPI_Fint *ndims, MPI_Fint *size_array, MPI_Fint *subsize_array, MPI_Fint *start_array, MPI_Fint *order, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr));
|
||||||
PN2(void, MPI_Type_create_resized, mpi_type_create_resized, MPI_TYPE_CREATE_RESIZED, (MPI_Fint *oldtype, MPI_Aint *lb, MPI_Aint *extent, MPI_Fint *newtype, MPI_Fint *ierr));
|
PN2(void, MPI_Type_create_resized, mpi_type_create_resized, MPI_TYPE_CREATE_RESIZED, (MPI_Fint *oldtype, MPI_Aint *lb, MPI_Aint *extent, MPI_Fint *newtype, MPI_Fint *ierr));
|
||||||
|
79
ompi/mpi/fortran/mpif-h/type_create_hindexed_block_f.c
Обычный файл
79
ompi/mpi/fortran/mpif-h/type_create_hindexed_block_f.c
Обычный файл
@ -0,0 +1,79 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2012 The University of Tennessee and The University
|
||||||
|
* of Tennessee Research Foundation. All rights
|
||||||
|
* reserved.
|
||||||
|
* Copyright (c) 2012 Inria. All rights reserved.
|
||||||
|
* $COPYRIGHT$
|
||||||
|
*
|
||||||
|
* Additional copyrights may follow
|
||||||
|
*
|
||||||
|
* $HEADER$
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "ompi_config.h"
|
||||||
|
|
||||||
|
#include "ompi/mpi/fortran/mpif-h/bindings.h"
|
||||||
|
|
||||||
|
#if OPAL_HAVE_WEAK_SYMBOLS && OMPI_PROFILE_LAYER
|
||||||
|
#pragma weak PMPI_TYPE_CREATE_HINDEXED_BLOCK = ompi_type_create_hindexed_block_f
|
||||||
|
#pragma weak pmpi_type_create_hindexed_block = ompi_type_create_hindexed_block_f
|
||||||
|
#pragma weak pmpi_type_create_hindexed_block_ = ompi_type_create_hindexed_block_f
|
||||||
|
#pragma weak pmpi_type_create_hindexed_block__ = ompi_type_create_hindexed_block_f
|
||||||
|
|
||||||
|
#pragma weak PMPI_Type_create_hindexed_block_f = ompi_type_create_hindexed_block_f
|
||||||
|
#pragma weak PMPI_Type_create_hindexed_block_f08 = ompi_type_create_hindexed_block_f
|
||||||
|
#elif OMPI_PROFILE_LAYER
|
||||||
|
OMPI_GENERATE_F77_BINDINGS (PMPI_TYPE_CREATE_HINDEXED_BLOCK,
|
||||||
|
pmpi_type_create_hindexed_block,
|
||||||
|
pmpi_type_create_hindexed_block_,
|
||||||
|
pmpi_type_create_hindexed_block__,
|
||||||
|
pompi_type_create_hindexed_block_f,
|
||||||
|
(MPI_Fint *count, MPI_Fint *blocklength, MPI_Aint *array_of_displacements, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr),
|
||||||
|
(count, blocklength, array_of_displacements, oldtype, newtype, ierr) )
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if OPAL_HAVE_WEAK_SYMBOLS
|
||||||
|
#pragma weak MPI_TYPE_CREATE_HINDEXED_BLOCK = ompi_type_create_hindexed_block_f
|
||||||
|
#pragma weak mpi_type_create_hindexed_block = ompi_type_create_hindexed_block_f
|
||||||
|
#pragma weak mpi_type_create_hindexed_block_ = ompi_type_create_hindexed_block_f
|
||||||
|
#pragma weak mpi_type_create_hindexed_block__ = ompi_type_create_hindexed_block_f
|
||||||
|
|
||||||
|
#pragma weak MPI_Type_create_hindexed_block_f = ompi_type_create_hindexed_block_f
|
||||||
|
#pragma weak MPI_Type_create_hindexed_block_f08 = ompi_type_create_hindexed_block_f
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if ! OPAL_HAVE_WEAK_SYMBOLS && ! OMPI_PROFILE_LAYER
|
||||||
|
OMPI_GENERATE_F77_BINDINGS (MPI_TYPE_CREATE_HINDEXED_BLOCK,
|
||||||
|
mpi_type_create_hindexed_block,
|
||||||
|
mpi_type_create_hindexed_block_,
|
||||||
|
mpi_type_create_hindexed_block__,
|
||||||
|
ompi_type_create_hindexed_block_f,
|
||||||
|
(MPI_Fint *count, MPI_Fint *blocklength, MPI_Aint *array_of_displacements, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr),
|
||||||
|
(count, blocklength, array_of_displacements, oldtype, newtype, ierr) )
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#if OMPI_PROFILE_LAYER && ! OPAL_HAVE_WEAK_SYMBOLS
|
||||||
|
#include "ompi/mpi/fortran/mpif-h/profile/defines.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
void ompi_type_create_hindexed_block_f(MPI_Fint *count, MPI_Fint *blocklength,
|
||||||
|
MPI_Aint *array_of_displacements,
|
||||||
|
MPI_Fint *oldtype, MPI_Fint *newtype,
|
||||||
|
MPI_Fint *ierr)
|
||||||
|
{
|
||||||
|
int c_ierr;
|
||||||
|
MPI_Datatype c_old = MPI_Type_f2c(*oldtype);
|
||||||
|
MPI_Datatype c_new;
|
||||||
|
|
||||||
|
c_ierr = MPI_Type_create_hindexed_block(OMPI_FINT_2_INT(*count),
|
||||||
|
OMPI_FINT_2_INT(*blocklength),
|
||||||
|
array_of_displacements,
|
||||||
|
c_old, &c_new);
|
||||||
|
if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr);
|
||||||
|
|
||||||
|
if (MPI_SUCCESS == c_ierr) {
|
||||||
|
*newtype = MPI_Type_c2f(c_new);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -1,6 +1,10 @@
|
|||||||
# -*- makefile -*-
|
# -*- makefile -*-
|
||||||
#
|
#
|
||||||
# Copyright (c) 2006-2012 Cisco Systems, Inc. All rights reserved.
|
# Copyright (c) 2006-2012 Cisco Systems, Inc. All rights reserved.
|
||||||
|
# Copyright (c) 2012 The University of Tennessee and The University
|
||||||
|
# of Tennessee Research Foundation. All rights
|
||||||
|
# reserved.
|
||||||
|
# Copyright (c) 2012 Inria. All rights reserved.
|
||||||
#
|
#
|
||||||
# $COPYRIGHT$
|
# $COPYRIGHT$
|
||||||
#
|
#
|
||||||
@ -217,6 +221,7 @@ mpi_api_files = \
|
|||||||
type_create_hindexed_f08.F90 \
|
type_create_hindexed_f08.F90 \
|
||||||
type_create_hvector_f08.F90 \
|
type_create_hvector_f08.F90 \
|
||||||
type_create_indexed_block_f08.F90 \
|
type_create_indexed_block_f08.F90 \
|
||||||
|
type_create_hindexed_block_f08.F90 \
|
||||||
type_create_keyval_f08.F90 \
|
type_create_keyval_f08.F90 \
|
||||||
type_create_resized_f08.F90 \
|
type_create_resized_f08.F90 \
|
||||||
type_create_struct_f08.F90 \
|
type_create_struct_f08.F90 \
|
||||||
@ -526,6 +531,7 @@ pmpi_api_files = \
|
|||||||
profile/ptype_create_hindexed_f08.F90 \
|
profile/ptype_create_hindexed_f08.F90 \
|
||||||
profile/ptype_create_hvector_f08.F90 \
|
profile/ptype_create_hvector_f08.F90 \
|
||||||
profile/ptype_create_indexed_block_f08.F90 \
|
profile/ptype_create_indexed_block_f08.F90 \
|
||||||
|
profile/ptype_create_hindexed_block_f08.F90 \
|
||||||
profile/ptype_create_keyval_f08.F90 \
|
profile/ptype_create_keyval_f08.F90 \
|
||||||
profile/ptype_create_resized_f08.F90 \
|
profile/ptype_create_resized_f08.F90 \
|
||||||
profile/ptype_create_struct_f08.F90 \
|
profile/ptype_create_struct_f08.F90 \
|
||||||
|
@ -3,6 +3,10 @@
|
|||||||
! Copyright (c) 2009-2012 Cisco Systems, Inc. All rights reserved.
|
! Copyright (c) 2009-2012 Cisco Systems, Inc. All rights reserved.
|
||||||
! Copyright (c) 2009-2012 Los Alamos National Security, LLC.
|
! Copyright (c) 2009-2012 Los Alamos National Security, LLC.
|
||||||
! All rights reserved.
|
! All rights reserved.
|
||||||
|
! Copyright (c) 2012 The University of Tennessee and The University
|
||||||
|
! of Tennessee Research Foundation. All rights
|
||||||
|
! reserved.
|
||||||
|
! Copyright (c) 2012 Inria. All rights reserved.
|
||||||
! $COPYRIGHT$
|
! $COPYRIGHT$
|
||||||
!
|
!
|
||||||
! This file provides the interface specifications for the MPI Fortran
|
! This file provides the interface specifications for the MPI Fortran
|
||||||
@ -521,6 +525,17 @@ subroutine ompi_type_create_indexed_block_f(count,blocklength, &
|
|||||||
INTEGER, INTENT(OUT) :: ierror
|
INTEGER, INTENT(OUT) :: ierror
|
||||||
end subroutine ompi_type_create_indexed_block_f
|
end subroutine ompi_type_create_indexed_block_f
|
||||||
|
|
||||||
|
subroutine ompi_type_create_hindexed_block_f(count,blocklength, &
|
||||||
|
array_of_displacements,oldtype,newtype,ierror) &
|
||||||
|
BIND(C, name="ompi_type_create_hindexed_block_f")
|
||||||
|
implicit none
|
||||||
|
INTEGER, INTENT(IN) :: count, blocklength
|
||||||
|
INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: array_of_displacements(count)
|
||||||
|
INTEGER, INTENT(IN) :: oldtype
|
||||||
|
INTEGER, INTENT(OUT) :: newtype
|
||||||
|
INTEGER, INTENT(OUT) :: ierror
|
||||||
|
end subroutine ompi_type_create_hindexed_block_f
|
||||||
|
|
||||||
subroutine ompi_type_create_resized_f(oldtype,lb,extent,newtype,ierror) &
|
subroutine ompi_type_create_resized_f(oldtype,lb,extent,newtype,ierror) &
|
||||||
BIND(C, name="ompi_type_create_resized_f")
|
BIND(C, name="ompi_type_create_resized_f")
|
||||||
use :: mpi_f08_types, only : MPI_ADDRESS_KIND
|
use :: mpi_f08_types, only : MPI_ADDRESS_KIND
|
||||||
|
@ -3,6 +3,10 @@
|
|||||||
! Copyright (c) 2009-2012 Cisco Systems, Inc. All rights reserved.
|
! Copyright (c) 2009-2012 Cisco Systems, Inc. All rights reserved.
|
||||||
! Copyright (c) 2009-2012 Los Alamos National Security, LLC.
|
! Copyright (c) 2009-2012 Los Alamos National Security, LLC.
|
||||||
! All rights reserved.
|
! All rights reserved.
|
||||||
|
! Copyright (c) 2012 The University of Tennessee and The University
|
||||||
|
! of Tennessee Research Foundation. All rights
|
||||||
|
! reserved.
|
||||||
|
! Copyright (c) 2012 Inria. All rights reserved.
|
||||||
! $COPYRIGHT$
|
! $COPYRIGHT$
|
||||||
!
|
!
|
||||||
! This file provides the interface specifications for the MPI Fortran
|
! This file provides the interface specifications for the MPI Fortran
|
||||||
@ -521,6 +525,17 @@ subroutine pompi_type_create_indexed_block_f(count,blocklength, &
|
|||||||
INTEGER, INTENT(OUT) :: ierror
|
INTEGER, INTENT(OUT) :: ierror
|
||||||
end subroutine pompi_type_create_indexed_block_f
|
end subroutine pompi_type_create_indexed_block_f
|
||||||
|
|
||||||
|
subroutine pompi_type_create_hindexed_block_f(count,blocklength, &
|
||||||
|
array_of_displacements,oldtype,newtype,ierror) &
|
||||||
|
BIND(C, name="pompi_type_create_hindexed_block_f")
|
||||||
|
implicit none
|
||||||
|
INTEGER, INTENT(IN) :: count, blocklength
|
||||||
|
INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: array_of_displacements(count)
|
||||||
|
INTEGER, INTENT(IN) :: oldtype
|
||||||
|
INTEGER, INTENT(OUT) :: newtype
|
||||||
|
INTEGER, INTENT(OUT) :: ierror
|
||||||
|
end subroutine pompi_type_create_hindexed_block_f
|
||||||
|
|
||||||
subroutine pompi_type_create_resized_f(oldtype,lb,extent,newtype,ierror) &
|
subroutine pompi_type_create_resized_f(oldtype,lb,extent,newtype,ierror) &
|
||||||
BIND(C, name="pompi_type_create_resized_f")
|
BIND(C, name="pompi_type_create_resized_f")
|
||||||
use :: mpi_f08_types, only : MPI_ADDRESS_KIND
|
use :: mpi_f08_types, only : MPI_ADDRESS_KIND
|
||||||
|
@ -0,0 +1,25 @@
|
|||||||
|
! -*- f90 -*-
|
||||||
|
!
|
||||||
|
! Copyright (c) 2012 The University of Tennessee and The University
|
||||||
|
! of Tennessee Research Foundation. All rights
|
||||||
|
! reserved.
|
||||||
|
! Copyright (c) 2012 Inria. All rights reserved.
|
||||||
|
! $COPYRIGHT$
|
||||||
|
|
||||||
|
subroutine PMPI_Type_create_hindexed_block_f08(count,blocklength, &
|
||||||
|
array_of_displacements,oldtype,newtype,ierror)
|
||||||
|
use :: mpi_f08_types, only : MPI_Datatype
|
||||||
|
use :: mpi_f08, only : ompi_type_create_hindexed_block_f
|
||||||
|
implicit none
|
||||||
|
INTEGER, INTENT(IN) :: count, blocklength
|
||||||
|
INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: array_of_displacements(count)
|
||||||
|
TYPE(MPI_Datatype), INTENT(IN) :: oldtype
|
||||||
|
TYPE(MPI_Datatype), INTENT(OUT) :: newtype
|
||||||
|
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
|
||||||
|
integer :: c_ierror
|
||||||
|
|
||||||
|
call ompi_type_create_hindexed_block_f(count,blocklength,array_of_displacements, &
|
||||||
|
oldtype%MPI_VAL,newtype%MPI_VAL,c_ierror)
|
||||||
|
if (present(ierror)) ierror = c_ierror
|
||||||
|
|
||||||
|
end subroutine PMPI_Type_create_hindexed_block_f08
|
25
ompi/mpi/fortran/use-mpi-f08/type_create_hindexed_block_f08.F90
Обычный файл
25
ompi/mpi/fortran/use-mpi-f08/type_create_hindexed_block_f08.F90
Обычный файл
@ -0,0 +1,25 @@
|
|||||||
|
! -*- f90 -*-
|
||||||
|
!
|
||||||
|
! Copyright (c) 2012 The University of Tennessee and The University
|
||||||
|
! of Tennessee Research Foundation. All rights
|
||||||
|
! reserved.
|
||||||
|
! Copyright (c) 2012 Inria. All rights reserved.
|
||||||
|
! $COPYRIGHT$
|
||||||
|
|
||||||
|
subroutine MPI_Type_create_hindexed_block_f08(count,blocklength, &
|
||||||
|
array_of_displacements,oldtype,newtype,ierror)
|
||||||
|
use :: mpi_f08_types, only : MPI_Datatype
|
||||||
|
use :: mpi_f08, only : ompi_type_create_hindexed_block_f
|
||||||
|
implicit none
|
||||||
|
INTEGER, INTENT(IN) :: count, blocklength
|
||||||
|
INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: array_of_displacements(count)
|
||||||
|
TYPE(MPI_Datatype), INTENT(IN) :: oldtype
|
||||||
|
TYPE(MPI_Datatype), INTENT(OUT) :: newtype
|
||||||
|
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
|
||||||
|
integer :: c_ierror
|
||||||
|
|
||||||
|
call ompi_type_create_hindexed_block_f(count,blocklength,array_of_displacements, &
|
||||||
|
oldtype%MPI_VAL,newtype%MPI_VAL,c_ierror)
|
||||||
|
if (present(ierror)) ierror = c_ierror
|
||||||
|
|
||||||
|
end subroutine MPI_Type_create_hindexed_block_f08
|
@ -3,6 +3,10 @@
|
|||||||
! Copyright (c) 2006-2012 Cisco Systems, Inc. All rights reserved.
|
! Copyright (c) 2006-2012 Cisco Systems, Inc. All rights reserved.
|
||||||
! Copyright (c) 2007 Los Alamos National Security, LLC. All rights
|
! Copyright (c) 2007 Los Alamos National Security, LLC. All rights
|
||||||
! reserved.
|
! reserved.
|
||||||
|
! Copyright (c) 2012 The University of Tennessee and The University
|
||||||
|
! of Tennessee Research Foundation. All rights
|
||||||
|
! reserved.
|
||||||
|
! Copyright (c) 2012 Inria. All rights reserved.
|
||||||
! $COPYRIGHT$
|
! $COPYRIGHT$
|
||||||
!
|
!
|
||||||
! Additional copyrights may follow
|
! Additional copyrights may follow
|
||||||
@ -3222,6 +3226,21 @@ end subroutine MPI_Type_create_indexed_block
|
|||||||
end interface
|
end interface
|
||||||
|
|
||||||
|
|
||||||
|
interface MPI_Type_create_hindexed_block
|
||||||
|
|
||||||
|
subroutine MPI_Type_create_hindexed_block(count, blocklength, array_of_displacements, oldtype, newtype&
|
||||||
|
, ierr)
|
||||||
|
integer, intent(in) :: count
|
||||||
|
integer, intent(in) :: blocklength
|
||||||
|
integer(kind=MPI_ADDRESS_KIND), dimension(*), intent(in) :: array_of_displacements
|
||||||
|
integer, intent(in) :: oldtype
|
||||||
|
integer, intent(out) :: newtype
|
||||||
|
integer, intent(out) :: ierr
|
||||||
|
end subroutine MPI_Type_create_hindexed_block
|
||||||
|
|
||||||
|
end interface
|
||||||
|
|
||||||
|
|
||||||
interface MPI_Type_create_keyval
|
interface MPI_Type_create_keyval
|
||||||
|
|
||||||
subroutine MPI_Type_create_keyval(type_copy_attr_fn, type_delete_attr_fn, type_keyval, extra_state, ierr)
|
subroutine MPI_Type_create_keyval(type_copy_attr_fn, type_delete_attr_fn, type_keyval, extra_state, ierr)
|
||||||
|
@ -3,10 +3,14 @@
|
|||||||
# Copyright (c) 2004-2006 The Trustees of Indiana University and Indiana
|
# Copyright (c) 2004-2006 The Trustees of Indiana University and Indiana
|
||||||
# University Research and Technology
|
# University Research and Technology
|
||||||
# Corporation. All rights reserved.
|
# Corporation. All rights reserved.
|
||||||
|
# Copyright (c) 2012 The University of Tennessee and The University
|
||||||
|
# of Tennessee Research Foundation. All rights
|
||||||
|
# reserved.
|
||||||
# Copyright (c) 2004-2006 The Regents of the University of California.
|
# Copyright (c) 2004-2006 The Regents of the University of California.
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
# Copyright (c) 2006-2012 Cisco Systems, Inc. All rights reserved.
|
# Copyright (c) 2006-2012 Cisco Systems, Inc. All rights reserved.
|
||||||
# Copyright (c) 2012 FUJITSU LIMITED. All rights reserved.
|
# Copyright (c) 2012 FUJITSU LIMITED. All rights reserved.
|
||||||
|
# Copyright (c) 2012 Inria. All rights reserved.
|
||||||
# $COPYRIGHT$
|
# $COPYRIGHT$
|
||||||
#
|
#
|
||||||
# Additional copyrights may follow
|
# Additional copyrights may follow
|
||||||
@ -10797,3 +10801,32 @@ start MPI_Comm_split_type small
|
|||||||
output_290 MPI_Comm_split_type
|
output_290 MPI_Comm_split_type
|
||||||
end MPI_Comm_split_type
|
end MPI_Comm_split_type
|
||||||
|
|
||||||
|
#------------------------------------------------------------------------
|
||||||
|
|
||||||
|
output_291() {
|
||||||
|
if test "$output" = "0"; then
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
procedure=$1
|
||||||
|
cat <<EOF
|
||||||
|
|
||||||
|
subroutine ${procedure}(count, blocklength, array_of_displacements, oldtype, newtype&
|
||||||
|
, ierr)
|
||||||
|
include 'mpif-config.h'
|
||||||
|
integer, intent(in) :: count
|
||||||
|
integer, intent(in) :: blocklength
|
||||||
|
integer(kind=MPI_ADDRESS_KIND), dimension(*), intent(in) :: array_of_displacements
|
||||||
|
integer, intent(in) :: oldtype
|
||||||
|
integer, intent(out) :: newtype
|
||||||
|
integer, intent(out) :: ierr
|
||||||
|
end subroutine ${procedure}
|
||||||
|
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
|
||||||
|
start MPI_Type_create_hindexed_block small
|
||||||
|
output_291 MPI_Type_create_hindexed_block
|
||||||
|
end MPI_Type_create_hindexed_block
|
||||||
|
|
||||||
|
|
||||||
|
Загрузка…
Ссылка в новой задаче
Block a user