
        Interface DMCompositeGetEntriesArray
        Subroutine DMCompositeGetEntries1(dm1, d,ierr)
          import tDM
          DM dm1
          DM d(*)
          PetscErrorCode ierr
        End Subroutine

        Interface DMCompositeGetEntries
        Subroutine DMCompositeGetEntries1(dm1, d1,ierr)
          import tDM
          DM dm1
          DM d1
          PetscErrorCode ierr
        End Subroutine

        Subroutine DMCompositeGetEntries2(dm1, d1,d2,ierr)
          import tDM
          DM dm1
          DM d1,d2
          PetscErrorCode ierr
        End Subroutine

        Subroutine DMCompositeGetEntries3(dm1, d1,d2,d3,ierr)
          import tDM
          DM dm1
          DM d1,d2,d3
          PetscErrorCode ierr
        End Subroutine

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

      Interface DMCompositeGetAccess
        Subroutine DMCompositeGetAccessvpvp(dm1, v,d1,d2,d3,d4,ierr)
          import tDM,tVec
          DM dm1
          Vec v,d1,d3
          PetscScalar,pointer :: d2(:)
          PetscScalar,pointer :: d4(:)
          PetscErrorCode ierr
        End Subroutine
      End Interface

      Interface DMCompositeRestoreAccess
        Subroutine DMCompositeRestoreAccessvpvp(dm1, v,d1,d2,d3,d4,ierr)
          import tDM,tVec
          DM dm1
          Vec v,d1,d3
          PetscScalar,pointer :: d2(:)
          PetscScalar,pointer :: d4(:)
          PetscErrorCode ierr
        End Subroutine
      End Interface

      Interface DMCompositeGetGlobalISs
        Subroutine DMCompositeGetGlobalISs(a,b,z)
          import tDM,tIS
          DM a
          IS b(*)
          PetscErrorCode z
        End Subroutine
      End Interface
