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: }