Actual source code: zmatnullf.c

  1: #include <petsc/private/fortranimpl.h>
  2: #include <petscmat.h>
  3: #include <petscviewer.h>

  5: #if defined(PETSC_HAVE_FORTRAN_CAPS)
  6:   #define matnullspacegetvecs_ MATNULLSPACEGETVECS
  7: #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE)
  8:   #define matnullspacegetvecs_ matnullspacegetvecs
  9: #endif

 11: PETSC_EXTERN void matnullspacegetvecs_(MatNullSpace *sp, PetscBool *HAS_CNST, PetscInt *N, Vec *VECS, PetscErrorCode *ierr)
 12: {
 13:   PetscBool  has_cnst;
 14:   PetscInt   i, n;
 15:   const Vec *vecs;

 17:   CHKFORTRANNULLBOOL(HAS_CNST);
 18:   CHKFORTRANNULLINTEGER(N);
 19:   CHKFORTRANNULLOBJECT(VECS);

 21:   *ierr = MatNullSpaceGetVecs(*sp, &has_cnst, &n, &vecs);

 23:   if (HAS_CNST) { *HAS_CNST = has_cnst; }
 24:   if (N) { *N = n; }
 25:   if (VECS) {
 26:     for (i = 0; i < n; i++) { VECS[i] = vecs[i]; }
 27:   }
 28: }