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 */ 6 7 #include <petsc/private/fortranimpl.h> 8 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 22 23 /* ---------------------------------------------------------------------*/ 24 25 PETSC_EXTERN void petscobjectcompose_(PetscObject *obj, char *name, PetscObject *ptr, PetscErrorCode *ierr,PETSC_FORTRAN_CHARLEN_T len) 26 { 27 char *n1; 28 29 FIXCHAR(name,len,n1); 30 *ierr = PetscObjectCompose(*obj, n1, *ptr);if (*ierr) return; 31 FREECHAR(name,n1); 32 } 33 34 PETSC_EXTERN void petscobjectquery_(PetscObject *obj, char *name, PetscObject *ptr, PetscErrorCode *ierr,PETSC_FORTRAN_CHARLEN_T len) 35 { 36 char *n1; 37 38 FIXCHAR(name,len,n1); 39 *ierr = PetscObjectQuery(*obj, n1, ptr);if (*ierr) return; 40 FREECHAR(name,n1); 41 } 42 43 PETSC_EXTERN void petscobjectreference_(PetscObject *obj,PetscErrorCode *ierr) 44 { 45 *ierr = PetscObjectReference(*obj); 46 } 47 48 PETSC_EXTERN void petscobjectdereference_(PetscObject *obj,PetscErrorCode *ierr) 49 { 50 *ierr = PetscObjectDereference(*obj); 51 } 52 53 PETSC_EXTERN void petscobjectgetreference_(PetscObject *obj,PetscInt *ref,PetscErrorCode *ierr) 54 { 55 *ierr = PetscObjectGetReference(*obj,ref); 56 } 57