From 30cf5dfb5007d2c49812619dd430f223ca82851d Mon Sep 17 00:00:00 2001 From: NeilBarton-NOAA Date: Tue, 2 Jul 2024 15:04:14 -0500 Subject: [PATCH 01/78] 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 0000000000..8bdaa19ea7 --- /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 0000000000..3d7ab8b0de --- /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 8800292752..32356cd724 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/78] 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/78] 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 8bdaa19ea7..6b5e3550bd 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/78] 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 a924b416c3..98f0fcfadb 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 6b5e3550bd..2d9cc2d09c 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 0000000000..ab25eaacef --- /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 3d7ab8b0de..0000000000 --- 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 769159be61..6b5deee0fd 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 1f5c9228e2..c68892c350 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 584e4769a8..db172d05e4 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 b251661ee6..67c0680c06 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 f6d1ad6cdc..d20762fdc3 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/78] 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 6b5deee0fd..6be2d88906 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 c68892c350..070f483e50 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/78] 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 070f483e50..4d196e1de1 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 67c0680c06..6ceb8e307b 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/78] 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 ab25eaacef..6f9037d9ee 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/78] 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 c5c2b72d11..d4996e1011 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/78] 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 807ed66d48..9bd55afa54 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/78] 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 daf61a3d2e..de5a014ebe 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/78] 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 6f9037d9ee..6c5b06700f 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 d4996e1011..0989a39874 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 e4666d1aba..e17026d3a6 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/78] 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 f7fdb73ddf..b62d403b8e 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/78] 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 b62d403b8e..bae2778ca1 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/78] 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 51276172b9..789625649b 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/78] 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 789625649b..43e69ebe9b 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/78] 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 a4a3ace385..a9775aca6b 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 bae2778ca1..2da9187fab 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/78] 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 0e097b71dc..0be77119a1 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 bdd4c8de5f..4e26c35310 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 8b52108bec..2c534ddd47 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/78] 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 2d9cc2d09c..61a8930a8c 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/78] 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 4a0fb8b49f..4b93d0b117 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/78] 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 6c5b06700f..c95d28e692 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 4a0fb8b49f..73614ba08e 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 cc93fcf5e0..7f1166a869 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/78] 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 de5a014ebe..004bae19e5 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 43e69ebe9b..91024ad3ae 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/78] 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 4b93d0b117..4a0fb8b49f 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/78] 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 004bae19e5..157c371012 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/78] 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 157c371012..51c2586cb5 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/78] 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 91024ad3ae..78c4cbd91e 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/78] 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 9010851806..03d20db0d8 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/78] 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 b4873a7b52..a0a580f3ae 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/78] 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 a59a0e1a8f..7e17ede0ab 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/78] 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 90b98d11ff..bfc11e3c5a 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/78] 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 0ba38d2e0e..06769303a1 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/78] 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 7e17ede0ab..5f937b93ca 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/78] 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 03d20db0d8..3ac2cb465e 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/78] 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 5f937b93ca..7e17ede0ab 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 793fa1c1ac..c480a05735 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/78] 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 a9775aca6b..303752ac17 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 2da9187fab..4e96f7dcb5 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/78] 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 7e17ede0ab..f49217a68e 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/78] 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 f49217a68e..d1008bc5c4 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/78] 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 0000000000..d9caf58b72 --- /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 0be77119a1..0000000000 --- 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 4e26c35310..2bfe3a9d58 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 2c534ddd47..fede3816a7 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/78] 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 c3fae1358c..fe5cac3de4 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 0000000000..756dd5aade --- /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 2bfe3a9d58..d04b31fec5 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 d737d83b47..b47a47c020 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/78] 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 fe5cac3de4..523b5b8305 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 cac65c74b9..92c6bb2a9b 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 bc3950490e..12dfe2bddb 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 756dd5aade..e8aa4f9dcb 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 317a76e58a..f7c7559f9a 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/78] 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 523b5b8305..7e86082784 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 efdedb24f4..880f587a0d 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 e8aa4f9dcb..be08d283f6 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 e0ebfb7a7d..9adc185ba1 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/78] 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 61a8930a8c..0000000000 --- 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 c95d28e692..0000000000 --- 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/78] 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 880f587a0d..27811c54e7 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 be08d283f6..89c04385fe 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 9adc185ba1..e49bc09387 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 9e08a12dd8..26b3490c56 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/78] 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 73614ba08e..107580c204 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 0000000000..4fdb8f9713 --- /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 0000000000..29df3e5a2d --- /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 0000000000..3a44c0e042 --- /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/78] 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 61a8930a8c..1475e81ea0 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/78] 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 27811c54e7..4a793e397e 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 12dfe2bddb..046a793c1e 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 e49bc09387..c0f7e63e01 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 b2f4e6ce0e..14e21d5c09 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 3d4e338298..6032747e39 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 617ecff719..9279b284f8 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/78] 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 0000000000..50ca93b954 --- /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 89c04385fe..b1de60ce71 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 107580c204..e8aae324e1 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 81b7c1e2fe..a4aa05e45a 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 9bd55afa54..ab05b0ff2d 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 4a793e397e..94271225b9 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 c0f7e63e01..69a12d39b6 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 603447f612..316c8c8243 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 6032747e39..9cd7ae9878 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/78] 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 8fc6d0b20b..84780792ac 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 046a793c1e..94d292aa0b 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 29df3e5a2d..7e5497f1d2 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 9426a09ce9..1e606d6495 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 9cd7ae9878..7657950ae6 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/78] 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 94d292aa0b..046a793c1e 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/78] 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 ffb987af5a..6222ac2245 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/78] 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 b1de60ce71..f22faaf0ca 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 ab05b0ff2d..2ca4c9d521 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 94271225b9..7eb6ab23bf 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 690fdf919a..818c9448d7 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 046a793c1e..63b2f96e12 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 44c8c7a2ad..6432962a5a 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 55e895f1dc..f49e2e6bb6 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 a00cc0949e..b9b965317e 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 9f44c8798c..665f9b41d1 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 6a4e09e947..bad50ef502 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 06eec5b6f6..0c2c4b3d27 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 e1ef697430..799d55b30e 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/78] 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 05a97edd90..a06aed638a 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 dfbd9ae065..bdc85da47f 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 f22faaf0ca..b1de60ce71 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 bd20a28ca4..e70f0b7949 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 7eb6ab23bf..94271225b9 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 c0f7e63e01..339f88b909 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/78] 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 7aa0c25f32..d0113fac63 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/78] 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 b47a47c020..1a49c4f64d 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/78] 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 6222ac2245..7e5f0d10d5 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/78] 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 7e5f0d10d5..3e6cfd48f2 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/78] 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 3e6cfd48f2..1a2102bcd4 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/78] 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 339f88b909..f0e8772b67 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/78] 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 2ca4c9d521..7876d0e992 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 63b2f96e12..046a793c1e 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/78] 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 d04b31fec5..15899cc2a1 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/78] 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 15899cc2a1..4f8f645b02 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/78] 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 14e21d5c09..e75c853c39 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/78] 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 7876d0e992..1e73c86b8b 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 818c9448d7..690fdf919a 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/78] 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 f49e2e6bb6..764f58cebd 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/78] 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 b9b965317e..a00cc0949e 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 665f9b41d1..9f44c8798c 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 bad50ef502..6a4e09e947 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 0c2c4b3d27..06eec5b6f6 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 799d55b30e..e1ef697430 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/78] 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 046a793c1e..5b7ba4c0af 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/78] 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 50ca93b954..6bdb9a4887 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/78] 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 bdc85da47f..b1155aade1 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" From 964b6c13529d71f41e5ee075f73b3a953d4cc911 Mon Sep 17 00:00:00 2001 From: NeilBarton-NOAA Date: Tue, 19 Nov 2024 13:41:34 -0600 Subject: [PATCH 68/78] updates to run with perturbation files and seperature pertubation files from REPLAY 03 files --- ci/cases/yamls/gefs_defaults_ci.yaml | 1 - ci/cases/yamls/sfs_defaults.yaml | 5 ++--- parm/config/gefs/config.base | 4 ++++ parm/config/gefs/config.efcs | 2 +- parm/config/gefs/config.nsst | 3 --- parm/config/gefs/config.stage_ic | 4 ---- parm/config/gefs/yaml/defaults.yaml | 6 ++---- ush/forecast_postdet.sh | 14 +++++++++----- 8 files changed, 18 insertions(+), 21 deletions(-) diff --git a/ci/cases/yamls/gefs_defaults_ci.yaml b/ci/cases/yamls/gefs_defaults_ci.yaml index a06aed638a..a19be7713f 100644 --- a/ci/cases/yamls/gefs_defaults_ci.yaml +++ b/ci/cases/yamls/gefs_defaults_ci.yaml @@ -4,7 +4,6 @@ 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: diff --git a/ci/cases/yamls/sfs_defaults.yaml b/ci/cases/yamls/sfs_defaults.yaml index b1de60ce71..db7a08493e 100644 --- a/ci/cases/yamls/sfs_defaults.yaml +++ b/ci/cases/yamls/sfs_defaults.yaml @@ -17,6 +17,8 @@ base: 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" SFS_POST: "YES" @@ -26,8 +28,5 @@ fcst: MONO: "mono" reforecast: "YES" FHZER: 24 -stage_ic: - USE_OCN_ENS_PERTURB_FILES: "YES" - USE_ATM_ENS_PERTURB_FILES: "YES" ocn: MOM6_INTERP_ICS: "YES" diff --git a/parm/config/gefs/config.base b/parm/config/gefs/config.base index 13f286c494..e78b621f21 100644 --- a/parm/config/gefs/config.base +++ b/parm/config/gefs/config.base @@ -234,8 +234,12 @@ export SDATE_GFS=@SDATE_GFS@ export REPLAY_ICS=@REPLAY_ICS@ if [[ "${REPLAY_ICS:-NO}" == "YES" ]]; then export OFFSET_START_HOUR=$(( assim_freq / 2 )) + export USE_OCN_ENS_PERTURB_FILES="YES" + export USE_ATM_ENS_PERTURB_FILES="YES" else export OFFSET_START_HOUR=0 + export USE_OCN_ENS_PERTURB_FILES=@USE_OCN_ENS_PERTURB_FILES@ + export USE_ATM_ENS_PERTURB_FILES=@USE_ATM_ENS_PERTURB_FILES@ fi # GFS output and frequency diff --git a/parm/config/gefs/config.efcs b/parm/config/gefs/config.efcs index 27d7be235d..192ffde46d 100644 --- a/parm/config/gefs/config.efcs +++ b/parm/config/gefs/config.efcs @@ -55,7 +55,7 @@ export EPBL="0.8,0.4,0.2,0.08,0.04" export EPBL_TAU="2.16E4,2.592E5,2.592E6,7.776E6,3.1536E7" export EPBL_LSCALE="500.E3,1000.E3,2000.E3,2000.E3,2000.E3" -if [[ "${REPLAY_ICS:-NO}" == "YES" ]]; then +if [[ "${USE_OCN_ENS_PERTURB_FILES:-NO}" == "YES" ]]; then export ODA_INCUPD="True" export ODA_TEMPINC_VAR='t_pert' export ODA_SALTINC_VAR='s_pert' diff --git a/parm/config/gefs/config.nsst b/parm/config/gefs/config.nsst index db4367b2c0..d976d757b2 100644 --- a/parm/config/gefs/config.nsst +++ b/parm/config/gefs/config.nsst @@ -13,9 +13,6 @@ export NST_MODEL=2 # nstf_name(2) : NST_SPINUP : 0 = OFF, 1 = ON, export NST_SPINUP=0 cdate="${PDY}${cyc}" -if (( cdate < 2017072000 )); then - export NST_SPINUP=1 -fi # nstf_name(3) : NST_RESV (Reserved, NSST Analysis) : 0 = OFF, 1 = ON export NST_RESV=0 diff --git a/parm/config/gefs/config.stage_ic b/parm/config/gefs/config.stage_ic index 92c6bb2a9b..cac65c74b9 100644 --- a/parm/config/gefs/config.stage_ic +++ b/parm/config/gefs/config.stage_ic @@ -30,8 +30,4 @@ 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/yaml/defaults.yaml b/parm/config/gefs/yaml/defaults.yaml index f0e8772b67..da0b1a8d34 100644 --- a/parm/config/gefs/yaml/defaults.yaml +++ b/parm/config/gefs/yaml/defaults.yaml @@ -14,21 +14,19 @@ base: FHOUT_HF_GFS: 1 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" + USE_OCN_ENS_PERTURB_FILES: "NO" + USE_ATM_ENS_PERTURB_FILES: "NO" fcst: reforecast: "NO" FHZER: 6 TYPE: "nh" MONO: "non-mono" -stage_ic: - USE_OCN_ENS_PERTURB_FILES: "NO" - USE_ATM_ENS_PERTURB_FILES: "NO" ocn: MOM6_INTERP_ICS: "NO" diff --git a/ush/forecast_postdet.sh b/ush/forecast_postdet.sh index 25b2e28d75..4721339e2c 100755 --- a/ush/forecast_postdet.sh +++ b/ush/forecast_postdet.sh @@ -86,8 +86,10 @@ FV3_postdet() { # Determine increment files when doing cold start if [[ "${warm_start}" == ".false." ]]; then - if [[ "${REPLAY_ICS:-NO}" == "YES" ]]; then - IAU_FHROT=${half_window} # Replay ICs start at the end of the assimilation window + if [[ "${USE_ATM_ENS_PERTURB_FILES:-NO}" == "YES" ]]; then + if [[ "${REPLAY_ICS:-NO}" == "YES" ]]; then + IAU_FHROT=${half_window} # Replay ICs start at the end of the assimilation window + fi if (( MEMBER == 0 )); then inc_files=() else @@ -97,7 +99,7 @@ FV3_postdet() { fi local increment_file for inc_file in "${inc_files[@]}"; do - increment_file="${COMIN_ATMOS_INPUT}/${RUN}.t${cyc}z.${inc_file}" + increment_file="${COMIN_ATMOS_ANALYSIS}/${RUN}.t${cyc}z.${inc_file}" if [[ -f "${increment_file}" ]]; then ${NCP} "${increment_file}" "${DATA}/INPUT/${inc_file}" else @@ -161,8 +163,10 @@ EOF inc_files=("atminc.nc") read_increment=".true." res_latlon_dynamics="atminc.nc" - if [[ "${REPLAY_ICS:-NO}" == "YES" ]]; then - IAU_FHROT=${half_window} # Replay ICs start at the end of the assimilation window + if [[ "${USE_ATM_ENS_PERTURB_FILES:-NO}" == "YES" ]]; then + if [[ "${REPLAY_ICS:-NO}" == "YES" ]]; then + IAU_FHROT=${half_window} # Replay ICs start at the end of the assimilation window + fi # Control member has no perturbation if (( MEMBER == 0 )); then inc_files=() From 7d3e12f2198ecb1cc166190f4e5cf2426678f75d Mon Sep 17 00:00:00 2001 From: NeilBarton-NOAA Date: Thu, 21 Nov 2024 11:22:27 -0600 Subject: [PATCH 69/78] RERUN should not use initial increments --- ush/forecast_det.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/ush/forecast_det.sh b/ush/forecast_det.sh index 6d321aa620..9854494859 100755 --- a/ush/forecast_det.sh +++ b/ush/forecast_det.sh @@ -86,6 +86,7 @@ UFS_det(){ MOM6_INIT_FROM_Z=True MOM6_WARMSTART_FILE="none" MOM6_INIT_UV="zero" + ODA_INCUPD="False" fi # Check for CICE6 restart availability From 65bbda4aeb746d9d7095b11beb66a78d1a989617 Mon Sep 17 00:00:00 2001 From: NeilBarton-NOAA Date: Thu, 21 Nov 2024 12:42:58 -0600 Subject: [PATCH 70/78] fix shell check --- parm/config/gefs/config.nsst | 1 - 1 file changed, 1 deletion(-) diff --git a/parm/config/gefs/config.nsst b/parm/config/gefs/config.nsst index d976d757b2..f9a29d44d3 100644 --- a/parm/config/gefs/config.nsst +++ b/parm/config/gefs/config.nsst @@ -12,7 +12,6 @@ export NST_MODEL=2 # nstf_name(2) : NST_SPINUP : 0 = OFF, 1 = ON, export NST_SPINUP=0 -cdate="${PDY}${cyc}" # nstf_name(3) : NST_RESV (Reserved, NSST Analysis) : 0 = OFF, 1 = ON export NST_RESV=0 From e99a613a44a65a69d0d038ab30225f43c3a6ad7b Mon Sep 17 00:00:00 2001 From: NeilBarton-NOAA Date: Fri, 22 Nov 2024 09:41:28 -0600 Subject: [PATCH 71/78] fix hydrostatic option --- ush/forecast_predet.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/ush/forecast_predet.sh b/ush/forecast_predet.sh index 43c9eb968f..73b974e87b 100755 --- a/ush/forecast_predet.sh +++ b/ush/forecast_predet.sh @@ -337,6 +337,10 @@ FV3_predet(){ hord_mt=${hord_mt_hydro_mono:-"10"} hord_xx=${hord_xx_hydro_mono:-"10"} hord_dp=-${hord_xx_nh_nonmono:-"-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 else # non-monotonic options d_con=${d_con_nonmono:-"1."} @@ -349,10 +353,6 @@ FV3_predet(){ 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 From 8b816e3aa14458ce717d15a492f6c1760a97b496 Mon Sep 17 00:00:00 2001 From: NeilBarton-NOAA Date: Fri, 22 Nov 2024 11:25:25 -0600 Subject: [PATCH 72/78] update hydrostatic options --- ush/forecast_predet.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/ush/forecast_predet.sh b/ush/forecast_predet.sh index 73b974e87b..1b5090ff58 100755 --- a/ush/forecast_predet.sh +++ b/ush/forecast_predet.sh @@ -332,11 +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:-"-10"} + hord_dp=${hord_xx_nh_mono:-"10"} 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_hydro_mono:-"10"} kord_tm=${kord_tm_hydro_mono:-"-12"} kord_mt=${kord_mt_hydro_mono:-"12"} kord_wz=${kord_wz_hydro_mono:-"12"} @@ -348,11 +348,11 @@ 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:-"-5"} + hord_dp=${hord_xx_nh_nonmono:-"-5"} 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"} + hord_dp=${hord_xx_hydro_nonmono:-"10"} fi fi From 8bc048a722a1a8153a006e37351fc0e1b9540484 Mon Sep 17 00:00:00 2001 From: NeilBarton-NOAA Date: Fri, 22 Nov 2024 12:05:41 -0600 Subject: [PATCH 73/78] update for hydrostatic runs --- parm/config/gefs/config.fcst | 1 - 1 file changed, 1 deletion(-) diff --git a/parm/config/gefs/config.fcst b/parm/config/gefs/config.fcst index c600c8edbf..2ca0f4990f 100644 --- a/parm/config/gefs/config.fcst +++ b/parm/config/gefs/config.fcst @@ -207,7 +207,6 @@ case ${imp_physics} in else export dddmp=0. fi - export dddmp=0.1 export d4_bg=0.12 ;; 11) # GFDL From f8d5395e8b64743f3127dc1a5cce7a165d69c1b4 Mon Sep 17 00:00:00 2001 From: Neil Barton <103681022+NeilBarton-NOAA@users.noreply.github.com> Date: Wed, 4 Dec 2024 13:03:10 -0500 Subject: [PATCH 74/78] Update parm/config/gefs/config.base Co-authored-by: Walter Kolczynski - NOAA --- parm/config/gefs/config.base | 1 + 1 file changed, 1 insertion(+) diff --git a/parm/config/gefs/config.base b/parm/config/gefs/config.base index e78b621f21..541c79dc53 100644 --- a/parm/config/gefs/config.base +++ b/parm/config/gefs/config.base @@ -234,6 +234,7 @@ export SDATE_GFS=@SDATE_GFS@ export REPLAY_ICS=@REPLAY_ICS@ if [[ "${REPLAY_ICS:-NO}" == "YES" ]]; then export OFFSET_START_HOUR=$(( assim_freq / 2 )) + echo "WARNING: Replay ICs require perturbation files, ignoring any previous settings" export USE_OCN_ENS_PERTURB_FILES="YES" export USE_ATM_ENS_PERTURB_FILES="YES" else From a0f21ccbf966b27e0f3122cd1762a55792973ac7 Mon Sep 17 00:00:00 2001 From: NeilBarton-NOAA Date: Fri, 6 Dec 2024 15:45:49 -0600 Subject: [PATCH 75/78] change KEEP data to off --- ci/cases/yamls/sfs_defaults.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/cases/yamls/sfs_defaults.yaml b/ci/cases/yamls/sfs_defaults.yaml index db7a08493e..43f27d9239 100644 --- a/ci/cases/yamls/sfs_defaults.yaml +++ b/ci/cases/yamls/sfs_defaults.yaml @@ -7,7 +7,7 @@ base: DO_BUFRSND: "NO" DO_GEMPAK: "NO" DO_AWIPS: "NO" - KEEPDATA: "YES" + KEEPDATA: "NO" DO_EXTRACTVARS: "NO" FHMAX_GFS: 2976 FHMAX_HF_GFS: 0 From 14f3ec9348a67e3867d183b97ff1802afd5774d5 Mon Sep 17 00:00:00 2001 From: NeilBarton-NOAA Date: Fri, 6 Dec 2024 15:52:47 -0600 Subject: [PATCH 76/78] updates to run 4 month forecast out-of-the-box --- parm/config/gefs/config.resources | 2 +- parm/config/gefs/config.ufs | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/parm/config/gefs/config.resources b/parm/config/gefs/config.resources index a730ea401c..b6c909e0be 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"="04: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 5b7ba4c0af..9a145bf185 100644 --- a/parm/config/gefs/config.ufs +++ b/parm/config/gefs/config.ufs @@ -98,8 +98,8 @@ case "${fv3_res}" in export DELTIM=600 export layout_x=2 export layout_y=2 - export layout_x_gfs=4 - export layout_y_gfs=4 + export layout_x_gfs=6 + export layout_y_gfs=8 export nthreads_fv3=1 export nthreads_fv3_gfs=1 export nthreads_ufs=1 From b485ef32ab0a9319af175e911f50e9e5b07273e1 Mon Sep 17 00:00:00 2001 From: "Xiaqiong.Zhou" Date: Wed, 18 Dec 2024 11:43:35 -0600 Subject: [PATCH 77/78] Add hord_dp for non-mono runs to define hord for dp different from others --- parm/config/gefs/config.fcst | 2 ++ parm/config/gfs/config.fcst | 2 ++ ush/forecast_predet.sh | 2 +- 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/parm/config/gefs/config.fcst b/parm/config/gefs/config.fcst index 4dd258477d..dc1843c470 100644 --- a/parm/config/gefs/config.fcst +++ b/parm/config/gefs/config.fcst @@ -188,6 +188,7 @@ case ${imp_physics} in export hord_mt_nh_nonmono=5 export hord_xx_nh_nonmono=5 + export hord_dp_nh_nonmono=-5 export vtdm4_nh_nonmono=0.02 export nord=2 if [[ "${TYPE}" == "nh"* ]]; then @@ -211,6 +212,7 @@ case ${imp_physics} in export hord_mt_nh_nonmono=5 export hord_xx_nh_nonmono=5 + export hord_dp_nh_nonmono=-5 export vtdm4_nh_nonmono=0.02 export nord=2 export d4_bg=0.12 diff --git a/parm/config/gfs/config.fcst b/parm/config/gfs/config.fcst index c95f8796e5..f631d0085f 100644 --- a/parm/config/gfs/config.fcst +++ b/parm/config/gfs/config.fcst @@ -203,6 +203,7 @@ case ${imp_physics} in export hord_mt_nh_nonmono=5 export hord_xx_nh_nonmono=5 + export hord_dp_nh_nonmono=-5 export vtdm4_nh_nonmono=0.02 export nord=2 export dddmp=0.1 @@ -236,6 +237,7 @@ case ${imp_physics} in export hord_mt_nh_nonmono=5 export hord_xx_nh_nonmono=5 + export hord_dp_nh_nonmono=-5 export vtdm4_nh_nonmono=0.02 export nord=2 export d4_bg=0.12 diff --git a/ush/forecast_predet.sh b/ush/forecast_predet.sh index 19432873e0..e2862c24ad 100755 --- a/ush/forecast_predet.sh +++ b/ush/forecast_predet.sh @@ -367,7 +367,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_nh_nonmono:-"-5"} + hord_dp=${hord_dp_nh_nonmono:-"-5"} else # non-monotonic and hydrostatic hord_mt=${hord_mt_hydro_nonmono:-"10"} hord_xx=${hord_xx_hydro_nonmono:-"10"} From 8bba2d2da034522d5808d7790b3aca7ce828c94d Mon Sep 17 00:00:00 2001 From: NeilBarton-NOAA Date: Fri, 3 Jan 2025 17:01:00 +0000 Subject: [PATCH 78/78] fix for CI test --- parm/config/gefs/config.stage_ic | 4 ---- 1 file changed, 4 deletions(-) diff --git a/parm/config/gefs/config.stage_ic b/parm/config/gefs/config.stage_ic index 5822f2e794..8cd97b58ac 100644 --- a/parm/config/gefs/config.stage_ic +++ b/parm/config/gefs/config.stage_ic @@ -32,8 +32,4 @@ 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"