xref: /petsc/src/sys/objects/ftn-custom/zinheritf.c (revision a69119a591a03a9d906b29c0a4e9802e4d7c9795)
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