Actual source code: zplexsectionf90.c

  1: #include <petsc/private/fortranimpl.h>
  2: #include <petscdmplex.h>
  3: #include <petsc/private/f90impl.h>

  5: #if defined(PETSC_HAVE_FORTRAN_CAPS)
  6:   #define dmplexcreatesection_ DMPLEXCREATESECTION
  7: #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE) && !defined(FORTRANDOUBLEUNDERSCORE)
  8:   #define dmplexcreatesection_ dmplexcreatesection
  9: #endif

 11: PETSC_EXTERN void dmplexcreatesection_(DM *dm, F90Array1d *ptrL, F90Array1d *ptrC, F90Array1d *ptrD, PetscInt *numBC, F90Array1d *ptrF, F90Array1d *ptrCp, F90Array1d *ptrP, IS *perm, PetscSection *section, int *ierr PETSC_F90_2PTR_PROTO(ptrLd) PETSC_F90_2PTR_PROTO(ptrCd) PETSC_F90_2PTR_PROTO(ptrDd) PETSC_F90_2PTR_PROTO(ptrFd) PETSC_F90_2PTR_PROTO(ptrCpd) PETSC_F90_2PTR_PROTO(ptrPd))
 12: {
 13:   DMLabel  *labels = NULL;
 14:   PetscInt *numComp;
 15:   PetscInt *numDof;
 16:   PetscInt *bcField;
 17:   IS       *bcComps;
 18:   IS       *bcPoints;

 20:   *ierr = F90Array1dAccess(ptrL, MPIU_FORTRANADDR, (void **)&labels PETSC_F90_2PTR_PARAM(ptrLd));
 21:   if (*ierr) return;
 22:   *ierr = F90Array1dAccess(ptrC, MPIU_INT, (void **)&numComp PETSC_F90_2PTR_PARAM(ptrCd));
 23:   if (*ierr) return;
 24:   *ierr = F90Array1dAccess(ptrD, MPIU_INT, (void **)&numDof PETSC_F90_2PTR_PARAM(ptrDd));
 25:   if (*ierr) return;
 26:   *ierr = F90Array1dAccess(ptrF, MPIU_INT, (void **)&bcField PETSC_F90_2PTR_PARAM(ptrFd));
 27:   if (*ierr) return;
 28:   *ierr = F90Array1dAccess(ptrCp, MPIU_FORTRANADDR, (void **)&bcComps PETSC_F90_2PTR_PARAM(ptrCpd));
 29:   if (*ierr) return;
 30:   *ierr = F90Array1dAccess(ptrP, MPIU_FORTRANADDR, (void **)&bcPoints PETSC_F90_2PTR_PARAM(ptrPd));
 31:   if (*ierr) return;
 32:   *ierr = DMPlexCreateSection(*dm, labels, numComp, numDof, *numBC, bcField, bcComps, bcPoints, *perm, section);
 33: }