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_IGNORE或
MPI_F08_STATUSES_IGNORE的Fortran值,那么MPI_Status_f082c会在c_status中返回一个
具有相同内容的有效C状态。如果f08_status是MPI_STATUS_IGNORE或MPI_STATUSES_IGNORE的Fortran值,
或者如果f08_status不是一个有效的Fortran状态,则该调用是错误的。
当使用MPI_Status_c2f08时,会执行相反的转换。如果c_status是MPI_STATUS_IGNORE或MPI_STATUSES_IGNORE,或者如果c_status不是有效的C状态,则该调用是错误的。
输入状态与输出状态具有相同的来源、标签和错误代码值,并且在查询计数、元素和取消时返回相同的答案。转换函数可能会被调用时传入一个错误字段未定义的输入状态参数,在这种情况下,输出状态参数中的错误字段值也将是未定义的。
17.2.336.4. 注意事项
这些函数仅在C语言中可用;它们在任何Fortran MPI接口中都不可用。