Actual source code: zvsectionisf.c

  1: #include <petsc/private/fortranimpl.h>
  2: #include <petscis.h>
  3: #include <petscsection.h>
  4: #include <petscviewer.h>

  6: #if defined(PETSC_HAVE_FORTRAN_CAPS)
  7:   #define petscsectiongetpointsyms_          PETSCSECTIONGETPOINTSYMS
  8:   #define petscsectionrestorepointsyms_      PETSCSECTIONRESTOREPOINTSYMS
  9:   #define petscsectiongetfieldpointsyms_     PETSCSECTIONGETFIELDPOINTSYMS
 10:   #define petscsectionrestorefieldpointsyms_ PETSCSECTIONRESTOREFIELDPOINTSYMS
 11:   #define petscsectionview_                  PETSCSECTIONVIEW
 12:   #define petscsectiongetfieldname_          PETSCSECTIONGETFIELDNAME
 13:   #define petscsectionsetfieldname_          PETSCSECTIONSETFIELDNAME
 14: #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE)
 15:   #define petscsectiongetpointsyms_          petscsectiongetpointsyms
 16:   #define petscsectionrestorepointsyms_      petscsectionrestorepointsyms
 17:   #define petscsectiongetfieldpointsyms_     petscsectiongetfieldpointsyms
 18:   #define petscsectionrestorefieldpointsyms_ petscsectionrestorefieldpointsyms
 19:   #define petscsectionview_                  petscsectionview
 20:   #define petscsectiongetfieldname_          petscsectiongetfieldname
 21:   #define petscsectionsetfieldname_          petscsectionsetfieldname
 22: #endif

 24: PETSC_EXTERN void petscsectiongetpointsyms_(PetscSection section, PetscInt *numPoints, PetscInt *points, PetscInt ***perms, PetscScalar ***rots, int *__ierr)
 25: {
 26:   *__ierr = PetscSectionGetPointSyms(section, *numPoints, points, (const PetscInt ***)perms, (const PetscScalar ***)rots);
 27: }
 28: PETSC_EXTERN void petscsectionrestorepointsyms_(PetscSection section, PetscInt *numPoints, PetscInt *points, PetscInt ***perms, PetscScalar ***rots, int *__ierr)
 29: {
 30:   *__ierr = PetscSectionRestorePointSyms(section, *numPoints, points, (const PetscInt ***)perms, (const PetscScalar ***)rots);
 31: }
 32: PETSC_EXTERN void petscsectiongetfieldpointsyms_(PetscSection section, PetscInt *field, PetscInt *numPoints, PetscInt *points, PetscInt ***perms, PetscScalar ***rots, int *__ierr)
 33: {
 34:   *__ierr = PetscSectionGetFieldPointSyms(section, *field, *numPoints, points, (const PetscInt ***)perms, (const PetscScalar ***)rots);
 35: }
 36: PETSC_EXTERN void petscsectionrestorefieldpointsyms_(PetscSection section, PetscInt *field, PetscInt *numPoints, PetscInt *points, PetscInt ***perms, PetscScalar ***rots, int *__ierr)
 37: {
 38:   *__ierr = PetscSectionRestoreFieldPointSyms(section, *field, *numPoints, points, (const PetscInt ***)perms, (const PetscScalar ***)rots);
 39: }

 41: PETSC_EXTERN void petscsectionview_(PetscSection *s, PetscViewer *vin, PetscErrorCode *ierr)
 42: {
 43:   PetscViewer v;

 45:   PetscPatchDefaultViewers_Fortran(vin, v);
 46:   *ierr = PetscSectionView(*s, v);
 47: }

 49: PETSC_EXTERN void petscsectiongetfieldname_(PetscSection *s, PetscInt *field, char *name, PetscErrorCode *ierr, PETSC_FORTRAN_CHARLEN_T len)
 50: {
 51:   const char *fname;

 53:   *ierr = PetscSectionGetFieldName(*s, *field, &fname);
 54:   if (*ierr) return;
 55:   *ierr = PetscStrncpy(name, fname, len);
 56:   FIXRETURNCHAR(PETSC_TRUE, name, len);
 57: }

 59: PETSC_EXTERN void petscsectionsetfieldname_(PetscSection *s, PetscInt *field, char *name, PetscErrorCode *ierr, PETSC_FORTRAN_CHARLEN_T len)
 60: {
 61:   char *f;

 63:   FIXCHAR(name, len, f);
 64:   *ierr = PetscSectionSetFieldName(*s, *field, f);
 65:   if (*ierr) return;
 66:   FREECHAR(name, f);
 67: }