Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions scripts/exregional_run_fcst.sh
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
#!/bin/bash

#
#-----------------------------------------------------------------------
#
Expand All @@ -9,7 +8,7 @@
#
. ${GLOBAL_VAR_DEFNS_FP}
. $USHDIR/source_util_funcs.sh
. $USHDIR/set_FV3nml_stoch_params.sh
. $USHDIR/set_FV3nml_ens_stoch_seeds.sh
#
#-----------------------------------------------------------------------
#
Expand Down Expand Up @@ -501,9 +500,10 @@ else
fi
fi

if [ "${DO_ENSEMBLE}" = TRUE ]; then
if [ "${DO_ENSEMBLE}" = TRUE ] && ([ "${DO_SPP}" = TRUE ] || [ "${DO_SPPT}" = TRUE ] || [ "${DO_SHUM}" = TRUE ] \
[ "${DO_SKEB}" = TRUE ] || [ "${DO_LSM_SPP}" = TRUE ]); then
cp ${run_dir}/input.nml ${run_dir}/input.nml_base
set_FV3nml_stoch_params cdate="$cdate" || print_err_msg_exit "\
set_FV3nml_ens_stoch_seeds cdate="$cdate" || print_err_msg_exit "\
Call to function to create the ensemble-based namelist for the current
cycle's (cdate) run directory (run_dir) failed:
cdate = \"${cdate}\"
Expand Down
1 change: 1 addition & 0 deletions ush/config.sh.RRFS_CONUS_3km_ens
Original file line number Diff line number Diff line change
Expand Up @@ -186,6 +186,7 @@ fi
if [[ ${DO_ENSEMBLE} == "TRUE" ]]; then
NUM_ENS_MEMBERS=30
# DO_SPPT=TRUE
# DO_SPP=TRUE
# SPPT_MAG=0.5
# DO_ENSCONTROL="TRUE"
DO_GSIOBSERVER="TRUE"
Expand Down
76 changes: 71 additions & 5 deletions ush/config_defaults.sh
Original file line number Diff line number Diff line change
Expand Up @@ -1856,23 +1856,89 @@ LBCS_ICS_ONLY="FALSE"
#
#-----------------------------------------------------------------------
#
DO_SHUM="false"
DO_SPPT="false"
DO_SKEB="false"
DO_SHUM="FALSE"
DO_SPPT="FALSE"
DO_SKEB="FALSE"
ISEED_SPPT="1"
ISEED_SHUM="2"
ISEED_SKEB="3"
NEW_LSCALE="TRUE"
SHUM_MAG="0.006" #Variable "shum" in input.nml
SHUM_LSCALE="150000"
SHUM_TSCALE="21600" #Variable "shum_tau" in input.nml
SHUM_INT="3600" #Variable "shumint" in input.nml
SPPT_MAG="1.0" #Variable "sppt" in input.nml
SPPT_MAG="0.7" #Variable "sppt" in input.nml
SPPT_LOGIT="TRUE"
SPPT_LSCALE="150000"
SPPT_TSCALE="21600" #Variable "sppt_tau" in input.nml
SPPT_INT="3600" #Variable "spptint" in input.nml
SPPT_SFCLIMIT="TRUE"
SKEB_MAG="0.5" #Variable "skeb" in input.nml
SKEB_LSCALE="150000"
SKEB_TSCALE="21600" #Variable "skeb_tau" in input.nml
SKEB_INT="3600" #Variable "skebint" in input.nml
SKEBNORM="1"
SKEB_VDOF="10"
USE_ZMTNBLCK="false"
USE_ZMTNBLCK="FALSE"
#
#-----------------------------------------------------------------------
#
# Set default SPP stochastic physics options. Each SPP option is an array,
# applicable (in order) to the scheme/parameter listed in SPP_VAR_LIST.
# Enter each value of the array in config.sh as shown below without commas
# or single quotes (e.g., SPP_VAR_LIST=( "pbl" "sfc" "mp" "rad" "gwd" ).
# Both commas and single quotes will be added by Jinja when creating the
# namelist.
#
# Note that SPP is currently only available for specific physics schemes
# used in the RAP/HRRR physics suite. Users need to be aware of which SDF
# is chosen when turning this option on.
#
# Patterns evolve and are applied at each time step.
#
#-----------------------------------------------------------------------
#
DO_SPP="FALSE"
SPP_VAR_LIST=( "pbl" "sfc" "mp" "rad" "gwd" )
SPP_MAG_LIST=( "0.2" "0.2" "0.75" "0.2" "0.2" ) #Variable "spp_prt_list" in input.nml
SPP_LSCALE=( "150000.0" "150000.0" "150000.0" "150000.0" "150000.0" )
SPP_TSCALE=( "21600.0" "21600.0" "21600.0" "21600.0" "21600.0" ) #Variable "spp_tau" in input.nml
SPP_SIGTOP1=( "0.1" "0.1" "0.1" "0.1" "0.1")
SPP_SIGTOP2=( "0.025" "0.025" "0.025" "0.025" "0.025" )
SPP_STDDEV_CUTOFF=( "1.5" "1.5" "2.5" "1.5" "1.5" )
ISEED_SPP=( "4" "5" "6" "7" "8" )
#
#-----------------------------------------------------------------------
#
# Turn on SPP in Noah or RUC LSM (support for Noah MP is in progress).
# Please be aware of the SDF that you choose if you wish to turn on LSM
# SPP.
#
# SPP in LSM schemes is handled in the &nam_sfcperts namelist block
# instead of in &nam_sppperts, where all other SPP is implemented.
#
# The default perturbation frequency is determined by the fhcyc namelist
# entry. Since that parameter is set to zero in the SRW App, use
# LSM_SPP_EACH_STEP to perturb every time step.
#
# Perturbations to soil moisture content (SMC) are only applied at the
# first time step.
#
# LSM perturbations include SMC - soil moisture content (volume fraction),
# VGF - vegetation fraction, ALB - albedo, SAL - salinity,
# EMI - emissivity, ZOL - surface roughness (cm), and STC - soil temperature.
#
# Only five perturbations at a time can be applied currently, but all seven
# are shown below. In addition, only one unique iseed value is allowed
# at the moment, and is used for each pattern.
#
DO_LSM_SPP="FALSE" #If true, sets lndp_type=2
LSM_SPP_TSCALE=( "21600" "21600" "21600" "21600" "21600" "21600" "21600" )
LSM_SPP_LSCALE=( "150000" "150000" "150000" "150000" "150000" "150000" "150000" )
ISEED_LSM_SPP=( "9" )
LSM_SPP_VAR_LIST=( "smc" "vgf" "alb" "sal" "emi" "zol" "stc" )
LSM_SPP_MAG_LIST=( "0.2" "0.001" "0.001" "0.001" "0.001" "0.001" "0.2" )
LSM_SPP_EACH_STEP="TRUE" #Sets lndp_each_step=.true.
#
#-----------------------------------------------------------------------
#
Expand Down
106 changes: 90 additions & 16 deletions ush/generate_FV3LAM_wflow.sh
Original file line number Diff line number Diff line change
Expand Up @@ -777,23 +777,13 @@ settings="\
'do_shum': ${DO_SHUM},
'do_sppt': ${DO_SPPT},
'do_skeb': ${DO_SKEB},
'do_spp': ${DO_SPP},
'n_var_spp': ${N_VAR_SPP},
'n_var_lndp': ${N_VAR_LNDP},
'lndp_type': ${LNDP_TYPE},
'lndp_each_step': ${LSM_SPP_EACH_STEP},
'fhcyc': ${FHCYC_LSM_SPP_OR_NOT},
'print_diff_pgr': ${PRINT_DIFF_PGR},
}
'nam_stochy': {
'shum': ${SHUM_MAG},
'shum_lscale': ${SHUM_LSCALE},
'shum_tau': ${SHUM_TSCALE},
'shumint': ${SHUM_INT},
'sppt': ${SPPT_MAG},
'sppt_lscale': ${SPPT_LSCALE},
'sppt_tau': ${SPPT_TSCALE},
'spptint': ${SPPT_INT},
'skeb': ${SKEB_MAG},
'skeb_lscale': ${SKEB_LSCALE},
'skeb_tau': ${SKEB_TSCALE},
'skebint': ${SKEB_INT},
'skeb_vdof': ${SKEB_VDOF},
'use_zmtnblck': ${USE_ZMTNBLCK},
}"
#
# Add to "settings" the values of those namelist variables that specify
Expand Down Expand Up @@ -849,7 +839,91 @@ done
#
settings="$settings
}"
#
# Add the relevant tendency-based stochastic physics namelist variables to
# "settings" when running with SPPT, SHUM, or SKEB turned on. If running
# with SPP or LSM SPP, set the "new_lscale" variable. Otherwise only
# include an empty "nam_stochy" stanza.
#
settings="$settings
'nam_stochy': {"
if [ "${DO_SPPT}" = "TRUE" ]; then
settings="$settings
'iseed_sppt': ${ISEED_SPPT},
'new_lscale': ${NEW_LSCALE},
'sppt': ${SPPT_MAG},
'sppt_logit': ${SPPT_LOGIT},
'sppt_lscale': ${SPPT_LSCALE},
'sppt_sfclimit': ${SPPT_SFCLIMIT},
'sppt_tau': ${SPPT_TSCALE},
'spptint': ${SPPT_INT},
'use_zmtnblck': ${USE_ZMTNBLCK},"
fi

if [ "${DO_SHUM}" = "TRUE" ]; then
settings="$settings
'iseed_shum': ${ISEED_SHUM},
'new_lscale': ${NEW_LSCALE},
'shum': ${SHUM_MAG},
'shum_lscale': ${SHUM_LSCALE},
'shum_tau': ${SHUM_TSCALE},
'shumint': ${SHUM_INT},"
fi

if [ "${DO_SKEB}" = "TRUE" ]; then
settings="$settings
'iseed_skeb': ${ISEED_SKEB},
'new_lscale': ${NEW_LSCALE},
'skeb': ${SKEB_MAG},
'skeb_lscale': ${SKEB_LSCALE},
'skebnorm': ${SKEBNORM},
'skeb_tau': ${SKEB_TSCALE},
'skebint': ${SKEB_INT},
'skeb_vdof': ${SKEB_VDOF},"
fi

if [ "${DO_SPP}" = "TRUE" ] || [ "${DO_LSM_SPP}" = "TRUE" ]; then
settings="$settings
'new_lscale': ${NEW_LSCALE},"
fi
settings="$settings
}"
#
# Add the relevant SPP namelist variables to "settings" when running with
# SPP turned on. Otherwise only include an empty "nam_sppperts" stanza.
#
settings="$settings
'nam_sppperts': {"
if [ "${DO_SPP}" = "TRUE" ]; then
settings="$settings
'iseed_spp': [ $( printf "%s, " "${ISEED_SPP[@]}" ) ],
'spp_lscale': [ $( printf "%s, " "${SPP_LSCALE[@]}" ) ],
'spp_prt_list': [ $( printf "%s, " "${SPP_MAG_LIST[@]}" ) ],
'spp_sigtop1': [ $( printf "%s, " "${SPP_SIGTOP1[@]}" ) ],
'spp_sigtop2': [ $( printf "%s, " "${SPP_SIGTOP2[@]}" ) ],
'spp_stddev_cutoff': [ $( printf "%s, " "${SPP_STDDEV_CUTOFF[@]}" ) ],
'spp_tau': [ $( printf "%s, " "${SPP_TSCALE[@]}" ) ],
'spp_var_list': [ $( printf "%s, " "${SPP_VAR_LIST[@]}" ) ],"
fi
settings="$settings
}"
#
# Add the relevant LSM SPP namelist variables to "settings" when running with
# LSM SPP turned on.
#
settings="$settings
'nam_sfcperts': {"
if [ "${DO_LSM_SPP}" = "TRUE" ]; then
settings="$settings
'lndp_type': ${LNDP_TYPE},
'lndp_tau': [ $( printf "%s, " "${LSM_SPP_TSCALE[@]}" ) ],
'lndp_lscale': [ $( printf "%s, " "${LSM_SPP_LSCALE[@]}" ) ],
'iseed_lndp': [ $( printf "%s, " "${ISEED_LSM_SPP[@]}" ) ],
'lndp_var_list': [ $( printf "%s, " "${LSM_SPP_VAR_LIST[@]}" ) ],
'lndp_prt_list': [ $( printf "%s, " "${LSM_SPP_MAG_LIST[@]}" ) ],"
fi
settings="$settings
}"
print_info_msg $VERBOSE "
The variable \"settings\" specifying values of the namelist variables
has been set as follows:
Expand Down
Loading