1b45d2f2cSJed Brown #include <petsc-private/fortranimpl.h> 2c6db04a5SJed Brown #include <petscdm.h> 3*665c2dedSJed Brown #include <petscviewer.h> 49a42bb27SBarry Smith 59a42bb27SBarry Smith #if defined(PETSC_HAVE_FORTRAN_CAPS) 624e7ded0SBarry Smith #define dmview_ DMVIEW 7e727c939SJed Brown #define dmcreatecoloring_ DMCREATECOLORING 8950540a4SJed Brown #define dmcreatematrix_ DMCREATEMATRIX 95b400853SJed Brown #define dmsetoptionsprefix_ DMSETOPTIONSPREFIX 109a42bb27SBarry Smith #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE) 1124e7ded0SBarry Smith #define dmview_ dmview 12e727c939SJed Brown #define dmcreatecoloring_ dmcreatecoloring 13950540a4SJed Brown #define dmcreatematrix_ dmcreatematrix 145b400853SJed Brown #define dmsetoptionsprefix_ dmsetoptionsprefix 159a42bb27SBarry Smith #endif 169a42bb27SBarry Smith 179a42bb27SBarry Smith EXTERN_C_BEGIN 18e727c939SJed Brown void PETSC_STDCALL dmcreatecoloring_(DM *dm,ISColoringType *ctype, CHAR mtype PETSC_MIXED_LEN(len),ISColoring *coloring, int *ierr PETSC_END_LEN(len)) 19d1e2c406SBarry Smith { 20d1e2c406SBarry Smith char *t; 21d1e2c406SBarry Smith 22d1e2c406SBarry Smith FIXCHAR(mtype,len,t); 23e727c939SJed Brown *ierr = DMCreateColoring(*dm,*ctype,t,coloring); 24d1e2c406SBarry Smith FREECHAR(mtype,t); 25d1e2c406SBarry Smith } 26d1e2c406SBarry Smith EXTERN_C_END 27d1e2c406SBarry Smith 28d1e2c406SBarry Smith EXTERN_C_BEGIN 2924e7ded0SBarry Smith void PETSC_STDCALL dmview_(DM *da,PetscViewer *vin,PetscErrorCode *ierr) 309a42bb27SBarry Smith { 319a42bb27SBarry Smith PetscViewer v; 329a42bb27SBarry Smith PetscPatchDefaultViewers_Fortran(vin,v); 339a42bb27SBarry Smith *ierr = DMView(*da,v); 349a42bb27SBarry Smith } 35564755cdSBarry Smith EXTERN_C_END 36950540a4SJed Brown 37950540a4SJed Brown EXTERN_C_BEGIN 38950540a4SJed Brown void PETSC_STDCALL dmcreatematrix_(DM *dm,CHAR mat_type PETSC_MIXED_LEN(len),Mat *J,PetscErrorCode *ierr PETSC_END_LEN(len)) 39950540a4SJed Brown { 40950540a4SJed Brown char *t; 41950540a4SJed Brown FIXCHAR(mat_type,len,t); 42950540a4SJed Brown *ierr = DMCreateMatrix(*dm,t,J); 43950540a4SJed Brown FREECHAR(mat_type,t); 44950540a4SJed Brown } 45950540a4SJed Brown EXTERN_C_END 465b400853SJed Brown 475b400853SJed Brown PETSC_EXTERN_C void PETSC_STDCALL dmsetoptionsprefix_(DM *dm,CHAR prefix PETSC_MIXED_LEN(len), PetscErrorCode *ierr PETSC_END_LEN(len)) 485b400853SJed Brown { 495b400853SJed Brown char *t; 505b400853SJed Brown 515b400853SJed Brown FIXCHAR(prefix,len,t); 525b400853SJed Brown *ierr = DMSetOptionsPrefix(*dm,t); 535b400853SJed Brown FREECHAR(prefix,t); 545b400853SJed Brown } 55