Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
a3498bb
Update archives for new EE2 standard stat filenames
DavidHuber-NOAA Oct 28, 2025
8253874
Initial commit
DavidNew-NOAA Oct 28, 2025
b8189b5
Debug
DavidNew-NOAA Oct 28, 2025
9f157a8
Debug
DavidNew-NOAA Oct 28, 2025
fbabe80
Debug
DavidNew-NOAA Oct 29, 2025
dfc1da7
shellnorms
DavidNew-NOAA Oct 29, 2025
eae64ba
mistake
DavidNew-NOAA Oct 29, 2025
5b03103
Update stats file names
DavidHuber-NOAA Oct 29, 2025
a6c1880
Update snow analysis filenames
DavidHuber-NOAA Oct 29, 2025
b022ff6
Update snow filenames in the GDASApp
DavidHuber-NOAA Oct 29, 2025
88da298
Fix gempak cleanup issue
DavidHuber-NOAA Oct 29, 2025
afd14b0
Merge remote-tracking branch 'origin/develop' into feature/snow_ee2
DavidHuber-NOAA Oct 29, 2025
98501e8
Actually update the GDASApp hash
DavidHuber-NOAA Oct 29, 2025
bbe01cc
Fix the input snowinc filenames
DavidHuber-NOAA Oct 29, 2025
87c681a
Debug
DavidNew-NOAA Oct 29, 2025
ab37a60
Merge branch 'develop' into feature/atm_file_rename
DavidNew-NOAA Oct 29, 2025
526a230
Fix snowinc output templates
DavidHuber-NOAA Oct 29, 2025
2a19083
Incorporate GDASApp fixes for snow renaming
DavidHuber-NOAA Oct 29, 2025
60344da
Update gdas hash
DavidNew-NOAA Oct 29, 2025
9bd286c
Debug
DavidNew-NOAA Oct 30, 2025
b91fb22
Fix anlstat tarball name
DavidHuber-NOAA Oct 30, 2025
4dc2857
Add && true to ensure err_exit can actually be called
DavidHuber-NOAA Oct 30, 2025
106a717
Correct tarball extensions
DavidHuber-NOAA Oct 30, 2025
a2a839c
More extensions
DavidHuber-NOAA Oct 30, 2025
35908fa
Removing debugging print
DavidNew-NOAA Oct 30, 2025
7b8602e
Address reviewer commends and update GDAS hash
DavidNew-NOAA Oct 30, 2025
c68fe86
Address reviewer comments and shellnorms
DavidNew-NOAA Oct 30, 2025
149295c
Reviewr comment
DavidNew-NOAA Oct 30, 2025
beba912
Merge branch 'develop' into feature/atm_file_rename
DavidNew-NOAA Oct 30, 2025
d0949cc
Correct stats tgz filenames
DavidHuber-NOAA Oct 30, 2025
eb431ba
Apply suggestions from code review
DavidHuber-NOAA Oct 30, 2025
fc58dd9
Update GDASApp hash
DavidHuber-NOAA Oct 30, 2025
cafce94
Merge remote-tracking branch 'dave_new/feature/atm_file_rename' into …
DavidHuber-NOAA Oct 30, 2025
dd6b564
Merge branch 'develop' into feature/snow_ee2
DavidHuber-NOAA Oct 30, 2025
dc7d152
Merge branch 'feature/snow_ee2' of github.com:davidhuber-noaa/global-…
DavidHuber-NOAA Oct 30, 2025
82a5493
Merge remote-tracking branch 'origin/develop' into feature/snow_ee2
DavidHuber-NOAA Oct 31, 2025
35e4f82
Ignore 'dirty' differences in the ufs submodule
DavidHuber-NOAA Oct 31, 2025
831a615
Remove case for which there are no ICs
DavidHuber-NOAA Oct 31, 2025
c078c38
Update production GFS version
DavidHuber-NOAA Oct 31, 2025
cdf65d6
Rename tgz stats files to tar.gz
DavidHuber-NOAA Oct 31, 2025
986985c
Update gdasapp hash for tgz->tar.gz rename
DavidHuber-NOAA Oct 31, 2025
f5b5258
Update GDASApp hash to head of develop
DavidHuber-NOAA Oct 31, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
[submodule "sorc/ufs_model.fd"]
path = sorc/ufs_model.fd
url = https://github.com/ufs-community/ufs-weather-model
ignore = dirty
[submodule "sorc/wxflow"]
path = sorc/wxflow
url = https://github.com/NOAA-EMC/wxflow
Expand Down
30 changes: 0 additions & 30 deletions dev/ci/cases/weekly/C384_S2SWA.yaml

This file was deleted.

2 changes: 1 addition & 1 deletion dev/parm/config/gfs/config.cleanup
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ export CLEANUP_COM="YES" # NO=retain ROTDIR. YES default in cleanup.sh
export RMOLDSTD=144
export RMOLDEND=24

if [[ "${DO_GEMPAK}" == "YES" ]]; then
if [[ "${DO_GEMPAK}" == "YES" && "${RUN}" == "gfs" ]]; then
export RMOLDSTD=346
export RMOLDEND=222
fi
Expand Down
2 changes: 1 addition & 1 deletion docs/source/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ Status
======

* State of develop (HEAD) branch: GFSv17+ development
* State of operations (dev/gfs.v16 branch): GFS v16.3.24 `tag: [gfs.v16.3.24] <https://github.com/NOAA-EMC/global-workflow/releases/tag/gfs.v16.3.24>`_
* State of operations (dev/gfs.v16 branch): GFS v16.3.28 `tag: [gfs.v16.3.28] <https://github.com/NOAA-EMC/global-workflow/releases/tag/gfs.v16.3.28>`_

=============
Code managers
Expand Down
2 changes: 1 addition & 1 deletion jobs/JGLOBAL_ANALYSIS_STATS
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ YMD=${PDY} HH=${cyc} declare_from_tmpl -rx COMIN_OBS:COM_OBS_TMPL \
# Run relevant script

EXSCRIPT=${ANLSTATSPY:-${SCRgfs}/exglobal_analysis_stats.py}
${EXSCRIPT}
${EXSCRIPT} && true
export err=$?
if [[ ${err} -ne 0 ]]; then
err_exit
Expand Down
4 changes: 2 additions & 2 deletions parm/archive/enkf.yaml.j2
Original file line number Diff line number Diff line change
Expand Up @@ -96,10 +96,10 @@ enkf:
{% endfor %}

{% if DO_JEDISNOWDA %}
- "{{ COMIN_SNOW_ANALYSIS_ENSSTAT | relpath(ROTDIR) }}/{{ head }}snowstat.tgz"
- "{{ COMIN_SNOW_ANALYSIS_ENSSTAT | relpath(ROTDIR) }}/{{ head }}snow_analysis.ioda_hofx.ensmean.tar"
{% for itile in range(1,7) %}
# Snow analysis is 3dvar
- "{{ COMIN_SNOW_ANALYSIS_ENSSTAT | relpath(ROTDIR) }}/snowinc.{{ cycle_YMD }}.{{ cycle_HH }}0000.sfc_data.tile{{ itile }}.nc"
- "{{ COMIN_SNOW_ANALYSIS_ENSSTAT | relpath(ROTDIR) }}/{{ cycle_YMD }}.{{ cycle_HH }}0000.snow_increment.sfc_data.tile{{ itile }}.nc"
{% endfor %}
{% endif %}

Expand Down
6 changes: 3 additions & 3 deletions parm/archive/gdas.yaml.j2
Original file line number Diff line number Diff line change
Expand Up @@ -103,11 +103,11 @@ gdas:
# Snow analysis data
{% if DO_JEDISNOWDA %}
{% for itile in range(1,7) %}
- "{{ COMIN_SNOW_ANALYSIS | relpath(ROTDIR) }}/snowinc.{{ cycle_YMD }}.{{ cycle_HH }}0000.sfc_data.tile{{ itile }}.nc"
- "{{ COMIN_SNOW_ANALYSIS | relpath(ROTDIR) }}/{{ current_cycle | to_fv3time }}.snow_increment.sfc_data.tile{{ itile }}.nc"
{% endfor %}
- "{{ COMIN_SNOW_ANALYSIS | relpath(ROTDIR) }}/{{ head }}snowstat.tgz"
- "{{ COMIN_SNOW_ANALYSIS | relpath(ROTDIR) }}/{{ head }}snow_analysis.ioda_hofx.tar"
- "{{ COMIN_CONF | relpath(ROTDIR) }}/{{ head }}snowanlvar.yaml"
- "{{ COMIN_SNOW_ANLMON | relpath(ROTDIR) }}/{{ head }}snow_iodastat.tgz"
- "{{ COMIN_SNOW_ANLMON | relpath(ROTDIR) }}/{{ head }}snow_analysis.ioda_hofx_stats.tar.gz"
{% endif %}

# Ozone verification
Expand Down
4 changes: 2 additions & 2 deletions parm/archive/gfs_arcdir.yaml.j2
Original file line number Diff line number Diff line change
Expand Up @@ -46,8 +46,8 @@
{% endif %}

{% if DO_JEDISNOWDA == True %}
{% do det_anl_files.append([COMIN_SNOW_ANALYSIS ~ "/" ~ head ~ "snowstat.tgz",
ARCDIR ~ "/snowstat." ~ RUN ~ "." ~ cycle_YMDH ~ ".tgz"]) %}
{% do det_anl_files.append([COMIN_SNOW_ANALYSIS ~ "/" ~ head ~ "snow_analysis.ioda_hofx.tar",
ARCDIR ~ "/snowstat." ~ RUN ~ "." ~ cycle_YMDH ~ ".tar"]) %}
{% endif %}

{% if DO_AERO_ANL %}
Expand Down
4 changes: 2 additions & 2 deletions parm/archive/gfsa.yaml.j2
Original file line number Diff line number Diff line change
Expand Up @@ -52,9 +52,9 @@ gfsa:
# Snow analysis data
{% if DO_JEDISNOWDA %}
{% for itile in range(1,7) %}
- "{{ COMIN_SNOW_ANALYSIS | relpath(ROTDIR) }}/snowinc.{{ cycle_YMD }}.{{ cycle_HH }}0000.sfc_data.tile{{ itile }}.nc"
- "{{ COMIN_SNOW_ANALYSIS | relpath(ROTDIR) }}/{{ current_cycle | to_fv3time }}.snow_increment.sfc_data.tile{{ itile }}.nc"
{% endfor %}
- "{{ COMIN_SNOW_ANALYSIS | relpath(ROTDIR) }}/{{ head }}snowstat.tgz"
- "{{ COMIN_SNOW_ANALYSIS | relpath(ROTDIR) }}/{{ head }}snow_analysis.ioda_hofx.tar"
- "{{ COMIN_CONF | relpath(ROTDIR) }}/{{ head }}snowanlvar.yaml"
{% endif %}

Expand Down
8 changes: 6 additions & 2 deletions scripts/exgdas_enkf_sfc.sh
Original file line number Diff line number Diff line change
Expand Up @@ -186,16 +186,18 @@ if [[ "$DOIAU" == "YES" ]]; then
COMIN_SNOW_ANALYSIS_MEM:COM_SNOW_ANALYSIS_TMPL

# determine where the input snow restart files come from
snow_prefix=""
if [[ "${DO_JEDISNOWDA:-}" == "YES" ]]; then
sfcdata_dir="${COMIN_SNOW_ANALYSIS_MEM}"
snow_prefix="snow_analysis."
else
sfcdata_dir="${COMIN_ATMOS_RESTART_MEM_PREV}"
fi

if [[ ${TILE_NUM} -eq 1 ]]; then
mkdir -p "${COMOUT_ATMOS_RESTART_MEM}"
fi
cpreq "${sfcdata_dir}/${bPDY}.${bcyc}0000.sfc_data.tile${n}.nc" \
cpreq "${sfcdata_dir}/${bPDY}.${bcyc}0000.${snow_prefix}sfc_data.tile${n}.nc" \
"${DATA}/fnbgsi.${cmem}"
cpreq "${DATA}/fnbgsi.${cmem}" "${DATA}/fnbgso.${cmem}"
cpreq "${FIXgfs}/orog/${CASE}/${CASE}_grid.tile${n}.nc" "${DATA}/fngrid.${cmem}"
Expand Down Expand Up @@ -264,13 +266,15 @@ if [[ "${DOSFCANL_ENKF}" == "YES" ]]; then
COMIN_ATMOS_ANALYSIS_MEM:COM_ATMOS_ANALYSIS_TMPL

# determine where the input snow restart files come from
snow_prefix=""
if [[ "${DO_JEDISNOWDA:-}" == "YES" ]]; then
sfcdata_dir="${COMIN_SNOW_ANALYSIS_MEM}"
snow_prefix="snow_analysis."
else
sfcdata_dir="${COMIN_ATMOS_RESTART_MEM_PREV}"
fi

cpreq "${sfcdata_dir}/${PDY}.${cyc}0000.sfc_data.tile${n}.nc" \
cpreq "${sfcdata_dir}/${PDY}.${cyc}0000.${snow_prefix}sfc_data.tile${n}.nc" \
"${DATA}/fnbgsi.${cmem}"
cpreq "${DATA}/fnbgsi.${cmem}" "${DATA}/fnbgso.${cmem}"
cpreq "${FIXgfs}/orog/${CASE}/${CASE}_grid.tile${n}.nc" "${DATA}/fngrid.${cmem}"
Expand Down
4 changes: 3 additions & 1 deletion scripts/exglobal_atmos_sfcanl.sh
Original file line number Diff line number Diff line change
Expand Up @@ -90,8 +90,10 @@ else
fi

# determine where the input snow restart files come from
snow_prefix=""
if [[ "${DO_JEDISNOWDA:-}" == "YES" ]]; then
sfcdata_dir="${COMIN_SNOW_ANALYSIS}"
snow_prefix="snow_analysis."
else
sfcdata_dir="${COMIN_ATMOS_RESTART_PREV}"
fi
Expand Down Expand Up @@ -165,7 +167,7 @@ for hr in "${!gcycle_dates[@]}"; do

# Copy inputs from COMIN to DATA
for (( nn=1; nn <= ntiles; nn++ )); do
cpreq "${sfcdata_dir}/${datestr}.sfc_data.tile${nn}.nc" "${DATA}/fnbgsi.00${nn}"
cpreq "${sfcdata_dir}/${datestr}.${snow_prefix}sfc_data.tile${nn}.nc" "${DATA}/fnbgsi.00${nn}"
cpreq "${DATA}/fnbgsi.00${nn}" "${DATA}/fnbgso.00${nn}"
done

Expand Down
4 changes: 2 additions & 2 deletions ush/python/pygfs/task/analysis_stats.py
Original file line number Diff line number Diff line change
Expand Up @@ -189,7 +189,7 @@ def finalize(self, jedi_dict_key: str) -> None:
FileHandler({'copy_opt': copy_list}).sync()

# path of output tar statfile
iodastatzipfile = os.path.join(outdir, f"{self.task_config.APREFIX}{jedi_dict_key}_iodastat.tgz")
iodastatzipfile = os.path.join(outdir, f"{self.task_config.APREFIX}{jedi_dict_key}_analysis.ioda_hofx_stats.tar.gz")

logger.info(f"Compressing ioda-stats generated files to {iodastatzipfile}")

Expand Down Expand Up @@ -301,7 +301,7 @@ def convert_gsi_diags(self) -> None:

# Tar up the ioda files
iodastatzipfile = os.path.join(self.task_config.DATA, 'atmos_gsi_ioda',
f"{self.task_config.APREFIX}atmos_gsi_ioda_diags.tgz")
f"{self.task_config.APREFIX}atmos_gsi_ioda_diags.tar.gz")
logger.info(f"Compressing GSI IODA files to {iodastatzipfile}")
# get list of iodastat files to put in tarball
iodastatfiles = glob.glob(os.path.join(output_dir_path, '*nc4'))
Expand Down
2 changes: 1 addition & 1 deletion ush/python/pygfs/task/snow_analysis.py
Original file line number Diff line number Diff line change
Expand Up @@ -148,7 +148,7 @@ def finalize(self) -> None:

# Compress and tar diag files into COM directory
self.tar_diag_files(self.task_config.COMOUT_SNOW_ANALYSIS,
f"{self.task_config.APREFIX}snowstat.tgz")
Comment thread
DavidHuber-NOAA marked this conversation as resolved.
f"{self.task_config.APREFIX}snow_analysis.ioda_hofx.tar")

# Save files to COM
logger.info(f"Saving files to COM")
Expand Down
2 changes: 1 addition & 1 deletion ush/python/pygfs/task/snowens_analysis.py
Original file line number Diff line number Diff line change
Expand Up @@ -152,7 +152,7 @@ def finalize(self) -> None:

# Compress and tar diag files into COM directory
self.tar_diag_files(self.task_config.COMOUT_SNOW_ANALYSIS,
f"{self.task_config.APREFIX_ENS}snowstat.tgz")
Comment thread
DavidHuber-NOAA marked this conversation as resolved.
f"{self.task_config.APREFIX_ENS}snow_analysis.ioda_hofx.ensmean.tar")

# Save files to COM
logger.info(f"Saving files to COM")
Expand Down