xref: /petsc/src/dm/interface/ftn-custom/zdmf.c (revision 8cc058d9cd56c1ccb3be12a47760ddfc446aaffc)
1b45d2f2cSJed Brown #include <petsc-private/fortranimpl.h>
2c6db04a5SJed Brown #include <petscdm.h>
3665c2dedSJed Brown #include <petscviewer.h>
49a42bb27SBarry Smith 
59a42bb27SBarry Smith #if defined(PETSC_HAVE_FORTRAN_CAPS)
624e7ded0SBarry Smith #define dmview_                      DMVIEW
7e727c939SJed Brown #define dmcreatecoloring_            DMCREATECOLORING
8950540a4SJed Brown #define dmcreatematrix_              DMCREATEMATRIX
95b400853SJed Brown #define dmsetoptionsprefix_          DMSETOPTIONSPREFIX
109a42bb27SBarry Smith #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE)
1124e7ded0SBarry Smith #define dmview_                      dmview
12e727c939SJed Brown #define dmcreatecoloring_            dmcreatecoloring
13950540a4SJed Brown #define dmcreatematrix_              dmcreatematrix
145b400853SJed Brown #define dmsetoptionsprefix_          dmsetoptionsprefix
159a42bb27SBarry Smith #endif
169a42bb27SBarry Smith 
17*8cc058d9SJed Brown PETSC_EXTERN 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 
26*8cc058d9SJed Brown PETSC_EXTERN void PETSC_STDCALL dmview_(DM *da,PetscViewer *vin,PetscErrorCode *ierr)
279a42bb27SBarry Smith {
289a42bb27SBarry Smith   PetscViewer v;
299a42bb27SBarry Smith   PetscPatchDefaultViewers_Fortran(vin,v);
309a42bb27SBarry Smith   *ierr = DMView(*da,v);
319a42bb27SBarry Smith }
32950540a4SJed Brown 
33*8cc058d9SJed Brown PETSC_EXTERN void PETSC_STDCALL dmcreatematrix_(DM *dm,CHAR mat_type PETSC_MIXED_LEN(len),Mat *J,PetscErrorCode *ierr PETSC_END_LEN(len))
34950540a4SJed Brown {
35950540a4SJed Brown   char *t;
36950540a4SJed Brown   FIXCHAR(mat_type,len,t);
37950540a4SJed Brown   *ierr = DMCreateMatrix(*dm,t,J);
38950540a4SJed Brown   FREECHAR(mat_type,t);
39950540a4SJed Brown }
405b400853SJed Brown 
41*8cc058d9SJed Brown PETSC_EXTERN void PETSC_STDCALL dmsetoptionsprefix_(DM *dm,CHAR prefix PETSC_MIXED_LEN(len), PetscErrorCode *ierr PETSC_END_LEN(len))
425b400853SJed Brown {
435b400853SJed Brown   char *t;
445b400853SJed Brown 
455b400853SJed Brown   FIXCHAR(prefix,len,t);
465b400853SJed Brown   *ierr = DMSetOptionsPrefix(*dm,t);
475b400853SJed Brown   FREECHAR(prefix,t);
485b400853SJed Brown }
49