anchor.diff:              now%evap = 0.0_dp
               now%lhf  = 0.0_dp
               call latent_heat_flux(now%tsurf, now%wind, now%qq, now%sp, now%rhoa, now%mask, &
  -                                  par%clh, par%lhf_enh, eps, cls, clv, now%lhf, now%subl, now%evap)
  +                                  par%clh, eps, cls, clv, now%lhf, now%subl, now%evap)
           end if
   
           !> 3. surface_physics::longwave_upward \n
  
positive.code: 
  
      !> Bulk formulation of sensible heat flux
      elemental subroutine sensible_heat_flux(ts,ta,wind,rhoa,csh,enh,cap,shf)
          double precision, intent(in) :: ts !< surface temperature
          double precision, intent(in) :: ta !< air temperature
          double precision, intent(in) :: wind !< wind speed
          double precision, intent(in) :: rhoa !< air density
          double precision, intent(in) :: csh !< sensible heat exchange coefficient
          double precision, intent(in) :: cap !< air specific heat capacity
          double precision, intent(in) :: enh !< enhancement factor to increase heat flux 
                                              !! for positive fluxes (during summer)
          double precision, intent(out) :: shf !< sensible heat flux
          double precision :: coeff
  
          ! enhancement over land
          if ( wind*(ts-ta) > 0.0_dp ) then
              coeff = enh*csh
          else
              coeff = csh
          end if
          
          shf = coeff*cap*rhoa*wind*(ts-ta)
      end subroutine sensible_heat_flux
  
  
      !> Bulk formulation of latent heat flux
      elemental subroutine latent_heat_flux(ts, wind, shum, sp, rhoatm, mask, clh, enh, eps, cls, clv, lhf, subl, evap)
          double precision, intent(in) :: ts !< surface temperature
          double precision, intent(in) :: shum !< specific humidity
          double precision, intent(in) :: sp !< surface pressure
          double precision, intent(in) :: rhoatm !< air density
          double precision, intent(in) :: wind !< wind speed
          double precision, intent(in) :: clh !< latent heat exchange coefficient
          double precision, intent(in) :: eps !< ratio of the molar weight of water vapor
                                              !! to the molar weight of dry air
          double precision, intent(in) :: cls !< latent heat of sublimation
          double precision, intent(in) :: clv !< latent heat of vaporisation
          double precision, intent(in) :: enh !< enhancement factor to increase
                                              !! latent heat flux over land 
          integer, intent(in)  :: mask        !< mask
          double precision, intent(out) :: lhf !< latent heat flux
          double precision, intent(out) :: evap !< evaporation
          double precision, intent(out) :: subl !< sublimation
          double precision :: esat_sur, shum_sat, coeff
  
          subl = 0.0_dp
          evap = 0.0_dp
          lhf  = 0.0_dp
          esat_sur = 0.0_dp
          shum_sat = 0.0_dp
          coeff = 0.0_dp
          if (mask == 1) then
              coeff = enh*clh
          else
              coeff = clh
          end if
          if (ts < t0) then
              esat_sur = ei_sat(ts)
              ! specific humidity at surface (assumed to be saturated) is
              shum_sat = esat_sur*eps/(esat_sur*(eps-1.0_dp)+sp)
              ! sublimation/deposition depends on air specific humidity
              subl = coeff*wind*rhoatm*(shum_sat-shum)
              lhf = subl*cls
          else
              esat_sur = ew_sat(ts)
              ! evaporation/condensation
              ! specific humidity at surface (assumed to be saturated) is
              shum_sat = esat_sur*eps/(esat_sur*(eps-1.0_dp)+sp)
              evap = coeff*wind*rhoatm*(shum_sat-shum)
              lhf = evap*clv
          end if
      end subroutine latent_heat_flux
  
negative.code:         double precision    :: tmax      !< maximum temperature for which albedo decline becomes effective ("slater") [K]
          double precision    :: tstic     !< time step [s]
          double precision    :: tsticsub  !< sub-time step [s]
          double precision    :: tau_a     !< dry albedo decline for "isba" albedo scheme [1/day]
          double precision    :: tau_f     !< wet albedo decline for "isba" albedo scheme [1/day]
          double precision    :: w_crit    !< critical liquid water content for "isba" albedo scheme [kg/m2]
  