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, | ||
real(kind=kind_phys), dimension(:,:), intent(inout) | ldu3dt_ogw, | ||
real(kind=kind_phys), dimension(:,:), intent(inout) | ldv3dt_ogw, | ||
real(kind=kind_phys), dimension(:,:), intent(inout) | ldt3dt_ogw, | ||
real(kind=kind_phys), dimension(:,:), intent(inout) | ldu3dt_cgw, | ||
real(kind=kind_phys), dimension(:,:), intent(inout) | ldv3dt_cgw, | ||
real(kind=kind_phys), dimension(:,:), intent(inout) | ldt3dt_cgw, | ||
logical, intent(in) | ldiag3d, | ||
logical, intent(in) | lssav, | ||
logical, intent(in) | flag_for_gwd_generic_tend, | ||
character(len=*), intent(out) | errmsg, | ||
integer, intent(out) | errflg | ||
) |
In UGWP-v0, the specification for the VMF function is adopted from the GEOS-5 global atmosphere model of GMAO NASA/GSFC, as described in Molod et al. (2015) [128] and employed in the MERRRA-2 reanalysis (Gelaro et al., 2017 [64]). The Fortran subroutine slat_geos5_tamp describes the latitudinal shape of VMF-function as displayed in Figure 3 of Molod et al. (2015) [128]. 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. For the first vertically extended version of FV3GFS in the stratosphere and mesosphere, this simplified function of VMF allows us to tune the model climate and to evaluate multi-year simulations of FV3GFS with the MERRA-2 and ERA-5 reanalysis products, along with temperature, ozone, and water vapor observations of current satellite missions. After delivery of the UGWP-code, the EMC group developed and tested approach to modulate the zonal mean NGW forcing by 3D-distributions of the total precipitation as a proxy for the excitation of NGWs by convection and the vertically-integrated (surface - tropopause) Turbulent Kinetic Energy (TKE). The verification scores with updated NGW forcing, as reported elsewhere by EMC researchers, display noticeable improvements in the forecast scores produced by FV3GFS configuration extended 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 |
theta | angle_from_east_of_maximum_subgrid_orographic_variations | angle with_respect to east of maximum subgrid orographic variations | degree | 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 | inout | 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 |
oa4 | asymmetry_of_subgrid_orography | asymmetry of subgrid orography | none | real | (horizontal_dimension, 4) | 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 | radian | real | (horizontal_dimension) | kind_phys | in | False |
xlat_d | latitude_in_degree | latitude in degree north | degree_north | 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 | none | 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 | |
ldu3dt_ogw | cumulative_change_in_x_wind_due_to_orographic_gravity_wave_drag | cumulative change in x wind due to orographic gravity wave drag | m s-1 | real | (horizontal_dimension, vertical_dimension) | kind_phys | inout | False |
ldv3dt_ogw | cumulative_change_in_y_wind_due_to_orographic_gravity_wave_drag | cumulative change in y wind due to orographic gravity wave drag | m s-1 | real | (horizontal_dimension, vertical_dimension) | kind_phys | inout | False |
ldt3dt_ogw | cumulative_change_in_temperature_due_to_orographic_gravity_wave_drag | cumulative change in temperature due to orographic gravity wave drag | K | real | (horizontal_dimension, vertical_dimension) | kind_phys | inout | False |
ldu3dt_cgw | cumulative_change_in_x_wind_due_to_convective_gravity_wave_drag | cumulative change in x wind due to convective gravity wave drag | m s-1 | real | (horizontal_dimension, vertical_dimension) | kind_phys | inout | False |
ldv3dt_cgw | cumulative_change_in_y_wind_due_to_convective_gravity_wave_drag | cumulative change in y wind due to convective gravity wave drag | m s-1 | real | (horizontal_dimension, vertical_dimension) | kind_phys | inout | False |
ldt3dt_cgw | cumulative_change_in_temperature_due_to_convective_gravity_wave_drag | cumulative change in temperature due to convective gravity wave drag | K | real | (horizontal_dimension, vertical_dimension) | kind_phys | inout | False |
ldiag3d | flag_diagnostics_3D | flag for 3d diagnostic fields | flag | logical | () | in | False | |
lssav | flag_diagnostics | logical flag for storing diagnostics | flag | logical | () | in | False | |
flag_for_gwd_generic_tend | flag_for_generic_gravity_wave_drag_tendency | true if GFS_GWD_generic should calculate tendencies | flag | logical | () | 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 |
References edmix_ugwp_v0(), fv3_ugwp_solv2_v0(), gwdps::gwdps_run(), gwdps_v0(), and slat_geos5_tamp().