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 #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE) 13 #define petscobjectcompose_ petscobjectcompose 14 #define petscobjectquery_ petscobjectquery 15 #endif 16 17 /* ---------------------------------------------------------------------*/ 18 19 PETSC_EXTERN void PETSC_STDCALL petscobjectcompose_(PetscObject *obj, char *name PETSC_MIXED_LEN(len), PetscObject *ptr, PetscErrorCode *ierr PETSC_END_LEN(len)) 20 { 21 char *n1; 22 23 FIXCHAR(name,len,n1); 24 CHKFORTRANNULLOBJECTDEREFERENCE(ptr); 25 *ierr = PetscObjectCompose(*obj, n1, *ptr); 26 FREECHAR(name,n1); 27 } 28 29 PETSC_EXTERN void PETSC_STDCALL petscobjectquery_(PetscObject *obj, char *name PETSC_MIXED_LEN(len), PetscObject *ptr, PetscErrorCode *ierr PETSC_END_LEN(len)) 30 { 31 char *n1; 32 33 FIXCHAR(name,len,n1); 34 *ierr = PetscObjectQuery(*obj, n1, ptr); 35 FREECHAR(name,n1); 36 } 37