This subroutine includes orographic gravity wave drag and mountain blocking. More...
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.
local_name | standard_name | long_name | units | rank | type | kind | intent | optional |
---|---|---|---|---|---|---|---|---|
im | horizontal_loop_extent | horizontal loop extent | count | 0 | integer | in | F | |
ix | horizontal_dimension | horizontal dimension | count | 0 | integer | in | F | |
km | vertical_dimension | number of vertical layers | count | 0 | integer | in | F | |
A | tendency_of_y_wind_due_to_model_physics | meridional wind tendency due to model physics | m s-2 | 2 | real | kind_phys | inout | F |
B | tendency_of_x_wind_due_to_model_physics | zonal wind tendency due to model physics | m s-2 | 2 | real | kind_phys | inout | F |
C | tendency_of_air_temperature_due_to_model_physics | air temperature tendency due to model physics | K s-1 | 2 | real | kind_phys | inout | F |
u1 | x_wind | zonal wind | m s-1 | 2 | real | kind_phys | in | F |
v1 | y_wind | meridional wind | m s-1 | 2 | real | kind_phys | in | F |
t1 | air_temperature | mid-layer temperature | K | 2 | real | kind_phys | in | F |
q1 | water_vapor_specific_humidity | mid-layer specific humidity of water vapor | kg kg-1 | 2 | real | kind_phys | in | F |
kpbl | vertical_index_at_top_of_atmosphere_boundary_layer | vertical index at top atmospheric boundary layer | index | 1 | integer | in | F | |
prsi | air_pressure_at_interface | interface pressure | Pa | 2 | real | kind_phys | in | F |
del | air_pressure_difference_between_midlayers | difference between mid-layer pressures | Pa | 2 | real | kind_phys | in | F |
prsl | air_pressure | mid-layer pressure | Pa | 2 | real | kind_phys | in | F |
prslk | dimensionless_exner_function_at_model_layers | mid-layer Exner function | none | 2 | real | kind_phys | in | F |
phii | geopotential_at_interface | interface geopotential | m2 s-2 | 2 | real | kind_phys | in | F |
phil | geopotential | mid-layer geopotential | m2 s-2 | 2 | real | kind_phys | in | F |
deltim | time_step_for_physics | physics time step | s | 0 | real | kind_phys | in | F |
kdt | index_of_time_step | current time step index | index | 0 | integer | in | F | |
hprime | standard_deviation_of_subgrid_orography | standard deviation of subgrid orography | m | 1 | real | kind_phys | in | F |
oc | convexity_of_subgrid_orography | convexity of subgrid orography | none | 1 | real | kind_phys | in | F |
oa4 | asymmetry_of_subgrid_orography | asymmetry of subgrid orography | none | 2 | real | kind_phys | in | F |
clx4 | fraction_of_grid_box_with_subgrid_orography_higher_than_critical_height | horizontal fraction of grid box covered by subgrid orography higher than critical height | frac | 2 | real | kind_phys | in | F |
theta | angle_from_east_of_maximum_subgrid_orographic_variations | angle with respect to east of maximum subgrid orographic variations | degrees | 1 | real | kind_phys | in | F |
sigma | slope_of_subgrid_orography | slope of subgrid orography | none | 1 | real | kind_phys | in | F |
gamma | anisotropy_of_subgrid_orography | anisotropy of subgrid orography | none | 1 | real | kind_phys | in | F |
elvmax | maximum_subgrid_orography | maximum of subgrid orography | m | 1 | real | kind_phys | inout | F |
dusfc | instantaneous_x_stress_due_to_gravity_wave_drag | zonal surface stress due to orographic gravity wave drag | Pa | 1 | real | kind_phys | out | F |
dvsfc | instantaneous_y_stress_due_to_gravity_wave_drag | meridional surface stress due to orographic gravity wave drag | Pa | 1 | real | kind_phys | out | F |
g | gravitational_acceleration | gravitational acceleration | m s-2 | 0 | real | kind_phys | in | F |
cp | specific_heat_of_dry_air_at_constant_pressure | specific heat of dry air at constant pressure | J kg-1 K-1 | 0 | real | kind_phys | in | F |
rd | gas_constant_dry_air | ideal gas constant for dry air | J kg-1 K-1 | 0 | real | kind_phys | in | F |
rv | gas_constant_water_vapor | ideal gas constant for water vapor | J kg-1 K-1 | 0 | real | kind_phys | in | F |
imx | number_of_equatorial_longitude_points | number of longitude points along the equator | count | 0 | integer | in | F | |
nmtvr | number_of_statistical_measures_of_subgrid_orography | number of statistical measures of subgrid orography | count | 0 | integer | in | F | |
cdmbgwd | multiplication_factors_for_mountain_blocking_and_orographic_gravity_wave_drag | multiplic. factors for (1) mountain blocking drag coeff. and (2) ref. level orographic gravity wave drag | none | 1 | real | kind_phys | in | F |
me | mpi_rank | rank of the current MPI task | index | 0 | integer | in | F | |
lprnt | flag_print | flag for debugging printouts | flag | 0 | logical | in | F | |
ipr | horizontal_index_of_printed_column | horizontal index of column used in debugging printouts | index | 0 | integer | in | F | |
errmsg | error_message | error message for error handling in CCPP | none | 0 | character | len=* | out | F |
errflg | error_flag | error flag for error handling in CCPP | flag | 0 | integer | out | F |
Functions/Subroutines | |
subroutine | gwdps::gwdps_run ( IM, IX, 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, errmsg, errflg) |
subroutine gwdps::gwdps_run | ( | integer, intent(in) | IM, |
integer, intent(in) | IX, | ||
integer, intent(in) | KM, | ||
real(kind=kind_phys), dimension(ix,km), intent(inout) | A, | ||
real(kind=kind_phys), dimension(ix,km), intent(inout) | B, | ||
real(kind=kind_phys), dimension(ix,km), intent(inout) | C, | ||
real(kind=kind_phys), dimension(ix,km), intent(in) | U1, | ||
real(kind=kind_phys), dimension(ix,km), intent(in) | V1, | ||
real(kind=kind_phys), dimension(ix,km), intent(in) | T1, | ||
real(kind=kind_phys), dimension(ix,km), intent(in) | Q1, | ||
integer, dimension(im), intent(in) | KPBL, | ||
real(kind=kind_phys), dimension(ix,km+1), intent(in) | PRSI, | ||
real(kind=kind_phys), dimension(ix,km), intent(in) | DEL, | ||
real(kind=kind_phys), dimension(ix,km), intent(in) | PRSL, | ||
real(kind=kind_phys), dimension(ix,km), intent(in) | PRSLK, | ||
real(kind=kind_phys), dimension(ix,km+1), intent(in) | PHII, | ||
real(kind=kind_phys), dimension(ix,km), intent(in) | PHIL, | ||
real(kind=kind_phys) | DELTIM, | ||
integer, intent(in) | KDT, | ||
real(kind=kind_phys), dimension(im), intent(in) | HPRIME, | ||
real(kind=kind_phys), dimension(im), intent(in) | OC, | ||
real(kind=kind_phys), dimension(ix,4), intent(in) | OA4, | ||
real(kind=kind_phys), dimension(ix,4), intent(in) | CLX4, | ||
real(kind=kind_phys), dimension(im), intent(in) | THETA, | ||
real(kind=kind_phys), dimension(im), intent(in) | SIGMA, | ||
real(kind=kind_phys), dimension(im), intent(in) | GAMMA, | ||
real(kind=kind_phys), dimension(im), intent(inout) | ELVMAX, | ||
real(kind=kind_phys), dimension(im), intent(out) | DUSFC, | ||
real(kind=kind_phys), dimension(im), intent(out) | DVSFC, | ||
real(kind=kind_phys) | G, | ||
real(kind=kind_phys) | CP, | ||
real(kind=kind_phys) | RD, | ||
real(kind=kind_phys) | RV, | ||
integer, intent(in) | IMX, | ||
integer, intent(in) | nmtvr, | ||
real(kind=kind_phys), dimension(2) | cdmbgwd, | ||
integer, intent(in) | me, | ||
logical, intent(in) | lprnt, | ||
integer, intent(in) | ipr, | ||
character(len=*), intent(out) | errmsg, | ||
integer, intent(out) | errflg | ||
) |
\[ 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.\[ 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 [47].\[ 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).