CCPP Scientific Documentation
v5.0.0
subroutine, public module_sf_ruclsm::lsmruc ( real, intent(in)  DT,
logical, intent(in)  init,
logical, intent(in)  restart,
integer, intent(in)  KTAU,
integer, intent(in)  iter,
integer, intent(in)  NSL,
real, dimension( ims:ime , jms:jme ), intent(in)  graupelncv,
real, dimension( ims:ime , jms:jme ), intent(in)  snowncv,
real, dimension( ims:ime , jms:jme ), intent(in)  rainncv,
real, dimension( ims:ime , jms:jme ), intent(in)  raincv,
real, dimension( 1:nsl), intent(in)  ZS,
real, dimension( ims:ime , jms:jme ), intent(in)  RAINBL,
real, dimension( ims:ime , jms:jme ), intent(inout)  SNOW,
real, dimension( ims:ime , jms:jme ), intent(inout)  SNOWH,
real, dimension( ims:ime , jms:jme ), intent(inout)  SNOWC,
real, dimension( ims:ime , jms:jme ), intent(in)  FRZFRAC,
logical, intent(in)  frpcpn,
real, dimension( ims:ime, jms:jme ), intent(out)  rhosnf,
real, dimension( ims:ime, jms:jme ), intent(out)  precipfr,
real, dimension( ims:ime, kms:kme, jms:jme ), intent(in)  Z3D,
real, dimension( ims:ime, kms:kme, jms:jme ), intent(in)  P8W,
real, dimension( ims:ime, kms:kme, jms:jme ), intent(in)  T3D,
real, dimension( ims:ime, kms:kme, jms:jme ), intent(in)  QV3D,
real, dimension( ims:ime, kms:kme, jms:jme ), intent(in)  QC3D,
real, dimension( ims:ime, kms:kme, jms:jme ), intent(in)  RHO3D,
real, dimension( ims:ime , jms:jme ), intent(in)  GLW,
real, dimension( ims:ime , jms:jme ), intent(in)  GSW,
real, dimension( ims:ime , jms:jme ), intent(inout)  EMISS,
real, dimension( ims:ime, jms:jme ), intent(inout)  CHKLOWQ,
real, dimension( ims:ime , jms:jme ), intent(in)  CHS,
real, dimension( ims:ime , jms:jme ), intent(in)  FLQC,
real, dimension( ims:ime , jms:jme ), intent(in)  FLHC,
real, dimension( ims:ime , jms:jme ), intent(inout)  MAVAIL,
real, dimension( ims:ime , jms:jme ), intent(inout)  CANWAT,
real, dimension( ims:ime , jms:jme ), intent(in)  VEGFRA,
real, dimension( ims:ime , jms:jme ), intent(inout)  ALB,
real, dimension( ims:ime , jms:jme ), intent(inout)  ZNT,
real, dimension( ims:ime , jms:jme ), intent(inout)  Z0,
real, dimension( ims:ime , jms:jme ), intent(inout)  SNOALB,
real, dimension( ims:ime , jms:jme ), intent(in)  ALBBCK,
real, dimension( ims:ime , jms:jme ), intent(inout)  LAI,
real, dimension( ims:ime , 1:nlcat, jms:jme ), intent(in)  landusef,
integer, intent(in)  nlcat,
real, dimension( ims:ime , 1:nscat, jms:jme ), intent(in)  soilctop,
integer, intent(in)  nscat,
real, dimension( ims:ime, jms:jme ), intent(inout)  QSFC,
real, dimension( ims:ime, jms:jme ), intent(inout)  QSG,
real, dimension( ims:ime, jms:jme ), intent(inout)  QVG,
real, dimension( ims:ime, jms:jme ), intent(inout)  QCG,
real, dimension( ims:ime, jms:jme ), intent(inout)  DEW,
real, dimension( ims:ime, jms:jme ), intent(inout)  SOILT1,
real, dimension( ims:ime, jms:jme ), intent(inout)  TSNAV,
real, dimension( ims:ime , jms:jme ), intent(in)  TBOT,
integer, dimension( ims:ime , jms:jme ), intent(in)  IVGTYP,
integer, dimension( ims:ime , jms:jme ), intent(in)  ISLTYP,
real, dimension( ims:ime , jms:jme ), intent(in)  XLAND,
integer, intent(in)  ISWATER,
integer, intent(in)  ISICE,
real, dimension( ims:ime , jms:jme ), intent(in)  XICE,
real, intent(in)  XICE_THRESHOLD,
real, intent(in)  CP,
real, intent(in)  RV,
real, intent(in)  RD,
real, intent(in)  G0,
real, intent(in)  PI,
real, intent(in)  LV,
real, intent(in)  STBOLT,
real, dimension( ims:ime , 1:nsl, jms:jme ), intent(inout)  SOILMOIS,
real, dimension( ims:ime , 1:nsl, jms:jme ), intent(inout)  SH2O,
real, dimension( ims:ime, jms:jme ), intent(inout)  SMAVAIL,
real, dimension( ims:ime, jms:jme ), intent(inout)  SMMAX,
real, dimension( ims:ime , 1:nsl, jms:jme ), intent(inout)  TSO,
real, dimension( ims:ime, jms:jme ), intent(inout)  SOILT,
real, dimension( ims:ime, jms:jme ), intent(inout)  HFX,
real, dimension( ims:ime, jms:jme ), intent(inout)  QFX,
real, dimension( ims:ime, jms:jme ), intent(inout)  LH,
real, dimension( its:ite, jts:jte )  INFILTR,
real, dimension( ims:ime, jms:jme ), intent(inout)  RUNOFF1,
real, dimension( ims:ime, jms:jme ), intent(inout)  RUNOFF2,
real, dimension( ims:ime, jms:jme ), intent(inout)  ACRUNOFF,
real, dimension( ims:ime , jms:jme ), intent(inout)  SFCEXC,
real, dimension( ims:ime, jms:jme ), intent(inout)  SFCEVP,
real, dimension( ims:ime, jms:jme ), intent(inout)  GRDFLX,
real, dimension( ims:ime, jms:jme ), intent(out)  SNOWFALLAC,
real, dimension( ims:ime, jms:jme ), intent(inout)  ACSNOW,
real, dimension( ims:ime, jms:jme ), intent(inout)  SNOM,
real, dimension( ims:ime, 1:nsl, jms:jme)  SMFR3D,
real, dimension( ims:ime, 1:nsl, jms:jme)  KEEPFR3DFLAG,
logical, intent(in)  myj,
real, dimension( ims:ime , jms:jme ), intent(in)  shdmin,
real, dimension( ims:ime , jms:jme ), intent(in)  shdmax,
logical, intent(in)  rdlai2d,
integer, intent(in)  ims,
integer, intent(in)  ime,
integer, intent(in)  jms,
integer, intent(in)  jme,
integer, intent(in)  kms,
integer, intent(in)  kme,
integer, intent(in)  its,
integer, intent(in)  ite,
integer, intent(in)  jts,
integer, intent(in)  jte,
integer, intent(in)  kts,
integer, intent(in)  kte 
)

GSD RUC LSM General Algorithm

  • Table TBQ is for resolution of balance equation in vilka()
  • Initialize soil/vegetation parameters
    • Initializing snow fraction, thereshold = 32 mm of snow water or ~100 mm of snow height
    • Initializing inside snow temp if it is not defined
    • For RUC LSM CHKLOWQ needed for MYJPBL should 1 because is actual specific humidity at the surface, and not the saturation value
  • Z3D(1) is thickness between first full sigma level and the surface, but first mass level is at the half of the first sigma level (u and v are also at the half of first sigma level)
  • Initialize snow, graupel and ice fractions in frozen precip
  • Apply the same frozen precipitation fraction to convective precip
  • Calculate snow, graupel and ice fractions in falling frozen precip
  • If here no info about constituents of frozen precipitation, suppose it is all snow
  • Convert exchange coeff QKMS to [m/s]
  • Convert incoming snow and canwat from mm to m
  • Call soilvegin() to initialize soil and surface properties

References namelist_soilveg_ruc::cfactr_data, namelist_soilveg_ruc::crop, namelist_soilveg_ruc::lemitbl, namelist_soilveg_ruc::mosaic_lu, namelist_soilveg_ruc::mosaic_soil, namelist_soilveg_ruc::natural, qsn(), sfctmp(), and soilvegin().

Referenced by lsm_ruc::lsm_ruc_run().

Here is the call graph for this function: