MPI_STATUS_F2F08(3)
π MPI_STATUS_F2F08(3) π
okay bestie, welcome to Open MPI's little status-translator corner of the manual. This is MPI_Status_f082f and MPI_Status_c2f08 (and friends), and they do exactly what the name says: they translate a Fortran 2008 status into a Fortran INTEGER-style status, or vice versa. no cap.
πΈ SYNTAX πΈ
β¨ C Syntax
#include <mpi.h>
int MPI_Status_f082f(const MPI_F08_status *f08_status, MPI_Fint *f_status)
int MPI_Status_f2f08(const MPI_Fint *f_status, MPI_F08_status *f08_status)
β¨ Fortran mpi Module Syntax
USE MPI
MPI_STATUS_F082F(F08_STATUS, F_STATUS, IERROR)
TYPE(MPI_Status) :: F08_STATUS
INTEGER :: STATUS(MPI_STATUS_SIZE), IERROR
MPI_STATUS_F2F08(F_STATUS, F08_STATUS, IERROR)
INTEGER :: F_STATUS(MPI_STATUS_SIZE), IERROR
TYPE(MPI_Status) :: F08_STATUS
β¨ Fortran mpi_f08 Module Syntax
USE mpi_f08
MPI_Status_f082f(f08_status, f_status, ierror)
TYPE(MPI_Status), INTENT(IN) :: f08_status
INTEGER, INTENT(OUT) :: f_status(MPI_STATUS_SIZE)
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
MPI_Status_f2f08(f_status, f08_status, ierror)
INTEGER, INTENT(IN) :: f_status(MPI_STATUS_SIZE)
TYPE(MPI_Status), INTENT(OUT) :: f08_status
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
π PARAMETERS π
f08_statusβ thempi_f08-style MPI status object, living its best derived-datatype life π¦f_statusβ thempi-styleINTEGERMPI status object, an array of ints, iconic π
π«Ά DESCRIPTION π«Ά
so these two procedures exist purely to convert back and forth: from a Fortran 2008 status (which is a derived datatype made of integers) to a Fortran status (which is an array of integers), and vice versa. and the way that it converts all the info in the status β including the stuff that's hidden β is literally the whole point. that's right, no status information is lost in the conversion. periodt.
When you're using MPI_Status_f082f, here's the vibe check:
- if
f08_statusis a valid Fortran status, but not the Fortran value ofMPI_F08_STATUS_IGNORE(in C),MPI_STATUS_IGNORE(in Fortran),MPI_F08_STATUSES_IGNORE(in C) orMPI_STATUSES_IGNORE(in Fortran), thenMPI_Status_f082freturns inf_statusa valid array with the same content π - but if
f08_statusis the C value ofMPI_F08_STATUS_IGNOREorMPI_F08_STATUSES_IGNORE, or the Fortran value ofMPI_STATUS_IGNOREorMPI_STATUSES_IGNORE, or iff08_statusisn't a valid Fortran status at all, then the call is erroneous. π yeah. don't do that.
When you're using MPI_Status_f2f08, the opposite conversion gets applied. If f_status is MPI_STATUS_IGNORE or MPI_STATUSES_IGNORE, or if f_status isn't a valid Fortran status, then the call is erroneous. same energy, opposite direction π
And listen β the input status has the same source, tag and error code values as the output status, and it returns the same answers when you query it for count, elements, and cancellation. slay. Also, the conversion function may be called with an input status argument that has an undefined error field, in which case the value of the error field in the output status argument is undefined. (yes, undefined. that's on purpose. don't be shocked when it's undefined.) π
π NOTES π
The Fortran subroutines for these MPI routines are only available in the mpi and mpi_f08 modules (including the type specification for TYPE(MPI_Status)). they are (intentionally) not available in mpif.h. intentional. deliberate. by design. iykyk π₯
See also:
MPI_Status_c2fMPI_Status_c2f08
π Copyright
2003-2026, The Open MPI Community
and that's the whole page, bestie π this was Open MPI, dated Sep 10, 2026, filed under MPI_STATUS_F2F08(3) β go forth and convert your statuses with zero data loss, you absolute legend βπβ¨
π¦ where this page comes from
- ubuntu stonking: openmpi-doc 5.0.10-6 Β· other
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms