CCPP SciDoc  v6.0.0
Common Community Physics Package Developed at DTC
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...

Modules

module  namelist_soilveg
 

Functions/Subroutines

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, 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, albdvis_lnd, albdnir_lnd, albivis_lnd, albinir_lnd, adjvisbmd, adjnirbmd, adjvisdfd, adjnirdfd, weasd, snwdph, tskin, tprcp, srflag, smc, stc, slc, canopy, trans, tsurf, zorl, sncovr1, qsurf, gflux, drain, evap, hflx, ep, runoff, cmm, chh, evbs, evcw, sbsno, snowc, stm, snohf, smcwlt2, smcref2, wet1, lai, rca, errmsg, errflg)
 
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 alcalc
 This subroutine calculates albedo including snow effect (0 -> 1). 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 sfcdif
 This subroutine calculates surface layer exchange coefficients via iterative process(see Chen et al.(1997) [36]). 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 (smc, qz, smcmax, sh2o, df)
 This subroutine calculates thermal diffusivity and conductivity of the soil for a given point and time. More...
 
subroutine evapo (nsoil, nroot, cmc, cmcmax, etp1, dt, zsoil, sh2o, smcmax, smcwlt, smcref, smcdry, pc, shdfac, cfactr, rtdis, fxexp, eta1, edir1, ec1, et1, ett1)
 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 (nsoil, smc, smcmax, dt, yy, zz1, zsoil, zbot, psisat, bexp, df1, ice, quartz, csoil, vegtyp, shdfac, lheatstrg, stc, t1, tbot, sh2o, ssoil)
 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 (nsoil, dt, kdt, smcmax, smcwlt, cmcmax, prcp1, zsoil, slope, frzx, bexp, dksat, dwsat, shdfac, edir1, ec1, et1, cmc, sh2o, smc, runoff1, runoff2, runoff3, drip)
 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 (esd, dtsec, tsnow, tsoil, snowh, sndens)
 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 (etp1, smc, shdfac, smcmax, smcdry, fxexp, edir1)
 This subrtouine calculates direct soil evaporation. More...
 
subroutine frh2o (tkelv, smc, sh2o, smcmax, bexp, psis, liqwat)
 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) [107]. More...
 
subroutine hrt (nsoil, stc, smc, smcmax, zsoil, yy, zz1, tbot, zbot, psisat, dt, bexp, df1, quartz, csoil, vegtyp, shdfac, lheatstrg, sh2o, rhsts, ai, bi, ci)
 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 (nsoil, stc, zsoil, yy, zz1, df1, ice, tbot, rhsts, ai, bi, ci)
 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 (nsoil, stcin, dt, rhsts, ai, bi, ci, stcout)
 This subroutine calculates/updates the soil temperature field. More...
 
subroutine rosr12 (nsoil, a, b, d, c, p, delta)
 This subroutine inverts (solve) the tri-diagonal matrix problem. More...
 
subroutine snksrc (nsoil, k, tavg, smc, smcmax, psisat, bexp, dt, qtot, zsoil, sh2o, tsrc)
 This subroutine calculates sink/source term of the termal diffusion equation. More...
 
subroutine srt (nsoil, edir, et, sh2o, sh2oa, pcpdrp, zsoil, dwsat, dksat, smcmax, bexp, dt, smcwlt, slope, kdt, frzx, sice, rhstt, runoff1, runoff2, ai, bi, ci)
 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 (nsoil, sh2oin, rhsct, dt, smcmax, cmcmax, zsoil, sice, cmc, rhstt, ai, bi, ci, sh2oout, runoff3, smc)
 This subroutine calculates/updates soil moisture content values and canopy moisture content values. More...
 
subroutine tbnd (tu, tb, zsoil, zbot, k, nsoil, tbnd1)
 This subroutine calculates temperature on the boundary of the layer by interpolation of the middle layer temperatures. More...
 
subroutine tmpavg (tup, tm, tdn, zsoil, nsoil, k, tavg)
 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 (nsoil, nroot, etp1, smc, smcwlt, smcref, cmc, cmcmax, zsoil, shdfac, pc, cfactr, rtdis, et1)
 This subroutine calculates transpiration for the veg class. More...
 
subroutine wdfcnd (smc, smcmax, bexp, dksat, dwsat, sicemax, wdf, wcnd)
 This subroutine calculates soil water diffusivity and soil hydraulic conductivity. More...
 
subroutine, public set_soilveg_mod::set_soilveg (me, isot, ivet, nlunit)
 This subroutine initializes soil and vegetation. More...
 

Detailed Description

Argument Table

lsm_noah_run argument table
local_namestandard_namelong_nameunitstypedimensionskindintent
imhorizontal_loop_extenthorizontal loop extentcountinteger()in
kmvertical_dimension_of_soilsoil vertical layer dimensioncountinteger()in
gravgravitational_accelerationgravitational accelerationm s-2real()kind_physin
cpspecific_heat_of_dry_air_at_constant_pressurespecific heat of dry air at constant pressureJ kg-1 K-1real()kind_physin
hvaplatent_heat_of_vaporization_of_water_at_0clatent heat of evaporation/sublimationJ kg-1real()kind_physin
rdgas_constant_of_dry_airideal gas constant for dry airJ kg-1 K-1real()kind_physin
epsratio_of_dry_air_to_water_vapor_gas_constantsrd/rvnonereal()kind_physin
epsm1ratio_of_dry_air_to_water_vapor_gas_constants_minus_one(rd/rv) - 1nonereal()kind_physin
rvrdm1ratio_of_vapor_to_dry_air_gas_constants_minus_one(rv/rd) - 1 (rv = ideal gas constant for water vapor)nonereal()kind_physin
pssurface_air_pressuresurface pressurePareal(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
soiltypsoil_type_classificationsoil type at each grid cellindexinteger(ccpp_constant_one:horizontal_loop_extent)in
vegtypevegetation_type_classificationvegetation type at each grid cellindexinteger(ccpp_constant_one:horizontal_loop_extent)in
sigmafbounded_vegetation_area_fractionareal fractional cover of green vegetation bounded on the bottomfracreal(ccpp_constant_one:horizontal_loop_extent)kind_physin
sfcemissurface_longwave_emissivity_over_landsurface lw emissivity in fraction over landfracreal(ccpp_constant_one:horizontal_loop_extent)kind_physin
dlwflxsurface_downwelling_longwave_flux_absorbed_by_ground_over_landtotal sky surface downward longwave flux absorbed by the ground over landW m-2real(ccpp_constant_one:horizontal_loop_extent)kind_physin
dswsfcsurface_downwelling_shortwave_fluxtotal sky surface downward shortwave fluxW m-2real(ccpp_constant_one:horizontal_loop_extent)kind_physin
delttimestep_for_dynamicsdynamics time stepsreal()kind_physin
tg3deep_soil_temperaturebottom soil temperatureKreal(ccpp_constant_one:horizontal_loop_extent)kind_physin
cmsurface_drag_coefficient_for_momentum_in_air_over_landsurface exchange coeff for momentum over landnonereal(ccpp_constant_one:horizontal_loop_extent)kind_physin
chsurface_drag_coefficient_for_heat_and_moisture_in_air_over_landsurface exchange coeff heat & moisture over landnonereal(ccpp_constant_one:horizontal_loop_extent)kind_physin
prsl1air_pressure_at_surface_adjacent_layerModel layer 1 mean pressurePareal(ccpp_constant_one:horizontal_loop_extent)kind_physin
prslkiratio_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
zfheight_above_ground_at_lowest_model_layerheight above ground at 1st model layermreal(ccpp_constant_one:horizontal_loop_extent)kind_physin
landflag_nonzero_land_surface_fractionflag indicating presence of some land surface area fractionflaglogical(ccpp_constant_one:horizontal_loop_extent)in
windwind_speed_at_lowest_model_layerwind speed at lowest model levelm s-1real(ccpp_constant_one:horizontal_loop_extent)kind_physin
slopetypsurface_slope_classificationsurface slope type at each grid cellindexinteger(ccpp_constant_one:horizontal_loop_extent)in
shdminmin_vegetation_area_fractionmin fractional coverage of green vegfracreal(ccpp_constant_one:horizontal_loop_extent)kind_physin
shdmaxmax_vegetation_area_fractionmax fractnl cover of green veg (not used)fracreal(ccpp_constant_one:horizontal_loop_extent)kind_physin
snoalbupper_bound_of_max_albedo_assuming_deep_snowupper bound on max albedo over deep snowfracreal(ccpp_constant_one:horizontal_loop_extent)kind_physin
sfalbsurface_albedo_for_diffused_shortwave_on_radiation_timestepmean surface diffused shortwave albedofracreal(ccpp_constant_one:horizontal_loop_extent)kind_physin
flag_iterflag_for_iterationflag for iterationflaglogical(ccpp_constant_one:horizontal_loop_extent)in
flag_guessflag_for_guess_runflag for guess runflaglogical(ccpp_constant_one:horizontal_loop_extent)in
lheatstrgflag_for_canopy_heat_storage_in_land_surface_schemeflag for canopy heat storage parameterizationflaglogical()in
isotcontrol_for_soil_type_datasetsoil type dataset choiceindexinteger()in
ivegsrccontrol_for_vegetation_datasetland use dataset choiceindexinteger()in
bexppertperturbation_of_soil_type_b_parameterperturbation of soil type "b" parameterfracreal(ccpp_constant_one:horizontal_loop_extent)kind_physin
xlaipertperturbation_of_leaf_area_indexperturbation of leaf area indexfracreal(ccpp_constant_one:horizontal_loop_extent)kind_physin
vegfpertperturbation_of_vegetation_fractionperturbation of vegetation fractionfracreal(ccpp_constant_one:horizontal_loop_extent)kind_physin
pertvegfmagnitude_of_perturbation_of_vegetation_fractionmagnitude of perturbation of vegetation fractionfracreal()kind_physin
albdvis_lndsurface_albedo_direct_visible_over_landdirect surface albedo visible band over landfracreal(ccpp_constant_one:horizontal_loop_extent)kind_physin
albdnir_lndsurface_albedo_direct_nir_over_landdirect surface albedo NIR band over landfracreal(ccpp_constant_one:horizontal_loop_extent)kind_physin
albivis_lndsurface_albedo_diffuse_visible_over_landdiffuse surface albedo visible band over landfracreal(ccpp_constant_one:horizontal_loop_extent)kind_physin
albinir_lndsurface_albedo_diffuse_nir_over_landdiffuse surface albedo NIR band over landfracreal(ccpp_constant_one:horizontal_loop_extent)kind_physin
adjvisbmdsurface_downwelling_direct_ultraviolet_and_visible_shortwave_fluxsurface downwelling beam ultraviolet plus visible shortwave flux at current timeW m-2real(ccpp_constant_one:horizontal_loop_extent)kind_physin
adjnirbmdsurface_downwelling_direct_near_infrared_shortwave_fluxsurface downwelling beam near-infrared shortwave flux at current timeW m-2real(ccpp_constant_one:horizontal_loop_extent)kind_physin
adjvisdfdsurface_downwelling_diffuse_ultraviolet_and_visible_shortwave_fluxsurface downwelling diffuse ultraviolet plus visible shortwave flux at current timeW m-2real(ccpp_constant_one:horizontal_loop_extent)kind_physin
adjnirdfdsurface_downwelling_diffuse_near_infrared_shortwave_fluxsurface downwelling diffuse near-infrared shortwave flux at current timeW m-2real(ccpp_constant_one:horizontal_loop_extent)kind_physin
weasdwater_equivalent_accumulated_snow_depth_over_landwater equiv of acc snow depth over landmmreal(ccpp_constant_one:horizontal_loop_extent)kind_physinout
snwdphsurface_snow_thickness_water_equivalent_over_landwater equivalent snow depth over landmmreal(ccpp_constant_one:horizontal_loop_extent)kind_physinout
tskinsurface_skin_temperature_over_landsurface skin temperature over landKreal(ccpp_constant_one:horizontal_loop_extent)kind_physinout
tprcpnonnegative_lwe_thickness_of_precipitation_amount_on_dynamics_timestep_over_landtotal precipitation amount in each time step over landmreal(ccpp_constant_one:horizontal_loop_extent)kind_physinout
srflagprecipitation_typeflag for snow or rain precipitationflagreal(ccpp_constant_one:horizontal_loop_extent)kind_physinout
smcvolume_fraction_of_condensed_water_in_soilvolumetric fraction of soil moisturefracreal(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_dimension_of_soil)kind_physinout
stcsoil_temperaturesoil temperatureKreal(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_dimension_of_soil)kind_physinout
slcvolume_fraction_of_unfrozen_water_in_soilvolume fraction of unfrozen soil moisturefracreal(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_dimension_of_soil)kind_physinout
canopycanopy_water_amountcanopy moisture contentkg m-2real(ccpp_constant_one:horizontal_loop_extent)kind_physinout
transtranspiration_fluxtotal plant transpiration rateW m-2real(ccpp_constant_one:horizontal_loop_extent)kind_physinout
tsurfsurface_skin_temperature_after_iteration_over_landsurface skin temperature after iteration over landKreal(ccpp_constant_one:horizontal_loop_extent)kind_physinout
zorlsurface_roughness_length_over_landsurface roughness length over landcmreal(ccpp_constant_one:horizontal_loop_extent)kind_physinout
sncovr1surface_snow_area_fraction_over_landsurface snow area fractionfracreal(ccpp_constant_one:horizontal_loop_extent)kind_physinout
qsurfsurface_specific_humidity_over_landsurface air saturation specific humidity over landkg kg-1real(ccpp_constant_one:horizontal_loop_extent)kind_physinout
gfluxupward_heat_flux_in_soil_over_landsoil heat flux over landW m-2real(ccpp_constant_one:horizontal_loop_extent)kind_physinout
drainsubsurface_runoff_fluxsubsurface runoff fluxkg m-2 s-1real(ccpp_constant_one:horizontal_loop_extent)kind_physinout
evapkinematic_surface_upward_latent_heat_flux_over_landkinematic surface upward latent heat flux over landkg kg-1 m s-1real(ccpp_constant_one:horizontal_loop_extent)kind_physinout
hflxkinematic_surface_upward_sensible_heat_flux_over_landkinematic surface upward sensible heat flux over landK m s-1real(ccpp_constant_one:horizontal_loop_extent)kind_physinout
epsurface_upward_potential_latent_heat_flux_over_landsurface upward potential latent heat flux over landW m-2real(ccpp_constant_one:horizontal_loop_extent)kind_physinout
runoffsurface_runoff_fluxsurface runoff fluxkg m-2 s-1real(ccpp_constant_one:horizontal_loop_extent)kind_physinout
cmmsurface_drag_wind_speed_for_momentum_in_air_over_landmomentum exchange coefficient over landm s-1real(ccpp_constant_one:horizontal_loop_extent)kind_physinout
chhsurface_drag_mass_flux_for_heat_and_moisture_in_air_over_landthermal exchange coefficient over landkg m-2 s-1real(ccpp_constant_one:horizontal_loop_extent)kind_physinout
evbssoil_upward_latent_heat_fluxsoil upward latent heat fluxW m-2real(ccpp_constant_one:horizontal_loop_extent)kind_physinout
evcwcanopy_upward_latent_heat_fluxcanopy upward latent heat fluxW m-2real(ccpp_constant_one:horizontal_loop_extent)kind_physinout
sbsnosnow_deposition_sublimation_upward_latent_heat_fluxlatent heat flux from snow depo/sublW m-2real(ccpp_constant_one:horizontal_loop_extent)kind_physinout
snowcsurface_snow_area_fractionsurface snow area fractionfracreal(ccpp_constant_one:horizontal_loop_extent)kind_physinout
stmsoil_moisture_contentsoil moisture contentkg m-2real(ccpp_constant_one:horizontal_loop_extent)kind_physinout
snohfsnow_freezing_rain_upward_latent_heat_fluxlatent heat flux due to snow and frz rainW m-2real(ccpp_constant_one:horizontal_loop_extent)kind_physinout
smcwlt2volume_fraction_of_condensed_water_in_soil_at_wilting_pointsoil water fraction at wilting pointfracreal(ccpp_constant_one:horizontal_loop_extent)kind_physinout
smcref2threshold_volume_fraction_of_condensed_water_in_soilsoil moisture thresholdfracreal(ccpp_constant_one:horizontal_loop_extent)kind_physinout
wet1normalized_soil_wetnessnormalized soil wetnessfracreal(ccpp_constant_one:horizontal_loop_extent)kind_physinout
laileaf_area_indexleaf area indexnonereal(ccpp_constant_one:horizontal_loop_extent)kind_physinout
rcaaerodynamic_resistance_in_canopycanopy resistances m-1real(ccpp_constant_one:horizontal_loop_extent)kind_physinout
errmsgccpp_error_messageerror message for error handling in CCPPnonecharacter()len=*out
errflgccpp_error_codeerror code for error handling in CCPP1integer()out

Noah LSM General Algorithm