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