1 #include <petsc/private/fortranimpl.h> 2 #include <petscksp.h> 3 4 #if defined(PETSC_HAVE_FORTRAN_CAPS) 5 #define pcgasmgetsubksp1_ PCGASMGETSUBKSP1 6 #define pcgasmgetsubksp2_ PCGASMGETSUBKSP2 7 #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE) 8 #define pcgasmgetsubksp1_ pcgasmgetsubksp1 9 #define pcgasmgetsubksp2_ pcgasmgetsubksp2 10 #endif 11 12 PETSC_EXTERN void pcgasmgetsubksp1_(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 CHKFORTRANNULLOBJECT(ksp); 19 *ierr = PCGASMGetSubKSP(*pc,&nloc,first_local,&tksp); 20 if (n_local) *n_local = nloc; 21 if (ksp) { 22 for (i=0; i<nloc; i++) ksp[i] = tksp[i]; 23 } 24 } 25 26 PETSC_EXTERN void pcgasmgetsubksp2_(PC *pc,PetscInt *n_local,PetscInt *first_local,KSP *ksp,PetscErrorCode *ierr) 27 { 28 pcgasmgetsubksp1_(pc,n_local,first_local,ksp,ierr); 29 } 30