Skip to content

Commit

Permalink
Add sfs as valid system
Browse files Browse the repository at this point in the history
Adds sfs as a valid option for NET.

To start, the GEFS system is generally just copied wholesale for SFS.
This includes the extract_vars job.

Other than base and resources, config files link to the GEFS versions,
just as GEFS config files point to the GFS versions except where they
have needed to be changed.

The temporarily SFS_POST option has been removed.

The sfs test case is moved from a separate sfs directory to the pr
directory, but ICs are still needed before it is functional.

Resolves NOAA-EMC#2271
  • Loading branch information
WalterKolczynski-NOAA committed Jan 23, 2025
1 parent 3f4877f commit b411de9
Show file tree
Hide file tree
Showing 50 changed files with 1,926 additions and 309 deletions.
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
experiment:
system: gefs
system: sfs
mode: forecast-only

arguments:
Expand Down
1 change: 0 additions & 1 deletion ci/cases/yamls/sfs_defaults.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@ base:
USE_ATM_ENS_PERTURB_FILES: "YES"
HPSSARCH: "NO"
LOCALARCH: "NO"
SFS_POST: "YES"
ACCOUNT: {{ 'HPC_ACCOUNT' | getenv }}
fcst:
TYPE: "hydro"
Expand Down
16 changes: 7 additions & 9 deletions parm/archive/gefs_arcdir.yaml.j2
Original file line number Diff line number Diff line change
Expand Up @@ -24,15 +24,13 @@
{% endif %}

# Select ensstat files to copy to the arcdir
{% if RUN == "gefs" %}
{% set ensstat_files = [] %}
{% if path_exists(COMIN_ATMOS_ENSSTAT_1p00) %}
{% for fhr in range(ofst_hr, FHMAX_GFS + FHOUT_GFS, FHOUT_GFS) %}
{% do ensstat_files.append([COMIN_ATMOS_ENSSTAT_1p00 ~ "/" ~ head ~ "mean.pres_." ~
"1p00" ~ ".f" ~ '%03d'|format(fhr) ~ ".grib2",
GEFS_ARCH]) %}
{% endfor %}
{% endif %}
{% set ensstat_files = [] %}
{% if path_exists(COMIN_ATMOS_ENSSTAT_1p00) %}
{% for fhr in range(ofst_hr, FHMAX_GFS + FHOUT_GFS, FHOUT_GFS) %}
{% do ensstat_files.append([COMIN_ATMOS_ENSSTAT_1p00 ~ "/" ~ head ~ "mean.pres_." ~
"1p00" ~ ".f" ~ '%03d'|format(fhr) ~ ".grib2",
GEFS_ARCH]) %}
{% endfor %}
{% endif %}
{% set file_set = ensstat_files %}
# Actually write the yaml
Expand Down
13 changes: 4 additions & 9 deletions parm/config/gefs/config.atmos_products
Original file line number Diff line number Diff line change
Expand Up @@ -25,14 +25,9 @@ fi
export FLXGF="NO" # Create interpolated sflux.1p00 file

# paramlist files for the different forecast hours and downsets
if [[ ${SFS_POST} == "YES" ]]; then
export post_prefix='sfs'
else
export post_prefix='gefs'
fi
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"
export paramlista="${PARMgfs}/product/${NET}.0p25.fFFF.paramlist.a.txt"
export paramlista_anl="${PARMgfs}/product/${NET}.0p25.anl.paramlist.a.txt"
export paramlista_f000="${PARMgfs}/product/${NET}.0p25.f000.paramlist.a.txt"
export paramlistb="${PARMgfs}/product/${NET}.0p25.fFFF.paramlist.b.txt"

echo "END: config.atmos_products"
1 change: 0 additions & 1 deletion parm/config/gefs/config.base
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,6 @@ 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
export DO_TEST_MODE="@DO_TEST_MODE@" # option to change configuration for automated testing

####################################################
Expand Down
6 changes: 1 addition & 5 deletions parm/config/gefs/config.fcst
Original file line number Diff line number Diff line change
Expand Up @@ -51,11 +51,7 @@ export esmf_logkind="ESMF_LOGKIND_MULTI_ON_ERROR" #Options: ESMF_LOGKIND_MULTI_O

export FORECASTSH="${SCRgfs}/exglobal_forecast.sh"
#export FORECASTSH="${SCRgfs}/exglobal_forecast.py" # Temp. while this is worked on
if [[ "${SFS_POST:-}" == "YES" ]]; then
export FCSTEXEC="sfs_model.x"
else
export FCSTEXEC="gefs_model.x"
fi
export FCSTEXEC="${NET}_model.x"

#######################################################################
# Model configuration
Expand Down
16 changes: 8 additions & 8 deletions parm/config/gefs/config.resources
Original file line number Diff line number Diff line change
Expand Up @@ -312,14 +312,14 @@ case ${step} in
;;

"extractvars")
export walltime_gefs="00:30:00"
export ntasks_gefs=1
export threads_per_task_gefs=1
export tasks_per_node_gefs="${ntasks_gefs}"
export walltime_gfs="${walltime_gefs}"
export ntasks_gfs="${ntasks_gefs}"
export threads_per_tasks_gfs="${threads_per_task_gefs}"
export tasks_per_node_gfs="${tasks_per_node_gefs}"
export walltime="00:30:00"
export ntasks=1
export threads_per_task=1
export tasks_per_node="${ntasks}"
export walltime_gfs="${walltime}"
export ntasks_gfs="${ntasks}"
export threads_per_tasks_gfs="${threads_per_task}"
export tasks_per_node_gfs="${tasks_per_node}"
export is_exclusive=False
;;

Expand Down
78 changes: 52 additions & 26 deletions parm/config/gefs/config.ufs
Original file line number Diff line number Diff line change
Expand Up @@ -326,11 +326,16 @@ if [[ "${skip_mom6}" == "false" ]]; then
CHLCLIM="seawifs_1998-2006_smoothed_2X.nc"
MOM6_RESTART_SETTING='r'
MOM6_RIVER_RUNOFF='False'
if [[ ${RUN} == "gfs" || "${RUN}" == "gefs" ]]; then
MOM6_DIAG_MISVAL="-1e34"
else
MOM6_DIAG_MISVAL="0.0"
fi
case ${RUN} in
gfs|gefs|sfs)
MOM6_DIAG_MISVAL="-1e34";;
gdas|enkf*)
MOM6_DIAG_MISVAL="0.0";;
*)
echo "FATAL ERROR: Unsupported RUN ${RUN} for ${mom6_res}"
exit 10
;;
esac
eps_imesh="4.0e-1"
MOM6_DIAG_COORD_DEF_Z_FILE="oceanda_zgrid_25L.nc"
MOM6_ALLOW_LANDMASK_CHANGES='False'
Expand All @@ -349,13 +354,20 @@ if [[ "${skip_mom6}" == "false" ]]; then
MOM6_RIVER_RUNOFF='False'
eps_imesh="2.5e-1"
TOPOEDITS="ufs.topo_edits_011818.nc"
if [[ ${RUN} == "gfs" || "${RUN}" == "gefs" ]]; then
MOM6_DIAG_COORD_DEF_Z_FILE="interpolate_zgrid_40L.nc"
MOM6_DIAG_MISVAL="-1e34"
else
MOM6_DIAG_COORD_DEF_Z_FILE="oceanda_zgrid_75L.nc"
MOM6_DIAG_MISVAL="0.0"
fi
case ${RUN} in
gfs|gefs|sfs)
MOM6_DIAG_COORD_DEF_Z_FILE="interpolate_zgrid_40L.nc"
MOM6_DIAG_MISVAL="-1e34"
;;
gdas|enkf*)
MOM6_DIAG_COORD_DEF_Z_FILE="oceanda_zgrid_75L.nc"
MOM6_DIAG_MISVAL="0.0"
;;
*)
echo "FATAL ERROR: Unsupported RUN ${RUN} for ${mom6_res}"
exit 10
;;
esac
MOM6_ALLOW_LANDMASK_CHANGES='True'
;;
"050")
Expand All @@ -370,13 +382,20 @@ if [[ "${skip_mom6}" == "false" ]]; then
MOM6_RESTART_SETTING='n'
MOM6_RIVER_RUNOFF='True'
eps_imesh="1.0e-1"
if [[ ${RUN} == "gfs" || "${RUN}" == "gefs" ]]; then
MOM6_DIAG_COORD_DEF_Z_FILE="interpolate_zgrid_40L.nc"
MOM6_DIAG_MISVAL="-1e34"
else
MOM6_DIAG_COORD_DEF_Z_FILE="oceanda_zgrid_75L.nc"
MOM6_DIAG_MISVAL="0.0"
fi
case ${RUN} in
gfs|gefs|sfs)
MOM6_DIAG_COORD_DEF_Z_FILE="interpolate_zgrid_40L.nc"
MOM6_DIAG_MISVAL="-1e34"
;;
gdas|enkf*)
MOM6_DIAG_COORD_DEF_Z_FILE="oceanda_zgrid_75L.nc"
MOM6_DIAG_MISVAL="0.0"
;;
*)
echo "FATAL ERROR: Unsupported RUN ${RUN} for ${mom6_res}"
exit 10
;;
esac
MOM6_ALLOW_LANDMASK_CHANGES='False'
TOPOEDITS=""
;;
Expand All @@ -392,13 +411,20 @@ if [[ "${skip_mom6}" == "false" ]]; then
MOM6_RIVER_RUNOFF='True'
MOM6_RESTART_SETTING="r"
eps_imesh="1.0e-1"
if [[ ${RUN} == "gfs" || "${RUN}" == "gefs" ]]; then
MOM6_DIAG_COORD_DEF_Z_FILE="interpolate_zgrid_40L.nc"
MOM6_DIAG_MISVAL="-1e34"
else
MOM6_DIAG_COORD_DEF_Z_FILE="oceanda_zgrid_75L.nc"
MOM6_DIAG_MISVAL="0.0"
fi
case ${RUN} in
gfs|gefs|sfs)
MOM6_DIAG_COORD_DEF_Z_FILE="interpolate_zgrid_40L.nc"
MOM6_DIAG_MISVAL="-1e34"
;;
gdas|enkf*)
MOM6_DIAG_COORD_DEF_Z_FILE="oceanda_zgrid_75L.nc"
MOM6_DIAG_MISVAL="0.0"
;;
*)
echo "FATAL ERROR: Unsupported RUN ${RUN} for ${mom6_res}"
exit 10
;;
esac
MOM6_ALLOW_LANDMASK_CHANGES='False'
TOPOEDITS=""
;;
Expand Down
1 change: 0 additions & 1 deletion parm/config/gefs/yaml/defaults.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@ base:
FHOUT_ICE_GFS: 6
HPSSARCH: "NO"
LOCALARCH: "NO"
SFS_POST: "NO"
USE_OCN_ENS_PERTURB_FILES: "NO"
USE_ATM_ENS_PERTURB_FILES: "NO"
DO_TEST_MODE: "NO"
Expand Down
78 changes: 52 additions & 26 deletions parm/config/gfs/config.ufs
Original file line number Diff line number Diff line change
Expand Up @@ -436,11 +436,16 @@ if [[ "${skip_mom6}" == "false" ]]; then
CHLCLIM="seawifs_1998-2006_smoothed_2X.nc"
MOM6_RESTART_SETTING='r'
MOM6_RIVER_RUNOFF='False'
if [[ ${RUN} == "gfs" || "${RUN}" == "gefs" ]]; then
MOM6_DIAG_MISVAL="-1e34"
else
MOM6_DIAG_MISVAL="0.0"
fi
case ${RUN} in
gfs|gefs|sfs)
MOM6_DIAG_MISVAL="-1e34";;
gdas|enkf*)
MOM6_DIAG_MISVAL="0.0";;
*)
echo "FATAL ERROR: Unsupported RUN ${RUN} for ${mom6_res}"
exit 10
;;
esac
eps_imesh="4.0e-1"
MOM6_DIAG_COORD_DEF_Z_FILE="oceanda_zgrid_25L.nc"
MOM6_ALLOW_LANDMASK_CHANGES='False'
Expand All @@ -459,13 +464,20 @@ if [[ "${skip_mom6}" == "false" ]]; then
MOM6_RIVER_RUNOFF='False'
eps_imesh="2.5e-1"
TOPOEDITS="ufs.topo_edits_011818.nc"
if [[ ${RUN} == "gfs" || "${RUN}" == "gefs" ]]; then
MOM6_DIAG_COORD_DEF_Z_FILE="interpolate_zgrid_40L.nc"
MOM6_DIAG_MISVAL="-1e34"
else
MOM6_DIAG_COORD_DEF_Z_FILE="oceanda_zgrid_75L.nc"
MOM6_DIAG_MISVAL="0.0"
fi
case ${RUN} in
gfs|gefs|sfs)
MOM6_DIAG_COORD_DEF_Z_FILE="interpolate_zgrid_40L.nc"
MOM6_DIAG_MISVAL="-1e34"
;;
gdas|enkf*)
MOM6_DIAG_COORD_DEF_Z_FILE="oceanda_zgrid_75L.nc"
MOM6_DIAG_MISVAL="0.0"
;;
*)
echo "FATAL ERROR: Unsupported RUN ${RUN} for ${mom6_res}"
exit 10
;;
esac
MOM6_ALLOW_LANDMASK_CHANGES='True'
;;
"050")
Expand All @@ -480,13 +492,20 @@ if [[ "${skip_mom6}" == "false" ]]; then
MOM6_RESTART_SETTING='n'
MOM6_RIVER_RUNOFF='True'
eps_imesh="1.0e-1"
if [[ ${RUN} == "gfs" || "${RUN}" == "gefs" ]]; then
MOM6_DIAG_COORD_DEF_Z_FILE="interpolate_zgrid_40L.nc"
MOM6_DIAG_MISVAL="-1e34"
else
MOM6_DIAG_COORD_DEF_Z_FILE="oceanda_zgrid_75L.nc"
MOM6_DIAG_MISVAL="0.0"
fi
case ${RUN} in
gfs|gefs|sfs)
MOM6_DIAG_COORD_DEF_Z_FILE="interpolate_zgrid_40L.nc"
MOM6_DIAG_MISVAL="-1e34"
;;
gdas|enkf*)
MOM6_DIAG_COORD_DEF_Z_FILE="oceanda_zgrid_75L.nc"
MOM6_DIAG_MISVAL="0.0"
;;
*)
echo "FATAL ERROR: Unsupported RUN ${RUN} for ${mom6_res}"
exit 10
;;
esac
MOM6_ALLOW_LANDMASK_CHANGES='False'
TOPOEDITS=""
;;
Expand All @@ -502,13 +521,20 @@ if [[ "${skip_mom6}" == "false" ]]; then
MOM6_RIVER_RUNOFF='True'
MOM6_RESTART_SETTING="r"
eps_imesh="1.0e-1"
if [[ ${RUN} == "gfs" || "${RUN}" == "gefs" ]]; then
MOM6_DIAG_COORD_DEF_Z_FILE="interpolate_zgrid_40L.nc"
MOM6_DIAG_MISVAL="-1e34"
else
MOM6_DIAG_COORD_DEF_Z_FILE="oceanda_zgrid_75L.nc"
MOM6_DIAG_MISVAL="0.0"
fi
case ${RUN} in
gfs|gefs|sfs)
MOM6_DIAG_COORD_DEF_Z_FILE="interpolate_zgrid_40L.nc"
MOM6_DIAG_MISVAL="-1e34"
;;
gdas|enkf*)
MOM6_DIAG_COORD_DEF_Z_FILE="oceanda_zgrid_75L.nc"
MOM6_DIAG_MISVAL="0.0"
;;
*)
echo "FATAL ERROR: Unsupported RUN ${RUN} for ${mom6_res}"
exit 10
;;
esac
MOM6_ALLOW_LANDMASK_CHANGES='False'
TOPOEDITS=""
;;
Expand Down
1 change: 1 addition & 0 deletions parm/config/sfs/config.aero
1 change: 1 addition & 0 deletions parm/config/sfs/config.arch
1 change: 1 addition & 0 deletions parm/config/sfs/config.atmos_ensstat
1 change: 1 addition & 0 deletions parm/config/sfs/config.atmos_products
Loading

0 comments on commit b411de9

Please sign in to comment.