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

◆ noahmpdrv_run()

subroutine, public noahmpdrv::noahmpdrv_run ( integer, intent(in)  im,
integer, intent(in)  km,
integer, intent(in)  lsnowl,
integer, intent(in)  itime,
real(kind=kind_phys), dimension(:), intent(in)  ps,
real(kind=kind_phys), dimension(:), intent(in)  u1,
real(kind=kind_phys), dimension(:), intent(in)  v1,
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)  dlwflx,
real(kind=kind_phys), dimension(:), intent(in)  dswsfc,
real(kind=kind_phys), dimension(:), intent(in)  snet,
real(kind=kind_phys), intent(in)  delt,
real(kind=kind_phys), dimension(:), intent(in)  tg3,
real(kind=kind_phys), dimension(:), intent(inout)  cm,
real(kind=kind_phys), dimension(:), intent(inout)  ch,
real(kind=kind_phys), dimension(:), intent(in)  prsl1,
real(kind=kind_phys), dimension(:), intent(in)  prslk1,
real(kind=kind_phys), dimension(:), intent(in)  prslki,
real(kind=kind_phys), dimension(:), intent(in)  prsik1,
real(kind=kind_phys), dimension(:), intent(in)  zf,
logical, dimension(:), intent(in)  dry,
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(inout)  sfalb,
logical, dimension(:), intent(in)  flag_iter,
real(kind=kind_phys), intent(in)  con_g,
integer, intent(in)  idveg,
integer, intent(in)  iopt_crs,
integer, intent(in)  iopt_btr,
integer, intent(in)  iopt_run,
integer, intent(in)  iopt_sfc,
integer, intent(in)  iopt_frz,
integer, intent(in)  iopt_inf,
integer, intent(in)  iopt_rad,
integer, intent(in)  iopt_alb,
integer, intent(in)  iopt_snf,
integer, intent(in)  iopt_tbot,
integer, intent(in)  iopt_stc,
integer, intent(in)  iopt_trs,
real(kind=kind_phys), dimension(:), intent(in)  xlatin,
real(kind=kind_phys), dimension(:), intent(in)  xcoszin,
integer, intent(in)  iyrlen,
real(kind=kind_phys), intent(in)  julian,
real(kind=kind_phys), dimension(:), intent(in)  garea,
real(kind=kind_phys), dimension(:), intent(in)  rainn_mp,
real(kind=kind_phys), dimension(:), intent(in)  rainc_mp,
real(kind=kind_phys), dimension(:), intent(in)  snow_mp,
real(kind=kind_phys), dimension(:), intent(in)  graupel_mp,
real(kind=kind_phys), dimension(:), intent(in)  ice_mp,
real(kind=kind_phys), intent(in)  con_hvap,
real(kind=kind_phys), intent(in)  con_cp,
real(kind=kind_phys), intent(in)  con_jcal,
real(kind=kind_phys), intent(in)  rhoh2o,
real(kind=kind_phys), intent(in)  con_eps,
real(kind=kind_phys), intent(in)  con_epsm1,
real(kind=kind_phys), intent(in)  con_fvirt,
real(kind=kind_phys), intent(in)  con_rd,
real(kind=kind_phys), intent(in)  con_hfus,
logical, intent(in)  thsfc_loc,
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)  rb1,
real(kind=kind_phys), dimension(:), intent(inout)  fm1,
real(kind=kind_phys), dimension(:), intent(inout)  fh1,
real(kind=kind_phys), dimension(:), intent(inout)  ustar1,
real(kind=kind_phys), dimension(:), intent(inout)  stress1,
real(kind=kind_phys), dimension(:), intent(inout)  fm101,
real(kind=kind_phys), dimension(:), intent(inout)  fh21,
real(kind=kind_phys), dimension(:), intent(inout)  snowxy,
real(kind=kind_phys), dimension(:), intent(inout)  tvxy,
real(kind=kind_phys), dimension(:), intent(inout)  tgxy,
real(kind=kind_phys), dimension(:), intent(inout)  canicexy,
real(kind=kind_phys), dimension(:), intent(inout)  canliqxy,
real(kind=kind_phys), dimension(:), intent(inout)  eahxy,
real(kind=kind_phys), dimension(:), intent(inout)  tahxy,
real(kind=kind_phys), dimension(:), intent(inout)  cmxy,
real(kind=kind_phys), dimension(:), intent(inout)  chxy,
real(kind=kind_phys), dimension(:), intent(inout)  fwetxy,
real(kind=kind_phys), dimension(:), intent(inout)  sneqvoxy,
real(kind=kind_phys), dimension(:), intent(inout)  alboldxy,
real(kind=kind_phys), dimension(:), intent(inout)  qsnowxy,
real(kind=kind_phys), dimension(:), intent(inout)  wslakexy,
real(kind=kind_phys), dimension(:), intent(inout)  zwtxy,
real(kind=kind_phys), dimension(:), intent(inout)  waxy,
real(kind=kind_phys), dimension(:), intent(inout)  wtxy,
real(kind=kind_phys), dimension(:,lsnowl:), intent(inout)  tsnoxy,
real(kind=kind_phys), dimension(:,lsnowl:), intent(inout)  zsnsoxy,
real(kind=kind_phys), dimension(:,lsnowl:), intent(inout)  snicexy,
real(kind=kind_phys), dimension(:,lsnowl:), intent(inout)  snliqxy,
real(kind=kind_phys), dimension(:), intent(inout)  lfmassxy,
real(kind=kind_phys), dimension(:), intent(inout)  rtmassxy,
real(kind=kind_phys), dimension(:), intent(inout)  stmassxy,
real(kind=kind_phys), dimension(:), intent(inout)  woodxy,
real(kind=kind_phys), dimension(:), intent(inout)  stblcpxy,
real(kind=kind_phys), dimension(:), intent(inout)  fastcpxy,
real(kind=kind_phys), dimension(:), intent(inout)  xlaixy,
real(kind=kind_phys), dimension(:), intent(inout)  xsaixy,
real(kind=kind_phys), dimension(:), intent(inout)  taussxy,
real(kind=kind_phys), dimension(:,:), intent(inout)  smoiseq,
real(kind=kind_phys), dimension(:), intent(inout)  smcwtdxy,
real(kind=kind_phys), dimension(:), intent(inout)  deeprechxy,
real(kind=kind_phys), dimension(:), intent(inout)  rechxy,
real(kind=kind_phys), dimension(:), intent(out)  albdvis,
real(kind=kind_phys), dimension(:), intent(out)  albdnir,
real(kind=kind_phys), dimension(:), intent(out)  albivis,
real(kind=kind_phys), dimension(:), intent(out)  albinir,
real(kind=kind_phys), dimension(:), intent(out)  emiss,
real(kind=kind_phys), dimension(:), intent(out)  sncovr1,
real(kind=kind_phys), dimension(:), intent(out)  qsurf,
real(kind=kind_phys), dimension(:), intent(out)  gflux,
real(kind=kind_phys), dimension(:), intent(out)  drain,
real(kind=kind_phys), dimension(:), intent(out)  evap,
real(kind=kind_phys), dimension(:), intent(out)  hflx,
real(kind=kind_phys), dimension(:), intent(out)  ep,
real(kind=kind_phys), dimension(:), intent(out)  runoff,
real(kind=kind_phys), dimension(:), intent(out)  cmm,
real(kind=kind_phys), dimension(:), intent(out)  chh,
real(kind=kind_phys), dimension(:), intent(out)  evbs,
real(kind=kind_phys), dimension(:), intent(out)  evcw,
real(kind=kind_phys), dimension(:), intent(out)  sbsno,
real(kind=kind_phys), dimension(:), intent(out)  pah,
real(kind=kind_phys), dimension(:), intent(out)  ecan,
real(kind=kind_phys), dimension(:), intent(out)  etran,
real(kind=kind_phys), dimension(:), intent(out)  edir,
real(kind=kind_phys), dimension(:), intent(out)  snowc,
real(kind=kind_phys), dimension(:), intent(out)  stm,
real(kind=kind_phys), dimension(:), intent(out)  snohf,
real(kind=kind_phys), dimension(:), intent(out)  smcwlt2,
real(kind=kind_phys), dimension(:), intent(out)  smcref2,
real(kind=kind_phys), dimension(:), intent(out)  wet1,
real(kind=kind_phys), dimension(:), intent(out)  t2mmp,
real(kind=kind_phys), dimension(:), intent(out)  q2mp,
real(kind=kind_phys), dimension(:), intent(out)  zvfun,
character(len=*), intent(out)  errmsg,
integer, intent(out)  errflg 
)

Argument Table

noahmpdrv_run argument table
local_namestandard_namelong_nameunitstypedimensionskindintent
imhorizontal_loop_extenthorizontal dimensioncountinteger()in
kmvertical_dimension_of_soilsoil vertical layer dimensioncountinteger()in
lsnowllower_bound_of_vertical_dimension_of_surface_snowlower bound of of snow-related arrays for land surface modelcountinteger()in
itimeindex_of_timestepcurrent forecast iterationindexinteger()in
pssurface_air_pressuresurface pressurePareal(ccpp_constant_one:horizontal_loop_extent)kind_physin
u1x_wind_at_surface_adjacent_layerzonal wind at lowest model layerm s-1real(ccpp_constant_one:horizontal_loop_extent)kind_physin
v1y_wind_at_surface_adjacent_layermeridional wind at lowest model layerm s-1real(ccpp_constant_one:horizontal_loop_extent)kind_physin
t1air_temperature_at_surface_adjacent_layermean temperature at lowest model layerKreal(ccpp_constant_one:horizontal_loop_extent)kind_physin
q1specific_humidity_at_surface_adjacent_layerwater vapor specific humidity at lowest model layerkg kg-1real(ccpp_constant_one:horizontal_loop_extent)kind_physin
soiltypsoil_type_classificationsoil type at each grid cellindexinteger(ccpp_constant_one:horizontal_loop_extent)in
vegtypevegetation_type_classificationvegetation type at each grid cellindexinteger(ccpp_constant_one:horizontal_loop_extent)in
sigmafbounded_vegetation_area_fractionareal fractional cover of green vegetation bounded on the bottomfracreal(ccpp_constant_one:horizontal_loop_extent)kind_physin
dlwflxsurface_downwelling_longwave_fluxsurface downwelling longwave flux at current timeW m-2real(ccpp_constant_one:horizontal_loop_extent)kind_physin
dswsfcsurface_downwelling_shortwave_fluxsurface downwelling shortwave flux at current timeW m-2real(ccpp_constant_one:horizontal_loop_extent)kind_physin
snetsurface_net_downwelling_shortwave_fluxsurface net downwelling shortwave flux at current timeW m-2real(ccpp_constant_one:horizontal_loop_extent)kind_physin
delttimestep_for_dynamicsdynamics timestepsreal()kind_physin
tg3deep_soil_temperaturedeep soil temperatureKreal(ccpp_constant_one:horizontal_loop_extent)kind_physin
cmsurface_drag_coefficient_for_momentum_in_air_over_landsurface exchange coeff for momentum over landnonereal(ccpp_constant_one:horizontal_loop_extent)kind_physinout
chsurface_drag_coefficient_for_heat_and_moisture_in_air_over_landsurface exchange coeff heat & moisture over landnonereal(ccpp_constant_one:horizontal_loop_extent)kind_physinout
prsl1air_pressure_at_surface_adjacent_layermean pressure at lowest model layerPareal(ccpp_constant_one:horizontal_loop_extent)kind_physin
prslk1dimensionless_exner_function_at_surface_adjacent_layerdimensionless Exner function at the lowest model layernonereal(ccpp_constant_one:horizontal_loop_extent)kind_physin
prslkiratio_of_exner_function_between_midlayer_and_interface_at_lowest_model_layerExner function ratio bt midlayer and interface at 1st layerratioreal(ccpp_constant_one:horizontal_loop_extent)kind_physin
prsik1surface_dimensionless_exner_functiondimensionless Exner function at the ground surfacenonereal(ccpp_constant_one:horizontal_loop_extent)kind_physin
zfheight_above_ground_at_lowest_model_layerlayer 1 height above ground (not MSL)mreal(ccpp_constant_one:horizontal_loop_extent)kind_physin
dryflag_nonzero_land_surface_fractionflag indicating presence of some land surface area fractionflaglogical(ccpp_constant_one:horizontal_loop_extent)in
windwind_speed_at_lowest_model_layerwind speed at lowest model levelm s-1real(ccpp_constant_one:horizontal_loop_extent)kind_physin
slopetypsurface_slope_classificationsurface slope type at each grid cellindexinteger(ccpp_constant_one:horizontal_loop_extent)in
shdminmin_vegetation_area_fractionmin fractional coverage of green vegetationfracreal(ccpp_constant_one:horizontal_loop_extent)kind_physin
shdmaxmax_vegetation_area_fractionmax fractional coverage of green vegetationfracreal(ccpp_constant_one:horizontal_loop_extent)kind_physin
snoalbupper_bound_of_max_albedo_assuming_deep_snowmaximum snow albedofracreal(ccpp_constant_one:horizontal_loop_extent)kind_physin
sfalbsurface_albedo_for_diffused_shortwave_on_radiation_timestepmean surface diffused sw albedofracreal(ccpp_constant_one:horizontal_loop_extent)kind_physinout
flag_iterflag_for_iterationflag for iterationflaglogical(ccpp_constant_one:horizontal_loop_extent)in
con_ggravitational_accelerationgravitational accelerationm s-2real()kind_physin
idvegcontrol_for_land_surface_scheme_dynamic_vegetationchoice for dynamic vegetation option (see noahmp module for definition)indexinteger()in
iopt_crscontrol_for_land_surface_scheme_canopy_stomatal_resistancechoice for canopy stomatal resistance option (see noahmp module for definition)indexinteger()in
iopt_btrcontrol_for_land_surface_scheme_soil_moisture_factor_stomatal_resistancechoice for soil moisture factor for canopy stomatal resistance option (see noahmp module for definition)indexinteger()in
iopt_runcontrol_for_land_surface_scheme_runoff_and_groundwaterchoice for runoff and groundwater option (see noahmp module for definition)indexinteger()in
iopt_sfccontrol_for_land_surface_scheme_surface_layer_drag_coefficientchoice for surface layer drag coefficient option (see noahmp module for definition)indexinteger()in
iopt_frzcontrol_for_land_surface_scheme_supercooled_liquid_waterchoice for supercooled liquid water option (see noahmp module for definition)indexinteger()in
iopt_infcontrol_for_land_surface_scheme_frozen_soil_permeabilitychoice for frozen soil permeability option (see noahmp module for definition)indexinteger()in
iopt_radcontrol_for_land_surface_scheme_radiative_transferchoice for radiation transfer option (see noahmp module for definition)indexinteger()in
iopt_albcontrol_for_land_surface_scheme_surface_snow_albedochoice for ground snow surface albedo option (see noahmp module for definition)indexinteger()in
iopt_snfcontrol_for_land_surface_scheme_precipitation_type_partitionchoice for precipitation partition option (see noahmp module for definition)indexinteger()in
iopt_tbotcontrol_for_land_surface_scheme_lower_boundary_soil_temperaturechoice for lower boundary soil temperature option (see noahmp module for definition)indexinteger()in
iopt_stccontrol_for_land_surface_scheme_soil_and_snow_temperature_time_integrationchoice for soil and snow temperature time stepping option (see noahmp module for definition)indexinteger()in
iopt_trscontrol_for_land_surface_scheme_surface_thermal_roughnesschoice for surface thermal roughness option (see noahmp module for definition)indexinteger()in
xlatinlatitudelatituderadianreal(ccpp_constant_one:horizontal_loop_extent)kind_physin
xcoszininstantaneous_cosine_of_zenith_anglecosine of zenith angle at current timenonereal(ccpp_constant_one:horizontal_loop_extent)kind_physin
iyrlennumber_of_days_in_current_yearnumber of days in a yeardaysinteger()in
julianforecast_julian_dayjulian daydaysreal()kind_physin
gareacell_areaarea of the grid cellm2real(ccpp_constant_one:horizontal_loop_extent)kind_physin
rainn_mpexplicit_precipitation_rate_on_previous_timestepexplicit rainfall rate previous timestepmm s-1real(ccpp_constant_one:horizontal_loop_extent)kind_physin
rainc_mpconvective_precipitation_rate_on_previous_timestepconvective precipitation rate from previous timestepmm s-1real(ccpp_constant_one:horizontal_loop_extent)kind_physin
snow_mpsnowfall_rate_on_previous_timestepsnow precipitation rate from previous timestepmm s-1real(ccpp_constant_one:horizontal_loop_extent)kind_physin
graupel_mpgraupel_precipitation_rate_on_previous_timestepgraupel precipitation rate from previous timestepmm s-1real(ccpp_constant_one:horizontal_loop_extent)kind_physin
ice_mpice_precipitation_rate_on_previous_timestepice precipitation rate from previous timestepmm s-1real(ccpp_constant_one:horizontal_loop_extent)kind_physin
con_hvaplatent_heat_of_vaporization_of_water_at_0clatent heat of evaporation/sublimationJ kg-1real()kind_physin
con_cpspecific_heat_of_dry_air_at_constant_pressurespecific heat of dry air at constant pressureJ kg-1 K-1real()kind_physin
con_jcaljoules_per_calorie_constantjoules per calorie constantJ cal-1real()kind_physin
rhoh2ofresh_liquid_water_density_at_0cdensity of liquid waterkg m-3real()kind_physin
con_epsratio_of_dry_air_to_water_vapor_gas_constantsrd/rvnonereal()kind_physin
con_epsm1ratio_of_dry_air_to_water_vapor_gas_constants_minus_one(rd/rv) - 1nonereal()kind_physin
con_fvirtratio_of_vapor_to_dry_air_gas_constants_minus_one(rv/rd) - 1 (rv = ideal gas constant for water vapor)nonereal()kind_physin
con_rdgas_constant_of_dry_airideal gas constant for dry airJ kg-1 K-1real()kind_physin
con_hfuslatent_heat_of_fusion_of_water_at_0clatent heat of fusionJ kg-1real()kind_physin
thsfc_locflag_for_reference_pressure_thetaflag for reference pressure in theta calculationflaglogical()in
weasdwater_equivalent_accumulated_snow_depth_over_landwater equiv of acc snow depth over landmmreal(ccpp_constant_one:horizontal_loop_extent)kind_physinout
snwdphsurface_snow_thickness_water_equivalent_over_landwater equivalent snow depth over landmmreal(ccpp_constant_one:horizontal_loop_extent)kind_physinout
tskinsurface_skin_temperature_over_landsurface skin temperature over landKreal(ccpp_constant_one:horizontal_loop_extent)kind_physinout
tprcpnonnegative_lwe_thickness_of_precipitation_amount_on_dynamics_timestep_over_landtotal precipitation amount in each time step over landmreal(ccpp_constant_one:horizontal_loop_extent)kind_physinout
srflagprecipitation_typesnow/rain flag for precipitationflagreal(ccpp_constant_one:horizontal_loop_extent)kind_physinout
smcvolume_fraction_of_condensed_water_in_soiltotal soil moisturefracreal(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_dimension_of_soil)kind_physinout
stcsoil_temperaturesoil temperatureKreal(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_dimension_of_soil)kind_physinout
slcvolume_fraction_of_unfrozen_water_in_soilliquid soil moisturefracreal(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_dimension_of_soil)kind_physinout
canopycanopy_water_amountcanopy water amountkg m-2real(ccpp_constant_one:horizontal_loop_extent)kind_physinout
transtranspiration_fluxtotal plant transpiration rateW m-2real(ccpp_constant_one:horizontal_loop_extent)kind_physinout
tsurfsurface_skin_temperature_after_iteration_over_landsurface skin temperature after iteration over landKreal(ccpp_constant_one:horizontal_loop_extent)kind_physinout
zorlsurface_roughness_length_over_landsurface roughness length over land (temporary use as interstitial)cmreal(ccpp_constant_one:horizontal_loop_extent)kind_physinout
rb1bulk_richardson_number_at_lowest_model_level_over_landbulk Richardson number at the surface over landnonereal(ccpp_constant_one:horizontal_loop_extent)kind_physinout
fm1monin_obukhov_similarity_function_for_momentum_over_landMonin-Obukhov similarity function for momentum over landnonereal(ccpp_constant_one:horizontal_loop_extent)kind_physinout
fh1monin_obukhov_similarity_function_for_heat_over_landMonin-Obukhov similarity function for heat over landnonereal(ccpp_constant_one:horizontal_loop_extent)kind_physinout
ustar1surface_friction_velocity_over_landsurface friction velocity over landm s-1real(ccpp_constant_one:horizontal_loop_extent)kind_physinout
stress1surface_wind_stress_over_landsurface wind stress over landm2 s-2real(ccpp_constant_one:horizontal_loop_extent)kind_physinout
fm101monin_obukhov_similarity_function_for_momentum_at_10m_over_landMonin-Obukhov similarity parameter for momentum at 10m over landnonereal(ccpp_constant_one:horizontal_loop_extent)kind_physinout
fh21monin_obukhov_similarity_function_for_heat_at_2m_over_landMonin-Obukhov similarity parameter for heat at 2m over landnonereal(ccpp_constant_one:horizontal_loop_extent)kind_physinout
snowxynumber_of_snow_layersnumber of snow layerscountreal(ccpp_constant_one:horizontal_loop_extent)kind_physinout
tvxycanopy_temperaturevegetation temperatureKreal(ccpp_constant_one:horizontal_loop_extent)kind_physinout
tgxyground_temperatureground temperature for noahmpKreal(ccpp_constant_one:horizontal_loop_extent)kind_physinout
canicexycanopy_intercepted_ice_masscanopy intercepted ice massmmreal(ccpp_constant_one:horizontal_loop_extent)kind_physinout
canliqxycanopy_intercepted_liquid_watercanopy intercepted liquid watermmreal(ccpp_constant_one:horizontal_loop_extent)kind_physinout
eahxyair_vapor_pressure_in_canopycanopy air vapor pressurePareal(ccpp_constant_one:horizontal_loop_extent)kind_physinout
tahxyair_temperature_in_canopycanopy air temperatureKreal(ccpp_constant_one:horizontal_loop_extent)kind_physinout
cmxysurface_drag_coefficient_for_momentum_for_noahmpsurface drag coefficient for momentum for noahmpnonereal(ccpp_constant_one:horizontal_loop_extent)kind_physinout
chxysurface_drag_coefficient_for_heat_and_moisture_for_noahmpsurface exchange coeff heat & moisture for noahmpnonereal(ccpp_constant_one:horizontal_loop_extent)kind_physinout
fwetxywet_canopy_area_fractionarea fraction of canopy that is wetted/snowednonereal(ccpp_constant_one:horizontal_loop_extent)kind_physinout
sneqvoxylwe_thickness_of_snowfall_amount_on_previous_timestepsnow mass at previous time stepmmreal(ccpp_constant_one:horizontal_loop_extent)kind_physinout
alboldxysurface_albedo_assuming_deep_snow_on_previous_timestepsnow albedo at previous time stepfracreal(ccpp_constant_one:horizontal_loop_extent)kind_physinout
qsnowxylwe_snowfall_ratesnow precipitation rate at surfacemm s-1real(ccpp_constant_one:horizontal_loop_extent)kind_physinout
wslakexywater_storage_in_lakelake water storagemmreal(ccpp_constant_one:horizontal_loop_extent)kind_physinout
zwtxywater_table_depthwater table depthmreal(ccpp_constant_one:horizontal_loop_extent)kind_physinout
waxywater_storage_in_aquiferwater storage in aquifermmreal(ccpp_constant_one:horizontal_loop_extent)kind_physinout
wtxywater_storage_in_aquifer_and_saturated_soilwater storage in aquifer and saturated soilmmreal(ccpp_constant_one:horizontal_loop_extent)kind_physinout
tsnoxytemperature_in_surface_snowtemperature_in_surface_snowKreal(ccpp_constant_one:horizontal_loop_extent, lower_bound_of_vertical_dimension_of_surface_snow:upper_bound_of_vertical_dimension_of_surface_snow)kind_physinout
zsnsoxydepth_from_snow_surface_at_bottom_interfacedepth from the top of the snow surface at the bottom of the layermreal(ccpp_constant_one:horizontal_loop_extent, lower_bound_of_vertical_dimension_of_surface_snow:vertical_dimension_of_soil_internal_to_land_surface_scheme)kind_physinout
snicexylwe_thickness_of_ice_in_surface_snowlwe_thickness_of_ice_in_surface_snowmmreal(ccpp_constant_one:horizontal_loop_extent, lower_bound_of_vertical_dimension_of_surface_snow:upper_bound_of_vertical_dimension_of_surface_snow)kind_physinout
snliqxylwe_thickness_of_liquid_water_in_surface_snowsnow layer liquid watermmreal(ccpp_constant_one:horizontal_loop_extent, lower_bound_of_vertical_dimension_of_surface_snow:upper_bound_of_vertical_dimension_of_surface_snow)kind_physinout
lfmassxyleaf_mass_contentleaf massg m-2real(ccpp_constant_one:horizontal_loop_extent)kind_physinout
rtmassxyfine_root_mass_contentfine root massg m-2real(ccpp_constant_one:horizontal_loop_extent)kind_physinout
stmassxystem_mass_contentstem massg m-2real(ccpp_constant_one:horizontal_loop_extent)kind_physinout
woodxywood_mass_contentwood mass including woody rootsg m-2real(ccpp_constant_one:horizontal_loop_extent)kind_physinout
stblcpxyslow_soil_pool_mass_content_of_carbonstable carbon in deep soilg m-2real(ccpp_constant_one:horizontal_loop_extent)kind_physinout
fastcpxyfast_soil_pool_mass_content_of_carbonshort-lived carbon in shallow soilg m-2real(ccpp_constant_one:horizontal_loop_extent)kind_physinout
xlaixyleaf_area_indexleaf area indexnonereal(ccpp_constant_one:horizontal_loop_extent)kind_physinout
xsaixystem_area_indexstem area indexnonereal(ccpp_constant_one:horizontal_loop_extent)kind_physinout
taussxydimensionless_age_of_surface_snownon-dimensional snow agenonereal(ccpp_constant_one:horizontal_loop_extent)kind_physinout
smoiseqvolumetric_equilibrium_soil_moistureequilibrium soil water contentm3 m-3real(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_dimension_of_soil_internal_to_land_surface_scheme)kind_physinout
smcwtdxyvolumetric_soil_moisture_between_soil_bottom_and_water_tablesoil water content between the bottom of the soil and the water tablem3 m-3real(ccpp_constant_one:horizontal_loop_extent)kind_physinout
deeprechxywater_table_recharge_assuming_deeprecharge to or from the water table when deepmreal(ccpp_constant_one:horizontal_loop_extent)kind_physinout
rechxywater_table_recharge_assuming_shallowrecharge to or from the water table when shallowmreal(ccpp_constant_one:horizontal_loop_extent)kind_physinout
albdvissurface_albedo_direct_visible_over_landdirect surface albedo visible band over landfracreal(ccpp_constant_one:horizontal_loop_extent)kind_physout
albdnirsurface_albedo_direct_nir_over_landdirect surface albedo NIR band over landfracreal(ccpp_constant_one:horizontal_loop_extent)kind_physout
albivissurface_albedo_diffuse_visible_over_landdiffuse surface albedo visible band over landfracreal(ccpp_constant_one:horizontal_loop_extent)kind_physout
albinirsurface_albedo_diffuse_nir_over_landdiffuse surface albedo NIR band over landfracreal(ccpp_constant_one:horizontal_loop_extent)kind_physout
emisssurface_longwave_emissivity_over_landsurface lw emissivity in fraction over landfracreal(ccpp_constant_one:horizontal_loop_extent)kind_physout
sncovr1surface_snow_area_fraction_over_landsurface snow area fractionfracreal(ccpp_constant_one:horizontal_loop_extent)kind_physout
qsurfsurface_specific_humidity_over_landsurface air saturation specific humidity over landkg kg-1real(ccpp_constant_one:horizontal_loop_extent)kind_physout
gfluxupward_heat_flux_in_soil_over_landsoil heat flux over landW m-2real(ccpp_constant_one:horizontal_loop_extent)kind_physout
drainsubsurface_runoff_fluxsubsurface runoff fluxkg m-2 s-1real(ccpp_constant_one:horizontal_loop_extent)kind_physout
evapkinematic_surface_upward_latent_heat_flux_over_landkinematic surface upward latent heat flux over landkg kg-1 m s-1real(ccpp_constant_one:horizontal_loop_extent)kind_physout
hflxkinematic_surface_upward_sensible_heat_flux_over_landkinematic surface upward sensible heat flux over landK m s-1real(ccpp_constant_one:horizontal_loop_extent)kind_physout
epsurface_upward_potential_latent_heat_flux_over_landsurface upward potential latent heat flux over landW m-2real(ccpp_constant_one:horizontal_loop_extent)kind_physout
runoffsurface_runoff_fluxsurface runoff fluxkg m-2 s-1real(ccpp_constant_one:horizontal_loop_extent)kind_physout
cmmsurface_drag_wind_speed_for_momentum_in_air_over_landmomentum exchange coefficient over landm s-1real(ccpp_constant_one:horizontal_loop_extent)kind_physout
chhsurface_drag_mass_flux_for_heat_and_moisture_in_air_over_landthermal exchange coefficient over landkg m-2 s-1real(ccpp_constant_one:horizontal_loop_extent)kind_physout
evbssoil_upward_latent_heat_fluxsoil upward latent heat fluxW m-2real(ccpp_constant_one:horizontal_loop_extent)kind_physout
evcwcanopy_upward_latent_heat_fluxcanopy upward latent heat fluxW m-2real(ccpp_constant_one:horizontal_loop_extent)kind_physout
sbsnosnow_deposition_sublimation_upward_latent_heat_fluxlatent heat flux from snow depo/sublW m-2real(ccpp_constant_one:horizontal_loop_extent)kind_physout
pahtotal_precipitation_advected_heatprecipitation advected heat - totalW m-2real(ccpp_constant_one:horizontal_loop_extent)kind_physout
ecanevaporation_of_intercepted_waterevaporation of intercepted waterkg m-2 s-1real(ccpp_constant_one:horizontal_loop_extent)kind_physout
etrantranspiration_ratetranspiration ratekg m-2 s-1real(ccpp_constant_one:horizontal_loop_extent)kind_physout
edirsoil_surface_evaporation_ratesoil surface evaporation ratekg m-2 s-1real(ccpp_constant_one:horizontal_loop_extent)kind_physout
snowcsurface_snow_area_fractionsurface snow area fractionfracreal(ccpp_constant_one:horizontal_loop_extent)kind_physout
stmsoil_moisture_contentsoil moisturekg m-2real(ccpp_constant_one:horizontal_loop_extent)kind_physout
snohfsnow_freezing_rain_upward_latent_heat_fluxlatent heat flux due to snow and frz rainW m-2real(ccpp_constant_one:horizontal_loop_extent)kind_physout
smcwlt2volume_fraction_of_condensed_water_in_soil_at_wilting_pointwilting point (volumetric)fracreal(ccpp_constant_one:horizontal_loop_extent)kind_physout
smcref2threshold_volume_fraction_of_condensed_water_in_soilsoil moisture threshold (volumetric)fracreal(ccpp_constant_one:horizontal_loop_extent)kind_physout
wet1normalized_soil_wetnessnormalized soil wetnessfracreal(ccpp_constant_one:horizontal_loop_extent)kind_physout
t2mmptemperature_at_2m_from_noahmp2 meter temperature from noahmpKreal(ccpp_constant_one:horizontal_loop_extent)kind_physout
q2mpspecific_humidity_at_2m_from_noahmp2 meter specific humidity from noahmpkg kg-1real(ccpp_constant_one:horizontal_loop_extent)kind_physout
zvfunfunction_of_surface_roughness_length_and_green_vegetation_fractionfunction of surface roughness length and green vegetation fractionnonereal(ccpp_constant_one:horizontal_loop_extent)kind_physout
errmsgccpp_error_messageerror message for error handling in CCPPnonecharacter()len=*out
errflgccpp_error_codeerror code for error handling in CCPP1integer()out

NoahMP Driver General Algorithm

  • Initialize CCPP error handling variables.
  • Set a flag to only continue with each grid cell if the fraction of land is non-zero.
  • This driver may be called as part of an iterative loop. If called as the first "guess" run, save land-related prognostic fields to restore.
  • Initialize output variables to zero and prepare variables for input into the NoahMP LSM.
  • Call transfer_mp_parameters() to fill a derived datatype for input into the NoahMP LSM.
  • Call noahmp_options() to set module-level scheme options for the NoahMP LSM.
  • If the vegetation type is ice for the grid cell, call noahmp_options_glacier() to set module-level scheme options for NoahMP Glacier and call noahmp_glacier().
  • For other vegetation types, call noahmp_sflx(), the entry point of the NoahMP LSM.
  • Set output variables from the output of noahmp_glacier() and/or noahmp_sflx().
  • Call penman() to calculate potential evaporation.
  • Calculate the surface specific humidity and convert surface sensible and latent heat fluxes in W m-2 from their kinematic values.
  • If a "guess" run, restore the land-related prognostic fields.

References module_sf_noahmplsm::noahmp_options(), module_sf_noahmplsm::noahmp_sflx(), penman(), module_sf_noahmplsm::snow_age(), module_sf_noahmplsm::snowfall(), sfc_diff::stability(), and transfer_mp_parameters().

Here is the call graph for this function: