
        Interface DMCompositeGetEntries
          Subroutine DMCompositeGetEntries1(dm1, d1, ierr)
            use, intrinsic :: ISO_C_binding
            import tDM
            DM dm1
            DM d1
            PetscErrorCode ierr
          End Subroutine

          Subroutine DMCompositeGetEntries2(dm1, d1, d2, ierr)
            use, intrinsic :: ISO_C_binding
            import tDM
            DM dm1
            DM d1, d2
            PetscErrorCode ierr
          End Subroutine

          Subroutine DMCompositeGetEntries3(dm1, d1, d2, d3, ierr)
            use, intrinsic :: ISO_C_binding
            import tDM
            DM dm1
            DM d1, d2, d3
            PetscErrorCode ierr
          End Subroutine

          Subroutine DMCompositeGetEntries4(dm1, d1, d2, d3, d4, ierr)
            use, intrinsic :: ISO_C_binding
            import tDM
            DM dm1
            PetscInt d2, d4
            DM d1, d3
            PetscErrorCode ierr
          End Subroutine
        End Interface

        Interface DMCompositeRestoreGlobalISs
          Subroutine DMCompositeRestoreGlobalISs(dm, iss, ierr)
            use, intrinsic :: ISO_C_binding
            import tDM, tIS
            DM dm
            IS, pointer :: iss(:)
            PetscErrorCode ierr
          End Subroutine
        End Interface

        Interface DMCompositeRestoreLocalISs
          Subroutine DMCompositeRestoreLocalISs(dm, iss, ierr)
            use, intrinsic :: ISO_C_binding
            import tDM, tIS
            DM dm
            IS, pointer :: iss(:)
            PetscErrorCode ierr
          End Subroutine
        End Interface
