Skip to content

Commit 1b0dfcd

Browse files
authored
Merge pull request #7762 from ggouaillardet/topic/mpi_status_f08_c
Add missing MPI_Status conversion subroutines
2 parents 43e3add + c04dc35 commit 1b0dfcd

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

50 files changed

+1208
-109
lines changed

config/ompi_config_files.m4

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
# -*- shell-script -*-
22
#
33
# Copyright (c) 2009-2020 Cisco Systems, Inc. All rights reserved
4-
# Copyright (c) 2017-2018 Research Organization for Information Science
5-
# and Technology (RIST). All rights reserved.
4+
# Copyright (c) 2017-2020 Research Organization for Information Science
5+
# and Technology (RIST). All rights reserved.
66
# Copyright (c) 2018 Los Alamos National Security, LLC. All rights
77
# reserved.
88
# Copyright (c) 2018 FUJITSU LIMITED. All rights reserved.
@@ -29,6 +29,8 @@ AC_DEFUN([OMPI_CONFIG_FILES],[
2929
ompi/mpi/fortran/base/Makefile
3030
ompi/mpi/fortran/mpif-h/Makefile
3131
ompi/mpi/fortran/mpif-h/profile/Makefile
32+
ompi/mpi/fortran/use-mpi/Makefile
33+
ompi/mpi/fortran/use-mpi/mpi-types.F90
3234
ompi/mpi/fortran/use-mpi-tkr/Makefile
3335
ompi/mpi/fortran/use-mpi-tkr/fortran_sizes.h
3436
ompi/mpi/fortran/use-mpi-tkr/fortran_kinds.sh

config/ompi_fortran_check_bind_c.m4

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ dnl University of Stuttgart. All rights reserved.
1111
dnl Copyright (c) 2004-2005 The Regents of the University of California.
1212
dnl All rights reserved.
1313
dnl Copyright (c) 2010-2014 Cisco Systems, Inc. All rights reserved.
14+
dnl Copyright (c) 2020 Research Organization for Information Science
15+
dnl and Technology (RIST). All rights reserved.
1416
dnl $COPYRIGHT$
1517
dnl
1618
dnl Additional copyrights may follow
@@ -83,6 +85,7 @@ AC_DEFUN([OMPI_FORTRAN_CHECK_BIND_C_TYPE],[
8385
end module]])],
8486
[AS_VAR_SET(bind_c_type_var, yes)],
8587
[AS_VAR_SET(bind_c_type_var, no)])
88+
rm -rf *.mod 2>/dev/null
8689
AC_LANG_POP([Fortran])
8790
])
8891

config/ompi_setup_mpi_fortran.m4

Lines changed: 28 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ dnl Copyright (c) 2006-2008 Sun Microsystems, Inc. All rights reserved.
1515
dnl Copyright (c) 2006-2007 Los Alamos National Security, LLC. All rights
1616
dnl reserved.
1717
dnl Copyright (c) 2009 Oak Ridge National Labs. All rights reserved.
18-
dnl Copyright (c) 2014-2019 Research Organization for Information Science
18+
dnl Copyright (c) 2014-2020 Research Organization for Information Science
1919
dnl and Technology (RIST). All rights reserved.
2020
dnl Copyright (c) 2016 IBM Corporation. All rights reserved.
2121
dnl Copyright (c) 2018 FUJITSU LIMITED. All rights reserved.
@@ -276,6 +276,9 @@ AC_DEFUN([OMPI_SETUP_MPI_FORTRAN],[
276276
OMPI_FORTRAN_STATUS_SIZE=$num_ints
277277
AC_MSG_RESULT([$OMPI_FORTRAN_STATUS_SIZE Fortran INTEGERs])
278278
AC_SUBST(OMPI_FORTRAN_STATUS_SIZE)
279+
AC_DEFINE_UNQUOTED([OMPI_FORTRAN_STATUS_SIZE],
280+
[$OMPI_FORTRAN_STATUS_SIZE],
281+
[The number or Fortran INTEGER in MPI Status])
279282

280283
# Setup for the compilers that don't support ignore TKR functionality
281284
OPAL_UNIQ(OMPI_FORTRAN_IKINDS)
@@ -384,6 +387,18 @@ AC_DEFUN([OMPI_SETUP_MPI_FORTRAN],[
384387
[OMPI_TRY_FORTRAN_BINDINGS=$OMPI_FORTRAN_MPIFH_BINDINGS
385388
AC_MSG_RESULT([no])])
386389

390+
OMPI_FORTRAN_HAVE_BIND_C_TYPE=0
391+
OMPI_FORTRAN_HAVE_TYPE_MPI_STATUS=0
392+
393+
AS_IF([test $OMPI_BUILD_FORTRAN_BINDINGS -ge $OMPI_FORTRAN_USEMPI_BINDINGS],
394+
[OMPI_FORTRAN_CHECK_BIND_C_TYPE(
395+
[OMPI_FORTRAN_HAVE_BIND_C_TYPE=1
396+
OMPI_FORTRAN_HAVE_TYPE_MPI_STATUS=1])])
397+
398+
AC_SUBST(OMPI_FORTRAN_HAVE_TYPE_MPI_STATUS)
399+
AM_CONDITIONAL(OMPI_FORTRAN_HAVE_TYPE_MPI_STATUS,
400+
[test $OMPI_FORTRAN_HAVE_TYPE_MPI_STATUS -eq 1])
401+
387402
#---------------------------------
388403
# Fortran use mpi_f08 MPI bindings
389404
#---------------------------------
@@ -419,14 +434,11 @@ AC_DEFUN([OMPI_SETUP_MPI_FORTRAN],[
419434
[OMPI_FORTRAN_HAVE_BIND_C_SUB=0
420435
OMPI_BUILD_FORTRAN_BINDINGS=$OMPI_FORTRAN_USEMPI_BINDINGS])])
421436

422-
OMPI_FORTRAN_HAVE_BIND_C_TYPE=0
423437
AS_IF([test $OMPI_TRY_FORTRAN_BINDINGS -ge $OMPI_FORTRAN_USEMPIF08_BINDINGS && \
424438
test $OMPI_BUILD_FORTRAN_BINDINGS -ge $OMPI_FORTRAN_USEMPIF08_BINDINGS],
425439
[ # If we don't have TYPE, BIND(C), we won't build mpi_f08 at all
426-
OMPI_FORTRAN_CHECK_BIND_C_TYPE(
427-
[OMPI_FORTRAN_HAVE_BIND_C_TYPE=1],
428-
[OMPI_FORTRAN_HAVE_BIND_C_TYPE=0
429-
OMPI_BUILD_FORTRAN_BINDINGS=$OMPI_FORTRAN_USEMPI_BINDINGS])])
440+
AS_IF([test $OMPI_FORTRAN_HAVE_BIND_C_TYPE -ne 1],
441+
[OMPI_BUILD_FORTRAN_BINDINGS=$OMPI_FORTRAN_USEMPI_BINDINGS])])
430442

431443
# Per discussion on the devel list starting here:
432444
# https://www.open-mpi.org/community/lists/devel/2014/01/13799.php
@@ -698,6 +710,16 @@ end type test_mpi_handle],
698710
AM_CONDITIONAL(OMPI_BUILD_FORTRAN_USEMPI_IGNORE_TKR_BINDINGS,
699711
[test $OMPI_BUILD_FORTRAN_BINDINGS -ge $OMPI_FORTRAN_USEMPI_BINDINGS && \
700712
test $OMPI_FORTRAN_HAVE_IGNORE_TKR -eq 1])
713+
# True if we support TYPE, BIND(C)
714+
AC_DEFINE_UNQUOTED(OMPI_FORTRAN_HAVE_BIND_C_TYPE,
715+
[$OMPI_FORTRAN_HAVE_BIND_C_TYPE],
716+
[For ompi_info: Whether the compiler supports TYPE, BIND(C) or not])
717+
718+
# For mpif-status.h, configure-fortran-output.h, mpi-f08-types.F90 (and ompi_info)
719+
AC_SUBST([OMPI_FORTRAN_HAVE_PRIVATE])
720+
AC_DEFINE_UNQUOTED([OMPI_FORTRAN_HAVE_PRIVATE],
721+
[$OMPI_FORTRAN_HAVE_PRIVATE],
722+
[For mpif-status.h, mpi-f08-types.f90 and ompi_info: whether the compiler supports the "private" keyword or not (used in TYPE(MPI_Status))])
701723

702724
# -------------------
703725
# use mpi_f08 final setup
@@ -746,22 +768,13 @@ end type test_mpi_handle],
746768
AC_DEFINE_UNQUOTED(OMPI_FORTRAN_HAVE_BIND_C_SUB,
747769
[$OMPI_FORTRAN_HAVE_BIND_C_SUB],
748770
[For ompi_info: Whether the compiler supports SUBROUTINE ... BIND(C) or not])
749-
AC_DEFINE_UNQUOTED(OMPI_FORTRAN_HAVE_BIND_C_TYPE,
750-
[$OMPI_FORTRAN_HAVE_BIND_C_TYPE],
751-
[For ompi_info: Whether the compiler supports TYPE, BIND(C) or not])
752771
AC_DEFINE_UNQUOTED(OMPI_FORTRAN_HAVE_BIND_C_TYPE_NAME,
753772
[$OMPI_FORTRAN_HAVE_BIND_C_TYPE_NAME],
754773
[For ompi_info: Whether the compiler supports TYPE, BIND(C, NAME="name") or not])
755774
AC_DEFINE_UNQUOTED([OMPI_FORTRAN_HAVE_OPTIONAL_ARGS],
756775
[$OMPI_FORTRAN_HAVE_OPTIONAL_ARGS],
757776
[For ompi_info: whether the Fortran compiler supports optional arguments or not])
758777

759-
# For configure-fortran-output.h, mpi-f08-types.F90 (and ompi_info)
760-
AC_SUBST([OMPI_FORTRAN_HAVE_PRIVATE])
761-
AC_DEFINE_UNQUOTED([OMPI_FORTRAN_HAVE_PRIVATE],
762-
[$OMPI_FORTRAN_HAVE_PRIVATE],
763-
[For mpi-f08-types.f90 and ompi_info: whether the compiler supports the "private" keyword or not (used in MPI_Status)])
764-
765778
# For configure-fortran-output.h, mpi-f08-interfaces-callbacks.F90
766779
# (and ompi_info)
767780
AC_SUBST([OMPI_FORTRAN_HAVE_ABSTRACT])

ompi/Makefile.am

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@
1515
# Copyright (c) 2013-2015 Los Alamos National Security, LLC. All rights
1616
# reserved.
1717
# Copyright (c) 2015-2019 Intel, Inc. All rights reserved.
18-
# Copyright (c) 2015-2018 Research Organization for Information Science
19-
# and Technology (RIST). All rights reserved.
18+
# Copyright (c) 2015-2020 Research Organization for Information Science
19+
# and Technology (RIST). All rights reserved.
2020
# Copyright (c) 2016 IBM Corporation. All rights reserved.
2121
# Copyright (c) 2018 FUJITSU LIMITED. All rights reserved.
2222
# $COPYRIGHT$
@@ -88,6 +88,7 @@ SUBDIRS = \
8888
. \
8989
$(OMPI_MPIEXT_MPIFH_DIRS) \
9090
mpi/fortran/mpif-h \
91+
mpi/fortran/use-mpi \
9192
$(OMPI_MPIEXT_USEMPI_DIR) \
9293
$(OMPI_FORTRAN_USEMPI_DIR) \
9394
mpi/fortran/mpiext-use-mpi \
@@ -121,6 +122,7 @@ DIST_SUBDIRS = \
121122
mpi/tool \
122123
mpi/fortran/base \
123124
mpi/fortran/mpif-h \
125+
mpi/fortran/use-mpi \
124126
mpi/fortran/use-mpi-tkr \
125127
mpi/fortran/use-mpi-ignore-tkr \
126128
mpi/fortran/mpiext-use-mpi \

ompi/include/mpi.h.in

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@
1717
* reserved.
1818
* Copyright (c) 2011-2013 INRIA. All rights reserved.
1919
* Copyright (c) 2015 University of Houston. All rights reserved.
20-
* Copyright (c) 2015-2018 Research Organization for Information Science
21-
* and Technology (RIST). All rights reserved.
20+
* Copyright (c) 2015-2020 Research Organization for Information Science
21+
* and Technology (RIST). All rights reserved.
2222
* Copyright (c) 2017-2019 IBM Corporation. All rights reserved.
2323
* Copyright (c) 2018 FUJITSU LIMITED. All rights reserved.
2424
* $COPYRIGHT$
@@ -98,6 +98,9 @@
9898
/* Maximum length of processor names (default is 256) */
9999
#undef OPAL_MAX_PROCESSOR_NAME
100100

101+
/* The number or Fortran INTEGER in MPI Status */
102+
#undef OMPI_FORTRAN_STATUS_SIZE
103+
101104
/* Whether we have FORTRAN LOGICAL*1 or not */
102105
#undef OMPI_HAVE_FORTRAN_LOGICAL1
103106

@@ -408,6 +411,7 @@ typedef struct ompi_op_t *MPI_Op;
408411
typedef struct ompi_request_t *MPI_Request;
409412
typedef struct ompi_message_t *MPI_Message;
410413
typedef struct ompi_status_public_t MPI_Status;
414+
typedef struct ompi_f08_status_public_t MPI_F08_status;
411415
typedef struct ompi_win_t *MPI_Win;
412416
typedef struct mca_base_var_enum_t *MPI_T_enum;
413417
typedef struct ompi_mpit_cvar_handle_t *MPI_T_cvar_handle;
@@ -432,6 +436,19 @@ struct ompi_status_public_t {
432436
};
433437
typedef struct ompi_status_public_t ompi_status_public_t;
434438

439+
/*
440+
* MPI_F08_status
441+
*/
442+
struct ompi_f08_status_public_t {
443+
/* These fields are publicly defined in the MPI specification.
444+
User applications may freely read from these fields. */
445+
MPI_Fint MPI_SOURCE;
446+
MPI_Fint MPI_TAG;
447+
MPI_Fint MPI_ERROR;
448+
MPI_Fint internal[OMPI_FORTRAN_STATUS_SIZE - 3];
449+
};
450+
typedef struct ompi_f08_status_public_t ompi_f08_status_public_t;
451+
435452
/*
436453
* User typedefs
437454
*/
@@ -1763,7 +1780,11 @@ OMPI_DECLSPEC int MPI_Ssend(const void *buf, int count, MPI_Datatype datatype,
17631780
OMPI_DECLSPEC int MPI_Start(MPI_Request *request);
17641781
OMPI_DECLSPEC int MPI_Startall(int count, MPI_Request array_of_requests[]);
17651782
OMPI_DECLSPEC int MPI_Status_c2f(const MPI_Status *c_status, MPI_Fint *f_status);
1783+
OMPI_DECLSPEC int MPI_Status_c2f08(const MPI_Status *c_status, MPI_F08_status *f08_status);
1784+
OMPI_DECLSPEC int MPI_Status_f082c(const MPI_F08_status *f08_status, MPI_Status *c_status);
1785+
OMPI_DECLSPEC int MPI_Status_f082f(const MPI_F08_status *f08_status, MPI_Fint *f_status);
17661786
OMPI_DECLSPEC int MPI_Status_f2c(const MPI_Fint *f_status, MPI_Status *c_status);
1787+
OMPI_DECLSPEC int MPI_Status_f2f08(const MPI_Fint *f_status, MPI_F08_status *f08_status);
17671788
OMPI_DECLSPEC int MPI_Status_set_cancelled(MPI_Status *status, int flag);
17681789
OMPI_DECLSPEC int MPI_Status_set_elements(MPI_Status *status, MPI_Datatype datatype,
17691790
int count);
@@ -2424,7 +2445,11 @@ OMPI_DECLSPEC int PMPI_Ssend(const void *buf, int count, MPI_Datatype datatype,
24242445
OMPI_DECLSPEC int PMPI_Start(MPI_Request *request);
24252446
OMPI_DECLSPEC int PMPI_Startall(int count, MPI_Request array_of_requests[]);
24262447
OMPI_DECLSPEC int PMPI_Status_c2f(const MPI_Status *c_status, MPI_Fint *f_status);
2448+
OMPI_DECLSPEC int PMPI_Status_c2f08(const MPI_Status *c_status, MPI_F08_status *f08_status);
2449+
OMPI_DECLSPEC int PMPI_Status_f082f(const MPI_F08_status *f08_status, MPI_Fint *f_status);
2450+
OMPI_DECLSPEC int PMPI_Status_f082c(const MPI_F08_status *f08_status, MPI_Status *c_status);
24272451
OMPI_DECLSPEC int PMPI_Status_f2c(const MPI_Fint *f_status, MPI_Status *c_status);
2452+
OMPI_DECLSPEC int PMPI_Status_f2f08(const MPI_Fint *f_status, MPI_F08_status *f08_status);
24282453
OMPI_DECLSPEC int PMPI_Status_set_cancelled(MPI_Status *status, int flag);
24292454
OMPI_DECLSPEC int PMPI_Status_set_elements(MPI_Status *status, MPI_Datatype datatype,
24302455
int count);

ompi/mpi/c/Makefile.am

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@
1515
# Copyright (c) 2012-2013 Inria. All rights reserved.
1616
# Copyright (c) 2013-2018 Los Alamos National Security, LLC. All rights
1717
# reserved.
18-
# Copyright (c) 2015-2018 Research Organization for Information Science
19-
# and Technology (RIST). All rights reserved.
18+
# Copyright (c) 2015-2020 Research Organization for Information Science
19+
# and Technology (RIST). All rights reserved.
2020
# $COPYRIGHT$
2121
#
2222
# Additional copyrights may follow
@@ -339,7 +339,11 @@ libmpi_c_mpi_la_SOURCES = \
339339
start.c \
340340
startall.c \
341341
status_c2f.c \
342+
status_c2f08.c \
343+
status_f082c.c \
344+
status_f082f.c \
342345
status_f2c.c \
346+
status_f2f08.c \
343347
status_set_cancelled.c \
344348
status_set_elements.c \
345349
status_set_elements_x.c \

ompi/mpi/c/profile/Makefile.am

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@
1616
# Copyright (c) 2012-2013 Inria. All rights reserved.
1717
# Copyright (c) 2013 Los Alamos National Security, LLC. All rights
1818
# reserved.
19-
# Copyright (c) 2015-2018 Research Organization for Information Science
20-
# and Technology (RIST). All rights reserved.
19+
# Copyright (c) 2015-2020 Research Organization for Information Science
20+
# and Technology (RIST). All rights reserved.
2121
# $COPYRIGHT$
2222
#
2323
# Additional copyrights may follow
@@ -319,6 +319,10 @@ nodist_libmpi_c_pmpi_la_SOURCES = \
319319
pstart.c \
320320
pstartall.c \
321321
pstatus_c2f.c \
322+
pstatus_c2f08.c \
323+
pstatus_f082c.c \
324+
pstatus_f082f.c \
325+
pstatus_f2f08.c \
322326
pstatus_f2c.c \
323327
pstatus_set_cancelled.c \
324328
pstatus_set_elements.c \

ompi/mpi/c/status_c2f.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,8 +95,9 @@ int MPI_Status_c2f(const MPI_Status *c_status, MPI_Fint *f_status)
9595
get truncated). But if sizeof(int) == sizeof(INTEGER) or
9696
sizeof(int) < sizeof(INTEGER), everything should be kosher. */
9797
c_ints = (const int*)c_status;
98-
for( i = 0; i < (int)(sizeof(MPI_Status) / sizeof(int)); i++ )
98+
for( i = 0; i < (int)(sizeof(MPI_Status) / sizeof(int)); i++ ) {
9999
f_status[i] = OMPI_INT_2_FINT(c_ints[i]);
100+
}
100101

101102
return MPI_SUCCESS;
102103
}

ompi/mpi/c/status_c2f08.c

Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */
2+
/*
3+
* Copyright (c) 2004-2007 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-2008 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) 2010-2012 Cisco Systems, Inc. All rights reserved.
14+
* Copyright (c) 2013 Los Alamos National Security, LLC. All rights
15+
* reserved.
16+
* Copyright (c) 2015-2020 Research Organization for Information Science
17+
* and Technology (RIST). All rights reserved.
18+
* $COPYRIGHT$
19+
*
20+
* Additional copyrights may follow
21+
*
22+
* $HEADER$
23+
*/
24+
#include "ompi_config.h"
25+
#include <stdio.h>
26+
27+
#include "ompi/mpi/c/bindings.h"
28+
#include "ompi/runtime/params.h"
29+
#include "ompi/communicator/communicator.h"
30+
#include "ompi/errhandler/errhandler.h"
31+
#include "ompi/mpi/fortran/base/fint_2_int.h"
32+
#include "ompi/mpi/fortran/base/constants.h"
33+
#include "ompi/memchecker.h"
34+
35+
#if OMPI_BUILD_MPI_PROFILING
36+
#if OPAL_HAVE_WEAK_SYMBOLS
37+
#pragma weak MPI_Status_c2f08 = PMPI_Status_c2f08
38+
#endif
39+
#define MPI_Status_c2f08 PMPI_Status_c2f08
40+
#endif
41+
42+
static const char FUNC_NAME[] = "MPI_Status_c2f08";
43+
44+
45+
int MPI_Status_c2f08(const MPI_Status *c_status, MPI_F08_status *f08_status)
46+
{
47+
const int *c_ints;
48+
MEMCHECKER(
49+
if(c_status != MPI_STATUSES_IGNORE) {
50+
/*
51+
* Before checking the complete status, we need to reset the definedness
52+
* of the MPI_ERROR-field (single-completion calls wait/test).
53+
*/
54+
opal_memchecker_base_mem_defined((void*)&c_status->MPI_ERROR, sizeof(int));
55+
memchecker_status(c_status);
56+
}
57+
);
58+
59+
OPAL_CR_NOOP_PROGRESS();
60+
61+
if (MPI_PARAM_CHECK) {
62+
OMPI_ERR_INIT_FINALIZE(FUNC_NAME);
63+
64+
/* MPI-4:18.2.5 implies that if you pass in
65+
MPI_STATUS[ES]_IGNORE, it's erroneous */
66+
67+
if (NULL == c_status || MPI_STATUS_IGNORE == c_status ||
68+
MPI_STATUSES_IGNORE == c_status || NULL == f08_status) {
69+
return OMPI_ERRHANDLER_INVOKE(MPI_COMM_WORLD,
70+
MPI_ERR_IN_STATUS, FUNC_NAME);
71+
}
72+
}
73+
74+
/* ***NOTE*** See huge comment in status_c2f.c (yes, I know
75+
there's a size_t member in the C MPI_Status -- go
76+
read that comment for an explanation why copying
77+
everything as a bunch of int's is ok). */
78+
f08_status->MPI_SOURCE = OMPI_INT_2_FINT(c_status->MPI_SOURCE);
79+
f08_status->MPI_TAG = OMPI_INT_2_FINT(c_status->MPI_TAG);
80+
f08_status->MPI_ERROR = OMPI_INT_2_FINT(c_status->MPI_ERROR);
81+
c_ints = (const int *)c_status + 3;
82+
for(int i = 0; i < (int)(sizeof(MPI_Status) / sizeof(int) - 3); i++ ) {
83+
f08_status->internal[i] = OMPI_INT_2_FINT(c_ints[i]);
84+
}
85+
86+
return MPI_SUCCESS;
87+
}

0 commit comments

Comments
 (0)