Skip to content

Commit 57c8aa3

Browse files
NeilBarton-NOAAEricSinsky-NOAAWalterKolczynski-NOAAaerorahul
authored
SFS Runs at C96mx100 (NOAA-EMC#2960)
Adds the ability to run C96mx100 with SFS options. Included in this PR is the ability to use the interpolated/coarse grained 1 degree MOM6 ICs. Staging the ATM and OCN perturbation files without using the +03 replay ICs. --------- Co-authored-by: Eric.Sinsky <eric.sinsky@noaa.gov> Co-authored-by: Walter Kolczynski - NOAA <Walter.Kolczynski@noaa.gov> Co-authored-by: Rahul Mahajan <aerorahul@users.noreply.github.com>
1 parent 3e78e58 commit 57c8aa3

25 files changed

+803
-30
lines changed

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ parm/post/params_grib2_tbl_new
6969
parm/post/post_tag_gfs128
7070
parm/post/gfs
7171
parm/post/gefs
72+
parm/post/sfs
7273
parm/post/ocean.csv
7374
parm/post/ice.csv
7475
parm/post/ocnicepost.nml.jinja2

ci/cases/sfs/C96mx100_S2S.yaml

+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
experiment:
2+
system: gefs
3+
mode: forecast-only
4+
5+
arguments:
6+
idate: 1994050100
7+
edate: 1994050100
8+
pslot: {{ 'pslot' | getenv }}
9+
app: S2S
10+
resdetatmos: 96
11+
resensatmos: 96
12+
resdetocean: 1
13+
start: 'cold'
14+
nens: 10
15+
comroot: {{ 'RUNTESTS' | getenv }}/COMROOT
16+
expdir: {{ 'RUNTESTS' | getenv }}/EXPDIR
17+
icsdir: {{ 'TOPICDIR' | getenv }}/HR4/C96mx100
18+
yaml: {{ HOMEgfs }}/ci/cases/yamls/sfs_defaults.yaml
19+

ci/cases/yamls/gefs_defaults_ci.yaml

+8
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,11 @@ defaults:
22
!INC {{ HOMEgfs }}/parm/config/gefs/yaml/defaults.yaml
33
base:
44
ACCOUNT: {{ 'HPC_ACCOUNT' | getenv }}
5+
SFS_POST: "NO"
6+
FHOUT_GFS: 6
7+
stage_ic:
8+
USE_OCN_ENS_PERTURB_FILES: "NO"
9+
USE_ATM_ENS_PERTURB_FILES: "NO"
10+
ocn:
11+
MOM6_INTERP_ICS: "NO"
12+

ci/cases/yamls/gefs_replay_ci.yaml

+4
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,8 @@ base:
1111
FHOUT_OCN_GFS: 24
1212
FHOUT_ICE_GFS: 24
1313
HOMEDIR: {{ 'RUNTESTS' | getenv }}/GLOBAL
14+
SFS_POST: "NO"
15+
stage_ic:
16+
USE_OCN_ENS_PERTURB_FILES: "YES"
17+
USE_ATM_ENS_PERTURB_FILES: "YES"
1418

ci/cases/yamls/sfs_defaults.yaml

+33
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
base:
2+
DO_JEDIATMVAR: "NO"
3+
DO_JEDIATMENS: "NO"
4+
DO_JEDIOCNVAR: "NO"
5+
DO_JEDISNOWDA: "NO"
6+
DO_MERGENSST: "NO"
7+
DO_BUFRSND: "NO"
8+
DO_GEMPAK: "NO"
9+
DO_AWIPS: "NO"
10+
KEEPDATA: "YES"
11+
DO_EXTRACTVARS: "NO"
12+
FHMAX_GFS: 2976
13+
FHMAX_HF_GFS: 0
14+
FHOUT_HF_GFS: 1
15+
FHOUT_GFS: 24
16+
FHOUT_OCN_GFS: 24
17+
FHOUT_ICE_GFS: 24
18+
FCST_BREAKPOINTS: ""
19+
REPLAY_ICS: "NO"
20+
HPSSARCH: "NO"
21+
LOCALARCH: "NO"
22+
SFS_POST: "YES"
23+
ACCOUNT: {{ 'HPC_ACCOUNT' | getenv }}
24+
fcst:
25+
TYPE: "hydro"
26+
MONO: "mono"
27+
reforecast: "YES"
28+
FHZER: 24
29+
stage_ic:
30+
USE_OCN_ENS_PERTURB_FILES: "YES"
31+
USE_ATM_ENS_PERTURB_FILES: "YES"
32+
ocn:
33+
MOM6_INTERP_ICS: "YES"

parm/config/gefs/config.atmos_products

+9-4
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,14 @@ fi
2525
export FLXGF="NO" # Create interpolated sflux.1p00 file
2626

2727
# paramlist files for the different forecast hours and downsets
28-
export paramlista="${PARMgfs}/product/gefs.0p25.fFFF.paramlist.a.txt"
29-
export paramlista_anl="${PARMgfs}/product/gefs.0p25.anl.paramlist.a.txt"
30-
export paramlista_f000="${PARMgfs}/product/gefs.0p25.f000.paramlist.a.txt"
31-
export paramlistb="${PARMgfs}/product/gefs.0p25.fFFF.paramlist.b.txt"
28+
if [[ ${SFS_POST} == "YES" ]]; then
29+
export post_prefix='sfs'
30+
else
31+
export post_prefix='gefs'
32+
fi
33+
export paramlista="${PARMgfs}/product/${post_prefix}.0p25.fFFF.paramlist.a.txt"
34+
export paramlista_anl="${PARMgfs}/product/${post_prefix}.0p25.anl.paramlist.a.txt"
35+
export paramlista_f000="${PARMgfs}/product/${post_prefix}.0p25.f000.paramlist.a.txt"
36+
export paramlistb="${PARMgfs}/product/${post_prefix}.0p25.fFFF.paramlist.b.txt"
3237

3338
echo "END: config.atmos_products"

parm/config/gefs/config.base

+3-2
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ export REALTIME="YES"
6464

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

6869
####################################################
6970
# DO NOT ADD MACHINE DEPENDENT STUFF BELOW THIS LINE
@@ -237,15 +238,14 @@ else
237238
export OFFSET_START_HOUR=0
238239
fi
239240

240-
241241
# GFS output and frequency
242242
export FHMIN_GFS=0
243243
export FHMAX_GFS="@FHMAX_GFS@"
244244
# Intermediate times to stop forecast when running in segments
245245
breakpnts="@FCST_BREAKPOINTS@"
246246
export FCST_SEGMENTS="${FHMIN_GFS},${breakpnts:+${breakpnts},}${FHMAX_GFS}"
247247

248-
export FHOUT_GFS=6
248+
export FHOUT_GFS=@FHOUT_GFS@
249249
export FHMAX_HF_GFS=@FHMAX_HF_GFS@
250250
export FHOUT_HF_GFS=@FHOUT_HF_GFS@
251251
export FHOUT_OCN_GFS=@FHOUT_OCN_GFS@
@@ -295,6 +295,7 @@ export ENSMEM=${ENSMEM:-"000"}
295295
export MEMDIR="mem${ENSMEM}"
296296

297297
export DOIAU="NO" # While we are not doing IAU, we may want to warm start w/ IAU in the future
298+
298299
# Check if cycle is warm starting with IAU
299300
if [[ "${EXP_WARM_START}" = ".true." ]]; then
300301
if [[ "${DOIAU}" = "YES" ]]; then

parm/config/gefs/config.efcs

+5-1
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,11 @@ source "${EXPDIR}/config.ufs" ${string}
2727
source "${EXPDIR}/config.resources" efcs
2828

2929
# Stochastic physics parameters (only for ensemble forecasts)
30-
export DO_SKEB="YES"
30+
if [[ "${CASE}" == "C96" ]] ; then
31+
export DO_SKEB="NO" # SKEB turned off for C96
32+
else
33+
export DO_SKEB="YES" # SKEB turned on for all other resolutions
34+
fi
3135
export SKEB="0.8,-999,-999,-999,-999"
3236
export SKEB_TAU="2.16E4,2.592E5,2.592E6,7.776E6,3.1536E7"
3337
export SKEB_LSCALE="500.E3,1000.E3,2000.E3,2000.E3,2000.E3"

parm/config/gefs/config.fcst

+14-6
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ export FHOUT=${FHOUT_GFS}
4444
export FHOUT_HF=${FHOUT_HF_GFS}
4545
export FHOUT_OCN=${FHOUT_OCN_GFS}
4646
export FHOUT_ICE=${FHOUT_ICE_GFS}
47+
export FHZER=@FHZER@
4748

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

6768
#######################################################################
6869
# Model configuration
69-
export TYPE="nh"
70-
export MONO="non-mono"
70+
export TYPE=@TYPE@
71+
export MONO=@MONO@
7172

7273
# Use stratosphere h2o physics
7374
export h2o_phys=".true."
@@ -201,6 +202,11 @@ case ${imp_physics} in
201202
export hord_xx_nh_nonmono=5
202203
export vtdm4_nh_nonmono=0.02
203204
export nord=2
205+
if [[ "${TYPE}" == "nh"* ]]; then
206+
export dddmp=0.1
207+
else
208+
export dddmp=0.
209+
fi
204210
export dddmp=0.1
205211
export d4_bg=0.12
206212
;;
@@ -221,7 +227,11 @@ case ${imp_physics} in
221227
export vtdm4_nh_nonmono=0.02
222228
export nord=2
223229
export d4_bg=0.12
224-
export dddmp=0.1
230+
if [[ "${TYPE}" == "nh"* ]]; then
231+
export dddmp=0.1
232+
else
233+
export dddmp=0.
234+
fi
225235
;;
226236
*) echo "Unknown microphysics option, ABORT!" ;;
227237
esac
@@ -268,9 +278,7 @@ else
268278
export io_layout="1,1"
269279
fi
270280

271-
if (( OFFSET_START_HOUR != 0 )); then
272-
export reforecast="YES"
273-
fi
281+
export reforecast=@reforecast@
274282
# Remember config.efcs will over-ride these values for ensemble forecasts
275283
# if these variables are re-defined there.
276284
# Otherwise, the ensemble forecast will inherit from config.fcst

parm/config/gefs/config.stage_ic

+4
Original file line numberDiff line numberDiff line change
@@ -30,4 +30,8 @@ if [[ -z "${ICSDIR}" ]] ; then
3030

3131
fi
3232

33+
#use of perturbations files for ensembles
34+
export USE_OCN_ENS_PERTURB_FILES=@USE_OCN_ENS_PERTURB_FILES@
35+
export USE_ATM_ENS_PERTURB_FILES=@USE_ATM_ENS_PERTURB_FILES@
36+
3337
echo "END: config.stage_ic"

parm/config/gefs/config.ufs

+6-5
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ case "${fv3_res}" in
8080
export nthreads_fv3_gfs=1
8181
export nthreads_ufs=1
8282
export nthreads_ufs_gfs=1
83-
export xr_cnvcld=.false. # Do not pass conv. clouds to Xu-Randall cloud fraction
83+
export xr_cnvcld=".true." # Pass conv. clouds to Xu-Randall cloud fraction
8484
export cdmbgwd="0.071,2.1,1.0,1.0" # mountain blocking, ogwd, cgwd, cgwd src scaling
8585
export cdmbgwd_gsl="40.0,1.77,1.0,1.0" # settings for GSL drag suite
8686
export k_split=1
@@ -98,13 +98,13 @@ case "${fv3_res}" in
9898
export DELTIM=600
9999
export layout_x=2
100100
export layout_y=2
101-
export layout_x_gfs=2
102-
export layout_y_gfs=2
101+
export layout_x_gfs=4
102+
export layout_y_gfs=4
103103
export nthreads_fv3=1
104104
export nthreads_fv3_gfs=1
105105
export nthreads_ufs=1
106106
export nthreads_ufs_gfs=1
107-
export xr_cnvcld=".false." # Do not pass conv. clouds to Xu-Randall cloud fraction
107+
export xr_cnvcld=".true." # Pass conv. clouds to Xu-Randall cloud fraction
108108
export cdmbgwd="0.14,1.8,1.0,1.0" # mountain blocking, ogwd, cgwd, cgwd src scaling
109109
export cdmbgwd_gsl="20.0,2.5,1.0,1.0" # settings for GSL drag suite
110110
export knob_ugwp_tauamp=3.0e-3 # setting for UGWPv1 non-stationary GWD
@@ -131,6 +131,7 @@ case "${fv3_res}" in
131131
export cdmbgwd="0.23,1.5,1.0,1.0" # mountain blocking, ogwd, cgwd, cgwd src scaling
132132
export cdmbgwd_gsl="10.0,3.5,1.0,1.0" # settings for GSL drag suite
133133
export knob_ugwp_tauamp=1.5e-3 # setting for UGWPv1 non-stationary GWD
134+
export xr_cnvcld=".true." # Pass conv. clouds to Xu-Randall cloud fraction
134135
export k_split=2
135136
export n_split=4
136137
export tau=6.0
@@ -337,7 +338,7 @@ if [[ "${skip_mom6}" == "false" ]]; then
337338
DT_THERM_MOM6='3600'
338339
FRUNOFF="runoff.daitren.clim.1deg.nc"
339340
CHLCLIM="seawifs_1998-2006_smoothed_2X.nc"
340-
MOM6_RESTART_SETTING='r'
341+
MOM6_RESTART_SETTING=${MOM6_RESTART_SETTING:-'r'}
341342
MOM6_RIVER_RUNOFF='False'
342343
eps_imesh="2.5e-1"
343344
TOPOEDITS="ufs.topo_edits_011818.nc"

parm/config/gefs/yaml/defaults.yaml

+13
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,20 @@ base:
1515
FCST_BREAKPOINTS: "48"
1616
REPLAY_ICS: "NO"
1717
USE_OCN_PERTURB_FILES: "false"
18+
FHOUT_GFS: 6
1819
FHOUT_OCN_GFS: 6
1920
FHOUT_ICE_GFS: 6
2021
HPSSARCH: "NO"
2122
LOCALARCH: "NO"
23+
SFS_POST: "NO"
24+
fcst:
25+
reforecast: "NO"
26+
FHZER: 6
27+
TYPE: "nh"
28+
MONO: "non-mono"
29+
stage_ic:
30+
USE_OCN_ENS_PERTURB_FILES: "NO"
31+
USE_ATM_ENS_PERTURB_FILES: "NO"
32+
ocn:
33+
MOM6_INTERP_ICS: "NO"
34+

parm/config/gfs/config.ocn

+7-2
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,11 @@ else
2424
export ODA_INCUPD_NHOURS="3.0"
2525
fi
2626

27-
28-
27+
MOM6_INTERP_ICS=@MOM6_INTERP_ICS@
28+
if [[ "${MOM6_INTERP_ICS}" == "YES" ]]; then
29+
export MOM6_RESTART_SETTING='n'
30+
export MOM6_WARMSTART_FILE="MOM.res.nc"
31+
export MOM6_INIT_FROM_Z='False'
32+
export MOM6_INIT_UV='file'
33+
fi
2934
echo "END: config.ocn"

parm/config/gfs/config.stage_ic

+4
Original file line numberDiff line numberDiff line change
@@ -29,4 +29,8 @@ if [[ -z "${ICSDIR}" ]] ; then
2929

3030
fi
3131

32+
#use of perturbations files for ensembles
33+
export USE_OCN_ENS_PERTURB_FILES="NO"
34+
export USE_ATM_ENS_PERTURB_FILES="NO"
35+
3236
echo "END: config.stage_ic"
+39
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
:HGT:surface:
2+
:PRMSL:mean sea level:
3+
:PRES:surface:
4+
:TMP:2 m above ground:
5+
:TMAX:2 m above ground:
6+
:TMIN:2 m above ground:
7+
:RH:2 m above ground:
8+
:DPT:2 m above ground:
9+
:UGRD:10 m above ground:
10+
:VGRD:10 m above ground:
11+
:APCP:surface:
12+
:CRAIN:surface:
13+
:CSNOW:surface:
14+
:CFRZR:surface:
15+
:CICEP:surface:
16+
:PWAT:entire atmosphere (considered as a single layer):
17+
:CAPE:180-0 mb above ground:
18+
:CAPE:surface:
19+
:CIN:180-0 mb above ground:
20+
:CIN:surface:
21+
:CPOFP:surface:
22+
:HLCY:3000-0 m above ground:
23+
:TCDC:entire atmosphere:
24+
:WEASD:surface:
25+
:SNOD:surface:
26+
:ULWRF:top of atmosphere:
27+
:DSWRF:surface:
28+
:DLWRF:surface:
29+
:USWRF:surface:
30+
:ULWRF:surface:
31+
:GUST:surface:
32+
:SHTFL:surface:
33+
:LHTFL:surface:
34+
:ICETK:surface:
35+
:TSOIL:0-0.1
36+
:SOILW:0-0.1
37+
:MSLET:mean sea level:
38+
:VIS:surface:
39+
:HGT:cloud ceiling:
+52
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
:PRMSL:mean sea level:
2+
:PRES:surface:
3+
:TMP:surface:
4+
:TMP:2 m above ground:
5+
:TMP:850 mb:
6+
:TMP:500 mb:
7+
:TMP:200 mb:
8+
:TMAX:2 m above ground:
9+
:TMIN:2 m above ground:
10+
:RH:2 m above ground:
11+
:DPT:2 m above ground:
12+
:UGRD:10 m above ground:
13+
:UGRD:850 mb:
14+
:UGRD:500 mb:
15+
:UGRD:200 mb:
16+
:VGRD:10 m above ground:
17+
:VGRD:850 mb:
18+
:VGRD:500 mb:
19+
:VGRD:200 mb:
20+
:HGT:850 mb:
21+
:HGT:500 mb:
22+
:HGT:200 mb:
23+
:APCP:surface:
24+
:CRAIN:surface:
25+
:CSNOW:surface:
26+
:CFRZR:surface:
27+
:CICEP:surface:
28+
:FDNSSTMP:surface:
29+
:PWAT:entire atmosphere (considered as a single layer):
30+
:CAPE:180-0 mb above ground:
31+
:CAPE:surface:
32+
:CIN:180-0 mb above ground:
33+
:CIN:surface:
34+
:HLCY:3000-0 m above ground:
35+
:TCDC:entire atmosphere (considered as a single layer):
36+
:WEASD:surface:
37+
:SNOD:surface:
38+
:ULWRF:top of atmosphere:
39+
:DSWRF:surface:
40+
:CPOFP:surface:
41+
:DLWRF:surface:
42+
:USWRF:surface:
43+
:ULWRF:surface:
44+
:GUST:surface:
45+
:SHTFL:surface:
46+
:LHTFL:surface:
47+
:ICETK:surface:
48+
:TSOIL:0-0.1
49+
:SOILW:0-0.1
50+
:MSLET:mean sea level:
51+
:VIS:surface:
52+
:HGT:cloud ceiling:

0 commit comments

Comments
 (0)