xref: /petsc/src/dm/interface/ftn-custom/zdmf.c (revision 5b40085332399105b215f9435d2c3e3c22ff0462)
1b45d2f2cSJed Brown #include <petsc-private/fortranimpl.h>
2c6db04a5SJed Brown #include <petscdm.h>
39a42bb27SBarry Smith 
49a42bb27SBarry Smith #if defined(PETSC_HAVE_FORTRAN_CAPS)
524e7ded0SBarry Smith #define dmview_                      DMVIEW
6e727c939SJed Brown #define dmcreatecoloring_            DMCREATECOLORING
7950540a4SJed Brown #define dmcreatematrix_              DMCREATEMATRIX
8*5b400853SJed Brown #define dmsetoptionsprefix_          DMSETOPTIONSPREFIX
99a42bb27SBarry Smith #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE)
1024e7ded0SBarry Smith #define dmview_                      dmview
11e727c939SJed Brown #define dmcreatecoloring_            dmcreatecoloring
12950540a4SJed Brown #define dmcreatematrix_              dmcreatematrix
13*5b400853SJed Brown #define dmsetoptionsprefix_          dmsetoptionsprefix
149a42bb27SBarry Smith #endif
159a42bb27SBarry Smith 
169a42bb27SBarry Smith EXTERN_C_BEGIN
17e727c939SJed Brown void PETSC_STDCALL  dmcreatecoloring_(DM *dm,ISColoringType *ctype, CHAR mtype PETSC_MIXED_LEN(len),ISColoring *coloring, int *ierr PETSC_END_LEN(len))
18d1e2c406SBarry Smith {
19d1e2c406SBarry Smith   char *t;
20d1e2c406SBarry Smith 
21d1e2c406SBarry Smith   FIXCHAR(mtype,len,t);
22e727c939SJed Brown   *ierr = DMCreateColoring(*dm,*ctype,t,coloring);
23d1e2c406SBarry Smith   FREECHAR(mtype,t);
24d1e2c406SBarry Smith }
25d1e2c406SBarry Smith EXTERN_C_END
26d1e2c406SBarry Smith 
27d1e2c406SBarry Smith EXTERN_C_BEGIN
2824e7ded0SBarry Smith void PETSC_STDCALL dmview_(DM *da,PetscViewer *vin,PetscErrorCode *ierr)
299a42bb27SBarry Smith {
309a42bb27SBarry Smith   PetscViewer v;
319a42bb27SBarry Smith   PetscPatchDefaultViewers_Fortran(vin,v);
329a42bb27SBarry Smith   *ierr = DMView(*da,v);
339a42bb27SBarry Smith }
34564755cdSBarry Smith EXTERN_C_END
35950540a4SJed Brown 
36950540a4SJed Brown EXTERN_C_BEGIN
37950540a4SJed Brown void PETSC_STDCALL dmcreatematrix_(DM *dm,CHAR mat_type PETSC_MIXED_LEN(len),Mat *J,PetscErrorCode *ierr PETSC_END_LEN(len))
38950540a4SJed Brown {
39950540a4SJed Brown   char *t;
40950540a4SJed Brown   FIXCHAR(mat_type,len,t);
41950540a4SJed Brown   *ierr = DMCreateMatrix(*dm,t,J);
42950540a4SJed Brown   FREECHAR(mat_type,t);
43950540a4SJed Brown }
44950540a4SJed Brown EXTERN_C_END
45*5b400853SJed Brown 
46*5b400853SJed Brown PETSC_EXTERN_C void PETSC_STDCALL dmsetoptionsprefix_(DM *dm,CHAR prefix PETSC_MIXED_LEN(len), PetscErrorCode *ierr PETSC_END_LEN(len))
47*5b400853SJed Brown {
48*5b400853SJed Brown   char *t;
49*5b400853SJed Brown 
50*5b400853SJed Brown   FIXCHAR(prefix,len,t);
51*5b400853SJed Brown   *ierr = DMSetOptionsPrefix(*dm,t);
52*5b400853SJed Brown   FREECHAR(prefix,t);
53*5b400853SJed Brown }
54