This module calculates surface roughness length.This subroutine includes the surface roughness length formulation based on the surface sublayer scheme in Zeng and Dickinson (1998) [211]. More...
Functions/Subroutines | |
subroutine, public | sfc_diff::sfc_diff_run (im, rvrdm1, eps, epsm1, grav, ps, t1, q1, z1, garea, wind, prsl1, prslki, prsik1, prslk1, sigmaf, vegtype, shdmax, ivegsrc, z0pert, ztpert, flag_iter, redrag, flag_lakefreeze, u10m, v10m, sfc_z0_type, u1, v1, usfco, vsfco, icplocn2atm, wet, dry, icy, thsfc_loc, tskin_wat, tskin_lnd, tskin_ice, tsurf_wat, tsurf_lnd, tsurf_ice, z0rl_wat, z0rl_lnd, z0rl_ice, z0rl_wav, ustar_wat, ustar_lnd, ustar_ice, cm_wat, cm_lnd, cm_ice, ch_wat, ch_lnd, ch_ice, rb_wat, rb_lnd, rb_ice, stress_wat, stress_lnd, stress_ice, fm_wat, fm_lnd, fm_ice, fh_wat, fh_lnd, fh_ice, fm10_wat, fm10_lnd, fm10_ice, fh2_wat, fh2_lnd, fh2_ice, ztmax_wat, ztmax_lnd, ztmax_ice, zvfun, errmsg, errflg) |
subroutine, public | sfc_diff::stability (z1, zvfun, gdx, tv1, thv1, wind, z0max, ztmax, tvs, grav, thsfc_loc, rb, fm, fh, fm10, fh2, cm, ch, stress, ustar) |
subroutine | sfc_diff::znot_m_v6 (uref, znotm) |
add fitted z0,zt curves for hurricane application (used in HWRF/HMON) Weiguo Wang, 2019-0425 | |
subroutine | sfc_diff::znot_t_v6 (uref, znott) |
Calculate scalar roughness over water with input 10-m wind For low-to-moderate winds, try to match the Ck-U10 relationship from COARE algorithm For high winds, try to retain the Ck-U10 relationship of FY2015 HWRF. | |
subroutine | sfc_diff::znot_m_v7 (uref, znotm) |
Calculate areodynamical roughness over water with input 10-m wind For low-to-moderate winds, try to match the Cd-U10 relationship from COARE V3.5 (Edson et al. 2013) For high winds, try to fit available observational data Comparing to znot_t_v6, slightly decrease Cd for higher wind speed. | |
subroutine | sfc_diff::znot_t_v7 (uref, znott) |
Calculate scalar roughness over water with input 10-m wind For low-to-moderate winds, try to match the Ck-U10 relationship from COARE algorithm For high winds, try to retain the Ck-U10 relationship of FY2015 HWRF To be compatible with the slightly decreased Cd for higher wind speed. | |
local_name | standard_name | long_name | units | type | dimensions | kind | intent |
---|---|---|---|---|---|---|---|
im | horizontal_loop_extent | horizontal loop extent | count | integer | () | in | |
rvrdm1 | ratio_of_vapor_to_dry_air_gas_constants_minus_one | (rv/rd) - 1 (rv = ideal gas constant for water vapor) | none | real | () | kind_phys | in |
eps | ratio_of_dry_air_to_water_vapor_gas_constants | rd/rv | none | real | () | kind_phys | in |
epsm1 | ratio_of_dry_air_to_water_vapor_gas_constants_minus_one | (rd/rv) - 1 | none | real | () | kind_phys | in |
grav | gravitational_acceleration | gravitational acceleration | m s-2 | real | () | kind_phys | in |
ps | surface_air_pressure | surface pressure | Pa | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | in |
t1 | air_temperature_at_surface_adjacent_layer | 1st model layer air temperature | K | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | in |
q1 | specific_humidity_at_surface_adjacent_layer | 1st model layer specific humidity | kg kg-1 | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | in |
z1 | height_above_ground_at_lowest_model_layer | height above ground at 1st model layer | m | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | in |
garea | cell_area | area of the grid cell | m2 | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | in |
zvfun | function_of_surface_roughness_length_and_green_vegetation_fraction | function of surface roughness length and green vegetation fraction | none | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | out |
wind | wind_speed_at_lowest_model_layer | wind speed at lowest model level | m s-1 | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | in |
prsl1 | air_pressure_at_surface_adjacent_layer | Model layer 1 mean pressure | Pa | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | in |
prslki | ratio_of_exner_function_between_midlayer_and_interface_at_lowest_model_layer | Exner function ratio bt midlayer and interface at 1st layer | ratio | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | in |
prsik1 | surface_dimensionless_exner_function | dimensionless Exner function at the ground surface | none | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | in |
prslk1 | dimensionless_exner_function_at_surface_adjacent_layer | dimensionless Exner function at the lowest model layer | none | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | in |
sigmaf | bounded_vegetation_area_fraction | areal fractional cover of green vegetation bounded on the bottom | frac | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | in |
vegtype | vegetation_type_classification | vegetation type at each grid cell | index | integer | (ccpp_constant_one:horizontal_loop_extent) | in | |
shdmax | max_vegetation_area_fraction | max fractnl cover of green veg | frac | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | in |
ivegsrc | control_for_vegetation_dataset | land use dataset choice | index | integer | () | in | |
z0pert | perturbation_of_momentum_roughness_length | perturbation of momentum roughness length | frac | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | in |
ztpert | perturbation_of_heat_to_momentum_roughness_length_ratio | perturbation of heat to momentum roughness length ratio | frac | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | in |
flag_iter | flag_for_iteration | flag for iteration | flag | logical | (ccpp_constant_one:horizontal_loop_extent) | in | |
redrag | flag_for_limited_surface_roughness_length_over_ocean | flag for reduced drag coefficient over sea | flag | logical | () | in | |
flag_lakefreeze | flag_for_lake_water_freeze | flag for lake water freeze | flag | logical | (ccpp_constant_one:horizontal_loop_extent) | in | |
u10m | x_wind_at_10m | 10 meter u wind speed | m s-1 | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | in |
v10m | y_wind_at_10m | 10 meter v wind speed | m s-1 | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | in |
u1 | x_wind_at_surface_adjacent_layer | x component of surface layer wind | m s-1 | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | in |
v1 | y_wind_at_surface_adjacent_layer | y component of surface layer wind | m s-1 | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | in |
usfco | x_ocean_current | zonal current at ocean surface | m s-1 | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | in |
vsfco | y_ocean_current | meridional current at ocean surface | m s-1 | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | in |
sfc_z0_type | flag_for_surface_roughness_option_over_water | surface roughness options over water | flag | integer | () | in | |
icplocn2atm | control_for_air_sea_flux_computation_over_water | air-sea flux option | 1 | integer | () | in | |
wet | flag_nonzero_wet_surface_fraction | flag indicating presence of some ocean or lake surface area fraction | flag | logical | (ccpp_constant_one:horizontal_loop_extent) | inout | |
dry | flag_nonzero_land_surface_fraction | flag indicating presence of some land surface area fraction | flag | logical | (ccpp_constant_one:horizontal_loop_extent) | in | |
icy | flag_nonzero_sea_ice_surface_fraction | flag indicating presence of some sea ice surface area fraction | flag | logical | (ccpp_constant_one:horizontal_loop_extent) | in | |
thsfc_loc | flag_for_reference_pressure_theta | flag for reference pressure in theta calculation | flag | logical | () | in | |
tskin_wat | surface_skin_temperature_over_water | surface skin temperature over water | K | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | in |
tskin_lnd | surface_skin_temperature_over_land | surface skin temperature over land | K | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | in |
tskin_ice | surface_skin_temperature_over_ice | surface skin temperature over ice | K | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | in |
tsurf_wat | surface_skin_temperature_after_iteration_over_water | surface skin temperature after iteration over water | K | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | in |
tsurf_lnd | surface_skin_temperature_after_iteration_over_land | surface skin temperature after iteration over land | K | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | in |
tsurf_ice | surface_skin_temperature_after_iteration_over_ice | surface skin temperature after iteration over ice | K | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | in |
z0rl_wat | surface_roughness_length_over_water | surface roughness length over water (temporary use as interstitial) | cm | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | inout |
z0rl_lnd | surface_roughness_length_over_land | surface roughness length over land (temporary use as interstitial) | cm | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | inout |
z0rl_ice | surface_roughness_length_over_ice | surface roughness length over ice (temporary use as interstitial) | cm | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | inout |
z0rl_wav | surface_roughness_length_from_wave_model | surface roughness length from wave model | cm | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | in |
ustar_wat | surface_friction_velocity_over_water | surface friction velocity over water | m s-1 | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | inout |
ustar_lnd | surface_friction_velocity_over_land | surface friction velocity over land | m s-1 | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | inout |
ustar_ice | surface_friction_velocity_over_ice | surface friction velocity over ice | m s-1 | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | inout |
cm_wat | surface_drag_coefficient_for_momentum_in_air_over_water | surface exchange coeff for momentum over water | none | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | inout |
cm_lnd | surface_drag_coefficient_for_momentum_in_air_over_land | surface exchange coeff for momentum over land | none | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | inout |
cm_ice | surface_drag_coefficient_for_momentum_in_air_over_ice | surface exchange coeff for momentum over ice | none | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | inout |
ch_wat | surface_drag_coefficient_for_heat_and_moisture_in_air_over_water | surface exchange coeff heat surface exchange coeff heat & moisture over ocean moisture over water | none | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | inout |
ch_lnd | surface_drag_coefficient_for_heat_and_moisture_in_air_over_land | surface exchange coeff heat & moisture over land | none | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | inout |
ch_ice | surface_drag_coefficient_for_heat_and_moisture_in_air_over_ice | surface exchange coeff heat & moisture over ice | none | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | inout |
rb_wat | bulk_richardson_number_at_lowest_model_level_over_water | bulk Richardson number at the surface over water | none | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | inout |
rb_lnd | bulk_richardson_number_at_lowest_model_level_over_land | bulk Richardson number at the surface over land | none | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | inout |
rb_ice | bulk_richardson_number_at_lowest_model_level_over_ice | bulk Richardson number at the surface over ice | none | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | inout |
stress_wat | surface_wind_stress_over_water | surface wind stress over water | m2 s-2 | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | inout |
stress_lnd | surface_wind_stress_over_land | surface wind stress over land | m2 s-2 | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | inout |
stress_ice | surface_wind_stress_over_ice | surface wind stress over ice | m2 s-2 | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | inout |
fm_wat | monin_obukhov_similarity_function_for_momentum_over_water | Monin-Obukhov similarity function for momentum over water | none | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | inout |
fm_lnd | monin_obukhov_similarity_function_for_momentum_over_land | Monin-Obukhov similarity function for momentum over land | none | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | inout |
fm_ice | monin_obukhov_similarity_function_for_momentum_over_ice | Monin-Obukhov similarity function for momentum over ice | none | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | inout |
fh_wat | monin_obukhov_similarity_function_for_heat_over_water | Monin-Obukhov similarity function for heat over water | none | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | inout |
fh_lnd | monin_obukhov_similarity_function_for_heat_over_land | Monin-Obukhov similarity function for heat over land | none | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | inout |
fh_ice | monin_obukhov_similarity_function_for_heat_over_ice | Monin-Obukhov similarity function for heat over ice | none | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | inout |
fm10_wat | monin_obukhov_similarity_function_for_momentum_at_10m_over_water | Monin-Obukhov similarity parameter for momentum at 10m over water | none | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | inout |
fm10_lnd | monin_obukhov_similarity_function_for_momentum_at_10m_over_land | Monin-Obukhov similarity parameter for momentum at 10m over land | none | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | inout |
fm10_ice | monin_obukhov_similarity_function_for_momentum_at_10m_over_ice | Monin-Obukhov similarity parameter for momentum at 10m over ice | none | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | inout |
fh2_wat | monin_obukhov_similarity_function_for_heat_at_2m_over_water | Monin-Obukhov similarity parameter for heat at 2m over water | none | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | inout |
fh2_lnd | monin_obukhov_similarity_function_for_heat_at_2m_over_land | Monin-Obukhov similarity parameter for heat at 2m over land | none | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | inout |
fh2_ice | monin_obukhov_similarity_function_for_heat_at_2m_over_ice | Monin-Obukhov similarity parameter for heat at 2m over ice | none | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | inout |
ztmax_wat | bounded_surface_roughness_length_for_heat_over_water | bounded surface roughness length for heat over water | m | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | inout |
ztmax_lnd | bounded_surface_roughness_length_for_heat_over_land | bounded surface roughness length for heat over land | m | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | inout |
ztmax_ice | bounded_surface_roughness_length_for_heat_over_ice | bounded surface roughness length for heat over ice | m | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | inout |
errmsg | ccpp_error_message | error message for error handling in CCPP | none | character | () | len=* | out |
errflg | ccpp_error_code | error code for error handling in CCPP | 1 | integer | () | out |
\[ ln(Z_{0m}^,/Z_{0t})=(1-GVF)^2C_{zil}k(u*Z_{0g}/\nu)^{0.5} \]
where \(Z_{0m}^,\) is the effective momentum roughness length computed in the following equation for each grid, \(Z_{0t}\) is the roughness lenghth for heat, \(C_{zil}\) is a coefficient (taken as 0.8), k is the Von Karman constant (0.4), \(\nu=1.5\times10^{-5}m^{2}s^{-1}\) is the molecular viscosity, \(u*\) is the friction velocity, and \(Z_{0g}\) is the bare soil roughness length for momentum (taken as 0.01).\[ \ln(Z_{0m}^,)=(1-GVF)^{2}\ln(Z_{0g})+\left[1-(1-GVF)^{2}\right]\ln(Z_{0m}) \]