Skip to content

Commit

Permalink
Merge pull request #8 from NeilBarton-NOAA/SFS
Browse files Browse the repository at this point in the history
Merge SFS updates from Neil into SFS_container
  • Loading branch information
benjamin-cash authored Oct 8, 2024
2 parents a37fedd + 077ad5f commit 86d1012
Show file tree
Hide file tree
Showing 12 changed files with 71 additions and 20 deletions.
20 changes: 20 additions & 0 deletions ci/cases/sfs/C96mx100_S2S.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
experiment:
system: gefs
mode: forecast-only

arguments:
idate: 1994050100
edate: 1994050100
pslot: {{ 'pslot' | getenv }}
app: S2S
resdetatmos: 96
resensatmos: 96
resdetocean: 1
start: 'cold'
gfs_cyc: 1
nens: 10
comroot: {{ 'RUNTESTS' | getenv }}/COMROOT
expdir: {{ 'RUNTESTS' | getenv }}/EXPDIR
icsdir: {{ 'TOPICDIR' | getenv }}/HR4/C96mx100
yaml: {{ HOMEgfs }}/ci/cases/yamls/sfs_defaults.yaml

Original file line number Diff line number Diff line change
Expand Up @@ -7,23 +7,25 @@ base:
DO_BUFRSND: "NO"
DO_GEMPAK: "NO"
DO_AWIPS: "NO"
KEEPDATA: "NO"
KEEPDATA: "YES"
DO_EXTRACTVARS: "NO"
FHMAX_GFS: 2976
FHMAX_HF_GFS: 0
FHOUT_HF_GFS: 1
FHOUT_GFS: 24
FHOUT_OCN_GFS: 24
FHOUT_ICE_GFS: 24
FCST_BREAKPOINTS: ""
REPLAY_ICS: "NO"
HPSSARCH: "NO"
LOCALARCH: "NO"
SFS_POST: "YES"
ACCOUNT: {{ 'HPC_ACCOUNT' | getenv }}
fcst:
TYPE: "hydro"
MONO: "mono"
reforecast: "YES"
FHZER: 12
POST_SFS: "YES"
FHZER: 24
stage_ic:
USE_OCN_ENS_PERTURB_FILES: "YES"
USE_ATM_ENS_PERTURB_FILES: "YES"
Expand Down
6 changes: 3 additions & 3 deletions parm/config/gefs/config.atmos_products
Original file line number Diff line number Diff line change
Expand Up @@ -26,11 +26,11 @@ export FLXGF="NO" # Create interpolated sflux.1p00 file

# paramlist files for the different forecast hours and downsets
if [[ ${SFS_POST} == "YES" ]]; then
local post_prefix='sfs'
export post_prefix='sfs'
else
local post_prefix='gefs'
export post_prefix='gefs'
fi
export paramlista="${PARMgfs}/product/${post_preix}.0p25.fFFF.paramlist.a.txt"
export paramlista="${PARMgfs}/product/${post_prefix}.0p25.fFFF.paramlist.a.txt"
export paramlista_anl="${PARMgfs}/product/${post_prefix}.0p25.anl.paramlist.a.txt"
export paramlista_f000="${PARMgfs}/product/${post_prefix}.0p25.f000.paramlist.a.txt"
export paramlistb="${PARMgfs}/product/${post_prefix}.0p25.fFFF.paramlist.b.txt"
Expand Down
3 changes: 2 additions & 1 deletion parm/config/gefs/config.base
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@ export REALTIME="YES"

# Experiment mode (cycled or forecast-only)
export MODE="@MODE@" # cycled/forecast-only
export SFS_POST=@SFS_POST@ # TODO, place holder until RUN=SFS is developed

####################################################
# DO NOT ADD MACHINE DEPENDENT STUFF BELOW THIS LINE
Expand Down Expand Up @@ -244,7 +245,7 @@ export FHMAX_GFS="@FHMAX_GFS@"
breakpnts="@FCST_BREAKPOINTS@"
export FCST_SEGMENTS="${FHMIN_GFS},${breakpnts:+${breakpnts},}${FHMAX_GFS}"

export FHOUT_GFS=6
export FHOUT_GFS=@FHOUT_GFS@
export FHMAX_HF_GFS=@FHMAX_HF_GFS@
export FHOUT_HF_GFS=@FHOUT_HF_GFS@
export FHOUT_OCN_GFS=@FHOUT_OCN_GFS@
Expand Down
2 changes: 1 addition & 1 deletion parm/config/gefs/config.efcs
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ if [[ "${RUN}" == "enkfgfs" ]]; then
fi

# Stochastic physics parameters (only for ensemble forecasts)
export DO_SKEB="YES"
export DO_SKEB=${DO_SKEB:-"YES"} # C96 SKEB defaults to NO/False
export SKEB="0.8,-999,-999,-999,-999"
export SKEB_TAU="2.16E4,2.592E5,2.592E6,7.776E6,3.1536E7"
export SKEB_LSCALE="500.E3,1000.E3,2000.E3,2000.E3,2000.E3"
Expand Down
16 changes: 12 additions & 4 deletions parm/config/gefs/config.fcst
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,6 @@ export FHOUT_HF=${FHOUT_HF_GFS}
export FHOUT_OCN=${FHOUT_OCN_GFS}
export FHOUT_ICE=${FHOUT_ICE_GFS}
export FHZER=@FHZER@
export POST_SFS=@POST_SFS@

# Get task specific resources
source "${EXPDIR}/config.resources" fcst
Expand All @@ -67,8 +66,8 @@ export FCSTEXEC="ufs_model.x"

#######################################################################
# Model configuration
export TYPE="nh"
export MONO="non-mono"
export TYPE=@TYPE@
export MONO=@MONO@

# Use stratosphere h2o physics
export h2o_phys=".true."
Expand Down Expand Up @@ -202,6 +201,11 @@ case ${imp_physics} in
export hord_xx_nh_nonmono=5
export vtdm4_nh_nonmono=0.02
export nord=2
if [[ "${TYPE}" == "nh"* ]]; then
export dddmp=0.1
else
export dddmp=0.
fi
export dddmp=0.1
export d4_bg=0.12
;;
Expand All @@ -222,7 +226,11 @@ case ${imp_physics} in
export vtdm4_nh_nonmono=0.02
export nord=2
export d4_bg=0.12
export dddmp=0.1
if [[ "${TYPE}" == "nh"* ]]; then
export dddmp=0.1
else
export dddmp=0.
fi
;;
*) echo "Unknown microphysics option, ABORT!" ;;
esac
Expand Down
7 changes: 4 additions & 3 deletions parm/config/gefs/config.ufs
Original file line number Diff line number Diff line change
Expand Up @@ -98,13 +98,13 @@ case "${fv3_res}" in
export DELTIM=600
export layout_x=2
export layout_y=2
export layout_x_gfs=2
export layout_y_gfs=2
export layout_x_gfs=4
export layout_y_gfs=4
export nthreads_fv3=1
export nthreads_fv3_gfs=1
export nthreads_ufs=1
export nthreads_ufs_gfs=1
export xr_cnvcld=".false." # Do not pass conv. clouds to Xu-Randall cloud fraction
export xr_cnvcld=".true." # 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
Expand All @@ -131,6 +131,7 @@ 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 xr_cnvcld=".true." # Pass conv. clouds to Xu-Randall cloud fraction
export k_split=2
export n_split=4
export tau=6.0
Expand Down
3 changes: 3 additions & 0 deletions parm/config/gefs/yaml/defaults.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ base:
FCST_BREAKPOINTS: "48"
REPLAY_ICS: "NO"
USE_OCN_PERTURB_FILES: "false"
FHOUT_GFS: 6
FHOUT_OCN_GFS: 6
FHOUT_ICE_GFS: 6
HPSSARCH: "NO"
Expand All @@ -23,4 +24,6 @@ fcst:
reforecast: "YES"
FHZER: 6
POST_SFS: "NO"
TYPE: "nh"
MONO: "non-mono"

10 changes: 7 additions & 3 deletions sorc/build_all.sh
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ function _usage() {
Builds all of the global-workflow components by calling the individual build
scripts in sequence.
Usage: ${BASH_SOURCE[0]} [-a UFS_app][-c build_config][-d][-f][-h][-j n][-v][-w]
Usage: ${BASH_SOURCE[0]} [-a UFS_app][-c build_config][-d][-f][-h][-j n][-v][-w][-y]
-a UFS_app:
Build a specific UFS app instead of the default
-d:
Expand All @@ -37,6 +37,8 @@ Usage: ${BASH_SOURCE[0]} [-a UFS_app][-c build_config][-d][-f][-h][-j n][-v][-w]
Execute all build scripts with -v option to turn on verbose where supported
-w:
Use structured wave grid
-y:
Use hystrostatic version of FV3
EOF
exit 1
}
Expand All @@ -51,11 +53,12 @@ _build_gsi="NO"
_build_debug=""
_verbose_opt=""
_wave_opt=""
_hydro_opt=""
_build_job_max=20
_quick_kill="NO"
# Reset option counter in case this script is sourced
OPTIND=1
while getopts ":a:dfghj:kuvw" option; do
while getopts ":a:dfghj:kuvwy" option; do
case "${option}" in
a) _build_ufs_opt+="-a ${OPTARG} ";;
f) _build_ufs_opt+="-f ";;
Expand All @@ -67,6 +70,7 @@ while getopts ":a:dfghj:kuvw" option; do
u) _build_ufsda="YES" ;;
v) _verbose_opt="-v";;
w) _wave_opt="-w";;
y) _hydro_opt="-y";;
:)
echo "[${BASH_SOURCE[0]}]: ${option} requires an argument"
_usage
Expand Down Expand Up @@ -129,7 +133,7 @@ declare -A build_opts
big_jobs=0
build_jobs["ufs"]=8
big_jobs=$((big_jobs+1))
build_opts["ufs"]="${_wave_opt} ${_verbose_opt} ${_build_ufs_opt} ${_build_debug}"
build_opts["ufs"]="${_wave_opt} ${_hydro_opt} ${_verbose_opt} ${_build_ufs_opt} ${_build_debug}"

build_jobs["upp"]=1
build_opts["upp"]="${_build_debug}"
Expand Down
4 changes: 4 additions & 0 deletions ush/forecast_det.sh
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,10 @@ UFS_det(){
# TODO: add checks for other MOM6 restarts as well
mom6_rst_ok="NO"
fi
MOM6_RESTART_SETTING='r'
MOM6_INIT_FROM_Z=True
MOM6_WARMSTART_FILE="none"
MOM6_INIT_UV="zero"
fi

# Check for CICE6 restart availability
Expand Down
10 changes: 9 additions & 1 deletion ush/forecast_predet.sh
Original file line number Diff line number Diff line change
Expand Up @@ -332,19 +332,27 @@ FV3_predet(){
if [[ "${TYPE}" == "nh" ]]; then # monotonic and non-hydrostatic
hord_mt=${hord_mt_nh_mono:-"10"}
hord_xx=${hord_xx_nh_mono:-"10"}
hord_dp=-${hord_xx_nh_nonmono:-"5"}
else # monotonic and hydrostatic
hord_mt=${hord_mt_hydro_mono:-"10"}
hord_xx=${hord_xx_hydro_mono:-"10"}
hord_dp=-${hord_xx_nh_nonmono:-"10"}
fi
else # non-monotonic options
d_con=${d_con_nonmono:-"1."}
do_vort_damp=".true."
if [[ "${TYPE}" == "nh" ]]; then # non-monotonic and non-hydrostatic
hord_mt=${hord_mt_nh_nonmono:-"5"}
hord_xx=${hord_xx_nh_nonmono:-"5"}
hord_dp=${hord_xx_hydro_mono:-"10"}
else # non-monotonic and hydrostatic
hord_mt=${hord_mt_hydro_nonmono:-"10"}
hord_xx=${hord_xx_hydro_nonmono:-"10"}
hord_dp=${hord_xx_hydro_mono:-"10"}
kord_tm=${kord_tm_hydro_mono:-"-12"}
kord_mt=${kord_mt_hydro_mono:-"12"}
kord_wz=${kord_wz_hydro_mono:-"12"}
kord_tr=${kord_tr_hydro_mono:-"12"}
fi
fi

Expand Down Expand Up @@ -540,7 +548,7 @@ FV3_predet(){
${NCP} "${POSTGRB2TBL:-${PARMgfs}/post/params_grib2_tbl_new}" "${DATA}/params_grib2_tbl_new"
${NCP} "${PARMgfs}/ufs/post_itag_gfs" "${DATA}/itag" # TODO: Need a GEFS version when available in the UFS-weather-model
# TODO: These should be replaced with ones from the ufs-weather-model when available there
if [[ "${RUN}" =~ "gdas" || "${RUN}" =~ "gfs" || "${POST_SFS:-NO}" == "YES" ]]; then # RUN = gdas | enkfgdas | gfs | enkfgfs
if [[ "${RUN}" =~ "gdas" || "${RUN}" =~ "gfs" || "${SFS_POST:-NO}" == "YES" ]]; then # RUN = gdas | enkfgdas | gfs | enkfgfs
${NCP} "${PARMgfs}/post/gfs/postxconfig-NT-gfs-two.txt" "${DATA}/postxconfig-NT.txt"
${NCP} "${PARMgfs}/post/gfs/postxconfig-NT-gfs-f00-two.txt" "${DATA}/postxconfig-NT_FH00.txt"
elif [[ "${RUN}" == "gefs" ]]; then # RUN = gefs
Expand Down
2 changes: 1 addition & 1 deletion ush/parsing_namelists_FV3.sh
Original file line number Diff line number Diff line change
Expand Up @@ -163,7 +163,7 @@ cat > input.nml <<EOF
hord_mt = ${hord_mt}
hord_vt = ${hord_xx}
hord_tm = ${hord_xx}
hord_dp = -${hord_xx}
hord_dp = ${hord_dp}
hord_tr = ${hord_tr:-"8"}
adjust_dry_mass = ${adjust_dry_mass:-".true."}
dry_mass=${dry_mass:-98320.0}
Expand Down

0 comments on commit 86d1012

Please sign in to comment.