\hypertarget{group___noah_m_p___l_s_m}{}\doxysubsection{Noah\+MP LSM Model}
\label{group___noah_m_p___l_s_m}\index{NoahMP LSM Model@{NoahMP LSM Model}}


This is the Noah\+MP LSM driver module, with the functionality of preparing variables to run the Noah\+MP LSM subroutine noahmp\+\_\+sflx(), calling Noah\+MP LSM and post-\/processing variables for return to the parent model suite including unit conversion, as well as diagnotics calculation.  


\doxysubsubsection*{Modules}
\begin{DoxyCompactItemize}
\item 
module \mbox{\hyperlink{namespacenoahmp__tables}{noahmp\+\_\+tables}}
\begin{DoxyCompactList}\small\item\em Data from MPTABLE.\+TBL, SOILPARM.\+TBL, GENPARM.\+TBL for Noah\+MP. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Functions/\+Subroutines}
\begin{DoxyCompactItemize}
\item 
subroutine, public \mbox{\hyperlink{group___noah_m_p___l_s_m_ga426a2b9dc19b4b9ac8bfa2a6b2f5eaba_ga426a2b9dc19b4b9ac8bfa2a6b2f5eaba}{noahmpdrv\+::noahmpdrv\+\_\+init}} (lsm, lsm\+\_\+noahmp, me, isot, ivegsrc, nlunit, pores, resid, do\+\_\+mynnsfclay, do\+\_\+mynnedmf, errmsg, errflg)
\begin{DoxyCompactList}\small\item\em This subroutine is called during the CCPP initialization phase and calls \mbox{\hyperlink{group___noah___l_s_m_ga961eacb6f4b1b1b724401001b85c874d_ga961eacb6f4b1b1b724401001b85c874d}{set\+\_\+soilveg()}} to initialize soil and vegetation parameters for the chosen soil and vegetation data sources. \end{DoxyCompactList}\item 
subroutine \mbox{\hyperlink{group___noah_m_p___l_s_m_ga10269d0461743648c2b22522986abc72_ga10269d0461743648c2b22522986abc72}{noahmpdrv\+::transfer\+\_\+mp\+\_\+parameters}} (vegtype, soiltype, slopetype, soilcolor, croptype, parameters)
\begin{DoxyCompactList}\small\item\em This subroutine fills in a derived data type of type noahmp\+\_\+parameters with data from the module \mbox{\hyperlink{namespacenoahmp__tables}{noahmp\+\_\+tables}}. \end{DoxyCompactList}\item 
subroutine \mbox{\hyperlink{group___noah_m_p___l_s_m_gaaaf7f2d9ed2a91cc409e8a1cf101913a_gaaaf7f2d9ed2a91cc409e8a1cf101913a}{noahmpdrv\+::pedotransfer\+\_\+sr2006}} (nsoil, sand, clay, orgm, parameters)
\begin{DoxyCompactList}\small\item\em This subroutine uses a pedotransfer method to calculate soil properties. \end{DoxyCompactList}\item 
subroutine \mbox{\hyperlink{group___noah_m_p___l_s_m_ga234812b141721e9a77c2da2d3d3dc3de_ga234812b141721e9a77c2da2d3d3dc3de}{noahmpdrv\+::penman}} (sfctmp, sfcprs, ch, t2v, th2, prcp, fdown, ssoil, q2, q2sat, etp, snowng, frzgra, ffrozp, dqsdt2, emissi\+\_\+in, sncovr)
\begin{DoxyCompactList}\small\item\em 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. \end{DoxyCompactList}\end{DoxyCompactItemize}
\begin{DoxyCompactItemize}
\item 
subroutine, public \mbox{\hyperlink{group___noah_m_p___l_s_m_ga930e0de939b2785f5bf9e6f7da7ce13e_ga930e0de939b2785f5bf9e6f7da7ce13e}{noahmpdrv\+::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, 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, 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)
\begin{DoxyCompactList}\small\item\em This subroutine is the main CCPP entry point for the Noah\+MP LSM. \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsubsection{Detailed Description}


\doxysubsubsection{Function/\+Subroutine Documentation}
\mbox{\Hypertarget{group___noah_m_p___l_s_m_ga426a2b9dc19b4b9ac8bfa2a6b2f5eaba_ga426a2b9dc19b4b9ac8bfa2a6b2f5eaba}\label{group___noah_m_p___l_s_m_ga426a2b9dc19b4b9ac8bfa2a6b2f5eaba_ga426a2b9dc19b4b9ac8bfa2a6b2f5eaba}} 
\index{NoahMP LSM Model@{NoahMP LSM Model}!noahmpdrv\_init@{noahmpdrv\_init}}
\index{noahmpdrv\_init@{noahmpdrv\_init}!NoahMP LSM Model@{NoahMP LSM Model}}
\doxyparagraph{\texorpdfstring{noahmpdrv\_init()}{noahmpdrv\_init()}}
{\footnotesize\ttfamily subroutine, public noahmpdrv\+::noahmpdrv\+\_\+init (\begin{DoxyParamCaption}\item[{integer, intent(in)}]{lsm,  }\item[{integer, intent(in)}]{lsm\+\_\+noahmp,  }\item[{integer, intent(in)}]{me,  }\item[{integer, intent(in)}]{isot,  }\item[{integer, intent(in)}]{ivegsrc,  }\item[{integer, intent(in)}]{nlunit,  }\item[{real (kind=kind\+\_\+phys), dimension(\+:), intent(out)}]{pores,  }\item[{real (kind=kind\+\_\+phys), dimension(\+:), intent(out)}]{resid,  }\item[{logical, intent(in)}]{do\+\_\+mynnsfclay,  }\item[{logical, intent(in)}]{do\+\_\+mynnedmf,  }\item[{character(len=$\ast$), intent(out)}]{errmsg,  }\item[{integer, intent(out)}]{errflg }\end{DoxyParamCaption})}

\hypertarget{group___noah_m_p___l_s_m_ga426a2b9dc19b4b9ac8bfa2a6b2f5eaba_arg_table_noahmpdrv_init}{}\doxysubsubsection{Argument Table}\label{group___noah_m_p___l_s_m_ga426a2b9dc19b4b9ac8bfa2a6b2f5eaba_arg_table_noahmpdrv_init}
 

References \mbox{\hyperlink{group___noah___l_s_m_ga961eacb6f4b1b1b724401001b85c874d_ga961eacb6f4b1b1b724401001b85c874d}{set\+\_\+soilveg\+\_\+mod\+::set\+\_\+soilveg()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{group___noah_m_p___l_s_m_ga426a2b9dc19b4b9ac8bfa2a6b2f5eaba_ga426a2b9dc19b4b9ac8bfa2a6b2f5eaba_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{group___noah_m_p___l_s_m_ga930e0de939b2785f5bf9e6f7da7ce13e_ga930e0de939b2785f5bf9e6f7da7ce13e}\label{group___noah_m_p___l_s_m_ga930e0de939b2785f5bf9e6f7da7ce13e_ga930e0de939b2785f5bf9e6f7da7ce13e}} 
\index{NoahMP LSM Model@{NoahMP LSM Model}!noahmpdrv\_run@{noahmpdrv\_run}}
\index{noahmpdrv\_run@{noahmpdrv\_run}!NoahMP LSM Model@{NoahMP LSM Model}}
\doxyparagraph{\texorpdfstring{noahmpdrv\_run()}{noahmpdrv\_run()}}
{\footnotesize\ttfamily subroutine, public noahmpdrv\+::noahmpdrv\+\_\+run (\begin{DoxyParamCaption}\item[{integer, intent(in)}]{im,  }\item[{integer, intent(in)}]{km,  }\item[{integer, intent(in)}]{lsnowl,  }\item[{integer, intent(in)}]{itime,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(in)}]{ps,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(in)}]{u1,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(in)}]{v1,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(in)}]{t1,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(in)}]{q1,  }\item[{integer, dimension(\+:), intent(in)}]{soiltyp,  }\item[{integer, dimension(\+:), intent(in)}]{soilcol,  }\item[{integer, dimension(\+:), intent(in)}]{vegtype,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(in)}]{sigmaf,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(in)}]{dlwflx,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(in)}]{dswsfc,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(in)}]{snet,  }\item[{real(kind=kind\+\_\+phys), intent(in)}]{delt,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(in)}]{tg3,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(inout)}]{cm,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(inout)}]{ch,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(in)}]{prsl1,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(in)}]{prslk1,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(in)}]{prslki,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(in)}]{prsik1,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(in)}]{zf,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(in)}]{pblh,  }\item[{logical, dimension(\+:), intent(in)}]{dry,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(in)}]{wind,  }\item[{integer, dimension(\+:), intent(in)}]{slopetyp,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(in)}]{shdmin,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(in)}]{shdmax,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(in)}]{snoalb,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(inout)}]{sfalb,  }\item[{logical, dimension(\+:), intent(in)}]{flag\+\_\+iter,  }\item[{real(kind=kind\+\_\+phys), intent(in)}]{con\+\_\+g,  }\item[{integer, intent(in)}]{idveg,  }\item[{integer, intent(in)}]{iopt\+\_\+crs,  }\item[{integer, intent(in)}]{iopt\+\_\+btr,  }\item[{integer, intent(in)}]{iopt\+\_\+run,  }\item[{integer, intent(in)}]{iopt\+\_\+sfc,  }\item[{integer, intent(in)}]{iopt\+\_\+frz,  }\item[{integer, intent(in)}]{iopt\+\_\+inf,  }\item[{integer, intent(in)}]{iopt\+\_\+rad,  }\item[{integer, intent(in)}]{iopt\+\_\+alb,  }\item[{integer, intent(in)}]{iopt\+\_\+snf,  }\item[{integer, intent(in)}]{iopt\+\_\+tbot,  }\item[{integer, intent(in)}]{iopt\+\_\+stc,  }\item[{integer, intent(in)}]{iopt\+\_\+trs,  }\item[{integer, intent(in)}]{iopt\+\_\+diag,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(in)}]{xlatin,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(in)}]{xcoszin,  }\item[{integer, intent(in)}]{iyrlen,  }\item[{real(kind=kind\+\_\+phys), intent(in)}]{julian,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(in)}]{garea,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(in)}]{rainn\+\_\+mp,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(in)}]{rainc\+\_\+mp,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(in)}]{snow\+\_\+mp,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(in)}]{graupel\+\_\+mp,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(in)}]{ice\+\_\+mp,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(in)}]{rhonewsn1,  }\item[{real(kind=kind\+\_\+phys), intent(in)}]{con\+\_\+hvap,  }\item[{real(kind=kind\+\_\+phys), intent(in)}]{con\+\_\+cp,  }\item[{real(kind=kind\+\_\+phys), intent(in)}]{con\+\_\+jcal,  }\item[{real(kind=kind\+\_\+phys), intent(in)}]{rhoh2o,  }\item[{real(kind=kind\+\_\+phys), intent(in)}]{con\+\_\+eps,  }\item[{real(kind=kind\+\_\+phys), intent(in)}]{con\+\_\+epsm1,  }\item[{real(kind=kind\+\_\+phys), intent(in)}]{con\+\_\+fvirt,  }\item[{real(kind=kind\+\_\+phys), intent(in)}]{con\+\_\+rd,  }\item[{real(kind=kind\+\_\+phys), intent(in)}]{con\+\_\+hfus,  }\item[{logical, intent(in)}]{thsfc\+\_\+loc,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(inout)}]{weasd,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(inout)}]{snwdph,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(inout)}]{tskin,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(inout)}]{tprcp,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(inout)}]{srflag,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:,\+:), intent(inout)}]{smc,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:,\+:), intent(inout)}]{stc,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:,\+:), intent(inout)}]{slc,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(inout)}]{canopy,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(inout)}]{trans,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(inout)}]{tsurf,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(inout)}]{zorl,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(inout)}]{rb1,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(inout)}]{fm1,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(inout)}]{fh1,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(inout)}]{ustar1,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(inout)}]{stress1,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(inout)}]{fm101,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(inout)}]{fh21,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(inout)}]{rmol1,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(inout)}]{flhc1,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(inout)}]{flqc1,  }\item[{logical, intent(in)}]{do\+\_\+mynnsfclay,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(inout)}]{snowxy,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(inout)}]{tvxy,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(inout)}]{tgxy,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(inout)}]{canicexy,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(inout)}]{canliqxy,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(inout)}]{eahxy,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(inout)}]{tahxy,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(inout)}]{cmxy,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(inout)}]{chxy,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(inout)}]{fwetxy,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(inout)}]{sneqvoxy,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(inout)}]{alboldxy,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(inout)}]{qsnowxy,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(inout)}]{wslakexy,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(inout)}]{zwtxy,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(inout)}]{waxy,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(inout)}]{wtxy,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:,lsnowl\+:), intent(inout)}]{tsnoxy,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:,lsnowl\+:), intent(inout)}]{zsnsoxy,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:,lsnowl\+:), intent(inout)}]{snicexy,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:,lsnowl\+:), intent(inout)}]{snliqxy,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(inout)}]{lfmassxy,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(inout)}]{rtmassxy,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(inout)}]{stmassxy,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(inout)}]{woodxy,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(inout)}]{stblcpxy,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(inout)}]{fastcpxy,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(inout)}]{xlaixy,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(inout)}]{xsaixy,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(inout)}]{taussxy,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:,\+:), intent(inout)}]{smoiseq,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(inout)}]{smcwtdxy,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(inout)}]{deeprechxy,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(inout)}]{rechxy,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(out)}]{albdvis,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(out)}]{albdnir,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(out)}]{albivis,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(out)}]{albinir,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(out)}]{emiss,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(out)}]{sncovr1,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(out)}]{qsurf,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(out)}]{gflux,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(out)}]{drain,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(out)}]{evap,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(out)}]{hflx,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(out)}]{ep,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(out)}]{runoff,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(out)}]{cmm,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(out)}]{chh,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(out)}]{evbs,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(out)}]{evcw,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(out)}]{sbsno,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(out)}]{pah,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(out)}]{ecan,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(out)}]{etran,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(out)}]{edir,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(out)}]{snowc,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(out)}]{stm,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(out)}]{snohf,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(out)}]{smcwlt2,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(out)}]{smcref2,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(out)}]{wet1,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(out)}]{t2mmp,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(out)}]{q2mp,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(out)}]{zvfun,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(out)}]{ztmax,  }\item[{character(len=$\ast$), intent(out)}]{errmsg,  }\item[{integer, intent(out)}]{errflg,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(out), optional}]{canopy\+\_\+heat\+\_\+storage\+\_\+ccpp,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(out), optional}]{rainfall\+\_\+ccpp,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(out), optional}]{sw\+\_\+absorbed\+\_\+total\+\_\+ccpp,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(out), optional}]{sw\+\_\+reflected\+\_\+total\+\_\+ccpp,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(out), optional}]{lw\+\_\+absorbed\+\_\+total\+\_\+ccpp,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(out), optional}]{temperature\+\_\+bare\+\_\+grd\+\_\+ccpp,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(out), optional}]{temperature\+\_\+veg\+\_\+grd\+\_\+ccpp,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(out), optional}]{temperature\+\_\+veg\+\_\+2m\+\_\+ccpp,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(out), optional}]{temperature\+\_\+bare\+\_\+2m\+\_\+ccpp,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(out), optional}]{spec\+\_\+humidity\+\_\+veg\+\_\+2m\+\_\+ccpp,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(out), optional}]{spec\+\_\+humidity\+\_\+bare\+\_\+2m\+\_\+ccpp,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(out), optional}]{sw\+\_\+absorbed\+\_\+veg\+\_\+ccpp,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(out), optional}]{sw\+\_\+absorbed\+\_\+ground\+\_\+ccpp,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(out), optional}]{snowmelt\+\_\+out\+\_\+ccpp,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(out), optional}]{snowmelt\+\_\+shallow\+\_\+ccpp,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:,\+:), intent(out), optional}]{albedo\+\_\+direct\+\_\+snow\+\_\+ccpp,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:,\+:), intent(out), optional}]{albedo\+\_\+diffuse\+\_\+snow\+\_\+ccpp,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(out), optional}]{ch\+\_\+vegetated\+\_\+ccpp,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(out), optional}]{ch\+\_\+bare\+\_\+ground\+\_\+ccpp,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(out), optional}]{sensible\+\_\+heat\+\_\+grd\+\_\+veg\+\_\+ccpp,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(out), optional}]{sensible\+\_\+heat\+\_\+leaf\+\_\+ccpp,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(out), optional}]{sensible\+\_\+heat\+\_\+grd\+\_\+bar\+\_\+ccpp,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(out), optional}]{latent\+\_\+heat\+\_\+grd\+\_\+veg\+\_\+ccpp,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(out), optional}]{latent\+\_\+heat\+\_\+grd\+\_\+bare\+\_\+ccpp,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(out), optional}]{ground\+\_\+heat\+\_\+veg\+\_\+ccpp,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(out), optional}]{ground\+\_\+heat\+\_\+bare\+\_\+ccpp,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(out), optional}]{lw\+\_\+absorbed\+\_\+grd\+\_\+veg\+\_\+ccpp,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(out), optional}]{lw\+\_\+absorbed\+\_\+leaf\+\_\+ccpp,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(out), optional}]{lw\+\_\+absorbed\+\_\+grd\+\_\+bare\+\_\+ccpp,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(out), optional}]{latent\+\_\+heat\+\_\+trans\+\_\+ccpp,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(out), optional}]{latent\+\_\+heat\+\_\+leaf\+\_\+ccpp,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(out), optional}]{ch\+\_\+leaf\+\_\+ccpp,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(out), optional}]{ch\+\_\+below\+\_\+canopy\+\_\+ccpp,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(out), optional}]{ch\+\_\+vegetated\+\_\+2m\+\_\+ccpp,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(out), optional}]{ch\+\_\+bare\+\_\+ground\+\_\+2m\+\_\+ccpp,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(out), optional}]{precip\+\_\+adv\+\_\+heat\+\_\+veg\+\_\+ccpp,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(out), optional}]{precip\+\_\+adv\+\_\+heat\+\_\+grd\+\_\+v\+\_\+ccpp,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(out), optional}]{precip\+\_\+adv\+\_\+heat\+\_\+grd\+\_\+b\+\_\+ccpp,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(out), optional}]{spec\+\_\+humid\+\_\+sfc\+\_\+veg\+\_\+ccpp,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(out), optional}]{spec\+\_\+humid\+\_\+sfc\+\_\+bare\+\_\+ccpp }\end{DoxyParamCaption})}

\hypertarget{group___noah_m_p___l_s_m_ga930e0de939b2785f5bf9e6f7da7ce13e_arg_table_noahmpdrv_run}{}\doxysubsubsection{Argument Table}\label{group___noah_m_p___l_s_m_ga930e0de939b2785f5bf9e6f7da7ce13e_arg_table_noahmpdrv_run}
\hypertarget{group___noah_m_p___l_s_m_ga930e0de939b2785f5bf9e6f7da7ce13e_general_noahmpdrv}{}\doxysubsubsection{Noah\+MP Driver General Algorithm}\label{group___noah_m_p___l_s_m_ga930e0de939b2785f5bf9e6f7da7ce13e_general_noahmpdrv}

\begin{DoxyItemize}
\item Initialize CCPP error handling variables.
\item Set a flag to only continue with each grid cell if the fraction of land is non-\/zero.
\item This driver may be called as part of an iterative loop. If called as the first \char`\"{}guess\char`\"{} run, save land-\/related prognostic fields to restore.
\item Initialize output variables to zero and prepare variables for input into the Noah\+MP LSM.
\item Call \mbox{\hyperlink{group___noah_m_p___l_s_m_ga10269d0461743648c2b22522986abc72_ga10269d0461743648c2b22522986abc72}{transfer\+\_\+mp\+\_\+parameters()}} to fill a derived datatype for input into the Noah\+MP LSM.
\item Call noahmp\+\_\+options() to set module-\/level scheme options for the Noah\+MP LSM.
\item If the vegetation type is ice for the grid cell, call noahmp\+\_\+options\+\_\+glacier() to set module-\/level scheme options for Noah\+MP Glacier and call noahmp\+\_\+glacier().
\item For other vegetation types, call noahmp\+\_\+sflx(), the entry point of the Noah\+MP LSM.
\item Set output variables from the output of noahmp\+\_\+glacier() and/or noahmp\+\_\+sflx().
\item Call \mbox{\hyperlink{group___noah_m_p___l_s_m_ga234812b141721e9a77c2da2d3d3dc3de_ga234812b141721e9a77c2da2d3d3dc3de}{penman()}} to calculate potential evaporation.
\item Calculate the surface specific humidity and convert surface sensible and latent heat fluxes in W m-\/2 from their kinematic values.
\item If a \char`\"{}guess\char`\"{} run, restore the land-\/related prognostic fields. 
\end{DoxyItemize}

References \mbox{\hyperlink{group___noah___l_s_m_ga25b90f8a8049eb17cc6cb6a3fecf3fdc_ga25b90f8a8049eb17cc6cb6a3fecf3fdc}{penman()}}, and \mbox{\hyperlink{group___noah_m_p___l_s_m_ga10269d0461743648c2b22522986abc72_ga10269d0461743648c2b22522986abc72}{noahmpdrv\+::transfer\+\_\+mp\+\_\+parameters()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{group___noah_m_p___l_s_m_ga930e0de939b2785f5bf9e6f7da7ce13e_ga930e0de939b2785f5bf9e6f7da7ce13e_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{group___noah_m_p___l_s_m_ga10269d0461743648c2b22522986abc72_ga10269d0461743648c2b22522986abc72}\label{group___noah_m_p___l_s_m_ga10269d0461743648c2b22522986abc72_ga10269d0461743648c2b22522986abc72}} 
\index{NoahMP LSM Model@{NoahMP LSM Model}!transfer\_mp\_parameters@{transfer\_mp\_parameters}}
\index{transfer\_mp\_parameters@{transfer\_mp\_parameters}!NoahMP LSM Model@{NoahMP LSM Model}}
\doxyparagraph{\texorpdfstring{transfer\_mp\_parameters()}{transfer\_mp\_parameters()}}
{\footnotesize\ttfamily subroutine noahmpdrv\+::transfer\+\_\+mp\+\_\+parameters (\begin{DoxyParamCaption}\item[{integer, intent(in)}]{vegtype,  }\item[{integer, dimension(4), intent(in)}]{soiltype,  }\item[{integer, intent(in)}]{slopetype,  }\item[{integer, intent(in)}]{soilcolor,  }\item[{integer, intent(in)}]{croptype,  }\item[{type (noahmp\+\_\+parameters), intent(out)}]{parameters }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Referenced by \mbox{\hyperlink{group___noah_m_p___l_s_m_ga930e0de939b2785f5bf9e6f7da7ce13e_ga930e0de939b2785f5bf9e6f7da7ce13e}{noahmpdrv\+::noahmpdrv\+\_\+run()}}.

Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{group___noah_m_p___l_s_m_ga10269d0461743648c2b22522986abc72_ga10269d0461743648c2b22522986abc72_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{group___noah_m_p___l_s_m_gaaaf7f2d9ed2a91cc409e8a1cf101913a_gaaaf7f2d9ed2a91cc409e8a1cf101913a}\label{group___noah_m_p___l_s_m_gaaaf7f2d9ed2a91cc409e8a1cf101913a_gaaaf7f2d9ed2a91cc409e8a1cf101913a}} 
\index{NoahMP LSM Model@{NoahMP LSM Model}!pedotransfer\_sr2006@{pedotransfer\_sr2006}}
\index{pedotransfer\_sr2006@{pedotransfer\_sr2006}!NoahMP LSM Model@{NoahMP LSM Model}}
\doxyparagraph{\texorpdfstring{pedotransfer\_sr2006()}{pedotransfer\_sr2006()}}
{\footnotesize\ttfamily subroutine noahmpdrv\+::pedotransfer\+\_\+sr2006 (\begin{DoxyParamCaption}\item[{integer, intent(in)}]{nsoil,  }\item[{real, dimension( 1\+:nsoil ), intent(inout)}]{sand,  }\item[{real, dimension( 1\+:nsoil ), intent(inout)}]{clay,  }\item[{real, dimension( 1\+:nsoil ), intent(inout)}]{orgm,  }\item[{type(noahmp\+\_\+parameters), intent(inout)}]{parameters }\end{DoxyParamCaption})}

\mbox{\Hypertarget{group___noah_m_p___l_s_m_ga234812b141721e9a77c2da2d3d3dc3de_ga234812b141721e9a77c2da2d3d3dc3de}\label{group___noah_m_p___l_s_m_ga234812b141721e9a77c2da2d3d3dc3de_ga234812b141721e9a77c2da2d3d3dc3de}} 
\index{NoahMP LSM Model@{NoahMP LSM Model}!penman@{penman}}
\index{penman@{penman}!NoahMP LSM Model@{NoahMP LSM Model}}
\doxyparagraph{\texorpdfstring{penman()}{penman()}}
{\footnotesize\ttfamily subroutine noahmpdrv\+::penman (\begin{DoxyParamCaption}\item[{real(kind=kind\+\_\+phys), intent(in)}]{sfctmp,  }\item[{real(kind=kind\+\_\+phys), intent(in)}]{sfcprs,  }\item[{real(kind=kind\+\_\+phys), intent(in)}]{ch,  }\item[{real(kind=kind\+\_\+phys), intent(in)}]{t2v,  }\item[{real(kind=kind\+\_\+phys), intent(in)}]{th2,  }\item[{real(kind=kind\+\_\+phys), intent(in)}]{prcp,  }\item[{real(kind=kind\+\_\+phys), intent(in)}]{fdown,  }\item[{real(kind=kind\+\_\+phys), intent(in)}]{ssoil,  }\item[{real(kind=kind\+\_\+phys), intent(in)}]{q2,  }\item[{real(kind=kind\+\_\+phys), intent(in)}]{q2sat,  }\item[{real(kind=kind\+\_\+phys), intent(out)}]{etp,  }\item[{logical, intent(in)}]{snowng,  }\item[{logical, intent(in)}]{frzgra,  }\item[{real(kind=kind\+\_\+phys), intent(in)}]{ffrozp,  }\item[{real(kind=kind\+\_\+phys), intent(in)}]{dqsdt2,  }\item[{real(kind=kind\+\_\+phys), intent(in)}]{emissi\+\_\+in,  }\item[{real(kind=kind\+\_\+phys), intent(in)}]{sncovr }\end{DoxyParamCaption})}

