anchor.diff:      !!                * shortwave radiation
       !!
       !! ####################################################################
  -    subroutine surface_mass_balance(now,par,bnd,day,year)
  +    subroutine mass_balance(now,par,bnd,day,year)
   
           type(surface_state_class), intent(in out) :: now
           type(boundary_opt_class),  intent(in)     :: bnd
  
positive.code:             end where
              
              if (trim(par%alb_scheme) .eq. "alex") then
                  now%alb_snow = par%alb_smin + (par%alb_smax - par%alb_smin)*(0.5_dp*tanh(par%afac*(t2m_new-par%tmid))+0.5_dp) 
                  now%alb      = now%alb_snow 
              end if
  
          end if
          
          now%t2m = t2m_new 
  
          ! write prognostic and diagnostic output
          now%subl = now%subl/rhow
  
      end subroutine surface_mass_balance
  
      elemental subroutine sensible_heat_flux(ts,ta,wind,rhoa,csh,enh,cap,shf)
          double precision, intent(in) :: ts, ta, wind, rhoa
  
negative.code:         allocate(now%alb(npts))
          allocate(now%alb_snow(npts))
          allocate(now%melt(npts))
          allocate(now%melted_snow(npts))
          allocate(now%melted_ice(npts))
          allocate(now%refr(npts))
          allocate(now%smb(npts))
          allocate(now%smb_snow(npts))
  