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