This subroutine is the parameterization of convective gravity wave drag based on the theory given by Chun and Baik (1998) [8] modified for implementation into the GFS/CFS by Ake Johansson(Aug 2005). More...
This subroutine is the parameterization of convective gravity wave drag based on the theory given by Chun and Baik (1998) [8] modified for implementation into the GFS/CFS by Ake Johansson(Aug 2005).
Parameterizing subgrid-scale convection-induced gravity wave momentum flux for use in large-scale models inherently requires some information from subgrid-scale cumulus parameterization. The methodology for parameterizing the zonal momentum flux induced by thermal forcing can be summarized as follows. From the cloud-base to cloud-top height, the effect of the momentum flux induced by subgrid-scale diabatic forcing is not considered because subgrid-scale cumulus convection in large-scale models is only activated in a conditionally unstable atmosphere. Below the cloud base, the momentum flux is also not considered because of the wave momentum cancellation. At the cloud top, the momentum flux is obtained by eq.(18) and (19) in Chun and Baik (1998) [8]. Above the cloud top, there are two ways to construct the momentum flux profile. One way is to specify a vertical structure of the momentum flux normalized by the cloud-top value, similar to what has been done for mountain drag parameterization. The other way is to apply the wave saturation hypothesis in order to find wave breaking levels in terms of the Richardon number criterion using the nonlinearity factor of thermally induced waves.
subroutine | gwdc (im, ix, iy, km, lat, u1, v1, t1, q1, pmid1, pint1, dpmid1, qmax, ktop, kbot, kcnv, cldf, grav, cp, rd, fv, dlength, lprnt, ipr, fhour, utgwc, vtgwc, tauctx, taucty) |
subroutine gwdc | ( | integer | im, |
integer | ix, | ||
integer | iy, | ||
integer | km, | ||
integer | lat, | ||
real(kind=kind_phys), dimension(ix,km) | u1, | ||
real(kind=kind_phys), dimension(ix,km) | v1, | ||
real(kind=kind_phys), dimension(ix,km) | t1, | ||
real(kind=kind_phys), dimension(ix,km) | q1, | ||
real(kind=kind_phys), dimension(ix,km) | pmid1, | ||
real(kind=kind_phys), dimension(ix,km+1) | pint1, | ||
real(kind=kind_phys), dimension(ix,km) | dpmid1, | ||
real(kind=kind_phys), dimension(ix) | qmax, | ||
integer, dimension(im) | ktop, | ||
integer, dimension(im) | kbot, | ||
integer, dimension(im) | kcnv, | ||
real(kind=kind_phys), dimension(im) | cldf, | ||
real(kind=kind_phys) | grav, | ||
real(kind=kind_phys) | cp, | ||
real(kind=kind_phys) | rd, | ||
real(kind=kind_phys) | fv, | ||
real(kind=kind_phys), dimension(im) | dlength, | ||
logical | lprnt, | ||
integer | ipr, | ||
real(kind=kind_phys) | fhour, | ||
real(kind=kind_phys), dimension(iy,km) | utgwc, | ||
real(kind=kind_phys), dimension(iy,km) | vtgwc, | ||
real(kind=kind_phys), dimension(ix) | tauctx, | ||
real(kind=kind_phys), dimension(ix) | taucty | ||
) |
[in] | IM | horizontal number of used pts |
[in] | IX | horizontal dimension |
[in] | IY | horizontal number of used pts |
[in] | KM | vertical layer dimension |
[in] | LAT | latitude index - used for debug prints |
[in] | U1 | u component of layer wind |
[in] | V1 | v component of layer wind |
[in] | T1 | layer mean temperature (K) |
[in] | Q1 | layer mean tracer concentration |
[in] | PMID1 | mean layer pressure |
[in] | PINT1 | pressure at layer interfaces |
[in] | DPMID1 | mean layer delta p |
[in] | QMAX | maximum convective heating rate (k/s) in a horizontal grid point calculated from cumulus parameterization |
[in] | KTOP | vertical level index for cloud top |
[in] | KBOT | vertical level index for cloud bottom |
[in] | KCNV | (0,1) dependent on whether convection occur or not |
[in] | CLDF | deep convective cloud fraction at the cloud top |
[in] | GRAV | gravity defined in physcon |
[in] | CP | specific heat at constant pressure defined in physcon |
[in] | RD | gas constant air defined in physcon |
[in] | FV | con_fvirt = con_rv/con_rd-1 |
[in] | DLENGTH | grid spacing in the direction of basic wind at the cloud top |
[in] | LPRNT | logical print flag |
[in] | IPR | check print point for debugging |
[in] | FHOUR | forecast hour |
[out] | UTGWC | zonal wind tendency |
[out] | VTGWC | meridional wind tendency |
[out] | TAUCTX | wave stress at the cloud top projected in the east |
[out] | TAUCTY | wave stress at the cloud top projected in the north |
\[ Ri=N^2/\eta^2 \]
where \(\eta\) is the vertical shear ( \(dU/dz\)).\[ \mu=\frac{gQ_{0}a_{1}}{c_{p}T_{0}NU^{2}} \]
where \(Q_{0}\) is the maximum deep convective heating rate in a horizontal grid point calculated from cumulus parameterization. \(a_{1}\) is the half-width of the forcing function. \(g\) is gravity. \(c_{p}\) is specific heat at constant pressure. \(T_{0}\) is the layer mean temperature (T1). As eqs.(18) and (19) [8], the zonal momentum flux is given by\[ \tau_{x}=-[\rho U^{3}/(N\triangle x)]G(\mu) \]
where\[ G(\mu)=c_{1}c_2^2 \mu^{2} \]
wher \(\rho\) is the local density. The tunable parameter \(c_1\) is related to the horizontal structure of thermal forcing. The tunable parameter \(c_2\) is related to the basic-state wind and stability and the bottom and top heights of thermal forcing. If the atmosphere is dynamically unstable at the cloud top, the convective GWD calculation is skipped at that grid point.\[ Ri_{min}\approx\frac{Ri(1-\mu|c_{2}|)}{(1+\mu Ri^{1/2}|c_{2}|)^{2}} \]
\[ \mu_{s}=\frac{1}{|c_{2}|}[2\sqrt{2+\frac{1}{\sqrt{Ri}}}-(2+\frac{1}{\sqrt{Ri}})] \]
Then the saturation zonal momentum flux is given by\[ \tau_{s}=-[\rho U^{3}/(N\triangle x)]c_{1}c_2^2\mu_s^2 \]
Definition at line 76 of file gwdc.f.
Referenced by gbphys().