-int smpi_type_c2f(MPI_Datatype datatype) {
- static int datatype_id = 0;
- char key[KEY_SIZE];
- xbt_dict_set(datatype_lookup, get_key(key, datatype_id), datatype, NULL);
- datatype_id++;
- return datatype_id-1;
-}
-
-MPI_Datatype smpi_type_f2c(int datatype) {
- smpi_init_fortran_types();
- char key[KEY_SIZE];
- return datatype >= 0 ? (MPI_Datatype)xbt_dict_get_or_null(datatype_lookup, get_key(key, datatype)): MPI_DATATYPE_NULL;
-}
-
-static void free_datatype(int datatype) {
- char key[KEY_SIZE];
- xbt_dict_remove(datatype_lookup, get_key(key, datatype));
-}
-
-int smpi_op_c2f(MPI_Op op) {
- static int op_id = 0;
- char key[KEY_SIZE];
- xbt_dict_set(op_lookup, get_key(key, op_id), op, NULL);
- op_id++;
- return op_id-1;
-}
-
-MPI_Op smpi_op_f2c(int op) {
- smpi_init_fortran_types();
- char key[KEY_SIZE];
- return op >= 0 ? (MPI_Op)xbt_dict_get_or_null(op_lookup, get_key(key, op)): MPI_OP_NULL;
-}
-
-static void free_op(int op) {
- char key[KEY_SIZE];
- xbt_dict_remove(op_lookup, get_key(key, op));
-}
-
-int smpi_win_c2f(MPI_Win win) {
- static int win_id = 0;
- char key[KEY_SIZE];
- xbt_dict_set(win_lookup, get_key(key, win_id), win, NULL);
- win_id++;
- return win_id-1;
-}
-
-MPI_Win smpi_win_f2c(int win) {
- smpi_init_fortran_types();
- char key[KEY_SIZE];
- return win >= 0 ? (MPI_Win)xbt_dict_get_or_null(win_lookup, get_key(key, win)) : MPI_WIN_NULL;
-}
-
-static void free_win(int win) {
- char key[KEY_SIZE];
- xbt_dict_remove(win_lookup, get_key(key, win));
-}
-
-int smpi_info_c2f(MPI_Info info) {
- static int info_id = 0;
- char key[KEY_SIZE];
- xbt_dict_set(info_lookup, get_key(key, info_id), info, NULL);
- info_id++;
- return info_id-1;
-}
-
-MPI_Info smpi_info_f2c(int info) {
- smpi_init_fortran_types();
- char key[KEY_SIZE];
- return info >= 0 ? (MPI_Info)xbt_dict_get_or_null(info_lookup, get_key(key, info)) : MPI_INFO_NULL;
-}
-
-static void free_info(int info) {
- char key[KEY_SIZE];
- xbt_dict_remove(info_lookup, get_key(key, info));
-}