Common Community Physics Package (CCPP) Scientific Documentation  Version 2.0
subroutine, public lsm_noah::lsm_noah_run ( integer, intent(in)  im,
integer, intent(in)  km,
real (kind=kind_phys), dimension(im), intent(in)  ps,
real (kind=kind_phys), dimension(im), intent(in)  u1,
real (kind=kind_phys), dimension(im), intent(in)  v1,
real (kind=kind_phys), dimension(im), intent(in)  t1,
real (kind=kind_phys), dimension(im), intent(in)  q1,
integer, dimension(im), intent(in)  soiltyp,
integer, dimension(im), intent(in)  vegtype,
real (kind=kind_phys), dimension(im), intent(in)  sigmaf,
real (kind=kind_phys), dimension(im), intent(in)  sfcemis,
real (kind=kind_phys), dimension(im), intent(in)  dlwflx,
real (kind=kind_phys), dimension(im), intent(in)  dswsfc,
real (kind=kind_phys), dimension(im), intent(in)  snet,
real (kind=kind_phys), intent(in)  delt,
real (kind=kind_phys), dimension(im), intent(in)  tg3,
real (kind=kind_phys), dimension(im), intent(in)  cm,
real (kind=kind_phys), dimension(im), intent(in)  ch,
real (kind=kind_phys), dimension(im), intent(in)  prsl1,
real (kind=kind_phys), dimension(im), intent(in)  prslki,
real (kind=kind_phys), dimension(im), intent(in)  zf,
integer, dimension(im), intent(in)  islimsk,
real (kind=kind_phys), dimension(im), intent(in)  ddvel,
integer, dimension(im), intent(in)  slopetyp,
real (kind=kind_phys), dimension(im), intent(in)  shdmin,
real (kind=kind_phys), dimension(im), intent(in)  shdmax,
real (kind=kind_phys), dimension(im), intent(in)  snoalb,
real (kind=kind_phys), dimension(im), intent(in)  sfalb,
logical, dimension(im), intent(in)  flag_iter,
logical, dimension(im), intent(in)  flag_guess,
integer, intent(in)  isot,
integer, intent(in)  ivegsrc,
real (kind=kind_phys), dimension(im), intent(in)  bexppert,
real (kind=kind_phys), dimension(im), intent(in)  xlaipert,
real (kind=kind_phys), dimension(im), intent(in)  vegfpert,
real (kind=kind_phys), dimension(5), intent(in)  pertvegf,
real (kind=kind_phys), dimension(im), intent(inout)  weasd,
real (kind=kind_phys), dimension(im), intent(inout)  snwdph,
real (kind=kind_phys), dimension(im), intent(inout)  tskin,
real (kind=kind_phys), dimension(im), intent(inout)  tprcp,
real (kind=kind_phys), dimension(im), intent(inout)  srflag,
real (kind=kind_phys), dimension(im,km), intent(inout)  smc,
real (kind=kind_phys), dimension(im,km), intent(inout)  stc,
real (kind=kind_phys), dimension(im,km), intent(inout)  slc,
real (kind=kind_phys), dimension(im), intent(inout)  canopy,
real (kind=kind_phys), dimension(im), intent(inout)  trans,
real (kind=kind_phys), dimension(im), intent(inout)  tsurf,
real (kind=kind_phys), dimension(im), intent(inout)  zorl,
real (kind=kind_phys), dimension(im), intent(inout)  sncovr1,
real (kind=kind_phys), dimension(im), intent(inout)  qsurf,
real (kind=kind_phys), dimension(im), intent(inout)  gflux,
real (kind=kind_phys), dimension(im), intent(inout)  drain,
real (kind=kind_phys), dimension(im), intent(inout)  evap,
real (kind=kind_phys), dimension(im), intent(inout)  hflx,
real (kind=kind_phys), dimension(im), intent(inout)  ep,
real (kind=kind_phys), dimension(im), intent(inout)  runoff,
real (kind=kind_phys), dimension(im), intent(inout)  cmm,
real (kind=kind_phys), dimension(im), intent(inout)  chh,
real (kind=kind_phys), dimension(im), intent(inout)  evbs,
real (kind=kind_phys), dimension(im), intent(inout)  evcw,
real (kind=kind_phys), dimension(im), intent(inout)  sbsno,
real (kind=kind_phys), dimension(im), intent(inout)  snowc,
real (kind=kind_phys), dimension(im), intent(inout)  stm,
real (kind=kind_phys), dimension(im), intent(inout)  snohf,
real (kind=kind_phys), dimension(im), intent(inout)  smcwlt2,
real (kind=kind_phys), dimension(im), intent(inout)  smcref2,
real (kind=kind_phys), dimension(im), intent(inout)  wet1,
character(len=*), intent(out)  errmsg,
integer, intent(out)  errflg 
)
  • Initialize CCPP error handling variables
  • Set flag for land points.
  • Save land-related prognostic fields for guess run.
  • initialize variables wind, q, and rh at level 1.
  • Prepare variables to run Noah LSM:
    • 1. configuration information (c):
    • 2. forcing data (f):
    • 3. other forcing (input) data (i):
    • 4. canopy/soil characteristics (s):
    • Call surface_perturbation::ppfbet() to perturb vegetation fraction that goes into gsflx().
    • 5. history (state) variables (h):
  • Call Noah LSM gfssflx().
  • Noah LSM: prepare variables for return to parent model and unit conversion.
    • 6. output (o):
      eta - actual latent heat flux ( \(W m^{-2}\): positive, if upward from sfc)
      sheat - sensible heat flux ( \(W m^{-2}\): positive, if upward from sfc)
      beta - ratio of actual/potential evap (dimensionless)
      etp - potential evaporation ( \(W m^{-2}\))
      ssoil - soil heat flux ( \(W m^{-2}\): negative if downward from surface)
      runoff1 - surface runoff ( \(m s^{-1}\)), not infiltrating the surface
      runoff2 - subsurface runoff ( \(m s^{-1}\)), drainage out bottom
    • Do not return the following output fields to parent model:
      ec - canopy water evaporation (m s-1)
      edir - direct soil evaporation (m s-1)
      et(nsoil)-plant transpiration from a particular root layer (m s-1)
      ett - total plant transpiration (m s-1)
      esnow - sublimation from (or deposition to if <0) snowpack (m s-1)
      drip - through-fall of precip and/or dew in excess of canopy water-holding capacity (m)
      dew - dewfall (or frostfall for t<273.15) (m)
      beta - ratio of actual/potential evap (dimensionless)
      flx1 - precip-snow sfc (w m-2)
      flx2 - freezing rain latent heat flux (w m-2)
      flx3 - phase-change heat flux from snowmelt (w m-2)
      snomlt - snow melt (m) (water equivalent)
      sncovr - fractional snow cover (unitless fraction, 0-1)
      runoff3 - numerical trunctation in excess of porosity (smcmax) for a given soil layer at the end of a time step
      rc - canopy resistance (s m-1)
      pc - plant coefficient (unitless fraction, 0-1) where pc*etp = actual transp
      xlai - leaf area index (dimensionless)
      rsmin - minimum canopy resistance (s m-1)
      rcs - incoming solar rc factor (dimensionless)
      rct - air temperature rc factor (dimensionless)
      rcq - atmos vapor pressure deficit rc factor (dimensionless)
      rcsoil - soil moisture rc factor (dimensionless)
      soilw - available soil moisture in root zone (unitless fraction between smcwlt and smcmax)
      soilm - total soil column moisture content (frozen+unfrozen) (m)
      smcwlt - wilting point (volumetric)
      smcdry - dry soil moisture threshold where direct evap frm top layer ends (volumetric)
      smcref - soil moisture threshold where transpiration begins to stress (volumetric)
      smcmax - porosity, i.e. saturated value of soil moisture (volumetric)
      nroot - number of root layers, a function of veg type, determined in subroutine redprm.
  • Compute specific humidity at surface (qsurf).
  • Compute surface upward sensible heat flux (hflx) and evaporation flux (evap).
  • Restore land-related prognostic fields for guess run.

References physcons::con_cp, physcons::con_eps, physcons::con_epsm1, physcons::con_fvirt, physcons::con_g, physcons::con_hvap, physcons::con_rd, funcphys::fpvs(), and gfssflx().

Here is the call graph for this function: