CCPP SciDoc v7.0.0  v7.0.0
Common Community Physics Package Developed at DTC
 
Loading...
Searching...
No Matches
GFS Convective Gravity Wave Drag Module

This subroutine is the parameterization of convective gravity wave drag based on the theory given by Chun and Baik (1998) [39] modified for implementation into the GFS/CFS by Ake Johansson(Aug 2005). More...

Functions/Subroutines

subroutine gwdc::gwdc_run (im, km, lat, u1, v1, t1, q1, deltim, pmid1, pint1, dpmid1, qmax, ktop, kbot, kcnv, cldf, grav, cp, rd, fv, pi, dlength, lprnt, ipr, fhour, utgwc, vtgwc, tauctx, taucty, errmsg, errflg)
 

Detailed Description

Argument Table

gwdc_run argument table
local_namestandard_namelong_nameunitstypedimensionskindintent
imhorizontal_loop_extenthorizontal loop extentcountinteger()in
kmvertical_layer_dimensionnumber of vertical layerscountinteger()in
latlatitude_index_in_debug_printoutslatitude index in debug printoutsindexinteger()in
u1x_windzonal windm s-1real(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension)kind_physin
v1y_windmeridional windm s-1real(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension)kind_physin
t1air_temperaturemid-layer temperatureKreal(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension)kind_physin
q1specific_humiditymid-layer specific humidity of water vaporkg kg-1real(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension)kind_physin
deltimtimestep_for_physicsphysics time stepsreal()kind_physin
pmid1air_pressuremid-layer pressurePareal(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension)kind_physin
pint1air_pressure_at_interfaceinterface pressurePareal(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_interface_dimension)kind_physin
dpmid1air_pressure_difference_between_midlayersdifference between mid-layer pressuresPareal(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension)kind_physin
qmaxmaximum_column_heating_ratemaximum heating rate in columnK s-1real(ccpp_constant_one:horizontal_loop_extent)kind_physin
ktopvertical_index_at_cloud_topvertical index at cloud topindexinteger(ccpp_constant_one:horizontal_loop_extent)in
kbotvertical_index_at_cloud_basevertical index at cloud baseindexinteger(ccpp_constant_one:horizontal_loop_extent)in
kcnvflag_deep_convectionflag indicating whether convection occurs in column (0 or 1)flaginteger(ccpp_constant_one:horizontal_loop_extent)in
cldfcloud_area_fractionfraction of grid box area in which updrafts occurfracreal(ccpp_constant_one:horizontal_loop_extent)kind_physin
gravgravitational_accelerationgravitational accelerationm s-2real()kind_physin
cpspecific_heat_of_dry_air_at_constant_pressurespecific heat of dry air at constant pressureJ kg-1 K-1real()kind_physin
rdgas_constant_of_dry_airideal gas constant for dry airJ kg-1 K-1real()kind_physin
fvratio_of_vapor_to_dry_air_gas_constants_minus_onerv/rd - 1 (rv = ideal gas constant for water vapor)nonereal()kind_physin
pipiratio of a circle's circumference to its diameternonereal()kind_physin
dlengthcharacteristic_grid_length_scalerepresentative horizontal length scale of grid boxmreal(ccpp_constant_one:horizontal_loop_extent)kind_physin
lprntflag_printflag for debugging printoutsflaglogical()in
iprhorizontal_index_of_printed_columnhorizontal index of column used in debugging printoutsindexinteger()in
fhourforecast_timeforecast hourhreal()kind_physin
utgwctendency_of_x_wind_due_to_convective_gravity_wave_dragzonal wind tendency due to convective gravity wave dragm s-2real(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension)kind_physout
vtgwctendency_of_y_wind_due_to_convective_gravity_wave_dragmeridional wind tendency due to convective gravity wave dragm s-2real(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension)kind_physout
tauctxinstantaneous_x_stress_due_to_gravity_wave_dragzonal stress at cloud top due to convective gravity wave dragPareal(ccpp_constant_one:horizontal_loop_extent)kind_physout
tauctyinstantaneous_y_stress_due_to_gravity_wave_dragmeridional stress at cloud top due to convective gravity wave dragPareal(ccpp_constant_one:horizontal_loop_extent)kind_physout
errmsgccpp_error_messageerror message for error handling in CCPPnonecharacter()len=*out
errflgccpp_error_codeerror code for error handling in CCPP1integer()out

GFS Convective GWD Scheme General Algorithm

Parameterizing subgrid-scale convection-induced gravity wave momentum flux for use in large-scale models inherently requires some information from subgrid-scale cumulus parameterization. The methodology for parameterizing the zonal momentum flux induced by thermal forcing can be summarized as follows. From the cloud-base to cloud-top height, the effect of the momentum flux induced by subgrid-scale diabatic forcing is not considered because subgrid-scale cumulus convection in large-scale models is only activated in a conditionally unstable atmosphere. Below the cloud base, the momentum flux is also not considered because of the wave momentum cancellation.

The formulation of the momentum flux at the cloud top that can be broken in the upper atmosphere is similar to that of the surface drag of mountain waves by using the nonlinearity factor of thermally induced waves that is analogous to the inverse Frounde number in mountain waves. A vertical profiles of redistributed momentum flux above the cloud top can be approximated either by specifying a functional form or by using the wave saturation hypothesis in terms of the Richardson number criterion. The formulation of the minimum Richardson number including wave impact is similar to that in the mountain wave case.

GFS Convective GWD Scheme Detailed Algorithm