1b5a418daSToby Isaac #include <petsc/private/fortranimpl.h> 2b5a418daSToby Isaac #include <petscis.h> 3b5a418daSToby Isaac #include <petscviewer.h> 4b5a418daSToby Isaac 5b5a418daSToby Isaac #if defined(PETSC_HAVE_FORTRAN_CAPS) 6b5a418daSToby Isaac #define petscsectiongetpointsyms_ PETSCSECTIONGETPOINTSYMS 7b5a418daSToby Isaac #define petscsectionrestorepointsyms_ PETSCSECTIONRESTOREPOINTSYMS 8b5a418daSToby Isaac #define petscsectiongetfieldpointsyms_ PETSCSECTIONGETFIELDPOINTSYMS 9b5a418daSToby Isaac #define petscsectionrestorefieldpointsyms_ PETSCSECTIONRESTOREFIELDPOINTSYMS 10*a1535ed2SVaclav Hapla #define petscsectionview_ PETSCSECTIONVIEW 11*a1535ed2SVaclav Hapla #define petscsectiongetfieldname_ PETSCSECTIONGETFIELDNAME 12*a1535ed2SVaclav Hapla #define petscsectionsetfieldname_ PETSCSECTIONSETFIELDNAME 13b5a418daSToby Isaac #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE) 14b5a418daSToby Isaac #define petscsectiongetpointsyms_ petscsectiongetpointsyms 15b5a418daSToby Isaac #define petscsectionrestorepointsyms_ petscsectionrestorepointsyms 16b5a418daSToby Isaac #define petscsectiongetfieldpointsyms_ petscsectiongetfieldpointsyms 17b5a418daSToby Isaac #define petscsectionrestorefieldpointsyms_ petscsectionrestorefieldpointsyms 18*a1535ed2SVaclav Hapla #define petscsectionview_ petscsectionview 19*a1535ed2SVaclav Hapla #define petscsectiongetfieldname_ petscsectiongetfieldname 20*a1535ed2SVaclav Hapla #define petscsectionsetfieldname_ petscsectionsetfieldname 21b5a418daSToby Isaac #endif 22b5a418daSToby Isaac 23b5a418daSToby Isaac PETSC_EXTERN void PETSC_STDCALL petscsectiongetpointsyms_(PetscSection section,PetscInt *numPoints, PetscInt *points, PetscInt ***perms, PetscScalar ***rots, int *__ierr ){ 24b5a418daSToby Isaac *__ierr = PetscSectionGetPointSyms(section,*numPoints,points,(const PetscInt ***)perms,(const PetscScalar ***)rots); 25b5a418daSToby Isaac } 26b5a418daSToby Isaac PETSC_EXTERN void PETSC_STDCALL petscsectionrestorepointsyms_(PetscSection section,PetscInt *numPoints, PetscInt *points, PetscInt ***perms, PetscScalar ***rots, int *__ierr ){ 27b5a418daSToby Isaac *__ierr = PetscSectionRestorePointSyms(section,*numPoints,points,(const PetscInt ***)perms,(const PetscScalar ***)rots); 28b5a418daSToby Isaac } 29b5a418daSToby Isaac PETSC_EXTERN void PETSC_STDCALL petscsectiongetfieldpointsyms_(PetscSection section,PetscInt *field,PetscInt *numPoints, PetscInt *points, PetscInt ***perms, PetscScalar ***rots, int *__ierr ){ 30b5a418daSToby Isaac *__ierr = PetscSectionGetFieldPointSyms(section,*field,*numPoints,points,(const PetscInt ***)perms,(const PetscScalar ***)rots); 31b5a418daSToby Isaac } 32b5a418daSToby Isaac PETSC_EXTERN void PETSC_STDCALL petscsectionrestorefieldpointsyms_(PetscSection section,PetscInt *field,PetscInt *numPoints, PetscInt *points, PetscInt ***perms, PetscScalar ***rots, int *__ierr ){ 33b5a418daSToby Isaac *__ierr = PetscSectionRestoreFieldPointSyms(section,*field,*numPoints,points,(const PetscInt ***)perms,(const PetscScalar ***)rots); 34b5a418daSToby Isaac } 35*a1535ed2SVaclav Hapla 36*a1535ed2SVaclav Hapla PETSC_EXTERN void PETSC_STDCALL petscsectionview_(PetscSection *s, PetscViewer *vin, PetscErrorCode *ierr) 37*a1535ed2SVaclav Hapla { 38*a1535ed2SVaclav Hapla PetscViewer v; 39*a1535ed2SVaclav Hapla 40*a1535ed2SVaclav Hapla PetscPatchDefaultViewers_Fortran(vin, v); 41*a1535ed2SVaclav Hapla *ierr = PetscSectionView(*s, v); 42*a1535ed2SVaclav Hapla } 43*a1535ed2SVaclav Hapla 44*a1535ed2SVaclav Hapla PETSC_EXTERN void PETSC_STDCALL petscsectiongetfieldname_(PetscSection *s, PetscInt *field, char* name PETSC_MIXED_LEN(len), PetscErrorCode *ierr PETSC_END_LEN(len)) 45*a1535ed2SVaclav Hapla { 46*a1535ed2SVaclav Hapla const char *fname; 47*a1535ed2SVaclav Hapla 48*a1535ed2SVaclav Hapla *ierr = PetscSectionGetFieldName(*s, *field, &fname);if (*ierr) return; 49*a1535ed2SVaclav Hapla *ierr = PetscStrncpy(name, fname, len); 50*a1535ed2SVaclav Hapla FIXRETURNCHAR(PETSC_TRUE,name,len); 51*a1535ed2SVaclav Hapla } 52*a1535ed2SVaclav Hapla 53*a1535ed2SVaclav Hapla PETSC_EXTERN void PETSC_STDCALL petscsectionsetfieldname_(PetscSection *s, PetscInt *field, char* name PETSC_MIXED_LEN(len), PetscErrorCode *ierr PETSC_END_LEN(len)) 54*a1535ed2SVaclav Hapla { 55*a1535ed2SVaclav Hapla char *f; 56*a1535ed2SVaclav Hapla 57*a1535ed2SVaclav Hapla FIXCHAR(name, len, f); 58*a1535ed2SVaclav Hapla *ierr = PetscSectionSetFieldName(*s, *field, f);if (*ierr) return; 59*a1535ed2SVaclav Hapla FREECHAR(name, f); 60*a1535ed2SVaclav Hapla } 61