CCPP SciDoc v7.0.0  v7.0.0
Common Community Physics Package Developed at DTC
 
Loading...
Searching...
No Matches

◆ lsm_ruc_run()

subroutine, public lsm_ruc::lsm_ruc_run ( integer, intent(in) iter,
integer, intent(in) me,
integer, intent(in) master,
real (kind_phys), intent(in) delt,
integer, intent(in) kdt,
integer, intent(in) im,
integer, intent(in) nlev,
integer, intent(in) lsm_ruc,
integer, intent(in) lsm,
integer, intent(in) imp_physics,
integer, intent(in) imp_physics_gfdl,
integer, intent(in) imp_physics_thompson,
integer, intent(in) imp_physics_nssl,
logical, intent(in) do_mynnsfclay,
logical, intent(in) exticeden,
integer, intent(in) lsoil_ruc,
integer, intent(in) lsoil,
integer, intent(in) mosaic_lu,
integer, intent(in) mosaic_soil,
integer, intent(in) isncond_opt,
integer, intent(in) isncovr_opt,
integer, intent(in) nlcat,
integer, intent(in) nscat,
logical, intent(in) rdlai,
real (kind_phys), dimension(:), intent(in) xlat_d,
real (kind_phys), dimension(:), intent(in) xlon_d,
real (kind_phys), dimension(:), intent(in) oro,
real (kind_phys), dimension(:), intent(in) sigma,
real (kind_phys), dimension(:), intent(in) zs,
real (kind_phys), dimension(:), intent(in) t1,
real (kind_phys), dimension(:), intent(in) q1,
real (kind_phys), dimension(:), intent(in) qc,
integer, dimension(:), intent(inout) stype,
integer, dimension(:), intent(in) vtype,
real (kind_phys), dimension(:,:), intent(in) vegtype_frac,
real (kind_phys), dimension(:,:), intent(in) soiltype_frac,
real (kind_phys), dimension(:), intent(in) sigmaf,
real (kind_phys), dimension(:), intent(inout), optional laixy,
real (kind_phys), dimension(:), intent(in) dlwflx,
real (kind_phys), dimension(:), intent(in) dswsfc,
real (kind_phys), dimension(:), intent(in) tg3,
real (kind_phys), dimension(:), intent(in) coszen,
logical, dimension(:), intent(in) land,
logical, dimension(:), intent(in) icy,
integer, dimension(:), intent(in) use_lake,
real (kind_phys), dimension(:), intent(in), optional rainnc,
real (kind_phys), dimension(:), intent(in), optional rainc,
real (kind_phys), dimension(:), intent(in), optional ice,
real (kind_phys), dimension(:), intent(in), optional snow,
real (kind_phys), dimension(:), intent(in), optional graupel,
real (kind_phys), dimension(:), intent(in) prsl1,
real (kind_phys), dimension(:), intent(in) zf,
real (kind_phys), dimension(:), intent(in) wind,
real (kind_phys), dimension(:), intent(in) shdmin,
real (kind_phys), dimension(:), intent(in) shdmax,
real (kind_phys), dimension(:), intent(in) srflag,
real (kind_phys), dimension(:), intent(in), optional sfalb_lnd_bck,
real (kind_phys), dimension(:), intent(in) snoalb,
integer, intent(in) isot,
integer, intent(in) ivegsrc,
real (kind_phys), dimension(:), intent(inout) fice,
real (kind_phys), dimension(:), intent(inout) smcwlt2,
real (kind_phys), dimension(:), intent(inout) smcref2,
real (kind_phys), intent(in) min_lakeice,
real (kind_phys), intent(in) min_seaice,
real (kind_phys), dimension(:), intent(in) oceanfrac,
real (kind_phys), dimension(:), intent(in) rhonewsn1,
real (kind_phys), intent(in) con_cp,
real (kind_phys), intent(in) con_rd,
real (kind_phys), intent(in) con_rv,
real (kind_phys), intent(in) con_g,
real (kind_phys), intent(in) con_pi,
real (kind_phys), intent(in) con_hvap,
real (kind_phys), intent(in) con_hfus,
real (kind_phys), intent(in) con_fvirt,
real (kind_phys), intent(in) stbolt,
real (kind_phys), intent(in) rhoh2o,
real (kind_phys), dimension(:), intent(inout) semisbase,
real (kind_phys), dimension(:), intent(inout) semis_lnd,
real (kind_phys), dimension(:), intent(inout) semis_ice,
real (kind_phys), dimension(:), intent(inout), optional sfalb_lnd,
real (kind_phys), dimension(:), intent(inout), optional sfalb_ice,
real (kind_phys), dimension(:), intent(inout) sncovr1_lnd,
real (kind_phys), dimension(:), intent(inout) weasd_lnd,
real (kind_phys), dimension(:), intent(inout) snwdph_lnd,
real (kind_phys), dimension(:), intent(inout) tskin_lnd,
real (kind_phys), dimension(:), intent(inout) sncovr1_ice,
real (kind_phys), dimension(:), intent(inout) weasd_ice,
real (kind_phys), dimension(:), intent(inout) snwdph_ice,
real (kind_phys), dimension(:), intent(inout) tskin_ice,
real (kind_phys), dimension(:,:), intent(inout), optional smois,
real (kind_phys), dimension(:,:), intent(inout) tsice,
real (kind_phys), dimension(:,:), intent(inout), optional tslb,
real (kind_phys), dimension(:,:), intent(inout), optional sh2o,
real (kind_phys), dimension(:,:), intent(inout), optional keepfr,
real (kind_phys), dimension(:,:), intent(inout), optional smfrkeep,
real (kind_phys), dimension(:), intent(inout) canopy,
real (kind_phys), dimension(:), intent(inout) trans,
real (kind_phys), dimension(:), intent(inout) tsurf_lnd,
real (kind_phys), dimension(:), intent(inout), optional tsnow_lnd,
real (kind_phys), dimension(:), intent(inout) z0rl_lnd,
real (kind_phys), dimension(:), intent(inout), optional sfcqc_lnd,
real (kind_phys), dimension(:), intent(inout), optional sfcqv_lnd,
real (kind_phys), dimension(:), intent(inout) qsurf_lnd,
real (kind_phys), dimension(:), intent(inout) gflux_lnd,
real (kind_phys), dimension(:), intent(inout) evap_lnd,
real (kind_phys), dimension(:), intent(inout) hflx_lnd,
real (kind_phys), dimension(:), intent(inout) runof,
real (kind_phys), dimension(:), intent(inout) runoff,
real (kind_phys), dimension(:), intent(inout) srunoff,
real (kind_phys), dimension(:), intent(inout) drain,
real (kind_phys), dimension(:), intent(in) cm_lnd,
real (kind_phys), dimension(:), intent(in) ch_lnd,
real (kind_phys), dimension(:), intent(inout) evbs,
real (kind_phys), dimension(:), intent(inout) evcw,
real (kind_phys), dimension(:), intent(inout) stm,
real (kind_phys), dimension(:), intent(inout), optional wetness,
real (kind_phys), dimension(:), intent(inout), optional snowfallac_lnd,
real (kind_phys), dimension(:), intent(inout) acsnow_lnd,
real (kind_phys), dimension(:), intent(inout) snowmt_lnd,
real (kind_phys), dimension(:), intent(inout) snohf,
real (kind_phys), dimension(:), intent(out) albdvis_lnd,
real (kind_phys), dimension(:), intent(out) albdnir_lnd,
real (kind_phys), dimension(:), intent(out) albivis_lnd,
real (kind_phys), dimension(:), intent(out) albinir_lnd,
real (kind_phys), dimension(:), intent(inout), optional sfcqc_ice,
real (kind_phys), dimension(:), intent(inout), optional sfcqv_ice,
real (kind_phys), dimension(:), intent(inout) tsurf_ice,
real (kind_phys), dimension(:), intent(inout), optional tsnow_ice,
real (kind_phys), dimension(:), intent(inout) z0rl_ice,
real (kind_phys), dimension(:), intent(inout) qsurf_ice,
real (kind_phys), dimension(:), intent(inout) gflux_ice,
real (kind_phys), dimension(:), intent(inout) evap_ice,
real (kind_phys), dimension(:), intent(inout) ep1d_ice,
real (kind_phys), dimension(:), intent(inout) hflx_ice,
real (kind_phys), dimension(:), intent(in) cm_ice,
real (kind_phys), dimension(:), intent(in) ch_ice,
real (kind_phys), dimension(:), intent(inout), optional snowfallac_ice,
real (kind_phys), dimension(:), intent(inout) acsnow_ice,
real (kind_phys), dimension(:), intent(inout) snowmt_ice,
real (kind_phys), dimension(:), intent(out), optional albdvis_ice,
real (kind_phys), dimension(:), intent(out), optional albdnir_ice,
real (kind_phys), dimension(:), intent(out), optional albivis_ice,
real (kind_phys), dimension(:), intent(out), optional albinir_ice,
logical, intent(in) add_fire_heat_flux,
real (kind_phys), dimension(:), intent(in), optional fire_heat_flux_out,
real (kind_phys), dimension(:), intent(in), optional frac_grid_burned_out,
real (kind_phys), dimension(:), intent(inout), optional rhosnf,
real (kind_phys), dimension(:), intent(inout) sbsno,
real (kind_phys), dimension(:), intent(inout) cmm_lnd,
real (kind_phys), dimension(:), intent(inout) chh_lnd,
real (kind_phys), dimension(:), intent(inout) cmm_ice,
real (kind_phys), dimension(:), intent(inout) chh_ice,
logical, dimension(:), intent(in) flag_iter,
logical, dimension(:), intent(in) flag_guess,
logical, intent(in) flag_init,
logical, intent(in) lsm_cold_start,
logical, dimension(:), intent(in) flag_cice,
logical, intent(in) frac_grid,
character(len=*), intent(out) errmsg,
integer, intent(out) errflg )
  • Set flag for land and ice points.

– number of soil categories

– set parameters for IGBP land-use data

  • Save land-related prognostic fields for guess run.
  • Prepare variables to run RUC LSM:
    • 1. configuration information (c):
      ffrozp - fraction of frozen precipitation
      frpcpn - .true. if mixed phase precipitation available
      1:im - horizontal_loop_extent
      fice - fraction of sea-ice in the grid cell
      delt - timestep (sec) (dt should not exceed 3600 secs)
      conflx2 - height ( \(m\)) above ground of atmospheric forcing variables
      lsoil_ruc - number of soil layers (= 6 or 9)
      zs - the depth of each soil level ( \(m\))
  • 2. forcing data (f):
    sfcprs - pressure at height zf above ground (pascals)
    sfctmp - air temperature ( \(K\)) at height zf above ground
    q2 - water vapor mix. ratio at height zf above ground ( \(kg kg^{-1}\))
    qcatm - cloud water mixing ratio at height zf above ground ( \(kg kg^{-1}\))
    rho2 - air density at height zf above ground (( \(kg m^{-3}\)))
  • 3. canopy/soil characteristics (s):
    vtype - vegetation type (integer index)
    stype - soil type (integer index)
    sfcems - surface emmisivity -> sfcemis
    sfalb_lnd_bck - backround snow-free surface albedo (fraction) -> albbck_lnd
    snoalb - upper bound on maximum albedo over deep snow -> snoalb1d_lnd
  • Prepare land/ice/water masks for RUC LSM
  • 4. history (state) variables (h):
    cmc - canopy moisture content ( \(mm\))
    soilt = tskin - ground/canopy/snowpack effective skin temperature ( \(K\))
    soilt1 = snowpack temperature at the bottom of the 1st layer ( \(K\))
    tslb(lsoil_ruc) - soil temp ( \(K\)) -> stsoil
    smois(lsoil_ruc) - total soil moisture content (volumetric fraction) -> smsoil
    sh2o(lsoil_ruc) - unfrozen soil moisture content (volumetric fraction) -> slsoil
    smfrsoil(lsoil_ruc) - frozen soil moisture content (volumetric fraction) -> smfrsoil
    keepfrflag(lsoil_ruc) - flag for frozen soil physics: 0. or 1.
    wet - soil moisture availability at surface
    snowh_lnd - actual snow depth ( \(m\))
    sneqv_lnd - liquid water-equivalent snow depth ( \(m\))
    sncovr_lnd - fraction of snow in the grid cell
    chh_lnd - surface exchange coefficient for heat ( \(m s^{-1}\)) -> chs
    z0_lnd - surface roughness ( \(m\)) -> zorl( \(cm\))
    qsfc_lnd - specific humidity at surface ( \(kg kg^{-1}\))
    qvg_lnd - water vapor mixing ratio at surface ( \(kg kg^{-1}\))
    qsg_lnd - saturated water vapor mixing ratio at surface ( \(kg kg^{-1}\))
    qcg_lnd - cloud water mixing ratio at surface ( \(kg kg^{-1}\))
    solnet_lnd - net sw radiation flux (dn-up) ( \(W m^{-2}\))

– sanity checks on sneqv and snowh

  • RUC LSM: prepare variables for return to parent model and unit conversion.
    • 6. output (o):
      lh - actual latent heat flux ( \(W m^{-2}\): positive, if upward from sfc)
      hfx - sensible heat flux ( \(W m^{-2}\): positive, if upward from sfc)
      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
      snoh - phase-change heat flux from snowmelt ( \(W m^{-2}\))

– sanity checks on sneqv and snowh

  • Restore land-related prognostic fields for guess run.

Definition at line 327 of file lsm_ruc.F90.

References module_sf_ruclsm::lsmruc(), module_sf_ruclsm::rslf(), and module_sf_ruclsm::sfctmp().

Here is the call graph for this function: