code: def check_data(cls, name, dims, is_unstructured=None):
          
          if isinstance(name, six.string_types) or not is_iterable(name):
              name = [name]
              dims = [dims]
          N = len(name)
          if len(dims) != N:
              return [False] * N, [
                  'Number of provided names (%i) and dimensions '
                  '%(i) are not the same' % (N, len(dims))] * N
          checks = [True] * N
          messages = [''] * N
          for i, (n, d) in enumerate(zip(name, dims)):
              if n != 0 and not n:
                  checks[i] = False
                  messages[i] = 'At least one variable name is required!'
              elif ((not isstring(n) and is_iterable(n) and
                     len(n) > cls.allowed_vars) and
                    len(d) != (cls.allowed_dims - len(slist(n)))):
                  checks[i] = False
                  messages[i] = 'Only %i names are allowed per array!' % (
                      cls.allowed_vars)
              elif len(d) != cls.allowed_dims:
                  checks[i] = False
                  messages[i] = 'Only %i-dimensional arrays are allowed!' % (
                      cls.allowed_dims)
          return checks, messages
docs: A validation method for the data shape
  
          Parameters
          ----------
          name: str or list of str
              The variable names (at maximum :attr:`allowed_vars` variables per
              array)
          dims: list with length 1 or list of lists with length 1
              The dimension of the arrays. Only 1D-Arrays are allowed
          is_unstructured: bool or list of bool, optional
              True if the corresponding array is unstructured. This keyword is
              ignored
  
          Returns
          -------
          %(Plotter.check_data.returns)s