CCPP Scientific Documentation
v4.0
subroutine, public cires_ugwp::cires_ugwp_run ( logical, intent(in)  do_ugwp,
integer, intent(in)  me,
integer, intent(in)  master,
integer, intent(in)  im,
integer, intent(in)  levs,
integer, intent(in)  ntrac,
real(kind=kind_phys), intent(in)  dtp,
integer, intent(in)  kdt,
integer, intent(in)  lonr,
real(kind=kind_phys), dimension(im), intent(in)  oro,
real(kind=kind_phys), dimension(im), intent(in)  oro_uf,
real(kind=kind_phys), dimension(im), intent(in)  hprime,
integer, intent(in)  nmtvr,
real(kind=kind_phys), dimension(im), intent(in)  oc,
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, 4), intent(in)  clx,
real(kind=kind_phys), dimension(im, 4), intent(in)  oa4,
logical, intent(in)  do_tofd,
logical, intent(in)  ldiag_ugwp,
real(kind=kind_phys), dimension(4), intent(in)  cdmbgwd,
real(kind=kind_phys), dimension(im), intent(in)  xlat,
real(kind=kind_phys), dimension(im), intent(in)  xlat_d,
real(kind=kind_phys), dimension(im), intent(in)  sinlat,
real(kind=kind_phys), dimension(im), intent(in)  coslat,
real(kind=kind_phys), dimension(im), intent(in)  area,
real(kind=kind_phys), dimension(im, levs), intent(in)  ugrs,
real(kind=kind_phys), dimension(im, levs), intent(in)  vgrs,
real(kind=kind_phys), dimension(im, levs), intent(in)  tgrs,
real(kind=kind_phys), dimension(im, levs, ntrac), intent(in)  qgrs,
real(kind=kind_phys), dimension(im, levs+1), intent(in)  prsi,
real(kind=kind_phys), dimension(im, levs), intent(in)  prsl,
real(kind=kind_phys), dimension(im, levs), intent(in)  prslk,
real(kind=kind_phys), dimension(im, levs+1), intent(in)  phii,
real(kind=kind_phys), dimension(im, levs), intent(in)  phil,
real(kind=kind_phys), dimension(im, levs), intent(in)  del,
integer, dimension(im), intent(in)  kpbl,
real(kind=kind_phys), dimension(im), intent(out)  dusfcg,
real(kind=kind_phys), dimension(im), intent(out)  dvsfcg,
real(kind=kind_phys), dimension(im, levs), intent(out)  gw_dudt,
real(kind=kind_phys), dimension(im, levs), intent(out)  gw_dvdt,
real(kind=kind_phys), dimension(im, levs), intent(out)  gw_dtdt,
real(kind=kind_phys), dimension(im, levs), intent(out)  gw_kdis,
real(kind=kind_phys), dimension(im), intent(out)  tau_tofd,
real(kind=kind_phys), dimension(im), intent(out)  tau_mtb,
real(kind=kind_phys), dimension(im), intent(out)  tau_ogw,
real(kind=kind_phys), dimension(im), intent(out)  tau_ngw,
real(kind=kind_phys), dimension(im), intent(out)  zmtb,
real(kind=kind_phys), dimension(im), intent(out)  zlwb,
real(kind=kind_phys), dimension(im), intent(out)  zogw,
real(kind=kind_phys), dimension(im, levs), intent(out)  dudt_mtb,
real(kind=kind_phys), dimension(im, levs), intent(out)  dudt_ogw,
real(kind=kind_phys), dimension(im, levs), intent(out)  dudt_tms,
real(kind=kind_phys), dimension(:,:), intent(out)  du3dt_mtb,
real(kind=kind_phys), dimension(:,:), intent(out)  du3dt_ogw,
real(kind=kind_phys), dimension(:,:), intent(out)  du3dt_tms,
real(kind=kind_phys), dimension(im, levs), intent(inout)  dudt,
real(kind=kind_phys), dimension(im, levs), intent(inout)  dvdt,
real(kind=kind_phys), dimension(im, levs), intent(inout)  dtdt,
real(kind=kind_phys), dimension(im), intent(out)  rdxzb,
real(kind=kind_phys), intent(in)  con_g,
real(kind=kind_phys), intent(in)  con_pi,
real(kind=kind_phys), intent(in)  con_cp,
real(kind=kind_phys), intent(in)  con_rd,
real(kind=kind_phys), intent(in)  con_rv,
real(kind=kind_phys), intent(in)  con_fvirt,
real(kind=kind_phys), dimension(im), intent(in)  rain,
integer, intent(in)  ntke,
real(kind=kind_phys), dimension(:,:), intent(in)  q_tke,
real(kind=kind_phys), dimension(:,:), intent(in)  dqdt_tke,
logical, intent(in)  lprnt,
integer, intent(in)  ipr,
character(len=*), intent(out)  errmsg,
integer, intent(out)  errflg 
)
  1. ORO stationary GWs
    • wrap everything in a do_ugwp 'if test' in order not to break the namelist functionality
  2. Call slat_geos5_tamp(), non-stationary GW-scheme with GMAO/MERRA GW-forcing
    • Call fv3_ugwp_solv2_v0(), which is the modification of Scinocca (2003) [155] scheme for NGWs with non-hydrostatic and rotational effects for GW propagations and background dissipation.

References edmix_ugwp_v0(), fv3_ugwp_solv2_v0(), gwdps::gwdps_run(), gwdps_v0(), and slat_geos5_tamp().

Here is the call graph for this function: