anchor.diff:      end type
   
       private
  -    public :: surface_mass_balance
  +    public :: mass_balance, energy_balance, surface_energy_and_mass_balance
       public :: surface_physics_class, surface_state_class, surface_param_class
       public :: surface_physics_par_load, surface_alloc, surface_dealloc
       public :: surface_boundary_define, surface_physics_average
  
positive.code:         deallocate(now%alb)
          deallocate(now%alb_snow)
          deallocate(now%melt)
          deallocate(now%refr)
          deallocate(now%smb)
          deallocate(now%smb_snow)
  
negative.code:         double precision    :: tmin      !< minimum temperature for which albedo decline becomes effective ("slater") [K]
          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    :: shf_enh   !< sensible heat flux enhancement factor for positive u*(tsurf-t2m) [no unit]
          double precision    :: lhf_enh   !< latent heat flux enhancement factor over land (mask==1) [no unit]
          double precision    :: tau_a     !< dry albedo decline for "isba" albedo scheme [1/day]
  