17.2.336. MPI_Status_c2f08

MPI_Status_f082c, MPI_Status_c2f08 - 将C语言状态转换为Fortran 2008状态,或反之。

17.2.336.1. 语法

17.2.336.1.1. C语法

#include <mpi.h>

int MPI_Status_f082c(const MPI_F08_status *f08_status, MPI_Status *c_status)
int MPI_Status_c2f08(const MPI_Status *c_status, MPI_F08_status *f08_status)

17.2.336.2. 参数

  • f08_status : mpi_f08风格的MPI状态对象

  • c_status : C风格的MPI状态对象

17.2.336.3. 描述

这两个C语言过程用于在Fortran 2008状态(由整数组成的派生类型)与C状态(结构体)之间进行相互转换。转换会处理status中的所有信息,包括隐藏部分。也就是说,在转换过程中不会丢失任何状态信息。

当使用MPI_Status_f082c时,如果f08_status是一个有效的Fortran状态, 但不是MPI_F08_STATUS_IGNOREMPI_F08_STATUSES_IGNORE的Fortran值,那么MPI_Status_f082c会在c_status中返回一个 具有相同内容的有效C状态。如果f08_statusMPI_STATUS_IGNOREMPI_STATUSES_IGNORE的Fortran值, 或者如果f08_status不是一个有效的Fortran状态,则该调用是错误的。

当使用MPI_Status_c2f08时,会执行相反的转换。如果c_statusMPI_STATUS_IGNOREMPI_STATUSES_IGNORE,或者如果c_status不是有效的C状态,则该调用是错误的。

输入状态与输出状态具有相同的来源、标签和错误代码值,并且在查询计数、元素和取消时返回相同的答案。转换函数可能会被调用时传入一个错误字段未定义的输入状态参数,在这种情况下,输出状态参数中的错误字段值也将是未定义的。

17.2.336.4. 注意事项

这些函数仅在C语言中可用;它们在任何Fortran MPI接口中都不可用。