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: }