This subroutine includes orographic gravity wave drag and mountain blocking. More...
This subroutine includes orographic gravity wave drag and mountain blocking.
The time tendencies of zonal and meridional wind are altered to include the effect of mountain induced gravity wave drag from subgrid scale orography including convective breaking, shear breaking and the presence of critical levels.
subroutine | gwdps (IM, IX, IY, KM, A, B, C, U1, V1, T1, Q1, KPBL, PRSI, DEL, PRSL, PRSLK, PHII, PHIL, DELTIM, KDT, HPRIME, OC, OA4, CLX4, THETA, SIGMA, GAMMA, ELVMAX, DUSFC, DVSFC, G, CP, RD, RV, IMX, nmtvr, cdmbgwd, me, lprnt, ipr) |
subroutine gwdps | ( | integer | IM, |
integer | IX, | ||
integer | IY, | ||
integer | KM, | ||
real(kind=kind_phys), dimension(iy,km) | A, | ||
real(kind=kind_phys), dimension(iy,km) | B, | ||
real(kind=kind_phys), dimension(iy,km) | C, | ||
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, | ||
integer, dimension(im) | KPBL, | ||
real(kind=kind_phys), dimension(ix,km+1) | PRSI, | ||
real(kind=kind_phys), dimension(ix,km) | DEL, | ||
real(kind=kind_phys), dimension(ix,km) | PRSL, | ||
real(kind=kind_phys), dimension(ix,km) | PRSLK, | ||
real(kind=kind_phys), dimension(ix,km+1) | PHII, | ||
real(kind=kind_phys), dimension(ix,km) | PHIL, | ||
real(kind=kind_phys) | DELTIM, | ||
integer | KDT, | ||
real(kind=kind_phys), dimension(im) | HPRIME, | ||
real(kind=kind_phys), dimension(im) | OC, | ||
real(kind=kind_phys), dimension(iy,4) | OA4, | ||
real(kind=kind_phys), dimension(iy,4) | CLX4, | ||
real(kind=kind_phys), dimension(im) | THETA, | ||
real(kind=kind_phys), dimension(im) | SIGMA, | ||
real(kind=kind_phys), dimension(im) | GAMMA, | ||
real(kind=kind_phys), dimension(im) | ELVMAX, | ||
real(kind=kind_phys), dimension(im) | DUSFC, | ||
real(kind=kind_phys), dimension(im) | DVSFC, | ||
real(kind=kind_phys) | G, | ||
real(kind=kind_phys) | CP, | ||
real(kind=kind_phys) | RD, | ||
real(kind=kind_phys) | RV, | ||
integer | IMX, | ||
integer | nmtvr, | ||
real(kind=kind_phys), dimension(2) | cdmbgwd, | ||
integer | me, | ||
logical | lprnt, | ||
integer | ipr | ||
) |
[in] | IM | horizontal number of used pts |
[in] | IX | horizontal dimension |
[in] | IY | horizontal number of used pts |
[in] | KM | vertical layer dimension |
[in,out] | A | non-linear tendency for v wind component |
[in,out] | B | non-linear tendency for u wind component |
[in,out] | C | non-linear tendency for temperature (not used) |
[in] | U1 | zonal wind component of model layer wind (m/s) |
[in] | V1 | meridional wind component of model layer wind (m/s) |
[in] | T1 | model layer mean temperature (K) |
[in] | Q1 | model layer mean specific humidity |
[in] | KPBL | index for the PBL top layer |
[in] | PRSI | pressure at layer interfaces |
[in] | DEL | positive increment of p/psfc across layer |
[in] | PRSL | mean layer pressure |
[in] | PRSLK | Exner function at layer |
[in] | PHII | interface geopotential ( \(m^2/s^2\)) |
[in] | PHIL | layer geopotential ( \(m^2/s^2\)) |
[in] | DELTIM | physics time step in seconds |
[in] | KDT | number of the current time step |
[in] | HPRIME | orographic standard deviation (m) (mtnvar(:,1)) |
[in] | OC | orographic Convexity (mtnvar(:,2)) |
[in] | OA4 | orographic Asymmetry (mtnvar(:,3:6)) |
[in] | CLX4 | Lx, the fractional area covered by the subgrid-scale orography higher than a critical height for a grid box with the interval \( \triangle x \) (mtnvar(:,7:10)) |
[in] | THETA | the angle of the mtn with that to the east (x) axis (mtnvar(:,11)) |
[in] | SIGMA | orographic slope (mtnvar(:,13)) |
[in] | GAMMA | orographic anisotropy (mtnvar(:,12)) |
[in] | ELVMAX | orographic maximum (mtnvar(:,14)) |
[out] | DUSFC | u component of surface stress |
[out] | DVSFC | v component of surface stress |
[in] | G | see physcons::con_g |
[in] | CP | see physcons::con_cp |
[in] | RD | see physcons::con_tird |
[in] | RV | see physcons::con_rv |
[in] | IMX | number of longitude points |
[in] | NMTVR | number of topographic variables such as variance etc used in the GWD parameterization,current operational, nmtvr=14 |
[in] | CDMBGWD | multiplication factors for cdmb and gwd |
[in] | ME | pe number - used for debug prints |
[in] | LPRNT | logical print flag |
[in] | IPR | check print point for debugging |
— Subgrid Mountain Blocking Section
\[ UDS=\max(\sqrt{U1^2+V1^2},minwnd) \]
where \( minwnd=0.1 \), \(U1\) and \(V1\) are zonal and meridional wind components of model layer wind.\[ \frac{U^{2}(h_{d})}{2}=\int_{h_{d}}^{H} N^{2}(z)(H-z)dz \]
where \(H\) is the maximum subgrid scale elevation within the grid box of actual orography, \(h\), obtained from the GTOPO30 dataset from the U.S. Geological Survey.\[ ZLEN=\sqrt{[\frac{h_{d}-z}{z+h'}]} \]
where \(z\) is the height, \(h'\) is the orographic standard deviation (HPRIME).\[ R=\frac{\cos^{2}\psi+\gamma\sin^{2}\psi}{\gamma\cos^{2}\psi+\sin^{2}\psi} \]
where \(\psi\), which is derived from THETA, is the angle between the incident flow direction and the normal ridge direcion. \(\gamma\) is the orographic anisotropy (GAMMA).\[ D_{b}(z)=-C_{d}\max(2-\frac{1}{R},0)\rho\frac{\sigma}{2h'}ZLEN\max(\cos\psi,\gamma\sin\psi)\frac{UDS}{2} \]
where \(C_{d}\) is a specified constant, \(\sigma\) is the orographic slope.— Orographic Gravity Wave Drag Section
\[ E(OA,F_{r_{0}})=(OA+2)^{\delta} \]
\[ \delta=C_{E}F_{r_{0}}/F_{r_{c}} \]
\[ m'(OA,CLX)=C_{m}\triangle x(1+CLX)^{OA+1} \]
\[ G'(OC,F_{r_{0}})=\frac{F_{r_{0}}^2}{F_{r_{0}}^2+a^{2}} \]
\[ a^{2}=C_{G}OC^{-1} \]
where \(F_{r_{c}}(=1)\) is the critical Froude number, \(F_{r_{0}}\) is the Froude number. \(C_{E}\), \(C_{m}\), \(C_{G}\) are constants.\[ \tau_0=E\frac{m'}{\triangle x}\frac{\rho_{0}U_0^3}{N_{0}}G' \]
where \(E\), \(m'\), and \(G'\) are the enhancement factor, "the number of mountains", and the flux function defined above, respectively.\[ R_{scor}=\min \left[\frac{\tau_i}{\tau_{i+1}},1\right] \]
\[ \tau=\frac{m'}{\triangle x}\rho NUh_d^2 \]
where \(h_{d}\) is the displacement wave amplitude. In the absence of wave breaking, the displacement amplitude for the \(i^{th}\) layer can be expressed using the drag for the layer immediately below. Thus, assuming \(\tau_i=\tau_{i+1}\), we can get:\[ h_{d_i}^2=\frac{\triangle x}{m'}\frac{\tau_{i+1}}{\rho_{i}N_{i}U_{i}} \]
\[ Ri_{m}=\frac{Ri(1-Fr_{d})}{(1+\sqrt{Ri}\cdot Fr_{d})^{2}} \]
see eq.(4.6) in Kim and Arakawa (1995) [36].\[ h_{c}=\frac{U}{N}\left\{2(2+\frac{1}{\sqrt{Ri}})^{1/2}-(2+\frac{1}{\sqrt{Ri}})\right\} \]
if \(Ri_{m}\leq Ri_{c}\), obtain \(\tau\) from the drag above the reference level by using \(h_{c}\) computed above; otherwise \(\tau\) is unchanged (note: scaled by the ratio of the Scorer paramter).Definition at line 188 of file gwdps.f.
Referenced by gbphys().