Skip to content

Add SPP to the SRW App#685

Merged
JeffBeck-NOAA merged 60 commits into
ufs-community:developfrom
JeffBeck-NOAA:feature/spp
Mar 9, 2022
Merged

Add SPP to the SRW App#685
JeffBeck-NOAA merged 60 commits into
ufs-community:developfrom
JeffBeck-NOAA:feature/spp

Conversation

@JeffBeck-NOAA
Copy link
Copy Markdown
Collaborator

@JeffBeck-NOAA JeffBeck-NOAA commented Feb 26, 2022

DESCRIPTION OF CHANGES:

This PR adds SPP to the SRW App. Options exist to perturb RUC and Noah LSM (with the &nam_sfcperts namelist block) and MYNN PBL, MYNN SFC, Thompson MP, RRTMG, and GSL GWD (with the &nam_sppperts namelist block). Default values for these namelist entries can be found in config_defaults.sh. For a full description of SPP, please refer to the ufs-weather-model PR here and related GitHub issue here.

TESTS CONDUCTED:

Simulations were run on Hera with and without SPP from both namelist blocks using the RRFS_CONUS_3km and the "ensemble_2mems" WE2E tests. All tests completed successfully.

DEPENDENCIES:

PR #218 in ufs-srweather-app depends on this PR.

DOCUMENTATION:

A PR updating the Users' Guide for SPP will be opened in the ufs-srweather-app repo once major documentation changes associated with PR #212 are merged.

CONTRIBUTORS (optional):

Thanks are due to @gsketefian for his help with namelist entry creation and @ericaligo-NOAA for help with nems.configure.

…alues are now handled in the generate script if using SPP.
Comment thread ush/templates/diag_table.FV3_GSD_v0
"gfs_phys", "skebu_wts", "skebu_wts", "fv3_history", "all", .false., "none", 2
"gfs_phys", "skebv_wts", "skebv_wts", "fv3_history", "all", .false., "none", 2
"dynamics", "diss_est", "diss_est", "fv3_history", "all", .false., "none", 2
"gfs_phys", "shum_wts", "shum_wts", "fv3_history", "all", .false., "none", 2
Copy link
Copy Markdown
Collaborator Author

@JeffBeck-NOAA JeffBeck-NOAA Mar 3, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove tendency-based stochastic physics dissipation estimate (diss_est) from diag_table files. It doesn't exist (yet).

do_shum = .false.
do_skeb = .false.
do_sppt = .false.
dspheat = .true.
Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove stochastic physics settings from the input namelist template file, as they are not static values applicable to all potential configurations of the SRW App. They are filled in based on choices made by the user in config.sh.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These are default values in the model, anyway, no? Removing them makes sense. :)

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yep, exactly!

ltaerosol = .true.
lwhtr = .true.
n_var_lndp = 0
nsradar_reset = 3600
Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same comment as above for lndp_type and n_var_lndp.

/

&nam_sppperts
/
Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The &nam_sfcperts stanza (LSM-based SPP) should be empty and only filled in based on user-defined settings in the config.sh file.

lndp_prt_list = 0.2,0.1,
/

&nam_sppperts
Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The &nam_sppperts namelist stanza is set to be empty in the namelist template file and only used for MYNN PBL, MYNN SFC, GSL GWD, Thompson MP, and RRTMG SPP based on user-defined options in the config.sh file.

runSeq::
ATM
::
logKindFlag: ESMF_LOGKIND_MULTI_ON_ERROR
Copy link
Copy Markdown
Collaborator Author

@JeffBeck-NOAA JeffBeck-NOAA Mar 3, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Update to nems.configure file required to suppress PET file output in the run directory with new(er) hash of ufs-weather-model.

Copy link
Copy Markdown
Contributor

@christinaholtNOAA christinaholtNOAA left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good!

do_shum = .false.
do_skeb = .false.
do_sppt = .false.
dspheat = .true.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These are default values in the model, anyway, no? Removing them makes sense. :)

Comment thread ush/generate_FV3LAM_wflow.sh
Comment thread ush/setup.sh
# soon, at which point, this requirement can be removed from regional_workflow.
#
#-----------------------------------------------------------------------
#
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since the variables N_VAR_LNDP, LNDP_TYPE, and FHCYC_LSM_SPP_OR_NOT are used in at least one other script (generate_FV3LAM_wflow.sh), they are not local variables. So we should treat them as experiment variables and record them in var_defns.sh (at the end of setup.sh).

#
settings="$settings
'nam_sppperts': {"
if [ "${DO_SPP}" = "TRUE" ]; then
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Indent settings="$settings" line.

#
settings="$settings
'nam_sfcperts': {"
if [ "${DO_LSM_SPP}" = "TRUE" ]; then
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Indent settings="$settings" line.

runSeq::
ATM
::
logKindFlag: ESMF_LOGKIND_MULTI_ON_ERROR
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What does this line do?

Comment thread ush/setup.sh Outdated
# an "FHCYC_LSM_SPP" variable to 0 and set it to 999 if LSM SPP is turned
# on. This requirement is necessary since LSM SPP cannot run with
# FHCYC=0 at the moment, but FHCYC cannot be set to anything less than the
# length of the forecast either. A bug fix will be issued ufs-weather-model
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

issued "in" ufs-weather-model

Comment thread ush/setup.sh
[ "${#SPP_STDDEV_CUTOFF[@]}" != "${N_VAR_SPP}" ] || \
[ "${#ISEED_SPP[@]}" != "${N_VAR_SPP}" ]; then
print_err_msg_exit "\
All MYNN PBL, MYNN SFC, GSL GWD, Thompson MP, or RRTMG SPP-related namelist
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In the message, replace config.sh with ${CONFIG_FN} so that it changes in case the name of the config file is changed.

Comment thread ush/setup.sh
[ "${#LSM_SPP_LSCALE[@]}" != "${N_VAR_LNDP}" ] || \
[ "${#LSM_SPP_TSCALE[@]}" != "${N_VAR_LNDP}" ]; then
print_err_msg_exit "\
All Noah or RUC-LSM SPP-related namelist variables (except ISEED_LSM_SPP)
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same as above for config.sh.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants