Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refactored archiving #2491

Merged
Merged
Show file tree
Hide file tree
Changes from 122 commits
Commits
Show all changes
146 commits
Select commit Hold shift + click to select a range
de29141
Initial set of archiving yamls.
DavidHuber-NOAA Mar 7, 2024
404a46b
rework gdas.yaml to Jinja template
DavidHuber-NOAA Mar 12, 2024
172dc68
Restart with a blank slate; rename gdas.yaml.
DavidHuber-NOAA Mar 12, 2024
60b9cd4
Create archive task class with initial gdas.yaml.j2
DavidHuber-NOAA Mar 15, 2024
754c196
Create configure method
DavidHuber-NOAA Mar 15, 2024
24dddf5
Updates to archive task.
DavidHuber-NOAA Mar 23, 2024
bdf66df
Add htar features to archive task, update gdas template. (untested)
DavidHuber-NOAA Apr 1, 2024
395bd62
Merge remote-tracking branch 'emc/develop' into feature/archive_yaml
DavidHuber-NOAA Apr 1, 2024
4d2e64c
Merge remote-tracking branch 'emc/develop' into feature/archive_yaml
DavidHuber-NOAA Apr 4, 2024
e8cb2c1
Update archive protocol function, add templates.
DavidHuber-NOAA Apr 8, 2024
4f14da5
Merge remote-tracking branch 'emc/develop' into feature/archive_yaml
DavidHuber-NOAA Apr 8, 2024
7b5a9cc
Archive protocol overhaul.
DavidHuber-NOAA Apr 9, 2024
b51cceb
Merge remote-tracking branch 'emc/develop' into feature/archive_yaml
DavidHuber-NOAA Apr 9, 2024
cbc815d
Update snowda archiving to match develop.
DavidHuber-NOAA Apr 9, 2024
a53c56a
Address PEP8 issues.
DavidHuber-NOAA Apr 9, 2024
aa204ed
Add gdasocean_analysis template
DavidHuber-NOAA Apr 9, 2024
fa98a28
Add local (ARCDIR) archiving to archive.py.
DavidHuber-NOAA Apr 11, 2024
406c7a1
Fix PEP8 errors.
DavidHuber-NOAA Apr 11, 2024
a99ecb5
Let archive.py handle tracker pslot renaming.
DavidHuber-NOAA Apr 12, 2024
1fcccf0
Rewrite archive job to use exglobal_archive.py.
DavidHuber-NOAA Apr 15, 2024
bd66212
Enabled GFS archiving and reworked some features
DavidHuber-NOAA Apr 17, 2024
dc9004d
Update wxflow hash.
DavidHuber-NOAA Apr 17, 2024
a8cbe2b
Add enkf archiving.
DavidHuber-NOAA Apr 18, 2024
8611bf8
Remove now-defunct hpssarch_gen.sh.
DavidHuber-NOAA Apr 18, 2024
533cccc
Address PEP8 warnings
DavidHuber-NOAA Apr 18, 2024
05f54dc
Fix additional PEP8 warnings
DavidHuber-NOAA Apr 18, 2024
338bdd2
Merge remote-tracking branch 'emc/develop' into feature/archive_yaml
DavidHuber-NOAA Apr 19, 2024
31a1d9a
Fixes for snow DA archiving.
DavidHuber-NOAA Apr 19, 2024
ec747f7
Remove unused fhmin.
DavidHuber-NOAA Apr 19, 2024
58840c4
Better explicitize enkf archiving
DavidHuber-NOAA Apr 19, 2024
7532aeb
Further explicitize archiving templates.
DavidHuber-NOAA Apr 22, 2024
8e5dc8d
Small fix for snow DA archiving.
DavidHuber-NOAA Apr 22, 2024
fa870b3
Fix TC genesis arcdir archiving.
DavidHuber-NOAA Apr 22, 2024
ddd1397
Merge remote-tracking branch 'emc/develop' into feature/archive_yaml
DavidHuber-NOAA Apr 22, 2024
5733738
Fix pgrb2b analysis filename
DavidHuber-NOAA Apr 22, 2024
02bb94e
Fix cyclone tracker filenames.
DavidHuber-NOAA Apr 22, 2024
a81ee42
Move forecast hours and restart intervals to config.base.
DavidHuber-NOAA Apr 23, 2024
066ffe2
Archive all sfcf* files.
DavidHuber-NOAA Apr 23, 2024
07a6537
Refactor restart/forecast hour-based archiving
DavidHuber-NOAA Apr 23, 2024
1c24f6b
Add TODOs for GDAS component archiving
DavidHuber-NOAA Apr 23, 2024
c8c2670
Explicitly archive gfs_collective files
DavidHuber-NOAA Apr 23, 2024
a3318e2
More explicitly archive gridded GFS Wave products
DavidHuber-NOAA Apr 23, 2024
6d932ba
Add optional wave station products to archives
DavidHuber-NOAA Apr 23, 2024
5e33693
Fix restart intervals in archiving templates.
DavidHuber-NOAA Apr 23, 2024
2458235
Address shellcheck suggestion
DavidHuber-NOAA Apr 24, 2024
200b0ef
Fix enkf_grp optional file declarations.
DavidHuber-NOAA Apr 24, 2024
7d06b11
Move verfrad warning files to optional list
DavidHuber-NOAA Apr 24, 2024
00c70e1
Fix restart_interval loop control.
DavidHuber-NOAA Apr 24, 2024
a23ee5e
Copy relevant changes to gefs config files.
DavidHuber-NOAA Apr 24, 2024
94011b3
Remove amsua files from archive list
DavidHuber-NOAA Apr 24, 2024
141249c
Merge remote-tracking branch 'emc/develop' into feature/archive_yaml
DavidHuber-NOAA Apr 24, 2024
78b063f
Fix wave FHMAX for GEFS.
DavidHuber-NOAA Apr 25, 2024
a30a05f
Added untested enkfgfs warning to archive.py
DavidHuber-NOAA Apr 25, 2024
6662db9
Merge branch 'feature/archive_yaml' of github.com:DavidHuber-NOAA/glo…
DavidHuber-NOAA Apr 25, 2024
1a3ac04
Remove debug print statement
DavidHuber-NOAA Apr 25, 2024
c8ede1b
Remove 'untested' warning
DavidHuber-NOAA Apr 25, 2024
fc6f085
Corrected genesis COM path
DavidHuber-NOAA Apr 25, 2024
fa0adb7
Remove unsaved atm_stoch files
DavidHuber-NOAA Apr 25, 2024
84a1dd8
Move restart_interval* to more logical locations
DavidHuber-NOAA Apr 25, 2024
d76c392
Remove unused gfs_restartb template
DavidHuber-NOAA Apr 25, 2024
546e385
Add master template outline.
DavidHuber-NOAA Apr 30, 2024
b412f7f
Adjust earc groups by resolution
DavidHuber-NOAA Apr 30, 2024
668ca3b
Fix template constants in jinja
DavidHuber-NOAA Apr 30, 2024
5f518db
Rename save_restart variables.
DavidHuber-NOAA Apr 30, 2024
3f16f8b
Fix atardir datasets
DavidHuber-NOAA Apr 30, 2024
912f9e7
Merge remote-tracking branch 'emc/develop' into feature/archive_yaml
DavidHuber-NOAA Apr 30, 2024
235830f
Update wxflow/jinja
DavidHuber-NOAA May 1, 2024
18c1271
Fix iaufhrs typo
DavidHuber-NOAA May 1, 2024
c99c8f4
Fix timedelta typo
DavidHuber-NOAA May 1, 2024
853167a
Apply fixes to master templates
DavidHuber-NOAA May 1, 2024
f4fc98f
Fix dataset parsing
DavidHuber-NOAA May 1, 2024
f788e6f
Add FATAL ERROR to fatal error messages
DavidHuber-NOAA May 1, 2024
13acc22
Fix whitespace
DavidHuber-NOAA May 1, 2024
c869649
Update gdas component head names
DavidHuber-NOAA May 2, 2024
4fa45b3
Flat-layer the master templates, fix wave archiving
DavidHuber-NOAA May 2, 2024
90a00e7
Merge remote-tracking branch 'emc/develop' into feature/archive_yaml
DavidHuber-NOAA May 2, 2024
eda06ed
Correct CICE namelist.
DavidHuber-NOAA May 2, 2024
51b7838
Add quick fix for wgrib.
DavidHuber-NOAA May 2, 2024
95d88a9
Replace bash templates in Jinja templates.
DavidHuber-NOAA May 3, 2024
32010d0
First attempt at reenabling aerosols
DavidHuber-NOAA May 3, 2024
356be5e
Fix snow diag tarring
DavidHuber-NOAA May 3, 2024
930d013
Fix build_all comment
DavidHuber-NOAA May 3, 2024
d524483
Fix cice restart variable name
DavidHuber-NOAA May 3, 2024
cfb73fe
Merge remote-tracking branch 'emc/develop' into feature/archive_yaml
DavidHuber-NOAA May 3, 2024
b79e481
Transfer gfs config fixes to gefs configs
DavidHuber-NOAA May 3, 2024
43d1aed
Fix gdas_tasks
DavidHuber-NOAA May 3, 2024
23d6563
Fix aerosol comment
DavidHuber-NOAA May 3, 2024
fa45977
Turn aerosol analyses on for gfs and gdas runs
DavidHuber-NOAA May 3, 2024
ac9128d
Use aero cdump variables to determine archiving
DavidHuber-NOAA May 3, 2024
7fd5b76
Replace waves with aerosols in config.fcst
DavidHuber-NOAA May 3, 2024
b483745
Change mandatory to required
DavidHuber-NOAA May 3, 2024
cc89c16
Make wave point files required
DavidHuber-NOAA May 3, 2024
1ec205c
Add wave IBP data
DavidHuber-NOAA May 6, 2024
d471e9e
Split archive execute method, determine commands (htar/tar, chmod, et…
DavidHuber-NOAA May 6, 2024
196db3e
Remove unused numpy, timedelta modules
DavidHuber-NOAA May 6, 2024
96ac442
Split enkfgdas and enkfgfs master templates; create one tarball at a …
DavidHuber-NOAA May 6, 2024
cfab211
Merge remote-tracking branch 'emc/develop' into feature/archive_yaml
DavidHuber-NOAA May 8, 2024
c018324
Handle indention at the master level
DavidHuber-NOAA May 8, 2024
4969af8
Merge remote-tracking branch 'emc/develop' into feature/archive_yaml
DavidHuber-NOAA May 9, 2024
f1b8e88
Consolidated enkf heads to master template
DavidHuber-NOAA May 9, 2024
8f8ed43
Set PYTHONPATH to head of ush/python
DavidHuber-NOAA May 9, 2024
be28de1
Clean up archive.py
DavidHuber-NOAA May 9, 2024
aaa3876
Fix ocean archiving
DavidHuber-NOAA May 9, 2024
48578f7
Removed unused COM, updated gdasocean template
DavidHuber-NOAA May 9, 2024
e450662
Explicitized gdasocean_analysis template
DavidHuber-NOAA May 9, 2024
f4cd9aa
Clean up some of the templates
DavidHuber-NOAA May 9, 2024
91b7820
Merge remote-tracking branch 'emc/develop' into feature/archive_yaml
DavidHuber-NOAA May 9, 2024
d72f9b4
Merge remote-tracking branch 'emc/develop' into feature/archive_yaml
DavidHuber-NOAA May 10, 2024
2e3b461
Do not archive ocean analysis on the first cycle
DavidHuber-NOAA May 10, 2024
4e9ecc0
Fix restart copies in forecast_postdet.sh
DavidHuber-NOAA May 10, 2024
c945de4
Add archive support for jedi ATM; fix reset time offsets when DOIAU=NO
DavidHuber-NOAA May 10, 2024
655c197
Reverted restart offset for enkf (does not change with IAU)
DavidHuber-NOAA May 10, 2024
af7c968
Add missing variables
DavidHuber-NOAA May 13, 2024
5543214
Fix VFYARC archiving
DavidHuber-NOAA May 13, 2024
4436a91
Fix offsets for ENKF IAU
DavidHuber-NOAA May 13, 2024
baf6da7
Fix ocean/ice GDAS products
DavidHuber-NOAA May 13, 2024
990d49b
Wrap optional files in appropriate flags
DavidHuber-NOAA May 13, 2024
fe5d68f
Use RUN instead of CDUMP for aerosols.
DavidHuber-NOAA May 13, 2024
9a0704e
Added an 1152 case for earc
DavidHuber-NOAA May 13, 2024
50305dc
Replace CDUMP with RUN for wave, aerosol configs
DavidHuber-NOAA May 13, 2024
dfcf804
Move WGRIB def to module_base
DavidHuber-NOAA May 13, 2024
0106d25
Added missing ;;.
DavidHuber-NOAA May 13, 2024
c67c36f
Fix IAUFHRS
DavidHuber-NOAA May 14, 2024
f27839c
Make gsistat mandatory; remove duplicate flux files
DavidHuber-NOAA May 14, 2024
6e74ce8
Fix ocean time step to archive
DavidHuber-NOAA May 14, 2024
0986bc0
Add missing ice IC file to archive.
DavidHuber-NOAA May 14, 2024
806ec5d
Add missing ocean CSVs.
DavidHuber-NOAA May 14, 2024
7dd2fd4
Archive *gdas hourly outputs at 3-hour intervals
DavidHuber-NOAA May 14, 2024
a9fa4e3
Add missing keys and fix bugs
DavidHuber-NOAA May 14, 2024
4795b67
Merge remote-tracking branch 'emc/develop' into feature/archive_yaml
DavidHuber-NOAA May 14, 2024
c2b981c
Flesh out enkf restarts.
DavidHuber-NOAA May 16, 2024
714ab9e
Key enkf atmf netcdf files off of IAUFHRS_ENKF
DavidHuber-NOAA May 16, 2024
8f2d4af
Add missing logs and inc file to enkf*.tar
DavidHuber-NOAA May 16, 2024
1220fac
Make atma files optional, correct log name
DavidHuber-NOAA May 16, 2024
f08c2b8
Add sfcanl data files to gdas restart tarballs
DavidHuber-NOAA May 16, 2024
cfd5fbb
Move misplaced endif
DavidHuber-NOAA May 16, 2024
83b969c
Add iaufhrs_enkf definition
DavidHuber-NOAA May 16, 2024
629bf6f
Merge remote-tracking branch 'emc/develop' into feature/archive_yaml
DavidHuber-NOAA May 16, 2024
7e205e7
Updating nc check script to verify time dimensions
DavidHuber-NOAA May 17, 2024
478a5ba
Ignore shellcheck warning
DavidHuber-NOAA May 17, 2024
3be3bd5
Fixed ncfile variable name
DavidHuber-NOAA May 17, 2024
4e4c0e2
Do not try to collect ecen, esfc logs on first cycle
DavidHuber-NOAA May 17, 2024
ffeaf75
Move staticmethod for compatability with older Python versions
DavidHuber-NOAA May 17, 2024
0c4d92d
Merge remote-tracking branch 'emc/develop' into feature/archive_yaml
DavidHuber-NOAA May 20, 2024
5aeccac
Separate stmp/ptmp for orion and hercules.
DavidHuber-NOAA May 21, 2024
5baa7f5
Revert "Separate stmp/ptmp for orion and hercules."
DavidHuber-NOAA May 21, 2024
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
2 changes: 1 addition & 1 deletion jobs/JGDAS_ENKF_ARCHIVE
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ MEMDIR="ensstat" YMD=${PDY} HH=${cyc} declare_from_tmpl -rx \
# Run archive script
###############################################################

"${SCRgfs}/exgdas_enkf_earc.sh"
"${SCRgfs}/exgdas_enkf_earc.py"
status=$?
[[ ${status} -ne 0 ]] && exit "${status}"

Expand Down
6 changes: 3 additions & 3 deletions jobs/JGLOBAL_ARCHIVE
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,9 @@ YMD=${PDY} HH=${cyc} declare_from_tmpl -rx COM_ATMOS_ANALYSIS COM_ATMOS_BUFR COM
COM_SNOW_ANALYSIS \
COM_ICE_HISTORY COM_ICE_INPUT COM_ICE_RESTART COM_ICE_GRIB \
COM_OBS COM_TOP \
COM_OCEAN_HISTORY COM_OCEAN_INPUT COM_OCEAN_RESTART COM_OCEAN_GRIB COM_OCEAN_NETCDF \
COM_OCEAN_HISTORY COM_OCEAN_RESTART COM_OCEAN_GRIB COM_OCEAN_NETCDF \
COM_OCEAN_ANALYSIS \
COM_WAVE_GRID COM_WAVE_HISTORY COM_WAVE_STATION \
COM_WAVE_GRID COM_WAVE_HISTORY COM_WAVE_STATION COM_WAVE_RESTART \
COM_ATMOS_OZNMON COM_ATMOS_RADMON COM_ATMOS_MINMON COM_CONF

for grid in "0p25" "0p50" "1p00"; do
Expand All @@ -30,7 +30,7 @@ done
# Run archive script
###############################################################

${GLOBALARCHIVESH:-${SCRgfs}/exglobal_archive.sh}
${GLOBALARCHIVESH:-${SCRgfs}/exglobal_archive.py}
status=$?
[[ ${status} -ne 0 ]] && exit "${status}"

Expand Down
5 changes: 5 additions & 0 deletions jobs/rocoto/arch.sh
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,11 @@ source "${HOMEgfs}/ush/preamble.sh"
status=$?
[[ ${status} -ne 0 ]] && exit "${status}"

###############################################################
# setup python path for workflow utilities and tasks
PYTHONPATH="${PYTHONPATH:+${PYTHONPATH}:}${HOMEgfs}/ush/python"
export PYTHONPATH

export job="arch"
export jobid="${job}.$$"

Expand Down
6 changes: 5 additions & 1 deletion jobs/rocoto/earc.sh
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,11 @@ source "${HOMEgfs}/ush/preamble.sh"
status=$?
[[ ${status} -ne 0 ]] && exit "${status}"

###############################################################
# setup python path for workflow utilities and tasks
PYTHONPATH="${PYTHONPATH:+${PYTHONPATH}:}${HOMEgfs}/ush/python"
export PYTHONPATH

export job="earc"
export jobid="${job}.$$"

Expand All @@ -16,5 +21,4 @@ export jobid="${job}.$$"
"${HOMEgfs}/jobs/JGDAS_ENKF_ARCHIVE"
status=$?


exit "${status}"
4 changes: 4 additions & 0 deletions modulefiles/module_base.hera.lua
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,10 @@ load(pathJoin("metplus", (os.getenv("metplus_ver") or "None")))
load(pathJoin("py-xarray", (os.getenv("py_xarray_ver") or "None")))

setenv("WGRIB2","wgrib2")

-- Stop gap fix for wgrib with spack-stack 1.6.0
-- TODO Remove this when spack-stack issue #1097 is resolved
setenv("WGRIB","wgrib")
setenv("UTILROOT",(os.getenv("prod_util_ROOT") or "None"))

--prepend_path("MODULEPATH", pathJoin("/scratch1/NCEPDEV/global/glopara/git/prepobs/v" .. (os.getenv("prepobs_run_ver") or "None"), "modulefiles"))
Expand Down
4 changes: 4 additions & 0 deletions modulefiles/module_base.hercules.lua
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,10 @@ load(pathJoin("metplus", (os.getenv("metplus_ver") or "None")))
load(pathJoin("py-xarray", (os.getenv("py_xarray_ver") or "None")))

setenv("WGRIB2","wgrib2")

-- Stop gap fix for wgrib with spack-stack 1.6.0
-- TODO Remove this when spack-stack issue #1097 is resolved
setenv("WGRIB","wgrib")
setenv("UTILROOT",(os.getenv("prod_util_ROOT") or "None"))

prepend_path("MODULEPATH", pathJoin("/work/noaa/global/glopara/git/prepobs/feature-GFSv17_com_reorg_log_update/modulefiles"))
Expand Down
4 changes: 4 additions & 0 deletions modulefiles/module_base.jet.lua
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,10 @@ load(pathJoin("py-xarray", (os.getenv("py_xarray_ver") or "None")))
load(pathJoin("perl", (os.getenv("perl_ver") or "None")))

setenv("WGRIB2","wgrib2")

-- Stop gap fix for wgrib with spack-stack 1.6.0
-- TODO Remove this when spack-stack issue #1097 is resolved
setenv("WGRIB","wgrib")
setenv("UTILROOT",(os.getenv("prod_util_ROOT") or "None"))

--prepend_path("MODULEPATH", pathJoin("/lfs4/HFIP/hfv3gfs/glopara/git/prepobs/v" .. (os.getenv("prepobs_run_ver") or "None"), "modulefiles"))
Expand Down
4 changes: 4 additions & 0 deletions modulefiles/module_base.orion.lua
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,10 @@ load(pathJoin("metplus", (os.getenv("metplus_ver") or "None")))
load(pathJoin("py-xarray", (os.getenv("py_xarray_ver") or "None")))

setenv("WGRIB2","wgrib2")

-- Stop gap fix for wgrib with spack-stack 1.6.0
-- TODO Remove this when spack-stack issue #1097 is resolved
setenv("WGRIB","wgrib")
setenv("UTILROOT",(os.getenv("prod_util_ROOT") or "None"))

--prepend_path("MODULEPATH", pathJoin("/work/noaa/global/glopara/git/prepobs/v" .. (os.getenv("prepobs_run_ver") or "None"), "modulefiles"))
Expand Down
4 changes: 4 additions & 0 deletions modulefiles/module_base.s4.lua
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,10 @@ load(pathJoin("metplus", (os.getenv("metplus_ver") or "None")))
load(pathJoin("py-xarray", (os.getenv("py_xarray_ver") or "None")))

setenv("WGRIB2","wgrib2")

-- Stop gap fix for wgrib with spack-stack 1.6.0
-- TODO Remove this when spack-stack issue #1097 is resolved
setenv("WGRIB","wgrib")
setenv("UTILROOT",(os.getenv("prod_util_ROOT") or "None"))

--prepend_path("MODULEPATH", pathJoin("/data/prod/glopara/git/prepobs/v" .. (os.getenv("prepobs_run_ver") or "None"), "modulefiles"))
Expand Down
85 changes: 85 additions & 0 deletions parm/archive/arcdir.yaml.j2
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
{% set cycle_HH = current_cycle | strftime("%H") %}
{% set cycle_YMDH = current_cycle | to_YMDH %}
{% set cycle_YMD = current_cycle | to_YMD %}
{% set head = RUN + ".t" + cycle_HH + "z." %}
{% if RUN == "gdas" or RUN == "gfs" %}
deterministic:
mkdir:
- "{{ ARCDIR }}"
{% if RUN == "gfs" %}
- "{{ ARCDIR }}/tracker.{{ cycle_YMDH }}/{{ RUN }}"
{% endif %}
{% if FITSARC %}
{% set VFYARC = ROTDIR + "/vrfyarch" %}
- "{{ VFYARC }}/{{ RUN }}.{{ cycle_YMD }}/{{ cycle_HH }}"
{% endif %}
copy:
{% if current_cycle != SDATE and MODE == "cycled" %}
{% if DO_JEDIATMVAR %}
- ["{{ COM_ATMOS_ANALYSIS }}/{{ head }}atmstat", "{{ ARCDIR }}/atmstat.{{ RUN }}.{{ cycle_YMDH }}"]
{% else %}
- ["{{ COM_ATMOS_ANALYSIS }}/{{ head }}gsistat", "{{ ARCDIR }}/gsistat.{{ RUN }}.{{ cycle_YMDH }}"]
{% endif %}
{% if DO_JEDISNOWDA %}
- ["{{ COM_SNOW_ANALYSIS }}/{{ head }}snowstat.tgz", "{{ ARCDIR }}/snowstat.{{ RUN }}.{{ cycle_YMDH }}.tgz"]
{% endif %}
{% if AERO_ANL_CDUMP == RUN or AERO_ANL_CDUMP == "both" %}
- ["{{ COM_CHEM_ANALYSIS }}/{{ head }}aerostat", "{{ ARCDIR }}/aerostat.{{ RUN }}.{{ cycle_YMDH }}"]
{% endif %}
- ["{{ COM_ATMOS_GRIB_1p00 }}/{{ head }}pgrb2.1p00.anl", "{{ ARCDIR }}/pgbanl.{{ RUN }}.{{ cycle_YMDH }}.grib2"]
{% endif %} # Full cycle
{% if RUN == "gfs" %}
{% set fhmax, fhout = FHMAX_GFS, FHOUT_GFS %}
{% elif RUN == "gdas" %}
{% set fhmax, fhout = FHMAX, FHOUT %}
{% endif %}
{% for fhr in range(0, fhmax + fhout, fhout) %}
- ["{{ COM_ATMOS_GRIB_1p00 }}/{{ head }}pgrb2.1p00.f{{ '%03d' % fhr }}", "{{ ARCDIR }}/pgbf{{ '%02d' % fhr }}.{{ RUN }}.{{ cycle_YMDH }}.grib2"]
{% endfor %}
{% if RUN == "gfs" %}
{% if FITSARC %}
{% if FHMAX_FITS is defined %}
{% set fhmax = FHMAX_FITS %}
{% else %}
{% set fhmax = FHMAX_GFS %}
{% endif %}
{% for fhr in range(0, fhmax + 6, 6) %}
{% set sfcfile = "/" + head + "sfcf" + '%03d'|format(fhr) + ".nc" %}
{% set sigfile = "/" + head + "atmf" + '%03d'|format(fhr) + ".nc" %}
- ["{{COM_ATMOS_HISTORY}}/{{ sfcfile }}", "{{ VFYARC }}/{{ RUN }}.{{ cycle_YMD }}/{{ cycle_HH }}/{{ sfcfile }}"]
- ["{{COM_ATMOS_HISTORY}}/{{ sigfile }}", "{{ VFYARC }}/{{ RUN }}.{{ cycle_YMD }}/{{ cycle_HH }}/{{ sigfile }}"]
{% endfor %}
{% endif %} ## FITSARC
{% if path_exists(COM_ATMOS_GENESIS ~ "/storms.gfso.atcf_gen." ~ cycle_YMDH) %}
- ["{{ COM_ATMOS_GENESIS }}/storms.gfso.atcf_gen.{{ cycle_YMDH }}", "{{ ARCDIR }}/storms.gfso.atcf_gen.{{ cycle_YMDH }}"]
- ["{{ COM_ATMOS_GENESIS }}/storms.gfso.atcf_gen.altg.{{ cycle_YMDH }}", "{{ ARCDIR }}/storms.gfso.atcf_gen.altg.{{ cycle_YMDH }}"]
{% endif %}
{% if path_exists(COM_ATMOS_GENESIS ~ "/trak.gfso.atcfunix." ~ cycle_YMDH) %}
- ["{{ COM_ATMOS_GENESIS }}/trak.gfso.atcfunix.{{ cycle_YMDH }}", "{{ ARCDIR }}/trak.gfso.atcfunix.{{ cycle_YMDH }}"]
- ["{{ COM_ATMOS_GENESIS }}/trak.gfso.atcfunix.altg.{{ cycle_YMDH }}", "{{ ARCDIR }}/trak.gfso.atcfunix.altg.{{ cycle_YMDH }}"]
{% endif %}
## Only created if tracking is on and there were systems to track
{% for basin in ["epac", "natl"] %}
{% if path_exists(COM_ATMOS_TRACK + "/" + basin) %}
- ["{{ COM_ATMOS_TRACK }}/{{ basin }}", "{{ ARCDIR }}/{{ basin }}"]
{% endif %}
{% endfor %}
{% endif %} ## RUN == "gfs"
{% if arch_tracks %}
- ["{{ COM_ATMOS_TRACK }}/atcfunix.{{ RUN }}.{{ cycle_YMDH }}", "{{ ARCDIR }}/atcfunix.{{ RUN }}.{{ cycle_YMDH }}"]
- ["{{ COM_ATMOS_TRACK }}/atcfunixp.{{ RUN }}.{{ cycle_YMDH }}", "{{ ARCDIR }}/atcfunixp.{{ RUN }}.{{ cycle_YMDH }}"]
{% endif %}
{% endif %} # gfs or gdas
{% if current_cycle != SDATE and (RUN == "enkfgdas" or RUN == "enkfgfs") %}
ensemble:
mkdir:
- "{{ ARCDIR }}"
copy:
{% if DO_JEDIATMENS %}
- ["{{ COM_ATMOS_ANALYSIS_ENSSTAT }}/{{ head }}atmensstat", "{{ ARCDIR }}/atmensstat.{{ RUN }}.{{ cycle_YMDH }}"]
- ["{{ COM_ATMOS_ANALYSIS_ENSSTAT }}/{{ head }}atminc.ensmean.nc", "{{ ARCDIR }}/atmensstat.{{ RUN }}.{{ cycle_YMDH }}.ensmean.nc"]
{% else %}
- ["{{ COM_ATMOS_ANALYSIS_ENSSTAT }}/{{ head }}enkfstat", "{{ ARCDIR }}/enkfstat.{{ RUN }}.{{ cycle_YMDH }}"]
- ["{{ COM_ATMOS_ANALYSIS_ENSSTAT }}/{{ head }}gsistat.ensmean", "{{ ARCDIR }}/gsistat.{{ RUN }}.{{ cycle_YMDH }}.ensmean"]
{% endif %}
{% endif %} # enkfgdas or enkfgfs
7 changes: 7 additions & 0 deletions parm/archive/chem.yaml.j2
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
chem:
{% set head = "gocart" %}
name: "CHEM"
target: "{{ ATARDIR }}/{{ cycle_YMDH }}/chem.tar"
required:
# TODO explicitize this set
- "{{ COM_CHEM_HISTORY | relpath(ROTDIR) }}/{{ head }}*"
63 changes: 63 additions & 0 deletions parm/archive/enkf.yaml.j2
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
enkf:
name: "ENKF"
target: "{{ ATARDIR }}/{{ cycle_YMDH }}/{{ RUN }}.tar"
required:
{% for fhr in range(fhmin, fhmax + fhout, fhout) %}
- "{{ COM_ATMOS_HISTORY_ENSSTAT | relpath(ROTDIR) }}/{{ head }}atmf{{ '%03d' % fhr }}.ensmean.nc"
- "{{ COM_ATMOS_HISTORY_ENSSTAT | relpath(ROTDIR) }}/{{ head }}sfcf{{ '%03d' % fhr }}.ensmean.nc"
{% if ENKF_SPREAD %}
- "{{ COM_ATMOS_HISTORY_ENSSTAT | relpath(ROTDIR) }}/{{ head }}atmf{{ '%03d' % fhr }}.ensspread.nc"
{% endif %}
{% endfor %}
{% if current_cycle != SDATE %}
{% if not DO_JEDIATMENS %}
{% set da_files = ["enkfstat",
"gsistat.ensmean",
"cnvstat.ensmean",
"oznstat.ensmean",
"radstat.ensmean"] %}
{% else %}
{% set da_files = ["atmens.yaml",
"atmensstat"] %}
{% endif %}
{% for file in da_files %}
- "{{ COM_ATMOS_ANALYSIS_ENSSTAT | relpath(ROTDIR) }}/{{ head }}{{ file }}"
{% endfor %}
{% if DOIAU %}
{% for fhr in iaufhrs %}
{% if fhr == IAU_OFFSET %}
{% if do_calc_increment %}
- "{{ COM_ATMOS_ANALYSIS_ENSSTAT | relpath(ROTDIR) }}/{{ head }}atmanl.ensmean.nc"
{% endif %} # calc increment
- "{{ COM_ATMOS_ANALYSIS_ENSSTAT | relpath(ROTDIR) }}/{{ head }}ratminc.ensmean.nc"
{% else %} # fhr != IAU_OFFSET
- "{{ COM_ATMOS_ANALYSIS_ENSSTAT | relpath(ROTDIR) }}/{{ head }}atma{{ '%03d' % fhr }}.ensmean.nc"
- "{{ COM_ATMOS_ANALYSIS_ENSSTAT | relpath(ROTDIR) }}/{{ head }}atmi{{ '%03d' % fhr }}.ensmean.nc"
{% endif %} # fhr == IAU_OFFSET
{% endfor %} # IAUFHRS
{% endif %} # DOIAU
{% if DOHYBVAR %}
{% if DO_JEDIATMENS %}
{% set steps = ["atmensanlinit", "atmensanlrun", "atmensanlfinal"] %}
{% else %}
{% set steps = ["eobs", "eupd"] %}
{% if lobsdiag_forenkf %}
{% do steps.append("ediag") %}
{% else %}
{% for mem in range(1, nmem_ens + 1) %}
{% do steps.append("eomg_mem{{ '%03d' % mem }}") %}
{% endfor %}
{% endif %}
{% do steps.append("echgres") %}
{% do steps.append("esfc") %}
# TODO archive ecen logs based on actual groups. Will need to emulate numpy.array_split to do so.
{% do steps.append("ecen*") %}
{% endif %}
{% for step in steps %}
- "logs/{{ cycle_YMDH }}/{{ RUN }}{{ step }}.log"
{% endfor %}
{% for mem in range(1, nmem_ens + 1) %}
- "logs/{{ cycle_YMDH }}/{{ RUN }}fcst_mem{{ '%03d' % mem }}.log"
{% endfor %}
{% endif %} # lobsdiag_forenkf
{% endif %} # not the first cycle
43 changes: 43 additions & 0 deletions parm/archive/enkf_grp.yaml.j2
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
enkf_grp:
name: "ENKF_GRP"
target: "{{ ATARDIR }}/{{ cycle_YMDH }}/{{ RUN }}_grp{{ ENSGRP }}.tar"
required:
{% for mem in range(first_group_mem, last_group_mem + 1) %}
{% set imem = mem - first_group_mem %}
{% set COM_ATMOS_ANALYSIS_MEM = COM_ATMOS_ANALYSIS_MEM_list[imem] %}
{% set COM_ATMOS_HISTORY_MEM = COM_ATMOS_HISTORY_MEM_list[imem] %}
{% set COM_ATMOS_RESTART_MEM = COM_ATMOS_RESTART_MEM_list[imem] %}

{% for fhr in range(fhmin, fhmax+fhout, fhout) %}
- "{{ COM_ATMOS_HISTORY_MEM | relpath(ROTDIR) }}/{{ head }}sfcf{{ '%03d' % fhr }}.nc"
- "{{ COM_ATMOS_HISTORY_MEM | relpath(ROTDIR) }}/{{ head }}atmf{{ '%03d' % fhr }}.nc"
{% endfor %}

{% if current_cycle != SDATE %}
{% if not lobsdiag_forenkf %}
- "{{ COM_ATMOS_RESTART_MEM | relpath(ROTDIR) }}/{{ head }}gsistat"
{% endif %}
{% if do_calc_increment %}
- "{{ COM_ATMOS_ANALYSIS_MEM | relpath(ROTDIR) }}/{{ head }}atmanl.nc"
{% else %}
- "{{ COM_ATMOS_ANALYSIS_MEM | relpath(ROTDIR) }}/{{ head }}ratminc.nc"
{% endif %}
{% endif %}

{% for iaufhr in iaufhrs if iaufhr != 6 %}
{% set iaufhr = iaufhr %}
{% if do_calc_increment %}
- "{{ COM_ATMOS_ANALYSIS_MEM | relpath(ROTDIR) }}/{{ head }}atma{{ '%03d' % iaufhr }}.nc"
{% else %}
- "{{ COM_ATMOS_ANALYSIS_MEM | relpath(ROTDIR) }}/{{ head }}ratmi{{ '%03d' % iaufhr }}.nc"
{% endif %}
{% endfor %} # iaufhr in iaufhrs
{% endfor %} # first_group_mem to last_group_mem
optional:
{% if current_cycle != SDATE and not lobsdiag_forenkf %}
{% for mem in range(first_group_mem, last_group_mem + 1) %}
{% set imem = mem - first_group_mem %}
{% set COM_ATMOS_RESTART_MEM = COM_ATMOS_RESTART_MEM_list[imem] %}
- "{{ COM_ATMOS_RESTART_MEM | relpath(ROTDIR) }}/{{ head }}cnvstat"
{% endfor %}
{% endif %}
35 changes: 35 additions & 0 deletions parm/archive/enkf_restarta_grp.yaml.j2
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
enkf_restarta_grp:
name: "ENKF_RESTARTA_GRP"
target: "{{ ATARDIR }}/{{ cycle_YMDH }}/{{ RUN }}_restarta_grp{{ ENSGRP }}.tar"
required:
{% for mem in range(first_group_mem, last_group_mem + 1) %}
{% set imem = mem - first_group_mem %}
{% set COM_ATMOS_ANALYSIS_MEM = COM_ATMOS_ANALYSIS_MEM_list[imem] %}
{% set COM_ATMOS_HISTORY_MEM = COM_ATMOS_HISTORY_MEM_list[imem] %}
{% set COM_ATMOS_RESTART_MEM = COM_ATMOS_RESTART_MEM_list[imem] %}

{% if not lobsdiag_forenkf %}
- "{{ COM_ATMOS_RESTART_MEM | relpath(ROTDIR) }}/{{ head }}abias"
- "{{ COM_ATMOS_RESTART_MEM | relpath(ROTDIR) }}/{{ head }}abias_air"
- "{{ COM_ATMOS_RESTART_MEM | relpath(ROTDIR) }}/{{ head }}abias_int"
- "{{ COM_ATMOS_RESTART_MEM | relpath(ROTDIR) }}/{{ head }}abias_pc"
{% endif %}

{% if DOHYBVAR and DOIAU_ENKF %}
{% set anl_delta = "-3H" | to_timedelta %}
{% else %}
{% set anl_delta = "0H" | to_timedelta %}
{% endif %}
{% set anl_time = current_cycle | add_to_datetime(anl_delta) %}
{% for itile in range(1, 7) %}
- "{{ COM_ATMOS_RESTART_MEM | relpath(ROTDIR) }}/{{ anl_time | to_YMD }}.{{ anl_time | strftime("%H") }}0000.sfcanl_data.tile{{ itile }}.nc"
{% endfor %}
{% endfor %} # first_group_mem to last_group_mem
optional:
{% if not lobsdiag_forenkf and not DO_JEDIATMENS %}
{% for mem in range(first_group_mem, last_group_mem + 1) %}
{% set imem = mem - first_group_mem %}
{% set COM_ATMOS_RESTART_MEM = COM_ATMOS_RESTART_MEM_list[imem] %}
- "{{ COM_ATMOS_RESTART_MEM | relpath(ROTDIR) }}/{{ head }}cnvstat"
{% endfor %}
{% endif %}
20 changes: 20 additions & 0 deletions parm/archive/enkf_restartb_grp.yaml.j2
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
enkf_restartb_grp:
name: "ENKF_RESTARTB_GRP"
target: "{{ ATARDIR }}/{{ cycle_YMDH }}/{{ RUN }}_restartb_grp{{ ENSGRP }}.tar"
required:
{% for mem in range(first_group_mem, last_group_mem + 1) %}
{% set imem = mem - first_group_mem %}
{% set COM_ATMOS_RESTART_MEM = COM_ATMOS_RESTART_MEM_list[imem] %}
{% for r_time in range(restart_interval, fhmax + 1, restart_interval) %}
{% set r_timedelta = (r_time | string + "H") | to_timedelta %}
{% set r_dt = current_cycle | add_to_datetime(r_timedelta) %}
{% set r_prefix = r_dt | to_YMD + "." + r_dt | strftime("%H") + "0000" %}
{% for itile in range(1, 7) %}
{% for datatype in ["ca_data", "fv_core.res", "fv_srf_wnd.res", "fv_tracer.res", "phy_data", "sfc_data"] %}
- "{{ COM_ATMOS_RESTART_MEM | relpath(ROTDIR) }}/{{ r_prefix }}.{{datatype}}.tile{{ itile }}.nc"
{% endfor %}
{% endfor %}
- "{{ COM_ATMOS_RESTART_MEM | relpath(ROTDIR) }}/{{ r_prefix }}.coupler.res"
- "{{ COM_ATMOS_RESTART_MEM | relpath(ROTDIR) }}/{{ r_prefix }}.fv_core.res.nc"
{% endfor %}
{% endfor %}
Loading
Loading