Loading [MathJax]/extensions/tex2jax.js
CCPP SciDoc for UFS-SRW v3.0.0  SRW v3.0.0
Common Community Physics Package Developed at DTC
 
All Classes Namespaces Functions Variables Modules Pages
Loading...
Searching...
No Matches

◆ scm_sfc_flux_spec_run()

subroutine, public scm_sfc_flux_spec::scm_sfc_flux_spec_run ( integer, intent(in) im,
real(kind=kind_phys), dimension(:), intent(in) u1,
real(kind=kind_phys), dimension(:), intent(in) v1,
real(kind=kind_phys), dimension(:), intent(in) z1,
real(kind=kind_phys), dimension(:), intent(in) t1,
real(kind=kind_phys), dimension(:), intent(in) q1,
real(kind=kind_phys), dimension(:), intent(in) p1,
real(kind=kind_phys), dimension(:), intent(in) roughness_length,
real(kind=kind_phys), dimension(:), intent(in) spec_sh_flux,
real(kind=kind_phys), dimension(:), intent(in) spec_lh_flux,
real(kind=kind_phys), dimension(:), intent(in) exner_inverse,
real(kind=kind_phys), dimension(:), intent(in) t_surf,
real(kind=kind_phys), intent(in) cp,
real(kind=kind_phys), intent(in) grav,
real(kind=kind_phys), intent(in) hvap,
real(kind=kind_phys), intent(in) rd,
real(kind=kind_phys), intent(in) fvirt,
real(kind=kind_phys), intent(in) vonkarman,
real(kind=kind_phys), intent(in) tgice,
integer, dimension(:), intent(inout) islmsk,
logical, dimension(:), intent(inout) dry,
real(kind=kind_phys), dimension(:), intent(out) frland,
real(kind=kind_phys), dimension(:), intent(inout) cice,
logical, dimension(:), intent(inout) icy,
real(kind=kind_phys), dimension(:), intent(inout) tisfc,
real(kind=kind_phys), dimension(:), intent(in) oceanfrac,
real(kind=kind_phys), intent(in) min_seaice,
logical, intent(in) cplflx,
logical, intent(in) cplice,
logical, dimension(:), intent(inout) flag_cice,
logical, dimension(:), intent(inout) wet,
real(kind=kind_phys), intent(in) min_lakeice,
real(kind=kind_phys), dimension(:), intent(inout) tsfcl,
real(kind=kind_phys), dimension(:), intent(inout) tsfc_wat,
real(kind=kind_phys), dimension(:), intent(inout) slmsk,
real(kind=kind_phys), dimension(:), intent(in) lakefrac,
integer, intent(in) lkm,
real(kind=kind_phys), dimension(:), intent(in) lakedepth,
integer, dimension(:), intent(inout) use_lake_model,
real(kind=kind_phys), dimension(:), intent(out) sh_flux,
real(kind=kind_phys), dimension(:), intent(out) lh_flux,
real(kind=kind_phys), dimension(:), intent(out) sh_flux_chs,
real(kind=kind_phys), dimension(:), intent(out) u_star,
real(kind=kind_phys), dimension(:), intent(out) sfc_stress,
real(kind=kind_phys), dimension(:), intent(out) cm,
real(kind=kind_phys), dimension(:), intent(out) ch,
real(kind=kind_phys), dimension(:), intent(out) fm,
real(kind=kind_phys), dimension(:), intent(out) fh,
real(kind=kind_phys), dimension(:), intent(out) rb,
real(kind=kind_phys), dimension(:), intent(out) u10m,
real(kind=kind_phys), dimension(:), intent(out) v10m,
real(kind=kind_phys), dimension(:), intent(out) wind1,
real(kind=kind_phys), dimension(:), intent(out) qss,
real(kind=kind_phys), dimension(:), intent(out) t2m,
real(kind=kind_phys), dimension(:), intent(out) q2m,
character(len=*), intent(out) errmsg,
integer, intent(out) errflg )

Argument Table

scm_sfc_flux_spec_run argument table
local_namestandard_namelong_nameunitstypedimensionskindintent
imhorizontal_loop_extenthorizontal loop extentcountinteger()in
u1x_wind_at_surface_adjacent_layerx component of 1st model layer windm s-1real(ccpp_constant_one:horizontal_loop_extent)kind_physin
v1y_wind_at_surface_adjacent_layery component of 1st model layer windm s-1real(ccpp_constant_one:horizontal_loop_extent)kind_physin
z1height_above_ground_at_lowest_model_layerheight above ground at 1st model layermreal(ccpp_constant_one:horizontal_loop_extent)kind_physin
t1air_temperature_at_surface_adjacent_layer1st model layer air temperatureKreal(ccpp_constant_one:horizontal_loop_extent)kind_physin
q1specific_humidity_at_surface_adjacent_layer1st model layer specific humiditykg kg-1real(ccpp_constant_one:horizontal_loop_extent)kind_physin
p1air_pressure_at_surface_adjacent_layerModel layer 1 mean pressurePareal(ccpp_constant_one:horizontal_loop_extent)kind_physin
roughness_lengthsurface_roughness_lengthsurface roughness lengthcmreal(ccpp_constant_one:horizontal_loop_extent)kind_physin
spec_sh_fluxspecified_surface_upward_temperature_fluxspecified kinematic surface upward sensible heat fluxK m s-1real(ccpp_constant_one:horizontal_loop_extent)kind_physin
spec_lh_fluxspecified_surface_upward_specific_humidity_fluxspecified kinematic surface upward latent heat fluxkg kg-1 m s-1real(ccpp_constant_one:horizontal_loop_extent)kind_physin
exner_inverseratio_of_exner_function_between_midlayer_and_interface_at_lowest_model_layerExner function ratio bt midlayer and interface at 1st layerratioreal(ccpp_constant_one:horizontal_loop_extent)kind_physin
T_surfsurface_skin_temperaturesurface skin temperatureKreal(ccpp_constant_one:horizontal_loop_extent)kind_physin
cpspecific_heat_of_dry_air_at_constant_pressurespecific heat of dry air at constant pressureJ kg-1 K-1real()kind_physin
gravgravitational_accelerationgravitational accelerationm s-2real()kind_physin
hvaplatent_heat_of_vaporization_of_water_at_0clatent heat of vaporization of water at 0CJ kg-1real()kind_physin
rdgas_constant_of_dry_airideal gas constant for dry airJ kg-1 K-1real()kind_physin
fvirtratio_of_vapor_to_dry_air_gas_constants_minus_onerv/rd - 1 (rv = ideal gas constant for water vapor)nonereal()kind_physin
vonKarmanvon_karman_constantVon Karman constantnonereal()kind_physin
tgicefreezing_point_temperature_of_seawaterfreezing point temperature of seawaterKreal()kind_physin
islmsksea_land_ice_masksea/land/ice mask (=0/1/2)flaginteger(ccpp_constant_one:horizontal_loop_extent)inout
dryflag_nonzero_land_surface_fractionflag indicating presence of some land surface area fractionflaglogical(ccpp_constant_one:horizontal_loop_extent)inout
frlandland_area_fraction_for_microphysicsland area fraction used in microphysics schemesfracreal(ccpp_constant_one:horizontal_loop_extent)kind_physout
cicesea_ice_area_fraction_of_sea_area_fractionice fraction over open waterfracreal(ccpp_constant_one:horizontal_loop_extent)kind_physinout
icyflag_nonzero_sea_ice_surface_fractionflag indicating presence of some sea ice surface area fractionflaglogical(ccpp_constant_one:horizontal_loop_extent)inout
tisfcsurface_skin_temperature_over_icesurface skin temperature over iceKreal(ccpp_constant_one:horizontal_loop_extent)kind_physinout
oceanfracsea_area_fractionfraction of horizontal grid area occupied by oceanfracreal(ccpp_constant_one:horizontal_loop_extent)kind_physin
min_seaicemin_sea_ice_area_fractionminimum sea ice valuefracreal()kind_physin
cplflxflag_for_surface_flux_couplingflag controlling cplflx collection (default off)flaglogical()in
cpliceflag_for_sea_ice_couplingflag controlling cplice collection (default on)flaglogical()in
flag_ciceflag_for_ciceflag for ciceflaglogical(ccpp_constant_one:horizontal_loop_extent)inout
wetflag_nonzero_wet_surface_fractionflag indicating presence of some ocean or lake surface area fractionflaglogical(ccpp_constant_one:horizontal_loop_extent)inout
min_lakeicemin_lake_ice_area_fractionminimum lake ice valuefracreal()kind_physin
tsfclsurface_skin_temperature_over_landsurface skin temperature over landKreal(ccpp_constant_one:horizontal_loop_extent)kind_physinout
tsfc_watsurface_skin_temperature_over_watersurface skin temperature over waterKreal(ccpp_constant_one:horizontal_loop_extent)kind_physinout
slmskarea_typelandmask: sea/land/ice=0/1/2flagreal(ccpp_constant_one:horizontal_loop_extent)kind_physinout
lakefraclake_area_fractionfraction of horizontal grid area occupied by lakefracreal(ccpp_constant_one:horizontal_loop_extent)kind_physin
lkmcontrol_for_lake_model_execution_methodcontrol for lake model execution: 0=no lake, 1=lake, 2=lake+nsstflaginteger()in
lakedepthlake_depthlake depthmreal(ccpp_constant_one:horizontal_loop_extent)kind_physin
use_lake_modelflag_for_using_lake_modelflag indicating lake points using a lake modelflaginteger(ccpp_constant_one:horizontal_loop_extent)inout
sh_fluxsurface_upward_temperature_fluxsurface upward sensible heat fluxK m s-1real(ccpp_constant_one:horizontal_loop_extent)kind_physout
lh_fluxsurface_upward_specific_humidity_fluxsurface upward evaporation fluxkg kg-1 m s-1real(ccpp_constant_one:horizontal_loop_extent)kind_physout
sh_flux_chskinematic_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_physout
u_starsurface_friction_velocityboundary layer parameterm s-1real(ccpp_constant_one:horizontal_loop_extent)kind_physout
sfc_stresssurface_wind_stresssurface wind stressm2 s-2real(ccpp_constant_one:horizontal_loop_extent)kind_physout
cmsurface_drag_coefficient_for_momentum_in_airsurface exchange coeff for momentumnonereal(ccpp_constant_one:horizontal_loop_extent)kind_physout
chsurface_drag_coefficient_for_heat_and_moisture_in_airsurface exchange coeff heat & moisturenonereal(ccpp_constant_one:horizontal_loop_extent)kind_physout
fmmonin_obukhov_similarity_function_for_momentumMonin-Obukhov similarity function for momentumnonereal(ccpp_constant_one:horizontal_loop_extent)kind_physout
fhmonin_obukhov_similarity_function_for_heatMonin-Obukhov similarity function for heatnonereal(ccpp_constant_one:horizontal_loop_extent)kind_physout
rbbulk_richardson_number_at_lowest_model_levelbulk Richardson number at the surfacenonereal(ccpp_constant_one:horizontal_loop_extent)kind_physout
u10mx_wind_at_10m10 meter u wind speedm s-1real(ccpp_constant_one:horizontal_loop_extent)kind_physout
v10my_wind_at_10m10 meter v wind speedm s-1real(ccpp_constant_one:horizontal_loop_extent)kind_physout
wind1wind_speed_at_lowest_model_layerwind speed at lowest model levelm s-1real(ccpp_constant_one:horizontal_loop_extent)kind_physout
qsssurface_specific_humiditysurface air saturation specific humiditykg kg-1real(ccpp_constant_one:horizontal_loop_extent)kind_physout
t2mair_temperature_at_2m2 meter temperatureKreal(ccpp_constant_one:horizontal_loop_extent)kind_physout
q2mspecific_humidity_at_2m2 meter specific humiditykg kg-1real(ccpp_constant_one:horizontal_loop_extent)kind_physout
errmsgccpp_error_messageerror message for error handling in CCPPnonecharacter()len=*out
errflgccpp_error_codeerror code for error handling in CCPP1integer()out

General Algorithm

  1. Compute friction velocity from the wind speed at the lowest model layer, the height about the ground, and the roughness length.
  2. Compute the surface stress from the friction velocity.
  3. Calculate the surface drag coefficient for momentum given the surface stress and wind on the lowest model layer.
  4. Calculate the Monin-Obukhov similarity funciton for momentum from the surface drag coefficient.
  5. Calculate the Obukhov length from the friction velocity, surface virtual potential temperature, and surface vertical virtual potential temperature flux.
  6. Calculate the bulk Richardson number at the lowest model layer.
  7. Calculate the Monin-Obukhov similarity function for heat and moisture from the bulk Richardson number and diagnosed similarity function for momentum.
  8. Calculate the surface drag coefficient for heat and moisture.
  9. Calculate the u and v wind at 10m.