17.2.98. MPI_File_c2f

MPI_Comm_f2c, MPI_Comm_c2f, MPI_File_f2c, MPI_File_c2f, MPI_Info_f2c, MPI_Info_c2f, MPI_Message_f2c, MPI_Message_c2f, MPI_Op_f2c, MPI_Op_c2f, MPI_Request_f2c, MPI_Request_c2f, MPI_Type_f2c, MPI_Type_c2f, MPI_Win_f2c, MPI_Win_c2f - 将C语言句柄转换为Fortran句柄,或反之。

17.2.98.1. 语法

17.2.98.1.1. C语法

#include <mpi.h>

MPI_Comm MPI_Comm_f2c(MPI_Fint comm)
MPI_Fint MPI_Comm_c2f(MPI_Comm comm)

MPI_File MPI_File_f2c(MPI_Fint file)
MPI_Fint MPI_File_c2f(MPI_File file)

MPI_Group MPI_Group_f2c(MPI Fint group)
MPI_Fint MPI_Group_c2f(MPI Group group)

MPI_Info MPI_Info_f2c(MPI_Fint info)
MPI_Fint MPI_Info_c2f(MPI_Info info)

MPI_Message MPI_Message_f2c(MPI_Fint message)
MPI_Fint MPI_Message_c2f(MPI_Message message)

MPI_Op MPI_Op_f2c(MPI_Fint op)
MPI_Fint MPI_Op_c2f(MPI_Op op)

MPI_Request MPI_Request_f2c(MPI_Fint request)
MPI_Fint MPI_Request_c2f(MPI_Request request)

MPI_Datatype MPI_Type_f2c(MPI_Fint datatype)
MPI_Fint MPI_Type_c2f(MPI_Datatype datatype)

MPI_Win MPI_Win_f2c(MPI_Fint win)
MPI_Fint MPI_Win_c2f(MPI_Win win)

17.2.98.2. 描述

Fortran与C语言之间通过显式的C包装器传递句柄,将Fortran句柄转换为C句柄。Fortran无法直接访问C句柄。C语言中提供了MPI_Fint类型定义,其整数大小与Fortran的INTEGER相匹配;通常,MPI_Fint等同于int。C语言中提供了句柄转换函数,用于将Fortran句柄(即整型)转换为C句柄,反之亦然。

例如,如果comm是Fortran中有效的通信器句柄,那么MPI_Comm_f2c会返回该通信器对应的有效C语言句柄;如果comm = MPI_COMM_NULL(Fortran值),则MPI_Comm_f2c返回空C语言句柄;如果comm是无效的Fortran句柄,那么MPI_Comm_f2c将返回无效的C语言句柄。

17.2.98.3. 注意

此函数不会返回错误值。因此,在调用MPI_Init之前或MPI_Finalize之后调用它的结果是未定义的。