code: def load(self, dtype_out_time, dtype_out_vert=False, region=False,
               plot_units=False, mask_unphysical=False):
          
          msg = ("Loading data from disk for object={0}, dtype_out_time={1}, "
                 "dtype_out_vert={2}, and region="
                 "{3}".format(self, dtype_out_time, dtype_out_vert, region))
          logging.info(msg + ' ({})'.format(ctime()))
          # Grab from the object if its there.
          try:
              data = self.data_out[dtype_out_time]
          except (AttributeError, KeyError):
              # Otherwise get from disk.  Try scratch first, then archive.
              try:
                  data = self._load_from_disk(dtype_out_time, dtype_out_vert,
                                              region=region)
              except IOError:
                  data = self._load_from_tar(dtype_out_time, dtype_out_vert)
          # Copy the array to self.data_out for ease of future access.
          self._update_data_out(data, dtype_out_time)
          # Apply desired plotting/cleanup methods.
          if mask_unphysical:
              data = self.var.mask_unphysical(data)
          if plot_units:
              data = self.var.to_plot_units(data, dtype_vert=dtype_out_vert)
          return data
docs: Load the data from the object if possible or from disk.