MPIX_Op_create_x:
    user_fn_x: FUNCTION, func_type=MPIX_User_function_x, [user defined function with extra_state]
    destructor_fn: FUNCTION, func_type=MPIX_Destructor_function, [callback when op is freed]
    commute: LOGICAL, suppress=lis_paren, [true if commutative; false otherwise.]
    extra_state: EXTRA_STATE, [extra state]
    op: OPERATION, direction=out, [operation]
    .desc: Creates a user-defined reduction op with an extra_state

MPIX_Comm_create_errhandler_x:
    comm_errhandler_fn_x: FUNCTION, func_type=MPIX_Comm_errhandler_function_x, [user defined error handling procedure with extra_state]
    destructor_fn: FUNCTION, func_type=MPIX_Destructor_function, [callback when op is freed]
    extra_state: EXTRA_STATE, [extra state]
    errhandler: ERRHANDLER, direction=out
    .desc: Creates an MPI-style communicator errorhandler with an extra_state

MPIX_Win_create_errhandler_x:
    comm_errhandler_fn_x: FUNCTION, func_type=MPIX_Win_errhandler_function_x, [user defined error handling procedure with extra_state]
    destructor_fn: FUNCTION, func_type=MPIX_Destructor_function, [callback when op is freed]
    extra_state: EXTRA_STATE, [extra state]
    errhandler: ERRHANDLER, direction=out
    .desc: Creates an MPI-style window errorhandler with an extra_state

MPIX_File_create_errhandler_x:
    comm_errhandler_fn_x: FUNCTION, func_type=MPIX_File_errhandler_function_x, [user defined error handling procedure with extra_state]
    destructor_fn: FUNCTION, func_type=MPIX_Destructor_function, [callback when op is freed]
    extra_state: EXTRA_STATE, [extra state]
    errhandler: ERRHANDLER, direction=out
    .desc: Creates an MPI-style file errorhandler with an extra_state

MPIX_Session_create_errhandler_x:
    comm_errhandler_fn_x: FUNCTION, func_type=MPIX_Session_errhandler_function_x, [user defined error handling procedure with extra_state]
    destructor_fn: FUNCTION, func_type=MPIX_Destructor_function, [callback when op is freed]
    extra_state: EXTRA_STATE, [extra state]
    errhandler: ERRHANDLER, direction=out
    .desc: Creates an MPI-style session errorhandler with an extra_state

MPIX_Comm_create_keyval_x:
    comm_copy_attr_fn: FUNCTION_SMALL, func_type=MPI_Comm_copy_attr_function, [copy callback function for comm_keyval]
    comm_delete_attr_fn: FUNCTION_SMALL, func_type=MPI_Comm_delete_attr_function, [delete callback function for comm_keyval]
    destructor_fn: FUNCTION, func_type=MPIX_Destructor_function, [callback when keyval is freed]
    comm_keyval: KEYVAL, direction=out, [key value for future access]
    extra_state: EXTRA_STATE, [extra state for callback function]

MPIX_Type_create_keyval_x:
    type_copy_attr_fn: FUNCTION_SMALL, func_type=MPI_Type_copy_attr_function, [copy callback function for type_keyval]
    type_delete_attr_fn: FUNCTION_SMALL, func_type=MPI_Type_delete_attr_function, [delete callback function for type_keyval]
    destructor_fn: FUNCTION, func_type=MPIX_Destructor_function, [callback when keyval is freed]
    type_keyval: KEYVAL, direction=out, [key value for future access]
    extra_state: EXTRA_STATE, [extra state for callback function]

MPIX_Win_create_keyval_x:
    win_copy_attr_fn: FUNCTION_SMALL, func_type=MPI_Win_copy_attr_function, [copy callback function for win_keyval]
    win_delete_attr_fn: FUNCTION_SMALL, func_type=MPI_Win_delete_attr_function, [delete callback function for win_keyval]
    destructor_fn: FUNCTION, func_type=MPIX_Destructor_function, [callback when keyval is freed]
    win_keyval: KEYVAL, direction=out, [key value for future access]
    extra_state: EXTRA_STATE, [extra state for callback function]

MPIX_Comm_get_attr_as_fortran:
    comm: COMMUNICATOR, [communicator to which the attribute is attached]
    comm_keyval: KEYVAL, [key value]
    attribute_val: ATTRIBUTE_VAL, direction=out, [attribute value, unless flag = false]
    flag: LOGICAL, direction=out, [false if no attribute is associated with the key]

MPIX_Comm_set_attr_as_fortran:
    comm: COMMUNICATOR, direction=in, [communicator to which attribute will be attached]
    comm_keyval: KEYVAL, [key value]
    attribute_val: ATTRIBUTE_VAL, [attribute value]

MPIX_Type_get_attr_as_fortran:
    datatype: DATATYPE, [datatype to which the attribute is attached]
    type_keyval: KEYVAL, [key value]
    attribute_val: ATTRIBUTE_VAL, direction=out, [attribute value, unless flag = false]
    flag: LOGICAL, direction=out, [false if no attribute is associated with the key]

MPIX_Type_set_attr_as_fortran:
    datatype: DATATYPE, direction=in, [datatype to which attribute will be attached]
    type_keyval: KEYVAL, [key value]
    attribute_val: ATTRIBUTE_VAL, [attribute value]

MPIX_Win_get_attr_as_fortran:
    win: WINDOW, [window to which the attribute is attached]
    win_keyval: KEYVAL, [key value]
    attribute_val: ATTRIBUTE_VAL, direction=out, [attribute value, unless flag = false]
    flag: LOGICAL, direction=out, [false if no attribute is associated with the key]

MPIX_Win_set_attr_as_fortran:
    win: WINDOW, direction=in, [window to which attribute will be attached]
    win_keyval: KEYVAL, [key value]
    attribute_val: ATTRIBUTE_VAL, [attribute value]
