xref: /petsc/src/dm/interface/ftn-custom/zdmf.c (revision 8cc058d9cd56c1ccb3be12a47760ddfc446aaffc)
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 PETSC_EXTERN 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 
26 PETSC_EXTERN void PETSC_STDCALL dmview_(DM *da,PetscViewer *vin,PetscErrorCode *ierr)
27 {
28   PetscViewer v;
29   PetscPatchDefaultViewers_Fortran(vin,v);
30   *ierr = DMView(*da,v);
31 }
32 
33 PETSC_EXTERN void PETSC_STDCALL dmcreatematrix_(DM *dm,CHAR mat_type PETSC_MIXED_LEN(len),Mat *J,PetscErrorCode *ierr PETSC_END_LEN(len))
34 {
35   char *t;
36   FIXCHAR(mat_type,len,t);
37   *ierr = DMCreateMatrix(*dm,t,J);
38   FREECHAR(mat_type,t);
39 }
40 
41 PETSC_EXTERN void PETSC_STDCALL dmsetoptionsprefix_(DM *dm,CHAR prefix PETSC_MIXED_LEN(len), PetscErrorCode *ierr PETSC_END_LEN(len))
42 {
43   char *t;
44 
45   FIXCHAR(prefix,len,t);
46   *ierr = DMSetOptionsPrefix(*dm,t);
47   FREECHAR(prefix,t);
48 }
49