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