16dd63270SBarry Smith#if defined(PETSC_HAVE_FORTRAN_TYPE_STAR) 2*02c639afSMartin Diehl interface 36dd63270SBarry Smith subroutine DMDASNESSetFunctionLocal(dm, imode, func, ctx, ierr) 4fe66ebccSMartin Diehl use, intrinsic :: ISO_C_binding 56dd63270SBarry Smith import tSNES, tDM, eInsertMode 66dd63270SBarry Smith DM, intent(in) :: dm 76dd63270SBarry Smith InsertMode, intent(in) :: imode 86dd63270SBarry Smith external :: func 96dd63270SBarry Smith type(*) :: ctx 106dd63270SBarry Smith PetscErrorCode, intent(out) :: ierr 116dd63270SBarry Smith end subroutine DMDASNESSetFunctionLocal 12*02c639afSMartin Diehl end interface 136dd63270SBarry Smith 14*02c639afSMartin Diehl interface 156dd63270SBarry Smith subroutine DMSNESSetFunctionLocal(dm, func, ctx, ierr) 16fe66ebccSMartin Diehl use, intrinsic :: ISO_C_binding 176dd63270SBarry Smith import tSNES, tDM 186dd63270SBarry Smith DM, intent(in) :: dm 196dd63270SBarry Smith external :: func 206dd63270SBarry Smith type(*) :: ctx 216dd63270SBarry Smith PetscErrorCode, intent(out) :: ierr 226dd63270SBarry Smith end subroutine DMSNESSetFunctionLocal 23*02c639afSMartin Diehl end interface 246dd63270SBarry Smith 256dd63270SBarry Smith interface SNESSetFunction 266dd63270SBarry Smith subroutine SNESSetFunction(a, b, c, d, z) 27fe66ebccSMartin Diehl use, intrinsic :: ISO_C_binding 286dd63270SBarry Smith import tSNES, tVec 296dd63270SBarry Smith SNES a 306dd63270SBarry Smith Vec b 316dd63270SBarry Smith external c 326dd63270SBarry Smith type(*) d 336dd63270SBarry Smith PetscErrorCode z 346dd63270SBarry Smith end subroutine 35*02c639afSMartin Diehl end interface 366dd63270SBarry Smith 376dd63270SBarry Smith interface SNESSetJacobian 386dd63270SBarry Smith subroutine SNESSetJacobian(a, b, c, d, e, z) 39fe66ebccSMartin Diehl use, intrinsic :: ISO_C_binding 406dd63270SBarry Smith import tSNES, tMat 416dd63270SBarry Smith SNES a 426dd63270SBarry Smith Mat b 436dd63270SBarry Smith Mat c 446dd63270SBarry Smith external d 456dd63270SBarry Smith type(*) e 466dd63270SBarry Smith PetscErrorCode z 476dd63270SBarry Smith end subroutine 48*02c639afSMartin Diehl end interface 496dd63270SBarry Smith 506dd63270SBarry Smith interface SNESGetJacobian 516dd63270SBarry Smith subroutine SNESGetJacobian(a, b, c, d, e, z) 52fe66ebccSMartin Diehl use, intrinsic :: ISO_C_binding 536dd63270SBarry Smith import tSNES, tMat 546dd63270SBarry Smith SNES a 556dd63270SBarry Smith Mat b 566dd63270SBarry Smith Mat c 576dd63270SBarry Smith external d 586dd63270SBarry Smith type(*) e 596dd63270SBarry Smith PetscErrorCode z 606dd63270SBarry Smith end subroutine 61*02c639afSMartin Diehl end interface 626dd63270SBarry Smith 63*02c639afSMartin Diehl interface 646dd63270SBarry Smith subroutine DMSNESSetJacobianLocal(dm, func, ctx, ierr) 65fe66ebccSMartin Diehl use, intrinsic :: ISO_C_binding 666dd63270SBarry Smith import tSNES, tDM 676dd63270SBarry Smith DM, intent(in) :: dm 686dd63270SBarry Smith external :: func 696dd63270SBarry Smith type(*) :: ctx 706dd63270SBarry Smith PetscErrorCode, intent(out) :: ierr 716dd63270SBarry Smith end subroutine DMSNESSetJacobianLocal 72*02c639afSMartin Diehl end interface 736dd63270SBarry Smith 74*02c639afSMartin Diehl interface 756dd63270SBarry Smith subroutine SNESSetConvergenceTest(snes, func, cctx, destroy, ierr) 76fe66ebccSMartin Diehl use, intrinsic :: ISO_C_binding 776dd63270SBarry Smith import tSNES 786dd63270SBarry Smith SNES :: snes 796dd63270SBarry Smith external :: func 806dd63270SBarry Smith type(*) :: cctx 816dd63270SBarry Smith external :: destroy 826dd63270SBarry Smith PetscErrorCode, intent(out) :: ierr 836dd63270SBarry Smith end subroutine 84*02c639afSMartin Diehl end interface 856dd63270SBarry Smith#endif 866dd63270SBarry Smith 87*02c639afSMartin Diehl interface 886dd63270SBarry Smith subroutine SNESRestoreConvergenceHistory(snes, r, its, na, ierr) 89fe66ebccSMartin Diehl use, intrinsic :: ISO_C_binding 906dd63270SBarry Smith import tSNES 916dd63270SBarry Smith SNES snes 926dd63270SBarry Smith PetscInt na 936dd63270SBarry Smith PetscReal, pointer :: r(:) 946dd63270SBarry Smith PetscInt, pointer :: its(:) 956dd63270SBarry Smith PetscErrorCode, intent(out) :: ierr 966dd63270SBarry Smith end subroutine 97*02c639afSMartin Diehl end interface 98