xref: /petsc/src/ksp/pc/impls/fieldsplit/ftn-custom/zfieldsplitf.c (revision 2fa5cd679192b9b390e47ae2d0650965e6b1d9fa)
11193e19dSBarry Smith #include <petsc-private/fortranimpl.h>
21193e19dSBarry Smith #include <petscksp.h>
31193e19dSBarry Smith 
41193e19dSBarry Smith #if defined(PETSC_HAVE_FORTRAN_CAPS)
51193e19dSBarry Smith #define pcfieldsplitgetsubksp_        PCFIELDSPLITGETSUBKSP
61193e19dSBarry Smith #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE)
71193e19dSBarry Smith #define pcfieldsplitgetsubksp_        pcfieldsplitgetsubksp
81193e19dSBarry Smith #endif
91193e19dSBarry Smith 
101193e19dSBarry Smith EXTERN_C_BEGIN
111193e19dSBarry Smith void PETSC_STDCALL pcfieldsplitgetsubksp_(PC *pc,PetscInt *n_local,KSP *ksp,PetscErrorCode *ierr)
121193e19dSBarry Smith {
131193e19dSBarry Smith   KSP      *tksp;
141193e19dSBarry Smith   PetscInt i,nloc;
151193e19dSBarry Smith   CHKFORTRANNULLINTEGER(n_local);
161193e19dSBarry Smith   *ierr = PCFieldSplitGetSubKSP(*pc,&nloc,&tksp); if (*ierr) return;
171193e19dSBarry Smith   if (n_local) *n_local = nloc;
181193e19dSBarry Smith   CHKFORTRANNULLOBJECT(ksp);
191193e19dSBarry Smith   if (ksp) {
20*2fa5cd67SKarl Rupp     for (i=0; i<nloc; i++) ksp[i] = tksp[i];
211193e19dSBarry Smith   }
221193e19dSBarry Smith }
231193e19dSBarry Smith 
241193e19dSBarry Smith EXTERN_C_END
25