Actual source code: zlinesearchshellf.c
1: #include <petsc/private/fortranimpl.h>
2: #include <petscsnes.h>
4: #if defined(PETSC_HAVE_FORTRAN_CAPS)
5: #define sneslinesearchshellsetapply_ SNESLINESEARCHSHELLSETAPPLY
6: #define sneslinesearchshellgetapply_ SNESLINESEARCHSHELLGETAPPLY
7: #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE)
8: #define sneslinesearchshellsetapply_ sneslinesearchshellsetapply
9: #define sneslinesearchshellgetapply_ sneslinesearchshellgetapply
10: #endif
12: static PetscErrorCode oursneslinesearchshellfunction(SNESLineSearch linesearch, void *ctx)
13: {
14: PetscFunctionBegin;
15: PetscCallFortranVoidFunction((*(void (*)(SNESLineSearch *, void *, PetscErrorCode *))(((PetscObject)linesearch)->fortran_func_pointers[0]))(&linesearch, ctx, &ierr));
16: PetscFunctionReturn(PETSC_SUCCESS);
17: }
19: PETSC_EXTERN void sneslinesearchshellsetapply_(SNESLineSearch *linesearch, void (*func)(SNESLineSearch *, void *, PetscErrorCode *), void *ctx, PetscErrorCode *ierr)
20: {
21: PetscObjectAllocateFortranPointers(*linesearch, 3);
22: ((PetscObject)*linesearch)->fortran_func_pointers[0] = (PetscVoidFn *)func;
24: *ierr = SNESLineSearchShellSetApply(*linesearch, oursneslinesearchshellfunction, ctx);
25: }
27: PETSC_EXTERN void sneslinesearchshellgetapply_(SNESLineSearch *linesearch, void *func, void **ctx, PetscErrorCode *ierr)
28: {
29: CHKFORTRANNULLINTEGER(ctx);
30: *ierr = SNESLineSearchShellGetApply(*linesearch, NULL, ctx);
31: }