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

This is the NoahMP LSM driver module, with the functionality of preparing variables to run the NoahMP LSM subroutine noahmp_sflx(), calling NoahMP LSM and post-processing variables for return to the parent model suite including unit conversion, as well as diagnotics calculation. More...

Modules

module  noahmp_glacier_routines
 This module contains NoahMP glacier routines.
 
module  noahmp_tables
 brief Data from MPTABLE.TBL, SOILPARM.TBL, GENPARM.TBL for NoahMP
 

Functions/Subroutines

subroutine, public noahmp_glacier_routines::noahmp_glacier ( iloc,jloc,cosz,nsnow,nsoil,dt, sfctmp,sfcprs,uu,vv,q2,soldn, prcp,lwdn,tbot,zlvl,ficeold,zsoil, thsfc_loc,prslkix,prsik1x,prslk1x, psfc,pblhx,iz0tlnd,itime, sigmaf1,garea1,psi_opt, ep_1,ep_2,epsm1,cp, qsnow,sneqvo,albold,cm,ch,isnow, sneqv,smc,zsnso,snowh,snice,snliq, tg,stc,sh2o,tauss,qsfc, fsa,fsr,fira,fsh,fgev,ssoil, trad,edir,runsrf,runsub,sag,albedo, qsnbot,ponding,ponding1,ponding2,t2m, q2e,z0h_total, ifdef ccpp
 
subroutine, private noahmp_glacier_routines::atm_glacier (ep_2, epsm1, sfcprs, sfctmp, q2, soldn, cosz, thair, qair, eair, rhoair, solad, solai, swdown)
 re-process atmospheric forcing
 
subroutine, private noahmp_glacier_routines::energy_glacier (nsnow,nsoil,isnow,dt,qsnow,rhoair, eair,sfcprs,qair,sfctmp,lwdn,uu, vv,solad,solai,cosz,zref, tbot,zbot,zsnso,dzsnso,sigmaf1,garea1, thsfc_loc,prslkix,prsik1x,prslk1x, psfc,pblhx,iz0tlnd,itime,psi_opt, ep_1, ep_2, epsm1, cp, tg,stc,snowh,sneqv,sneqvo,sh2o, smc,snice,snliq,albold,cm,ch, ifdef ccpp
 Compute energy budget (momentum & energy fluxes and phase changes).
 
subroutine, private noahmp_glacier_routines::thermoprop_glacier (nsoil, nsnow, isnow, dzsnso, dt, snowh, snice, snliq, df, hcpct, snicev, snliqv, epore, fact)
 calculate thermal properties of soil, snow, lake, and frozen soil.
 
subroutine, private noahmp_glacier_routines::csnow_glacier (isnow, nsnow, nsoil, snice, snliq, dzsnso, tksno, cvsno, snicev, snliqv, epore)
 
snow bulk density, volumetric capacity, and thermal conductivity
 
subroutine, private noahmp_glacier_routines::radiation_glacier (dt, tg, sneqvo, sneqv, cosz, qsnow, solad, solai, albold, tauss, sag, fsr, fsa, albsnd, albsni)
 Compute solar radiation: absorbed & reflected by the ground.
 
subroutine, private noahmp_glacier_routines::snow_age_glacier (dt, tg, sneqvo, sneqv, tauss, fage)
 
subroutine, private noahmp_glacier_routines::snowalb_bats_glacier (nband, cosz, fage, albsnd, albsni)
 
subroutine, private noahmp_glacier_routines::snowalb_class_glacier (nband, qsnow, dt, alb, albold, albsnd, albsni)
 
subroutine, private noahmp_glacier_routines::glacier_flux (nsoil,nsnow,emg,isnow,df,dzsnso,z0m, zlvl,zpd,qair,sfctmp,rhoair,sfcprs, ur,gamma,rsurf,lwdn,rhsur,smc, eair,stc,sag,snowh,lathea,sh2o, thsfc_loc,prslkix,prsik1x,prslk1x, psfc,pblhx,iz0tlnd,itime,uu,vv, sigmaf1,garea1,psi_opt,ep_1, ep_2, epsm1, cp, ifdef ccpp
 use newton-raphson iteration to solve ground (tg) temperature that balances the surface energy budgets for glacier.
 
subroutine noahmp_glacier_routines::esat (t, esw, esi, desw, desi)
 
subroutine, private noahmp_glacier_routines::sfcdif1_glacier (iter,zlvl,zpd,z0h,z0m, qair,sfctmp,h,rhoair,mpe,ur, ifdef ccpp
 compute surface drag coefficient cm for momentum and ch for heat
 
subroutine, private noahmp_glacier_routines::tsnosoi_glacier (nsoil, nsnow, isnow, dt, tbot, ssoil, snowh, zbot, zsnso, df, hcpct, stc)
 
subroutine, private noahmp_glacier_routines::hrt_glacier (nsnow, nsoil, isnow, zsnso, stc, tbot, zbot, df, hcpct, ssoil, phi, ai, bi, ci, rhsts, botflx)
 
subroutine, private noahmp_glacier_routines::hstep_glacier (nsnow, nsoil, isnow, dt, ai, bi, ci, rhsts, stc)
 
subroutine, private noahmp_glacier_routines::rosr12_glacier (p, a, b, c, d, delta, ntop, nsoil, nsnow)
 
subroutine, private noahmp_glacier_routines::phasechange_glacier (nsnow, nsoil, isnow, dt, fact, dzsnso, stc, snice, snliq, sneqv, snowh, smc, sh2o, qmelt, imelt, ponding)
 
subroutine, private noahmp_glacier_routines::water_glacier (nsnow, nsoil, imelt, dt, prcp, sfctmp, qvap, qdew, ficeold, zsoil, isnow, snowh, sneqv, snice, snliq, stc, dzsnso, sh2o, sice, ponding, zsnso, fsh, runsrf, runsub, qsnow, ponding1, ponding2, qsnbot, fpice, esnow)
 
subroutine, private noahmp_glacier_routines::snowwater_glacier (nsnow, nsoil, imelt, dt, sfctmp, snowhin, qsnow, qsnfro, qsnsub, qrain, ficeold, zsoil, isnow, snowh, sneqv, snice, snliq, sh2o, sice, stc, dzsnso, zsnso, fsh, qsnbot, snoflow, ponding1, ponding2)
 
subroutine, private noahmp_glacier_routines::snowfall_glacier (nsoil, nsnow, dt, qsnow, snowhin, sfctmp, isnow, snowh, dzsnso, stc, snice, snliq, sneqv)
 
subroutine, private noahmp_glacier_routines::compact_glacier (nsnow, nsoil, dt, stc, snice, snliq, imelt, ficeold, isnow, dzsnso)
 
subroutine, private noahmp_glacier_routines::combine_glacier (nsnow, nsoil, isnow, sh2o, stc, snice, snliq, dzsnso, sice, snowh, sneqv, ponding1, ponding2)
 
subroutine, private noahmp_glacier_routines::combo_glacier (dz, wliq, wice, t, dz2, wliq2, wice2, t2)
 
subroutine, private noahmp_glacier_routines::divide_glacier (nsnow, nsoil, isnow, stc, snice, snliq, dzsnso)
 
subroutine, private noahmp_glacier_routines::snowh2o_glacier (nsnow, nsoil, dt, qsnfro, qsnsub, qrain, isnow, dzsnso, snowh, sneqv, snice, snliq, sh2o, sice, stc, ponding1, ponding2, fsh, qsnbot)
 
subroutine, private noahmp_glacier_routines::error_glacier (iloc,jloc,swdown,fsa,fsr,fira, fsh,fgev,ssoil,sag,prcp,edir, ifdef ccpp
 
subroutine, public noahmp_glacier_routines::noahmp_options_glacier (iopt_alb, iopt_snf, iopt_tbot, iopt_stc, iopt_gla, iopt_sfc, iopt_trs)
 
subroutine noahmp_sflx (parameters, iloc, jloc, lat, yearlen, julian, cosz, dt, dx, dz8w, nsoil, zsoil, nsnow, shdfac, shdmax, vegtyp, ice, ist, croptype, smceq, sfctmp, sfcprs, psfc, uu, vv, q2, garea1, qc, soldn, lwdn, thsfc_loc, prslkix, prsik1x, prslk1x, pblhx, iz0tlnd, itime,psi_opt, prcpconv, prcpnonc, prcpshcv, prcpsnow, prcpgrpl, prcphail, tbot, co2air, o2air, foln, ficeold, zlvl, ep_1, ep_2, epsm1, cp, albold, sneqvo, stc, sh2o, smc, tah, eah, fwet, canliq, canice, tv, tg, qsfc, qsnow, qrain, isnow, zsnso, snowh, sneqv, snice, snliq, zwt, wa, wt, wslake, lfmass, rtmass, stmass, wood, stblcp, fastcp, lai, sai, cm, ch, tauss, grain, gdd, pgs, smcwtd,deeprech, rech, ustarx, z0wrf, z0hwrf, ts, fsa, fsr, fira, fsh, ssoil, fcev, fgev, fctr, ecan, etran, edir, trad, tgb, tgv, t2mv, t2mb, q2v, q2b, runsrf, runsub, apar, psn, sav, sag, fsno, nee, gpp, npp, fveg, albedo, qsnbot, ponding, ponding1, ponding2, rssun, rssha, albd, albi, albsnd, albsni, bgap, wgap, chv, chb, emissi, shg, shc, shb, evg, evb, ghv, ghb, irg, irc, irb, tr, evc, chleaf, chuc, chv2, chb2, fpice, pahv, pahg, pahb, pah, esnow, canhs, laisun, laisha, rb, qsfcveg, qsfcbare ifdef ccpp
 
subroutine atm (parameters, ep_2, epsm1, sfcprs, sfctmp, q2, prcpconv, prcpnonc, prcpshcv, prcpsnow, prcpgrpl, prcphail, soldn, cosz, thair, qair, eair, rhoair, qprecc, qprecl, solad, solai, swdown, bdfall, rain, snow, fp, fpice, prcp)
 re-precess atmospheric forcing.
 
subroutine phenology (parameters, vegtyp, croptype, snowh, tv, lat, yearlen, julian, lai, sai, troot, elai, esai, igs, pgs)
 vegetation phenology considering vegetation canopy being buried by snow and evolution in time.
 
subroutine precip_heat (parameters, iloc, jloc, vegtyp, dt, uu, vv, elai, esai, fveg, ist, bdfall, rain, snow, fp, canliq, canice, tv, sfctmp, tg, qintr, qdripr, qthror, qints, qdrips, qthros, pahv, pahg, pahb, qrain, qsnow, snowhin, fwet, cmc)
 Michael Barlage: Oct 2013 - Split canwater to calculate precip movement for tracking of advected heat.
 
subroutine error (parameters, swdown,fsa,fsr,fira,fsh,fcev, fgev,fctr,ssoil,beg_wb,canliq,canice, sneqv,wa,smc,dzsnso,prcp,ecan, etran,edir,runsrf,runsub,dt,nsoil, nsnow,ist,errwat, iloc,jloc,fveg, sav,sag,fsrv,fsrg,zwt,pah, ifdef ccpp
 check surface energy balance and water balance.
 
subroutine energy (parameters, ice,vegtyp,ist,nsnow,nsoil, isnow,dt,rhoair,sfcprs,qair, sfctmp,thair,lwdn,uu,vv,zref, co2air,o2air,solad,solai,cosz,igs, eair,tbot,zsnso,zsoil, elai,esai,fwet,foln, fveg,shdfac, pahv,pahg,pahb, qsnow,dzsnso,lat,canliq,canice,iloc, jloc, thsfc_loc, prslkix, prsik1x, prslk1x, garea1, pblhx, iz0tlnd, itime, psi_opt, ep_1, ep_2, epsm1, cp, z0wrf,z0hwrf, imelt,snicev,snliqv,epore,t2m,fsno, sav,sag,qmelt,fsa,fsr,taux, tauy,fira,fsh,fcev,fgev,fctr, trad,psn,apar,ssoil,btrani,btran, ponding, ts,latheav, latheag, frozen_canopy, frozen_ground, tv,tg,stc,snowh,eah,tah, sneqvo,sneqv,sh2o,smc,snice,snliq, albold,cm,ch,dx,dz8w,q2, ustarx, ifdef ccpp
 We use different approaches to deal with subgrid features of radiation transfer and turbulent transfer. we use 'tile' approach to compute turbulent fluxes,while we use modified two-stream to compute radiation transfer. tile approach, assemblying vegetation canopies together,
may expose too much ground surfaces (either covered by snow or grass) to solar radiation. the modified two-stream assumes vegetation covers fully the gridcell but with gaps between tree crowns.

 
subroutine thermoprop (parameters, nsoil, nsnow, isnow, ist, dzsnso, dt, snowh, snice, snliq, shdfac, smc, sh2o, tg, stc, ur, lat, z0m, zlvl, vegtyp, df, hcpct, snicev, snliqv, epore, fact)
 
subroutine csnow (parameters, isnow, nsnow, nsoil, snice, snliq, dzsnso, tksno, cvsno, snicev, snliqv, epore)
 snow bulk density,volumetric capacity, and thermal conductivity
 
subroutine tdfcnd (parameters, isoil, df, smc, sh2o)
 calculate thermal diffusivity and conductivity of the soil. peters-lidard approach (peters-lidard et al., 1998)
 
subroutine radiation (parameters, vegtyp, ist, ice, nsoil, sneqvo, sneqv, dt, cosz, snowh, tg, tv, fsno, qsnow, fwet, elai, esai, smc, solad, solai, fveg, iloc, jloc, albold, tauss, fsun, laisun, laisha, parsun, parsha, sav, sag, fsr, fsa, fsrv, fsrg, albd, albi, albsnd, albsni, bgap, wgap)
 Calculate solar radiation: absorbed & reflected by the ground and canopy.
 
subroutine albedo (parameters, vegtyp, ist, ice, nsoil, dt, cosz, fage, elai, esai, tg, tv, snowh, fsno, fwet, smc, sneqvo, sneqv, qsnow, fveg, iloc, jloc, albold, tauss, albgrd, albgri, albd, albi, fabd, fabi, ftdd, ftid, ftii, fsun, frevi, frevd, fregd, fregi, bgap, wgap, albsnd, albsni)
 surface albedos. also fluxes (per unit incoming direct and diffuse radiation) reflected, transmitted, and absorbed by vegetation. also sunlight fraction of the canopy.
 
subroutine surrad (parameters, mpe, fsun, fsha, elai, vai, laisun, laisha, solad, solai, fabd, fabi, ftdd, ftid, ftii, albgrd, albgri, albd, albi, iloc, jloc, parsun, parsha, sav, sag, fsa, fsr, frevi, frevd, fregd, fregi, fsrv, fsrg)
 surface raditiation
 
subroutine snow_age (parameters, dt, tg, sneqvo, sneqv, tauss, fage)
 
subroutine snowalb_bats (parameters, nband, fsno, cosz, fage, albsnd, albsni)
 bats snow surface albedo
 
subroutine snowalb_class (parameters, nband, qsnow, dt, alb, albold, albsnd, albsni, iloc, jloc)
 class snow surface albedo
 
subroutine groundalb (parameters, nsoil, nband, ice, ist, fsno, smc, albsnd, albsni, cosz, tg, iloc, jloc, albgrd, albgri)
 ground surface albedo
 
subroutine twostream (parameters, ib, ic, vegtyp, cosz, vai, fwet, t, albgrd, albgri, rho, tau, fveg, ist, iloc, jloc, fab, fre, ftd, fti, gdir, frev, freg, bgap, wgap)
 use two-stream approximation of Dickinson (1983) adv geophysics 25: 305-353 and sellers (1985) int j remote sensing 6: 1335-1372 to calculate fluxes absorbed by vegetation, reflected by vegetation, and transmitted through vegetation for unit incoming direct or diffuse flux given an underlying surface with known albedo.
 
subroutine vege_flux (parameters, nsnow,nsoil,isnow,vegtyp,veg, dt,sav,sag,lwdn,ur, uu,vv,sfctmp,thair,qair, eair,rhoair,snowh,vai,gammav,gammag, fwet,laisun,laisha,cwp,dzsnso, zlvl,zpd,z0m,fveg,shdfac, z0mg,emv,emg,canliq,fsno, canice,stc,df,rssun,rssha, rsurf,latheav,latheag,parsun,parsha,igs, foln,co2air,o2air,btran,sfcprs, rhsur,iloc,jloc,q2,pahv,pahg, thsfc_loc, prslkix, prsik1x, prslk1x, garea1, pblhx,iz0tlnd,itime,psi_opt,ep_1, ep_2, epsm1, cp, eah,tah,tv,tg,cm, ustarx, ifdef ccpp
 use newton-raphson iteration to solve for vegetation (tv) and ground (tg) temperatures that balance the surface energy budgets.
 
subroutine bare_flux (parameters, nsnow,nsoil,isnow,dt,sag, lwdn,ur,uu,vv,sfctmp, thair,qair,eair,rhoair,snowh, dzsnso,zlvl,zpd,z0m,fsno, emg,stc,df,rsurf,lathea, gamma,rhsur,iloc,jloc,q2,pahb, thsfc_loc, prslkix, prsik1x, prslk1x, vegtyp, fveg, shdfac, garea1, pblhx, iz0tlnd, itime,psi_opt, ep_1, ep_2, epsm1, cp,ifdef ccpp
 use newton-raphson iteration to solve ground (tg) temperature that balances the surface energy budgets for bare soil fraction.
 
subroutine ragrb (parameters, iter, vai, rhoair, hg, tah, zpd, z0mg, z0hg, hcan, uc, z0h, fv, cwp, vegtyp, mpe, tv, mozg, fhg, fhgh, iloc, jloc, ramg, rahg, rawg, rb)
 compute under-canopy aerodynamic resistance rag and leaf boundary layer resistance rb.
 
subroutine sfcdif1 (parameters, iter,sfctmp,rhoair,h,qair, zlvl,zpd,z0m,z0h,ur, mpe,iloc,jloc, ifdef ccpp
 compute surface drag coefficient cm for momentum and ch for heat.
 
subroutine sfcdif2 (parameters, iter, z0, thz0, thlm, sfcspd, zlm, iloc, jloc, akms, akhs, rlmo, wstar2, ustar)
 calculate surface layer exchange coefficients via iteractive process (Chen et al. 1997, blm)
 
subroutine sfcdif3 (parameters, iloc, jloc, iter, sfctmp, qair, ur, zlvl, tgb, thsfc_loc, prslkix, prsik1x, prslk1x, z0m, z0h, zpd, snowh, fveg, garea1, ustarx, fm, fh, fm2, fh2, fv, cm, ch)
 compute surface drag coefficient cm for momentum and ch for heat.
 
subroutine thermalz0 (parameters, fveg, z0m, z0mg, zlvl, zpd, ezpd, ustarx, vegtyp, vaie, ur, c_sigma_f0, c_sigma_f1, a1, cdmn_v, cdmn_g, surface_flag, z0m_out, z0h_out)
 
subroutine esat (t, esw, esi, desw, desi)
 use polynomials to calculate saturation vapor pressure and derivative with respect to temperature: over water when t > 0 c and over ice when t <= 0 c.
 
subroutine stomata (parameters, vegtyp, mpe, apar, foln, iloc, jloc, tv, ei, ea, sfctmp, sfcprs, o2, co2, igs, btran, rb, rs, psn)
 
subroutine canres (parameters, ep_2, epsm1, par, sfctmp, rcsoil, eah, sfcprs, rc, psn, iloc, jloc)
 calculate canopy resistance which depends on incoming solar radiation, air temperature, atmospheric water vapor pressure deficit at the lowest model level, and soil moisture (preferably unfrozen soil moisture rather than total).
 
subroutine calhum (parameters, sfctmp, sfcprs, q2sat, dqsdt2)
 
subroutine tsnosoi (parameters, ice,nsoil,nsnow,isnow,ist, tbot,zsnso,ssoil,df,hcpct, sag,dt,snowh,dzsnso, tg,iloc,jloc, ifdef ccpp
 compute snow (up to 3l) and soil (4l) temperature. note that snow temperatures during melting season may exceed melting point (tfrz) but later in phasechange subroutine the snow temperatures are reset to tfrz for melting snow.
 
subroutine hrt (parameters, nsnow, nsoil, isnow, zsnso, stc, tbot, zbot, dt, df, hcpct, ssoil, phi, ai, bi, ci, rhsts, botflx)
 calculate the right hand side of the time tendency term of the soil thermal diffusion equation. also to compute (prepare) the matrix coefficients for the tri-diagonal matrix of the implicit time scheme.
 
subroutine hstep (parameters, nsnow, nsoil, isnow, dt, ai, bi, ci, rhsts, stc)
 calculate/update the soil temperature fields.
 
subroutine rosr12 (p, a, b, c, d, delta, ntop, nsoil, nsnow)
 solve the tri-diagonal matrix equation
 
subroutine phasechange (parameters, nsnow,nsoil,isnow,dt,fact, dzsnso,hcpct,ist,iloc,jloc, stc,snice,snliq,sneqv,snowh, ifdef ccpp
 melting/freezing of snow water and soil water
 
subroutine frh2o (parameters, isoil, free, tkelv, smc, sh2o, ifdef ccpp
 calculate amount of supercooled liquid soil water content if temperature is below 273.15k (tfrz). requires newton-type iteration to solve the nonlinear implicit equation given in eqn 17 of koren et al. (1999, jgr, vol 104(d16),19569-19585)
 
subroutine water (parameters, vegtyp, nsnow, nsoil, imelt, dt, uu, vv, fcev, fctr, qprecc, qprecl, elai, esai, sfctmp, qvap, qdew, zsoil, btrani, ficeold, ponding, tg, ist, fveg, iloc, jloc, smceq, bdfall, fp, rain, snow, qsnow, qrain, snowhin, latheav, latheag, frozen_canopy, frozen_ground, isnow, canliq, canice, tv, snowh, sneqv, snice, snliq, stc, zsnso, sh2o, smc, sice, zwt, wa, wt, dzsnso, wslake, smcwtd, deeprech, rech, cmc, ecan, etran, fwet, runsrf, runsub, qin, qdis, ponding1, ponding2, qsnbot, esnow)
 compute water budgets (water storages, et components, and runoff)
 
subroutine canwater (parameters, vegtyp, dt, fcev, fctr, elai, esai, tg, fveg, iloc, jloc, bdfall, frozen_canopy, canliq, canice, tv, cmc, ecan, etran, fwet)
 canopy hydrology
 
subroutine snowwater (parameters, nsnow, nsoil, imelt, dt, zsoil, sfctmp, snowhin, qsnow, qsnfro, qsnsub, qrain, ficeold, iloc, jloc, isnow, snowh, sneqv, snice, snliq, sh2o, sice, stc, zsnso, dzsnso, qsnbot, snoflow, ponding1, ponding2)
 
subroutine snowfall (parameters, nsoil, nsnow, dt, qsnow, snowhin, sfctmp, iloc, jloc, isnow, snowh, dzsnso, stc, snice, snliq, sneqv)
 snow depth and density to account for the new snowfall. new values of snow depth & density returned.
 
subroutine combine (parameters, nsnow, nsoil, iloc, jloc, isnow, sh2o, stc, snice, snliq, dzsnso, sice, snowh, sneqv, ponding1, ponding2)
 
subroutine divide (parameters, nsnow, nsoil, isnow, stc, snice, snliq, dzsnso)
 
subroutine combo (parameters, dz, wliq, wice, t, dz2, wliq2, wice2, t2)
 
subroutine compact (parameters, nsnow, nsoil, dt, stc, snice, snliq, zsoil, imelt, ficeold, iloc, jloc, isnow, dzsnso, zsnso)
 
subroutine snowh2o (parameters, nsnow, nsoil, dt, qsnfro, qsnsub, qrain, iloc, jloc, isnow, dzsnso, snowh, sneqv, snice, snliq, sh2o, sice, stc, qsnbot, ponding1, ponding2)
 renew the mass of ice lens (snice) and liquid (snliq) of the surface snow layer resulting from sublimation (frost) / evaporation (dew)
 
subroutine soilwater (parameters, nsoil, nsnow, dt, zsoil, dzsnso, qinsur, qseva, etrani, sice, iloc, jloc, sh2o, smc, zwt, vegtyp, smcwtd, deeprech, runsrf, qdrain, runsub, wcnd, fcrmax)
 calculate surface runoff and soil moisture.
 
subroutine zwteq (parameters, nsoil, nsnow, zsoil, dzsnso, sh2o, zwt)
 calculate equilibrium water table depth (niu et al., 2005)
 
subroutine infil (parameters, nsoil, dt, zsoil, sh2o, sice, sicemax, qinsur, pddum, runsrf)
 compute inflitration rate at soil surface and surface runoff
 
subroutine srt (parameters, nsoil, zsoil, dt, pddum, etrani, qseva, sh2o, smc, zwt, fcr, sicemax, fcrmax, iloc, jloc, smcwtd, rhstt, ai, bi, ci, qdrain, wcnd)
 calculate the right hand side of the time tendency term of the soil water diffusion equation. also to compute (prepare) the matrix coefficients for the tri-diagonal matrix of the implicit time scheme.
 
subroutine sstep (parameters, nsoil, nsnow, dt, zsoil, dzsnso, sice, iloc, jloc, zwt, sh2o, smc, ai, bi, ci, rhstt, smcwtd, qdrain, deeprech, wplus)
 calculate/update soil moisture content values.
 
subroutine wdfcnd1 (parameters, wdf, wcnd, smc, fcr, isoil)
 calculate soil water diffusivity and soil hydraulic conductivity.
 
subroutine wdfcnd2 (parameters, wdf, wcnd, smc, sice, isoil)
 calculate soil water diffusivity and soil hydraulic conductivity.
 
subroutine groundwater (parameters, nsnow, nsoil, dt, sice, zsoil, stc, wcnd, fcrmax, iloc, jloc, sh2o, zwt, wa, wt, qin, qdis)
 
subroutine shallowwatertable (parameters, nsnow, nsoil, zsoil, dt, dzsnso, smceq, iloc, jloc, smc, wtd, smcwtd, rech, qdrain)
 diagnoses water table depth and computes recharge when the water table is within the resolved soil layers, according to the miguez-macho&fan scheme.
 
subroutine carbon (parameters, nsnow, nsoil, vegtyp, dt, zsoil, dzsnso, stc, smc, tv, tg, psn, foln, btran, apar, fveg, igs, troot, ist, lat, iloc, jloc, lfmass, rtmass, stmass, wood, stblcp, fastcp, gpp, npp, nee, autors, heters, totsc, totlb, xlai, xsai)
 
subroutine co2flux (parameters, nsnow, nsoil, vegtyp, igs, dt, dzsnso, stc, psn, troot, tv, wroot, wstres, foln, lapm, lat, iloc, jloc, fveg, xlai, xsai, lfmass, rtmass, stmass, fastcp, stblcp, wood, gpp, npp, nee, autors, heters, totsc, totlb)
 the original code is from Dickinson et al.(1998), modified by guo-yue niu, 2004
 
subroutine carbon_crop (parameters, nsnow, nsoil, vegtyp, dt, zsoil, julian, dzsnso, stc, smc, tv, psn, foln, btran, soldn, t2m, lfmass, rtmass, stmass, wood, stblcp, fastcp, grain, xlai, xsai, gdd, gpp, npp, nee, autors, heters, totsc, totlb, pgs)
 initial crop version created by xing liu initial crop version added by barlage v3.8
 
subroutine co2flux_crop (parameters, dt, stc, psn, tv, wroot, wstres, foln, ipa, iha, pgs, xlai, xsai, lfmass, rtmass, stmass, fastcp, stblcp, wood, grain, gdd, gpp, npp, nee, autors, heters, totsc, totlb)
 the original code from re dickinson et al.(1998) and guo-yue niu (2004), modified by xing liu, 2014.
 
subroutine growing_gdd (parameters, t2m, dt, julian, gdd, ipa, iha, pgs)
 
subroutine psn_crop (parameters, soldn, xlai, t2m, psncrop)
 
subroutine noahmp_options (idveg, iopt_crs, iopt_btr, iopt_run, iopt_sfc, iopt_frz, iopt_inf, iopt_rad, iopt_alb, iopt_snf, iopt_tbot, iopt_stc, iopt_rsf, iopt_soil, iopt_pedo, iopt_crop, iopt_trs, iopt_diag, iopt_z0m)
 
subroutine sfcdif4 (iloc, jloc, ux, vx, t1d, p1d, psfcpa, pblhx, dx, znt, ep_1, ep_2, cp, itime, snwh, isice, psi_opt, tsk, qx, zlvl, iz0tlnd, qsfc, hfx, qfx, cm, chs, chs2, cqs2, rmolx, ust, rbx, fmx, fhx, stressx, fm10x, fh2x, wspdx, flhcx, flqcx)
 
subroutine zilitinkevich_1995 (z_0, zt, zq, restar, ustar, vkc, landsea, iz0tlnd2, spp_pbl, rstoch)
 
subroutine garratt_1992 (zt, zq, z_0, ren, landsea)
 data. the formula for land uses a constant ratio (z_0/7.4) taken from garratt (1992).
 
real *8 function zolri (ri, za, z0, zt, zol1, psi_opt)
 
subroutine psi_init (psi_opt, errmsg, errflg)
 
subroutine noahmpdrv_init (lsm, lsm_noahmp, me, isot, ivegsrc, nlunit, pores, resid, do_mynnsfclay, do_mynnedmf, errmsg, errflg)
 This subroutine is called during the CCPP initialization phase and calls set_soilveg() to initialize soil and vegetation parameters for the chosen soil and vegetation data sources.
 
subroutine transfer_mp_parameters (vegtype, soiltype, slopetype, soilcolor, croptype, parameters)
 This subroutine fills in a derived data type of type noahmp_parameters with data from the module noahmp_tables.
 
subroutine pedotransfer_sr2006 (nsoil, sand, clay, orgm, parameters)
 This subroutine uses a pedotransfer method to calculate soil properties.
 
subroutine penman (sfctmp, sfcprs, ch, t2v, th2, prcp, fdown, ssoil, q2, q2sat, etp, snowng, frzgra, ffrozp, dqsdt2, emissi_in, sncovr)
 brief Calculate potential evaporation for the current point. Various partial sums/products are also calculated and passed back to the calling routine for later use.
 
subroutine noahmpdrv_run (im, km, lsnowl, itime, ps, u1, v1, t1, q1, soiltyp, soilcol, vegtype, sigmaf, dlwflx, dswsfc, snet, delt, tg3, cm, ch, prsl1, prslk1, prslki, prsik1, zf, pblh, dry, wind, slopetyp, shdmin, shdmax, snoalb, sfalb, flag_iter, con_g, idveg, iopt_crs, iopt_btr, iopt_run, iopt_sfc, iopt_frz, iopt_inf, iopt_rad, iopt_alb, iopt_snf, iopt_tbot, iopt_stc, iopt_trs, iopt_diag, xlatin, xcoszin, iyrlen, julian, garea, rainn_mp, rainc_mp, snow_mp, graupel_mp, ice_mp, rhonewsn1, con_hvap, con_cp, con_jcal, rhoh2o, con_eps, con_epsm1, con_fvirt, con_rd, con_hfus, thsfc_loc, cpllnd, cpllnd2atm, weasd, snwdph, tskin, tprcp, srflag, smc, stc, slc, canopy, trans, tsurf, zorl, rb1, fm1, fh1, ustar1, stress1, fm101, fh21, rmol1, flhc1, flqc1, do_mynnsfclay, snowxy, tvxy, tgxy, canicexy, canliqxy, eahxy, tahxy, cmxy, chxy, fwetxy, sneqvoxy, alboldxy, qsnowxy, wslakexy, zwtxy, waxy, wtxy, tsnoxy, zsnsoxy, snicexy, snliqxy, lfmassxy, rtmassxy, stmassxy, woodxy, stblcpxy, fastcpxy, xlaixy, xsaixy, taussxy, smoiseq, smcwtdxy, deeprechxy, rechxy, albdvis, albdnir, albivis, albinir, emiss, sncovr1, qsurf, gflux, drain, evap, hflx, ep, runoff, cmm, chh, evbs, evcw, sbsno, pah, ecan, etran, edir, snowc, stm, snohf, smcwlt2, smcref2, wet1, t2mmp, q2mp, zvfun, ztmax, rca, errmsg, errflg, canopy_heat_storage_ccpp, rainfall_ccpp, sw_absorbed_total_ccpp, sw_reflected_total_ccpp, lw_absorbed_total_ccpp, temperature_bare_grd_ccpp, temperature_veg_grd_ccpp, temperature_veg_2m_ccpp, temperature_bare_2m_ccpp, spec_humidity_veg_2m_ccpp, spec_humidity_bare_2m_ccpp, sw_absorbed_veg_ccpp, sw_absorbed_ground_ccpp, snowmelt_out_ccpp, snowmelt_shallow_ccpp, albedo_direct_snow_ccpp, albedo_diffuse_snow_ccpp, ch_vegetated_ccpp, ch_bare_ground_ccpp, sensible_heat_grd_veg_ccpp, sensible_heat_leaf_ccpp, sensible_heat_grd_bar_ccpp, latent_heat_grd_veg_ccpp, latent_heat_grd_bare_ccpp, ground_heat_veg_ccpp, ground_heat_bare_ccpp, lw_absorbed_grd_veg_ccpp, lw_absorbed_leaf_ccpp, lw_absorbed_grd_bare_ccpp, latent_heat_trans_ccpp, latent_heat_leaf_ccpp, ch_leaf_ccpp, ch_below_canopy_ccpp, ch_vegetated_2m_ccpp, ch_bare_ground_2m_ccpp, precip_adv_heat_veg_ccpp, precip_adv_heat_grd_v_ccpp, precip_adv_heat_grd_b_ccpp, spec_humid_sfc_veg_ccpp, spec_humid_sfc_bare_ccpp)
 This subroutine is the main CCPP entry point for the NoahMP LSM.
 

Detailed Description