\hypertarget{namespacegfs__mp__generic__post}{}\doxysubsection{gfs\+\_\+mp\+\_\+generic\+\_\+post Module Reference}
\label{namespacegfs__mp__generic__post}\index{gfs\_mp\_generic\_post@{gfs\_mp\_generic\_post}}


This module contains the subroutine that calculates precipitation type and its post, which provides precipitation forcing to LSM.  


\doxysubsubsection*{Functions/\+Subroutines}
\begin{DoxyCompactItemize}
\item 
subroutine \mbox{\hyperlink{group__gfs__calpreciptype_gaa8d23ba97dd8be02bfc1ac79dfc54e5f_gaa8d23ba97dd8be02bfc1ac79dfc54e5f}{gfs\+\_\+mp\+\_\+generic\+\_\+post\+\_\+run}} (im, levs, kdt, nrcm, nncl, ntcw, ntrac, imp\+\_\+physics, imp\+\_\+physics\+\_\+gfdl, imp\+\_\+physics\+\_\+thompson, imp\+\_\+physics\+\_\+nssl, imp\+\_\+physics\+\_\+mg, imp\+\_\+physics\+\_\+fer\+\_\+hires, cal\+\_\+pre, cplflx, cplchm, cpllnd, progsigma, con\+\_\+g, rhowater, rainmin, dtf, frain, rainc, rain1, rann, xlat, xlon, gt0, gq0, prsl, prsi, phii, tsfc, ice, snow, graupel, save\+\_\+t, save\+\_\+q, rain0, ice0, snow0, graupel0, del, rain, domr\+\_\+diag, domzr\+\_\+diag, domip\+\_\+diag, doms\+\_\+diag, tprcp, srflag, sr, cnvprcp, totprcp, totice, totsnw, totgrp, cnvprcpb, totprcpb, toticeb, totsnwb, totgrpb, rain\+\_\+cpl, rainc\+\_\+cpl, snow\+\_\+cpl, pwat, frzr, frzrb, frozr, frozrb, tsnowp, tsnowpb, rhonewsn1, exticeden, drain\+\_\+cpl, dsnow\+\_\+cpl, lsm, lsm\+\_\+ruc, lsm\+\_\+noahmp, raincprv, rainncprv, iceprv, snowprv, graupelprv, draincprv, drainncprv, diceprv, dsnowprv, dgraupelprv, dtp, dfi\+\_\+radar\+\_\+max\+\_\+intervals, dtend, dtidx, index\+\_\+of\+\_\+temperature, index\+\_\+of\+\_\+process\+\_\+mp, ldiag3d, qdiag3d, dqdt\+\_\+qmicro, lssav, num\+\_\+dfi\+\_\+radar, fh\+\_\+dfi\+\_\+radar, index\+\_\+of\+\_\+process\+\_\+dfi\+\_\+radar, ix\+\_\+dfi\+\_\+radar, dfi\+\_\+radar\+\_\+tten, radar\+\_\+tten\+\_\+limits, fhour, prevsq, iopt\+\_\+lake, iopt\+\_\+lake\+\_\+clm, lkm, use\+\_\+lake\+\_\+model, errmsg, errflg)
\end{DoxyCompactItemize}


\doxysubsubsection{Function/\+Subroutine Documentation}
\mbox{\Hypertarget{group__gfs__calpreciptype_gaa8d23ba97dd8be02bfc1ac79dfc54e5f_gaa8d23ba97dd8be02bfc1ac79dfc54e5f}\label{group__gfs__calpreciptype_gaa8d23ba97dd8be02bfc1ac79dfc54e5f_gaa8d23ba97dd8be02bfc1ac79dfc54e5f}} 
\index{gfs\_mp\_generic\_post@{gfs\_mp\_generic\_post}!gfs\_mp\_generic\_post\_run@{gfs\_mp\_generic\_post\_run}}
\index{gfs\_mp\_generic\_post\_run@{gfs\_mp\_generic\_post\_run}!gfs\_mp\_generic\_post@{gfs\_mp\_generic\_post}}
\doxyparagraph{\texorpdfstring{gfs\_mp\_generic\_post\_run()}{gfs\_mp\_generic\_post\_run()}}
{\footnotesize\ttfamily subroutine gfs\+\_\+mp\+\_\+generic\+\_\+post\+::gfs\+\_\+mp\+\_\+generic\+\_\+post\+\_\+run (\begin{DoxyParamCaption}\item[{integer, intent(in)}]{im,  }\item[{integer, intent(in)}]{levs,  }\item[{integer, intent(in)}]{kdt,  }\item[{integer, intent(in)}]{nrcm,  }\item[{integer, intent(in)}]{nncl,  }\item[{integer, intent(in)}]{ntcw,  }\item[{integer, intent(in)}]{ntrac,  }\item[{integer, intent(in)}]{imp\+\_\+physics,  }\item[{integer, intent(in)}]{imp\+\_\+physics\+\_\+gfdl,  }\item[{integer, intent(in)}]{imp\+\_\+physics\+\_\+thompson,  }\item[{integer, intent(in)}]{imp\+\_\+physics\+\_\+nssl,  }\item[{integer, intent(in)}]{imp\+\_\+physics\+\_\+mg,  }\item[{integer, intent(in)}]{imp\+\_\+physics\+\_\+fer\+\_\+hires,  }\item[{logical, intent(in)}]{cal\+\_\+pre,  }\item[{logical, intent(in)}]{cplflx,  }\item[{logical, intent(in)}]{cplchm,  }\item[{logical, intent(in)}]{cpllnd,  }\item[{logical, intent(in)}]{progsigma,  }\item[{real(kind=kind\+\_\+phys), intent(in)}]{con\+\_\+g,  }\item[{real(kind=kind\+\_\+phys), intent(in)}]{rhowater,  }\item[{real(kind=kind\+\_\+phys), intent(in)}]{rainmin,  }\item[{real(kind=kind\+\_\+phys), intent(in)}]{dtf,  }\item[{real(kind=kind\+\_\+phys), intent(in)}]{frain,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(inout)}]{rainc,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(in)}]{rain1,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:,\+:), intent(in)}]{rann,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(in)}]{xlat,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(in)}]{xlon,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:,\+:), intent(inout)}]{gt0,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:,\+:,\+:), intent(in)}]{gq0,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:,\+:), intent(in)}]{prsl,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:,\+:), intent(in)}]{prsi,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:,\+:), intent(in)}]{phii,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(in)}]{tsfc,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(inout)}]{ice,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(inout)}]{snow,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(inout)}]{graupel,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:,\+:), intent(in)}]{save\+\_\+t,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:,\+:,\+:), intent(in)}]{save\+\_\+q,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(in)}]{rain0,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(in)}]{ice0,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(in)}]{snow0,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(in)}]{graupel0,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:,\+:), intent(in)}]{del,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(inout)}]{rain,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(inout)}]{domr\+\_\+diag,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(inout)}]{domzr\+\_\+diag,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(inout)}]{domip\+\_\+diag,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(inout)}]{doms\+\_\+diag,  }\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(in)}]{sr,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(inout)}]{cnvprcp,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(inout)}]{totprcp,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(inout)}]{totice,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(inout)}]{totsnw,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(inout)}]{totgrp,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(inout)}]{cnvprcpb,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(inout)}]{totprcpb,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(inout)}]{toticeb,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(inout)}]{totsnwb,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(inout)}]{totgrpb,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(inout)}]{rain\+\_\+cpl,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(inout)}]{rainc\+\_\+cpl,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(inout)}]{snow\+\_\+cpl,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(inout)}]{pwat,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(inout)}]{frzr,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(inout)}]{frzrb,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(inout)}]{frozr,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(inout)}]{frozrb,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(inout)}]{tsnowp,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(inout)}]{tsnowpb,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(inout)}]{rhonewsn1,  }\item[{logical, intent(in)}]{exticeden,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(inout)}]{drain\+\_\+cpl,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(inout)}]{dsnow\+\_\+cpl,  }\item[{integer, intent(in)}]{lsm,  }\item[{integer, intent(in)}]{lsm\+\_\+ruc,  }\item[{integer, intent(in)}]{lsm\+\_\+noahmp,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(inout)}]{raincprv,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(inout)}]{rainncprv,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(inout)}]{iceprv,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(inout)}]{snowprv,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(inout)}]{graupelprv,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(inout)}]{draincprv,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(inout)}]{drainncprv,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(inout)}]{diceprv,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(inout)}]{dsnowprv,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(inout)}]{dgraupelprv,  }\item[{real(kind=kind\+\_\+phys), intent(in)}]{dtp,  }\item[{integer}]{dfi\+\_\+radar\+\_\+max\+\_\+intervals,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:,\+:,\+:), intent(inout)}]{dtend,  }\item[{integer, dimension(\+:,\+:), intent(in)}]{dtidx,  }\item[{integer, intent(in)}]{index\+\_\+of\+\_\+temperature,  }\item[{integer, intent(in)}]{index\+\_\+of\+\_\+process\+\_\+mp,  }\item[{logical, intent(in)}]{ldiag3d,  }\item[{logical, intent(in)}]{qdiag3d,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:,\+:), intent(inout)}]{dqdt\+\_\+qmicro,  }\item[{logical, intent(in)}]{lssav,  }\item[{integer, intent(in)}]{num\+\_\+dfi\+\_\+radar,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(in)}]{fh\+\_\+dfi\+\_\+radar,  }\item[{integer, intent(in)}]{index\+\_\+of\+\_\+process\+\_\+dfi\+\_\+radar,  }\item[{integer, dimension(\+:)}]{ix\+\_\+dfi\+\_\+radar,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:,\+:,\+:), intent(in)}]{dfi\+\_\+radar\+\_\+tten,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:), intent(in)}]{radar\+\_\+tten\+\_\+limits,  }\item[{real(kind=kind\+\_\+phys), intent(in)}]{fhour,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:,\+:), intent(inout)}]{prevsq,  }\item[{integer, intent(in)}]{iopt\+\_\+lake,  }\item[{integer, intent(in)}]{iopt\+\_\+lake\+\_\+clm,  }\item[{integer, intent(in)}]{lkm,  }\item[{integer, dimension(\+:), intent(in)}]{use\+\_\+lake\+\_\+model,  }\item[{character(len=$\ast$), intent(out)}]{errmsg,  }\item[{integer, intent(out)}]{errflg }\end{DoxyParamCaption})}


\begin{DoxyItemize}
\item If requested (e.\+g. Zhao-\/\+Carr MP scheme), call \mbox{\hyperlink{group__gfs__calpreciptype_ga5b3ab415cb0d9c7edfcdd1ab45a4bd3b_ga5b3ab415cb0d9c7edfcdd1ab45a4bd3b}{calpreciptype()}} to calculate dominant precipitation type.
\item For GFDL, Thompson and NSSL MP schemes, determine convective snow by surface temperature; and determine explicit rain/snow by snow/ice/graupel coming out directly from MP and convective rainfall from the cumulus scheme if the surface temperature is below $0^oC$.
\end{DoxyItemize}

References \mbox{\hyperlink{group__gfs__calpreciptype_ga5b3ab415cb0d9c7edfcdd1ab45a4bd3b_ga5b3ab415cb0d9c7edfcdd1ab45a4bd3b}{calpreciptype\+\_\+mod\+::calpreciptype()}}, and \mbox{\hyperlink{group___noah___l_s_m_ga028fc448a3afe77726222a337008ffa4_ga028fc448a3afe77726222a337008ffa4}{csnow()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{group__gfs__calpreciptype_gaa8d23ba97dd8be02bfc1ac79dfc54e5f_gaa8d23ba97dd8be02bfc1ac79dfc54e5f_cgraph}
\end{center}
\end{figure}
