1 #include <petsc/private/fortranimpl.h> 2 #include <petscksp.h> 3 4 #if defined(PETSC_HAVE_FORTRAN_CAPS) 5 #define pcbjacobigetsubksp1_ PCBJACOBIGETSUBKSP1 6 #define pcbjacobigetsubksp2_ PCBJACOBIGETSUBKSP2 7 #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE) 8 #define pcbjacobigetsubksp1_ pcbjacobigetsubksp1 9 #define pcbjacobigetsubksp2_ pcbjacobigetsubksp2 10 #endif 11 12 PETSC_EXTERN void pcbjacobigetsubksp1_(PC *pc,PetscInt *n_local,PetscInt *first_local,KSP *ksp,PetscErrorCode *ierr) 13 { 14 KSP *tksp; 15 PetscInt i,nloc; 16 CHKFORTRANNULLINTEGER(n_local); 17 CHKFORTRANNULLINTEGER(first_local); 18 *ierr = PCBJacobiGetSubKSP(*pc,&nloc,first_local,&tksp); if (*ierr) return; 19 if (n_local) *n_local = nloc; 20 CHKFORTRANNULLOBJECT(ksp); 21 if (ksp) { 22 for (i=0; i<nloc; i++) { 23 ksp[i] = tksp[i]; 24 } 25 } 26 } 27 PETSC_EXTERN void pcbjacobigetsubksp2_(PC *pc,PetscInt *n_local,PetscInt *first_local,KSP *ksp,PetscErrorCode *ierr) 28 { 29 pcbjacobigetsubksp1_(pc,n_local,first_local,ksp,ierr); 30 } 31