Common Community Physics Package (CCPP) Scientific Documentation  Version 2.0
GFS Hybrid Eddy-diffusivity Mass-flux Scheme

The Hybrid EDMF scheme is a first-order turbulent transport scheme used for subgrid-scale vertical turbulent mixing in the PBL and above. It blends the traditional first-order approach that has been used and improved over the last several years with a more recent scheme that uses a mass-flux approach to calculate the countergradient diffusion terms. More...

Detailed Description

The PBL scheme's main task is to calculate tendencies of temperature, moisture, and momentum due to vertical diffusion throughout the column (not just the PBL). The scheme is an amalgamation of decades of work, starting from the initial first-order PBL scheme of Troen and Mahrt (1986) [93], implemented according to Hong and Pan (1996) [41] and modified by Han and Pan (2011) [34] and Han et al. (2015) [35] to include top-down mixing due to stratocumulus layers from Lock et al. (2000) [63] and replacement of counter-gradient terms with a mass flux scheme according to Siebesma et al. (2007) [89] and Soares et al. (2004) [90]. Recently, heating due to TKE dissipation was also added according to Han et al. (2015) [35].

This subroutine contains all of logic for the Hybrid EDMF PBL scheme except for the calculation of the updraft properties and mass flux. The scheme works on a basic level by calculating background diffusion coefficients and updating them according to which processes are occurring in the column. The most important difference in diffusion coefficients occurs between those levels in the PBL and those above the PBL, so the PBL height calculation is of utmost importance. An initial estimate is calculated in a "predictor" step in order to calculate Monin-Obukhov similarity values and a corrector step recalculates the PBL height based on updated surface thermal characteristics. Using the PBL height and the similarity parameters, the diffusion coefficients are updated below the PBL top based on Hong and Pan (1996) [41] (including counter-gradient terms). Diffusion coefficients in the free troposphere (above the PBL top) are calculated according to Louis (1979) [68] with updated Richardson number-dependent functions. If it is diagnosed that PBL top-down mixing is occurring according to Lock et al. (2000) [63] , then then diffusion coefficients are updated accordingly. Finally, for convective boundary layers (defined as when the Obukhov length exceeds a threshold), the counter-gradient terms are replaced using the mass flux scheme of Siebesma et al. (2007) [89] . In order to return time tendencies, a fully implicit solution is found using tridiagonal matrices, and time tendencies are "backed out." Before returning, the time tendency of temperature is updated to reflect heating due to TKE dissipation following Han et al. (2015) [35] .

Argument Table

local_name standard_name long_name units rank type kind intent optional
ix horizontal_dimension horizontal dimension count 0 integer in F
im horizontal_loop_extent horizontal loop extent count 0 integer in F
km vertical_dimension vertical layer dimension count 0 integer in F
ntrac number_of_vertical_diffusion_tracers number of tracers to diffuse vertically count 0 integer in F
ntcw index_for_liquid_cloud_condensate cloud condensate index in tracer array index 0 integer in F
dv tendency_of_y_wind_due_to_model_physics updated tendency of the y wind m s-2 2 real kind_phys inout F
du tendency_of_x_wind_due_to_model_physics updated tendency of the x wind m s-2 2 real kind_phys inout F
tau tendency_of_air_temperature_due_to_model_physics updated tendency of the temperature K s-1 2 real kind_phys inout F
rtg tendency_of_tracers_due_to_model_physics updated tendency of the tracers kg kg-1 s-1 3 real kind_phys inout F
u1 x_wind x component of layer wind m s-1 2 real kind_phys in F
v1 y_wind y component of layer wind m s-1 2 real kind_phys in F
t1 air_temperature layer mean air temperature K 2 real kind_phys in F
q1 tracer_concentration layer mean tracer concentration, cf. GFS_typedefs.F90 kg kg-1 3 real kind_phys in F
swh tendency_of_air_temperature_due_to_shortwave_heating_on_radiation_time_step total sky shortwave heating rate K s-1 2 real kind_phys in F
hlw tendency_of_air_temperature_due_to_longwave_heating_on_radiation_time_step total sky longwave heating rate K s-1 2 real kind_phys in F
xmu zenith_angle_temporal_adjustment_factor_for_shortwave_fluxes zenith angle temporal adjustment factor for shortwave none 1 real kind_phys in F
psk dimensionless_exner_function_at_lowest_model_interface dimensionless Exner function at the surface interface none 1 real kind_phys in F
rbsoil bulk_richardson_number_at_lowest_model_level bulk Richardson number at the surface none 1 real kind_phys in F
zorl surface_roughness_length surface roughness length in cm cm 1 real kind_phys in F
u10m x_wind_at_10m x component of wind at 10 m m s-1 1 real kind_phys in F
v10m y_wind_at_10m y component of wind at 10 m m s-1 1 real kind_phys in F
fm Monin-Obukhov_similarity_function_for_momentum Monin-Obukhov similarity function for momentum none 1 real kind_phys in F
fh Monin-Obukhov_similarity_function_for_heat Monin-Obukhov similarity function for heat none 1 real kind_phys in F
tsea surface_skin_temperature surface temperature K 1 real kind_phys in F
heat kinematic_surface_upward_sensible_heat_flux kinematic surface upward sensible heat flux K m s-1 1 real kind_phys in F
evap kinematic_surface_upward_latent_heat_flux kinematic surface upward latent heat flux kg kg-1 m s-1 1 real kind_phys in F
stress surface_wind_stress surface wind stress m2 s-2 1 real kind_phys in F
spd1 wind_speed_at_lowest_model_layer wind speed at lowest model level m s-1 1 real kind_phys in F
kpbl vertical_index_at_top_of_atmosphere_boundary_layer PBL top model level index index 1 integer out F
prsi air_pressure_at_interface air pressure at model layer interfaces Pa 2 real kind_phys in F
del air_pressure_difference_between_midlayers pres(k) - pres(k+1) Pa 2 real kind_phys in F
prsl air_pressure mean layer pressure Pa 2 real kind_phys in F
prslk dimensionless_exner_function_at_model_layers Exner function at layers none 2 real kind_phys in F
phii geopotential_at_interface geopotential at model layer interfaces m2 s-2 2 real kind_phys in F
phil geopotential geopotential at model layer centers m2 s-2 2 real kind_phys in F
delt time_step_for_physics time step for physics s 0 real kind_phys in F
dspheat flag_TKE_dissipation_heating flag for using TKE dissipation heating flag 0 logical in F
dusfc instantaneous_surface_x_momentum_flux x momentum flux Pa 1 real kind_phys out F
dvsfc instantaneous_surface_y_momentum_flux y momentum flux Pa 1 real kind_phys out F
dtsfc instantaneous_surface_upward_sensible_heat_flux surface upward sensible heat flux W m-2 1 real kind_phys out F
dqsfc instantaneous_surface_upward_latent_heat_flux surface upward latent heat flux W m-2 1 real kind_phys out F
hpbl atmosphere_boundary_layer_thickness PBL thickness m 1 real kind_phys out F
hgamt countergradient_mixing_term_for_temperature countergradient mixing term for temperature K 1 real kind_phys inout F
hgamq countergradient_mixing_term_for_water_vapor countergradient mixing term for water vapor kg kg-1 1 real kind_phys inout F
dkt atmosphere_heat_diffusivity diffusivity for heat m2 s-1 2 real kind_phys out F
kinver index_of_highest_temperature_inversion index of highest temperature inversion index 1 integer in F
xkzm_m atmosphere_momentum_diffusivity_background background value of momentum diffusivity m2 s-1 0 real kind_phys in F
xkzm_h atmosphere_heat_diffusivity_background background value of heat diffusivity m2 s-1 0 real kind_phys in F
xkzm_s diffusivity_background_sigma_level sigma level threshold for background diffusivity none 0 real kind_phys in F
lprnt flag_print flag for printing diagnostics to output flag 0 logical in F
ipr horizontal_index_of_printed_column horizontal index of printed column index 0 integer in F
xkzminv atmosphere_heat_diffusivity_background_maximum maximum background value of heat diffusivity m2 s-1 0 real kind_phys in F
moninq_fac atmosphere_diffusivity_coefficient_factor multiplicative constant for atmospheric diffusivities none 0 real kind_phys in F
errmsg error_message error message for error handling in CCPP none 0 character len=* out F
errflg error_flag error flag for error handling in CCPP flag 0 integer out F

Hybrid EDMF General Algorithm

  1. Compute preliminary variables from input arguments.
  2. Calculate the first estimate of the PBL height ("Predictor step").
  3. Calculate Monin-Obukhov similarity parameters.
  4. Update thermal properties of surface parcel and recompute PBL height ("Corrector step").
  5. Determine whether stratocumulus layers exist and compute quantities needed for enhanced diffusion.
  6. Calculate the inverse Prandtl number.
  7. Compute diffusion coefficients below the PBL top.
  8. Compute diffusion coefficients above the PBL top.
  9. If the PBL is convective, call the mass flux scheme to replace the countergradient terms.
  10. Compute enhanced diffusion coefficients related to stratocumulus-topped PBLs.
  11. Solve for the temperature and moisture tendencies due to vertical mixing.
  12. Calculate heating due to TKE dissipation and add to the tendency for temperature.
  13. Solve for the horizontal momentum tendencies and add them to output tendency terms.

Detailed Algorithm

Functions/Subroutines

subroutine hedmf::hedmf_run (ix, im, km, ntrac, ntcw, dv, du, tau, rtg, u1, v1, t1, q1, swh, hlw, xmu, psk, rbsoil, zorl, u10m, v10m, fm, fh, tsea, heat, evap, stress, spd1, kpbl, prsi, del, prsl, prslk, phii, phil, delt, dspheat, dusfc, dvsfc, dtsfc, dqsfc, hpbl, hgamt, hgamq, dkt, kinver, xkzm_m, xkzm_h, xkzm_s, lprnt, ipr, xkzminv, moninq_fac, errmsg, errflg)
 
subroutine tridi2 (l, n, cl, cm, cu, r1, r2, au, a1, a2)
 Routine to solve the tridiagonal system to calculate temperature and moisture at \( t + \Delta t \); part of two-part process to calculate time tendencies due to vertical diffusion. More...
 
subroutine tridin (l, n, nt, cl, cm, cu, r1, r2, au, a1, a2)
 Routine to solve the tridiagonal system to calculate u- and v-momentum at \( t + \Delta t \); part of two-part process to calculate time tendencies due to vertical diffusion. More...
 
subroutine mfpbl (im, ix, km, ntrac, delt, cnvflg, zl, zm, thvx, q1, t1, u1, v1, hpbl, kpbl, sflx, ustar, wstar, xmf, tcko, qcko, ucko, vcko)
 This subroutine is used for calculating the mass flux and updraft properties. More...