CCPP SciDoc v7.0.0  v7.0.0
Common Community Physics Package Developed at DTC
 
Loading...
Searching...
No Matches
GFS Hybrid Eddy-Diffusivity Mass-Flux (HEDMF) Scheme Module

This subroutine contains all of logic for the Hybrid EDMF PBL scheme except for the calculation of the updraft properties and mass flux. More...

Functions/Subroutines

subroutine hedmf::hedmf_run (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, dku, kinver, xkzm_m, xkzm_h, xkzm_s, lprnt, ipr, xkzminv, moninq_fac, hurr_pbl, islimsk, var_ric, coef_ric_l, coef_ric_s, ldiag3d, ntqv, rtg_ozone_index, ntoz, dtend, dtidx, index_of_process_pbl, index_of_x_wind, index_of_y_wind, index_of_temperature, flag_for_pbl_generic_tend, errmsg, errflg)
 
subroutine mfpbl_mod::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.
 

Detailed Description

Argument Table

hedmf_run argument table
local_namestandard_namelong_nameunitstypedimensionskindintent
imhorizontal_loop_extenthorizontal loop extentcountinteger()in
kmvertical_layer_dimensionvertical layer dimensioncountinteger()in
ntracnumber_of_vertical_diffusion_tracersnumber of tracers to diffuse verticallycountinteger()in
ntcwindex_of_cloud_liquid_water_mixing_ratio_in_tracer_concentration_arraycloud condensate index in tracer arrayindexinteger()in
dvprocess_split_cumulative_tendency_of_y_windupdated tendency of the y windm s-2real(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension)kind_physinout
duprocess_split_cumulative_tendency_of_x_windupdated tendency of the x windm s-2real(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension)kind_physinout
tauprocess_split_cumulative_tendency_of_air_temperatureupdated tendency of the temperatureK s-1real(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension)kind_physinout
rtgtendency_of_vertically_diffused_tracer_concentrationupdated tendency of the tracers due to vertical diffusion in PBL schemekg kg-1 s-1real(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension, ccpp_constant_one:number_of_vertical_diffusion_tracers)kind_physinout
u1x_windx component of layer windm s-1real(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension)kind_physin
v1y_windy component of layer windm s-1real(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension)kind_physin
t1air_temperaturelayer mean air temperatureKreal(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension)kind_physin
q1vertically_diffused_tracer_concentrationtracer concentration diffused by PBL schemekg kg-1real(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension, ccpp_constant_one:number_of_vertical_diffusion_tracers)kind_physin
swhtendency_of_air_temperature_due_to_shortwave_heating_on_radiation_timesteptotal sky shortwave heating rateK s-1real(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension)kind_physin
hlwtendency_of_air_temperature_due_to_longwave_heating_on_radiation_timesteptotal sky longwave heating rateK s-1real(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension)kind_physin
xmuzenith_angle_temporal_adjustment_factor_for_shortwave_fluxeszenith angle temporal adjustment factor for shortwavenonereal(ccpp_constant_one:horizontal_loop_extent)kind_physin
psksurface_dimensionless_exner_functiondimensionless Exner function at the surface interfacenonereal(ccpp_constant_one:horizontal_loop_extent)kind_physin
rbsoilbulk_richardson_number_at_lowest_model_levelbulk Richardson number at the surfacenonereal(ccpp_constant_one:horizontal_loop_extent)kind_physin
zorlsurface_roughness_lengthsurface roughness length in cmcmreal(ccpp_constant_one:horizontal_loop_extent)kind_physin
u10mx_wind_at_10mx component of wind at 10 mm s-1real(ccpp_constant_one:horizontal_loop_extent)kind_physin
v10my_wind_at_10my component of wind at 10 mm s-1real(ccpp_constant_one:horizontal_loop_extent)kind_physin
fmmonin_obukhov_similarity_function_for_momentumMonin-Obukhov similarity function for momentumnonereal(ccpp_constant_one:horizontal_loop_extent)kind_physin
fhmonin_obukhov_similarity_function_for_heatMonin-Obukhov similarity function for heatnonereal(ccpp_constant_one:horizontal_loop_extent)kind_physin
tseasurface_skin_temperaturesurface skin temperatureKreal(ccpp_constant_one:horizontal_loop_extent)kind_physin
heatkinematic_surface_upward_sensible_heat_flux_reduced_by_surface_roughness_and_vegetationkinematic surface upward sensible heat flux reduced by surface roughness and vegetationK m s-1real(ccpp_constant_one:horizontal_loop_extent)kind_physin
evapsurface_upward_specific_humidity_fluxkinematic surface upward latent heat fluxkg kg-1 m s-1real(ccpp_constant_one:horizontal_loop_extent)kind_physin
stresssurface_wind_stresssurface wind stressm2 s-2real(ccpp_constant_one:horizontal_loop_extent)kind_physin
spd1wind_speed_at_lowest_model_layerwind speed at lowest model levelm s-1real(ccpp_constant_one:horizontal_loop_extent)kind_physin
kpblvertical_index_at_top_of_atmosphere_boundary_layerPBL top model level indexindexinteger(ccpp_constant_one:horizontal_loop_extent)out
prsiair_pressure_at_interfaceair pressure at model layer interfacesPareal(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_interface_dimension)kind_physin
delair_pressure_difference_between_midlayerspres(k) - pres(k+1)Pareal(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension)kind_physin
prslair_pressuremean layer pressurePareal(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension)kind_physin
prslkdimensionless_exner_functionExner function at layersnonereal(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension)kind_physin
phiigeopotential_at_interfacegeopotential at model layer interfacesm2 s-2real(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_interface_dimension)kind_physin
philgeopotentialgeopotential at model layer centersm2 s-2real(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension)kind_physin
delttimestep_for_physicstime step for physicssreal()kind_physin
dspheatflag_tke_dissipation_heatingflag for using TKE dissipation heatingflaglogical()in
dusfcinstantaneous_surface_x_momentum_fluxx momentum fluxPareal(ccpp_constant_one:horizontal_loop_extent)kind_physout
dvsfcinstantaneous_surface_y_momentum_fluxy momentum fluxPareal(ccpp_constant_one:horizontal_loop_extent)kind_physout
dtsfcinstantaneous_surface_upward_sensible_heat_fluxsurface upward sensible heat fluxW m-2real(ccpp_constant_one:horizontal_loop_extent)kind_physout
dqsfcinstantaneous_surface_upward_latent_heat_fluxsurface upward latent heat fluxW m-2real(ccpp_constant_one:horizontal_loop_extent)kind_physout
hpblatmosphere_boundary_layer_thicknessPBL thicknessmreal(ccpp_constant_one:horizontal_loop_extent)kind_physout
hgamtcountergradient_mixing_term_for_temperaturecountergradient mixing term for temperatureKreal(ccpp_constant_one:horizontal_loop_extent)kind_physinout
hgamqcountergradient_mixing_term_for_water_vaporcountergradient mixing term for water vaporkg kg-1real(ccpp_constant_one:horizontal_loop_extent)kind_physinout
dktatmosphere_heat_diffusivityatmospheric heat diffusivitym2 s-1real(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension)kind_physout
dkuatmosphere_momentum_diffusivityatmospheric momentum diffusivitym2 s-1real(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension)kind_physout
kinverindex_of_highest_temperature_inversionindex of highest temperature inversionindexinteger(ccpp_constant_one:horizontal_loop_extent)in
xkzm_matmosphere_momentum_diffusivity_due_to_backgroundbackground value of momentum diffusivitym2 s-1real()kind_physin
xkzm_hatmosphere_heat_diffusivity_due_to_backgroundbackground value of heat diffusivitym2 s-1real()kind_physin
xkzm_ssigma_pressure_threshold_at_upper_extent_of_background_diffusionsigma level threshold for background diffusivitynonereal()kind_physin
lprntflag_printflag for printing diagnostics to outputflaglogical()in
iprhorizontal_index_of_printed_columnhorizontal index of printed columnindexinteger()in
xkzminvmax_atmosphere_heat_diffusivity_due_to_backgroundmaximum background value of heat diffusivitym2 s-1real()kind_physin
moninq_facmultiplicative_tuning_parameter_for_atmosphere_diffusivitymultiplicative constant for atmospheric diffusivitiesnonereal()kind_physin
hurr_pblflag_hurricane_pblflag for hurricane-specific options in PBL schemeflaglogical()in
islimsksea_land_ice_masksea/land/ice mask (=0/1/2)flaginteger(ccpp_constant_one:horizontal_loop_extent)in
var_riccontrol_for_variable_bulk_richardson_numberflag for calculating variable bulk richardson number for hurricane PBLflagreal()kind_physin
coef_ric_lcoefficient_for_variable_bulk_richardson_number_over_landcoefficient for calculating variable bulk richardson number for hurricane PBL over landnonereal()kind_physin
coef_ric_scoefficient_for_variable_bulk_richardson_number_over_watercoefficient for calculating variable bulk richardson number for hurricane PBL over waternonereal()kind_physin
ldiag3dflag_for_diagnostics_3dflag for 3d diagnostic fieldsflaglogical()in
ntqvindex_of_specific_humidity_in_tracer_concentration_arraytracer index for water vapor (specific humidity)indexinteger()in
rtg_ozone_indexvertically_diffused_tracer_index_of_ozonenumber of tracerscountinteger()in
ntozindex_of_ozone_mixing_ratio_in_tracer_concentration_arraytracer index for ozone mixing ratioindexinteger()in
dtendcumulative_change_of_state_variablesdiagnostic tendencies for state variablesmixedreal(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension, ccpp_constant_one:cumulative_change_of_state_variables_outer_index_max)kind_physinout
dtidxcumulative_change_of_state_variables_outer_indexindex of state-variable and process in last dimension of diagnostic tendencies array AKA cumulative_change_indexindexinteger(ccpp_constant_one:number_of_tracers_plus_one_hundred, ccpp_constant_one:number_of_cumulative_change_processes)in
index_of_process_pblindex_of_subgrid_scale_vertical_mixing_process_in_cumulative_change_indexindex of subgrid scale vertical mixing process in second dimension of array cumulative change indexindexinteger()in
index_of_x_windindex_of_x_wind_in_cumulative_change_indexindex of x-wind in first dimension of array cumulative change indexindexinteger()in
index_of_y_windindex_of_y_wind_in_cumulative_change_indexindex of x-wind in first dimension of array cumulative change indexindexinteger()in
index_of_temperatureindex_of_temperature_in_cumulative_change_indexindex of temperature in first dimension of array cumulative change indexindexinteger()in
flag_for_pbl_generic_tendflag_for_generic_tendency_due_to_planetary_boundary_layertrue if GFS_PBL_generic should calculate tendenciesflaglogical()in
errmsgccpp_error_messageerror message for error handling in CCPPnonecharacter()len=*out
errflgccpp_error_codeerror code for error handling in CCPP1integer()out

GFS 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.

GFS Hybrid HEDMF Detailed Algorithm