Actual source code: zvecregf.c

  1: #include <petsc/private/fortranimpl.h>
  2: #include <petscvec.h>
  3: #if defined(PETSC_HAVE_FORTRAN_CAPS)
  4:   #define vecsettype_ VECSETTYPE
  5:   #define vecgettype_ VECGETTYPE
  6: #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE)
  7:   #define vecsettype_ vecsettype
  8:   #define vecgettype_ vecgettype
  9: #endif

 11: PETSC_EXTERN void vecsettype_(Vec *x, char *type_name, PetscErrorCode *ierr, PETSC_FORTRAN_CHARLEN_T len)
 12: {
 13:   char *t;

 15:   FIXCHAR(type_name, len, t);
 16:   *ierr = VecSetType(*x, t);
 17:   if (*ierr) return;
 18:   FREECHAR(type_name, t);
 19: }

 21: PETSC_EXTERN void vecgettype_(Vec *vv, char *name, PetscErrorCode *ierr, PETSC_FORTRAN_CHARLEN_T len)
 22: {
 23:   const char *tname;

 25:   *ierr = VecGetType(*vv, &tname);
 26:   *ierr = PetscStrncpy(name, tname, len);
 27:   FIXRETURNCHAR(PETSC_TRUE, name, len);
 28: }