xref: /petsc/src/sys/objects/ftn-custom/zinheritf.c (revision 5b6bfdb9644f185dbf5e5a09b808ec241507e1e7)
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 PETSC_STDCALL petscobjectcompose_(PetscObject *obj, char *name PETSC_MIXED_LEN(len), PetscObject *ptr, PetscErrorCode *ierr PETSC_END_LEN(len))
26 {
27   char *n1;
28 
29   FIXCHAR(name,len,n1);
30   CHKFORTRANNULLOBJECTDEREFERENCE(ptr);
31   *ierr = PetscObjectCompose(*obj, n1, *ptr);
32   FREECHAR(name,n1);
33 }
34 
35 PETSC_EXTERN void PETSC_STDCALL petscobjectquery_(PetscObject *obj, char *name PETSC_MIXED_LEN(len), PetscObject *ptr, PetscErrorCode *ierr PETSC_END_LEN(len))
36 {
37   char *n1;
38 
39   FIXCHAR(name,len,n1);
40   *ierr = PetscObjectQuery(*obj, n1, ptr);
41   FREECHAR(name,n1);
42 }
43 
44 PETSC_EXTERN void  petscobjectreference_(PetscObject *obj,PetscErrorCode *ierr)
45 {
46   *ierr = PetscObjectReference(*obj);
47 }
48 
49 PETSC_EXTERN void  petscobjectdereference_(PetscObject *obj,PetscErrorCode *ierr)
50 {
51   *ierr = PetscObjectDereference(*obj);
52 }
53 
54 PETSC_EXTERN void  petscobjectgetreference_(PetscObject *obj,PetscInt *ref,PetscErrorCode *ierr)
55 {
56   *ierr = PetscObjectGetReference(*obj,ref);
57 }
58