From 30cf5dfb5007d2c49812619dd430f223ca82851d Mon Sep 17 00:00:00 2001 From: NeilBarton-NOAA Date: Tue, 2 Jul 2024 15:04:14 -0500 Subject: [PATCH 01/67] initial creation of CI using replay ICs --- ci/cases/pr/C96_S2S_gefs_REPLAY.yaml | 19 +++++++++++++++++++ ci/cases/yamls/gefs_replay_ics.yaml | 13 +++++++++++++ scripts/exglobal_stage_ic.sh | 4 ++-- 3 files changed, 34 insertions(+), 2 deletions(-) create mode 100644 ci/cases/pr/C96_S2S_gefs_REPLAY.yaml create mode 100644 ci/cases/yamls/gefs_replay_ics.yaml diff --git a/ci/cases/pr/C96_S2S_gefs_REPLAY.yaml b/ci/cases/pr/C96_S2S_gefs_REPLAY.yaml new file mode 100644 index 00000000000..8bdaa19ea76 --- /dev/null +++ b/ci/cases/pr/C96_S2S_gefs_REPLAY.yaml @@ -0,0 +1,19 @@ +experiment: + system: gefs + mode: forecast-only + +arguments: + pslot: {{ 'pslot' | getenv }} + app: S2S + resdetatmos: 96 + resdetocean: 1.0 + resensatmos: 96 + nens: 2 + gfs_cyc: 1 + start: warm + comroot: {{ 'RUNTESTS' | getenv }}/COMROOT + expdir: {{ 'RUNTESTS' | getenv }}/EXPDIR + idate: 2023012300 + edate: 2023012300 + yaml: {{ HOMEgfs }}/ci/cases/yamls/gefs_ci_defaults.yaml + diff --git a/ci/cases/yamls/gefs_replay_ics.yaml b/ci/cases/yamls/gefs_replay_ics.yaml new file mode 100644 index 00000000000..3d7ab8b0dec --- /dev/null +++ b/ci/cases/yamls/gefs_replay_ics.yaml @@ -0,0 +1,13 @@ +base: + DO_JEDIATMVAR: "NO" + DO_JEDIATMENS: "NO" + DO_JEDIOCNVAR: "NO" + DO_JEDISNOWDA: "NO" + DO_MERGENSST: "NO" + FHMAX_GFS: 120 + KEEPDATA: "NO" + REPLAY_ICS: "YES" + ACCOUNT: {{ 'HPC_ACCOUNT' | getenv }} + HPSS_PROJECT: "emc-marine" + BASE_CPLIC: {{ 'TOPICDIR' | getenv }}/REPLAY_ICs/C96mx100 + diff --git a/scripts/exglobal_stage_ic.sh b/scripts/exglobal_stage_ic.sh index 8800292752d..32356cd7247 100755 --- a/scripts/exglobal_stage_ic.sh +++ b/scripts/exglobal_stage_ic.sh @@ -86,7 +86,7 @@ for MEMDIR in "${MEMDIR_ARRAY[@]}"; do # Atmosphere Perturbation Files (usually used with replay ICS) # Extra zero on MEMDIR ensure we have a number even if the string is empty - if (( 0${MEMDIR:3} > 0 )) && [[ "${REPLAY_ICS:-NO}" == "YES" ]]; then + if (( $((10#0${MEMDIR:3})) > 0 )) && [[ "${REPLAY_ICS:-NO}" == "YES" ]]; then YMD=${PDY} HH=${cyc} declare_from_tmpl COM_ATMOS_ANALYSIS:COM_ATMOS_ANALYSIS_TMPL [[ ! -d "${COM_ATMOS_ANALYSIS}" ]] && mkdir -p "${COM_ATMOS_ANALYSIS}" src="${BASE_CPLIC}/${CPL_ATMIC:-}/${PDY}${cyc}/${MEMDIR}/atmos/${DTG_PREFIX}.fv3_perturbation.nc" @@ -130,7 +130,7 @@ for MEMDIR in "${MEMDIR_ARRAY[@]}"; do # Ocean Perturbation Files # Extra zero on MEMDIR ensure we have a number even if the string is empty - if (( 0${MEMDIR:3} > 0 )) && [[ "${REPLAY_ICS:-NO}" == "YES" ]]; then + if (( $((10#0${MEMDIR:3})) > 0 )) && [[ "${REPLAY_ICS:-NO}" == "YES" ]]; then YMD=${PDY} HH=${cyc} declare_from_tmpl COM_OCEAN_ANALYSIS:COM_OCEAN_ANALYSIS_TMPL [[ ! -d "${COM_OCEAN_ANALYSIS}" ]] && mkdir -p "${COM_OCEAN_ANALYSIS}" src="${BASE_CPLIC}/${CPL_OCNIC:-}/${PDY}${cyc}/${MEMDIR}/ocean/${DTG_PREFIX}.mom6_perturbation.nc" From 4b3ae39fd91bf3465832d9f07ec3de114bca9933 Mon Sep 17 00:00:00 2001 From: NeilBarton-NOAA Date: Tue, 2 Jul 2024 15:04:58 -0500 Subject: [PATCH 02/67] change name --- .../pr/{C96_S2S_gefs_REPLAY.yaml => C96_S2S_gefs_replay_ics.yaml} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename ci/cases/pr/{C96_S2S_gefs_REPLAY.yaml => C96_S2S_gefs_replay_ics.yaml} (100%) diff --git a/ci/cases/pr/C96_S2S_gefs_REPLAY.yaml b/ci/cases/pr/C96_S2S_gefs_replay_ics.yaml similarity index 100% rename from ci/cases/pr/C96_S2S_gefs_REPLAY.yaml rename to ci/cases/pr/C96_S2S_gefs_replay_ics.yaml From fe2054ee7b9807eb5e4e7b5a30a34eae8f1cb1de Mon Sep 17 00:00:00 2001 From: NeilBarton-NOAA Date: Tue, 2 Jul 2024 16:24:03 -0500 Subject: [PATCH 03/67] making an S2SWA case --- ...2S_gefs_replay_ics.yaml => C96_S2SWA_gefs_replay_ics.yaml} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename ci/cases/pr/{C96_S2S_gefs_replay_ics.yaml => C96_S2SWA_gefs_replay_ics.yaml} (81%) diff --git a/ci/cases/pr/C96_S2S_gefs_replay_ics.yaml b/ci/cases/pr/C96_S2SWA_gefs_replay_ics.yaml similarity index 81% rename from ci/cases/pr/C96_S2S_gefs_replay_ics.yaml rename to ci/cases/pr/C96_S2SWA_gefs_replay_ics.yaml index 8bdaa19ea76..6b5e3550bd8 100644 --- a/ci/cases/pr/C96_S2S_gefs_replay_ics.yaml +++ b/ci/cases/pr/C96_S2SWA_gefs_replay_ics.yaml @@ -4,7 +4,7 @@ experiment: arguments: pslot: {{ 'pslot' | getenv }} - app: S2S + app: S2SWA resdetatmos: 96 resdetocean: 1.0 resensatmos: 96 @@ -15,5 +15,5 @@ arguments: expdir: {{ 'RUNTESTS' | getenv }}/EXPDIR idate: 2023012300 edate: 2023012300 - yaml: {{ HOMEgfs }}/ci/cases/yamls/gefs_ci_defaults.yaml + yaml: {{ HOMEgfs }}/ci/cases/yamls/gefs_ci_replay.yaml From b17765e34bd9194906f6f897e9387ce4978ca54c Mon Sep 17 00:00:00 2001 From: NeilBarton-NOAA Date: Wed, 24 Jul 2024 15:02:46 +0000 Subject: [PATCH 04/67] start of CI for GEFS replays # Please enter the commit message for your changes. Lines starting --- ci/cases/pr/C48_S2SWA_gefs.yaml | 2 +- ci/cases/pr/C96_S2SWA_gefs_replay_ics.yaml | 6 +++--- ...{gefs_ci_defaults.yaml => gefs_defaults_ci.yaml} | 0 ci/cases/yamls/gefs_replay_ci.yaml | 6 ++++++ ci/cases/yamls/gefs_replay_ics.yaml | 13 ------------- jobs/JGLOBAL_WAVE_POST_PNT | 2 +- parm/config/gefs/config.base | 3 ++- parm/config/gefs/config.ufs | 2 +- scripts/exgfs_wave_post_pnt.sh | 11 ++++++++--- workflow/rocoto/gefs_tasks.py | 8 +++++--- 10 files changed, 27 insertions(+), 26 deletions(-) rename ci/cases/yamls/{gefs_ci_defaults.yaml => gefs_defaults_ci.yaml} (100%) create mode 100644 ci/cases/yamls/gefs_replay_ci.yaml delete mode 100644 ci/cases/yamls/gefs_replay_ics.yaml diff --git a/ci/cases/pr/C48_S2SWA_gefs.yaml b/ci/cases/pr/C48_S2SWA_gefs.yaml index a924b416c3c..98f0fcfadb8 100644 --- a/ci/cases/pr/C48_S2SWA_gefs.yaml +++ b/ci/cases/pr/C48_S2SWA_gefs.yaml @@ -15,7 +15,7 @@ arguments: expdir: {{ 'RUNTESTS' | getenv }}/EXPDIR idate: 2021032312 edate: 2021032312 - yaml: {{ HOMEgfs }}/ci/cases/yamls/gefs_ci_defaults.yaml + yaml: {{ HOMEgfs }}/ci/cases/yamls/gefs_defaults_ci.yaml skip_ci_on_hosts: - wcoss2 diff --git a/ci/cases/pr/C96_S2SWA_gefs_replay_ics.yaml b/ci/cases/pr/C96_S2SWA_gefs_replay_ics.yaml index 6b5e3550bd8..2d9cc2d09c4 100644 --- a/ci/cases/pr/C96_S2SWA_gefs_replay_ics.yaml +++ b/ci/cases/pr/C96_S2SWA_gefs_replay_ics.yaml @@ -13,7 +13,7 @@ arguments: start: warm comroot: {{ 'RUNTESTS' | getenv }}/COMROOT expdir: {{ 'RUNTESTS' | getenv }}/EXPDIR - idate: 2023012300 - edate: 2023012300 - yaml: {{ HOMEgfs }}/ci/cases/yamls/gefs_ci_replay.yaml + idate: 2020110100 + edate: 2020110100 + yaml: {{ HOMEgfs }}/ci/cases/yamls/gefs_replay_ci.yaml diff --git a/ci/cases/yamls/gefs_ci_defaults.yaml b/ci/cases/yamls/gefs_defaults_ci.yaml similarity index 100% rename from ci/cases/yamls/gefs_ci_defaults.yaml rename to ci/cases/yamls/gefs_defaults_ci.yaml diff --git a/ci/cases/yamls/gefs_replay_ci.yaml b/ci/cases/yamls/gefs_replay_ci.yaml new file mode 100644 index 00000000000..ab25eaacefe --- /dev/null +++ b/ci/cases/yamls/gefs_replay_ci.yaml @@ -0,0 +1,6 @@ +defaults: + !INC {{ HOMEgfs }}/parm/config/gefs/yaml/defaults.yaml +base: + REPLAY_ICS: "YES" + BASE_CPLIC: {{ 'TOPICDIR' | getenv }}/REPLAY_ICs/CI + diff --git a/ci/cases/yamls/gefs_replay_ics.yaml b/ci/cases/yamls/gefs_replay_ics.yaml deleted file mode 100644 index 3d7ab8b0dec..00000000000 --- a/ci/cases/yamls/gefs_replay_ics.yaml +++ /dev/null @@ -1,13 +0,0 @@ -base: - DO_JEDIATMVAR: "NO" - DO_JEDIATMENS: "NO" - DO_JEDIOCNVAR: "NO" - DO_JEDISNOWDA: "NO" - DO_MERGENSST: "NO" - FHMAX_GFS: 120 - KEEPDATA: "NO" - REPLAY_ICS: "YES" - ACCOUNT: {{ 'HPC_ACCOUNT' | getenv }} - HPSS_PROJECT: "emc-marine" - BASE_CPLIC: {{ 'TOPICDIR' | getenv }}/REPLAY_ICs/C96mx100 - diff --git a/jobs/JGLOBAL_WAVE_POST_PNT b/jobs/JGLOBAL_WAVE_POST_PNT index 769159be617..6b5deee0fde 100755 --- a/jobs/JGLOBAL_WAVE_POST_PNT +++ b/jobs/JGLOBAL_WAVE_POST_PNT @@ -25,7 +25,7 @@ export WAV_MOD_TAG=${RUN}wave${waveMEMB} export CFP_VERBOSE=1 -export FHMAX_WAV_PNT=${FHMAX_WAV} +export FHMAX_WAV_PNT=$(( ${FHMAX_WAV} - ${OFFSET_START_HOUR} )) export DOSPC_WAV='YES' # Spectral post export DOBLL_WAV='YES' # Bulletin post export DOBNDPNT_WAV='NO' #not boundary points diff --git a/parm/config/gefs/config.base b/parm/config/gefs/config.base index 1f5c9228e22..c68892c3501 100644 --- a/parm/config/gefs/config.base +++ b/parm/config/gefs/config.base @@ -306,7 +306,8 @@ fi export DOIAU="NO" # While we are not doing IAU, we may want to warm start w/ IAU in the future # Check if cycle is cold starting if [[ "${EXP_WARM_START}" = ".false." ]]; then - export IAU_FHROT=${OFFSET_START_HOUR} + half_assim=$(( assim_freq / 2 )) + export OFFSET_START_HOUR=$( printf "%02d" ${half_assim} ) else if [[ "${DOIAU}" = "YES" ]]; then export IAU_FHROT=3 diff --git a/parm/config/gefs/config.ufs b/parm/config/gefs/config.ufs index 584e4769a81..db172d05e42 100644 --- a/parm/config/gefs/config.ufs +++ b/parm/config/gefs/config.ufs @@ -328,7 +328,7 @@ if [[ "${skip_mom6}" == "false" ]]; then MOM6_RESTART_SETTING='r' MOM6_RIVER_RUNOFF='False' eps_imesh="2.5e-1" - TOPOEDITS="ufs.topo_edits_011818.nc" + TOPOEDITS="topo_edits_011818.nc" if [[ ${RUN} == "gfs" || "${RUN}" == "gefs" ]]; then MOM6_DIAG_COORD_DEF_Z_FILE="interpolate_zgrid_40L.nc" MOM6_DIAG_MISVAL="-1e34" diff --git a/scripts/exgfs_wave_post_pnt.sh b/scripts/exgfs_wave_post_pnt.sh index b251661ee6e..67c0680c06c 100755 --- a/scripts/exgfs_wave_post_pnt.sh +++ b/scripts/exgfs_wave_post_pnt.sh @@ -241,7 +241,7 @@ source "${USHgfs}/preamble.sh" if [ "$DOSPC_WAV" = 'YES' ] || [ "$DOBLL_WAV" = 'YES' ] then - ymdh=$(${NDATE} -"${WAVHINDH}" "${PDY}${cyc}") + ymdh=$(${NDATE} -"${WAVHINDH}" "${PDY}${OFFSET_START_HOUR}") tstart="${ymdh:0:8} ${ymdh:8:2}0000" dtspec=3600. # default time step (not used here) sed -e "s/TIME/${tstart}/g" \ @@ -252,7 +252,9 @@ source "${USHgfs}/preamble.sh" ww3_outp_spec.inp.tmpl > ww3_outp.inp ${NLN} mod_def.$waveuoutpGRD mod_def.ww3 - HMS="${cyc}0000" + sec=$(( ${cyc} + ${OFFSET_START_HOUR} )) + sec=$( printf "%02d" ${sec} ) + HMS="${sec}0000" if [[ -f "${COMIN_WAVE_HISTORY}/${WAV_MOD_TAG}.out_pnt.${waveuoutpGRD}.${PDY}.${HMS}" ]]; then ${NLN} "${COMIN_WAVE_HISTORY}/${WAV_MOD_TAG}.out_pnt.${waveuoutpGRD}.${PDY}.${HMS}" \ "./out_pnt.${waveuoutpGRD}" @@ -360,12 +362,15 @@ source "${USHgfs}/preamble.sh" echo " Creating the wave point scripts at : $(date)" ymdh=$($NDATE "${fhr}" "${PDY}${cyc}") YMD=${ymdh:0:8} - HMS="${ymdh:8:2}0000" + sec=$(( ${cyc} + ${OFFSET_START_HOUR} )) + sec=$( printf "%02d" ${sec} ) + HMS="${sec}0000" YMDHMS=${YMD}${HMS} FH3=$(printf %03i ${fhr}) rm -f tmpcmdfile.${FH3} touch tmpcmdfile.${FH3} + rm -fr output_$YMDHMS mkdir output_$YMDHMS cd output_$YMDHMS diff --git a/workflow/rocoto/gefs_tasks.py b/workflow/rocoto/gefs_tasks.py index f6d1ad6cdc0..d20762fdc37 100644 --- a/workflow/rocoto/gefs_tasks.py +++ b/workflow/rocoto/gefs_tasks.py @@ -326,10 +326,12 @@ def atmos_ensstat(self): def wavepostsbs(self): deps = [] + dtg_prefix = "@Y@m@d.@H0000" + offset = str(self._configs['base']['OFFSET_START_HOUR']).zfill(2) + ":00:00" for wave_grid in self._configs['wavepostsbs']['waveGRD'].split(): - wave_hist_path = self._template_to_rocoto_cycstring(self._base["COM_WAVE_HISTORY_TMPL"], {'MEMDIR': 'mem#member#'}) - data = f'{wave_hist_path}/gefswave.out_grd.{wave_grid}.@Y@m@d.@H0000' - dep_dict = {'type': 'data', 'data': data} + wave_hist_path = self._template_to_rocoto_cycstring(self._base["COM_WAVE_HISTORY_TMPL"], {'MEMDIR': 'mem#member#'}) + '/' + data = [wave_hist_path, f"gefswave.out_grd.{wave_grid}.@Y@m@d.@H0000"] + dep_dict = {'type': 'data', 'data': data, 'offset': [None, offset]} deps.append(rocoto.add_dependency(dep_dict)) dependencies = rocoto.create_dependency(dep_condition='and', dep=deps) From e49dbcf38b06169c6c510a05bc24fd37207fe00f Mon Sep 17 00:00:00 2001 From: NeilBarton-NOAA Date: Wed, 24 Jul 2024 19:41:17 +0000 Subject: [PATCH 05/67] removing shell check errors --- jobs/JGLOBAL_WAVE_POST_PNT | 2 +- parm/config/gefs/config.base | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/jobs/JGLOBAL_WAVE_POST_PNT b/jobs/JGLOBAL_WAVE_POST_PNT index 6b5deee0fde..6be2d88906d 100755 --- a/jobs/JGLOBAL_WAVE_POST_PNT +++ b/jobs/JGLOBAL_WAVE_POST_PNT @@ -25,7 +25,7 @@ export WAV_MOD_TAG=${RUN}wave${waveMEMB} export CFP_VERBOSE=1 -export FHMAX_WAV_PNT=$(( ${FHMAX_WAV} - ${OFFSET_START_HOUR} )) +export FHMAX_WAV_PNT=$(( FHMAX_WAV - OFFSET_START_HOUR )) export DOSPC_WAV='YES' # Spectral post export DOBLL_WAV='YES' # Bulletin post export DOBNDPNT_WAV='NO' #not boundary points diff --git a/parm/config/gefs/config.base b/parm/config/gefs/config.base index c68892c3501..070f483e50d 100644 --- a/parm/config/gefs/config.base +++ b/parm/config/gefs/config.base @@ -307,7 +307,7 @@ export DOIAU="NO" # While we are not doing IAU, we may want to warm start w/ IA # Check if cycle is cold starting if [[ "${EXP_WARM_START}" = ".false." ]]; then half_assim=$(( assim_freq / 2 )) - export OFFSET_START_HOUR=$( printf "%02d" ${half_assim} ) + export OFFSET_START_HOUR=$( printf "%02d" "${half_assim}" ) else if [[ "${DOIAU}" = "YES" ]]; then export IAU_FHROT=3 From b69d6532c829f4d02db932ddfeb1c090d873df7e Mon Sep 17 00:00:00 2001 From: NeilBarton-NOAA Date: Wed, 24 Jul 2024 21:25:09 +0000 Subject: [PATCH 06/67] fixes for wave post processing --- parm/config/gefs/config.base | 20 ++++++++++---------- scripts/exgfs_wave_post_pnt.sh | 11 ++++------- 2 files changed, 14 insertions(+), 17 deletions(-) diff --git a/parm/config/gefs/config.base b/parm/config/gefs/config.base index 070f483e50d..4d196e1de18 100644 --- a/parm/config/gefs/config.base +++ b/parm/config/gefs/config.base @@ -232,6 +232,15 @@ export FHOUT_ICE=3 # GFS cycle info export gfs_cyc=@gfs_cyc@ # 0: no GFS cycle, 1: 00Z only, 2: 00Z and 12Z only, 4: all 4 cycles. +# set variables needed for use with REPLAY ICs +export REPLAY_ICS=@REPLAY_ICS@ +if [[ "${REPLAY_ICS:-NO}" == "YES" ]]; then + export OFFSET_START_HOUR=$(( assim_freq / 2 )) +else + export OFFSET_START_HOUR=0 +fi + + # GFS output and frequency export FHMIN_GFS=0 export FHMIN=${FHMIN_GFS} @@ -241,7 +250,7 @@ export FHMAX_HF_GFS=@FHMAX_HF_GFS@ export FHOUT_HF_GFS=1 export FHOUT_OCN_GFS=6 export FHOUT_ICE_GFS=6 -export FHMIN_WAV=0 +export FHMIN_WAV=${OFFSET_START_HOUR:-0} export FHOUT_WAV=3 export FHMAX_HF_WAV=120 export FHOUT_HF_WAV=1 @@ -294,15 +303,6 @@ export NMEM_ENS=@NMEM_ENS@ export ENSMEM=${ENSMEM:-"000"} export MEMDIR="mem${ENSMEM}" -# initialize ocean ensemble members with perturbations -# if true, only occurs for members greater than zero -export REPLAY_ICS=@REPLAY_ICS@ -if [[ "${REPLAY_ICS:-NO}" == "YES" ]]; then - export OFFSET_START_HOUR=$(( assim_freq / 2 )) -else - export OFFSET_START_HOUR=0 -fi - export DOIAU="NO" # While we are not doing IAU, we may want to warm start w/ IAU in the future # Check if cycle is cold starting if [[ "${EXP_WARM_START}" = ".false." ]]; then diff --git a/scripts/exgfs_wave_post_pnt.sh b/scripts/exgfs_wave_post_pnt.sh index 67c0680c06c..6ceb8e307b2 100755 --- a/scripts/exgfs_wave_post_pnt.sh +++ b/scripts/exgfs_wave_post_pnt.sh @@ -241,7 +241,7 @@ source "${USHgfs}/preamble.sh" if [ "$DOSPC_WAV" = 'YES' ] || [ "$DOBLL_WAV" = 'YES' ] then - ymdh=$(${NDATE} -"${WAVHINDH}" "${PDY}${OFFSET_START_HOUR}") + ymdh=$(${NDATE} -"${WAVHINDH}" "${PDY}${cyc}") tstart="${ymdh:0:8} ${ymdh:8:2}0000" dtspec=3600. # default time step (not used here) sed -e "s/TIME/${tstart}/g" \ @@ -252,8 +252,8 @@ source "${USHgfs}/preamble.sh" ww3_outp_spec.inp.tmpl > ww3_outp.inp ${NLN} mod_def.$waveuoutpGRD mod_def.ww3 - sec=$(( ${cyc} + ${OFFSET_START_HOUR} )) - sec=$( printf "%02d" ${sec} ) + #export OFFSET_START_HOUR=$( printf "%02d" ${half_assim} ) + sec=$( printf "%02d" $(( cyc + OFFSET_START_HOUR )) ) HMS="${sec}0000" if [[ -f "${COMIN_WAVE_HISTORY}/${WAV_MOD_TAG}.out_pnt.${waveuoutpGRD}.${PDY}.${HMS}" ]]; then ${NLN} "${COMIN_WAVE_HISTORY}/${WAV_MOD_TAG}.out_pnt.${waveuoutpGRD}.${PDY}.${HMS}" \ @@ -362,15 +362,12 @@ source "${USHgfs}/preamble.sh" echo " Creating the wave point scripts at : $(date)" ymdh=$($NDATE "${fhr}" "${PDY}${cyc}") YMD=${ymdh:0:8} - sec=$(( ${cyc} + ${OFFSET_START_HOUR} )) - sec=$( printf "%02d" ${sec} ) - HMS="${sec}0000" + HMS="${ymdh:8:2}0000" YMDHMS=${YMD}${HMS} FH3=$(printf %03i ${fhr}) rm -f tmpcmdfile.${FH3} touch tmpcmdfile.${FH3} - rm -fr output_$YMDHMS mkdir output_$YMDHMS cd output_$YMDHMS From 4ff31fd62a8c10d81187bd01b2b3212d4213036a Mon Sep 17 00:00:00 2001 From: NeilBarton-NOAA Date: Tue, 13 Aug 2024 20:43:44 +0000 Subject: [PATCH 07/67] add BREAKPOINTS variable --- ci/cases/yamls/gefs_replay_ci.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/ci/cases/yamls/gefs_replay_ci.yaml b/ci/cases/yamls/gefs_replay_ci.yaml index ab25eaacefe..6f9037d9eef 100644 --- a/ci/cases/yamls/gefs_replay_ci.yaml +++ b/ci/cases/yamls/gefs_replay_ci.yaml @@ -2,5 +2,6 @@ defaults: !INC {{ HOMEgfs }}/parm/config/gefs/yaml/defaults.yaml base: REPLAY_ICS: "YES" + FCST_BREAKPOINTS: "" BASE_CPLIC: {{ 'TOPICDIR' | getenv }}/REPLAY_ICs/CI From 97b92ee7a8da3c7f8cc5e77768a5cb628500e048 Mon Sep 17 00:00:00 2001 From: NeilBarton-NOAA Date: Wed, 14 Aug 2024 13:45:04 +0000 Subject: [PATCH 08/67] fix shell checks --- parm/config/gefs/config.base | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/parm/config/gefs/config.base b/parm/config/gefs/config.base index c5c2b72d11c..d4996e10119 100644 --- a/parm/config/gefs/config.base +++ b/parm/config/gefs/config.base @@ -304,8 +304,7 @@ export MEMDIR="mem${ENSMEM}" export DOIAU="NO" # While we are not doing IAU, we may want to warm start w/ IAU in the future # Check if cycle is cold starting if [[ "${EXP_WARM_START}" = ".false." ]]; then - half_assim=$(( assim_freq / 2 )) - export OFFSET_START_HOUR=$( printf "%02d" "${half_assim}" ) + export OFFSET_START_HOUR=$(( assim_freq / 2 )) else if [[ "${DOIAU}" = "YES" ]]; then export IAU_FHROT=3 From 713f41d5d6d44b3d778df4080e37e20938b5deaf Mon Sep 17 00:00:00 2001 From: NeilBarton-NOAA Date: Wed, 14 Aug 2024 20:45:03 +0000 Subject: [PATCH 09/67] edit defult config.efc to be close to re-forecasting --- parm/config/gefs/config.efcs | 4 ---- 1 file changed, 4 deletions(-) diff --git a/parm/config/gefs/config.efcs b/parm/config/gefs/config.efcs index 807ed66d48b..9bd55afa54e 100644 --- a/parm/config/gefs/config.efcs +++ b/parm/config/gefs/config.efcs @@ -46,10 +46,6 @@ export SKEB_LSCALE="500.E3,1000.E3,2000.E3,2000.E3,2000.E3" export SKEBNORM=1 export SKEB_NPASS=30 export SKEB_VDOF=5 -export DO_SHUM="YES" -export SHUM=0.005 -export SHUM_TAU=21600. -export SHUM_LSCALE=500000. export DO_SPPT="YES" export SPPT="0.56,0.28,0.14,0.056,0.028" export SPPT_TAU="2.16E4,2.592E5,2.592E6,7.776E6,3.1536E7" From af31d2fcc0431fe991ef339c33faab106fb99b9a Mon Sep 17 00:00:00 2001 From: "Eric.Sinsky" Date: Thu, 15 Aug 2024 13:11:55 +0000 Subject: [PATCH 10/67] Fix bug in variable check Fix a bug in a variable check in the extractvars task where parenthesis in the variable name will prompt a false warning message. --- ush/extractvars_tools.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ush/extractvars_tools.sh b/ush/extractvars_tools.sh index daf61a3d2e4..de5a014ebe5 100644 --- a/ush/extractvars_tools.sh +++ b/ush/extractvars_tools.sh @@ -17,7 +17,7 @@ check_atmos() { done mapfile -t requestedvar_in_allgrb2file_arr < "${requestedvar_in_allgrb2file}" while read -r vari; do - if [[ ! ${requestedvar_in_allgrb2file_arr[*]} =~ ${vari} ]] ;then + if [[ ! ${requestedvar_in_allgrb2file_arr[*]} =~ "${vari}" ]] ;then echo "WARNING: PARM VARIABLE (${vari}) is not available in pgrb and pgrb2b for f${fnhl}." fi done <"${varlistl}" From cec7b81d42941747c8a85b0ec4ccaf1973e2f07b Mon Sep 17 00:00:00 2001 From: "Eric.Sinsky" Date: Thu, 15 Aug 2024 13:52:47 +0000 Subject: [PATCH 11/67] Add more settings to GEFS replay CI test --- ci/cases/yamls/gefs_replay_ci.yaml | 6 ++++++ parm/config/gefs/config.base | 6 +++--- parm/config/gefs/yaml/defaults.yaml | 3 +++ 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/ci/cases/yamls/gefs_replay_ci.yaml b/ci/cases/yamls/gefs_replay_ci.yaml index 6f9037d9eef..6c5b06700f4 100644 --- a/ci/cases/yamls/gefs_replay_ci.yaml +++ b/ci/cases/yamls/gefs_replay_ci.yaml @@ -3,5 +3,11 @@ defaults: base: REPLAY_ICS: "YES" FCST_BREAKPOINTS: "" + FHMAX_GFS: 48 + FHMAX_HF_GFS: 24 + DO_EXTRACTVARS: "YES" + FHOUT_HF_GFS: 3 + FHOUT_OCN_GFS: 24 + FHOUT_ICE_GFS: 24 BASE_CPLIC: {{ 'TOPICDIR' | getenv }}/REPLAY_ICs/CI diff --git a/parm/config/gefs/config.base b/parm/config/gefs/config.base index d4996e10119..0989a398746 100644 --- a/parm/config/gefs/config.base +++ b/parm/config/gefs/config.base @@ -245,9 +245,9 @@ export FCST_SEGMENTS="${FHMIN_GFS},${breakpnts:+${breakpnts},}${FHMAX_GFS}" export FHOUT_GFS=6 export FHMAX_HF_GFS=@FHMAX_HF_GFS@ -export FHOUT_HF_GFS=1 -export FHOUT_OCN_GFS=6 -export FHOUT_ICE_GFS=6 +export FHOUT_HF_GFS=@FHOUT_HF_GFS@ +export FHOUT_OCN_GFS=@FHOUT_OCN_GFS@ +export FHOUT_ICE_GFS=@FHOUT_ICE_GFS@ export FHMIN_WAV=${OFFSET_START_HOUR:-0} export FHOUT_WAV=3 export FHMAX_HF_WAV=120 diff --git a/parm/config/gefs/yaml/defaults.yaml b/parm/config/gefs/yaml/defaults.yaml index e4666d1aba3..e17026d3a61 100644 --- a/parm/config/gefs/yaml/defaults.yaml +++ b/parm/config/gefs/yaml/defaults.yaml @@ -11,6 +11,9 @@ base: DO_EXTRACTVARS: "NO" FHMAX_GFS: 120 FHMAX_HF_GFS: 0 + FHOUT_HF_GFS: 1 FCST_BREAKPOINTS: "48" REPLAY_ICS: "NO" USE_OCN_PERTURB_FILES: "false" + FHOUT_OCN_GFS: 6 + FHOUT_ICE_GFS: 6 From 4aaca9ac06e9072206eb98c4ad50ff8b9642957e Mon Sep 17 00:00:00 2001 From: "Eric.Sinsky" Date: Thu, 15 Aug 2024 15:24:27 +0000 Subject: [PATCH 12/67] Add atmos variables requested for reforeacst --- parm/product/gefs.0p25.fFFF.paramlist.b.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/parm/product/gefs.0p25.fFFF.paramlist.b.txt b/parm/product/gefs.0p25.fFFF.paramlist.b.txt index f7fdb73ddf3..b62d403b8e8 100644 --- a/parm/product/gefs.0p25.fFFF.paramlist.b.txt +++ b/parm/product/gefs.0p25.fFFF.paramlist.b.txt @@ -65,6 +65,7 @@ :CWORK:entire atmosphere (considered as a single layer): :DPT:30-0 mb above ground: :DUVB:surface: +:FDNSSTMP:surface: :FLDCP:surface: :FRICV:surface: :GFLUX:surface: @@ -276,6 +277,7 @@ :TCDC:475 mb: :TCDC:boundary layer cloud layer: :TCDC:convective cloud layer: +:TCDC:entire atmosphere (considered as a single layer): :TCDC:high cloud layer: :TCDC:low cloud layer: :TCDC:middle cloud layer: @@ -345,6 +347,7 @@ :TMP:PV=5e-07 (Km^2/kg/s) surface: :TMP:surface: :TMP:tropopause: +:TSNOWP:surface: :TOZNE:entire atmosphere (considered as a single layer): :TSOIL:0.1-0.4 m below ground: :TSOIL:0.4-1 m below ground: From 11e1957d2b911eebcd1989a442dab0f47e58d72e Mon Sep 17 00:00:00 2001 From: "Eric.Sinsky" Date: Thu, 15 Aug 2024 15:27:24 +0000 Subject: [PATCH 13/67] Reorganize TSNOWP in paramlist --- parm/product/gefs.0p25.fFFF.paramlist.b.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/parm/product/gefs.0p25.fFFF.paramlist.b.txt b/parm/product/gefs.0p25.fFFF.paramlist.b.txt index b62d403b8e8..bae2778ca11 100644 --- a/parm/product/gefs.0p25.fFFF.paramlist.b.txt +++ b/parm/product/gefs.0p25.fFFF.paramlist.b.txt @@ -347,8 +347,8 @@ :TMP:PV=5e-07 (Km^2/kg/s) surface: :TMP:surface: :TMP:tropopause: -:TSNOWP:surface: :TOZNE:entire atmosphere (considered as a single layer): +:TSNOWP:surface: :TSOIL:0.1-0.4 m below ground: :TSOIL:0.4-1 m below ground: :TSOIL:1-2 m below ground: From a005e5fe4cac42e3c6a7af2fa1d74366bab6da08 Mon Sep 17 00:00:00 2001 From: "Eric.Sinsky" Date: Thu, 15 Aug 2024 15:58:40 +0000 Subject: [PATCH 14/67] Extract ice variables from history file instead Ice variables are extracted from the history files instead of the product files. This is necessary because there are certain ice variables that are needed that are only available in the history files and not the product files. --- ush/ocnice_extractvars.sh | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/ush/ocnice_extractvars.sh b/ush/ocnice_extractvars.sh index 51276172b91..789625649b6 100755 --- a/ush/ocnice_extractvars.sh +++ b/ush/ocnice_extractvars.sh @@ -25,11 +25,19 @@ for (( nh = FHMIN_GFS; nh <= FHMAX_GFS; nh = nh + fhout_ocnice )); do fnh=$(printf "%3.3d" "${nh}") if [[ ${component_name} == "ocn" ]]; then - infile=${COMIN_OCEAN_NETCDF}/${datares}/${RUN}.ocean.t${cyc}z.${datares}.f${fnh}.nc + if [[ "${datares}" == "native" ]]; then + infile=${COMIN_OCN_HISTORY}/${RUN}.ocean.t${cyc}z.${fhout_ocnice}hr_avg.f${fnh}.nc + else + infile=${COMIN_OCEAN_NETCDF}/${datares}/${RUN}.ocean.t${cyc}z.${datares}.f${fnh}.nc + fi # For ocean products, add an argument to extract a subset of levels otherargs=(-d "${depthvar_name},""${zmin},""${zmax}") elif [[ ${component_name} == "ice" ]]; then - infile=${COMIN_ICE_NETCDF}/${datares}/${RUN}.ice.t${cyc}z.${datares}.f${fnh}.nc + if [[ "${datares}" == "native" ]]; then + infile=${COMIN_ICE_HISTORY}/${RUN}.ice.t${cyc}z.${fhout_ocnice}hr_avg.f${fnh}.nc + else + infile=${COMIN_ICE_NETCDF}/${datares}/${RUN}.ice.t${cyc}z.${datares}.f${fnh}.nc + fi otherargs=() fi outfile=${subdata}/${RUN}.${component_name}.t${cyc}z.${datares}.f${fnh}.nc From 2dd9a7e8d999c60ac42c8983647bcfc75778e1cb Mon Sep 17 00:00:00 2001 From: "Eric.Sinsky" Date: Thu, 15 Aug 2024 16:08:47 +0000 Subject: [PATCH 15/67] Fix typo --- ush/ocnice_extractvars.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ush/ocnice_extractvars.sh b/ush/ocnice_extractvars.sh index 789625649b6..43e69ebe9ba 100755 --- a/ush/ocnice_extractvars.sh +++ b/ush/ocnice_extractvars.sh @@ -26,7 +26,7 @@ for (( nh = FHMIN_GFS; nh <= FHMAX_GFS; nh = nh + fhout_ocnice )); do if [[ ${component_name} == "ocn" ]]; then if [[ "${datares}" == "native" ]]; then - infile=${COMIN_OCN_HISTORY}/${RUN}.ocean.t${cyc}z.${fhout_ocnice}hr_avg.f${fnh}.nc + infile=${COMIN_OCEAN_HISTORY}/${RUN}.ocean.t${cyc}z.${fhout_ocnice}hr_avg.f${fnh}.nc else infile=${COMIN_OCEAN_NETCDF}/${datares}/${RUN}.ocean.t${cyc}z.${datares}.f${fnh}.nc fi From b132408d1b170cf4d5d9a00ffe2e6c122d2f2041 Mon Sep 17 00:00:00 2001 From: "Eric.Sinsky" Date: Thu, 15 Aug 2024 16:22:00 +0000 Subject: [PATCH 16/67] Update TCDC variable to correct name --- parm/product/gefs.0p25.fFFF.paramlist.a.txt | 2 +- parm/product/gefs.0p25.fFFF.paramlist.b.txt | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/parm/product/gefs.0p25.fFFF.paramlist.a.txt b/parm/product/gefs.0p25.fFFF.paramlist.a.txt index a4a3ace3855..a9775aca6b6 100644 --- a/parm/product/gefs.0p25.fFFF.paramlist.a.txt +++ b/parm/product/gefs.0p25.fFFF.paramlist.a.txt @@ -18,7 +18,7 @@ :CIN:180-0 mb above ground: :CIN:surface: :HLCY:3000-0 m above ground: -:TCDC:entire atmosphere: +:TCDC:entire atmosphere (considered as a single layer): :WEASD:surface: :SNOD:surface: :ULWRF:top of atmosphere: diff --git a/parm/product/gefs.0p25.fFFF.paramlist.b.txt b/parm/product/gefs.0p25.fFFF.paramlist.b.txt index bae2778ca11..2da9187fabd 100644 --- a/parm/product/gefs.0p25.fFFF.paramlist.b.txt +++ b/parm/product/gefs.0p25.fFFF.paramlist.b.txt @@ -277,7 +277,6 @@ :TCDC:475 mb: :TCDC:boundary layer cloud layer: :TCDC:convective cloud layer: -:TCDC:entire atmosphere (considered as a single layer): :TCDC:high cloud layer: :TCDC:low cloud layer: :TCDC:middle cloud layer: From c6b7eaa110a9e8f9cefa6420f68d66036337ea83 Mon Sep 17 00:00:00 2001 From: NeilBarton-NOAA Date: Wed, 21 Aug 2024 13:49:11 +0000 Subject: [PATCH 17/67] edits to stage_ic for replay perturbations --- ...re_perturbation.yaml.j2 => atmosphere_replay.yaml.j2} | 5 ++++- parm/stage/master_gefs.yaml.j2 | 2 +- parm/stage/ocean_replay.yaml.j2 | 9 ++++++--- 3 files changed, 11 insertions(+), 5 deletions(-) rename parm/stage/{atmosphere_perturbation.yaml.j2 => atmosphere_replay.yaml.j2} (54%) diff --git a/parm/stage/atmosphere_perturbation.yaml.j2 b/parm/stage/atmosphere_replay.yaml.j2 similarity index 54% rename from parm/stage/atmosphere_perturbation.yaml.j2 rename to parm/stage/atmosphere_replay.yaml.j2 index 0e097b71dce..0be77119a1e 100644 --- a/parm/stage/atmosphere_perturbation.yaml.j2 +++ b/parm/stage/atmosphere_replay.yaml.j2 @@ -2,12 +2,15 @@ atmosphere_perturbation: mkdir: {% for mem in range(first_mem, last_mem + 1) %} {% set imem = mem - first_mem %} + {% set COMOUT_ATMOS_RESTART_PREV_MEM = COMOUT_ATMOS_RESTART_PREV_MEM_list[imem] %} + - "{{ COMOUT_ATMOS_RESTART_PREV_MEM }}" {% set COMOUT_ATMOS_ANALYSIS_MEM = COMOUT_ATMOS_ANALYSIS_MEM_list[imem] %} - "{{ COMOUT_ATMOS_ANALYSIS_MEM }}" {% endfor %} # mem loop copy: {% for mem in range(first_mem, last_mem + 1) %} {% set imem = mem - first_mem %} + {% set COMOUT_ATMOS_RESTART_PREV_MEM = COMOUT_ATMOS_RESTART_PREV_MEM_list[imem] %} {% set COMOUT_ATMOS_ANALYSIS_MEM = COMOUT_ATMOS_ANALYSIS_MEM_list[imem] %} - - ["{{ ICSDIR }}/{{ COMOUT_ATMOS_ANALYSIS_MEM | relpath(ROTDIR) }}/{{ m_prefix }}.fv3_perturbation.nc", "{{ COMOUT_ATMOS_ANALYSIS_MEM }}/{{ RUN }}.t{{ current_cycle_HH }}z.atminc.nc"] + - ["{{ ICSDIR }}/{{ COMOUT_ATMOS_RESTART_PREV_MEM | relpath(ROTDIR) }}/{{ m_prefix }}.fv3_perturbation.nc", "{{ COMOUT_ATMOS_ANALYSIS_MEM }}/{{ RUN }}.t{{ current_cycle_HH }}z.atminc.nc"] {% endfor %} # mem loop diff --git a/parm/stage/master_gefs.yaml.j2 b/parm/stage/master_gefs.yaml.j2 index bdd4c8de5f4..4e26c35310d 100644 --- a/parm/stage/master_gefs.yaml.j2 +++ b/parm/stage/master_gefs.yaml.j2 @@ -116,7 +116,7 @@ {% if REPLAY_ICS %} {% filter indent(width=4) %} -{% include "atmosphere_perturbation.yaml.j2" %} +{% include "atmosphere_replay.yaml.j2" %} {% endfilter %} {% endif %} diff --git a/parm/stage/ocean_replay.yaml.j2 b/parm/stage/ocean_replay.yaml.j2 index 8b52108becd..2c534ddd47f 100644 --- a/parm/stage/ocean_replay.yaml.j2 +++ b/parm/stage/ocean_replay.yaml.j2 @@ -1,13 +1,16 @@ ocean_replay: mkdir: - {% for mem in range(first_mem, last_mem + 1) %} + {% for mem in range(first_mem + 1, last_mem + 1) %} {% set imem = mem - first_mem %} + {% set COMOUT_OCEAN_RESTART_PREV_MEM = COMOUT_OCEAN_RESTART_PREV_MEM_list[imem] %} + - "{{ COMOUT_OCEAN_RESTART_PREV_MEM }}" {% set COMOUT_OCEAN_ANALYSIS_MEM = COMOUT_OCEAN_ANALYSIS_MEM_list[imem] %} - "{{ COMOUT_OCEAN_ANALYSIS_MEM }}" {% endfor %} # mem loop copy: - {% for mem in range(first_mem, last_mem + 1) %} + {% for mem in range(first_mem + 1, last_mem + 1) %} {% set imem = mem - first_mem %} {% set COMOUT_OCEAN_ANALYSIS_MEM = COMOUT_OCEAN_ANALYSIS_MEM_list[imem] %} - - ["{{ ICSDIR }}/{{ COMOUT_OCEAN_ANALYSIS_MEM | relpath(ROTDIR) }}/{{ m_prefix }}.mom6_perturbation.nc", "{{ COMOUT_OCEAN_ANALYSIS_MEM }}/mom6_increment.nc"] + {% set COMOUT_OCEAN_RESTART_PREV_MEM = COMOUT_OCEAN_RESTART_PREV_MEM_list[imem] %} + - ["{{ ICSDIR }}/{{ COMOUT_OCEAN_RESTART_PREV_MEM | relpath(ROTDIR) }}/{{ m_prefix }}.mom6_perturbation.nc", "{{ COMOUT_OCEAN_ANALYSIS_MEM }}/mom6_increment.nc"] {% endfor %} # mem loop From 51aa2dd70cc469e35e28a1987809f1bb99421fc7 Mon Sep 17 00:00:00 2001 From: NeilBarton-NOAA Date: Wed, 21 Aug 2024 15:47:55 +0000 Subject: [PATCH 18/67] adding icsdir to pr CI yaml --- ci/cases/pr/C96_S2SWA_gefs_replay_ics.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/cases/pr/C96_S2SWA_gefs_replay_ics.yaml b/ci/cases/pr/C96_S2SWA_gefs_replay_ics.yaml index 2d9cc2d09c4..61a8930a8ca 100644 --- a/ci/cases/pr/C96_S2SWA_gefs_replay_ics.yaml +++ b/ci/cases/pr/C96_S2SWA_gefs_replay_ics.yaml @@ -16,4 +16,4 @@ arguments: idate: 2020110100 edate: 2020110100 yaml: {{ HOMEgfs }}/ci/cases/yamls/gefs_replay_ci.yaml - + icsdir: {{ 'TOPICDIR' | getenv }}/REPLAY_ICs/CI From 4985361113b4f7e3134a791ff8fdb5a7969644d7 Mon Sep 17 00:00:00 2001 From: "Eric.Sinsky" Date: Tue, 27 Aug 2024 15:56:38 +0000 Subject: [PATCH 19/67] Fix ensstat failures --- parm/config/gefs/config.atmos_products | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/parm/config/gefs/config.atmos_products b/parm/config/gefs/config.atmos_products index 4a0fb8b49f3..4b93d0b1173 100644 --- a/parm/config/gefs/config.atmos_products +++ b/parm/config/gefs/config.atmos_products @@ -16,7 +16,13 @@ export INTERP_ATMOS_MASTERSH="${USHgfs}/interp_atmos_master.sh" export INTERP_ATMOS_SFLUXSH="${USHgfs}/interp_atmos_sflux.sh" export downset=2 -export FHOUT_PGBS=${FHOUT_GFS:-3} # Output frequency of supplemental gfs pgb file at 1.0 and 0.5 deg + +if [[ "${FHMAX_HF_GFS:-0}" == "0" ]]; then + export FHOUT_PGBS=${FHOUT_GFS:-3} # Output frequency of supplemental gfs pgb file at 1.0 and 0.5 deg +else + export FHOUT_PGBS=${FHOUT_HF_GFS:-1} +fi + export FLXGF="NO" # Create interpolated sflux.1p00 file # paramlist files for the different forecast hours and downsets From 8eaef27b268cda5895724dae08888b7dd0bf0ba2 Mon Sep 17 00:00:00 2001 From: NeilBarton-NOAA Date: Wed, 28 Aug 2024 14:30:12 +0000 Subject: [PATCH 20/67] updates for products --- ci/cases/yamls/gefs_replay_ci.yaml | 3 +-- parm/config/gefs/config.atmos_products | 7 ++++++- parm/config/gefs/config.extractvars | 2 +- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/ci/cases/yamls/gefs_replay_ci.yaml b/ci/cases/yamls/gefs_replay_ci.yaml index 6c5b06700f4..c95d28e692f 100644 --- a/ci/cases/yamls/gefs_replay_ci.yaml +++ b/ci/cases/yamls/gefs_replay_ci.yaml @@ -9,5 +9,4 @@ base: FHOUT_HF_GFS: 3 FHOUT_OCN_GFS: 24 FHOUT_ICE_GFS: 24 - BASE_CPLIC: {{ 'TOPICDIR' | getenv }}/REPLAY_ICs/CI - + HOMEDIR: {{ 'RUNTESTS' | getenv }}/GLOBAL diff --git a/parm/config/gefs/config.atmos_products b/parm/config/gefs/config.atmos_products index 4a0fb8b49f3..73614ba08e6 100644 --- a/parm/config/gefs/config.atmos_products +++ b/parm/config/gefs/config.atmos_products @@ -16,7 +16,12 @@ export INTERP_ATMOS_MASTERSH="${USHgfs}/interp_atmos_master.sh" export INTERP_ATMOS_SFLUXSH="${USHgfs}/interp_atmos_sflux.sh" export downset=2 -export FHOUT_PGBS=${FHOUT_GFS:-3} # Output frequency of supplemental gfs pgb file at 1.0 and 0.5 deg + +if [[ "${FHMAX_HF_GFS:-0}" == "0" ]]; then + export FHOUT_PGBS=${FHOUT_GFS:-3} # Output frequency of supplemental gfs pgb file at 1.0 and 0.5 deg +else + export FHOUT_PGBS=${FHOUT_HF_GFS:-1} +fi export FLXGF="NO" # Create interpolated sflux.1p00 file # paramlist files for the different forecast hours and downsets diff --git a/parm/config/gefs/config.extractvars b/parm/config/gefs/config.extractvars index cc93fcf5e05..7f1166a8690 100644 --- a/parm/config/gefs/config.extractvars +++ b/parm/config/gefs/config.extractvars @@ -14,7 +14,7 @@ export compress_ice=1 #1: Compress extracted ice product, 0: Do not compress ext export ocnres="1p00" # Resolution of ocean products export iceres="native" # Resolution of ice products -export wavres="0p25" # Resolution of wave products +export wavres="${waveGRD:4:1}p${waveGRD:5:2}" # Resolution of wave products export depthvar_name="z_l" # Name of depth variable in NetCDF ocean products export zmin="0." # Minimum depth to extract from NetCDF ocean products From 2e7241f20480eb54b56c448b18825f457503042a Mon Sep 17 00:00:00 2001 From: "Eric.Sinsky" Date: Wed, 28 Aug 2024 16:51:02 +0000 Subject: [PATCH 21/67] Add shellcheck disable and skip f000 for ocn/ice Shellcheck disable has been added. Also, f000 is skipped in extractvars for ocn and ice since there are no products for f000 for ocn and ice. This change will remove warning messages. --- ush/extractvars_tools.sh | 1 + ush/ocnice_extractvars.sh | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/ush/extractvars_tools.sh b/ush/extractvars_tools.sh index de5a014ebe5..004bae19e5c 100644 --- a/ush/extractvars_tools.sh +++ b/ush/extractvars_tools.sh @@ -15,6 +15,7 @@ check_atmos() { # shellcheck disable=SC2312 ${WGRIB2} "${infilep}" | grep -F -f "${varlist}" >> "${requestedvar_in_allgrb2file}" || true done + # shellcheck disable=SC2076 mapfile -t requestedvar_in_allgrb2file_arr < "${requestedvar_in_allgrb2file}" while read -r vari; do if [[ ! ${requestedvar_in_allgrb2file_arr[*]} =~ "${vari}" ]] ;then diff --git a/ush/ocnice_extractvars.sh b/ush/ocnice_extractvars.sh index 43e69ebe9ba..91024ad3aed 100755 --- a/ush/ocnice_extractvars.sh +++ b/ush/ocnice_extractvars.sh @@ -21,7 +21,7 @@ comout_rfcst_prod_ocnice=${6} [[ -d "${subdata}" ]] || mkdir -p "${subdata}" -for (( nh = FHMIN_GFS; nh <= FHMAX_GFS; nh = nh + fhout_ocnice )); do +for (( nh = FHMIN_GFS + fhout_ocnice; nh <= FHMAX_GFS; nh = nh + fhout_ocnice )); do fnh=$(printf "%3.3d" "${nh}") if [[ ${component_name} == "ocn" ]]; then From ddc544d43cfee899de04f333c168eb0b3d59872a Mon Sep 17 00:00:00 2001 From: "Eric.Sinsky" Date: Wed, 28 Aug 2024 16:54:20 +0000 Subject: [PATCH 22/67] Revert "Fix ensstat failures" This reverts commit 4985361113b4f7e3134a791ff8fdb5a7969644d7. --- parm/config/gefs/config.atmos_products | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/parm/config/gefs/config.atmos_products b/parm/config/gefs/config.atmos_products index 4b93d0b1173..4a0fb8b49f3 100644 --- a/parm/config/gefs/config.atmos_products +++ b/parm/config/gefs/config.atmos_products @@ -16,13 +16,7 @@ export INTERP_ATMOS_MASTERSH="${USHgfs}/interp_atmos_master.sh" export INTERP_ATMOS_SFLUXSH="${USHgfs}/interp_atmos_sflux.sh" export downset=2 - -if [[ "${FHMAX_HF_GFS:-0}" == "0" ]]; then - export FHOUT_PGBS=${FHOUT_GFS:-3} # Output frequency of supplemental gfs pgb file at 1.0 and 0.5 deg -else - export FHOUT_PGBS=${FHOUT_HF_GFS:-1} -fi - +export FHOUT_PGBS=${FHOUT_GFS:-3} # Output frequency of supplemental gfs pgb file at 1.0 and 0.5 deg export FLXGF="NO" # Create interpolated sflux.1p00 file # paramlist files for the different forecast hours and downsets From 9e84240cfa88a0e04eb65227da0fd4963d26ad3b Mon Sep 17 00:00:00 2001 From: "Eric.Sinsky" Date: Wed, 28 Aug 2024 17:44:57 +0000 Subject: [PATCH 23/67] Move shellcheck disable --- ush/extractvars_tools.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/ush/extractvars_tools.sh b/ush/extractvars_tools.sh index 004bae19e5c..157c371012b 100644 --- a/ush/extractvars_tools.sh +++ b/ush/extractvars_tools.sh @@ -18,6 +18,7 @@ check_atmos() { # shellcheck disable=SC2076 mapfile -t requestedvar_in_allgrb2file_arr < "${requestedvar_in_allgrb2file}" while read -r vari; do + # shellcheck disable=SC2076 if [[ ! ${requestedvar_in_allgrb2file_arr[*]} =~ "${vari}" ]] ;then echo "WARNING: PARM VARIABLE (${vari}) is not available in pgrb and pgrb2b for f${fnhl}." fi From fa25984a4e99bde874a966575dd9e3ad8d636aa6 Mon Sep 17 00:00:00 2001 From: "Eric.Sinsky" Date: Wed, 28 Aug 2024 17:48:29 +0000 Subject: [PATCH 24/67] Remove shellcheck disable --- ush/extractvars_tools.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/ush/extractvars_tools.sh b/ush/extractvars_tools.sh index 157c371012b..51c2586cb5f 100644 --- a/ush/extractvars_tools.sh +++ b/ush/extractvars_tools.sh @@ -15,7 +15,6 @@ check_atmos() { # shellcheck disable=SC2312 ${WGRIB2} "${infilep}" | grep -F -f "${varlist}" >> "${requestedvar_in_allgrb2file}" || true done - # shellcheck disable=SC2076 mapfile -t requestedvar_in_allgrb2file_arr < "${requestedvar_in_allgrb2file}" while read -r vari; do # shellcheck disable=SC2076 From 23564f1150dac53e9e023afa7f9e1544d791a9b7 Mon Sep 17 00:00:00 2001 From: "Eric.Sinsky" Date: Tue, 3 Sep 2024 19:57:15 +0000 Subject: [PATCH 25/67] Add double quotes in ocnice_extractvars Double quotes were added to address a reviewer's suggestion. --- ush/ocnice_extractvars.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/ush/ocnice_extractvars.sh b/ush/ocnice_extractvars.sh index 91024ad3aed..78c4cbd91e5 100755 --- a/ush/ocnice_extractvars.sh +++ b/ush/ocnice_extractvars.sh @@ -26,17 +26,17 @@ for (( nh = FHMIN_GFS + fhout_ocnice; nh <= FHMAX_GFS; nh = nh + fhout_ocnice )) if [[ ${component_name} == "ocn" ]]; then if [[ "${datares}" == "native" ]]; then - infile=${COMIN_OCEAN_HISTORY}/${RUN}.ocean.t${cyc}z.${fhout_ocnice}hr_avg.f${fnh}.nc + infile="${COMIN_OCEAN_HISTORY}/${RUN}.ocean.t${cyc}z.${fhout_ocnice}hr_avg.f${fnh}.nc" else - infile=${COMIN_OCEAN_NETCDF}/${datares}/${RUN}.ocean.t${cyc}z.${datares}.f${fnh}.nc + infile="${COMIN_OCEAN_NETCDF}/${datares}/${RUN}.ocean.t${cyc}z.${datares}.f${fnh}.nc" fi # For ocean products, add an argument to extract a subset of levels otherargs=(-d "${depthvar_name},""${zmin},""${zmax}") elif [[ ${component_name} == "ice" ]]; then if [[ "${datares}" == "native" ]]; then - infile=${COMIN_ICE_HISTORY}/${RUN}.ice.t${cyc}z.${fhout_ocnice}hr_avg.f${fnh}.nc + infile="${COMIN_ICE_HISTORY}/${RUN}.ice.t${cyc}z.${fhout_ocnice}hr_avg.f${fnh}.nc" else - infile=${COMIN_ICE_NETCDF}/${datares}/${RUN}.ice.t${cyc}z.${datares}.f${fnh}.nc + infile="${COMIN_ICE_NETCDF}/${datares}/${RUN}.ice.t${cyc}z.${datares}.f${fnh}.nc" fi otherargs=() fi From 154e72fdd534eeadb2c90a1038468b008177caf7 Mon Sep 17 00:00:00 2001 From: NeilBarton-NOAA Date: Thu, 12 Sep 2024 18:27:39 +0000 Subject: [PATCH 26/67] updates for new MOM6 100 input file --- ush/parsing_namelists_MOM6.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/ush/parsing_namelists_MOM6.sh b/ush/parsing_namelists_MOM6.sh index 9010851806c..03d20db0d85 100755 --- a/ush/parsing_namelists_MOM6.sh +++ b/ush/parsing_namelists_MOM6.sh @@ -41,6 +41,10 @@ cat input.nml # --------- # Prepare local variables for use in MOM_input.IN from UFSWM # The ones already defined are left commented as a reminder +# == MOM options to start from coarsed grained restarts, set to off by default +local MOM6_INIT_FROM_Z=${MOM6_INIT_FROM_Z:-True} +local MOM6_WARMSTART_FILE=${MOM6_WARMSTART_FILE:-"none"} +local MOM6_INIT_UV=${MOM6_INIT_UV:-"zero"} # == MOM_domains section == # NX_GLB # NY_GLB From 57ce47b4eccaa6d373fb28771817e2c4268a1e12 Mon Sep 17 00:00:00 2001 From: Neil Barton <103681022+NeilBarton-NOAA@users.noreply.github.com> Date: Thu, 12 Sep 2024 14:28:47 -0400 Subject: [PATCH 27/67] Update workflow/rocoto/gefs_tasks.py Co-authored-by: Eric Sinsky - NOAA <48259628+EricSinsky-NOAA@users.noreply.github.com> --- workflow/rocoto/gefs_tasks.py | 1 - 1 file changed, 1 deletion(-) diff --git a/workflow/rocoto/gefs_tasks.py b/workflow/rocoto/gefs_tasks.py index b4873a7b525..a0a580f3ae1 100644 --- a/workflow/rocoto/gefs_tasks.py +++ b/workflow/rocoto/gefs_tasks.py @@ -329,7 +329,6 @@ def wavepostsbs(self): deps.append(rocoto.add_dependency(dep_dict)) dependencies = rocoto.create_dependency(dep=deps) - wave_post_envars = self.envars.copy() postenvar_dict = {'ENSMEM': '#member#', 'MEMDIR': 'mem#member#', From b62e4cab10fc0ca4b96d95d6ead541c0d462c0a1 Mon Sep 17 00:00:00 2001 From: NeilBarton-NOAA Date: Mon, 16 Sep 2024 17:34:01 +0000 Subject: [PATCH 28/67] fix archiving until archiving PR is ready --- parm/archive/gefs_arcdir.yaml.j2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/parm/archive/gefs_arcdir.yaml.j2 b/parm/archive/gefs_arcdir.yaml.j2 index a59a0e1a8f5..7e17ede0abe 100644 --- a/parm/archive/gefs_arcdir.yaml.j2 +++ b/parm/archive/gefs_arcdir.yaml.j2 @@ -21,7 +21,7 @@ {% if RUN == "gefs" %} {% set ensstat_files = [] %} {% if path_exists(COMIN_ATMOS_ENSSTAT_1p00) %} - {% for fhr in range(FHMIN_GFS, FHMAX_GFS + FHOUT_GFS, FHOUT_GFS) %} + {% for fhr in range(6, 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]) %} From a87fa6c5087d46471c62da1f2c84937c45080c68 Mon Sep 17 00:00:00 2001 From: NeilBarton-NOAA Date: Mon, 16 Sep 2024 17:51:52 +0000 Subject: [PATCH 29/67] change back to ufs.top edits --- parm/config/gefs/config.ufs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/parm/config/gefs/config.ufs b/parm/config/gefs/config.ufs index 90b98d11ff0..bfc11e3c5a1 100644 --- a/parm/config/gefs/config.ufs +++ b/parm/config/gefs/config.ufs @@ -347,7 +347,7 @@ if [[ "${skip_mom6}" == "false" ]]; then MOM6_RESTART_SETTING='r' MOM6_RIVER_RUNOFF='False' eps_imesh="2.5e-1" - TOPOEDITS="topo_edits_011818.nc" + 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" From 3e74753de8f15269d1bcb8d2a891900bfa5c72b7 Mon Sep 17 00:00:00 2001 From: Neil Barton <103681022+NeilBarton-NOAA@users.noreply.github.com> Date: Mon, 16 Sep 2024 13:54:24 -0400 Subject: [PATCH 30/67] Update scripts/exgfs_wave_post_pnt.sh Co-authored-by: Walter Kolczynski - NOAA --- scripts/exgfs_wave_post_pnt.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/exgfs_wave_post_pnt.sh b/scripts/exgfs_wave_post_pnt.sh index 0ba38d2e0e4..06769303a10 100755 --- a/scripts/exgfs_wave_post_pnt.sh +++ b/scripts/exgfs_wave_post_pnt.sh @@ -253,8 +253,8 @@ source "${USHgfs}/preamble.sh" ${NLN} mod_def.$waveuoutpGRD mod_def.ww3 #export OFFSET_START_HOUR=$( printf "%02d" ${half_assim} ) - sec=$( printf "%02d" $(( cyc + OFFSET_START_HOUR )) ) - HMS="${sec}0000" + hh=$( printf "%02d" $(( cyc + OFFSET_START_HOUR )) ) + HMS="${hh}0000" if [[ -f "${COMIN_WAVE_HISTORY}/${WAV_MOD_TAG}.out_pnt.${waveuoutpGRD}.${PDY}.${HMS}" ]]; then ${NLN} "${COMIN_WAVE_HISTORY}/${WAV_MOD_TAG}.out_pnt.${waveuoutpGRD}.${PDY}.${HMS}" \ "./out_pnt.${waveuoutpGRD}" From 830d9045483c701ba04b599c0c94f6d21d053d97 Mon Sep 17 00:00:00 2001 From: Neil Barton <103681022+NeilBarton-NOAA@users.noreply.github.com> Date: Tue, 17 Sep 2024 14:23:35 -0400 Subject: [PATCH 31/67] Update parm/archive/gefs_arcdir.yaml.j2 Co-authored-by: Eric Sinsky - NOAA <48259628+EricSinsky-NOAA@users.noreply.github.com> --- parm/archive/gefs_arcdir.yaml.j2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/parm/archive/gefs_arcdir.yaml.j2 b/parm/archive/gefs_arcdir.yaml.j2 index 7e17ede0abe..5f937b93ca9 100644 --- a/parm/archive/gefs_arcdir.yaml.j2 +++ b/parm/archive/gefs_arcdir.yaml.j2 @@ -21,7 +21,7 @@ {% if RUN == "gefs" %} {% set ensstat_files = [] %} {% if path_exists(COMIN_ATMOS_ENSSTAT_1p00) %} - {% for fhr in range(6, FHMAX_GFS + FHOUT_GFS, FHOUT_GFS) %} + {% 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]) %} From c93827531149520cf37e0aa5910a406d36e3a839 Mon Sep 17 00:00:00 2001 From: NeilBarton-NOAA Date: Tue, 17 Sep 2024 20:35:01 +0000 Subject: [PATCH 32/67] add comments for coarse grained restarts --- ush/parsing_namelists_MOM6.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ush/parsing_namelists_MOM6.sh b/ush/parsing_namelists_MOM6.sh index 03d20db0d85..3ac2cb465e6 100755 --- a/ush/parsing_namelists_MOM6.sh +++ b/ush/parsing_namelists_MOM6.sh @@ -42,6 +42,8 @@ cat input.nml # Prepare local variables for use in MOM_input.IN from UFSWM # The ones already defined are left commented as a reminder # == MOM options to start from coarsed grained restarts, set to off by default +# options only available for 05 and 1 degree grids +# as restarts are coarsed grained/interpolated from the 0.25 degrees grid local MOM6_INIT_FROM_Z=${MOM6_INIT_FROM_Z:-True} local MOM6_WARMSTART_FILE=${MOM6_WARMSTART_FILE:-"none"} local MOM6_INIT_UV=${MOM6_INIT_UV:-"zero"} From c8420907f8164268d720f203fe097fc0c3e2ed17 Mon Sep 17 00:00:00 2001 From: "Eric.Sinsky" Date: Thu, 19 Sep 2024 12:33:00 +0000 Subject: [PATCH 33/67] Make archive job work with replay run --- parm/archive/gefs_arcdir.yaml.j2 | 2 +- scripts/exglobal_archive.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/parm/archive/gefs_arcdir.yaml.j2 b/parm/archive/gefs_arcdir.yaml.j2 index 5f937b93ca9..7e17ede0abe 100644 --- a/parm/archive/gefs_arcdir.yaml.j2 +++ b/parm/archive/gefs_arcdir.yaml.j2 @@ -21,7 +21,7 @@ {% 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) %} + {% for fhr in range(6, 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]) %} diff --git a/scripts/exglobal_archive.py b/scripts/exglobal_archive.py index 793fa1c1ac4..c480a057351 100755 --- a/scripts/exglobal_archive.py +++ b/scripts/exglobal_archive.py @@ -31,7 +31,7 @@ def main(): 'restart_interval_gdas', 'restart_interval_gfs', 'AERO_ANL_RUN', 'AERO_FCST_RUN', 'DOIBP_WAV', 'DO_JEDIOCNVAR', 'NMEM_ENS', 'DO_JEDIATMVAR', 'DO_VRFY_OCEANDA', 'FHMAX_FITS', - 'IAUFHRS', 'DO_FIT2OBS', 'NET'] + 'IAUFHRS', 'DO_FIT2OBS', 'NET', 'REPLAY_ICS', 'OFFSET_START_HOUR'] archive_dict = AttrDict() for key in keys: From 0802ef1113142bab41860580a29db4551f29d80b Mon Sep 17 00:00:00 2001 From: "Eric.Sinsky" Date: Thu, 19 Sep 2024 12:35:27 +0000 Subject: [PATCH 34/67] Add Foundation SST to group-a products Foundation SST has been moved to the group-a products so that it can be included in ensstat. --- parm/product/gefs.0p25.fFFF.paramlist.a.txt | 1 + parm/product/gefs.0p25.fFFF.paramlist.b.txt | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/parm/product/gefs.0p25.fFFF.paramlist.a.txt b/parm/product/gefs.0p25.fFFF.paramlist.a.txt index a9775aca6b6..303752ac17f 100644 --- a/parm/product/gefs.0p25.fFFF.paramlist.a.txt +++ b/parm/product/gefs.0p25.fFFF.paramlist.a.txt @@ -12,6 +12,7 @@ :CSNOW:surface: :CFRZR:surface: :CICEP:surface: +:FDNSSTMP:surface: :PWAT:entire atmosphere (considered as a single layer): :CAPE:180-0 mb above ground: :CAPE:surface: diff --git a/parm/product/gefs.0p25.fFFF.paramlist.b.txt b/parm/product/gefs.0p25.fFFF.paramlist.b.txt index 2da9187fabd..4e96f7dcb52 100644 --- a/parm/product/gefs.0p25.fFFF.paramlist.b.txt +++ b/parm/product/gefs.0p25.fFFF.paramlist.b.txt @@ -65,7 +65,6 @@ :CWORK:entire atmosphere (considered as a single layer): :DPT:30-0 mb above ground: :DUVB:surface: -:FDNSSTMP:surface: :FLDCP:surface: :FRICV:surface: :GFLUX:surface: From 12e940ca4ec4aa25130eb211ce3a4631f34e284d Mon Sep 17 00:00:00 2001 From: "Eric.Sinsky" Date: Thu, 19 Sep 2024 15:36:22 +0000 Subject: [PATCH 35/67] Modify gefs_arcdir yaml The gefs_arcdir yaml has been modified so that it can run with both replay and non-replay runs. --- parm/archive/gefs_arcdir.yaml.j2 | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/parm/archive/gefs_arcdir.yaml.j2 b/parm/archive/gefs_arcdir.yaml.j2 index 7e17ede0abe..f49217a68ec 100644 --- a/parm/archive/gefs_arcdir.yaml.j2 +++ b/parm/archive/gefs_arcdir.yaml.j2 @@ -17,11 +17,18 @@ {% set COMIN_ATMOS_ENSSTAT_1p00 = COM_ATMOS_GRIB_GRID_TMPL | replace_tmpl(tmpl_dict) %} +{% if RUN == "gefs" %} +{% if REPLAY_ICS == "YES" %} + {% set ofst_hr = FHOUT_GFS %} +{% else %} + {% set ofst_hr = FHMIN_GFS %} +{% 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(6, FHMAX_GFS + FHOUT_GFS, FHOUT_GFS) %} + {% 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]) %} From 66c7117ee5666360aa3a4da2ad0a11a47cc1e281 Mon Sep 17 00:00:00 2001 From: "Eric.Sinsky" Date: Thu, 19 Sep 2024 15:41:30 +0000 Subject: [PATCH 36/67] Fix gefs_arcdir yaml --- parm/archive/gefs_arcdir.yaml.j2 | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/parm/archive/gefs_arcdir.yaml.j2 b/parm/archive/gefs_arcdir.yaml.j2 index f49217a68ec..d1008bc5c46 100644 --- a/parm/archive/gefs_arcdir.yaml.j2 +++ b/parm/archive/gefs_arcdir.yaml.j2 @@ -17,8 +17,7 @@ {% set COMIN_ATMOS_ENSSTAT_1p00 = COM_ATMOS_GRIB_GRID_TMPL | replace_tmpl(tmpl_dict) %} -{% if RUN == "gefs" %} -{% if REPLAY_ICS == "YES" %} +{% if REPLAY_ICS %} {% set ofst_hr = FHOUT_GFS %} {% else %} {% set ofst_hr = FHMIN_GFS %} From 69fccdd394fceff846cfbf764a72663f846ed9ac Mon Sep 17 00:00:00 2001 From: NeilBarton-NOAA Date: Thu, 19 Sep 2024 18:12:34 +0000 Subject: [PATCH 37/67] updates for stage_ic --- parm/stage/atmosphere_ens_perturbations.yaml.j2 | 13 +++++++++++++ parm/stage/atmosphere_replay.yaml.j2 | 16 ---------------- parm/stage/master_gefs.yaml.j2 | 4 ++-- ...y.yaml.j2 => ocean_ens_perturbations.yaml.j2} | 7 ++----- 4 files changed, 17 insertions(+), 23 deletions(-) create mode 100644 parm/stage/atmosphere_ens_perturbations.yaml.j2 delete mode 100644 parm/stage/atmosphere_replay.yaml.j2 rename parm/stage/{ocean_replay.yaml.j2 => ocean_ens_perturbations.yaml.j2} (54%) diff --git a/parm/stage/atmosphere_ens_perturbations.yaml.j2 b/parm/stage/atmosphere_ens_perturbations.yaml.j2 new file mode 100644 index 00000000000..d9caf58b725 --- /dev/null +++ b/parm/stage/atmosphere_ens_perturbations.yaml.j2 @@ -0,0 +1,13 @@ +atmosphere_ens_perturbation: + mkdir: + {% for mem in range(first_mem + 1, last_mem + 1) %} + {% set imem = mem - first_mem %} + {% set COMOUT_ATMOS_ANALYSIS_MEM = COMOUT_ATMOS_ANALYSIS_MEM_list[imem] %} + - "{{ COMOUT_ATMOS_ANALYSIS_MEM }}" + {% endfor %} # mem loop + copy: + {% for mem in range(first_mem + 1, last_mem + 1) %} + {% set imem = mem - first_mem %} + {% set COMOUT_ATMOS_ANALYSIS_MEM = COMOUT_ATMOS_ANALYSIS_MEM_list[imem] %} + - ["{{ ICSDIR }}/{{ COMOUT_ATMOS_ANALYSIS_MEM | relpath(ROTDIR) }}/{{ m_prefix }}.fv3_perturbation.nc", "{{ COMOUT_ATMOS_ANALYSIS_MEM }}/{{ RUN }}.t{{ current_cycle_HH }}z.atminc.nc"] + {% endfor %} # mem loop diff --git a/parm/stage/atmosphere_replay.yaml.j2 b/parm/stage/atmosphere_replay.yaml.j2 deleted file mode 100644 index 0be77119a1e..00000000000 --- a/parm/stage/atmosphere_replay.yaml.j2 +++ /dev/null @@ -1,16 +0,0 @@ -atmosphere_perturbation: - mkdir: - {% for mem in range(first_mem, last_mem + 1) %} - {% set imem = mem - first_mem %} - {% set COMOUT_ATMOS_RESTART_PREV_MEM = COMOUT_ATMOS_RESTART_PREV_MEM_list[imem] %} - - "{{ COMOUT_ATMOS_RESTART_PREV_MEM }}" - {% set COMOUT_ATMOS_ANALYSIS_MEM = COMOUT_ATMOS_ANALYSIS_MEM_list[imem] %} - - "{{ COMOUT_ATMOS_ANALYSIS_MEM }}" - {% endfor %} # mem loop - copy: - {% for mem in range(first_mem, last_mem + 1) %} - {% set imem = mem - first_mem %} - {% set COMOUT_ATMOS_RESTART_PREV_MEM = COMOUT_ATMOS_RESTART_PREV_MEM_list[imem] %} - {% set COMOUT_ATMOS_ANALYSIS_MEM = COMOUT_ATMOS_ANALYSIS_MEM_list[imem] %} - - ["{{ ICSDIR }}/{{ COMOUT_ATMOS_RESTART_PREV_MEM | relpath(ROTDIR) }}/{{ m_prefix }}.fv3_perturbation.nc", "{{ COMOUT_ATMOS_ANALYSIS_MEM }}/{{ RUN }}.t{{ current_cycle_HH }}z.atminc.nc"] - {% endfor %} # mem loop diff --git a/parm/stage/master_gefs.yaml.j2 b/parm/stage/master_gefs.yaml.j2 index 4e26c35310d..2bfe3a9d586 100644 --- a/parm/stage/master_gefs.yaml.j2 +++ b/parm/stage/master_gefs.yaml.j2 @@ -116,7 +116,7 @@ {% if REPLAY_ICS %} {% filter indent(width=4) %} -{% include "atmosphere_replay.yaml.j2" %} +{% include "atmosphere_ens_perturbations.yaml.j2" %} {% endfilter %} {% endif %} @@ -137,7 +137,7 @@ {% endif %} {% if REPLAY_ICS %} {% filter indent(width=4) %} -{% include "ocean_replay.yaml.j2" %} +{% include "ocean_ens_perturbations.yaml.j2" %} {% endfilter %} {% endif %} {% if EXP_WARM_START %} diff --git a/parm/stage/ocean_replay.yaml.j2 b/parm/stage/ocean_ens_perturbations.yaml.j2 similarity index 54% rename from parm/stage/ocean_replay.yaml.j2 rename to parm/stage/ocean_ens_perturbations.yaml.j2 index 2c534ddd47f..fede3816a70 100644 --- a/parm/stage/ocean_replay.yaml.j2 +++ b/parm/stage/ocean_ens_perturbations.yaml.j2 @@ -1,9 +1,7 @@ -ocean_replay: +ocean_ens_perturbation: mkdir: {% for mem in range(first_mem + 1, last_mem + 1) %} {% set imem = mem - first_mem %} - {% set COMOUT_OCEAN_RESTART_PREV_MEM = COMOUT_OCEAN_RESTART_PREV_MEM_list[imem] %} - - "{{ COMOUT_OCEAN_RESTART_PREV_MEM }}" {% set COMOUT_OCEAN_ANALYSIS_MEM = COMOUT_OCEAN_ANALYSIS_MEM_list[imem] %} - "{{ COMOUT_OCEAN_ANALYSIS_MEM }}" {% endfor %} # mem loop @@ -11,6 +9,5 @@ ocean_replay: {% for mem in range(first_mem + 1, last_mem + 1) %} {% set imem = mem - first_mem %} {% set COMOUT_OCEAN_ANALYSIS_MEM = COMOUT_OCEAN_ANALYSIS_MEM_list[imem] %} - {% set COMOUT_OCEAN_RESTART_PREV_MEM = COMOUT_OCEAN_RESTART_PREV_MEM_list[imem] %} - - ["{{ ICSDIR }}/{{ COMOUT_OCEAN_RESTART_PREV_MEM | relpath(ROTDIR) }}/{{ m_prefix }}.mom6_perturbation.nc", "{{ COMOUT_OCEAN_ANALYSIS_MEM }}/mom6_increment.nc"] + - ["{{ ICSDIR }}/{{ COMOUT_OCEAN_ANALYSIS_MEM | relpath(ROTDIR) }}/{{ m_prefix }}.mom6_perturbation.nc", "{{ COMOUT_OCEAN_ANALYSIS_MEM }}/mom6_increment.nc"] {% endfor %} # mem loop From 788a4c48b84e082d28546f0bcec0a7c3e0fcddfd Mon Sep 17 00:00:00 2001 From: NeilBarton-NOAA Date: Fri, 20 Sep 2024 14:35:47 +0000 Subject: [PATCH 38/67] updates for SFS 1 degree stage ICs --- parm/config/gefs/config.base | 2 ++ parm/config/gefs/yaml/SFS_defaults.yaml | 26 +++++++++++++++++++++++++ parm/stage/master_gefs.yaml.j2 | 4 ++-- scripts/exglobal_stage_ic.py | 3 ++- 4 files changed, 32 insertions(+), 3 deletions(-) create mode 100644 parm/config/gefs/yaml/SFS_defaults.yaml diff --git a/parm/config/gefs/config.base b/parm/config/gefs/config.base index c3fae1358cd..fe5cac3de44 100644 --- a/parm/config/gefs/config.base +++ b/parm/config/gefs/config.base @@ -234,6 +234,8 @@ else export OFFSET_START_HOUR=0 fi +export USE_OCN_ENS_PERTURB_FILES=@USE_OCN_ENS_PERTURB_FILES@ +export USE_ATM_ENS_PERTURB_FILES=@USE_ATM_ENS_PERTURB_FILES@ # GFS output and frequency export FHMIN_GFS=0 diff --git a/parm/config/gefs/yaml/SFS_defaults.yaml b/parm/config/gefs/yaml/SFS_defaults.yaml new file mode 100644 index 00000000000..756dd5aade9 --- /dev/null +++ b/parm/config/gefs/yaml/SFS_defaults.yaml @@ -0,0 +1,26 @@ +base: + DO_JEDIATMVAR: "NO" + DO_JEDIATMENS: "NO" + DO_JEDIOCNVAR: "NO" + DO_JEDISNOWDA: "NO" + DO_MERGENSST: "NO" + DO_BUFRSND: "NO" + DO_GEMPAK: "NO" + DO_AWIPS: "NO" + KEEPDATA: "NO" + DO_EXTRACTVARS: "NO" + FHMAX_GFS: 120 + FHMAX_HF_GFS: 0 + FHOUT_HF_GFS: 1 + FHOUT_OCN_GFS: 6 + FHOUT_ICE_GFS: 6 + FCST_BREAKPOINTS: "" + REPLAY_ICS: "NO" + USE_OCN_ENS_PERTURB_FILES: "YES" + USE_ATM_ENS_PERTURB_FILES: "YES" + HPSSARCH: "NO" + LOCALARCH: "NO" +fcst: + TYPE: "hydro" + MONO: "mono" + diff --git a/parm/stage/master_gefs.yaml.j2 b/parm/stage/master_gefs.yaml.j2 index 2bfe3a9d586..d04b31fec52 100644 --- a/parm/stage/master_gefs.yaml.j2 +++ b/parm/stage/master_gefs.yaml.j2 @@ -114,7 +114,7 @@ {% endfilter %} {% endif %} -{% if REPLAY_ICS %} +{% if REPLAY_ICS or USE_ATM_ENS_PERTURB_FILES %} {% filter indent(width=4) %} {% include "atmosphere_ens_perturbations.yaml.j2" %} {% endfilter %} @@ -135,7 +135,7 @@ {% include "ocean_rerun.yaml.j2" %} {% endfilter %} {% endif %} -{% if REPLAY_ICS %} +{% if REPLAY_ICS or USE_OCN_ENS_PERTURB_FILES %} {% filter indent(width=4) %} {% include "ocean_ens_perturbations.yaml.j2" %} {% endfilter %} diff --git a/scripts/exglobal_stage_ic.py b/scripts/exglobal_stage_ic.py index d737d83b47c..b47a47c0200 100755 --- a/scripts/exglobal_stage_ic.py +++ b/scripts/exglobal_stage_ic.py @@ -22,7 +22,8 @@ def main(): 'assim_freq', 'current_cycle', 'previous_cycle', 'ROTDIR', 'ICSDIR', 'STAGE_IC_YAML_TMPL', 'DO_JEDIATMVAR', 'OCNRES', 'waveGRD', 'ntiles', 'DOIAU', 'DO_JEDIOCNVAR', - 'REPLAY_ICS', 'DO_WAVE', 'DO_OCN', 'DO_ICE', 'DO_NEST'] + 'REPLAY_ICS', 'DO_WAVE', 'DO_OCN', 'DO_ICE', 'DO_NEST', + 'USE_ATM_ENS_PERTURB_FILES','USE_OCN_ENS_PERTURB_FILES'] stage_dict = AttrDict() for key in keys: From 446e02b168f809dd690ab47db48cd1702e35c39d Mon Sep 17 00:00:00 2001 From: NeilBarton-NOAA Date: Tue, 24 Sep 2024 14:48:16 +0000 Subject: [PATCH 39/67] updates to run C96mx100 with interpolated MOM6 ICs --- parm/config/gefs/config.base | 3 --- parm/config/gefs/config.stage_ic | 4 ++++ parm/config/gefs/config.ufs | 2 +- parm/config/gefs/yaml/SFS_defaults.yaml | 12 +++++++----- parm/config/gfs/config.ocn | 9 +++++++-- 5 files changed, 19 insertions(+), 11 deletions(-) diff --git a/parm/config/gefs/config.base b/parm/config/gefs/config.base index fe5cac3de44..523b5b83050 100644 --- a/parm/config/gefs/config.base +++ b/parm/config/gefs/config.base @@ -234,9 +234,6 @@ else export OFFSET_START_HOUR=0 fi -export USE_OCN_ENS_PERTURB_FILES=@USE_OCN_ENS_PERTURB_FILES@ -export USE_ATM_ENS_PERTURB_FILES=@USE_ATM_ENS_PERTURB_FILES@ - # GFS output and frequency export FHMIN_GFS=0 export FHMAX_GFS="@FHMAX_GFS@" diff --git a/parm/config/gefs/config.stage_ic b/parm/config/gefs/config.stage_ic index cac65c74b95..92c6bb2a9b2 100644 --- a/parm/config/gefs/config.stage_ic +++ b/parm/config/gefs/config.stage_ic @@ -30,4 +30,8 @@ if [[ -z "${ICSDIR}" ]] ; then fi +#use of perturbations files for ensembles +export USE_OCN_ENS_PERTURB_FILES=@USE_OCN_ENS_PERTURB_FILES@ +export USE_ATM_ENS_PERTURB_FILES=@USE_ATM_ENS_PERTURB_FILES@ + echo "END: config.stage_ic" diff --git a/parm/config/gefs/config.ufs b/parm/config/gefs/config.ufs index bc3950490ea..12dfe2bddb8 100644 --- a/parm/config/gefs/config.ufs +++ b/parm/config/gefs/config.ufs @@ -337,7 +337,7 @@ if [[ "${skip_mom6}" == "false" ]]; then DT_THERM_MOM6='3600' FRUNOFF="runoff.daitren.clim.1deg.nc" CHLCLIM="seawifs_1998-2006_smoothed_2X.nc" - MOM6_RESTART_SETTING='r' + MOM6_RESTART_SETTING=${MOM6_RESTART_SETTING:-'r'} MOM6_RIVER_RUNOFF='False' eps_imesh="2.5e-1" TOPOEDITS="ufs.topo_edits_011818.nc" diff --git a/parm/config/gefs/yaml/SFS_defaults.yaml b/parm/config/gefs/yaml/SFS_defaults.yaml index 756dd5aade9..e8aa4f9dcbf 100644 --- a/parm/config/gefs/yaml/SFS_defaults.yaml +++ b/parm/config/gefs/yaml/SFS_defaults.yaml @@ -12,15 +12,17 @@ base: FHMAX_GFS: 120 FHMAX_HF_GFS: 0 FHOUT_HF_GFS: 1 - FHOUT_OCN_GFS: 6 - FHOUT_ICE_GFS: 6 + FHOUT_OCN_GFS: 24 + FHOUT_ICE_GFS: 24 FCST_BREAKPOINTS: "" REPLAY_ICS: "NO" - USE_OCN_ENS_PERTURB_FILES: "YES" - USE_ATM_ENS_PERTURB_FILES: "YES" HPSSARCH: "NO" LOCALARCH: "NO" fcst: TYPE: "hydro" MONO: "mono" - +stage_ic: + USE_OCN_ENS_PERTURB_FILES: "YES" + USE_ATM_ENS_PERTURB_FILES: "YES" +ocn: + MOM6_INTERP_ICS: "YES" diff --git a/parm/config/gfs/config.ocn b/parm/config/gfs/config.ocn index 317a76e58ad..f7c7559f9a5 100644 --- a/parm/config/gfs/config.ocn +++ b/parm/config/gfs/config.ocn @@ -24,6 +24,11 @@ else export ODA_INCUPD_NHOURS="3.0" fi - - +MOM6_INTERP_ICS=@MOM6_INTERP_ICS@ +if [[ "${MOM6_INTERP_ICS}" == "YES" ]]; then + export MOM6_RESTART_SETTING='n' + export MOM6_WARMSTART_FILE="MOM.res.nc" + export MOM6_INIT_FROM_Z='False' + export MOM6_INIT_UV='file' +fi echo "END: config.ocn" From ed8aa9d319fa5c004c51c89c7456435574599bc9 Mon Sep 17 00:00:00 2001 From: NeilBarton-NOAA Date: Wed, 25 Sep 2024 13:37:24 -0500 Subject: [PATCH 40/67] run SFS at 1 degree --- parm/config/gefs/config.base | 4 +--- parm/config/gefs/config.fcst | 4 +--- parm/config/gefs/yaml/SFS_defaults.yaml | 3 ++- parm/config/gefs/yaml/defaults.yaml | 5 ++++- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/parm/config/gefs/config.base b/parm/config/gefs/config.base index 523b5b83050..7e860827847 100644 --- a/parm/config/gefs/config.base +++ b/parm/config/gefs/config.base @@ -297,9 +297,7 @@ export MEMDIR="mem${ENSMEM}" export DOIAU="NO" # While we are not doing IAU, we may want to warm start w/ IAU in the future # Check if cycle is cold starting -if [[ "${EXP_WARM_START}" = ".false." ]]; then - export OFFSET_START_HOUR=$(( assim_freq / 2 )) -else +if [[ "${EXP_WARM_START}" = ".true." ]]; then if [[ "${DOIAU}" = "YES" ]]; then export IAU_FHROT=3 else diff --git a/parm/config/gefs/config.fcst b/parm/config/gefs/config.fcst index efdedb24f41..880f587a0d7 100644 --- a/parm/config/gefs/config.fcst +++ b/parm/config/gefs/config.fcst @@ -267,9 +267,7 @@ else export io_layout="1,1" fi -if (( OFFSET_START_HOUR != 0 )); then - export reforecast="YES" -fi +export reforecast=@reforecast@ # Remember config.efcs will over-ride these values for ensemble forecasts # if these variables are re-defined there. # Otherwise, the ensemble forecast will inherit from config.fcst diff --git a/parm/config/gefs/yaml/SFS_defaults.yaml b/parm/config/gefs/yaml/SFS_defaults.yaml index e8aa4f9dcbf..be08d283f61 100644 --- a/parm/config/gefs/yaml/SFS_defaults.yaml +++ b/parm/config/gefs/yaml/SFS_defaults.yaml @@ -7,7 +7,7 @@ base: DO_BUFRSND: "NO" DO_GEMPAK: "NO" DO_AWIPS: "NO" - KEEPDATA: "NO" + KEEPDATA: "YES" DO_EXTRACTVARS: "NO" FHMAX_GFS: 120 FHMAX_HF_GFS: 0 @@ -21,6 +21,7 @@ base: fcst: TYPE: "hydro" MONO: "mono" + reforecast: "YES" stage_ic: USE_OCN_ENS_PERTURB_FILES: "YES" USE_ATM_ENS_PERTURB_FILES: "YES" diff --git a/parm/config/gefs/yaml/defaults.yaml b/parm/config/gefs/yaml/defaults.yaml index e0ebfb7a7d1..9adc185ba12 100644 --- a/parm/config/gefs/yaml/defaults.yaml +++ b/parm/config/gefs/yaml/defaults.yaml @@ -18,4 +18,7 @@ base: FHOUT_OCN_GFS: 6 FHOUT_ICE_GFS: 6 HPSSARCH: "NO" - LOCALARCH: "NO" \ No newline at end of file + LOCALARCH: "NO" +fcst: + reforecast: "YES" + From c75540cd20950f9b602af96a8d8c63affca65c28 Mon Sep 17 00:00:00 2001 From: NeilBarton-NOAA Date: Wed, 25 Sep 2024 13:38:35 -0500 Subject: [PATCH 41/67] remove replay ci --- ci/cases/pr/C96_S2SWA_gefs_replay_ics.yaml | 19 ------------------- ci/cases/yamls/gefs_replay_ci.yaml | 12 ------------ 2 files changed, 31 deletions(-) delete mode 100644 ci/cases/pr/C96_S2SWA_gefs_replay_ics.yaml delete mode 100644 ci/cases/yamls/gefs_replay_ci.yaml diff --git a/ci/cases/pr/C96_S2SWA_gefs_replay_ics.yaml b/ci/cases/pr/C96_S2SWA_gefs_replay_ics.yaml deleted file mode 100644 index 61a8930a8ca..00000000000 --- a/ci/cases/pr/C96_S2SWA_gefs_replay_ics.yaml +++ /dev/null @@ -1,19 +0,0 @@ -experiment: - system: gefs - mode: forecast-only - -arguments: - pslot: {{ 'pslot' | getenv }} - app: S2SWA - resdetatmos: 96 - resdetocean: 1.0 - resensatmos: 96 - nens: 2 - gfs_cyc: 1 - start: warm - comroot: {{ 'RUNTESTS' | getenv }}/COMROOT - expdir: {{ 'RUNTESTS' | getenv }}/EXPDIR - idate: 2020110100 - edate: 2020110100 - yaml: {{ HOMEgfs }}/ci/cases/yamls/gefs_replay_ci.yaml - icsdir: {{ 'TOPICDIR' | getenv }}/REPLAY_ICs/CI diff --git a/ci/cases/yamls/gefs_replay_ci.yaml b/ci/cases/yamls/gefs_replay_ci.yaml deleted file mode 100644 index c95d28e692f..00000000000 --- a/ci/cases/yamls/gefs_replay_ci.yaml +++ /dev/null @@ -1,12 +0,0 @@ -defaults: - !INC {{ HOMEgfs }}/parm/config/gefs/yaml/defaults.yaml -base: - REPLAY_ICS: "YES" - FCST_BREAKPOINTS: "" - FHMAX_GFS: 48 - FHMAX_HF_GFS: 24 - DO_EXTRACTVARS: "YES" - FHOUT_HF_GFS: 3 - FHOUT_OCN_GFS: 24 - FHOUT_ICE_GFS: 24 - HOMEDIR: {{ 'RUNTESTS' | getenv }}/GLOBAL From 259665e5c6093069c15242f59b5454ab52f1663e Mon Sep 17 00:00:00 2001 From: NeilBarton-NOAA Date: Thu, 26 Sep 2024 16:14:15 -0500 Subject: [PATCH 42/67] updates for output --- parm/config/gefs/config.fcst | 2 ++ parm/config/gefs/yaml/SFS_defaults.yaml | 6 ++++-- parm/config/gefs/yaml/defaults.yaml | 2 ++ ush/forecast_predet.sh | 2 +- 4 files changed, 9 insertions(+), 3 deletions(-) diff --git a/parm/config/gefs/config.fcst b/parm/config/gefs/config.fcst index 880f587a0d7..27811c54e7e 100644 --- a/parm/config/gefs/config.fcst +++ b/parm/config/gefs/config.fcst @@ -43,6 +43,8 @@ export FHOUT=${FHOUT_GFS} 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 diff --git a/parm/config/gefs/yaml/SFS_defaults.yaml b/parm/config/gefs/yaml/SFS_defaults.yaml index be08d283f61..89c04385fe3 100644 --- a/parm/config/gefs/yaml/SFS_defaults.yaml +++ b/parm/config/gefs/yaml/SFS_defaults.yaml @@ -7,9 +7,9 @@ base: DO_BUFRSND: "NO" DO_GEMPAK: "NO" DO_AWIPS: "NO" - KEEPDATA: "YES" + KEEPDATA: "NO" DO_EXTRACTVARS: "NO" - FHMAX_GFS: 120 + FHMAX_GFS: 2976 FHMAX_HF_GFS: 0 FHOUT_HF_GFS: 1 FHOUT_OCN_GFS: 24 @@ -22,6 +22,8 @@ fcst: TYPE: "hydro" MONO: "mono" reforecast: "YES" + FHZER: 12 + POST_SFS: "YES" stage_ic: USE_OCN_ENS_PERTURB_FILES: "YES" USE_ATM_ENS_PERTURB_FILES: "YES" diff --git a/parm/config/gefs/yaml/defaults.yaml b/parm/config/gefs/yaml/defaults.yaml index 9adc185ba12..e49bc09387c 100644 --- a/parm/config/gefs/yaml/defaults.yaml +++ b/parm/config/gefs/yaml/defaults.yaml @@ -21,4 +21,6 @@ base: LOCALARCH: "NO" fcst: reforecast: "YES" + FHZER: 6 + POST_SFS: "NO" diff --git a/ush/forecast_predet.sh b/ush/forecast_predet.sh index 9e08a12dd8f..26b3490c563 100755 --- a/ush/forecast_predet.sh +++ b/ush/forecast_predet.sh @@ -540,7 +540,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" ]]; then # RUN = gdas | enkfgdas | gfs | enkfgfs + if [[ "${RUN}" =~ "gdas" || "${RUN}" =~ "gfs" || "${POST_SFS:-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 From 5d05216a00bebf4f6fe34d9a8582cdfefb5eed21 Mon Sep 17 00:00:00 2001 From: NeilBarton-NOAA Date: Thu, 26 Sep 2024 16:41:11 -0500 Subject: [PATCH 43/67] added atmos products to a --- parm/config/gefs/config.atmos_products | 13 +- parm/product/sfs.0p25.f000.paramlist.a.txt | 39 ++ parm/product/sfs.0p25.fFFF.paramlist.a.txt | 46 ++ parm/product/sfs.0p25.fFFF.paramlist.b.txt | 549 +++++++++++++++++++++ 4 files changed, 643 insertions(+), 4 deletions(-) create mode 100644 parm/product/sfs.0p25.f000.paramlist.a.txt create mode 100644 parm/product/sfs.0p25.fFFF.paramlist.a.txt create mode 100644 parm/product/sfs.0p25.fFFF.paramlist.b.txt diff --git a/parm/config/gefs/config.atmos_products b/parm/config/gefs/config.atmos_products index 73614ba08e6..107580c2048 100644 --- a/parm/config/gefs/config.atmos_products +++ b/parm/config/gefs/config.atmos_products @@ -25,9 +25,14 @@ fi export FLXGF="NO" # Create interpolated sflux.1p00 file # paramlist files for the different forecast hours and downsets -export paramlista="${PARMgfs}/product/gefs.0p25.fFFF.paramlist.a.txt" -export paramlista_anl="${PARMgfs}/product/gefs.0p25.anl.paramlist.a.txt" -export paramlista_f000="${PARMgfs}/product/gefs.0p25.f000.paramlist.a.txt" -export paramlistb="${PARMgfs}/product/gefs.0p25.fFFF.paramlist.b.txt" +if [[ ${SFS_POST} == "YES" ]]; then + local post_prefix='sfs' +else + local post_prefix='gefs' +fi +export paramlista="${PARMgfs}/product/${post_preix}.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" echo "END: config.atmos_products" diff --git a/parm/product/sfs.0p25.f000.paramlist.a.txt b/parm/product/sfs.0p25.f000.paramlist.a.txt new file mode 100644 index 00000000000..4fdb8f97134 --- /dev/null +++ b/parm/product/sfs.0p25.f000.paramlist.a.txt @@ -0,0 +1,39 @@ +:HGT:surface: +:PRMSL:mean sea level: +:PRES:surface: +:TMP:2 m above ground: +:TMAX:2 m above ground: +:TMIN:2 m above ground: +:RH:2 m above ground: +:DPT:2 m above ground: +:UGRD:10 m above ground: +:VGRD:10 m above ground: +:APCP:surface: +:CRAIN:surface: +:CSNOW:surface: +:CFRZR:surface: +:CICEP:surface: +:PWAT:entire atmosphere (considered as a single layer): +:CAPE:180-0 mb above ground: +:CAPE:surface: +:CIN:180-0 mb above ground: +:CIN:surface: +:CPOFP:surface: +:HLCY:3000-0 m above ground: +:TCDC:entire atmosphere: +:WEASD:surface: +:SNOD:surface: +:ULWRF:top of atmosphere: +:DSWRF:surface: +:DLWRF:surface: +:USWRF:surface: +:ULWRF:surface: +:GUST:surface: +:SHTFL:surface: +:LHTFL:surface: +:ICETK:surface: +:TSOIL:0-0.1 +:SOILW:0-0.1 +:MSLET:mean sea level: +:VIS:surface: +:HGT:cloud ceiling: diff --git a/parm/product/sfs.0p25.fFFF.paramlist.a.txt b/parm/product/sfs.0p25.fFFF.paramlist.a.txt new file mode 100644 index 00000000000..29df3e5a2d6 --- /dev/null +++ b/parm/product/sfs.0p25.fFFF.paramlist.a.txt @@ -0,0 +1,46 @@ +:PRMSL:mean sea level: +:PRES:surface: +:TMP:surface: +:TMP:2 m above ground: +:TMAX:2 m above ground: +:TMIN:2 m above ground: +:RH:2 m above ground: +:DPT:2 m above ground: +:UGRD:10 m above ground: +:UGRD:850 mb: +:UGRD:500 mb: +:UGRD:200 mb: +:VGRD:10 m above ground: +:VGRD:850 mb: +:VGRD:500 mb: +:VGRD:200 mb: +:APCP:surface: +:CRAIN:surface: +:CSNOW:surface: +:CFRZR:surface: +:CICEP:surface: +:FDNSSTMP:surface: +:PWAT:entire atmosphere (considered as a single layer): +:CAPE:180-0 mb above ground: +:CAPE:surface: +:CIN:180-0 mb above ground: +:CIN:surface: +:HLCY:3000-0 m above ground: +:TCDC:entire atmosphere (considered as a single layer): +:WEASD:surface: +:SNOD:surface: +:ULWRF:top of atmosphere: +:DSWRF:surface: +:CPOFP:surface: +:DLWRF:surface: +:USWRF:surface: +:ULWRF:surface: +:GUST:surface: +:SHTFL:surface: +:LHTFL:surface: +:ICETK:surface: +:TSOIL:0-0.1 +:SOILW:0-0.1 +:MSLET:mean sea level: +:VIS:surface: +:HGT:cloud ceiling: diff --git a/parm/product/sfs.0p25.fFFF.paramlist.b.txt b/parm/product/sfs.0p25.fFFF.paramlist.b.txt new file mode 100644 index 00000000000..3a44c0e0424 --- /dev/null +++ b/parm/product/sfs.0p25.fFFF.paramlist.b.txt @@ -0,0 +1,549 @@ +############################# sorted pgrb2a + pgrb2b 201502 +:4LFTX:surface: +:5WAVH:500 mb: +:ABSV:1000 mb: +:ABSV:100 mb: +:ABSV:10 mb: +:ABSV:150 mb: +:ABSV:200 mb: +:ABSV:20 mb: +:ABSV:250 mb: +:ABSV:300 mb: +:ABSV:30 mb: +:ABSV:350 mb: +:ABSV:400 mb: +:ABSV:450 mb: +:ABSV:500 mb: +:ABSV:50 mb: +:ABSV:550 mb: +:ABSV:600 mb: +:ABSV:650 mb: +:ABSV:700 mb: +:ABSV:70 mb: +:ABSV:750 mb: +:ABSV:800 mb: +:ABSV:850 mb: +:ABSV:900 mb: +:ABSV:925 mb: +:ABSV:950 mb: +:ABSV:975 mb: +:ACPCP:surface: +:ALBDO:surface: +:BRTMP:top of atmosphere: +:CAPE:255-0 mb above ground: +:CDUVB:surface: +:CIN:255-0 mb above ground: +:CLWMR:1000 mb: +:CLWMR:100 mb: +:CLWMR:10 mb: +:CLWMR:150 mb: +:CLWMR:200 mb: +:CLWMR:20 mb: +:CLWMR:250 mb: +:CLWMR:300 mb: +:CLWMR:30 mb: +:CLWMR:350 mb: +:CLWMR:400 mb: +:CLWMR:450 mb: +:CLWMR:500 mb: +:CLWMR:50 mb: +:CLWMR:550 mb: +:CLWMR:600 mb: +:CLWMR:650 mb: +:CLWMR:700 mb: +:CLWMR:70 mb: +:CLWMR:750 mb: +:CLWMR:800 mb: +:CLWMR:850 mb: +:CLWMR:900 mb: +:CLWMR:925 mb: +:CLWMR:950 mb: +:CLWMR:975 mb: +:CNWAT:surface: +:CPRAT:surface: +:CWAT:entire atmosphere (considered as a single layer): +:CWORK:entire atmosphere (considered as a single layer): +:DPT:30-0 mb above ground: +:DUVB:surface: +:FLDCP:surface: +:FRICV:surface: +:GFLUX:surface: +:HGT:0C isotherm: +:HGT:1000 mb: +:HGT:100 mb: +:HGT:10 mb: +:HGT:1 mb: +:HGT:150 mb: +:HGT:200 mb: +:HGT:20 mb: +:HGT:2 mb: +:HGT:250 mb: +:HGT:300 mb: +:HGT:30 mb: +:HGT:3 mb: +:HGT:350 mb: +:HGT:400 mb: +:HGT:450 mb: +:HGT:500 mb: +:HGT:50 mb: +:HGT:5 mb: +:HGT:550 mb: +:HGT:600 mb: +:HGT:650 mb: +:HGT:700 mb: +:HGT:70 mb: +:HGT:7 mb: +:HGT:750 mb: +:HGT:800 mb: +:HGT:850 mb: +:HGT:900 mb: +:HGT:925 mb: +:HGT:950 mb: +:HGT:975 mb: +:HGT:highest tropospheric freezing level: +:HGT:max wind: +:HGT:PV=-1.5e-06 (Km^2/kg/s) surface: +:HGT:PV=1.5e-06 (Km^2/kg/s) surface: +:HGT:PV=-1e-06 (Km^2/kg/s) surface: +:HGT:PV=1e-06 (Km^2/kg/s) surface: +:HGT:PV=-2e-06 (Km^2/kg/s) surface: +:HGT:PV=2e-06 (Km^2/kg/s) surface: +:HGT:PV=-5e-07 (Km^2/kg/s) surface: +:HGT:PV=5e-07 (Km^2/kg/s) surface: +:HGT:surface: +:HGT:tropopause: +:HINDEX:surface: +:HPBL:surface: +:ICAHT:max wind: +:ICAHT:tropopause: +:ICEC:surface: +:ICIP:300 mb: +:ICIP:400 mb: +:ICIP:500 mb: +:ICIP:600 mb: +:ICIP:700 mb: +:ICIP:800 mb: +:ICSEV:300 mb: +:ICSEV:400 mb: +:ICSEV:500 mb: +:ICSEV:600 mb: +:ICSEV:700 mb: +:ICSEV:800 mb: +:LAND:surface: +:LFTX:surface: +:MNTSF:320 K isentropic level: +:NCPCP:surface: +:O3MR:100 mb: +:O3MR:10 mb: +:O3MR:125 mb: +:O3MR:150 mb: +:O3MR:1 mb: +:O3MR:200 mb: +:O3MR:20 mb: +:O3MR:250 mb: +:O3MR:2 mb: +:O3MR:300 mb: +:O3MR:30 mb: +:O3MR:350 mb: +:O3MR:3 mb: +:O3MR:400 mb: +:O3MR:50 mb: +:O3MR:5 mb: +:O3MR:70 mb: +:O3MR:7 mb: +:PEVPR:surface: +:PLI:30-0 mb above ground: +:PLPL:255-0 mb above ground: +:POT:0.995 sigma level: +:PRATE:surface: +:PRES:80 m above ground: +:PRES:convective cloud bottom level: +:PRES:convective cloud top level: +:PRES:high cloud bottom level: +:PRES:high cloud top level: +:PRES:low cloud bottom level: +:PRES:low cloud top level: +:PRES:max wind: +:PRES:mean sea level: +:PRES:middle cloud bottom level: +:PRES:middle cloud top level: +:PRES:PV=-1.5e-06 (Km^2/kg/s) surface: +:PRES:PV=1.5e-06 (Km^2/kg/s) surface: +:PRES:PV=-1e-06 (Km^2/kg/s) surface: +:PRES:PV=1e-06 (Km^2/kg/s) surface: +:PRES:PV=-2e-06 (Km^2/kg/s) surface: +:PRES:PV=2e-06 (Km^2/kg/s) surface: +:PRES:PV=-5e-07 (Km^2/kg/s) surface: +:PRES:PV=5e-07 (Km^2/kg/s) surface: +:PRES:tropopause: +:PVORT:310 K isentropic level: +:PVORT:320 K isentropic level: +:PVORT:350 K isentropic level: +:PVORT:450 K isentropic level: +:PVORT:550 K isentropic level: +:PVORT:650 K isentropic level: +:PWAT:30-0 mb above ground: +:RH:0.33-1 sigma layer: +:RH:0.44-0.72 sigma layer: +:RH:0.44-1 sigma layer: +:RH:0.72-0.94 sigma layer: +:RH:0.995 sigma level: +:RH:0C isotherm: +:RH:1000 mb: +:RH:100 mb: +:RH:10 mb: +:RH:120-90 mb above ground: +:RH:150-120 mb above ground: +:RH:150 mb: +:RH:180-150 mb above ground: +:RH:200 mb: +:RH:20 mb: +:RH:250 mb: +:RH:300 mb: +:RH:30-0 mb above ground: +:RH:30 mb: +:RH:350 mb: +:RH:400 mb: +:RH:450 mb: +:RH:500 mb: +:RH:50 mb: +:RH:550 mb: +:RH:600 mb: +:RH:60-30 mb above ground: +:RH:650 mb: +:RH:700 mb: +:RH:70 mb: +:RH:750 mb: +:RH:800 mb: +:RH:850 mb: +:RH:900 mb: +:RH:90-60 mb above ground: +:RH:925 mb: +:RH:950 mb: +:RH:975 mb: +:RH:entire atmosphere (considered as a single layer): +:RH:highest tropospheric freezing level: +:SFCR:surface: +:SNOWC:surface: +:SNOHF:surface: +:SOILL:0-0.1 m below ground: +:SOILL:0.1-0.4 m below ground: +:SOILL:0.4-1 m below ground: +:SOILL:1-2 m below ground: +:SOILW:0.1-0.4 m below ground: +:SOILW:0.4-1 m below ground: +:SOILW:1-2 m below ground: +:SPFH:1000 mb: +:SPFH:100 mb: +:SPFH:10 mb: +:SPFH:1 mb: +:SPFH:120-90 mb above ground: +:SPFH:150-120 mb above ground: +:SPFH:150 mb: +:SPFH:180-150 mb above ground: +:SPFH:200 mb: +:SPFH:20 mb: +:SPFH:2 mb: +:SPFH:250 mb: +:SPFH:2 m above ground: +:SPFH:300 mb: +:SPFH:30-0 mb above ground: +:SPFH:30 mb: +:SPFH:3 mb: +:SPFH:350 mb: +:SPFH:400 mb: +:SPFH:450 mb: +:SPFH:500 mb: +:SPFH:50 mb: +:SPFH:5 mb: +:SPFH:550 mb: +:SPFH:600 mb: +:SPFH:60-30 mb above ground: +:SPFH:650 mb: +:SPFH:700 mb: +:SPFH:70 mb: +:SPFH:7 mb: +:SPFH:750 mb: +:SPFH:800 mb: +:SPFH:80 m above ground: +:SPFH:850 mb: +:SPFH:900 mb: +:SPFH:90-60 mb above ground: +:SPFH:925 mb: +:SPFH:950 mb: +:SPFH:975 mb: +:SUNSD:surface: +:TCDC:475 mb: +:TCDC:boundary layer cloud layer: +:TCDC:convective cloud layer: +:TCDC:high cloud layer: +:TCDC:low cloud layer: +:TCDC:middle cloud layer: +:TMP:0.995 sigma level: +:TMP:1000 mb: +:TMP:100 m above ground: +:TMP:100 mb: +:TMP:10 mb: +:TMP:1 mb: +:TMP:120-90 mb above ground: +:TMP:150-120 mb above ground: +:TMP:150 mb: +:TMP:180-150 mb above ground: +:TMP:1829 m above mean sea level: +:TMP:200 mb: +:TMP:20 mb: +:TMP:2 mb: +:TMP:250 mb: +:TMP:2743 m above mean sea level: +:TMP:300 mb: +:TMP:30-0 mb above ground: +:TMP:305 m above mean sea level: +:TMP:30 mb: +:TMP:3 mb: +:TMP:320 K isentropic level: +:TMP:350 mb: +:TMP:3658 m above mean sea level: +:TMP:400 mb: +:TMP:450 K isentropic level: +:TMP:450 mb: +:TMP:4572 m above mean sea level: +:TMP:457 m above mean sea level: +:TMP:500 mb: +:TMP:50 mb: +:TMP:5 mb: +:TMP:550 K isentropic level: +:TMP:550 mb: +:TMP:600 mb: +:TMP:60-30 mb above ground: +:TMP:610 m above mean sea level: +:TMP:650 K isentropic level: +:TMP:650 mb: +:TMP:700 mb: +:TMP:70 mb: +:TMP:7 mb: +:TMP:750 mb: +:TMP:800 mb: +:TMP:80 m above ground: +:TMP:850 mb: +:TMP:900 mb: +:TMP:90-60 mb above ground: +:TMP:914 m above mean sea level: +:TMP:925 mb: +:TMP:950 mb: +:TMP:975 mb: +:TMP:high cloud top level: +:TMP:low cloud top level: +:TMP:max wind: +:TMP:middle cloud top level: +:TMP:PV=-1.5e-06 (Km^2/kg/s) surface: +:TMP:PV=1.5e-06 (Km^2/kg/s) surface: +:TMP:PV=-1e-06 (Km^2/kg/s) surface: +:TMP:PV=1e-06 (Km^2/kg/s) surface: +:TMP:PV=-2e-06 (Km^2/kg/s) surface: +:TMP:PV=2e-06 (Km^2/kg/s) surface: +:TMP:PV=-5e-07 (Km^2/kg/s) surface: +:TMP:PV=5e-07 (Km^2/kg/s) surface: +:TMP:tropopause: +:TOZNE:entire atmosphere (considered as a single layer): +:TSNOWP:surface: +:TSOIL:0.1-0.4 m below ground: +:TSOIL:0.4-1 m below ground: +:TSOIL:1-2 m below ground: +:UFLX:surface: +:UGRD:0.995 sigma level: +:UGRD:1000 mb: +:UGRD:100 m above ground: +:UGRD:100 mb: +:UGRD:10 mb: +:UGRD:1 mb: +:UGRD:120-90 mb above ground: +:UGRD:150-120 mb above ground: +:UGRD:150 mb: +:UGRD:180-150 mb above ground: +:UGRD:1829 m above mean sea level: +:UGRD:20 mb: +:UGRD:2 mb: +:UGRD:250 mb: +:UGRD:2743 m above mean sea level: +:UGRD:300 mb: +:UGRD:30-0 mb above ground: +:UGRD:305 m above mean sea level: +:UGRD:30 mb: +:UGRD:3 mb: +:UGRD:320 K isentropic level: +:UGRD:350 mb: +:UGRD:3658 m above mean sea level: +:UGRD:400 mb: +:UGRD:450 K isentropic level: +:UGRD:450 mb: +:UGRD:4572 m above mean sea level: +:UGRD:457 m above mean sea level: +:UGRD:50 mb: +:UGRD:5 mb: +:UGRD:550 K isentropic level: +:UGRD:550 mb: +:UGRD:600 mb: +:UGRD:60-30 mb above ground: +:UGRD:610 m above mean sea level: +:UGRD:650 K isentropic level: +:UGRD:650 mb: +:UGRD:700 mb: +:UGRD:70 mb: +:UGRD:7 mb: +:UGRD:750 mb: +:UGRD:800 mb: +:UGRD:80 m above ground: +:UGRD:900 mb: +:UGRD:90-60 mb above ground: +:UGRD:914 m above mean sea level: +:UGRD:925 mb: +:UGRD:950 mb: +:UGRD:975 mb: +:UGRD:max wind: +:UGRD:planetary boundary layer: +:UGRD:PV=-1.5e-06 (Km^2/kg/s) surface: +:UGRD:PV=1.5e-06 (Km^2/kg/s) surface: +:UGRD:PV=-1e-06 (Km^2/kg/s) surface: +:UGRD:PV=1e-06 (Km^2/kg/s) surface: +:UGRD:PV=-2e-06 (Km^2/kg/s) surface: +:UGRD:PV=2e-06 (Km^2/kg/s) surface: +:UGRD:PV=-5e-07 (Km^2/kg/s) surface: +:UGRD:PV=5e-07 (Km^2/kg/s) surface: +:UGRD:tropopause: +:U-GWD:surface: +:USTM:6000-0 m above ground: +:USWRF:top of atmosphere: +:APTMP:2 m above ground +:VFLX:surface: +:VGRD:0.995 sigma level: +:VGRD:1000 mb: +:VGRD:100 m above ground: +:VGRD:100 mb: +:VGRD:10 mb: +:VGRD:1 mb: +:VGRD:120-90 mb above ground: +:VGRD:150-120 mb above ground: +:VGRD:150 mb: +:VGRD:180-150 mb above ground: +:VGRD:1829 m above mean sea level: +:VGRD:200 mb: +:VGRD:20 mb: +:VGRD:2 mb: +:VGRD:250 mb: +:VGRD:2743 m above mean sea level: +:VGRD:300 mb: +:VGRD:30-0 mb above ground: +:VGRD:305 m above mean sea level: +:VGRD:30 mb: +:VGRD:3 mb: +:VGRD:320 K isentropic level: +:VGRD:350 mb: +:VGRD:3658 m above mean sea level: +:VGRD:400 mb: +:VGRD:450 K isentropic level: +:VGRD:450 mb: +:VGRD:4572 m above mean sea level: +:VGRD:457 m above mean sea level: +:VGRD:50 mb: +:VGRD:5 mb: +:VGRD:550 K isentropic level: +:VGRD:550 mb: +:VGRD:600 mb: +:VGRD:60-30 mb above ground: +:VGRD:610 m above mean sea level: +:VGRD:650 K isentropic level: +:VGRD:650 mb: +:VGRD:700 mb: +:VGRD:70 mb: +:VGRD:7 mb: +:VGRD:750 mb: +:VGRD:800 mb: +:VGRD:80 m above ground: +:VGRD:900 mb: +:VGRD:90-60 mb above ground: +:VGRD:914 m above mean sea level: +:VGRD:925 mb: +:VGRD:950 mb: +:VGRD:975 mb: +:VGRD:max wind: +:VGRD:planetary boundary layer: +:VGRD:PV=-1.5e-06 (Km^2/kg/s) surface: +:VGRD:PV=1.5e-06 (Km^2/kg/s) surface: +:VGRD:PV=-1e-06 (Km^2/kg/s) surface: +:VGRD:PV=1e-06 (Km^2/kg/s) surface: +:VGRD:PV=-2e-06 (Km^2/kg/s) surface: +:VGRD:PV=2e-06 (Km^2/kg/s) surface: +:VGRD:PV=-5e-07 (Km^2/kg/s) surface: +:VGRD:PV=5e-07 (Km^2/kg/s) surface: +:VGRD:tropopause: +:V-GWD:surface: +:VRATE:planetary boundary layer: +:VSTM:6000-0 m above ground: +:VVEL:0.995 sigma level: +:VVEL:1 mb: +:VVEL:2 mb: +:VVEL:3 mb: +:VVEL:5 mb: +:VVEL:7 mb: +:VVEL:10 mb: +:VVEL:20 mb: +:VVEL:30 mb: +:VVEL:50 mb: +:VVEL:70 mb: +:VVEL:1000 mb: +:VVEL:100 mb: +:VVEL:150 mb: +:VVEL:200 mb: +:VVEL:250 mb: +:VVEL:300 mb: +:VVEL:350 mb: +:VVEL:400 mb: +:VVEL:450 mb: +:VVEL:500 mb: +:VVEL:550 mb: +:VVEL:600 mb: +:VVEL:650 mb: +:VVEL:700 mb: +:VVEL:750 mb: +:VVEL:800 mb: +:VVEL:850 mb: +:VVEL:900 mb: +:VVEL:925 mb: +:VVEL:950 mb: +:VVEL:975 mb: +:VWSH:PV=-1.5e-06 (Km^2/kg/s) surface: +:VWSH:PV=1.5e-06 (Km^2/kg/s) surface: +:VWSH:PV=-1e-06 (Km^2/kg/s) surface: +:VWSH:PV=1e-06 (Km^2/kg/s) surface: +:VWSH:PV=-2e-06 (Km^2/kg/s) surface: +:VWSH:PV=2e-06 (Km^2/kg/s) surface: +:VWSH:PV=-5e-07 (Km^2/kg/s) surface: +:VWSH:PV=5e-07 (Km^2/kg/s) surface: +:VWSH:tropopause: +:WATR:surface: +:WILT:surface: +:PRES:1 hybrid level: +:HGT:1 hybrid level: +:TMP:1 hybrid level: +:RH:1 hybrid level: +:UGRD:1 hybrid level: +:VGRD:1 hybrid level: +:PRES:2 hybrid level: +:HGT:2 hybrid level: +:TMP:2 hybrid level: +:RH:2 hybrid level: +:UGRD:2 hybrid level: +:VGRD:2 hybrid level: +:PRES:3 hybrid level: +:HGT:3 hybrid level: +:TMP:3 hybrid level: +:RH:3 hybrid level: +:UGRD:3 hybrid level: +:VGRD:3 hybrid level: +:PRES:4 hybrid level: +:HGT:4 hybrid level: +:TMP:4 hybrid level: +:RH:4 hybrid level: +:UGRD:4 hybrid level: +:VGRD:4 hybrid level: +;############################ do not leave a blank line at the end From c9ee432e2d50e729cb7fe54446b56c5912e10e08 Mon Sep 17 00:00:00 2001 From: NeilBarton-NOAA Date: Fri, 27 Sep 2024 13:10:49 +0000 Subject: [PATCH 44/67] point to CI ICs --- ci/cases/pr/C96_S2SWA_gefs_replay_ics.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/cases/pr/C96_S2SWA_gefs_replay_ics.yaml b/ci/cases/pr/C96_S2SWA_gefs_replay_ics.yaml index 61a8930a8ca..1475e81ea08 100644 --- a/ci/cases/pr/C96_S2SWA_gefs_replay_ics.yaml +++ b/ci/cases/pr/C96_S2SWA_gefs_replay_ics.yaml @@ -16,4 +16,4 @@ arguments: idate: 2020110100 edate: 2020110100 yaml: {{ HOMEgfs }}/ci/cases/yamls/gefs_replay_ci.yaml - icsdir: {{ 'TOPICDIR' | getenv }}/REPLAY_ICs/CI + icsdir: {{ 'ICSDIR_ROOT' | getenv }}/C96mx100/20240610 From 30beca0f2bb0fdaa9b1f3049a2e6ecfaced6c149 Mon Sep 17 00:00:00 2001 From: NeilBarton-NOAA Date: Fri, 4 Oct 2024 09:07:43 -0500 Subject: [PATCH 45/67] adding hydrostatic options --- parm/config/gefs/config.fcst | 15 ++++++++++++--- parm/config/gefs/config.ufs | 7 ++++--- parm/config/gefs/yaml/defaults.yaml | 2 ++ sorc/build_all.sh | 10 +++++++--- ush/forecast_predet.sh | 8 ++++++++ ush/parsing_namelists_FV3.sh | 2 +- 6 files changed, 34 insertions(+), 10 deletions(-) diff --git a/parm/config/gefs/config.fcst b/parm/config/gefs/config.fcst index 27811c54e7e..4a793e397e1 100644 --- a/parm/config/gefs/config.fcst +++ b/parm/config/gefs/config.fcst @@ -67,8 +67,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." @@ -202,6 +202,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 ;; @@ -222,7 +227,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 diff --git a/parm/config/gefs/config.ufs b/parm/config/gefs/config.ufs index 12dfe2bddb8..046a793c1e1 100644 --- a/parm/config/gefs/config.ufs +++ b/parm/config/gefs/config.ufs @@ -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 @@ -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 diff --git a/parm/config/gefs/yaml/defaults.yaml b/parm/config/gefs/yaml/defaults.yaml index e49bc09387c..c0f7e63e010 100644 --- a/parm/config/gefs/yaml/defaults.yaml +++ b/parm/config/gefs/yaml/defaults.yaml @@ -23,4 +23,6 @@ fcst: reforecast: "YES" FHZER: 6 POST_SFS: "NO" + TYPE: "nh" + MONO: "non-mono" diff --git a/sorc/build_all.sh b/sorc/build_all.sh index b2f4e6ce0e6..14e21d5c095 100755 --- a/sorc/build_all.sh +++ b/sorc/build_all.sh @@ -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: @@ -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 } @@ -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 ";; @@ -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 @@ -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}" diff --git a/ush/forecast_predet.sh b/ush/forecast_predet.sh index 3d4e3382989..6032747e397 100755 --- a/ush/forecast_predet.sh +++ b/ush/forecast_predet.sh @@ -332,9 +332,11 @@ 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."} @@ -342,9 +344,15 @@ FV3_predet(){ 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 diff --git a/ush/parsing_namelists_FV3.sh b/ush/parsing_namelists_FV3.sh index 617ecff7194..9279b284f8e 100755 --- a/ush/parsing_namelists_FV3.sh +++ b/ush/parsing_namelists_FV3.sh @@ -163,7 +163,7 @@ cat > input.nml < Date: Tue, 8 Oct 2024 08:43:29 -0500 Subject: [PATCH 46/67] SFS output and auto re-submission and yamls in new directory --- ci/cases/sfs/C96mx100_S2S.yaml | 20 +++++++++++++++++++ .../cases/yamls/sfs_defaults.yaml | 8 +++++--- parm/config/gefs/config.atmos_products | 6 +++--- parm/config/gefs/config.base | 3 ++- parm/config/gefs/config.efcs | 2 +- parm/config/gefs/config.fcst | 1 - parm/config/gefs/yaml/defaults.yaml | 1 + ush/forecast_det.sh | 4 ++++ ush/forecast_predet.sh | 2 +- 9 files changed, 37 insertions(+), 10 deletions(-) create mode 100644 ci/cases/sfs/C96mx100_S2S.yaml rename parm/config/gefs/yaml/SFS_defaults.yaml => ci/cases/yamls/sfs_defaults.yaml (83%) diff --git a/ci/cases/sfs/C96mx100_S2S.yaml b/ci/cases/sfs/C96mx100_S2S.yaml new file mode 100644 index 00000000000..50ca93b9546 --- /dev/null +++ b/ci/cases/sfs/C96mx100_S2S.yaml @@ -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 + diff --git a/parm/config/gefs/yaml/SFS_defaults.yaml b/ci/cases/yamls/sfs_defaults.yaml similarity index 83% rename from parm/config/gefs/yaml/SFS_defaults.yaml rename to ci/cases/yamls/sfs_defaults.yaml index 89c04385fe3..b1de60ce711 100644 --- a/parm/config/gefs/yaml/SFS_defaults.yaml +++ b/ci/cases/yamls/sfs_defaults.yaml @@ -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" diff --git a/parm/config/gefs/config.atmos_products b/parm/config/gefs/config.atmos_products index 107580c2048..e8aae324e19 100644 --- a/parm/config/gefs/config.atmos_products +++ b/parm/config/gefs/config.atmos_products @@ -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" diff --git a/parm/config/gefs/config.base b/parm/config/gefs/config.base index 81b7c1e2fe8..a4aa05e45a0 100644 --- a/parm/config/gefs/config.base +++ b/parm/config/gefs/config.base @@ -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 @@ -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@ diff --git a/parm/config/gefs/config.efcs b/parm/config/gefs/config.efcs index 9bd55afa54e..ab05b0ff2d6 100644 --- a/parm/config/gefs/config.efcs +++ b/parm/config/gefs/config.efcs @@ -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" diff --git a/parm/config/gefs/config.fcst b/parm/config/gefs/config.fcst index 4a793e397e1..94271225b9b 100644 --- a/parm/config/gefs/config.fcst +++ b/parm/config/gefs/config.fcst @@ -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 diff --git a/parm/config/gefs/yaml/defaults.yaml b/parm/config/gefs/yaml/defaults.yaml index c0f7e63e010..69a12d39b6c 100644 --- a/parm/config/gefs/yaml/defaults.yaml +++ b/parm/config/gefs/yaml/defaults.yaml @@ -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" diff --git a/ush/forecast_det.sh b/ush/forecast_det.sh index 603447f6121..316c8c8243c 100755 --- a/ush/forecast_det.sh +++ b/ush/forecast_det.sh @@ -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 diff --git a/ush/forecast_predet.sh b/ush/forecast_predet.sh index 6032747e397..9cd7ae9878e 100755 --- a/ush/forecast_predet.sh +++ b/ush/forecast_predet.sh @@ -548,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 From 7e09580637535e4b8ef43b6cfd516546ce8f09be Mon Sep 17 00:00:00 2001 From: NeilBarton-NOAA Date: Fri, 11 Oct 2024 10:34:36 -0500 Subject: [PATCH 47/67] updates for products --- .gitignore | 1 + parm/config/gefs/config.ufs | 2 +- parm/product/sfs.0p25.fFFF.paramlist.a.txt | 6 ++++++ sorc/link_workflow.sh | 2 +- ush/forecast_predet.sh | 7 +++++-- 5 files changed, 14 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index 8fc6d0b20bc..84780792aca 100644 --- a/.gitignore +++ b/.gitignore @@ -69,6 +69,7 @@ parm/post/params_grib2_tbl_new parm/post/post_tag_gfs128 parm/post/gfs parm/post/gefs +parm/post/sfs parm/post/ocean.csv parm/post/ice.csv parm/post/ocnicepost.nml.jinja2 diff --git a/parm/config/gefs/config.ufs b/parm/config/gefs/config.ufs index 046a793c1e1..94d292aa0ba 100644 --- a/parm/config/gefs/config.ufs +++ b/parm/config/gefs/config.ufs @@ -95,7 +95,7 @@ case "${fv3_res}" in export WRTTASK_PER_GROUP_PER_THREAD_PER_TILE_GFS=1 ;; "C96") - export DELTIM=600 + export DELTIM=900 export layout_x=2 export layout_y=2 export layout_x_gfs=4 diff --git a/parm/product/sfs.0p25.fFFF.paramlist.a.txt b/parm/product/sfs.0p25.fFFF.paramlist.a.txt index 29df3e5a2d6..7e5497f1d26 100644 --- a/parm/product/sfs.0p25.fFFF.paramlist.a.txt +++ b/parm/product/sfs.0p25.fFFF.paramlist.a.txt @@ -2,6 +2,9 @@ :PRES:surface: :TMP:surface: :TMP:2 m above ground: +:TMP:850 mb: +:TMP:500 mb: +:TMP:200 mb: :TMAX:2 m above ground: :TMIN:2 m above ground: :RH:2 m above ground: @@ -14,6 +17,9 @@ :VGRD:850 mb: :VGRD:500 mb: :VGRD:200 mb: +:HGT:850 mb: +:HGT:500 mb: +:HGT:200 mb: :APCP:surface: :CRAIN:surface: :CSNOW:surface: diff --git a/sorc/link_workflow.sh b/sorc/link_workflow.sh index 9426a09ce95..1e606d64953 100755 --- a/sorc/link_workflow.sh +++ b/sorc/link_workflow.sh @@ -166,7 +166,7 @@ for file in params_grib2_tbl_new nam_micro_lookup.dat do ${LINK_OR_COPY} "${HOMEgfs}/sorc/upp.fd/parm/${file}" . done -for dir in gfs gefs +for dir in gfs gefs sfs do ${LINK_OR_COPY} "${HOMEgfs}/sorc/upp.fd/parm/${dir}" . done diff --git a/ush/forecast_predet.sh b/ush/forecast_predet.sh index 9cd7ae9878e..7657950ae6c 100755 --- a/ush/forecast_predet.sh +++ b/ush/forecast_predet.sh @@ -548,12 +548,15 @@ 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" || "${SFS_POST:-NO}" == "YES" ]]; then # RUN = gdas | enkfgdas | gfs | enkfgfs + if [[ "${RUN}" =~ "gdas" || "${RUN}" =~ "gfs" ]]; 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 + elif [[ "${RUN}" == "gefs" && "${SFS_POST:-NO}" == "NO" ]]; then # RUN = gefs ${NCP} "${PARMgfs}/post/gefs/postxconfig-NT-gefs.txt" "${DATA}/postxconfig-NT.txt" ${NCP} "${PARMgfs}/post/gefs/postxconfig-NT-gefs-f00.txt" "${DATA}/postxconfig-NT_FH00.txt" + elif [[ "${RUN}" == "gefs" && "${SFS_POST:-NO}" == "YES" ]]; then # RUN = sfs output + ${NCP} "${PARMgfs}/post/sfs/postxconfig-NT-sfs.txt" "${DATA}/postxconfig-NT.txt" + ${NCP} "${PARMgfs}/post/sfs/postxconfig-NT-sfs-f00.txt" "${DATA}/postxconfig-NT_FH00.txt" fi fi From b019dc7d520f889396fa1977a06560ab48cc22ba Mon Sep 17 00:00:00 2001 From: NeilBarton-NOAA Date: Fri, 11 Oct 2024 15:03:52 -0500 Subject: [PATCH 48/67] edit time step for stability --- parm/config/gefs/config.ufs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/parm/config/gefs/config.ufs b/parm/config/gefs/config.ufs index 94d292aa0ba..046a793c1e1 100644 --- a/parm/config/gefs/config.ufs +++ b/parm/config/gefs/config.ufs @@ -95,7 +95,7 @@ case "${fv3_res}" in export WRTTASK_PER_GROUP_PER_THREAD_PER_TILE_GFS=1 ;; "C96") - export DELTIM=900 + export DELTIM=600 export layout_x=2 export layout_y=2 export layout_x_gfs=4 From d64111d3b10d77e5a5ae5be2b680fe718cd9f349 Mon Sep 17 00:00:00 2001 From: NeilBarton-NOAA Date: Wed, 16 Oct 2024 19:36:40 +0000 Subject: [PATCH 49/67] add changes for UPP PR --- ush/forecast_predet.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ush/forecast_predet.sh b/ush/forecast_predet.sh index ffb987af5a8..6222ac2245e 100755 --- a/ush/forecast_predet.sh +++ b/ush/forecast_predet.sh @@ -556,7 +556,7 @@ FV3_predet(){ ${NCP} "${PARMgfs}/post/gefs/postxconfig-NT-gefs-f00.txt" "${DATA}/postxconfig-NT_FH00.txt" elif [[ "${RUN}" == "gefs" && "${SFS_POST:-NO}" == "YES" ]]; then # RUN = sfs output ${NCP} "${PARMgfs}/post/sfs/postxconfig-NT-sfs.txt" "${DATA}/postxconfig-NT.txt" - ${NCP} "${PARMgfs}/post/sfs/postxconfig-NT-sfs-f00.txt" "${DATA}/postxconfig-NT_FH00.txt" + ${NCP} "${PARMgfs}/post/sfs/postxconfig-NT-sfs.txt" "${DATA}/postxconfig-NT_FH00.txt" fi fi } From 2b97e386325f72543922a4f3b62accadacb0d21a Mon Sep 17 00:00:00 2001 From: NeilBarton-NOAA Date: Wed, 16 Oct 2024 16:23:01 -0500 Subject: [PATCH 50/67] merge local changes --- ci/cases/yamls/sfs_defaults.yaml | 1 + parm/config/gefs/config.efcs | 2 +- parm/config/gefs/config.fcst | 1 + parm/config/gefs/config.resources | 2 +- parm/config/gefs/config.ufs | 1 + sorc/build_ufs.sh | 5 ++++- sorc/gdas.cd | 2 +- sorc/gfs_utils.fd | 2 +- sorc/gsi_enkf.fd | 2 +- sorc/ufs_model.fd | 2 +- sorc/ufs_utils.fd | 2 +- sorc/wxflow | 2 +- 12 files changed, 15 insertions(+), 9 deletions(-) diff --git a/ci/cases/yamls/sfs_defaults.yaml b/ci/cases/yamls/sfs_defaults.yaml index b1de60ce711..f22faaf0cab 100644 --- a/ci/cases/yamls/sfs_defaults.yaml +++ b/ci/cases/yamls/sfs_defaults.yaml @@ -26,6 +26,7 @@ fcst: MONO: "mono" reforecast: "YES" FHZER: 24 + SFS_POST: "YES" stage_ic: USE_OCN_ENS_PERTURB_FILES: "YES" USE_ATM_ENS_PERTURB_FILES: "YES" diff --git a/parm/config/gefs/config.efcs b/parm/config/gefs/config.efcs index ab05b0ff2d6..2ca4c9d5212 100644 --- a/parm/config/gefs/config.efcs +++ b/parm/config/gefs/config.efcs @@ -39,7 +39,7 @@ if [[ "${RUN}" == "enkfgfs" ]]; then fi # Stochastic physics parameters (only for ensemble forecasts) -export DO_SKEB=${DO_SKEB:-"YES"} # C96 SKEB defaults to NO/False +export DO_SKEB=${DO_SKEB:-"YES"} # SKEB turned off for C96 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" diff --git a/parm/config/gefs/config.fcst b/parm/config/gefs/config.fcst index 94271225b9b..7eb6ab23bff 100644 --- a/parm/config/gefs/config.fcst +++ b/parm/config/gefs/config.fcst @@ -44,6 +44,7 @@ export FHOUT_HF=${FHOUT_HF_GFS} export FHOUT_OCN=${FHOUT_OCN_GFS} export FHOUT_ICE=${FHOUT_ICE_GFS} export FHZER=@FHZER@ +export SFS_POST=@SFS_POST@ # Get task specific resources source "${EXPDIR}/config.resources" fcst diff --git a/parm/config/gefs/config.resources b/parm/config/gefs/config.resources index 690fdf919ab..818c9448d77 100644 --- a/parm/config/gefs/config.resources +++ b/parm/config/gefs/config.resources @@ -188,7 +188,7 @@ case ${step} in case "${CASE}" in "C48" | "C96" | "C192") - declare -x "walltime"="03:00:00" + declare -x "walltime"="08:00:00" ;; "C384" | "C768" | "C1152") declare -x "walltime"="06:00:00" diff --git a/parm/config/gefs/config.ufs b/parm/config/gefs/config.ufs index 046a793c1e1..63b2f96e12f 100644 --- a/parm/config/gefs/config.ufs +++ b/parm/config/gefs/config.ufs @@ -117,6 +117,7 @@ case "${fv3_res}" in export WRTTASK_PER_GROUP_PER_THREAD_PER_TILE=1 export WRITE_GROUP_GFS=1 export WRTTASK_PER_GROUP_PER_THREAD_PER_TILE_GFS=1 + export DO_SKEB="NO" ;; "C192") export DELTIM=600 diff --git a/sorc/build_ufs.sh b/sorc/build_ufs.sh index 44c8c7a2ad5..6432962a5aa 100755 --- a/sorc/build_ufs.sh +++ b/sorc/build_ufs.sh @@ -7,8 +7,9 @@ cwd=$(pwd) APP="S2SWA" CCPP_SUITES="FV3_GFS_v17_p8_ugwpv1,FV3_GFS_v17_coupled_p8_ugwpv1,FV3_global_nest_v1" # TODO: does the g-w need to build with all these CCPP_SUITES? PDLIB="ON" +HYDRO="OFF" -while getopts ":da:fj:vw" option; do +while getopts ":da:fj:vwy" option; do case "${option}" in d) BUILD_TYPE="Debug";; a) APP="${OPTARG}";; @@ -16,6 +17,7 @@ while getopts ":da:fj:vw" option; do j) BUILD_JOBS="${OPTARG}";; v) export BUILD_VERBOSE="YES";; w) PDLIB="OFF";; + y) HYDRO="ON";; :) echo "[${BASH_SOURCE[0]}]: ${option} requires an argument" ;; @@ -32,6 +34,7 @@ source "./tests/module-setup.sh" MAKE_OPT="-DAPP=${APP} -D32BIT=ON -DCCPP_SUITES=${CCPP_SUITES}" [[ ${PDLIB:-"OFF"} = "ON" ]] && MAKE_OPT+=" -DPDLIB=ON" +[[ ${HYDRO:-"OFF"} = "ON" ]] && MAKE_OPT+=" -DHYDRO=ON" if [[ ${BUILD_TYPE:-"Release"} = "DEBUG" ]] ; then MAKE_OPT+=" -DDEBUG=ON" elif [[ "${FASTER:-OFF}" == ON ]] ; then diff --git a/sorc/gdas.cd b/sorc/gdas.cd index 55e895f1dcf..f49e2e6bb66 160000 --- a/sorc/gdas.cd +++ b/sorc/gdas.cd @@ -1 +1 @@ -Subproject commit 55e895f1dcf4e6be36eb0eb4c8a7995d429157e0 +Subproject commit f49e2e6bb66da7c6b5a41c29e873802d6ed5b602 diff --git a/sorc/gfs_utils.fd b/sorc/gfs_utils.fd index a00cc0949e2..b9b965317e7 160000 --- a/sorc/gfs_utils.fd +++ b/sorc/gfs_utils.fd @@ -1 +1 @@ -Subproject commit a00cc0949e2f901e73b58d54834517743916c69a +Subproject commit b9b965317e74243d8404a609b5799186850ef03c diff --git a/sorc/gsi_enkf.fd b/sorc/gsi_enkf.fd index 9f44c8798c2..665f9b41d17 160000 --- a/sorc/gsi_enkf.fd +++ b/sorc/gsi_enkf.fd @@ -1 +1 @@ -Subproject commit 9f44c8798c2087aca06df8f629699632e57df431 +Subproject commit 665f9b41d177a507be0575b4a9d0eee945ddbb05 diff --git a/sorc/ufs_model.fd b/sorc/ufs_model.fd index 6a4e09e9477..bad50ef5023 160000 --- a/sorc/ufs_model.fd +++ b/sorc/ufs_model.fd @@ -1 +1 @@ -Subproject commit 6a4e09e94773ffa39ce7ab6a54a885efada91f21 +Subproject commit bad50ef5023860c992b75cb72722cba9bb428ceb diff --git a/sorc/ufs_utils.fd b/sorc/ufs_utils.fd index 06eec5b6f63..0c2c4b3d27c 160000 --- a/sorc/ufs_utils.fd +++ b/sorc/ufs_utils.fd @@ -1 +1 @@ -Subproject commit 06eec5b6f636123835e2dfd9fc5229980c006735 +Subproject commit 0c2c4b3d27cab6b4d617f0cc0171d3cb4c6b6758 diff --git a/sorc/wxflow b/sorc/wxflow index e1ef697430c..799d55b30ec 160000 --- a/sorc/wxflow +++ b/sorc/wxflow @@ -1 +1 @@ -Subproject commit e1ef697430c09d2b1a0560f21f11c7a32ed5f3e2 +Subproject commit 799d55b30ec75f6d8a3c39ec8281dc6b28069a07 From 035cf24877fe7e7da74116a5545ba52ec2841078 Mon Sep 17 00:00:00 2001 From: NeilBarton-NOAA Date: Thu, 17 Oct 2024 10:26:05 -0500 Subject: [PATCH 51/67] updates for ci tests --- ci/cases/yamls/gefs_defaults_ci.yaml | 8 ++++++++ ci/cases/yamls/gefs_replay_ci.yaml | 1 + ci/cases/yamls/sfs_defaults.yaml | 1 - parm/config/gefs/config.base | 2 +- parm/config/gefs/config.fcst | 1 - parm/config/gefs/yaml/defaults.yaml | 8 +++++++- 6 files changed, 17 insertions(+), 4 deletions(-) diff --git a/ci/cases/yamls/gefs_defaults_ci.yaml b/ci/cases/yamls/gefs_defaults_ci.yaml index 05a97edd900..a06aed638aa 100644 --- a/ci/cases/yamls/gefs_defaults_ci.yaml +++ b/ci/cases/yamls/gefs_defaults_ci.yaml @@ -2,3 +2,11 @@ defaults: !INC {{ HOMEgfs }}/parm/config/gefs/yaml/defaults.yaml base: ACCOUNT: {{ 'HPC_ACCOUNT' | getenv }} + SFS_POST: "NO" + FHOUT_GFS: 6 +stage_ic: + USE_OCN_ENS_PERTURB_FILES: "NO" + USE_ATM_ENS_PERTURB_FILES: "NO" +ocn: + MOM6_INTERP_ICS: "NO" + diff --git a/ci/cases/yamls/gefs_replay_ci.yaml b/ci/cases/yamls/gefs_replay_ci.yaml index dfbd9ae065e..bdc85da47fd 100644 --- a/ci/cases/yamls/gefs_replay_ci.yaml +++ b/ci/cases/yamls/gefs_replay_ci.yaml @@ -11,4 +11,5 @@ base: FHOUT_OCN_GFS: 24 FHOUT_ICE_GFS: 24 HOMEDIR: {{ 'RUNTESTS' | getenv }}/GLOBAL + SFS_POST: "NO" diff --git a/ci/cases/yamls/sfs_defaults.yaml b/ci/cases/yamls/sfs_defaults.yaml index f22faaf0cab..b1de60ce711 100644 --- a/ci/cases/yamls/sfs_defaults.yaml +++ b/ci/cases/yamls/sfs_defaults.yaml @@ -26,7 +26,6 @@ fcst: MONO: "mono" reforecast: "YES" FHZER: 24 - SFS_POST: "YES" stage_ic: USE_OCN_ENS_PERTURB_FILES: "YES" USE_ATM_ENS_PERTURB_FILES: "YES" diff --git a/parm/config/gefs/config.base b/parm/config/gefs/config.base index bd20a28ca4b..e70f0b79499 100644 --- a/parm/config/gefs/config.base +++ b/parm/config/gefs/config.base @@ -64,7 +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 +export SFS_POST="@SFS_POST@" # TODO, place holder until RUN=SFS is developed #################################################### # DO NOT ADD MACHINE DEPENDENT STUFF BELOW THIS LINE diff --git a/parm/config/gefs/config.fcst b/parm/config/gefs/config.fcst index 7eb6ab23bff..94271225b9b 100644 --- a/parm/config/gefs/config.fcst +++ b/parm/config/gefs/config.fcst @@ -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 SFS_POST=@SFS_POST@ # Get task specific resources source "${EXPDIR}/config.resources" fcst diff --git a/parm/config/gefs/yaml/defaults.yaml b/parm/config/gefs/yaml/defaults.yaml index c0f7e63e010..339f88b909b 100644 --- a/parm/config/gefs/yaml/defaults.yaml +++ b/parm/config/gefs/yaml/defaults.yaml @@ -15,14 +15,20 @@ 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" LOCALARCH: "NO" + SFS_POST: "NO" fcst: reforecast: "YES" FHZER: 6 - POST_SFS: "NO" TYPE: "nh" MONO: "non-mono" +stage_ic: + USE_OCN_ENS_PERTURB_FILES: "YES" + USE_ATM_ENS_PERTURB_FILES: "YES" +ocn: + MOM6_INTERP_ICS: "NO" From 8acc70a7f03d96b89b568d96af4d1e39a34942a3 Mon Sep 17 00:00:00 2001 From: NeilBarton-NOAA Date: Thu, 17 Oct 2024 13:17:37 -0500 Subject: [PATCH 52/67] add defaults for gfs runs --- parm/config/gfs/config.stage_ic | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/parm/config/gfs/config.stage_ic b/parm/config/gfs/config.stage_ic index 7aa0c25f321..d0113fac634 100644 --- a/parm/config/gfs/config.stage_ic +++ b/parm/config/gfs/config.stage_ic @@ -29,4 +29,8 @@ if [[ -z "${ICSDIR}" ]] ; then fi +#use of perturbations files for ensembles +export USE_OCN_ENS_PERTURB_FILES="NO" +export USE_ATM_ENS_PERTURB_FILES="NO" + echo "END: config.stage_ic" From 5be5a7585bb870356b3eea70efed16fa6870dd84 Mon Sep 17 00:00:00 2001 From: NeilBarton-NOAA Date: Thu, 17 Oct 2024 13:29:33 -0500 Subject: [PATCH 53/67] pynorm fix --- scripts/exglobal_stage_ic.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/exglobal_stage_ic.py b/scripts/exglobal_stage_ic.py index b47a47c0200..1a49c4f64d3 100755 --- a/scripts/exglobal_stage_ic.py +++ b/scripts/exglobal_stage_ic.py @@ -23,7 +23,7 @@ def main(): 'ROTDIR', 'ICSDIR', 'STAGE_IC_YAML_TMPL', 'DO_JEDIATMVAR', 'OCNRES', 'waveGRD', 'ntiles', 'DOIAU', 'DO_JEDIOCNVAR', 'REPLAY_ICS', 'DO_WAVE', 'DO_OCN', 'DO_ICE', 'DO_NEST', - 'USE_ATM_ENS_PERTURB_FILES','USE_OCN_ENS_PERTURB_FILES'] + 'USE_ATM_ENS_PERTURB_FILES', 'USE_OCN_ENS_PERTURB_FILES'] stage_dict = AttrDict() for key in keys: From e2587ae9128d64c8d4ccb0433636b68463aa7a92 Mon Sep 17 00:00:00 2001 From: Neil Barton <103681022+NeilBarton-NOAA@users.noreply.github.com> Date: Thu, 17 Oct 2024 16:37:20 -0400 Subject: [PATCH 54/67] Update ush/forecast_predet.sh Co-authored-by: Walter Kolczynski - NOAA --- ush/forecast_predet.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ush/forecast_predet.sh b/ush/forecast_predet.sh index 6222ac2245e..7e5f0d10d59 100755 --- a/ush/forecast_predet.sh +++ b/ush/forecast_predet.sh @@ -332,7 +332,7 @@ 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"} + hord_dp=-${hord_xx_nh_nonmono:-"-10"} else # monotonic and hydrostatic hord_mt=${hord_mt_hydro_mono:-"10"} hord_xx=${hord_xx_hydro_mono:-"10"} From cfa15438d4acf464b7014e8a2ead872679cd7d95 Mon Sep 17 00:00:00 2001 From: Neil Barton <103681022+NeilBarton-NOAA@users.noreply.github.com> Date: Thu, 17 Oct 2024 16:37:44 -0400 Subject: [PATCH 55/67] Update ush/forecast_predet.sh Co-authored-by: Walter Kolczynski - NOAA --- ush/forecast_predet.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ush/forecast_predet.sh b/ush/forecast_predet.sh index 7e5f0d10d59..3e6cfd48f2d 100755 --- a/ush/forecast_predet.sh +++ b/ush/forecast_predet.sh @@ -344,7 +344,7 @@ FV3_predet(){ 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"} + hord_dp=${hord_xx_hydro_mono:-"-5"} else # non-monotonic and hydrostatic hord_mt=${hord_mt_hydro_nonmono:-"10"} hord_xx=${hord_xx_hydro_nonmono:-"10"} From 35ee836d014908dc0abaa26b039d98a6981d1135 Mon Sep 17 00:00:00 2001 From: Neil Barton <103681022+NeilBarton-NOAA@users.noreply.github.com> Date: Thu, 17 Oct 2024 16:37:54 -0400 Subject: [PATCH 56/67] Update ush/forecast_predet.sh Co-authored-by: Walter Kolczynski - NOAA --- ush/forecast_predet.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ush/forecast_predet.sh b/ush/forecast_predet.sh index 3e6cfd48f2d..1a2102bcd40 100755 --- a/ush/forecast_predet.sh +++ b/ush/forecast_predet.sh @@ -336,7 +336,7 @@ FV3_predet(){ 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"} + hord_dp=-${hord_xx_nh_nonmono:-"-10"} fi else # non-monotonic options d_con=${d_con_nonmono:-"1."} From 50c5b5e110b64501529c96b9dbefc33899732b52 Mon Sep 17 00:00:00 2001 From: NeilBarton-NOAA Date: Thu, 17 Oct 2024 15:46:54 -0500 Subject: [PATCH 57/67] edits for gefs defaults --- parm/config/gefs/yaml/defaults.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/parm/config/gefs/yaml/defaults.yaml b/parm/config/gefs/yaml/defaults.yaml index 339f88b909b..f0e8772b671 100644 --- a/parm/config/gefs/yaml/defaults.yaml +++ b/parm/config/gefs/yaml/defaults.yaml @@ -22,13 +22,13 @@ base: LOCALARCH: "NO" SFS_POST: "NO" fcst: - reforecast: "YES" + reforecast: "NO" FHZER: 6 TYPE: "nh" MONO: "non-mono" stage_ic: - USE_OCN_ENS_PERTURB_FILES: "YES" - USE_ATM_ENS_PERTURB_FILES: "YES" + USE_OCN_ENS_PERTURB_FILES: "NO" + USE_ATM_ENS_PERTURB_FILES: "NO" ocn: MOM6_INTERP_ICS: "NO" From 3c4bbbfa0b54f5a797ef2711b46092e94c9b6f6a Mon Sep 17 00:00:00 2001 From: NeilBarton-NOAA Date: Wed, 23 Oct 2024 17:50:33 +0000 Subject: [PATCH 58/67] move DO_SKEB to config.efcs --- parm/config/gefs/config.efcs | 6 +++++- parm/config/gefs/config.ufs | 1 - 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/parm/config/gefs/config.efcs b/parm/config/gefs/config.efcs index 2ca4c9d5212..7876d0e9923 100644 --- a/parm/config/gefs/config.efcs +++ b/parm/config/gefs/config.efcs @@ -39,7 +39,11 @@ if [[ "${RUN}" == "enkfgfs" ]]; then fi # Stochastic physics parameters (only for ensemble forecasts) -export DO_SKEB=${DO_SKEB:-"YES"} # SKEB turned off for C96 +if [[ "${CASE}" == "C96" ]] ; then + export DO_SKEB="NO" # SKEB turned off for C96 +else + export DO_SKEB="YES" # SKEB turned off for C96 +fi 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" diff --git a/parm/config/gefs/config.ufs b/parm/config/gefs/config.ufs index 63b2f96e12f..046a793c1e1 100644 --- a/parm/config/gefs/config.ufs +++ b/parm/config/gefs/config.ufs @@ -117,7 +117,6 @@ case "${fv3_res}" in export WRTTASK_PER_GROUP_PER_THREAD_PER_TILE=1 export WRITE_GROUP_GFS=1 export WRTTASK_PER_GROUP_PER_THREAD_PER_TILE_GFS=1 - export DO_SKEB="NO" ;; "C192") export DELTIM=600 From 3e323541d9fee7bc474743973a6349e81dfd1933 Mon Sep 17 00:00:00 2001 From: Neil Barton <103681022+NeilBarton-NOAA@users.noreply.github.com> Date: Wed, 23 Oct 2024 13:53:53 -0400 Subject: [PATCH 59/67] Update parm/stage/master_gefs.yaml.j2 Co-authored-by: Walter Kolczynski - NOAA --- parm/stage/master_gefs.yaml.j2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/parm/stage/master_gefs.yaml.j2 b/parm/stage/master_gefs.yaml.j2 index d04b31fec52..15899cc2a17 100644 --- a/parm/stage/master_gefs.yaml.j2 +++ b/parm/stage/master_gefs.yaml.j2 @@ -114,7 +114,7 @@ {% endfilter %} {% endif %} -{% if REPLAY_ICS or USE_ATM_ENS_PERTURB_FILES %} +{% if USE_ATM_ENS_PERTURB_FILES %} {% filter indent(width=4) %} {% include "atmosphere_ens_perturbations.yaml.j2" %} {% endfilter %} From 5bf70367bd3546499e0a3a40be4d912de18a071a Mon Sep 17 00:00:00 2001 From: Neil Barton <103681022+NeilBarton-NOAA@users.noreply.github.com> Date: Wed, 23 Oct 2024 13:54:05 -0400 Subject: [PATCH 60/67] Update parm/stage/master_gefs.yaml.j2 Co-authored-by: Walter Kolczynski - NOAA --- parm/stage/master_gefs.yaml.j2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/parm/stage/master_gefs.yaml.j2 b/parm/stage/master_gefs.yaml.j2 index 15899cc2a17..4f8f645b029 100644 --- a/parm/stage/master_gefs.yaml.j2 +++ b/parm/stage/master_gefs.yaml.j2 @@ -135,7 +135,7 @@ {% include "ocean_rerun.yaml.j2" %} {% endfilter %} {% endif %} -{% if REPLAY_ICS or USE_OCN_ENS_PERTURB_FILES %} +{% if USE_OCN_ENS_PERTURB_FILES %} {% filter indent(width=4) %} {% include "ocean_ens_perturbations.yaml.j2" %} {% endfilter %} From 7a6188b07ef3ed7188160db4e7199607910c97af Mon Sep 17 00:00:00 2001 From: NeilBarton-NOAA Date: Thu, 24 Oct 2024 13:36:48 +0000 Subject: [PATCH 61/67] fixed typo --- sorc/build_all.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sorc/build_all.sh b/sorc/build_all.sh index 14e21d5c095..e75c853c392 100755 --- a/sorc/build_all.sh +++ b/sorc/build_all.sh @@ -38,7 +38,7 @@ Usage: ${BASH_SOURCE[0]} [-a UFS_app][-c build_config][-d][-f][-h][-j n][-v][-w] -w: Use structured wave grid -y: - Use hystrostatic version of FV3 + Use hydrostatic version of FV3 EOF exit 1 } From 367f1e4967e9a7d77a3da851a0c83205f3b061b6 Mon Sep 17 00:00:00 2001 From: NeilBarton-NOAA Date: Mon, 28 Oct 2024 21:48:30 +0000 Subject: [PATCH 62/67] update typo --- parm/config/gefs/config.efcs | 2 +- parm/config/gefs/config.resources | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/parm/config/gefs/config.efcs b/parm/config/gefs/config.efcs index 7876d0e9923..1e73c86b8b2 100644 --- a/parm/config/gefs/config.efcs +++ b/parm/config/gefs/config.efcs @@ -42,7 +42,7 @@ fi if [[ "${CASE}" == "C96" ]] ; then export DO_SKEB="NO" # SKEB turned off for C96 else - export DO_SKEB="YES" # SKEB turned off for C96 + export DO_SKEB="YES" # SKEB turned on for all other resolutions fi export SKEB="0.8,-999,-999,-999,-999" export SKEB_TAU="2.16E4,2.592E5,2.592E6,7.776E6,3.1536E7" diff --git a/parm/config/gefs/config.resources b/parm/config/gefs/config.resources index 818c9448d77..690fdf919ab 100644 --- a/parm/config/gefs/config.resources +++ b/parm/config/gefs/config.resources @@ -188,7 +188,7 @@ case ${step} in case "${CASE}" in "C48" | "C96" | "C192") - declare -x "walltime"="08:00:00" + declare -x "walltime"="03:00:00" ;; "C384" | "C768" | "C1152") declare -x "walltime"="06:00:00" From 44c6d1178e8e5931cf5a83187e8afa065e96449c Mon Sep 17 00:00:00 2001 From: NeilBarton-NOAA Date: Tue, 29 Oct 2024 20:10:47 +0000 Subject: [PATCH 63/67] update gdas.cd with develop version --- sorc/gdas.cd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sorc/gdas.cd b/sorc/gdas.cd index f49e2e6bb66..764f58cebdf 160000 --- a/sorc/gdas.cd +++ b/sorc/gdas.cd @@ -1 +1 @@ -Subproject commit f49e2e6bb66da7c6b5a41c29e873802d6ed5b602 +Subproject commit 764f58cebdf64f3695d89538994a50183e5884d9 From 686ba4fe4362587345397ec06066f292d2dcb723 Mon Sep 17 00:00:00 2001 From: NeilBarton-NOAA Date: Thu, 31 Oct 2024 13:40:55 +0000 Subject: [PATCH 64/67] update modules with dev version --- sorc/gfs_utils.fd | 2 +- sorc/gsi_enkf.fd | 2 +- sorc/ufs_model.fd | 2 +- sorc/ufs_utils.fd | 2 +- sorc/wxflow | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/sorc/gfs_utils.fd b/sorc/gfs_utils.fd index b9b965317e7..a00cc0949e2 160000 --- a/sorc/gfs_utils.fd +++ b/sorc/gfs_utils.fd @@ -1 +1 @@ -Subproject commit b9b965317e74243d8404a609b5799186850ef03c +Subproject commit a00cc0949e2f901e73b58d54834517743916c69a diff --git a/sorc/gsi_enkf.fd b/sorc/gsi_enkf.fd index 665f9b41d17..9f44c8798c2 160000 --- a/sorc/gsi_enkf.fd +++ b/sorc/gsi_enkf.fd @@ -1 +1 @@ -Subproject commit 665f9b41d177a507be0575b4a9d0eee945ddbb05 +Subproject commit 9f44c8798c2087aca06df8f629699632e57df431 diff --git a/sorc/ufs_model.fd b/sorc/ufs_model.fd index bad50ef5023..6a4e09e9477 160000 --- a/sorc/ufs_model.fd +++ b/sorc/ufs_model.fd @@ -1 +1 @@ -Subproject commit bad50ef5023860c992b75cb72722cba9bb428ceb +Subproject commit 6a4e09e94773ffa39ce7ab6a54a885efada91f21 diff --git a/sorc/ufs_utils.fd b/sorc/ufs_utils.fd index 0c2c4b3d27c..06eec5b6f63 160000 --- a/sorc/ufs_utils.fd +++ b/sorc/ufs_utils.fd @@ -1 +1 @@ -Subproject commit 0c2c4b3d27cab6b4d617f0cc0171d3cb4c6b6758 +Subproject commit 06eec5b6f636123835e2dfd9fc5229980c006735 diff --git a/sorc/wxflow b/sorc/wxflow index 799d55b30ec..e1ef697430c 160000 --- a/sorc/wxflow +++ b/sorc/wxflow @@ -1 +1 @@ -Subproject commit 799d55b30ec75f6d8a3c39ec8281dc6b28069a07 +Subproject commit e1ef697430c09d2b1a0560f21f11c7a32ed5f3e2 From df7720714230f72a5cf2fe096637c2efe67817e5 Mon Sep 17 00:00:00 2001 From: NeilBarton-NOAA Date: Fri, 1 Nov 2024 17:53:17 +0000 Subject: [PATCH 65/67] add option to C48 --- parm/config/gefs/config.ufs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/parm/config/gefs/config.ufs b/parm/config/gefs/config.ufs index 046a793c1e1..5b7ba4c0af4 100644 --- a/parm/config/gefs/config.ufs +++ b/parm/config/gefs/config.ufs @@ -80,7 +80,7 @@ case "${fv3_res}" in 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.071,2.1,1.0,1.0" # mountain blocking, ogwd, cgwd, cgwd src scaling export cdmbgwd_gsl="40.0,1.77,1.0,1.0" # settings for GSL drag suite export k_split=1 From 4dcb3ac8a35745f76475c2abf85af2af3388e8d0 Mon Sep 17 00:00:00 2001 From: NeilBarton-NOAA Date: Wed, 6 Nov 2024 18:55:01 +0000 Subject: [PATCH 66/67] remove gfs_cyc option --- ci/cases/sfs/C96mx100_S2S.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/ci/cases/sfs/C96mx100_S2S.yaml b/ci/cases/sfs/C96mx100_S2S.yaml index 50ca93b9546..6bdb9a4887a 100644 --- a/ci/cases/sfs/C96mx100_S2S.yaml +++ b/ci/cases/sfs/C96mx100_S2S.yaml @@ -11,7 +11,6 @@ arguments: resensatmos: 96 resdetocean: 1 start: 'cold' - gfs_cyc: 1 nens: 10 comroot: {{ 'RUNTESTS' | getenv }}/COMROOT expdir: {{ 'RUNTESTS' | getenv }}/EXPDIR From 2215d40eeffa67958f141e1c6b73e60037a84f3d Mon Sep 17 00:00:00 2001 From: NeilBarton-NOAA Date: Fri, 8 Nov 2024 15:59:52 +0000 Subject: [PATCH 67/67] add fix for CI test --- ci/cases/yamls/gefs_replay_ci.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ci/cases/yamls/gefs_replay_ci.yaml b/ci/cases/yamls/gefs_replay_ci.yaml index bdc85da47fd..b1155aade13 100644 --- a/ci/cases/yamls/gefs_replay_ci.yaml +++ b/ci/cases/yamls/gefs_replay_ci.yaml @@ -12,4 +12,7 @@ base: FHOUT_ICE_GFS: 24 HOMEDIR: {{ 'RUNTESTS' | getenv }}/GLOBAL SFS_POST: "NO" +stage_ic: + USE_OCN_ENS_PERTURB_FILES: "YES" + USE_ATM_ENS_PERTURB_FILES: "YES"