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