CCPP SciDoc  v6.0.0
Common Community Physics Package Developed at DTC

◆ lsm_noah_run()

subroutine, public lsm_noah::lsm_noah_run ( integer, intent(in)  im,
integer, intent(in)  km,
real (kind=kind_phys), intent(in)  grav,
real (kind=kind_phys), intent(in)  cp,
real (kind=kind_phys), intent(in)  hvap,
real (kind=kind_phys), intent(in)  rd,
real (kind=kind_phys), intent(in)  eps,
real (kind=kind_phys), intent(in)  epsm1,
real (kind=kind_phys), intent(in)  rvrdm1,
real (kind=kind_phys), dimension(:), intent(in)  ps,
real (kind=kind_phys), dimension(:), intent(in)  t1,
real (kind=kind_phys), dimension(:), intent(in)  q1,
integer, dimension(:), intent(in)  soiltyp,
integer, dimension(:), intent(in)  vegtype,
real (kind=kind_phys), dimension(:), intent(in)  sigmaf,
real (kind=kind_phys), dimension(:), intent(in)  sfcemis,
real (kind=kind_phys), dimension(:), intent(in)  dlwflx,
real (kind=kind_phys), dimension(:), intent(in)  dswsfc,
real (kind=kind_phys), intent(in)  delt,
real (kind=kind_phys), dimension(:), intent(in)  tg3,
real (kind=kind_phys), dimension(:), intent(in)  cm,
real (kind=kind_phys), dimension(:), intent(in)  ch,
real (kind=kind_phys), dimension(:), intent(in)  prsl1,
real (kind=kind_phys), dimension(:), intent(in)  prslki,
real (kind=kind_phys), dimension(:), intent(in)  zf,
logical, dimension(:), intent(in)  land,
real (kind=kind_phys), dimension(:), intent(in)  wind,
integer, dimension(:), intent(in)  slopetyp,
real (kind=kind_phys), dimension(:), intent(in)  shdmin,
real (kind=kind_phys), dimension(:), intent(in)  shdmax,
real (kind=kind_phys), dimension(:), intent(in)  snoalb,
real (kind=kind_phys), dimension(:), intent(in)  sfalb,
logical, dimension(:), intent(in)  flag_iter,
logical, dimension(:), intent(in)  flag_guess,
logical, intent(in)  lheatstrg,
integer, intent(in)  isot,
integer, intent(in)  ivegsrc,
real (kind=kind_phys), dimension(:), intent(in)  bexppert,
real (kind=kind_phys), dimension(:), intent(in)  xlaipert,
real (kind=kind_phys), dimension(:), intent(in)  vegfpert,
real (kind=kind_phys), intent(in)  pertvegf,
real (kind=kind_phys), dimension(:), intent(in)  albdvis_lnd,
real (kind=kind_phys), dimension(:), intent(in)  albdnir_lnd,
real (kind=kind_phys), dimension(:), intent(in)  albivis_lnd,
real (kind=kind_phys), dimension(:), intent(in)  albinir_lnd,
real (kind=kind_phys), dimension(:), intent(in)  adjvisbmd,
real (kind=kind_phys), dimension(:), intent(in)  adjnirbmd,
real (kind=kind_phys), dimension(:), intent(in)  adjvisdfd,
real (kind=kind_phys), dimension(:), intent(in)  adjnirdfd,
real (kind=kind_phys), dimension(:), intent(inout)  weasd,
real (kind=kind_phys), dimension(:), intent(inout)  snwdph,
real (kind=kind_phys), dimension(:), intent(inout)  tskin,
real (kind=kind_phys), dimension(:), intent(inout)  tprcp,
real (kind=kind_phys), dimension(:), intent(inout)  srflag,
real (kind=kind_phys), dimension(:,:), intent(inout)  smc,
real (kind=kind_phys), dimension(:,:), intent(inout)  stc,
real (kind=kind_phys), dimension(:,:), intent(inout)  slc,
real (kind=kind_phys), dimension(:), intent(inout)  canopy,
real (kind=kind_phys), dimension(:), intent(inout)  trans,
real (kind=kind_phys), dimension(:), intent(inout)  tsurf,
real (kind=kind_phys), dimension(:), intent(inout)  zorl,
real (kind=kind_phys), dimension(:), intent(inout)  sncovr1,
real (kind=kind_phys), dimension(:), intent(inout)  qsurf,
real (kind=kind_phys), dimension(:), intent(inout)  gflux,
real (kind=kind_phys), dimension(:), intent(inout)  drain,
real (kind=kind_phys), dimension(:), intent(inout)  evap,
real (kind=kind_phys), dimension(:), intent(inout)  hflx,
real (kind=kind_phys), dimension(:), intent(inout)  ep,
real (kind=kind_phys), dimension(:), intent(inout)  runoff,
real (kind=kind_phys), dimension(:), intent(inout)  cmm,
real (kind=kind_phys), dimension(:), intent(inout)  chh,
real (kind=kind_phys), dimension(:), intent(inout)  evbs,
real (kind=kind_phys), dimension(:), intent(inout)  evcw,
real (kind=kind_phys), dimension(:), intent(inout)  sbsno,
real (kind=kind_phys), dimension(:), intent(inout)  snowc,
real (kind=kind_phys), dimension(:), intent(inout)  stm,
real (kind=kind_phys), dimension(:), intent(inout)  snohf,
real (kind=kind_phys), dimension(:), intent(inout)  smcwlt2,
real (kind=kind_phys), dimension(:), intent(inout)  smcref2,
real (kind=kind_phys), dimension(:), intent(inout)  wet1,
real (kind=kind_phys), dimension(:), intent(inout)  lai,
real (kind=kind_phys), dimension(:), intent(inout)  rca,
character(len=*), intent(out)  errmsg,
integer, intent(out)  errflg 
)
  • Initialize CCPP error handling variables
  • Save land-related prognostic fields for guess run.
  • Initialize variables wind, q, and rh at level 1.
  • Prepare variables to run Noah LSM:
  • Call surface_perturbation::ppfbet() to perturb vegetation fraction that goes into gfssflx().
  • Apply perturbation of soil type b parameter and leave area index.
  • Call Noah LSM gfssflx().
  • Noah LSM: prepare variables for return to parent model and unit conversion.
  • 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 gfssflx(), and surface_perturbation::ppfbet().

Here is the call graph for this function: