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