interface
  subroutine DMCompositeRestoreGlobalISs(dm, iss, ierr)
    use, intrinsic :: ISO_C_binding
    import tDM, tIS
    DM dm
    IS, pointer :: iss(:)
    PetscErrorCode, intent(out) :: ierr
  end subroutine

  subroutine DMCompositeRestoreLocalISs(dm, iss, ierr)
    use, intrinsic :: ISO_C_binding
    import tDM, tIS
    DM dm
    IS, pointer :: iss(:)
    PetscErrorCode, intent(out) :: ierr
  end subroutine
end interface

#if defined(_WIN32) && defined(PETSC_USE_SHARED_LIBRARIES)
!DEC$ ATTRIBUTES DLLEXPORT::DMCompositeRestoreGlobalISs
!DEC$ ATTRIBUTES DLLEXPORT::DMCompositeRestoreLocalISs
#endif

interface DMCompositeGetEntries
  subroutine DMCompositeGetEntries1(dm, d1, ierr)
    use, intrinsic :: ISO_C_binding
    import tDM
    DM dm
    DM d1
    PetscErrorCode, intent(out) :: ierr
  end subroutine
  subroutine DMCompositeGetEntries2(dm, d1, d2, ierr)
    use, intrinsic :: ISO_C_binding
    import tDM
    DM dm
    DM d1, d2
    PetscErrorCode, intent(out) :: ierr
  end subroutine
  subroutine DMCompositeGetEntries3(dm, d1, d2, d3, ierr)
    use, intrinsic :: ISO_C_binding
    import tDM
    DM dm
    DM d1, d2, d3
    PetscErrorCode, intent(out) :: ierr
  end subroutine
  subroutine DMCompositeGetEntries4(dm, d1, d2, d3, d4, ierr)
    use, intrinsic :: ISO_C_binding
    import tDM
    DM dm
    DM d1, d2, d4, d3
    PetscErrorCode, intent(out) :: ierr
  end subroutine
end interface DMCompositeGetEntries
