code: def check_dipole(inp, name, verb):
      r
  
      # Check inp for x, y, and z; x & y must have same length, z is a float
      _check_shape(np.squeeze(inp), name, (3,))
      inp[0] = _check_var(inp[0], float, 1, name+'-x')
      inp[1] = _check_var(inp[1], float, 1, name+'-y', inp[0].shape)
      inp[2] = _check_var(inp[2], float, 1, name+'-z', (1,))
  
      # Print spatial parameters
      if verb > 2:
          # Pole-type: src or rec
          if name == 'src':
              longname = '   Source(s)       : '
          else:
              longname = '   Receiver(s)     : '
  
          print(longname, str(inp[0].size), 'dipole(s)')
          tname = ['x  ', 'y  ', 'z  ']
          for i in range(3):
              text = "     > " + tname[i] + "     [m] : "
              _prnt_min_max_val(inp[i], text, verb)
  
      return inp, inp[0].size
docs: r"""Check dipole parameters.
  
      This check-function is called from one of the modelling routines in
      :mod:`model`.  Consult these modelling routines for a detailed description
      of the input parameters.
  
      Parameters
      ----------
      inp : list of floats or arrays
          Pole coordinates (m): [pole-x, pole-y, pole-z].
  
      name : str, {'src', 'rec'}
          Pole-type.
  
      verb : {0, 1, 2, 3, 4}
          Level of verbosity.
  
      Returns
      -------
      inp : list
          List of pole coordinates [x, y, z].
  
      ninp : int
          Number of inp-elements