GMTB Common Community Physics Package (CCPP) Scientific Documentation  Version 1.0
GFS gwdps Main

This subroutine includes orographic gravity wave drag and mountain blocking. More...

Detailed Description

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.

Argument Table

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

GFS Orographic GWD Scheme General Algorithm

  1. Calculate subgrid mountain blocking
  2. Calculate orographic wave drag

Detailed Algorithm

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)
 

Function/Subroutine Documentation

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 
)
  1. Subgrid Mountain Blocking Section
    • Compute Brunt-Vaisala Frequency \(N\).
    • Find the dividing streamline height starting from the level above the maximum mountain height and processing downward.
    • Compute wind speed UDS

      \[ 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.
    • The dividing streamline height (idxzb), of a subgrid scale obstable, is found by comparing the potential (PE) and kinetic energies (EK) of the upstream large scale wind and subgrid scale air parcel movements. the dividing streamline is found when \(PE\geq EK\). Mountain-blocked flow is defined to exist between the surface and the dividing streamline height ( \(h_d\)), which can be found by solving an integral equation for \(h_d\):

      \[ \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.
    • Calculate \(ZLEN\), which sums up a number of contributions of elliptic obstables.

      \[ ZLEN=\sqrt{[\frac{h_{d}-z}{z+h'}]} \]

      where \(z\) is the height, \(h'\) is the orographic standard deviation (HPRIME).
    • Calculate the drag coefficient to vary with the aspect ratio of the obstable as seen by the incident flow (see eq.14 in [58])

      \[ 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).
    • In each model layer below the dividing streamlines, a drag from the blocked flow is exerted by the obstacle on the large scale flow. The drag per unit area and per unit height is written (eq.15 in [58]):

      \[ 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.
  2. Orographic Gravity Wave Drag Section
    • Calculate the reference level index: kref=max(2,KPBL+1). where KPBL is the index for the PBL top layer.
    • Calculate low-level horizontal wind direction, the derived orographic asymmetry parameter (OA), and the derived Lx (CLX).
    • Calculate enhancement factor (E),number of mountans (m') and aspect ratio constant.
      As in eq.(4.9),(4.10),(4.11) in [47], we define m' and E in such a way that they depend on the geometry and location of the subgrid-scale orography through OA and the nonlinearity of flow above the orography through Fr. OC, which is the orographic convexity, and statistically determine how protruded (sharp) the subgrid-scale orography is, is included in the saturation flux G' in such a way that G' is proportional to OC. The forms of E,m' and G' are:

      \[ 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.
    • Calculate the reference-level drag \(\tau_{0}\) (eq.(4.8) in [47]):

      \[ \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.
    • Compute the drag above the reference level ( \(k\geq kref\)):
      • Calculate the ratio of the Scorer parameter ( \(R_{scor}\)).
        From a series of experiments, [47] found that the magnitude of drag divergence tends to be underestimated by the revised scheme in low-level downstream regions with wave breaking. Therefore, at low levels when OA > 0 (i.e., in the "downstream" region) the saturation hypothesis is replaced by the following formula based on the ratio of the the Scorer parameter:

        \[ R_{scor}=\min \left[\frac{\tau_i}{\tau_{i+1}},1\right] \]

      • The drag above the reference level is expressed as:

        \[ \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}} \]

    • The minimum Richardson number ( \(Ri_{m}\)) or local wave-modified Richardson number, which determines the onset of wave breaking, is expressed in terms of \(R_{i}\) and \(F_{r_{d}}=Nh_{d}/U\):

      \[ Ri_{m}=\frac{Ri(1-Fr_{d})}{(1+\sqrt{Ri}\cdot Fr_{d})^{2}} \]

      see eq.(4.6) in [47].
      • Check stability to employ the 'saturation hypothesis' of [56] except at tropospheric downstream regions.
        Wave breaking occurs when \(Ri_{m}<Ri_{c}=0.25\). Then Lindzen's wave saturation hypothesis resets the displacement amplitude \(h_{d}\) to that corresponding to \(Ri_{m}=0.25\), we obtain the critical \(h_{d}\)(or \(h_{c}\)) expressed in terms of the mean values of \(U\), \(N\), and \(Ri\) ( eq.(4.7) 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).
    • Calculate outputs: A, B, DUSFC, DVSFC (see parameter description).
      • Below the dividing streamline height (k < idxzb), mountain blocking( \(D_{b}\)) is applied.
      • Otherwise (k>= idxzb), orographic GWD ( \(\tau\)) is applied.