CCPP SciDoc for Idealized Regional TC Capability  SRW v3.0.0
Common Community Physics Package Developed at DTC
 
Loading...
Searching...
No Matches

◆ drag_suite_psl()

subroutine drag_suite::drag_suite_psl ( integer, intent(in) im,
integer, intent(in) km,
real(kind=kind_phys), dimension(:,:), intent(inout) dvdt,
real(kind=kind_phys), dimension(:,:), intent(inout) dudt,
real(kind=kind_phys), dimension(:,:), intent(inout) dtdt,
real(kind=kind_phys), dimension(:,:), intent(in) u1,
real(kind=kind_phys), dimension(:,:), intent(in) v1,
real(kind=kind_phys), dimension(:,:), intent(in) t1,
real(kind=kind_phys), dimension(:,:), intent(in) q1,
integer, dimension(:), intent(in) kpbl,
real(kind=kind_phys), dimension(:,:), intent(in) prsi,
real(kind=kind_phys), dimension(:,:), intent(in) del,
real(kind=kind_phys), dimension(:,:), intent(in) prsl,
real(kind=kind_phys), dimension(:,:), intent(in) prslk,
real(kind=kind_phys), dimension(:,:), intent(in) phii,
real(kind=kind_phys), dimension(:,:), intent(in) phil,
real(kind=kind_phys), intent(in) deltim,
integer, intent(in) kdt,
real(kind=kind_phys), dimension(:), intent(in) var,
real(kind=kind_phys), dimension(:), intent(in) oc1,
real(kind=kind_phys), dimension(:,:), intent(in) oa4,
real(kind=kind_phys), dimension(:,:), intent(in) ol4,
real(kind=kind_phys), dimension(:), intent(in) varss,
real(kind=kind_phys), dimension(:), intent(in) oc1ss,
real(kind=kind_phys), dimension(:,:), intent(in) oa4ss,
real(kind=kind_phys), dimension(:,:), intent(in) ol4ss,
real(kind=kind_phys), dimension(:), intent(in) theta,
real(kind=kind_phys), dimension(:), intent(in) sigma,
real(kind=kind_phys), dimension(:), intent(in) gamma,
real(kind=kind_phys), dimension(:), intent(in) elvmax,
real(kind=kind_phys), dimension(:,:), intent(out), optional dtaux2d_ls,
real(kind=kind_phys), dimension(:,:), intent(out), optional dtauy2d_ls,
real(kind=kind_phys), dimension(:,:), intent(out), optional dtaux2d_bl,
real(kind=kind_phys), dimension(:,:), intent(out), optional dtauy2d_bl,
real(kind=kind_phys), dimension(:,:), intent(out), optional dtaux2d_ss,
real(kind=kind_phys), dimension(:,:), intent(out), optional dtauy2d_ss,
real(kind=kind_phys), dimension(:,:), intent(out), optional dtaux2d_fd,
real(kind=kind_phys), dimension(:,:), intent(out), optional dtauy2d_fd,
real(kind=kind_phys), dimension(:), intent(out) dusfc,
real(kind=kind_phys), dimension(:), intent(out) dvsfc,
real(kind=kind_phys), dimension(:), intent(out), optional dusfc_ls,
real(kind=kind_phys), dimension(:), intent(out), optional dvsfc_ls,
real(kind=kind_phys), dimension(:), intent(out), optional dusfc_bl,
real(kind=kind_phys), dimension(:), intent(out), optional dvsfc_bl,
real(kind=kind_phys), dimension(:), intent(out), optional dusfc_ss,
real(kind=kind_phys), dimension(:), intent(out), optional dvsfc_ss,
real(kind=kind_phys), dimension(:), intent(out), optional dusfc_fd,
real(kind=kind_phys), dimension(:), intent(out), optional dvsfc_fd,
real(kind=kind_phys), dimension(:), intent(in) slmsk,
real(kind=kind_phys), dimension(:), intent(in) br1,
real(kind=kind_phys), dimension(:), intent(in) hpbl,
integer, dimension(:), intent(in) vtype,
real(kind=kind_phys), intent(in) g,
real(kind=kind_phys), intent(in) cp,
real(kind=kind_phys), intent(in) rd,
real(kind=kind_phys), intent(in) rv,
real(kind=kind_phys), intent(in) fv,
real(kind=kind_phys), intent(in) pi,
integer, intent(in) imx,
real(kind=kind_phys), dimension(:), intent(in) cdmbgwd,
real(kind=kind_phys), intent(in) alpha_fd,
integer, intent(in) me,
integer, intent(in) master,
logical, intent(in) lprnt,
integer, intent(in) ipr,
real(kind=kind_phys), dimension(:), intent(out) rdxzb,
real(kind=kind_phys), dimension(:), intent(in) dx,
integer, intent(in) gwd_opt,
logical, intent(in) do_gsl_drag_ls_bl,
logical, intent(in) do_gsl_drag_ss,
logical, intent(in) do_gsl_drag_tofd,
real(kind=kind_phys), intent(in) psl_gwd_dx_factor,
real(kind=kind_phys), dimension(:,:,:), intent(inout), optional dtend,
integer, dimension(:,:), intent(in) dtidx,
integer, intent(in) index_of_process_orographic_gwd,
integer, intent(in) index_of_temperature,
integer, intent(in) index_of_x_wind,
integer, intent(in) index_of_y_wind,
logical, intent(in) ldiag3d,
logical, intent(in) ldiag_ugwp,
logical, intent(in) ugwp_seq_update,
real(kind=kind_phys), dimension(:,:), intent(in), optional spp_wts_gwd,
integer, intent(in) spp_gwd,
character(len=*), intent(out) errmsg,
integer, intent(out) errflg )

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

Orographic drag Scheme General Algorithm

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

The NWP model gravity wave drag (GWD) scheme in the GFS has two main components: how the surface stress is computed, and then how that stress is distributed over a vertical column where it may interact with the models momentum. Each of these depends on the large scale environmental atmospheric state and assumptions about the sub-grid scale processes. In Alpert GWD (1987) based on linear, two-dimensional non-rotating, stably stratified flow over a mountain ridge, sub-grid scale gravity wave motions are assumed which propagate away from the mountain. Described in Alpert (1987), the flux measured over a "low level" vertically averaged layer, in the atmosphere defines a base level flux. "Low level" was taken to be the first 1/3 of the troposphere in the 1987 implementation. This choice was meant to encompass a thick low layer for vertical averages of the environmental (large scale) flow quantities. The vertical momentum flux or gravity wave stress in a grid box due to a single mountain is given as in Pierrehumbert, (1987) (PH):

\( \tau = \frac {\rho \: U^{3}\: G(F_{r})} {\Delta X \ N } \)

GFS Orographic GWD Scheme Detailed Algorithm

  1. Orographic Gravity Wave Drag Section