Actual source code: zplexcreate.c

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

  4: #if defined(PETSC_HAVE_FORTRAN_CAPS)
  5:   #define dmplexcreateboxmesh_  DMPLEXCREATEBOXMESH
  6:   #define dmplexcreatefromfile_ DMPLEXCREATEFROMFILE
  7: #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE) && !defined(FORTRANDOUBLEUNDERSCORE)
  8:   #define dmplexcreateboxmesh_  dmplexcreateboxmesh
  9:   #define dmplexcreatefromfile_ dmplexcreatefromfile
 10: #endif

 12: /* Definitions of Fortran Wrapper routines */

 14: PETSC_EXTERN void dmplexcreateboxmesh_(MPI_Fint *comm, PetscInt *dim, PetscBool *simplex, PetscInt faces[], PetscReal lower[], PetscReal upper[], DMBoundaryType periodicity[], PetscBool *interpolate, DM *dm, int *ierr)
 15: {
 16:   CHKFORTRANNULLINTEGER(faces);
 17:   CHKFORTRANNULLREAL(lower);
 18:   CHKFORTRANNULLREAL(upper);
 19:   CHKFORTRANNULLINTEGER(periodicity);
 20:   *ierr = DMPlexCreateBoxMesh(MPI_Comm_f2c(*(comm)), *dim, *simplex, faces, lower, upper, periodicity, *interpolate, dm);
 21: }

 23: PETSC_EXTERN void dmplexcreatefromfile_(MPI_Fint *comm, char *fname, char *pname, PetscBool *interpolate, DM *dm, int *ierr, PETSC_FORTRAN_CHARLEN_T lenfilename, PETSC_FORTRAN_CHARLEN_T lenplexname)
 24: {
 25:   char *filename;
 26:   char *plexname;

 28:   FIXCHAR(fname, lenfilename, filename);
 29:   FIXCHAR(pname, lenplexname, plexname);
 30:   *ierr = DMPlexCreateFromFile(MPI_Comm_f2c(*(comm)), filename, plexname, *interpolate, dm);
 31:   if (*ierr) return;
 32:   FREECHAR(fname, filename);
 33:   FREECHAR(pname, plexname);
 34: }