xref: /petsc/src/ksp/pc/impls/bjacobi/ftn-custom/zbjacobif.c (revision de0953f6d6ad485896eb559f4659155d6f5b2e7a)
1c6db04a5SJed Brown #include <private/fortranimpl.h>
2c6db04a5SJed Brown #include <petscksp.h>
3e54e4138SSatish Balay 
4e54e4138SSatish Balay #if defined(PETSC_HAVE_FORTRAN_CAPS)
5e54e4138SSatish Balay #define pcbjacobigetsubksp_        PCBJACOBIGETSUBKSP
6e54e4138SSatish Balay #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE)
7e54e4138SSatish Balay #define pcbjacobigetsubksp_        pcbjacobigetsubksp
8e54e4138SSatish Balay #endif
9e54e4138SSatish Balay 
10e54e4138SSatish Balay EXTERN_C_BEGIN
11e54e4138SSatish Balay void PETSC_STDCALL pcbjacobigetsubksp_(PC *pc,PetscInt *n_local,PetscInt *first_local,KSP *ksp,PetscErrorCode *ierr)
12e54e4138SSatish Balay {
13e54e4138SSatish Balay   KSP *tksp;
14e54e4138SSatish Balay   PetscInt  i,nloc;
15e54e4138SSatish Balay   CHKFORTRANNULLINTEGER(n_local);
16e54e4138SSatish Balay   CHKFORTRANNULLINTEGER(first_local);
17*de0953f6SBarry Smith   *ierr = PCBJacobiGetSubKSP(*pc,&nloc,first_local,&tksp); if (*ierr) return;
18e54e4138SSatish Balay   if (n_local) *n_local = nloc;
1912c1112bSBarry Smith   CHKFORTRANNULLOBJECT(ksp);
2012c1112bSBarry Smith   if (ksp) {
21e54e4138SSatish Balay     for (i=0; i<nloc; i++){
22e54e4138SSatish Balay       ksp[i] = tksp[i];
23e54e4138SSatish Balay     }
24e54e4138SSatish Balay   }
2512c1112bSBarry Smith }
26e54e4138SSatish Balay 
27e54e4138SSatish Balay EXTERN_C_END
28