xref: /petsc/src/vec/is/utils/ftn-custom/zvsectionisf.c (revision 70a7d78aacfbd24b2e31399a3d8e056944bb7de3)
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