xref: /petsc/src/sys/classes/bag/ftn-custom/zbagf90.c (revision b0dcfd164860a975c76f90dabf1036901aab1c4e)
1 #include <petsc/private/ftnimpl.h>
2 #include <petscbag.h>
3 #include <petsc/private/bagimpl.h>
4 #include <petscviewer.h>
5 
6 #if defined(PETSC_HAVE_FORTRAN_CAPS)
7   #define petscbagregisterstring_ PETSCBAGREGISTERSTRING
8 #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE)
9   #define petscbagregisterstring_ petscbagregisterstring
10 #endif
11 
petscbagregisterstring_(PetscBag * bag,char * p,char * cs1,char * s1,char * s2,PetscErrorCode * ierr,PETSC_FORTRAN_CHARLEN_T pl,PETSC_FORTRAN_CHARLEN_T cl1,PETSC_FORTRAN_CHARLEN_T l1,PETSC_FORTRAN_CHARLEN_T l2)12 PETSC_EXTERN void petscbagregisterstring_(PetscBag *bag, char *p, char *cs1, char *s1, char *s2, PetscErrorCode *ierr, PETSC_FORTRAN_CHARLEN_T pl, PETSC_FORTRAN_CHARLEN_T cl1, PETSC_FORTRAN_CHARLEN_T l1, PETSC_FORTRAN_CHARLEN_T l2)
13 {
14   char *t1, *t2, *ct1;
15   FIXCHAR(s1, l1, t1);
16   FIXCHAR(cs1, cl1, ct1);
17   FIXCHAR(s2, l2, t2);
18   *ierr = PetscBagRegisterString(*bag, (void *)p, (PetscInt)pl, ct1, t1, t2);
19   if (*ierr) return;
20   FREECHAR(cs1, ct1);
21   FREECHAR(s1, t1);
22   FREECHAR(s2, t2);
23 }
24