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