Actual source code: zisltogf90.c
1: #include <petscis.h>
2: #include <petsc/private/ftnimpl.h>
4: #if defined(PETSC_HAVE_FORTRAN_CAPS)
5: #define islocaltoglobalmappinggetindices_ ISLOCALTOGLOBALMAPPINGGETINDICES
6: #define islocaltoglobalmappingrestoreindices_ ISLOCALTOGLOBALMAPPINGRESTOREINDICES
7: #define islocaltoglobalmappinggetblockindices_ ISLOCALTOGLOBALMAPPINGGETBLOCKINDICES
8: #define islocaltoglobalmappingrestoreblockindices_ ISLOCALTOGLOBALMAPPINGRESTOREBLOCKINDICES
9: #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE)
10: #define islocaltoglobalmappinggetindices_ islocaltoglobalmappinggetindices
11: #define islocaltoglobalmappingrestoreindices_ islocaltoglobalmappingrestoreindices
12: #define islocaltoglobalmappinggetblockindices_ islocaltoglobalmappinggetblockindices
13: #define islocaltoglobalmappingrestoreblockindices_ islocaltoglobalmappingrestoreblockindices
14: #endif
16: PETSC_EXTERN void islocaltoglobalmappinggetindices_(ISLocalToGlobalMapping *da, F90Array1d *indices, int *ierr PETSC_F90_2PTR_PROTO(ptrd))
17: {
18: const PetscInt *idx;
19: PetscInt n;
20: *ierr = ISLocalToGlobalMappingGetIndices(*da, &idx);
21: if (*ierr) return;
22: *ierr = ISLocalToGlobalMappingGetSize(*da, &n);
23: if (*ierr) return;
24: *ierr = F90Array1dCreate((void *)idx, MPIU_INT, 1, n, indices PETSC_F90_2PTR_PARAM(ptrd));
25: }
27: PETSC_EXTERN void islocaltoglobalmappingrestoreindices_(ISLocalToGlobalMapping *da, F90Array1d *ptr, int *ierr PETSC_F90_2PTR_PROTO(ptrd))
28: {
29: const PetscInt *fa;
31: *ierr = F90Array1dAccess(ptr, MPIU_INT, (void **)&fa PETSC_F90_2PTR_PARAM(ptrd));
32: if (*ierr) return;
33: *ierr = F90Array1dDestroy(ptr, MPIU_INT PETSC_F90_2PTR_PARAM(ptrd));
34: if (*ierr) return;
35: *ierr = ISLocalToGlobalMappingRestoreIndices(*da, &fa);
36: if (*ierr) return;
37: }
39: PETSC_EXTERN void islocaltoglobalmappinggetblockindices_(ISLocalToGlobalMapping *da, F90Array1d *indices, int *ierr PETSC_F90_2PTR_PROTO(ptrd))
40: {
41: const PetscInt *idx;
42: PetscInt n;
43: *ierr = ISLocalToGlobalMappingGetBlockIndices(*da, &idx);
44: if (*ierr) return;
45: *ierr = ISLocalToGlobalMappingGetSize(*da, &n);
46: if (*ierr) return;
47: *ierr = F90Array1dCreate((void *)idx, MPIU_INT, 1, n, indices PETSC_F90_2PTR_PARAM(ptrd));
48: }
50: PETSC_EXTERN void islocaltoglobalmappingrestoreblockindices_(ISLocalToGlobalMapping *da, F90Array1d *ptr, int *ierr PETSC_F90_2PTR_PROTO(ptrd))
51: {
52: const PetscInt *fa;
54: *ierr = F90Array1dAccess(ptr, MPIU_INT, (void **)&fa PETSC_F90_2PTR_PARAM(ptrd));
55: if (*ierr) return;
56: *ierr = F90Array1dDestroy(ptr, MPIU_INT PETSC_F90_2PTR_PARAM(ptrd));
57: if (*ierr) return;
58: *ierr = ISLocalToGlobalMappingRestoreBlockIndices(*da, &fa);
59: if (*ierr) return;
60: }