Skip to content

Commit c4a310d

Browse files
committed
Add support for MPI-3.1 MPI_Aint functions
This commit adds support for MPI_Aint_add and MPI_Aint_diff. These functions are implemented as macros in C (explicitly allowed by MPI-3.1). The fortran implementations are a similar mess to the MPI_Wtime implementations. Signed-off-by: Nathan Hjelm <[email protected]>
1 parent 6772d32 commit c4a310d

25 files changed

+564
-7
lines changed

ompi/include/mpi.h.in

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1174,6 +1174,11 @@ OMPI_DECLSPEC extern MPI_Fint *MPI_F_STATUSES_IGNORE;
11741174
#define MPI_TYPECLASS_REAL 2
11751175
#define MPI_TYPECLASS_COMPLEX 3
11761176

1177+
/* Aint helper macros (MPI-3.1) */
1178+
#define MPI_Aint_add(base, disp) ((MPI_Aint) ((char *) (base) + (disp)))
1179+
#define MPI_Aint_diff(addr1, addr2) ((MPI_Aint) ((char *) (addr1) - (char *) (addr2)))
1180+
#define PMPI_Aint_add(base, disp) MPI_Aint_add(base, disp)
1181+
#define PMPI_Aint_diff(addr1, addr2) PMPI_Aint_diff(addr1, addr2)
11771182

11781183
/*
11791184
* MPI API

ompi/mpi/fortran/base/f90_accessors.c

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */
12
/*
23
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
34
* University Research and Technology
@@ -10,6 +11,8 @@
1011
* Copyright (c) 2004-2005 The Regents of the University of California.
1112
* All rights reserved.
1213
* Copyright (c) 2006-2012 Cisco Systems, Inc. All rights reserved.
14+
* Copyright (c) 2015 Los Alamos National Security, LLC. All rights
15+
* reserved.
1316
* $COPYRIGHT$
1417
*
1518
* Additional copyrights may follow
@@ -44,6 +47,16 @@ OMPI_DECLSPEC void mpi_wtick_f90(double *w);
4447
OMPI_DECLSPEC void mpi_wtick_f90_(double *w);
4548
OMPI_DECLSPEC void mpi_wtick_f90__(double *w);
4649

50+
OMPI_DECLSPEC void MPI_AINT_ADD_F90(MPI_Aint *base, MPI_Aint *diff, MPI_Aint *w);
51+
OMPI_DECLSPEC void mpi_aint_add_f90(MPI_Aint *base, MPI_Aint *diff, MPI_Aint *w);
52+
OMPI_DECLSPEC void mpi_aint_add_f90_(MPI_Aint *base, MPI_Aint *diff, MPI_Aint *w);
53+
OMPI_DECLSPEC void mpi_aint_add_f90__(MPI_Aint *base, MPI_Aint *diff, MPI_Aint *w);
54+
55+
OMPI_DECLSPEC void MPI_AINT_DIFF_F90(MPI_Aint *addr1, MPI_Aint *addr2, MPI_Aint *w);
56+
OMPI_DECLSPEC void mpi_aint_diff_f90(MPI_Aint *addr1, MPI_Aint *addr2, MPI_Aint *w);
57+
OMPI_DECLSPEC void mpi_aint_diff_f90_(MPI_Aint *addr1, MPI_Aint *addr2, MPI_Aint *w);
58+
OMPI_DECLSPEC void mpi_aint_diff_f90__(MPI_Aint *addr1, MPI_Aint *addr2, MPI_Aint *w);
59+
4760
/**********************************************************************/
4861

4962
void MPI_WTIME_F90(double *w)
@@ -88,3 +101,47 @@ void mpi_wtick_f90__(double *w)
88101
*w = MPI_Wtick();
89102
}
90103

104+
/**********************************************************************/
105+
106+
void MPI_AINT_ADD_F90(MPI_Aint *base, MPI_Aint *diff, MPI_Aint *w)
107+
{
108+
*w = MPI_Aint_add (*base, *diff);
109+
}
110+
111+
void mpi_aint_add_f90(MPI_Aint *base, MPI_Aint *diff, MPI_Aint *w)
112+
{
113+
*w = MPI_Aint_add (*base, *diff);
114+
}
115+
116+
void mpi_aint_add_f90_(MPI_Aint *base, MPI_Aint *diff, MPI_Aint *w)
117+
{
118+
*w = MPI_Aint_add (*base, *diff);
119+
}
120+
121+
void mpi_aint_add_f90__(MPI_Aint *base, MPI_Aint *diff, MPI_Aint *w)
122+
{
123+
*w = MPI_Aint_add (*base, *diff);
124+
}
125+
126+
127+
/**********************************************************************/
128+
129+
void MPI_AINT_DIFF_F90(MPI_Aint *addr1, MPI_Aint *addr2, MPI_Aint *w)
130+
{
131+
*w = MPI_Aint_diff (*addr1, *addr2);
132+
}
133+
134+
void mpi_aint_diff_f90(MPI_Aint *addr1, MPI_Aint *addr2, MPI_Aint *w)
135+
{
136+
*w = MPI_Aint_diff (*addr1, *addr2);
137+
}
138+
139+
void mpi_aint_diff_f90_(MPI_Aint *addr1, MPI_Aint *addr2, MPI_Aint *w)
140+
{
141+
*w = MPI_Aint_diff (*addr1, *addr2);
142+
}
143+
144+
void mpi_aint_diff_f90__(MPI_Aint *addr1, MPI_Aint *addr2, MPI_Aint *w)
145+
{
146+
*w = MPI_Aint_diff (*addr1, *addr2);
147+
}

ompi/mpi/fortran/mpif-h/Makefile.am

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,8 @@ libmpi_mpifh_la_SOURCES += \
130130
add_error_code_f.c \
131131
add_error_string_f.c \
132132
address_f.c \
133+
aint_add_f.c \
134+
aint_diff_f.c \
133135
allgather_f.c \
134136
allgatherv_f.c \
135137
alloc_mem_f.c \

ompi/mpi/fortran/mpif-h/aint_add_f.c

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */
2+
/*
3+
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
4+
* University Research and Technology
5+
* Corporation. All rights reserved.
6+
* Copyright (c) 2004-2005 The University of Tennessee and The University
7+
* of Tennessee Research Foundation. All rights
8+
* reserved.
9+
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
10+
* University of Stuttgart. All rights reserved.
11+
* Copyright (c) 2004-2005 The Regents of the University of California.
12+
* All rights reserved.
13+
* Copyright (c) 2011-2012 Cisco Systems, Inc. All rights reserved.
14+
* Copyright (c) 2015 Los Alamos National Security, LLC. All rights
15+
* reserved.
16+
* $COPYRIGHT$
17+
*
18+
* Additional copyrights may follow
19+
*
20+
* $HEADER$
21+
*/
22+
23+
#include "ompi_config.h"
24+
25+
#include "ompi/mpi/fortran/mpif-h/bindings.h"
26+
27+
/* The OMPI_GENERATE_F77_BINDINGS work only for the most common F77 bindings, the
28+
* one that does not return any value. There are 4 exceptions MPI_Wtick, MPI_Wtime,
29+
* MPI_Aint_add, and MPI_Aint_diff. For these 4 we can insert the bindings
30+
* manually.
31+
*/
32+
#if OPAL_HAVE_WEAK_SYMBOLS && OMPI_PROFILE_LAYER
33+
#pragma weak PMPI_AINT_ADD = ompi_aint_add_f
34+
#pragma weak pmpi_aint_add = ompi_aint_add_f
35+
#pragma weak pmpi_aint_add_ = ompi_aint_add_f
36+
#pragma weak pmpi_aint_add__ = ompi_aint_add_f
37+
38+
#pragma weak PMPI_Aint_add_f = ompi_aint_add_f
39+
#pragma weak PMPI_Aint_add_f08 = ompi_aint_add_f
40+
#elif OMPI_PROFILE_LAYER
41+
MPI_Aint PMPI_AINT_ADD(MPI_Aint *base, MPI_Aint *diff) { return pompi_aint_add_f(base, diff); }
42+
MPI_Aint pmpi_aint_add(MPI_Aint *base, MPI_Aint *diff) { return pompi_aint_add_f(base, diff); }
43+
MPI_Aint pmpi_aint_add_(MPI_Aint *base, MPI_Aint *diff) { return pompi_aint_add_f(base, diff); }
44+
MPI_Aint pmpi_aint_add__(MPI_Aint *base, MPI_Aint *diff) { return pompi_aint_add_f(base, diff); }
45+
#endif
46+
47+
#if OPAL_HAVE_WEAK_SYMBOLS
48+
#pragma weak MPI_AINT_ADD = ompi_aint_add_f
49+
#pragma weak mpi_aint_add = ompi_aint_add_f
50+
#pragma weak mpi_aint_add_ = ompi_aint_add_f
51+
#pragma weak mpi_aint_add__ = ompi_aint_add_f
52+
53+
#pragma weak MPI_Aint_add_f = ompi_aint_add_f
54+
#pragma weak MPI_Aint_add_f08 = ompi_aint_add_f
55+
#endif
56+
57+
#if ! OPAL_HAVE_WEAK_SYMBOLS && ! OMPI_PROFILE_LAYER
58+
MPI_Aint MPI_AINT_ADD(MPI_Aint *base, MPI_Aint *diff) { return ompi_aint_add_f(base, diff); }
59+
MPI_Aint mpi_aint_add(MPI_Aint *base, MPI_Aint *diff) { return ompi_aint_add_f(base, diff); }
60+
MPI_Aint mpi_aint_add_(MPI_Aint *base, MPI_Aint *diff) { return ompi_aint_add_f(base, diff); }
61+
MPI_Aint mpi_aint_add__(MPI_Aint *base, MPI_Aint *diff) { return ompi_aint_add_f(base, diff); }
62+
#endif
63+
64+
65+
#if OMPI_PROFILE_LAYER && ! OPAL_HAVE_WEAK_SYMBOLS
66+
#include "ompi/mpi/fortran/mpif-h/profile/defines.h"
67+
#endif
68+
69+
MPI_Aint ompi_aint_add_f(MPI_Aint *base, MPI_Aint *diff)
70+
{
71+
return MPI_Aint_add (*base, *diff);
72+
}

ompi/mpi/fortran/mpif-h/aint_diff_f.c

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */
2+
/*
3+
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
4+
* University Research and Technology
5+
* Corporation. All rights reserved.
6+
* Copyright (c) 2004-2005 The University of Tennessee and The University
7+
* of Tennessee Research Foundation. All rights
8+
* reserved.
9+
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
10+
* University of Stuttgart. All rights reserved.
11+
* Copyright (c) 2004-2005 The Regents of the University of California.
12+
* All rights reserved.
13+
* Copyright (c) 2011-2012 Cisco Systems, Inc. All rights reserved.
14+
* Copyright (c) 2015 Los Alamos National Security, LLC. All rights
15+
* reserved.
16+
* $COPYRIGHT$
17+
*
18+
* Additional copyrights may follow
19+
*
20+
* $HEADER$
21+
*/
22+
23+
#include "ompi_config.h"
24+
25+
#include "ompi/mpi/fortran/mpif-h/bindings.h"
26+
27+
/* The OMPI_GENERATE_F77_BINDINGS work only for the most common F77 bindings, the
28+
* one that does not return any value. There are 4 exceptions MPI_Wtick, MPI_Wtime,
29+
* MPI_Aint_add, and MPI_Aint_diff. For these 4 we can insert the bindings
30+
* manually.
31+
*/
32+
#if OPAL_HAVE_WEAK_SYMBOLS && OMPI_PROFILE_LAYER
33+
#pragma weak PMPI_AINT_DIFF = ompi_aint_diff_f
34+
#pragma weak pmpi_aint_diff = ompi_aint_diff_f
35+
#pragma weak pmpi_aint_diff_ = ompi_aint_diff_f
36+
#pragma weak pmpi_aint_diff__ = ompi_aint_diff_f
37+
38+
#pragma weak PMPI_Aint_diff_f = ompi_aint_diff_f
39+
#pragma weak PMPI_Aint_diff_f08 = ompi_aint_diff_f
40+
#elif OMPI_PROFILE_LAYER
41+
MPI_Aint PMPI_AINT_DIFF(MPI_Aint *addr1, MPI_Aint *addr2) { return pompi_aint_diff_f(addr1, addr2); }
42+
MPI_Aint pmpi_aint_diff(MPI_Aint *addr1, MPI_Aint *addr2) { return pompi_aint_diff_f(addr1, addr2); }
43+
MPI_Aint pmpi_aint_diff_(MPI_Aint *addr1, MPI_Aint *addr2) { return pompi_aint_diff_f(addr1, addr2); }
44+
MPI_Aint pmpi_aint_diff__(MPI_Aint *addr1, MPI_Aint *addr2) { return pompi_aint_diff_f(addr1, addr2); }
45+
#endif
46+
47+
#if OPAL_HAVE_WEAK_SYMBOLS
48+
#pragma weak MPI_AINT_DIFF = ompi_aint_diff_f
49+
#pragma weak mpi_aint_diff = ompi_aint_diff_f
50+
#pragma weak mpi_aint_diff_ = ompi_aint_diff_f
51+
#pragma weak mpi_aint_diff__ = ompi_aint_diff_f
52+
53+
#pragma weak MPI_Aint_diff_f = ompi_aint_diff_f
54+
#pragma weak MPI_Aint_diff_f08 = ompi_aint_diff_f
55+
#endif
56+
57+
#if ! OPAL_HAVE_WEAK_SYMBOLS && ! OMPI_PROFILE_LAYER
58+
MPI_Aint MPI_AINT_DIFF(MPI_Aint *addr1, MPI_Aint *addr2) { return ompi_aint_diff_f(addr1, addr2); }
59+
MPI_Aint mpi_aint_diff(MPI_Aint *addr1, MPI_Aint *addr2) { return ompi_aint_diff_f(addr1, addr2); }
60+
MPI_Aint mpi_aint_diff_(MPI_Aint *addr1, MPI_Aint *addr2) { return ompi_aint_diff_f(addr1, addr2); }
61+
MPI_Aint mpi_aint_diff__(MPI_Aint *addr1, MPI_Aint *addr2) { return ompi_aint_diff_f(addr1, addr2); }
62+
#endif
63+
64+
65+
#if OMPI_PROFILE_LAYER && ! OPAL_HAVE_WEAK_SYMBOLS
66+
#include "ompi/mpi/fortran/mpif-h/profile/defines.h"
67+
#endif
68+
69+
MPI_Aint ompi_aint_diff_f(MPI_Aint *addr1, MPI_Aint *addr2)
70+
{
71+
return MPI_Aint_diff (*addr1, *addr2);
72+
}

ompi/mpi/fortran/mpif-h/profile/Makefile.am

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,8 @@ linked_files = \
5555
padd_error_code_f.c \
5656
padd_error_string_f.c \
5757
paddress_f.c \
58+
paint_add_f.c \
59+
paint_diff_f.c \
5860
pallgather_f.c \
5961
pallgatherv_f.c \
6062
palloc_mem_f.c \

ompi/mpi/fortran/mpif-h/profile/defines.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@
2929
#define ompi_add_error_code_f pompi_add_error_code_f
3030
#define ompi_add_error_string_f pompi_add_error_string_f
3131
#define ompi_address_f pompi_address_f
32+
#define ompi_aint_add_f pompi_aint_add_f
33+
#define ompi_aint_diff_f pompi_aint_diff_f
3234
#define ompi_allgather_f pompi_allgather_f
3335
#define ompi_allgatherv_f pompi_allgatherv_f
3436
#define ompi_alloc_mem_f pompi_alloc_mem_f

ompi/mpi/fortran/mpif-h/prototypes_mpi.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
* Copyright (c) 2006-2014 Cisco Systems, Inc. All rights reserved.
1313
* Copyright (c) 2011-2013 Inria. All rights reserved.
1414
* Copyright (c) 2011-2013 Universite Bordeaux 1
15-
* Copyright (c) 2013 Los Alamos National Security, LLC. All rights
15+
* Copyright (c) 2013-2015 Los Alamos National Security, LLC. All rights
1616
* reserved.
1717
* $COPYRIGHT$
1818
*
@@ -85,6 +85,8 @@ PN2(void, MPI_Add_error_class, mpi_add_error_class, MPI_ADD_ERROR_CLASS, (MPI_Fi
8585
PN2(void, MPI_Add_error_code, mpi_add_error_code, MPI_ADD_ERROR_CODE, (MPI_Fint *errorclass, MPI_Fint *errorcode, MPI_Fint *ierr));
8686
PN2(void, MPI_Add_error_string, mpi_add_error_string, MPI_ADD_ERROR_STRING, (MPI_Fint *errorcode, char *string, MPI_Fint *ierr, int l));
8787
PN2(void, MPI_Address, mpi_address, MPI_ADDRESS, (char *location, MPI_Fint *address, MPI_Fint *ierr));
88+
PN2(MPI_Aint, MPI_Aint_add, mpi_aint_add, MPI_AINT_ADD, (MPI_Aint *base, MPI_Aint *diff));
89+
PN2(MPI_Aint, MPI_Aint_diff, mpi_aint_diff, MPI_AINT_DIFF, (MPI_Aint *addr1, MPI_Aint *addr2));
8890
PN2(void, MPI_Allgather, mpi_allgather, MPI_ALLGATHER, (char *sendbuf, MPI_Fint *sendcount, MPI_Fint *sendtype, char *recvbuf, MPI_Fint *recvcount, MPI_Fint *recvtype, MPI_Fint *comm, MPI_Fint *ierr));
8991
PN2(void, MPI_Allgatherv, mpi_allgatherv, MPI_ALLGATHERV, (char *sendbuf, MPI_Fint *sendcount, MPI_Fint *sendtype, char *recvbuf, MPI_Fint *recvcounts, MPI_Fint *displs, MPI_Fint *recvtype, MPI_Fint *comm, MPI_Fint *ierr));
9092
PN2(void, MPI_Alloc_mem, mpi_alloc_mem, MPI_ALLOC_MEM, (MPI_Aint *size, MPI_Fint *info, char *baseptr, MPI_Fint *ierr));

ompi/mpi/fortran/mpif-h/wtick_f.c

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */
12
/*
23
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
34
* University Research and Technology
@@ -10,6 +11,8 @@
1011
* Copyright (c) 2004-2005 The Regents of the University of California.
1112
* All rights reserved.
1213
* Copyright (c) 2011-2012 Cisco Systems, Inc. All rights reserved.
14+
* Copyright (c) 2015 Los Alamos National Security, LLC. All rights
15+
* reserved.
1316
* $COPYRIGHT$
1417
*
1518
* Additional copyrights may follow
@@ -22,8 +25,9 @@
2225
#include "ompi/mpi/fortran/mpif-h/bindings.h"
2326

2427
/* The OMPI_GENERATE_F77_BINDINGS work only for the most common F77 bindings, the
25-
* one that does not return any value. There are 2 exceptions MPI_Wtick and MPI_Wtime.
26-
* For these 2 we can insert the bindings manually.
28+
* one that does not return any value. There are 4 exceptions MPI_Wtick, MPI_Wtime,
29+
* MPI_Aint_add, and MPI_Aint_diff. For these 4 we can insert the bindings
30+
* manually.
2731
*/
2832
#if OPAL_HAVE_WEAK_SYMBOLS && OMPI_PROFILE_LAYER
2933
#pragma weak PMPI_WTICK = ompi_wtick_f

ompi/mpi/fortran/mpif-h/wtime_f.c

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */
12
/*
23
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
34
* University Research and Technology
@@ -10,6 +11,8 @@
1011
* Copyright (c) 2004-2005 The Regents of the University of California.
1112
* All rights reserved.
1213
* Copyright (c) 2011-2012 Cisco Systems, Inc. All rights reserved.
14+
* Copyright (c) 2015 Los Alamos National Security, LLC. All rights
15+
* reserved.
1316
* $COPYRIGHT$
1417
*
1518
* Additional copyrights may follow
@@ -22,8 +25,9 @@
2225
#include "ompi/mpi/fortran/mpif-h/bindings.h"
2326

2427
/* The OMPI_GENERATE_F77_BINDINGS work only for the most common F77 bindings, the
25-
* one that does not return any value. There are 2 exceptions MPI_Wtick and MPI_Wtime.
26-
* For these 2 we can insert the bindings manually.
28+
* one that does not return any value. There are 4 exceptions MPI_Wtick, MPI_Wtime,
29+
* MPI_Aint_add, and MPI_Aint_diff. For these 4 we can insert the bindings
30+
* manually.
2731
*/
2832
#if OPAL_HAVE_WEAK_SYMBOLS && OMPI_PROFILE_LAYER
2933
#pragma weak PMPI_WTIME = ompi_wtime_f

ompi/mpi/fortran/use-mpi-f08/Makefile.am

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -444,6 +444,8 @@ pmpi_api_files = \
444444
profile/padd_error_class_f08.F90 \
445445
profile/padd_error_code_f08.F90 \
446446
profile/padd_error_string_f08.F90 \
447+
profile/paint_add_f08.F90 \
448+
profile/paint_diff_f08.F90 \
447449
profile/pallgather_f08.F90 \
448450
profile/pallgatherv_f08.F90 \
449451
profile/palloc_mem_f08.F90 \
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
! -*- f90 -*-
2+
!
3+
! Copyright (c) 2010-2014 Cisco Systems, Inc. All rights reserved.
4+
! Copyright (c) 2009-2015 Los Alamos National Security, LLC.
5+
! All Rights reserved.
6+
! $COPYRIGHT$
7+
8+
#include "ompi/mpi/fortran/configure-fortran-output.h"
9+
10+
function MPI_Aint_add_f08(base,diff)
11+
use :: mpi_f08_types, only : MPI_ADDRESS_KIND
12+
use :: mpi_f08, only ompi_aint_add_f
13+
implicit none
14+
INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: base
15+
INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: diff
16+
call ompi_aint_add_f (base, diff)
17+
end function MPI_Aint_add_f08
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
! -*- f90 -*-
2+
!
3+
! Copyright (c) 2010-2014 Cisco Systems, Inc. All rights reserved.
4+
! Copyright (c) 2009-2015 Los Alamos National Security, LLC.
5+
! All Rights reserved.
6+
! $COPYRIGHT$
7+
8+
#include "ompi/mpi/fortran/configure-fortran-output.h"
9+
10+
function MPI_Aint_add_f08(base,diff)
11+
use :: mpi_f08_types, only : MPI_ADDRESS_KIND
12+
use :: mpi_f08, only ompi_aint_add_f
13+
implicit none
14+
INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: base
15+
INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: diff
16+
call ompi_aint_add_f (base, diff)
17+
end function MPI_Aint_add_f08

0 commit comments

Comments
 (0)