Skip to content

Commit b2360a3

Browse files
committed
fortran/use-mpi-f08: add CFI support for isendrecv
and isendrecv_replace Signed-off-by: Howard Pritchard <howardp@lanl.gov>
1 parent 37b9207 commit b2360a3

File tree

5 files changed

+25
-8
lines changed

5 files changed

+25
-8
lines changed

ompi/mpi/fortran/use-mpi-f08/bindings/mpi-f-interfaces-bind.h.in

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -273,7 +273,7 @@ end subroutine ompi_isend_f
273273

274274
subroutine ompi_isendrecv_f(sendbuf,sendcount,sendtype,dest,sendtag,recvbuf, &
275275
recvcount,recvtype,source,recvtag,comm,request,ierror) &
276-
BIND(C, name="ompi_isendrecv_f")
276+
BIND(C, name="ompi_isendrecv_@OMPI_F08_BINDINGS_EXTENSION@")
277277
implicit none
278278
OMPI_F08_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf
279279
OMPI_F08_IGNORE_TKR_TYPE :: recvbuf
@@ -287,7 +287,7 @@ end subroutine ompi_isendrecv_f
287287

288288
subroutine ompi_isendrecv_replace_f(buf,count,datatype,dest,sendtag,source, &
289289
recvtag,comm,request,ierror) &
290-
BIND(C, name="ompi_isendrecv_replace_f")
290+
BIND(C, name="ompi_isendrecv_replace_@OMPI_F08_BINDINGS_EXTENSION@")
291291
implicit none
292292
OMPI_F08_IGNORE_TKR_TYPE :: buf
293293
INTEGER, INTENT(IN) :: count, dest, sendtag, source, recvtag

ompi/mpi/fortran/use-mpi-f08/mod/mpi-f08-interfaces.h.in

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ end subroutine MPI_Isend_f08@OMPI_F08_BINDINGS_TS_SUFFIX@
155155
end interface MPI_Isend
156156

157157
interface MPI_Isendrecv
158-
subroutine MPI_Isendrecv_f08(sendbuf,sendcount,sendtype,dest,sendtag,recvbuf, &
158+
subroutine MPI_Isendrecv_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(sendbuf,sendcount,sendtype,dest,sendtag,recvbuf, &
159159
recvcount,recvtype,source,recvtag,comm,request,ierror)
160160
use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request
161161
implicit none
@@ -167,11 +167,11 @@ subroutine MPI_Isendrecv_f08(sendbuf,sendcount,sendtype,dest,sendtag,recvbuf, &
167167
TYPE(MPI_Comm), INTENT(IN) :: comm
168168
TYPE(MPI_Request), INTENT(OUT) :: request
169169
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
170-
end subroutine MPI_Isendrecv_f08
170+
end subroutine MPI_Isendrecv_f08@OMPI_F08_BINDINGS_TS_SUFFIX@
171171
end interface MPI_Isendrecv
172172

173173
interface MPI_Isendrecv_replace
174-
subroutine MPI_Isendrecv_replace_f08(buf,count,datatype,dest,sendtag,source,recvtag, &
174+
subroutine MPI_Isendrecv_replace_f08@OMPI_F08_BINDINGS_TS_SUFFIX@(buf,count,datatype,dest,sendtag,source,recvtag, &
175175
comm,request,ierror)
176176
use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request
177177
implicit none
@@ -182,7 +182,7 @@ subroutine MPI_Isendrecv_replace_f08(buf,count,datatype,dest,sendtag,source,recv
182182
TYPE(MPI_Comm), INTENT(IN) :: comm
183183
TYPE(MPI_Request), INTENT(OUT) :: request
184184
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
185-
end subroutine MPI_Isendrecv_replace_f08
185+
end subroutine MPI_Isendrecv_replace_f08@OMPI_F08_BINDINGS_TS_SUFFIX@
186186
end interface MPI_Isendrecv_replace
187187

188188
interface MPI_Issend

ompi/mpi/fortran/use-mpi-f08/mod/mpi-f08-rename.h.in

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,11 @@
3535
#define MPI_Isend_f08 PMPI_Isend_f08@OMPI_F08_BINDINGS_TS_SUFFIX@
3636
#define MPI_Isend_f08ts PMPI_Isend_f08ts
3737
#define MPI_Isendrecv PMPI_Isendrecv
38-
#define MPI_Isendrecv_f08 PMPI_Isendrecv_f08
38+
#define MPI_Isendrecv_f08 PMPI_Isendrecv_f08@OMPI_F08_BINDINGS_TS_SUFFIX@
39+
#define MPI_Isendrecv_f08ts PMPI_Isendrecv_f08ts
3940
#define MPI_Isendrecv_replace PMPI_Isendrecv_replace
40-
#define MPI_Isendrecv_replace_f08 PMPI_Isendrecv_replace_f08
41+
#define MPI_Isendrecv_replace_f08 PMPI_Isendrecv_replace_f08@OMPI_F08_BINDINGS_TS_SUFFIX@
42+
#define MPI_Isendrecv_replace_f08ts PMPI_Isendrecv_replace_f08ts
4143
#define MPI_Issend PMPI_Issend
4244
#define MPI_Issend_f08 PMPI_Issend_f08@OMPI_F08_BINDINGS_TS_SUFFIX@
4345
#define MPI_Issend_f08ts PMPI_Issend_f08ts
@@ -916,6 +918,8 @@
916918
#define MPI_Irecv_f08 MPI_Irecv_f08@OMPI_F08_BINDINGS_TS_SUFFIX@
917919
#define MPI_Irsend_f08 MPI_Irsend_f08@OMPI_F08_BINDINGS_TS_SUFFIX@
918920
#define MPI_Isend_f08 MPI_Isend_f08@OMPI_F08_BINDINGS_TS_SUFFIX@
921+
#define MPI_Isendrecv_f08 MPI_Isendrecv_f08@OMPI_F08_BINDINGS_TS_SUFFIX@
922+
#define MPI_Isendrecv_replace_f08 MPI_Isendrecv_replace_f08@OMPI_F08_BINDINGS_TS_SUFFIX@
919923
#define MPI_Issend_f08 MPI_Issend_f08@OMPI_F08_BINDINGS_TS_SUFFIX@
920924
#define MPI_Recv_f08 MPI_Recv_f08@OMPI_F08_BINDINGS_TS_SUFFIX@
921925
#define MPI_Recv_init_f08 MPI_Recv_init_f08@OMPI_F08_BINDINGS_TS_SUFFIX@

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,8 @@ libusempif08_ts_la_SOURCES = \
115115
iscatter_ts.c \
116116
iscatterv_ts.c \
117117
isend_ts.c \
118+
isendrecv_ts.c \
119+
isendrecv_replace_ts.c \
118120
issend_ts.c \
119121
mrecv_ts.c \
120122
neighbor_allgather_ts.c \

ompi/mpi/fortran/use-mpi-f08/ts/bindings.h

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,17 @@ void ompi_isend_ts(CFI_cdesc_t *x, MPI_Fint *count, MPI_Fint *datatype,
4343
MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm,
4444
MPI_Fint *request, MPI_Fint *ierr);
4545

46+
void ompi_isendrecv_ts(CFI_cdesc_t* x1, MPI_Fint *sendcount, MPI_Fint *sendtype,
47+
MPI_Fint *dest, MPI_Fint *sendtag, CFI_cdesc_t* x2,
48+
MPI_Fint *recvcount, MPI_Fint *recvtype,
49+
MPI_Fint *source, MPI_Fint *recvtag, MPI_Fint *comm,
50+
MPI_Fint *request, MPI_Fint *ierr);
51+
52+
void ompi_isendrecv_replace_ts(CFI_cdesc_t* x, MPI_Fint *count, MPI_Fint *datatype,
53+
MPI_Fint *dest, MPI_Fint *sendtag,
54+
MPI_Fint *source, MPI_Fint *recvtag,
55+
MPI_Fint *comm, MPI_Fint *request, MPI_Fint *ierr);
56+
4657
void ompi_issend_ts(CFI_cdesc_t* x, MPI_Fint *count, MPI_Fint *datatype,
4758
MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm,
4859
MPI_Fint *request, MPI_Fint *ierr);

0 commit comments

Comments
 (0)