Actual source code: zvscat.c
1: #include <petsc/private/fortranimpl.h>
2: #include <petscvec.h>
3: #if defined(PETSC_HAVE_FORTRAN_CAPS)
4: #define vecscatterremap_ VECSCATTERREMAP
5: #define vecscatterview_ VECSCATTERVIEW
6: #define vecscattercreatetoall_ VECSCATTERCREATETOALL
7: #define vecscattercreatetozero_ VECSCATTERCREATETOZERO
8: #define vecscatterdestroy_ VECSCATTERDESTROY
9: #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE)
10: #define vecscatterremap_ vecscatterremap
11: #define vecscatterview_ vecscatterview
12: #define vecscattercreatetoall_ vecscattercreatetoall
13: #define vecscattercreatetozero_ vecscattercreatetozero
14: #define vecscatterdestroy_ vecscatterdestroy
15: #endif
17: PETSC_EXTERN void vecscattercreatetoall_(Vec *vin, VecScatter *ctx, Vec *vout, PetscErrorCode *ierr)
18: {
19: CHKFORTRANNULLOBJECT(vout);
20: *ierr = VecScatterCreateToAll(*vin, ctx, vout);
21: }
23: PETSC_EXTERN void vecscattercreatetozero_(Vec *vin, VecScatter *ctx, Vec *vout, PetscErrorCode *ierr)
24: {
25: CHKFORTRANNULLOBJECT(vout);
26: *ierr = VecScatterCreateToZero(*vin, ctx, vout);
27: }
29: PETSC_EXTERN void vecscatterview_(VecScatter *vecscatter, PetscViewer *viewer, PetscErrorCode *ierr)
30: {
31: PetscViewer v;
32: PetscPatchDefaultViewers_Fortran(viewer, v);
33: *ierr = VecScatterView(*vecscatter, v);
34: }
36: PETSC_EXTERN void vecscatterremap_(VecScatter *scat, PetscInt *rto, PetscInt *rfrom, PetscErrorCode *ierr)
37: {
38: CHKFORTRANNULLINTEGER(rto);
39: CHKFORTRANNULLINTEGER(rfrom);
40: *ierr = VecScatterRemap(*scat, rto, rfrom);
41: }
43: PETSC_EXTERN void vecscatterdestroy_(VecScatter *x, int *ierr)
44: {
45: PETSC_FORTRAN_OBJECT_F_DESTROYED_TO_C_NULL(x);
46: *ierr = VecScatterDestroy(x);
47: if (*ierr) return;
48: PETSC_FORTRAN_OBJECT_C_NULL_TO_F_DESTROYED(x);
49: }