code: def integrate_converge(self, crit=1e-4, verbose=True):
          
          # implemented by m-kreuzer
          for varname, value in self.state.items():
              value_old = copy.deepcopy(value)
              self.integrate_years(1,verbose=False)
              while np.max(np.abs(value_old-value)) > crit :
                  value_old = copy.deepcopy(value)
                  self.integrate_years(1,verbose=False)
          if verbose == True:
              print("Total elapsed time is %s years."
                    % str(self.time['days_elapsed']/const.days_per_year))
docs: Integrates the model until model states are converging.
  
          :param crit:            exit criteria for difference of iterated
                                  solutions [default: 0.0001]
          :type crit:             float
          :param bool verbose:    information whether total elapsed time
                                  should be printed [default: True]
  
          :Example:
  
              ::
  
                  >>> import climlab
                  >>> model = climlab.EBM()
  
                  >>> model.global_mean_temperature()
                  Field(11.997968598413685)
  
                  >>> model.integrate_converge()
                  Total elapsed time is 10.0 years.
  
                  >>> model.global_mean_temperature()
                  Field(14.288155406577301)