CCPP Scientific Documentation
v4.1.0
GFS Noah LSM Model

This is Noah LSM driver module, with the functionality of preparing variables to run Noah LSM gfssflx(), calling Noah LSM and post-processing variables for return to the parent model suite including unit conversion, as well as diagnotics calculation. More...

Detailed Description

Argument Table

lsm_noah_run argument table
local_namestandard_namelong_nameunitstypedimensionskindintentoptional
imhorizontal_loop_extenthorizontal loop extentcountinteger()inFalse
kmsoil_vertical_dimensionsoil vertical layer dimensioncountinteger()inFalse
gravgravitational_accelerationgravitational accelerationm s-2real()kind_physinFalse
cpspecific_heat_of_dry_air_at_constant_pressurespecific heat of dry air at constant pressureJ kg-1 K-1real()kind_physinFalse
hvaplatent_heat_of_vaporization_of_water_at_0Clatent heat of evaporation/sublimationJ kg-1real()kind_physinFalse
rdgas_constant_dry_airideal gas constant for dry airJ kg-1 K-1real()kind_physinFalse
epsratio_of_dry_air_to_water_vapor_gas_constantsrd/rvnonereal()kind_physinFalse
epsm1ratio_of_dry_air_to_water_vapor_gas_constants_minus_one(rd/rv) - 1nonereal()kind_physinFalse
rvrdm1ratio_of_vapor_to_dry_air_gas_constants_minus_one(rv/rd) - 1 (rv = ideal gas constant for water vapor)nonereal()kind_physinFalse
pssurface_air_pressuresurface pressurePareal(horizontal_dimension)kind_physinFalse
t1air_temperature_at_lowest_model_layer1st model layer air temperatureKreal(horizontal_dimension)kind_physinFalse
q1water_vapor_specific_humidity_at_lowest_model_layer1st model layer specific humiditykg kg-1real(horizontal_dimension)kind_physinFalse
soiltypsoil_type_classificationsoil type at each grid cellindexinteger(horizontal_dimension)inFalse
vegtypevegetation_type_classificationvegetation type at each grid cellindexinteger(horizontal_dimension)inFalse
sigmafbounded_vegetation_area_fractionareal fractional cover of green vegetation bounded on the bottomfracreal(horizontal_dimension)kind_physinFalse
sfcemissurface_longwave_emissivity_over_land_interstitialsurface lw emissivity in fraction over land (temporary use as interstitial)fracreal(horizontal_dimension)kind_physinFalse
dlwflxsurface_downwelling_longwave_flux_absorbed_by_ground_over_landtotal sky surface downward longwave flux absorbed by the ground over landW m-2real(horizontal_dimension)kind_physinFalse
dswsfcsurface_downwelling_shortwave_fluxtotal sky surface downward shortwave fluxW m-2real(horizontal_dimension)kind_physinFalse
snetsurface_net_downwelling_shortwave_fluxtotal sky surface net shortwave fluxW m-2real(horizontal_dimension)kind_physinFalse
delttime_step_for_dynamicsdynamics time stepsreal()kind_physinFalse
tg3deep_soil_temperaturebottom soil temperatureKreal(horizontal_dimension)kind_physinFalse
cmsurface_drag_coefficient_for_momentum_in_air_over_landsurface exchange coeff for momentum over landnonereal(horizontal_dimension)kind_physinFalse
chsurface_drag_coefficient_for_heat_and_moisture_in_air_over_landsurface exchange coeff heat & moisture over landnonereal(horizontal_dimension)kind_physinFalse
prsl1air_pressure_at_lowest_model_layerModel layer 1 mean pressurePareal(horizontal_dimension)kind_physinFalse
prslkiratio_of_exner_function_between_midlayer_and_interface_at_lowest_model_layerExner function ratio bt midlayer and interface at 1st layerratioreal(horizontal_dimension)kind_physinFalse
zfheight_above_ground_at_lowest_model_layerheight above ground at 1st model layermreal(horizontal_dimension)kind_physinFalse
landflag_nonzero_land_surface_fractionflag indicating presence of some land surface area fractionflaglogical(horizontal_dimension)inFalse
windwind_speed_at_lowest_model_layerwind speed at lowest model levelm s-1real(horizontal_dimension)kind_physinFalse
slopetypsurface_slope_classificationsurface slope type at each grid cellindexinteger(horizontal_dimension)inFalse
shdminminimum_vegetation_area_fractionmin fractional coverage of green vegfracreal(horizontal_dimension)kind_physinFalse
shdmaxmaximum_vegetation_area_fractionmax fractnl cover of green veg (not used)fracreal(horizontal_dimension)kind_physinFalse
snoalbupper_bound_on_max_albedo_over_deep_snowupper bound on max albedo over deep snowfracreal(horizontal_dimension)kind_physinFalse
sfalbsurface_diffused_shortwave_albedomean surface diffused shortwave albedofracreal(horizontal_dimension)kind_physinFalse
flag_iterflag_for_iterationflag for iterationflaglogical(horizontal_dimension)inFalse
flag_guessflag_for_guess_runflag for guess runflaglogical(horizontal_dimension)inFalse
lheatstrgflag_for_canopy_heat_storageflag for canopy heat storage parameterizationflaglogical()inFalse
isotsoil_type_dataset_choicesoil type dataset choiceindexinteger()inFalse
ivegsrcvegetation_type_dataset_choiceland use dataset choiceindexinteger()inFalse
bexppertperturbation_of_soil_type_b_parameterperturbation of soil type "b" parameterfracreal(horizontal_dimension)kind_physinFalse
xlaipertperturbation_of_leaf_area_indexperturbation of leaf area indexfracreal(horizontal_dimension)kind_physinFalse
vegfpertperturbation_of_vegetation_fractionperturbation of vegetation fractionfracreal(horizontal_dimension)kind_physinFalse
pertvegfmagnitude_of_perturbation_of_vegetation_fractionmagnitude of perturbation of vegetation fractionfracreal(5)kind_physinFalse
weasdwater_equivalent_accumulated_snow_depth_over_landwater equiv of acc snow depth over landmmreal(horizontal_dimension)kind_physinoutFalse
snwdphsurface_snow_thickness_water_equivalent_over_landwater equivalent snow depth over landmmreal(horizontal_dimension)kind_physinoutFalse
tskinsurface_skin_temperature_over_land_interstitialsurface skin temperature over land (temporary use as interstitial)Kreal(horizontal_dimension)kind_physinoutFalse
tprcpnonnegative_lwe_thickness_of_precipitation_amount_on_dynamics_timestep_over_landtotal precipitation amount in each time step over landmreal(horizontal_dimension)kind_physinoutFalse
srflagflag_for_precipitation_typeflag for snow or rain precipitationflagreal(horizontal_dimension)kind_physinoutFalse
smcvolume_fraction_of_soil_moisturevolumetric fraction of soil moisturefracreal(horizontal_dimension, soil_vertical_dimension)kind_physinoutFalse
stcsoil_temperaturesoil temperatureKreal(horizontal_dimension, soil_vertical_dimension)kind_physinoutFalse
slcvolume_fraction_of_unfrozen_soil_moisturevolume fraction of unfrozen soil moisturefracreal(horizontal_dimension, soil_vertical_dimension)kind_physinoutFalse
canopycanopy_water_amountcanopy moisture contentkg m-2real(horizontal_dimension)kind_physinoutFalse
transtranspiration_fluxtotal plant transpiration rateW m-2real(horizontal_dimension)kind_physinoutFalse
tsurfsurface_skin_temperature_after_iteration_over_landsurface skin temperature after iteration over landKreal(horizontal_dimension)kind_physinoutFalse
zorlsurface_roughness_length_over_land_interstitialsurface roughness length over land (temporary use as interstitial)cmreal(horizontal_dimension)kind_physinoutFalse
sncovr1surface_snow_area_fraction_over_landsurface snow area fractionfracreal(horizontal_dimension)kind_physinoutFalse
qsurfsurface_specific_humidity_over_landsurface air saturation specific humidity over landkg kg-1real(horizontal_dimension)kind_physinoutFalse
gfluxupward_heat_flux_in_soil_over_landsoil heat flux over landW m-2real(horizontal_dimension)kind_physinoutFalse
drainsubsurface_runoff_fluxsubsurface runoff fluxkg m-2 s-1real(horizontal_dimension)kind_physinoutFalse
evapkinematic_surface_upward_latent_heat_flux_over_landkinematic surface upward latent heat flux over landkg kg-1 m s-1real(horizontal_dimension)kind_physinoutFalse
hflxkinematic_surface_upward_sensible_heat_flux_over_landkinematic surface upward sensible heat flux over landK m s-1real(horizontal_dimension)kind_physinoutFalse
epsurface_upward_potential_latent_heat_flux_over_landsurface upward potential latent heat flux over landW m-2real(horizontal_dimension)kind_physinoutFalse
runoffsurface_runoff_fluxsurface runoff fluxkg m-2 s-1real(horizontal_dimension)kind_physinoutFalse
cmmsurface_drag_wind_speed_for_momentum_in_air_over_landmomentum exchange coefficient over landm s-1real(horizontal_dimension)kind_physinoutFalse
chhsurface_drag_mass_flux_for_heat_and_moisture_in_air_over_landthermal exchange coefficient over landkg m-2 s-1real(horizontal_dimension)kind_physinoutFalse
evbssoil_upward_latent_heat_fluxsoil upward latent heat fluxW m-2real(horizontal_dimension)kind_physinoutFalse
evcwcanopy_upward_latent_heat_fluxcanopy upward latent heat fluxW m-2real(horizontal_dimension)kind_physinoutFalse
sbsnosnow_deposition_sublimation_upward_latent_heat_fluxlatent heat flux from snow depo/sublW m-2real(horizontal_dimension)kind_physinoutFalse
snowcsurface_snow_area_fractionsurface snow area fractionfracreal(horizontal_dimension)kind_physinoutFalse
stmsoil_moisture_contentsoil moisture contentkg m-2real(horizontal_dimension)kind_physinoutFalse
snohfsnow_freezing_rain_upward_latent_heat_fluxlatent heat flux due to snow and frz rainW m-2real(horizontal_dimension)kind_physinoutFalse
smcwlt2volume_fraction_of_condensed_water_in_soil_at_wilting_pointsoil water fraction at wilting pointfracreal(horizontal_dimension)kind_physinoutFalse
smcref2threshold_volume_fraction_of_condensed_water_in_soilsoil moisture thresholdfracreal(horizontal_dimension)kind_physinoutFalse
wet1normalized_soil_wetnessnormalized soil wetnessfracreal(horizontal_dimension)kind_physinoutFalse
errmsgccpp_error_messageerror message for error handling in CCPPnonecharacter()len=*outFalse
errflgccpp_error_flagerror flag for error handling in CCPPflaginteger()outFalse

GFS sfc_drv General Algorithm

Collaboration diagram for GFS Noah LSM Model:

Modules

 GFS sfcsub Module
 This module contains grib code for each parameter-used in subroutines sfccycle() and setrmsk().
 

Modules

module  namelist_soilveg
 

Functions/Subroutines

subroutine, public lsm_noah::lsm_noah_init (me, isot, ivegsrc, nlunit,
 This subroutine contains the CCPP-compliant lsm_noah_init to initialize soil vegetation. More...
 
subroutine, public lsm_noah::lsm_noah_run (im, km, grav, cp, hvap, rd, eps, epsm1, rvrdm1, ps, t1, q1, soiltyp, vegtype, sigmaf, sfcemis, dlwflx, dswsfc, snet, delt, tg3, cm, ch, prsl1, prslki, zf, land, wind, slopetyp, shdmin, shdmax, snoalb, sfalb, flag_iter, flag_guess, lheatstrg, isot, ivegsrc, bexppert, xlaipert, vegfpert, pertvegf,
 
subroutine alcalc
 This subroutine calculates albedo including snow effect (0 -> 1). More...
 
subroutine sfcdif
 This subroutine calculates surface layer exchange coefficients via iterative process(see Chen et al.(1997) [33]). More...
 
subroutine, public set_soilveg_mod::set_soilveg (me, isot, ivet, nlunit)
 This subroutine initializes soil and vegetation. More...
 
subroutine gfssflx (nsoil, couple, icein, ffrozp, dt, zlvl, sldpth, swdn, swnet, lwdn, sfcems, sfcprs, sfctmp, sfcspd, prcp, q2, q2sat, dqsdt2, th2, ivegsrc, vegtyp, soiltyp, slopetyp, shdmin, alb, snoalb, bexpp, xlaip, lheatstrg, tbot, cmc, t1, stc, smc, sh2o, sneqv, ch, cm, z0, nroot, shdfac, snowh, albedo, eta, sheat, ec, edir, et, ett, esnow, drip, dew, beta, etp, ssoil, flx1, flx2, flx3, runoff1, runoff2, runoff3, snomlt, sncovr, rc, pc, rsmin, xlai, rcs, rct, rcq, rcsoil, soilw, soilm, smcwlt, smcdry, smcref, smcmax)
 This is the entity of GFS Noah LSM model of physics subroutines. It is a soil/veg/snowpack land-surface model to update soil moisture, soil ice, soil temperature, skin temperature, snowpack water content, snowdepth, and all terms of the surface energy balance and surface water balance (excluding input atmospheric forcings of downward radiation and precipitation). More...
 
subroutine canres
 This subroutine calculates canopy resistance which depends on incoming solar radiation, air temperature, atmospheric water vapor pressure deficit at the lowest model level, and soil moisture (preferably unfrozen soil moisture rather than total). More...
 
subroutine csnow
 This subroutine calculates snow termal conductivity. More...
 
subroutine nopac
 This subroutine calculates soil moisture and heat flux values and update soil moisture content and soil heat content values for the case when no snow pack is present. More...
 
subroutine penman
 This subroutine calculates potential evaporation for the current point. various partial sums/products are also calculated and passed back to the calling routine for later use. More...
 
subroutine redprm
 This subroutine internally sets default values or optionally read-in via namelist i/o, all soil and vegetation parateters requied for the execusion of the Noah LSM. More...
 
subroutine snfrac
 This subroutine calculates snow fraction (0->1). More...
 
subroutine snopac
 This subroutine calculates soil moisture and heat flux values and update soil moisture content and soil heat content values for the case when a snow pack is present. More...
 
subroutine snow_new
 This subroutine calculates snow depth and densitity to account for the new snowfall. new values of snow depth & density returned. More...
 
subroutine snowz0
 This subroutine calculates total roughness length over snow. More...
 
subroutine tdfcnd
 This subroutine calculates thermal diffusivity and conductivity of the soil for a given point and time. More...
 
subroutine evapo
 This subroutine calculates soil moisture flux. The soil moisture content (smc - a per unit volume measurement) is a dependent variable that is updated with prognostic equations. The canopy moisture content (cmc) is also updated. Frozen ground version: new states added: sh2o, and frozen ground correction factor, frzfact and paramter slope. More...
 
subroutine shflx
 This subroutine updates the temperature state of the soil column based on the thermal diffusion equation and update the frozen soil moisture content based on the temperature. More...
 
subroutine smflx
 This subroutine calculates soil moisture flux. The soil moisture content (smc - a per unit vulume measurement) is a dependent variable that is updated with prognostic equations. The canopy moisture content (cmc) is also updated. Frozen ground version: new states added: sh2o and frozen ground correction factor, frzx and parameter slope. More...
 
subroutine snowpack
 This subroutine calculates compaction of a snowpack under conditions of increasing snow density, as obtained from an approximate solution of E. Anderson's differential equation (3.29),NOAA technical report NWS 19, by Victor Koren, 03/25/95. subroutine will return new values of snowh and sndens . More...
 
subroutine devap
 This subrtouine calculates direct soil evaporation. More...
 
subroutine frh2o
 This subroutine calculates amount of supercooled liquid soil water content if temperature is below 273.15K (t0). It requires Newton-type iteration to solve the nonlinear implicit equation given in eqn 17 of Koren et al.(1999) [99]. More...
 
subroutine hrt
 This subroutine calculates the right hand side of the time tendency term of the soil thermal diffusion equation. Also to compute (prepare) the matrix coefficients for the tri-diagonal matrix of the implicit time scheme. More...
 
subroutine hrtice
 This subroutine calculates the right hand side of the time tendency term of the soil thermal diffusion equation for sea-ice (ice = 1) or glacial-ice (ice). More...
 
subroutine hstep
 This subroutine calculates/updates the soil temperature field. More...
 
subroutine rosr12
 This subroutine inverts (solve) the tri-diagonal matrix problem. More...
 
subroutine snksrc
 This subroutine calculates sink/source term of the termal diffusion equation. More...
 
subroutine srt
 This subroutine calculates the right hand side of the time tendency term of the soil water diffusion equation. Also to compute (prepare) the matrix coefficients for the tri-diagonal matrix of the implicit time scheme. More...
 
subroutine sstep
 This subroutine calculates/updates soil moisture content values and canopy moisture content values. More...
 
subroutine tbnd
 This subroutine calculates temperature on the boundary of the layer by interpolation of the middle layer temperatures. More...
 
subroutine tmpavg
 This subroutine calculates soil layer average temperature (tavg) in freezing/thawing layer using up, down, and middle layer temperature (tup, tdn, tm), where tup is at top boundary of layer, tdn is at bottom boundary of layer. tm is layer prognostic state temperature. More...
 
subroutine transp
 This subroutine calculates transpiration for the veg class. More...
 
subroutine wdfcnd
 This subroutine calculates soil water diffusivity and soil hydraulic conductivity. More...