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