102c639afSMartin Diehlinterface 26dd63270SBarry Smith subroutine DMDASNESSetFunctionLocal(dm, imode, func, ctx, ierr) 3fe66ebccSMartin Diehl use, intrinsic :: ISO_C_binding 46dd63270SBarry Smith import tSNES, tDM, eInsertMode 56dd63270SBarry Smith DM, intent(in) :: dm 66dd63270SBarry Smith InsertMode, intent(in) :: imode 76dd63270SBarry Smith external :: func 86dd63270SBarry Smith type(*) :: ctx 96dd63270SBarry Smith PetscErrorCode, intent(out) :: ierr 10*3d1372b2SMartin Diehl end subroutine 116dd63270SBarry Smith 126dd63270SBarry Smith subroutine DMSNESSetFunctionLocal(dm, func, ctx, ierr) 13fe66ebccSMartin Diehl use, intrinsic :: ISO_C_binding 146dd63270SBarry Smith import tSNES, tDM 156dd63270SBarry Smith DM, intent(in) :: dm 166dd63270SBarry Smith external :: func 176dd63270SBarry Smith type(*) :: ctx 186dd63270SBarry Smith PetscErrorCode, intent(out) :: ierr 19*3d1372b2SMartin Diehl end subroutine 206dd63270SBarry Smith 216dd63270SBarry Smith subroutine SNESSetFunction(a, b, c, d, z) 22fe66ebccSMartin Diehl use, intrinsic :: ISO_C_binding 236dd63270SBarry Smith import tSNES, tVec 246dd63270SBarry Smith SNES a 256dd63270SBarry Smith Vec b 266dd63270SBarry Smith external c 276dd63270SBarry Smith type(*) d 286dd63270SBarry Smith PetscErrorCode z 296dd63270SBarry Smith end subroutine 306dd63270SBarry Smith 316dd63270SBarry Smith subroutine SNESSetJacobian(a, b, c, d, e, z) 32fe66ebccSMartin Diehl use, intrinsic :: ISO_C_binding 336dd63270SBarry Smith import tSNES, tMat 346dd63270SBarry Smith SNES a 356dd63270SBarry Smith Mat b 366dd63270SBarry Smith Mat c 376dd63270SBarry Smith external d 386dd63270SBarry Smith type(*) e 396dd63270SBarry Smith PetscErrorCode z 406dd63270SBarry Smith end subroutine 416dd63270SBarry Smith 426dd63270SBarry Smith subroutine SNESGetJacobian(a, b, c, d, e, z) 43fe66ebccSMartin Diehl use, intrinsic :: ISO_C_binding 446dd63270SBarry Smith import tSNES, tMat 456dd63270SBarry Smith SNES a 466dd63270SBarry Smith Mat b 476dd63270SBarry Smith Mat c 486dd63270SBarry Smith external d 496dd63270SBarry Smith type(*) e 506dd63270SBarry Smith PetscErrorCode z 516dd63270SBarry Smith end subroutine 526dd63270SBarry Smith 536dd63270SBarry Smith subroutine DMSNESSetJacobianLocal(dm, func, ctx, ierr) 54fe66ebccSMartin Diehl use, intrinsic :: ISO_C_binding 556dd63270SBarry Smith import tSNES, tDM 566dd63270SBarry Smith DM, intent(in) :: dm 576dd63270SBarry Smith external :: func 586dd63270SBarry Smith type(*) :: ctx 596dd63270SBarry Smith PetscErrorCode, intent(out) :: ierr 60*3d1372b2SMartin Diehl end subroutine 616dd63270SBarry Smith 626dd63270SBarry Smith subroutine SNESSetConvergenceTest(snes, func, cctx, destroy, ierr) 63fe66ebccSMartin Diehl use, intrinsic :: ISO_C_binding 646dd63270SBarry Smith import tSNES 656dd63270SBarry Smith SNES :: snes 666dd63270SBarry Smith external :: func 676dd63270SBarry Smith type(*) :: cctx 686dd63270SBarry Smith external :: destroy 696dd63270SBarry Smith PetscErrorCode, intent(out) :: ierr 706dd63270SBarry Smith end subroutine 716dd63270SBarry Smith 726dd63270SBarry Smith subroutine SNESRestoreConvergenceHistory(snes, r, its, na, ierr) 73fe66ebccSMartin Diehl use, intrinsic :: ISO_C_binding 746dd63270SBarry Smith import tSNES 756dd63270SBarry Smith SNES snes 766dd63270SBarry Smith PetscInt na 776dd63270SBarry Smith PetscReal, pointer :: r(:) 786dd63270SBarry Smith PetscInt, pointer :: its(:) 796dd63270SBarry Smith PetscErrorCode, intent(out) :: ierr 806dd63270SBarry Smith end subroutine 8102c639afSMartin Diehlend interface 82*3d1372b2SMartin Diehl 83*3d1372b2SMartin Diehl#if defined(_WIN32) && defined(PETSC_USE_SHARED_LIBRARIES) 84*3d1372b2SMartin Diehl!DEC$ ATTRIBUTES DLLEXPORT::DMDASNESSetFunctionLocal 85*3d1372b2SMartin Diehl!DEC$ ATTRIBUTES DLLEXPORT::DMSNESSetFunctionLocal 86*3d1372b2SMartin Diehl!DEC$ ATTRIBUTES DLLEXPORT::SNESSetFunction 87*3d1372b2SMartin Diehl!DEC$ ATTRIBUTES DLLEXPORT::SNESSetJacobian 88*3d1372b2SMartin Diehl!DEC$ ATTRIBUTES DLLEXPORT::SNESGetJacobian 89*3d1372b2SMartin Diehl!DEC$ ATTRIBUTES DLLEXPORT::DMSNESSetJacobianLocal 90*3d1372b2SMartin Diehl!DEC$ ATTRIBUTES DLLEXPORT::SNESSetConvergenceTest 91*3d1372b2SMartin Diehl!DEC$ ATTRIBUTES DLLEXPORT::SNESRestoreConvergenceHistory 92*3d1372b2SMartin Diehl#endif 93