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