# Convert Fortran value (passed as pointer) to MPI object in C
toptr MPI_Comm MPI_Comm_f2c(*(%s))
toptr MPI_Request MPI_Request_f2c(*(%s))
toptr MPI_Group MPI_Group_f2c(*(%s))
toptr MPI_Op MPI_Op_f2c(*(%s))
toptr MPI_Datatype MPI_Type_f2c(*(%s))
toptr MPI_Win MPI_Win_f2c(*(%s))
toptr MPI_File MPI_File_f2c(*(%s))
toptr MPI_Info MPI_Info_f2c(*(%s))
toptr MPI_Message MPI_Message_f2c(*(%s))
toptr MPI_Errhandler MPI_Errhander_f2c(*(%s))

fromptr MPI_Comm MPI_Comm_c2f(%s)
fromptr MPI_Request MPI_Request_c2f(%s)
fromptr MPI_Group MPI_Group_c2f(%s)
fromptr MPI_Op MPI_Op_c2f(%s)
fromptr MPI_Datatype MPI_Type_c2f(%s)
fromptr MPI_Win MPI_Win_c2f(%s)
fromptr MPI_File MPI_File_c2f(%s)
fromptr MPI_Info MPI_Info_c2f(%s)
fromptr MPI_Message MPI_Message_c2f(%s)
fromptr MPI_Errhandler MPI_Errhander_c2f(%s)

# Representation of an MPI object in Fortran
declptr MPI_Comm MPI_Fint
declptr MPI_Request MPI_Fint
declptr MPI_Group MPI_Fint
declptr MPI_Op MPI_Fint
declptr MPI_Datatype MPI_Fint
declptr MPI_Win MPI_Fint
declptr MPI_File MPI_Fint
declptr MPI_Info MPI_Fint
declptr MPI_Message MPI_Fint
declptr MPI_Errhandler MPI_Fint
#
nativeptr MPI_Comm
nativeptr MPI_Request
nativeptr MPI_Group
nativeptr MPI_Op
nativeptr MPI_File
nativeptr MPI_Win
nativeptr MPI_Datatype
nativeptr MPI_Errhandler
nativeptr MPI_Info
nativeptr MPI_Message
native MPI_Aint integer (kind=MPI_ADDRESS_KIND)
native MPI_Offset integer (kind=MPI_OFFSET_KIND)
native MPI_Count integer (kind=MPI_COUNT_KIND)
native MPI_Fint integer
# Status is an array, but not an implied pointer
native MPI_Status
#
parm errparm ierr
parm errparmlocal __ierr
