anchor.diff:          real    :: vapor2temp,excess,deltat,pre_qc,pre_qv,pre_t,lastqv
           integer :: iteration
           real    :: maxerr
  -
  -        maxerr = 1e-6
  +        real :: qv_iters(15), t_iters(15)
  +
  +        maxerr = 1e-4
           iteration = 0
           lastqv = qv + maxerr * 2
           vapor2temp = (LH_vapor + (373.15 - temperature) * dLHvdt) / heat_capacity
  
positive.code:         real, intent(inout) :: qc       (ims:ime,kms:kme,jms:jme)
          real, intent(inout) :: qs       (ims:ime,kms:kme,jms:jme)
          real, intent(inout) :: qr       (ims:ime,kms:kme,jms:jme)
          real, intent(inout) :: dz       (ims:ime,kms:kme,jms:jme)
          real, intent(inout) :: rain     (ims:ime,jms:jme)
          real, intent(inout) :: snow     (ims:ime,jms:jme)
          real,intent(in)    :: dt
          integer,intent(in) :: ims, ime, jms, jme, kms, kme
          integer,intent(in) :: its, ite, jts, jte, kts, kte
  
          ! local variables
          real,allocatable,dimension(:) :: temperature
  
negative.code: ! arbitrary calibratable timescales default values as used in the linear model
  ! these should be pulled out to a parameter file for calibration purposes
  ! but this is approximately how they are implemented in SB04
      real, parameter :: snow_evap_time_const      = 1 / 2000.0   ! [1/s]
      real, parameter :: rain_evap_time_const      = 1 / 500.0    ! [1/s]
      real, parameter :: snow_formation_time_const = 1 / 2000.0   ! [1/s]
      real, parameter :: rain_formation_time_const = 1 / 500.0    ! [1/s]
      real, parameter :: freezing_threshold        = 273.15       ! [K]
  