GMTB Common Community Physics Package (CCPP) Scientific Documentation  Version 1.0
GFS Noah LSM Driver

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...

Detailed Description

Argument Table

local_name standard_name long_name units rank type kind intent optional
im horizontal_loop_extent horizontal loop extent count 0 integer in F
km soil_vertical_dimension soil vertical layer dimension count 0 integer in F
ps surface_air_pressure surface pressure Pa 1 real kind_phys in F
u1 x_wind_at_lowest_model_layer x component of 1st model layer wind m s-1 1 real kind_phys in F
v1 y_wind_at_lowest_model_layer y component of 1st model layer wind m s-1 1 real kind_phys in F
t1 air_temperature_at_lowest_model_layer 1st model layer air temperature K 1 real kind_phys in F
q1 specific_humidity_at_lowest_model_layer 1st model layer specific humidity kg kg-1 1 real kind_phys in F
soiltyp cell_soil_type soil type at each grid cell index 1 integer in F
vegtype cell_vegetation_type vegetation type at each grid cell index 1 integer in F
sigmaf vegetation_area_fraction areal fractional cover of green vegetation frac 1 real kind_phys in F
sfcemis surface_longwave_emissivity surface longwave emissivity frac 1 real kind_phys in F
dlwflx surface_downwelling_longwave_flux_absorbed_by_ground total sky surface downward longwave flux absorbed by the ground W m-2 1 real kind_phys in F
dswsfc surface_downwelling_shortwave_flux total sky surface downward shortwave flux W m-2 1 real kind_phys in F
snet surface_net_downwelling_shortwave_flux total sky surface net shortwave flux W m-2 1 real kind_phys in F
delt time_step_for_dynamics dynamics time step s 0 real kind_phys in F
tg3 deep_soil_temperature bottom soil temperature K 1 real kind_phys in F
cm surface_drag_coefficient_for_momentum_in_air surface exchange coeff for momentum none 1 real kind_phys in F
ch surface_drag_coefficient_for_heat_and_moisture_in_air surface exchange coeff heat & moisture none 1 real kind_phys in F
prsl1 air_pressure_at_lowest_model_layer Model layer 1 mean pressure Pa 1 real kind_phys in F
prslki ratio_of_exner_function_between_midlayer_and_interface_at_lowest_model_layer Exner function ratio bt midlayer and interface at 1st layer ratio 1 real kind_phys in F
zf height_above_mean_sea_level_at_lowest_model_layer height above MSL at 1st model layer m 1 real kind_phys in F
islimsk sea_land_ice_mask landmask: sea/land/ice=0/1/2 flag 1 integer in F
ddvel surface_wind_enhancement_due_to_convection surface wind enhancement due to convection m s-1 1 real kind_phys in F
slopetyp surface_slope_classification class of sfc slope index 1 integer in F
shdmin minimum_vegetation_area_fraction min fractional coverage of green veg frac 1 real kind_phys in F
shdmax maximum_vegetation_area_fraction max fractnl cover of green veg (not used) frac 1 real kind_phys in F
snoalb upper_bound_on_max_albedo_over_deep_snow upper bound on max albedo over deep snow frac 1 real kind_phys in F
sfalb surface_diffused_shortwave_albedo mean surface diffused shortwave albedo frac 1 real kind_phys in F
flag_iter flag_for_iteration flag for iteration flag 1 logical in F
flag_guess flag_for_guess_run flag for guess run flag 1 logical in F
isot soil_type soil type (not used) index 0 integer in F
ivegsrc vegetation_type vegetation type data source umd or igbp index 0 integer in F
weasd water_equivalent_accumulated_snow_depth water equivalent accumulated snow depth mm 1 real kind_phys inout F
snwdph surface_snow_thickness_water_equivalent water equivalent snow depth over land mm 1 real kind_phys inout F
tskin surface_skin_temperature surface skin temperature K 1 real kind_phys inout F
tprcp nonnegative_lwe_thickness_of_precipitation_amount_on_dynamics_timestep nonnegative precipitation amount in one dynamics time step m 1 real kind_phys inout F
srflag flag_for_precipitation_type flag for snow or rain precipitation flag 1 real kind_phys inout F
smc volume_fraction_of_soil_moisture volumetric fraction of soil moisture frac 2 real kind_phys inout F
stc soil_temperature soil temperature K 2 real kind_phys inout F
slc volume_fraction_of_unfrozen_soil_moisture volume fraction of unfrozen soil moisture frac 2 real kind_phys inout F
canopy canopy_water_amount canopy moisture content kg m-2 1 real kind_phys inout F
trans transpiration_flux total plant transpiration rate kg m-2 s-1 1 real kind_phys inout F
tsurf surface_skin_temperature_after_iteration surface skin temperature after iteration K 1 real kind_phys inout F
zorl surface_roughness_length surface roughness length cm 1 real kind_phys inout F
sncovr1 surface_snow_area_fraction_for_diagnostics surface snow area fraction frac 1 real kind_phys inout F
qsurf surface_specific_humidity surface specific humidity kg kg-1 1 real kind_phys inout F
gflux upward_heat_flux_in_soil upward soil heat flux W m-2 1 real kind_phys inout F
drain subsurface_runoff_flux subsurface runoff flux g m-2 s-1 1 real kind_phys inout F
evap kinematic_surface_upward_latent_heat_flux surface upward evaporation flux kg kg-1 m s-1 1 real kind_phys inout F
hflx kinematic_surface_upward_sensible_heat_flux surface upward sensible heat flux K m s-1 1 real kind_phys inout F
ep surface_upward_potential_latent_heat_flux surface upward potential latent heat flux W m-2 1 real kind_phys inout F
runoff surface_runoff_flux surface runoff flux g m-2 s-1 1 real kind_phys inout F
cmm surface_drag_wind_speed_for_momentum_in_air surf mom exch coef time mean surf wind m s-1 1 real kind_phys inout F
chh surface_drag_mass_flux_for_heat_and_moisture_in_air surf h&m exch coef time surf wind & density kg m-2 s-1 1 real kind_phys inout F
evbs soil_upward_latent_heat_flux soil upward latent heat flux W m-2 1 real kind_phys inout F
evcw canopy_upward_latent_heat_flux canopy upward latent heat flux W m-2 1 real kind_phys inout F
sbsno snow_deposition_sublimation_upward_latent_heat_flux latent heat flux from snow depo/subl W m-2 1 real kind_phys inout F
snowc surface_snow_area_fraction surface snow area fraction frac 1 real kind_phys inout F
stm soil_moisture_content soil moisture content kg m-2 1 real kind_phys inout F
snohf snow_freezing_rain_upward_latent_heat_flux latent heat flux due to snow and frz rain W m-2 1 real kind_phys inout F
smcwlt2 volume_fraction_of_condensed_water_in_soil_at_wilting_point soil water fraction at wilting point frac 1 real kind_phys inout F
smcref2 threshold_volume_fraction_of_condensed_water_in_soil soil moisture threshold frac 1 real kind_phys inout F
wet1 normalized_soil_wetness normalized soil wetness frac 1 real kind_phys inout F
errmsg error_message error message for error handling in CCPP none 0 character len=* out F
errflg error_flag error flag for error handling in CCPP flag 0 integer out F

GFS Noah Driver General Algorithm

subroutine lsm_noah::lsm_noah_run (im, km, ps, u1, v1, t1, q1, soiltyp, vegtype, sigmaf, sfcemis, dlwflx, dswsfc, snet, delt, tg3, cm, ch, prsl1, prslki, zf, islimsk, ddvel, slopetyp, shdmin, shdmax, snoalb, sfalb, flag_iter, flag_guess, isot, ivegsrc, 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, errmsg, errflg )
 

Function/Subroutine Documentation

subroutine 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(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 
)
  • Set flag for land points.
  • Save land-related prognostic fields for guess run.
  • Prepare variables to run Noah LSM:
    • 1. configuration information (c):
      ----------——————————
      couple - couple-uncouple flag (=1: coupled, =0: uncoupled)
      ffrozp - flag for snow-rain detection (1.=snow, 0.=rain)
      ice - sea-ice flag (=1: sea-ice, =0: land)
      dt - timestep (sec) (dt should not exceed 3600 secs) = delt
      zlvl - height ( \(m\)) above ground of atmospheric forcing variables
      nsoil - number of soil layers (at least 2)
      sldpth - the thickness of each soil layer ( \(m\))
    • 2. forcing data (f):
      ------------—————————
      lwdn - lw dw radiation flux ( \(W m^{-2}\))
      solnet - net sw radiation flux (dn-up) ( \(W m^{-2}\))
      sfcprs - pressure at height zlvl above ground (pascals)
      prcp - precip rate ( \(kg m^{-2} s^{-1}\))
      sfctmp - air temperature ( \(K\)) at height zlvl above ground
      th2 - air potential temperature ( \(K\)) at height zlvl above ground
      q2 - mixing ratio at height zlvl above ground ( \(kg kg^{-1}\))
    • 3. other forcing (input) data (i):
      ---------------————————
      sfcspd - wind speed ( \(m s^{-1}\)) at height zlvl above ground
      q2sat - sat mixing ratio at height zlvl above ground ( \(kg kg^{-1}\))
      dqsdt2 - slope of sat specific humidity curve at t=sfctmp ( \(kg kg^{-1} k^{-1}\))
    • 4. canopy/soil characteristics (s):
      ---------------———————
      vegtyp - vegetation type (integer index) -> vtype
      soiltyp - soil type (integer index) -> stype
      slopetyp- class of sfc slope (integer index) -> slope
      shdfac - areal fractional coverage of green vegetation (0.0-1.0)
      shdmin - minimum areal fractional coverage of green vegetation -> shdmin1d
      ptu - photo thermal unit (plant phenology for annuals/crops)
      alb - backround snow-free surface albedo (fraction)
      snoalb - upper bound on maximum albedo over deep snow -> snoalb1d
      tbot - bottom soil temperature (local yearly-mean sfc air temp)
    • 5. history (state) variables (h):
      ------------——————
      cmc - canopy moisture content ( \(m\))
      t1 - ground/canopy/snowpack effective skin temperature ( \(K\)) -> tsea
      stc(nsoil) - soil temp ( \(K\)) -> stsoil
      smc(nsoil) - total soil moisture content (volumetric fraction) -> smsoil
      sh2o(nsoil)- unfrozen soil moisture content (volumetric fraction) -> slsoil
      snowh - actual snow depth ( \(m\))
      sneqv - liquid water-equivalent snow depth ( \(m\))
      albedo - surface albedo including snow effect (unitless fraction)
      ch - surface exchange coefficient for heat and moisture ( \(m s^{-1}\)) -> chx
      cm - surface exchange coefficient for momentum ( \(m s^{-1}\)) -> cmx
      z0 - surface roughness ( \(m\)) -> zorl( \(cm\))
  • 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
  • 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().

Here is the call graph for this function: