anchor.diff:                              ISURBAN,ISICE, &
                               VEGFRAC, &
                               ALBEDO,ALBBCK,domain%znt,Z0,domain%soil_tdeep,domain%landmask,XICE,EMISS,EMBCK,     &
  -                            SNOWC,QSFC,domain%rain-RAINBL,MMINLU,         &
  +                            SNOWC,QSFC,                                   &
  +                            (domain%rain-RAINBL)+(domain%rain_bucket-rain_bucket)*kPRECIP_BUCKET_SIZE, &
  +                            MMINLU, &
                               num_soil_layers,lsm_dt,DZS,ITIMESTEP,         &
                               domain%soil_vwc,domain%soil_t,domain%snow_swe,&
                               domain%canopy_water,            &
  
positive.code:         allocate(CQS2(ime,jme))
          CQS2=0.01
          
          domain%T2m = domain%th(:,1,:) * domain%pii(:,1,:)
          domain%Q2m = domain%qv(:,1,:)
          
  
negative.code: 
  !         print*,"--------------------------------------------------"
  !         print*, "Surface Richardson number"
          where(Ri<0)  exchange_C = lnz_atm_term * (1.0-(15.0*Ri)/(1.0+(base_exchange_term * sqrt((-1.0)*Ri))))
          where(Ri>=0) exchange_C = lnz_atm_term * 1.0/((1.0+15.0*Ri)*sqrt(1.0+5.0*Ri))
  
          where(exchange_C > MAX_EXCHANGE_C) exchange_C=MAX_EXCHANGE_C
          where(exchange_C < MIN_EXCHANGE_C) exchange_C=MIN_EXCHANGE_C
  