docs: def get_z_variables(nc):
      '''
      Returns a list of all variables matching definitions for Z
  
      :param netcdf4.dataset nc: an open netcdf dataset object
      '''
      z_variables = []
      # Vertical coordinates will be identifiable by units of pressure or the
      # presence of the positive attribute with a value of up/down
  
      # optionally, the vertical type may be indicated by providing the
      # standard_name attribute or axis='Z'
  
      total_coords = get_coordinate_variables(nc) + get_auxiliary_coordinate_variables(nc)
      for coord_name in total_coords:
          if coord_name in z_variables:
              continue
          coord_var = nc.variables[coord_name]
          units = getattr(coord_var, 'units', None)
          positive = getattr(coord_var, 'positive', None)
          standard_name = getattr(coord_var, 'standard_name', None)
          axis = getattr(coord_var, 'axis', None)
          # If there are no units, we can't identify it as a vertical coordinate
          # by checking pressure or positive
          if units is not None:
              if units_convertible(units, 'bar'):
                  z_variables.append(coord_name)
              elif isinstance(positive, basestring):
                  if positive.lower() in ['up', 'down']:
                      z_variables.append(coord_name)
          # if axis='Z' we're good
          if coord_name not in z_variables and axis == 'Z':
              z_variables.append(coord_name)
          if coord_name not in z_variables and standard_name in ('depth', 'height', 'altitude'):
              z_variables.append(coord_name)
          if coord_name not in z_variables and standard_name in DIMENSIONLESS_VERTICAL_COORDINATES:
              z_variables.append(coord_name)
  
      return z_variables