The physics of NGWs in the UGWP framework (Yudin et al. 2018 [179]) is represented by four GW-solvers, which have been introduced in Lindzen (1981) [108], Hines (1997) [81], Alexander and Dunkerton (1999) [2], and Scinocca (2003) [155]. These GW solvers have been modified by considring the background dissipation of temperature and winds. This feature, which is important in the mesosphere and thermosphere for WAM applications, considers appropriate scale-dependent dissipation of waves near the model top lid providing momentum and energy conservation in the vertical column physics (Shaw and Shepherd 2009 [156]). In the UGWP v0, a modification of Scinocca (2003) [155] scheme for NGWs with non-hydrostatic and rotational effects for GW propagations and background dissipation is represented by the subroutine fv3_ugwp_solv2_v0(). In the next release of UGWP, additional GW-solvers will be implemented along with physics-based triggering of waves and stochastic approaches for selection of GW modes characterized by horizontal phase velocities, azimuthal directions and magnitude of the vertical momentum flux (VMF). More...
In UGWP v0, the specification for the VMF function is adopted from the Goddard Earth Observing System Version 5 (GEOS-5) global atmosphere model of the National Aeronautic and Space Administration (NASA) Goddard Space Flight Center (GSFC) Global Modeling and Assimilation Office (GMAO), as described in Molod et al. (2015) [126] and employed in the Modern-Era Retrospective analysis for Research and Applications (MERRA)-2 reanalysis (Gelaro et al., 2017 [62]). The Fortran subroutine slat_geos5_tamp() describes the latitudinal shape of VMF-function as displayed in Figure 3 of Molod et al. (2015) [126]. It shows that the enhanced values of VMF in the equatorial region gives opportunity to simulate the QBO-like oscillations in the equatorial zonal winds and lead to more realistic simulations of the equatorial dynamics in GEOS-5 operational and MERRA-2 reanalysis products.
The UGWP v0 code has been enhanced by scientists from NOAA's EMC to modulate the zonal mean NGW forcing by three-dimensional distributions of the total precipitation (as a proxy for the excitation of NGWs by convection) and vertically-integrated (surface-tropopause) turbulent kinetic energy. The vertically extented configuration of the UFS weather model is being tuned using reanalysis products from MERRA-2 and the European Centre for Medium-Range Weather Forecasts (ERA-5), along with temperature, ozone, and water vapor observations of middle atmosphere satellite missions. The verification scores with updated NGW forcing, as reported elsewhere by EMC researchers, display noticeable improvements into the mesosphere.
local_name | standard_name | long_name | units | type | dimensions | kind | intent | optional |
---|---|---|---|---|---|---|---|---|
do_ugwp | do_ugwp | flag to activate CIRES UGWP | flag | logical | () | in | False | |
me | mpi_rank | MPI rank of current process | index | integer | () | in | False | |
master | mpi_root | MPI rank of master process | index | integer | () | in | False | |
im | horizontal_loop_extent | horizontal | count | integer | () | in | False | |
levs | vertical_dimension | number of vertical levels | count | integer | () | in | False | |
ntrac | number_of_tracers | number of tracers | count | integer | () | in | False | |
dtp | time_step_for_physics | physics timestep | s | real | () | kind_phys | in | False |
kdt | index_of_time_step | current forecast iteration | index | integer | () | in | False | |
lonr | number_of_equatorial_longitude_points | number of global points in x-dir (i) along the equator | count | integer | () | in | False | |
oro | orography | orography | m | real | (horizontal_dimension) | kind_phys | in | False |
oro_uf | orography_unfiltered | unfiltered orography | m | real | (horizontal_dimension) | kind_phys | in | False |
hprime | standard_deviation_of_subgrid_orography | standard deviation of subgrid orography | m | real | (horizontal_dimension) | kind_phys | in | False |
nmtvr | number_of_statistical_measures_of_subgrid_orography | number of topographic variables in GWD | count | integer | () | in | False | |
oc | convexity_of_subgrid_orography | convexity of subgrid orography | none | real | (horizontal_dimension) | kind_phys | in | False |
oa4 | asymmetry_of_subgrid_orography | asymmetry of subgrid orography | none | real | (horizontal_dimension, 4) | kind_phys | in | False |
clx | 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 | real | (horizontal_dimension, 4) | kind_phys | in | False |
theta | angle_from_east_of_maximum_subgrid_orographic_variations | angle with_respect to east of maximum subgrid orographic variations | degrees | real | (horizontal_dimension) | kind_phys | in | False |
sigma | slope_of_subgrid_orography | slope of subgrid orography | none | real | (horizontal_dimension) | kind_phys | in | False |
gamma | anisotropy_of_subgrid_orography | anisotropy of subgrid orography | none | real | (horizontal_dimension) | kind_phys | in | False |
elvmax | maximum_subgrid_orography | maximum of subgrid orography | m | real | (horizontal_dimension) | kind_phys | in | False |
do_tofd | turb_oro_form_drag_flag | flag for turbulent orographic form drag | flag | logical | () | in | False | |
ldiag_ugwp | diag_ugwp_flag | flag for CIRES UGWP Diagnostics | flag | logical | () | in | False | |
cdmbgwd | multiplication_factors_for_mountain_blocking_and_orographic_gravity_wave_drag | multiplication factors for cdmb and gwd | none | real | (4) | kind_phys | in | False |
xlat | latitude | grid latitude in radians | radians | real | (horizontal_dimension) | kind_phys | in | False |
xlat_d | latitude_degree | latitude in degrees | degree | real | (horizontal_dimension) | kind_phys | in | False |
sinlat | sine_of_latitude | sine of the grid latitude | none | real | (horizontal_dimension) | kind_phys | in | False |
coslat | cosine_of_latitude | cosine of the grid latitude | none | real | (horizontal_dimension) | kind_phys | in | False |
area | cell_area | area of the grid cell | m2 | real | (horizontal_dimension) | kind_phys | in | False |
ugrs | x_wind | zonal wind | m s-1 | real | (horizontal_dimension, vertical_dimension) | kind_phys | in | False |
vgrs | y_wind | meridional wind | m s-1 | real | (horizontal_dimension, vertical_dimension) | kind_phys | in | False |
tgrs | air_temperature | model layer mean temperature | K | real | (horizontal_dimension, vertical_dimension) | kind_phys | in | False |
qgrs | tracer_concentration | model layer mean tracer concentration | kg kg-1 | real | (horizontal_dimension, vertical_dimension, number_of_tracers) | kind_phys | in | False |
prsi | air_pressure_at_interface | air pressure at model layer interfaces | Pa | real | (horizontal_dimension, vertical_dimension_plus_one) | kind_phys | in | False |
prsl | air_pressure | mean layer pressure | Pa | real | (horizontal_dimension, vertical_dimension) | kind_phys | in | False |
prslk | dimensionless_exner_function_at_model_layers | dimensionless Exner function at model layer centers | none | real | (horizontal_dimension, vertical_dimension) | kind_phys | in | False |
phii | geopotential_at_interface | geopotential at model layer interfaces | m2 s-2 | real | (horizontal_dimension, vertical_dimension_plus_one) | kind_phys | in | False |
phil | geopotential | geopotential at model layer centers | m2 s-2 | real | (horizontal_dimension, vertical_dimension) | kind_phys | in | False |
del | air_pressure_difference_between_midlayers | air pressure difference between midlayers | Pa | real | (horizontal_dimension, vertical_dimension) | kind_phys | in | False |
kpbl | vertical_index_at_top_of_atmosphere_boundary_layer | vertical index at top atmospheric boundary layer | index | integer | (horizontal_dimension) | in | False | |
dusfcg | instantaneous_x_stress_due_to_gravity_wave_drag | zonal surface stress due to orographic gravity wave drag | Pa | real | (horizontal_dimension) | kind_phys | out | False |
dvsfcg | instantaneous_y_stress_due_to_gravity_wave_drag | meridional surface stress due to orographic gravity wave drag | Pa | real | (horizontal_dimension) | kind_phys | out | False |
gw_dudt | tendency_of_x_wind_due_to_ugwp | zonal wind tendency due to UGWP | m s-2 | real | (horizontal_dimension, vertical_dimension) | kind_phys | out | False |
gw_dvdt | tendency_of_y_wind_due_to_ugwp | meridional wind tendency due to UGWP | m s-2 | real | (horizontal_dimension, vertical_dimension) | kind_phys | out | False |
gw_dtdt | tendency_of_air_temperature_due_to_ugwp | air temperature tendency due to UGWP | K s-1 | real | (horizontal_dimension, vertical_dimension) | kind_phys | out | False |
gw_kdis | eddy_mixing_due_to_ugwp | eddy mixing due to UGWP | m2 s-1 | real | (horizontal_dimension, vertical_dimension) | kind_phys | out | False |
tau_tofd | instantaneous_momentum_flux_due_to_turbulent_orographic_form_drag | momentum flux or stress due to TOFD | Pa | real | (horizontal_dimension) | kind_phys | out | False |
tau_mtb | instantaneous_momentum_flux_due_to_mountain_blocking_drag | momentum flux or stress due to mountain blocking drag | Pa | real | (horizontal_dimension) | kind_phys | out | False |
tau_ogw | instantaneous_momentum_flux_due_to_orographic_gravity_wave_drag | momentum flux or stress due to orographic gravity wave drag | Pa | real | (horizontal_dimension) | kind_phys | out | False |
tau_ngw | instantaneous_momentum_flux_due_to_nonstationary_gravity_wave | momentum flux or stress due to nonstationary gravity waves | Pa | real | (horizontal_dimension) | kind_phys | out | False |
zmtb | height_of_mountain_blocking | height of mountain blocking drag | m | real | (horizontal_dimension) | kind_phys | out | False |
zlwb | height_of_low_level_wave_breaking | height of low level wave breaking | m | real | (horizontal_dimension) | kind_phys | out | False |
zogw | height_of_launch_level_of_orographic_gravity_wave | height of launch level of orographic gravity wave | m | real | (horizontal_dimension) | kind_phys | out | False |
dudt_mtb | instantaneous_change_in_x_wind_due_to_mountain_blocking_drag | instantaneous change in x wind due to mountain blocking drag | m s-2 | real | (horizontal_dimension, vertical_dimension) | kind_phys | out | False |
dudt_ogw | instantaneous_change_in_x_wind_due_to_orographic_gravity_wave_drag | instantaneous change in x wind due to orographic gw drag | m s-2 | real | (horizontal_dimension, vertical_dimension) | kind_phys | out | False |
dudt_tms | instantaneous_change_in_x_wind_due_to_turbulent_orographic_form_drag | instantaneous change in x wind due to TOFD | m s-2 | real | (horizontal_dimension, vertical_dimension) | kind_phys | out | False |
du3dt_mtb | time_integral_of_change_in_x_wind_due_to_mountain_blocking_drag | time integral of change in x wind due to mountain blocking drag | m s-2 | real | (horizontal_dimension, vertical_dimension) | kind_phys | inout | False |
du3dt_ogw | time_integral_of_change_in_x_wind_due_to_orographic_gravity_wave_drag | time integral of change in x wind due to orographic gw drag | m s-2 | real | (horizontal_dimension, vertical_dimension) | kind_phys | inout | False |
du3dt_tms | time_integral_of_change_in_x_wind_due_to_turbulent_orographic_form_drag | time integral of change in x wind due to TOFD | m s-2 | real | (horizontal_dimension, vertical_dimension) | kind_phys | inout | False |
dudt | tendency_of_x_wind_due_to_model_physics | zonal wind tendency due to model physics | m s-2 | real | (horizontal_dimension, vertical_dimension) | kind_phys | inout | False |
dvdt | tendency_of_y_wind_due_to_model_physics | meridional wind tendency due to model physics | m s-2 | real | (horizontal_dimension, vertical_dimension) | kind_phys | inout | False |
dtdt | tendency_of_air_temperature_due_to_model_physics | air temperature tendency due to model physics | K s-1 | real | (horizontal_dimension, vertical_dimension) | kind_phys | inout | False |
rdxzb | level_of_dividing_streamline | level of the dividing streamline | none | real | (horizontal_dimension) | kind_phys | out | False |
con_g | gravitational_acceleration | gravitational acceleration | m s-2 | real | () | kind_phys | in | False |
con_pi | pi | ratio of a circle's circumference to its diameter | radians | real | () | kind_phys | in | False |
con_cp | specific_heat_of_dry_air_at_constant_pressure | specific heat !of dry air at constant pressure | J kg-1 K-1 | real | () | kind_phys | in | False |
con_rd | gas_constant_dry_air | ideal gas constant for dry air | J kg-1 K-1 | real | () | kind_phys | in | False |
con_rv | gas_constant_water_vapor | ideal gas constant for water vapor | J kg-1 K-1 | real | () | kind_phys | in | False |
con_fvirt | ratio_of_vapor_to_dry_air_gas_constants_minus_one | rv/rd - 1 (rv = ideal gas constant for water vapor) | none | real | () | kind_phys | in | False |
rain | lwe_thickness_of_precipitation_amount_on_dynamics_timestep | total rain at this time step | m | real | (horizontal_dimension) | kind_phys | in | False |
ntke | index_for_turbulent_kinetic_energy | tracer index for turbulent kinetic energy | index | integer | () | in | False | |
q_tke | turbulent_kinetic_energy | turbulent kinetic energy | J | real | (horizontal_dimension, vertical_dimension) | kind_phys | in | False |
dqdt_tke | tendency_of_turbulent_kinetic_energy_due_to_model_physics | turbulent kinetic energy tendency due to model physics | J s-1 | real | (horizontal_dimension, vertical_dimension) | kind_phys | in | False |
lprnt | flag_print | control flag for diagnostic print out | flag | logical | () | in | False | |
ipr | horizontal_index_of_printed_column | horizontal index of printed column | index | integer | () | in | False | |
errmsg | ccpp_error_message | error message for error handling in CCPP | none | character | () | len=* | out | False |
errflg | ccpp_error_flag | error flag for error handling in CCPP | flag | integer | () | out | False |
Functions/Subroutines | |
subroutine, public | cires_ugwp::cires_ugwp_init (me, master, nlunit, input_nml_file, logunit, fn_nml2, lonr, latr, levs, ak, bk, dtp, cdmbgwd, cgwf, pa_rf_in, tau_rf_in, con_p0, do_ugwp, errmsg, errflg) |
The subroutine initializes the CIRES UGWP. More... | |
subroutine, public | cires_ugwp::cires_ugwp_run (do_ugwp, me, master, im, levs, ntrac, dtp, kdt, lonr, oro, oro_uf, hprime, nmtvr, oc, theta, sigma, gamma, elvmax, clx, oa4, do_tofd, ldiag_ugwp, cdmbgwd, xlat, xlat_d, sinlat, coslat, area, ugrs, vgrs, tgrs, qgrs, prsi, prsl, prslk, phii, phil, del, kpbl, dusfcg, dvsfcg, gw_dudt, gw_dvdt, gw_dtdt, gw_kdis, tau_tofd, tau_mtb, tau_ogw, tau_ngw, zmtb, zlwb, zogw, dudt_mtb, dudt_ogw, dudt_tms, du3dt_mtb, du3dt_ogw, du3dt_tms, dudt, dvdt, dtdt, rdxzb, con_g, con_pi, con_cp, con_rd, con_rv, con_fvirt, rain, ntke, q_tke, dqdt_tke, lprnt, ipr, errmsg, errflg) |
subroutine | gwdps_v0 (IM, km, imx, do_tofd, Pdvdt, Pdudt, Pdtdt, Pkdis, U1, V1, T1, Q1, KPBL, PRSI, DEL, PRSL, PRSLK, PHII, PHIL, DTP, KDT, sgh30, HPRIME, OC, OA4, CLX4, THETA, vSIGMA, vGAMMA, ELVMAXD, DUSFC, DVSFC, xlatd, sinlat, coslat, sparea, cdmbgwd, me, master, rdxzb, zmtb, zogw, tau_mtb, tau_ogw, tau_tofd, dudt_mtb, dudt_ogw, dudt_tms) |
Note for the sub-grid scale orography scheme in UGWP v0: Due to degraded forecast scores of simulations with revised schemes for subgrid-scale orography effects in FV3GFS, EMC reinstalled the original gwdps-code with updated efficiency factors for the mountain blocking and OGW drag. The GFS OGW is described in the separate section (GFS Orographic Gravity Wave Drag and Mountain Blocking Scheme Module) and its “call” moved into UGWP-driver subroutine. This combination of NGW and OGW schemes was tested in the FV3GFS-L127 medium-range forecasts (15-30 days) for C96, C192, C384 and C768 resolutions and work in progress to introduce the optimal choice for the scale-aware representations of the efficiency factors that will reflect the better simulations of GW activity by FV3 dynamical core at higher horizontal resolutions. With the MERRA-2 VMF function for NGWs (slat_geos5_tamp) and operational OGW drag scheme (gwdps), FV3GFS simulations can successfully forecast the recent major mid-winter sudden stratospheric warming (SSW) events of 2018-02-12 and 2018-12-31 (10-14 days before the SSW onset; Yudin et al. 2019 [180]). The first multi-year (2015-2018) FV3GFS simulations with UGWP v0 also produce the equatorial QBO-like oscillations in the zonal wind and temperature anomalies. More... | |
subroutine | fv3_ugwp_solv2_v0 (klon, klev, dtime, tm1, um1, vm1, qm1, prsl, prsi, philg, xlatd, sinlat, coslat, pdudt, pdvdt, pdtdt, dked, tau_ngw, mpi_id, master, kdt) |
subroutine | edmix_ugwp_v0 (im, levs, dtp, t1, u1, v1, q1, del, prsl, prsi, phil, prslk, pdudt, pdvdt, pdTdt, pkdis, ed_dudt, ed_dvdt, ed_dTdt, me, master, kdt) |
Part-3 of UGWP v1 Dissipative (eddy) effects of UGWP it will be activated after tests of OGW (new revision) and NGW with MERRA-2 forcing. More... | |
subroutine | diff_1d_wtend (levs, dt, F, F1, Km, rdp, rdpm, S, S1) |
explicit diffusion solver More... | |
subroutine | diff_1d_ptend (levs, dt, F, Km, rdp, rdpm, S) |
explicit "eddy" smoother for tendencies. More... | |
subroutine | ugwp_triggers |
subroutine | get_xy_pt (V, Vx, Vy, nx, ny, dlam1, dlat) |
subroutine | get_xyd_wind (V, Vx, Vy, Vyd, nx, ny, dlam1, dlat, divJp, divJm) |
subroutine | trig3d_fjets (nx, ny, nz, U, V, T, Q, P3D, PS, delp, delz, lon, lat, pmid, trig3d_fgf) |
subroutine | trig3d_okubo (nx, ny, nz, U, V, T, Q, P3d, PS, delp, delz, lon, lat, pmid, trig3d_okw) |
subroutine | trig3d_dconv (nx, ny, nz, U, V, T, Q, P3d, PS, delp, delz, lon, lat, pmid, trig3d_conv, dcheat3d, precip2d, cld_klevs2d, scheat3d) |
subroutine | cires_3d_triggers (nx, ny, nz, lon, lat, pmid, U, V, W, T, Q, delp, delz, p3d, PS, HS, Hyam, Hybm, Hyai, Hybi, trig3d_okw, trig3d_fgf, trig3d_conv, dcheat3d, precip2d, cld_klevs2d, scheat3d) |
subroutine | get_spectra_tau_convgw (nw, im, levs, dcheat, scheat, precip, icld, xlatd, sinlat, coslat, taub, klev, if_src, nf_src) |
subroutine | get_spectra_tau_nstgw (nw, im, levs, trig_fgf, xlatd, sinlat, coslat, taub, klev, if_src, nf_src) |
subroutine | get_spectra_tau_okw (nw, im, levs, trig_okw, xlatd, sinlat, coslat, taub, klev, if_src, nf_src) |
subroutine | slat_geos5_tamp (im, tau_amp, xlatdeg, tau_gw) |
This subroutine describes the latitudinal shape of the VMF-function as displayed in Figure 3 of Molod et al. (2015). The enhanced values of VMF in the equatorial region result in QBO-like oscillations in the equatorial zonal winds and more realistic simulations of the equatorial dynamics in the GEOS-5 operational and MERRA-2 reanalysis products. More... | |
subroutine | slat_geos5 (im, xlatdeg, tau_gw) |
subroutine | init_nazdir (naz, xaz, yaz) |
subroutine | cires_ugwp_module::cires_ugwp_mod_init (me, master, nlunit, input_nml_file, logunit, fn_nml, lonr, latr, levs, ak, bk, pref, dtp, cdmvgwd, cgwf, pa_rf_in, tau_rf_in) |
subroutine | cires_ugwp_module::cires_ugwp_driver (im, levs, dtp, kdt, me, lprnt, lonr, pa_rf, tau_rf, cdmbgwd, xlat, xlatd, sinlat, coslat, ugrs, vgrs, tgrs, qgrs, prsi, prsl, prslk, phii, phil, delp, orostat, kpbl, dusfc, dvsfc, dudt, dvdt, dtdt, kdis, axtot, axo, axc, axf, aytot, ayo, ayc, ayf, eps_tot, ekdis, trig_okw, trig_fgf, dcheat, precip, cld_klevs, zmtb, scheat, dlength, cldf, taus_sso, taus_ogw, tauf_ogw, tauf_ngw, ugw_zmtb, ugw_zlwb, ugw_zogw, ugw_axmtb, ugw_axlwb, ugw_axtms) |
subroutine | cires_ugwp_module::cires_ugwp_advance |
subroutine | cires_ugwp_module::cires_ugwp_mod_finalize |
subroutine | um_flow (nz, klow, ktop, up, vp, tp, qp, dp, zpm, zpi, pmid, pint, bn2, uhm, vhm, bn2hm, rhohm) |
subroutine | mflow_tauz (levs, up, vp, tp, qp, dp, zpm, zpi, pmid, pint, rho, ui, vi, ti, bn2i, bvi, rhoi) |
subroutine | get_unit_vector (u, v, u_n, v_n, mag) |
subroutine | ugwp_wmsdis_naz (levs, ksrc, nw, naz, kxw, taub_lat, ch, xaz, yaz, fcor, c2f2, dp, zmid, zint, pmid, pint, rho, ui, vi, ti, kvg, ktg, krad, kion, bn2i, bvi, rhoi, ax, ay, eps, ked, tau1) |
subroutine | ugwp_wmsdis_az1 (levs, ksrc, nw, kxw, ch, dch, taub_sp, tau_bulk, spnorm, fcor, c2f2, zm, zi, rho, um, tm, bn2, bn, rhoi, bnrho, dzirho, dzpi, kvg, ktg, krad, kion, kmol, eps, ked, tau) |
subroutine | fvs93_ugwps (nw, ch, dch, taub_sp, spnorm, nslope, bn2, bn, bnrhos) |
subroutine | ugwp_drag_mtb (iemax, nz, elvpd, elvp, hprime, sigma, theta, oc, oa4, clx4, gam, zpbl, up, vp, tp, qp, dp, zpm, zpi, pmid, pint, idxzb, drmtb, taumtb) |
subroutine | ugwp_taub_oro (levs, izb, kxw, tau_izb, fcor, hprime, sigma, theta, oc, oa4, clx4, gamm, elvp, up, vp, tp, qp, dp, zpm, zpi, pmid, pint, xn, yn, umag, tautot, tauogw, taulee, drlee, tau_src, kxridge, kdswj, krefj, kotr) |
subroutine | ugwp_oro_lsatdis (krefj, levs, tauogw, tautot, tau_src, kxw, fcor, kxridge, up, vp, tp, qp, dp, zpm, zpi, pmid, pint, xn, yn, umag, drtau, kdis) |
subroutine | ugwp_tofd (im, levs, sigflt, elvmax, zpbl, u, v, zmid, utofd, vtofd, epstofd, krf_tofd) |
subroutine | ugwp_tofd1d (levs, sigflt, elvmax, zsurf, zpbl, u, v, zmid, utofd, vtofd, epstofd, krf_tofd) |
subroutine | ugwp_lsatdis_naz (levs, ksrc, nw, naz, kxw, taub_spect, ch, xaz, yaz, fcor, c2f2, dp, zmid, zint, pmid, pint, rho, ui, vi, ti, kvg, ktg, krad, kion, bn2i, bvi, rhoi, ax, ay, eps, ked, tau1) |
subroutine | ugwp_lsatdis_az1 (levs, ksrc, nw, kxw, ch, taub_sp, fcor, c2f2, zm, zi, rho, um, tm, bn2, bn, rhoi, dzirho, dzpi, kvg, ktg, krad, kion, kmol, eps, ked, tau) |
subroutine | ugwp_limit_1d (ax, ay, eps, ked, levs) |