Skip to content

Commit

Permalink
Update damping and time-step (NOAA-EMC#2575)
Browse files Browse the repository at this point in the history
Updates the model to use explicit Rayleigh damping for u/v and implicit
damping to w. This improves model stability and allows for longer
timesteps. Also unifies the GDAS and GFS to use the same damping.

Results from a test at the C1152 resolution (coupled model) can be found
at https://www.emc.ncep.noaa.gov/gmb/wx24fy/C1152/newdamp/

Resolves NOAA-EMC#2574

Co-authored-by: Walter Kolczynski - NOAA <Walter.Kolczynski@noaa.gov>
Co-authored-by: Lisa Bengtsson <lbengtss@Orion-login-1.HPC.MsState.Edu>
Co-authored-by: Rahul Mahajan <aerorahul@users.noreply.github.com>
  • Loading branch information
4 people committed May 13, 2024
1 parent 6a9c137 commit 4fb7c12
Show file tree
Hide file tree
Showing 6 changed files with 84 additions and 25 deletions.
8 changes: 0 additions & 8 deletions parm/config/gefs/config.fcst
Original file line number Diff line number Diff line change
Expand Up @@ -109,18 +109,10 @@ if (( gwd_opt == 2 )); then
fi

# Sponge layer settings
export tau=0.
export rf_cutoff=10.
export d2_bg_k1=0.20
export d2_bg_k2=0.04
export dz_min=6
export n_sponge=42
if (( LEVS == 128 )) && [[ "${CDUMP}" =~ "gdas" ]]; then
export tau=5.0
export rf_cutoff=1.0e3
export d2_bg_k1=0.20
export d2_bg_k2=0.0
fi

# PBL/turbulance schemes
export hybedmf=".false."
Expand Down
45 changes: 41 additions & 4 deletions parm/config/gefs/config.ufs
Original file line number Diff line number Diff line change
Expand Up @@ -80,8 +80,14 @@ case "${fv3_res}" in
export nthreads_fv3_gfs=1
export nthreads_ufs=1
export nthreads_ufs_gfs=1
export cdmbgwd="0.071,2.1,1.0,1.0" # mountain blocking, ogwd, cgwd, cgwd src scaling
export xr_cnvcld=.false. # Do not pass conv. clouds to Xu-Randall cloud fraction
export cdmbgwd="0.071,2.1,1.0,1.0" # mountain blocking, ogwd, cgwd, cgwd src scaling
export cdmbgwd_gsl="40.0,1.77,1.0,1.0" # settings for GSL drag suite
export k_split=1
export n_split=4
export tau=10.0
export rf_cutoff=100.0
export fv_sg_adj=3600
export knob_ugwp_tauamp=6.0e-3 # setting for UGWPv1 non-stationary GWD
export WRITE_GROUP=1
export WRTTASK_PER_GROUP_PER_THREAD_PER_TILE=1
Expand All @@ -98,16 +104,22 @@ case "${fv3_res}" in
export nthreads_fv3_gfs=1
export nthreads_ufs=1
export nthreads_ufs_gfs=1
export cdmbgwd="0.14,1.8,1.0,1.0" # mountain blocking, ogwd, cgwd, cgwd src scaling
export xr_cnvcld=".false." # Do not pass conv. clouds to Xu-Randall cloud fraction
export cdmbgwd="0.14,1.8,1.0,1.0" # mountain blocking, ogwd, cgwd, cgwd src scaling
export cdmbgwd_gsl="20.0,2.5,1.0,1.0" # settings for GSL drag suite
export knob_ugwp_tauamp=3.0e-3 # setting for UGWPv1 non-stationary GWD
export k_split=1
export n_split=4
export tau=8.0
export rf_cutoff=100.0
export fv_sg_adj=1800
export WRITE_GROUP=1
export WRTTASK_PER_GROUP_PER_THREAD_PER_TILE=1
export WRITE_GROUP_GFS=1
export WRTTASK_PER_GROUP_PER_THREAD_PER_TILE_GFS=1
;;
"C192")
export DELTIM=450
export DELTIM=600
export layout_x=4
export layout_y=6
export layout_x_gfs=4
Expand All @@ -119,6 +131,11 @@ case "${fv3_res}" in
export cdmbgwd="0.23,1.5,1.0,1.0" # mountain blocking, ogwd, cgwd, cgwd src scaling
export cdmbgwd_gsl="10.0,3.5,1.0,1.0" # settings for GSL drag suite
export knob_ugwp_tauamp=1.5e-3 # setting for UGWPv1 non-stationary GWD
export k_split=2
export n_split=4
export tau=6.0
export rf_cutoff=100.0
export fv_sg_adj=1800
export WRITE_GROUP=1
export WRTTASK_PER_GROUP_PER_THREAD_PER_TILE=10
export WRITE_GROUP_GFS=2
Expand All @@ -137,6 +154,11 @@ case "${fv3_res}" in
export cdmbgwd="1.1,0.72,1.0,1.0" # mountain blocking, ogwd, cgwd, cgwd src scaling
export cdmbgwd_gsl="5.0,5.0,1.0,1.0" # settings for GSL drag suite
export knob_ugwp_tauamp=0.8e-3 # setting for UGWPv1 non-stationary GWD
export k_split=2
export n_split=4
export tau=4.0
export rf_cutoff=100.0
export fv_sg_adj=900
export WRITE_GROUP=2
export WRTTASK_PER_GROUP_PER_THREAD_PER_TILE=8
export WRITE_GROUP_GFS=2
Expand All @@ -155,13 +177,18 @@ case "${fv3_res}" in
export cdmbgwd="4.0,0.15,1.0,1.0" # mountain blocking, ogwd, cgwd, cgwd src scaling
export cdmbgwd_gsl="2.5,7.5,1.0,1.0" # settings for GSL drag suite
export knob_ugwp_tauamp=0.5e-3 # setting for UGWPv1 non-stationary GWD
export k_split=2
export n_split=4
export tau=3.0
export rf_cutoff=100.0
export fv_sg_adj=450
export WRITE_GROUP=2
export WRTTASK_PER_GROUP_PER_THREAD_PER_TILE=10
export WRITE_GROUP_GFS=4
export WRTTASK_PER_GROUP_PER_THREAD_PER_TILE_GFS=20 #Note this should be 10 for WCOSS2
;;
"C1152")
export DELTIM=120
export DELTIM=150
export layout_x=8
export layout_y=16
export layout_x_gfs=8
Expand All @@ -173,6 +200,11 @@ case "${fv3_res}" in
export cdmbgwd="4.0,0.10,1.0,1.0" # mountain blocking, ogwd, cgwd, cgwd src scaling
export cdmbgwd_gsl="1.67,8.8,1.0,1.0" # settings for GSL drag suite
export knob_ugwp_tauamp=0.35e-3 # setting for UGWPv1 non-stationary GWD
export k_split=2
export n_split=6
export tau=2.5
export rf_cutoff=100.0
export fv_sg_adj=450
export WRITE_GROUP=4
export WRTTASK_PER_GROUP_PER_THREAD_PER_TILE=10 # TODO: refine these numbers when a case is available
export WRITE_GROUP_GFS=4
Expand All @@ -191,6 +223,11 @@ case "${fv3_res}" in
export cdmbgwd="4.0,0.05,1.0,1.0" # mountain blocking, ogwd, cgwd, cgwd src scaling
export cdmbgwd_gsl="0.625,14.1,1.0,1.0" # settings for GSL drag suite
export knob_ugwp_tauamp=0.13e-3 # setting for UGWPv1 non-stationary GWD
export k_split=4
export n_split=5
export tau=0.5
export rf_cutoff=100.0
export fv_sg_adj=300
export WRITE_GROUP=4
export WRTTASK_PER_GROUP_PER_THREAD_PER_TILE=10 # TODO: refine these numbers when a case is available
export WRITE_GROUP_GFS=4
Expand Down
8 changes: 0 additions & 8 deletions parm/config/gfs/config.fcst
Original file line number Diff line number Diff line change
Expand Up @@ -121,18 +121,10 @@ if (( gwd_opt == 2 )); then
fi

# Sponge layer settings
export tau=0.
export rf_cutoff=10.
export d2_bg_k1=0.20
export d2_bg_k2=0.04
export dz_min=6
export n_sponge=42
if (( LEVS == 128 )) && [[ "${CDUMP}" =~ "gdas" ]]; then
export tau=5.0
export rf_cutoff=1.0e3
export d2_bg_k1=0.20
export d2_bg_k2=0.0
fi

# PBL/turbulance schemes
export hybedmf=".false."
Expand Down
45 changes: 41 additions & 4 deletions parm/config/gfs/config.ufs
Original file line number Diff line number Diff line change
Expand Up @@ -96,9 +96,15 @@ case "${fv3_res}" in
export nthreads_fv3_gfs=1
export nthreads_ufs=1
export nthreads_ufs_gfs=1
export cdmbgwd="0.071,2.1,1.0,1.0" # mountain blocking, ogwd, cgwd, cgwd src scaling
export xr_cnvcld=".false." # Do not pass conv. clouds to Xu-Randall cloud fraction
export cdmbgwd="0.071,2.1,1.0,1.0" # mountain blocking, ogwd, cgwd, cgwd src scaling
export cdmbgwd_gsl="40.0,1.77,1.0,1.0" # settings for GSL drag suite
export knob_ugwp_tauamp=6.0e-3 # setting for UGWPv1 non-stationary GWD
export k_split=1
export n_split=4
export tau=10.0
export rf_cutoff=100.0
export fv_sg_adj=3600
export WRITE_GROUP=1
export WRTTASK_PER_GROUP_PER_THREAD_PER_TILE=1
export WRITE_GROUP_GFS=1
Expand Down Expand Up @@ -132,9 +138,15 @@ case "${fv3_res}" in
export nthreads_fv3_gfs=1
export nthreads_ufs=1
export nthreads_ufs_gfs=1
export cdmbgwd="0.14,1.8,1.0,1.0" # mountain blocking, ogwd, cgwd, cgwd src scaling
export xr_cnvcld=.false. # Do not pass conv. clouds to Xu-Randall cloud fraction
export cdmbgwd="0.14,1.8,1.0,1.0" # mountain blocking, ogwd, cgwd, cgwd src scaling
export cdmbgwd_gsl="20.0,2.5,1.0,1.0" # settings for GSL drag suite
export knob_ugwp_tauamp=3.0e-3 # setting for UGWPv1 non-stationary GWD
export k_split=1
export n_split=4
export tau=8.0
export rf_cutoff=100.0
export fv_sg_adj=1800
export WRITE_GROUP=1
export WRTTASK_PER_GROUP_PER_THREAD_PER_TILE=1
export WRITE_GROUP_GFS=1
Expand All @@ -160,7 +172,7 @@ case "${fv3_res}" in
export WRITE_GROUP_GFS=2
export WRTTASK_PER_GROUP_PER_THREAD_PER_TILE_GFS=15
else
export DELTIM=450
export DELTIM=600
export layout_x=4
export layout_y=6
export layout_x_gfs=4
Expand All @@ -172,6 +184,11 @@ case "${fv3_res}" in
export cdmbgwd="0.23,1.5,1.0,1.0" # mountain blocking, ogwd, cgwd, cgwd src scaling
export cdmbgwd_gsl="10.0,3.5,1.0,1.0" # settings for GSL drag suite
export knob_ugwp_tauamp=1.5e-3 # setting for UGWPv1 non-stationary GWD
export k_split=2
export n_split=4
export tau=6.0
export rf_cutoff=100.0
export fv_sg_adj=1800
export WRITE_GROUP=1
export WRTTASK_PER_GROUP_PER_THREAD_PER_TILE=10
export WRITE_GROUP_GFS=2
Expand Down Expand Up @@ -211,6 +228,11 @@ case "${fv3_res}" in
export cdmbgwd="1.1,0.72,1.0,1.0" # mountain blocking, ogwd, cgwd, cgwd src scaling
export cdmbgwd_gsl="5.0,5.0,1.0,1.0" # settings for GSL drag suite
export knob_ugwp_tauamp=0.8e-3 # setting for UGWPv1 non-stationary GWD
export k_split=2
export n_split=4
export tau=4.0
export rf_cutoff=100.0
export fv_sg_adj=900
export WRITE_GROUP=4
export WRTTASK_PER_GROUP_PER_THREAD_PER_TILE=10
export WRITE_GROUP_GFS=4
Expand Down Expand Up @@ -252,14 +274,19 @@ case "${fv3_res}" in
export cdmbgwd="4.0,0.15,1.0,1.0" # mountain blocking, ogwd, cgwd, cgwd src scaling
export cdmbgwd_gsl="2.5,7.5,1.0,1.0" # settings for GSL drag suite
export knob_ugwp_tauamp=0.5e-3 # setting for UGWPv1 non-stationary GWD
export k_split=2
export n_split=4
export tau=3.0
export rf_cutoff=100.0
export fv_sg_adj=450
export WRITE_GROUP=2
export WRTTASK_PER_GROUP_PER_THREAD_PER_TILE=10
export WRITE_GROUP_GFS=4
export WRTTASK_PER_GROUP_PER_THREAD_PER_TILE_GFS=20 #Note this should be 10 for WCOSS2
fi
;;
"C1152")
export DELTIM=120
export DELTIM=150
export layout_x=8
export layout_y=16
export layout_x_gfs=8
Expand All @@ -271,6 +298,11 @@ case "${fv3_res}" in
export cdmbgwd="4.0,0.10,1.0,1.0" # mountain blocking, ogwd, cgwd, cgwd src scaling
export cdmbgwd_gsl="1.67,8.8,1.0,1.0" # settings for GSL drag suite
export knob_ugwp_tauamp=0.35e-3 # setting for UGWPv1 non-stationary GWD
export k_split=2
export n_split=6
export tau=2.5
export rf_cutoff=100.0
export fv_sg_adj=450
export WRITE_GROUP=4
export WRTTASK_PER_GROUP_PER_THREAD_PER_TILE=10 # TODO: refine these numbers when a case is available
export WRITE_GROUP_GFS=4
Expand All @@ -289,6 +321,11 @@ case "${fv3_res}" in
export cdmbgwd="4.0,0.05,1.0,1.0" # mountain blocking, ogwd, cgwd, cgwd src scaling
export cdmbgwd_gsl="0.625,14.1,1.0,1.0" # settings for GSL drag suite
export knob_ugwp_tauamp=0.13e-3 # setting for UGWPv1 non-stationary GWD
export k_split=4
export n_split=5
export tau=0.5
export rf_cutoff=100.0
export fv_sg_adj=300
export WRITE_GROUP=4
export WRTTASK_PER_GROUP_PER_THREAD_PER_TILE=10 # TODO: refine these numbers when a case is available
export WRITE_GROUP_GFS=4
Expand Down
1 change: 1 addition & 0 deletions ush/parsing_namelists_FV3.sh
Original file line number Diff line number Diff line change
Expand Up @@ -360,6 +360,7 @@ cat >> input.nml <<EOF
random_clds = ${random_clds:-".true."}
trans_trac = ${trans_trac:-".true."}
cnvcld = ${cnvcld:-".true."}
xr_cnvcld = ${xr_cnvcld:-".true."}
imfshalcnv = ${imfshalcnv:-"2"}
imfdeepcnv = ${imfdeepcnv:-"2"}
progsigma = ${progsigma:-".true."}
Expand Down

0 comments on commit 4fb7c12

Please sign in to comment.