Ensinit - changes to enable ensemble initialization and etc#426
Ensinit - changes to enable ensemble initialization and etc#426chunhuazhou wants to merge 9 commits into
Conversation
…e cycle, and specifying cycles to run SPP
…ifying hours to turn SPP on
ab746af to
b1d08de
Compare
| DO_LSM_SPP=TRUE | ||
| fi | ||
| done | ||
| # |
There was a problem hiding this comment.
@chunhuazhou, do you plan on running with each of these schemes turned on, or is this just a placeholder for now? Also, there's a typo in "stochastic" above.
There was a problem hiding this comment.
I'm also a bit confused, because the DO_* stochastic options should go in the config.sh (now config.yaml) script, not in an ex-script. I think it would make more sense to have config-level options like DO_SPP_ENSINIT or DO_SPP_SPINUP = TRUE, but maybe that's too complicated to implement at this time.
There was a problem hiding this comment.
This is more of a placeholder for now. Thanks for pointing out the typo - corrected.
There was a problem hiding this comment.
I'm also a bit confused, because the DO_* stochastic options should go in the config.sh (now config.yaml) script, not in an ex-script. I think it would make more sense to have config-level options like DO_SPP_ENSINIT or DO_SPP_SPINUP = TRUE, but maybe that's too complicated to implement at this time.
Yes I agree it is a bit confused. The reason I made these changes is for when we don't want to run the same setting for all the cycles. For example, in our RRFS ensemble cycling, we don't run SPP for the DA cycling hours (18-23Z) but we do want to turn SPP on for 00Z free forecast. Therefore we want to have those stochastic physics setting specific for each forecast cycle. If we set them in config.sh and set the namelist in generate_FV3LAM_wflow.sh, it will have SPP on or off for all the cycles.
| DO_LSM_SPP=TRUE | ||
| fi | ||
| done | ||
| # |
There was a problem hiding this comment.
I'm also a bit confused, because the DO_* stochastic options should go in the config.sh (now config.yaml) script, not in an ex-script. I think it would make more sense to have config-level options like DO_SPP_ENSINIT or DO_SPP_SPINUP = TRUE, but maybe that's too complicated to implement at this time.
| Number of entries in SPP_VAR_LIST = \"${#LSM_SPP_VAR_LIST[@]}\"" | ||
| fi | ||
| fi | ||
|
|
There was a problem hiding this comment.
All of these options (above and below, including the namelist creation) normally should be configured at workflow generation time, which occurs in the setup.sh/yaml script. If the "DO_" stochastic physics options were defined in the config.sh, then all of this could just stay in setup.sh.
| CYCL_HRS_SHUM=( "HH1" "HH2" ) | ||
| CYCL_HRS_SKEB=( "HH1" "HH2" ) | ||
| CYCL_HRS_LSM_SPP=( "HH1" "HH2" ) | ||
| BOUNDARY_LEN_HRS="0" |
There was a problem hiding this comment.
Why are there only two hours shown for cycles with stochastic physics here?
| settings = | ||
| $settings" | ||
| # | ||
| #----------------------------------------------------------------------- |
There was a problem hiding this comment.
This would all stay here if you use DO_SPP_ENSINIT, DO_SPP_SPINUP, etc...
| # | ||
| # Make sure that DO_ENSEMBLE is set to a valid value. Then set the names | ||
| # Make sure that DO_ENSEMBLE and DO_ENSEMBLE_REDUCED is set to a valid value. Then set the names | ||
| # of the ensemble members. These will be used to set the ensemble member |
There was a problem hiding this comment.
What does DO_ENSEMBLE_REDUCED do?
There was a problem hiding this comment.
This is to decide whether to run a subset of the ensemble forecast, for example, run 9 member free forecast (different from the 30 member EnKF cycling)
|
I am closing this PR and creating two new PRs to address the ensemble initialization / free forecast, and cycle-specific SPP separately. |
DESCRIPTION OF CHANGES:
Changes include
TESTS CONDUCTED:
Currently testing in RRFSE real-time runs.
DEPENDENCIES:
DOCUMENTATION:
To add more notes here, we used to have 2 workflows for the RRFSE runs since HWT SFE 2022. One is for 30-member EnKF cycling using config.sh.RRFS_CONUS_3km_ens.2022HWT.CYCL and the other one for 9-member 00Z free forecast using config.sh.RRFS_CONUS_3km_ens.2022HWT.FCST. This was due to the different LBCs for the different cycles (hourly FV3GFS for hourly EnKF cycling and then 3hourly GEFS for the free ensemble forecast) and also the inclusion of SPP in the 00Z free forecast. And we had to make some manual changes to the workflow for that purpose. With the changes in this PR, we now have one config.sh.RRFS_CONUS_3km_ens.2022HWT.CYCL to get the workflow ready to do both 30-member EnKF cycling and 9-member ensemble forecast at the end of the cycling. And there is no more need to make manual changes to the workflow. The FV3LAM_wflow.xml from running ush/generate_FV3LAM_wflow.sh is ready to go.
Another note is about the stochastic physics setting. In order to use one FV3LAM_wflow.xml for the above mentioned purpose, we have to turn on SPP for 00Z but not for the earlier cycles (18Z-23Z). In the default settings, if we set DO_SPP=TRUE, for example, we have SPP turned on for all the cycles. Through the changes in this PR, we introduce new variables (CYCL_HRS_SPP, CYCL_HRS_SPPT, CYCL_HRS_SHUM, CYCL_HRS_SKEB, CYCL_HRS_LSM_SPP, for different stochastic physics schemes) to control for which cycles we turn on SPP, for example, when we don't want SPP for other cycles. By setting DO_SPP=FALSE (by commenting out DO_SPP=TRUE in config file) we turn off SPP for all the cycles except for cycles in "CYCL_HRS_SPP" if defined in config file. Please note this "CYCL_HRS_SPP" setting only works when DO_SPP=FALSE in config file. This is done by resetting DO_SPP in scripts/exregional_run_fcst.sh. Sections in ush/generate_FV3LAM_wflow.sh that is related to stochastic physics namelist are now moved to scripts/exregional_run_fcst.sh to make changes to input.nml on the fly for different forecast cycles.
For the ensemble initialization (DO_ENSINIT=TRUE), we added the tasks to run 1 time step for the ensemble forecast from GEFS cold start at the beginning of the cycles, then use recenter to add the GEFS perturbations from these 1 time step restart files to RRFS deterministic analysis. Through this we have the ensemble initialized based on RRFS deterministic analysis + GEFS perturbations, and then run 1-hour ensemble forecast for the EnKF cycling, just as the later cycles.
ISSUE (optional):
CONTRIBUTORS (optional):
If others have contributed to this work aside from the PR author, list them here