Actual source code: zinheritf.c

  1: /*
  2:   This file contains Fortran stubs for Options routines.
  3:   These are not generated automatically since they require passing strings
  4:   between Fortran and C.
  5: */

  7: #include <petsc/private/fortranimpl.h>

  9: #if defined(PETSC_HAVE_FORTRAN_CAPS)
 10:   #define petscobjectcompose_      PETSCOBJECTCOMPOSE
 11:   #define petscobjectquery_        PETSCOBJECTQUERY
 12:   #define petscobjectreference_    PETSCOBJECTREFERENCE
 13:   #define petscobjectdereference_  PETSCOBJECTDEREFERENCE
 14:   #define petscobjectgetreference_ PETSCOBJECTGETREFERENCE
 15: #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE)
 16:   #define petscobjectcompose_      petscobjectcompose
 17:   #define petscobjectquery_        petscobjectquery
 18:   #define petscobjectreference_    petscobjectreference
 19:   #define petscobjectdereference_  petscobjectdereference
 20:   #define petscobjectgetreference_ petscobjectgetreference
 21: #endif

 23: /* ---------------------------------------------------------------------*/

 25: PETSC_EXTERN void petscobjectcompose_(PetscObject *obj, char *name, PetscObject *ptr, PetscErrorCode *ierr, PETSC_FORTRAN_CHARLEN_T len)
 26: {
 27:   char *n1;

 29:   FIXCHAR(name, len, n1);
 30:   *ierr = PetscObjectCompose(*obj, n1, *ptr);
 31:   if (*ierr) return;
 32:   FREECHAR(name, n1);
 33: }

 35: PETSC_EXTERN void petscobjectquery_(PetscObject *obj, char *name, PetscObject *ptr, PetscErrorCode *ierr, PETSC_FORTRAN_CHARLEN_T len)
 36: {
 37:   char *n1;

 39:   FIXCHAR(name, len, n1);
 40:   *ierr = PetscObjectQuery(*obj, n1, ptr);
 41:   if (*ierr) return;
 42:   FREECHAR(name, n1);
 43: }

 45: PETSC_EXTERN void petscobjectreference_(PetscObject *obj, PetscErrorCode *ierr)
 46: {
 47:   *ierr = PetscObjectReference(*obj);
 48: }

 50: PETSC_EXTERN void petscobjectdereference_(PetscObject *obj, PetscErrorCode *ierr)
 51: {
 52:   *ierr = PetscObjectDereference(*obj);
 53: }

 55: PETSC_EXTERN void petscobjectgetreference_(PetscObject *obj, PetscInt *ref, PetscErrorCode *ierr)
 56: {
 57:   *ierr = PetscObjectGetReference(*obj, ref);
 58: }