xref: /petsc/src/dm/interface/ftn-custom/zdmf.c (revision 2205254efee3a00a594e5e2a3a70f74dcb40bc03)
1 #include <petsc-private/fortranimpl.h>
2 #include <petscdm.h>
3 
4 #if defined(PETSC_HAVE_FORTRAN_CAPS)
5 #define dmview_                      DMVIEW
6 #define dmcreatecoloring_            DMCREATECOLORING
7 #define dmcreatematrix_              DMCREATEMATRIX
8 #define dmsetoptionsprefix_          DMSETOPTIONSPREFIX
9 #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE)
10 #define dmview_                      dmview
11 #define dmcreatecoloring_            dmcreatecoloring
12 #define dmcreatematrix_              dmcreatematrix
13 #define dmsetoptionsprefix_          dmsetoptionsprefix
14 #endif
15 
16 EXTERN_C_BEGIN
17 void PETSC_STDCALL  dmcreatecoloring_(DM *dm,ISColoringType *ctype, CHAR mtype PETSC_MIXED_LEN(len),ISColoring *coloring, int *ierr PETSC_END_LEN(len))
18 {
19   char *t;
20 
21   FIXCHAR(mtype,len,t);
22   *ierr = DMCreateColoring(*dm,*ctype,t,coloring);
23   FREECHAR(mtype,t);
24 }
25 EXTERN_C_END
26 
27 EXTERN_C_BEGIN
28 void PETSC_STDCALL dmview_(DM *da,PetscViewer *vin,PetscErrorCode *ierr)
29 {
30   PetscViewer v;
31   PetscPatchDefaultViewers_Fortran(vin,v);
32   *ierr = DMView(*da,v);
33 }
34 EXTERN_C_END
35 
36 EXTERN_C_BEGIN
37 void PETSC_STDCALL dmcreatematrix_(DM *dm,CHAR mat_type PETSC_MIXED_LEN(len),Mat *J,PetscErrorCode *ierr PETSC_END_LEN(len))
38 {
39   char *t;
40   FIXCHAR(mat_type,len,t);
41   *ierr = DMCreateMatrix(*dm,t,J);
42   FREECHAR(mat_type,t);
43 }
44 EXTERN_C_END
45 
46 PETSC_EXTERN_C void PETSC_STDCALL dmsetoptionsprefix_(DM *dm,CHAR prefix PETSC_MIXED_LEN(len), PetscErrorCode *ierr PETSC_END_LEN(len))
47 {
48   char *t;
49 
50   FIXCHAR(prefix,len,t);
51   *ierr = DMSetOptionsPrefix(*dm,t);
52   FREECHAR(prefix,t);
53 }
54