xref: /petsc/src/dm/interface/ftn-custom/zdmf.c (revision 665c2ded495bb9782a7454dcfef3abf1536c3670)
1b45d2f2cSJed Brown #include <petsc-private/fortranimpl.h>
2c6db04a5SJed Brown #include <petscdm.h>
3*665c2dedSJed 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 
179a42bb27SBarry Smith EXTERN_C_BEGIN
18e727c939SJed Brown void PETSC_STDCALL  dmcreatecoloring_(DM *dm,ISColoringType *ctype, CHAR mtype PETSC_MIXED_LEN(len),ISColoring *coloring, int *ierr PETSC_END_LEN(len))
19d1e2c406SBarry Smith {
20d1e2c406SBarry Smith   char *t;
21d1e2c406SBarry Smith 
22d1e2c406SBarry Smith   FIXCHAR(mtype,len,t);
23e727c939SJed Brown   *ierr = DMCreateColoring(*dm,*ctype,t,coloring);
24d1e2c406SBarry Smith   FREECHAR(mtype,t);
25d1e2c406SBarry Smith }
26d1e2c406SBarry Smith EXTERN_C_END
27d1e2c406SBarry Smith 
28d1e2c406SBarry Smith EXTERN_C_BEGIN
2924e7ded0SBarry Smith void PETSC_STDCALL dmview_(DM *da,PetscViewer *vin,PetscErrorCode *ierr)
309a42bb27SBarry Smith {
319a42bb27SBarry Smith   PetscViewer v;
329a42bb27SBarry Smith   PetscPatchDefaultViewers_Fortran(vin,v);
339a42bb27SBarry Smith   *ierr = DMView(*da,v);
349a42bb27SBarry Smith }
35564755cdSBarry Smith EXTERN_C_END
36950540a4SJed Brown 
37950540a4SJed Brown EXTERN_C_BEGIN
38950540a4SJed Brown void PETSC_STDCALL dmcreatematrix_(DM *dm,CHAR mat_type PETSC_MIXED_LEN(len),Mat *J,PetscErrorCode *ierr PETSC_END_LEN(len))
39950540a4SJed Brown {
40950540a4SJed Brown   char *t;
41950540a4SJed Brown   FIXCHAR(mat_type,len,t);
42950540a4SJed Brown   *ierr = DMCreateMatrix(*dm,t,J);
43950540a4SJed Brown   FREECHAR(mat_type,t);
44950540a4SJed Brown }
45950540a4SJed Brown EXTERN_C_END
465b400853SJed Brown 
475b400853SJed Brown PETSC_EXTERN_C void PETSC_STDCALL dmsetoptionsprefix_(DM *dm,CHAR prefix PETSC_MIXED_LEN(len), PetscErrorCode *ierr PETSC_END_LEN(len))
485b400853SJed Brown {
495b400853SJed Brown   char *t;
505b400853SJed Brown 
515b400853SJed Brown   FIXCHAR(prefix,len,t);
525b400853SJed Brown   *ierr = DMSetOptionsPrefix(*dm,t);
535b400853SJed Brown   FREECHAR(prefix,t);
545b400853SJed Brown }
55