ruff_resist Subroutine

public subroutine ruff_resist(veg, rough, ssnow, canopy, LAI_pft, HGT_pft, reducedLAIdue2snow)

Uses

  • proc~~ruff_resist~~UsesGraph proc~ruff_resist ruff_resist module~cable_common_module cable_common_module proc~ruff_resist->module~cable_common_module module~cable_def_types_mod cable_def_types_mod proc~ruff_resist->module~cable_def_types_mod module~cable_other_constants_mod cable_other_constants_mod proc~ruff_resist->module~cable_other_constants_mod module~hruff_eff_lai_mod_cbl hruff_eff_LAI_mod_cbl proc~ruff_resist->module~hruff_eff_lai_mod_cbl module~cable_runtime_opts_mod cable_runtime_opts_mod module~cable_common_module->module~cable_runtime_opts_mod module~cable_climate_type_mod cable_climate_type_mod module~cable_def_types_mod->module~cable_climate_type_mod module~grid_constants_mod_cbl grid_constants_mod_cbl module~cable_other_constants_mod->module~grid_constants_mod_cbl

Calculates the roughness parameters and the aerodynamic contribution to the resistances controlling the fluxes between the land and atmosphere for each land point.

Scientific description

The scientific basis for the formulae is a combination of Localised Near Field theory for aerodynamic transfer within canopies (for the heat and water vapour fluxes) and bulk formulae for the roughness length and displacement height accounting for roughness sublayer effects (for the momentum flux).

The calculations take into account whether:

  1. the soil model used is SLI or the default (soilsnow)
  2. the land point is vegetated (LAI > LAI_THRESH) or not

The primary references for these formulations are

Outputs

The principal outputs from the MODULE are

  • rough%zref_tq: reference height above the displacement height for the air temperature and humidity, where these forcing observations are deemed to have been collected (m)
  • rough%zref_uv: height above the displacement height for the wind speeds, where the forcing observations are deemed to have been collected (m)
  • rough%hruff: the canopy height accounting for the presence of snow (m)
  • canopy%vlaiw: the leaf area index accounting for the presence of snow (m m)
  • rough%z0soil: the aerodynamic roughness length for soil (m)
  • rough%z0ssoilsn: the aerodynamic roughness length for snow (m)
  • rough%z0m: the aerodynamic roughness length for the surface (canopy+soil+snow) (m)
  • rough%disp: the displacement height of the surface (=0.0 if not vegetated) (m)
  • rough%zruffs: the depth of the roughness sublayer over vegetated surfaces (m)
  • rough%coexp: the extinction coefficient for the wind speed profile within the canopy, (m).

    is defined to be the coefficient within an expontial wind profile, i.e. the wind speed at height above the ground within a canopy of height is given by where is the wind speed at canopy top.

  • rough%usuh: the ratio of the friction velocity, , to the wind speed at canopy top (-)

  • rough%rt0us: normalised aerodynamic resistance for the turbulent transfer from the soil/snow surface to the displacement height (-)
  • rough%rt1us: normalised aerodynamic resistance for the turbulent transfer from the displacement height to the reference level (-)

    rough%rt1us is evaluated in three subparts (rough%rt1usa, rough%rt1usb, and rough%rt1usc). One of the resistance terms (rough%rt1usc) is evaluated in subroutine define_canopy.

Each of the normalized resistances are given by the theoretical formulae given by the references. The aerodynamic resistances for the current time step are evaluated later by dividing the normalized resistances by the current time step's friction velocity canopy%us.

Structure

  • evaluates the canopy height and leaf area given the presence of snow (or not) using HgtAboveSnow and LAI_eff
  • sets the value of soil and snow roughness lengths (depends on the configuration of CABLE)
  • evaluates the remaining output variables, depending on whether the land point is vegetated or not.
  • if the SLI soil model is used - updates the evaluated rough%rt0us

Arguments

Type IntentOptional Attributes Name
type(veg_parameter_type), intent(inout) :: veg
type(roughness_type), intent(inout) :: rough
type(soil_snow_type), intent(in) :: ssnow
type(canopy_type), intent(inout) :: canopy
real :: LAI_pft(mp)
real :: HGT_pft(mp)
real :: reducedLAIdue2snow(mp)

Calls

proc~~ruff_resist~~CallsGraph proc~ruff_resist ruff_resist proc~hgtabovesnow HgtAboveSnow proc~ruff_resist->proc~hgtabovesnow proc~lai_eff LAI_eff proc~ruff_resist->proc~lai_eff

Called by

proc~~ruff_resist~~CalledByGraph proc~ruff_resist ruff_resist proc~cbm cbm proc~cbm->proc~ruff_resist proc~define_canopy define_canopy proc~cbm->proc~define_canopy proc~define_canopy->proc~ruff_resist proc~mpidrv_worker~2 mpidrv_worker proc~mpidrv_worker~2->proc~cbm proc~serialdrv serialdrv proc~serialdrv->proc~cbm program~cable_offline_driver cable_offline_driver program~cable_offline_driver->proc~serialdrv