Skip to content

Commit

Permalink
Use deterministic marine resolutions for ensemble (NOAA-EMC#1894)
Browse files Browse the repository at this point in the history
This PR determines the ensemble resolution for ocean, ice and waves based on the
deterministic configuration as there is no dual-resolution capability requested for
these model components.

For cycled DA, if the deterministic uses a coupled model, the ensemble will also be
a coupled model.  This can be turned off manually via adding `DO_AERO_ENKF`,
`DO_OCN_ENKF`, `DO_ICE_ENKF` and `DO_WAVE_ENKF` flags set in `config.base` or
`config.efcs`.  This is currently handled manually and will be automated when a
requirement arises for this flexibility.

Fixes NOAA-EMC#1730
  • Loading branch information
aerorahul authored Oct 3, 2023
1 parent 48ba775 commit 836642b
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 37 deletions.
11 changes: 5 additions & 6 deletions parm/config/gefs/config.base.emc.dyn
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ export PARTITION_BATCH="@PARTITION_BATCH@"
export PARTITION_SERVICE="@PARTITION_SERVICE@"

# Project to use in mass store:
HPSS_PROJECT="@HPSS_PROJECT@"
export HPSS_PROJECT="@HPSS_PROJECT@"

# Directories relative to installation areas:
export HOMEgfs=@HOMEgfs@
Expand Down Expand Up @@ -82,8 +82,8 @@ export VERBOSE="YES"
export KEEPDATA="NO"
export CHGRP_RSTPROD="@CHGRP_RSTPROD@"
export CHGRP_CMD="@CHGRP_CMD@"
export NCDUMP="$NETCDF/bin/ncdump"
export NCLEN="$HOMEgfs/ush/getncdimlen"
export NCDUMP="${NETCDF}/bin/ncdump"
export NCLEN="${HOMEgfs}/ush/getncdimlen"

# Machine environment, jobs, and other utility scripts
export BASE_ENV="${HOMEgfs}/env"
Expand Down Expand Up @@ -149,7 +149,7 @@ export OPS_RES="C768" # Do not change

# Resolution specific parameters
export LEVS=128
export CASE="@CASECTL@"
export CASE="@CASECTL@" # CASE is required in GEFS to determine ocean/ice/wave resolutions
export CASE_ENS="@CASEENS@"
# TODO: This should not depend on $CASE or $CASE_ENS
# These are the currently available grid-combinations
Expand All @@ -174,7 +174,7 @@ case "${CASE}" in
export OCNRES=025
export waveGRD='mx025'
;;
*)
*)
export OCNRES=025
export waveGRD='glo_025'
;;
Expand Down Expand Up @@ -218,7 +218,6 @@ case "${APP}" in
export cplwav2atm=".true."
export confignamevarfornems="${confignamevarfornems}_outerwave"
fi

;;
*)
echo "Unrecognized APP: ${1}"
Expand Down
19 changes: 6 additions & 13 deletions parm/config/gefs/config.efcs
Original file line number Diff line number Diff line change
Expand Up @@ -5,22 +5,15 @@

echo "BEGIN: config.efcs"

# TODO: Possibly need OCNRES_ENKF, ICERES_ENKF, WAVRES_ENKF too
if [[ ${DO_OCN} == "YES" ]]; then
case "${CASE_ENS}" in
"C48") export OCNRES=500;;
"C96") export OCNRES=100;;
"C192") export OCNRES=050;;
"C384") export OCNRES=025;;
"C768") export OCNRES=025;;
*) export OCNRES=025;;
esac
fi
[[ ${DO_ICE} == "YES" ]] && export ICERES=${OCNRES}
[[ ${DO_WAVE} == "YES" ]] && export waveGRD=${waveGRD_ENKF:-${waveGRD}} # TODO: will we run waves with a different resolution in the ensemble?
# Turn off components in ensemble via _ENKF, or use setting from deterministic
export DO_AERO=${DO_AERO_ENKF:-${DO_AERO:-"NO"}}
export DO_OCN=${DO_OCN_ENKF:-${DO_OCN:-"NO"}}
export DO_ICE=${DO_ICE_ENKF:-${DO_ICE:-"NO"}}
export DO_WAVE=${DO_WAVE_ENKF:-${DO_WAVE:-"NO"}}

# Source model specific information that is resolution dependent
string="--fv3 ${CASE_ENS}"
# Ocean/Ice/Waves ensemble configurations are identical to deterministic member
[[ ${DO_OCN} == "YES" ]] && string="${string} --mom6 ${OCNRES}"
[[ ${DO_ICE} == "YES" ]] && string="${string} --cice6 ${ICERES}"
[[ ${DO_WAVE} == "YES" ]] && string="${string} --ww3 ${waveGRD// /;}"
Expand Down
20 changes: 2 additions & 18 deletions parm/config/gfs/config.efcs
Original file line number Diff line number Diff line change
Expand Up @@ -5,31 +5,15 @@

echo "BEGIN: config.efcs"

# TODO: the _ENKF counterparts need to be defined in config.base; for now inherit from config.base
# TODO: Using different values for ensemble doesn't work because
# config.fcst sets a bunch of derived values based on these
# that is not duplicated here. [#1692]
# Turn off components in ensemble via _ENKF, or use setting from deterministic
export DO_AERO=${DO_AERO_ENKF:-${DO_AERO:-"NO"}}
export DO_OCN=${DO_OCN_ENKF:-${DO_OCN:-"NO"}}
export DO_ICE=${DO_ICE_ENKF:-${DO_ICE:-"NO"}}
export DO_WAVE=${DO_WAVE_ENKF:-${DO_WAVE:-"NO"}}

# TODO: Possibly need OCNRES_ENKF, ICERES_ENKF, WAVRES_ENKF too
if [[ ${DO_OCN} == "YES" ]]; then
case "${CASE_ENS}" in
"C48") export OCNRES=500;;
"C96") export OCNRES=500;;
"C192") export OCNRES=050;;
"C384") export OCNRES=025;;
"C768") export OCNRES=025;;
*) export OCNRES=025;;
esac
fi
[[ ${DO_ICE} == "YES" ]] && export ICERES=${OCNRES}
[[ ${DO_WAVE} == "YES" ]] && export waveGRD=${waveGRD_ENKF:-${waveGRD}} # TODO: will we run waves with a different resolution in the ensemble?

# Source model specific information that is resolution dependent
string="--fv3 ${CASE_ENS}"
# Ocean/Ice/Waves ensemble configurations are identical to deterministic member
[[ ${DO_OCN} == "YES" ]] && string="${string} --mom6 ${OCNRES}"
[[ ${DO_ICE} == "YES" ]] && string="${string} --cice6 ${ICERES}"
[[ ${DO_WAVE} == "YES" ]] && string="${string} --ww3 ${waveGRD// /;}"
Expand Down

0 comments on commit 836642b

Please sign in to comment.