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

Add an archive task to GEFS system to archive files in HPSS #2895

Merged
merged 151 commits into from
Sep 25, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
151 commits
Select commit Hold shift + click to select a range
9459e9f
added gefs.yaml.j2
AntonMFernando-NOAA Sep 7, 2024
c131171
added master_gefs.yaml.j2
AntonMFernando-NOAA Sep 7, 2024
586efb1
Merge branch 'NOAA-EMC:develop' into feature/gefs-arch-hpss
AntonMFernando-NOAA Sep 7, 2024
e8c719b
modifed gefs.yaml.j2
AntonMFernando-NOAA Sep 9, 2024
5cb7ad6
modified ush/python/pygfs/task/archive.py
AntonMFernando-NOAA Sep 9, 2024
f0e834b
modified parm\config\gefs\yaml\defaults.yaml
AntonMFernando-NOAA Sep 9, 2024
786bf96
modified gefs.yaml.j2
AntonMFernando-NOAA Sep 9, 2024
cbba6d2
Merge branch 'NOAA-EMC:develop' into feature/gefs-arch-hpss
AntonMFernando-NOAA Sep 9, 2024
b7acfc9
Merge branch 'NOAA-EMC:develop' into feature/gefs-arch-hpss
AntonMFernando-NOAA Sep 10, 2024
0f34d5a
modified gefs.yaml.j2
AntonMFernando-NOAA Sep 11, 2024
e070783
Merge branch 'feature/gefs-arch-hpss' of https://github.com/AntonMFer…
AntonMFernando-NOAA Sep 11, 2024
67a2f14
modified gefs.yaml.j2
AntonMFernando-NOAA Sep 11, 2024
93ba555
renamed gefs.yaml.j2
AntonMFernando-NOAA Sep 11, 2024
8fbe947
Merge branch 'NOAA-EMC:develop' into feature/gefs-arch-hpss
AntonMFernando-NOAA Sep 11, 2024
85deb26
modified gefs_atmos.yaml.j2
AntonMFernando-NOAA Sep 11, 2024
8959362
Merge branch 'feature/gefs-arch-hpss' of https://github.com/AntonMFer…
AntonMFernando-NOAA Sep 11, 2024
80f47c1
modifed master_gefs.yaml.j2
AntonMFernando-NOAA Sep 11, 2024
6baa6ca
modified gefs_atmos.yaml.j2
AntonMFernando-NOAA Sep 11, 2024
61e0331
deleted gefs.yaml.j2
AntonMFernando-NOAA Sep 11, 2024
16a74e0
modified gefs_atmos.yaml.j2
AntonMFernando-NOAA Sep 11, 2024
212f0ad
modified gefs_atmos.yaml.j2
AntonMFernando-NOAA Sep 11, 2024
8de666a
modified gefs_Atmos.yaml.j2
AntonMFernando-NOAA Sep 11, 2024
5e71e3b
modified gefs_atmos.yaml.j2
AntonMFernando-NOAA Sep 11, 2024
29b5b99
modified gefs_atmos.yaml.j2
AntonMFernando-NOAA Sep 11, 2024
33f274d
Merge branch 'NOAA-EMC:develop' into feature/gefs-arch-hpss
AntonMFernando-NOAA Sep 12, 2024
16482db
modified gefs_atmos.yaml.j2
AntonMFernando-NOAA Sep 12, 2024
8c24913
Merge branch 'feature/gefs-arch-hpss' of https://github.com/AntonMFer…
AntonMFernando-NOAA Sep 12, 2024
50d21d8
modified gefs_atmos.yaml.j2
AntonMFernando-NOAA Sep 12, 2024
b2c84e6
modified gefs_ocean.yaml.j2
AntonMFernando-NOAA Sep 12, 2024
29944bd
modified gefs_atmos.yaml.j2
AntonMFernando-NOAA Sep 12, 2024
8e41826
added gefs_ocean.yaml.j2
AntonMFernando-NOAA Sep 12, 2024
76aa61b
modified gefs_ocean.yaml.j2
AntonMFernando-NOAA Sep 12, 2024
99b6fff
modifed gefs_ocean.yaml.j2
AntonMFernando-NOAA Sep 12, 2024
88d54e7
modified gefs_ocean.yaml.j2
AntonMFernando-NOAA Sep 12, 2024
85fc9a1
modified gefs_ocean.yaml.j2
AntonMFernando-NOAA Sep 12, 2024
af02c33
modified gefs_ocean.yaml.j2
AntonMFernando-NOAA Sep 12, 2024
c6dca50
modified gefs_ocean.yaml.j2
AntonMFernando-NOAA Sep 12, 2024
9b63e80
modified gefs_ocean.yaml.j2
AntonMFernando-NOAA Sep 12, 2024
a3c69a9
modified JGLOBAL_ARCHIVE and config.com
AntonMFernando-NOAA Sep 12, 2024
5eeba29
modified gefs_ocean.yaml.j2
AntonMFernando-NOAA Sep 12, 2024
2fb56af
modified gefs_wave.yaml.j2
AntonMFernando-NOAA Sep 12, 2024
bf47996
modified master_gefs.yaml.j2
AntonMFernando-NOAA Sep 12, 2024
9c20784
updated archive directory
AntonMFernando-NOAA Sep 12, 2024
79cf834
modified gefs_ice.yaml.j2
AntonMFernando-NOAA Sep 12, 2024
26eb86b
modified gefs_wave.yaml.j2
AntonMFernando-NOAA Sep 12, 2024
cb012d4
modified master_gefs.yaml.j2
AntonMFernando-NOAA Sep 12, 2024
792a5c4
modified gefs_ice.yaml.j2
AntonMFernando-NOAA Sep 12, 2024
0a30578
modified master_gefs.yaml.j2
AntonMFernando-NOAA Sep 12, 2024
8eefcfa
modified gefs_wave.yaml.j2
AntonMFernando-NOAA Sep 12, 2024
4b9a4f5
modified master_gefs.yaml.j2
AntonMFernando-NOAA Sep 12, 2024
5bed5f0
modified maser_gefs.yaml.j2
AntonMFernando-NOAA Sep 12, 2024
2e221e5
modified master_gefs.yaml.j2
AntonMFernando-NOAA Sep 12, 2024
214c0a3
modified master_gefs.yaml.j2
AntonMFernando-NOAA Sep 12, 2024
9aec9bb
modified master_gefs.yaml.j2
AntonMFernando-NOAA Sep 12, 2024
7d74b4a
modified gefs yaml files
AntonMFernando-NOAA Sep 13, 2024
9c4f224
modified gefs_wave.yaml.j2
AntonMFernando-NOAA Sep 13, 2024
7b81e03
modified defaults.yaml
AntonMFernando-NOAA Sep 13, 2024
f921679
Merge branch 'NOAA-EMC:develop' into feature/gefs-arch-hpss
AntonMFernando-NOAA Sep 13, 2024
752c518
Merge branch 'NOAA-EMC:develop' into feature/gefs-arch-hpss
AntonMFernando-NOAA Sep 13, 2024
6fc253a
Merge branch 'NOAA-EMC:develop' into feature/gefs-arch-hpss
AntonMFernando-NOAA Sep 14, 2024
fec75ff
Merge branch 'NOAA-EMC:develop' into feature/gefs-arch-hpss
AntonMFernando-NOAA Sep 14, 2024
64eafba
modified gefs_ice.yaml.j2
AntonMFernando-NOAA Sep 16, 2024
466f386
Merge branch 'feature/gefs-arch-hpss' of https://github.com/AntonMFer…
AntonMFernando-NOAA Sep 16, 2024
48a95cf
modified gefs_ocean.yaml.j2
AntonMFernando-NOAA Sep 16, 2024
709f109
modified gefs_waves.yaml.j2
AntonMFernando-NOAA Sep 16, 2024
1a8f6c0
modified ges_atmos.yaml.j2
AntonMFernando-NOAA Sep 16, 2024
880eda9
modified gefs_ice.yaml.j2
AntonMFernando-NOAA Sep 16, 2024
80ead80
modified gefs_ocean.yaml.j2
AntonMFernando-NOAA Sep 16, 2024
71afb3f
modified gefs_ocean.yaml.j2
AntonMFernando-NOAA Sep 17, 2024
c978158
modified ges_wave.yaml.j2
AntonMFernando-NOAA Sep 17, 2024
c69d5aa
modify gefs_wave.yaml.j2
AntonMFernando-NOAA Sep 17, 2024
2e3785f
modified gefs_wave.yaml.j2
AntonMFernando-NOAA Sep 17, 2024
442e4f0
modified gefs_wave.yaml.j2
AntonMFernando-NOAA Sep 17, 2024
5dd581d
modified gefs_atmos.yaml.j2
AntonMFernando-NOAA Sep 17, 2024
ae692e4
modified exglobal_archive.py
AntonMFernando-NOAA Sep 17, 2024
3df49b6
Merge branch 'NOAA-EMC:develop' into feature/gefs-arch-hpss
AntonMFernando-NOAA Sep 17, 2024
b2e33be
modified gefs_ocean.yaml.j2
AntonMFernando-NOAA Sep 17, 2024
a8e0732
modified gefs_atmos.yaml.j2
AntonMFernando-NOAA Sep 17, 2024
a246710
modified gefs_atmos.yaml.j2
AntonMFernando-NOAA Sep 17, 2024
5bd3b1f
modified gefs_wave.yaml.j2
AntonMFernando-NOAA Sep 17, 2024
ed34cd7
modified gefs_ocean.yaml.j2
AntonMFernando-NOAA Sep 17, 2024
3fed0c3
modified exglobal_archive.py
AntonMFernando-NOAA Sep 17, 2024
b5c7e36
modified exglobal_archive.py
AntonMFernando-NOAA Sep 17, 2024
cb19195
modified gefs_wave.yaml.j2
AntonMFernando-NOAA Sep 17, 2024
706bf5f
gefs_atmos.yaml.j2
AntonMFernando-NOAA Sep 17, 2024
d363ecd
modified gefs_ocean.yaml.j2
AntonMFernando-NOAA Sep 17, 2024
0151ff7
updated JGLOBAL_ARCHIVE
AntonMFernando-NOAA Sep 17, 2024
340a820
modified gefs_atmos.yaml.j2
AntonMFernando-NOAA Sep 17, 2024
91fba02
modified gefs_atmos.yaml.j2
AntonMFernando-NOAA Sep 17, 2024
17d3f41
modified gefs_ice.yaml.j2
AntonMFernando-NOAA Sep 17, 2024
c307800
updated gefs_ocean.yaml.j2
AntonMFernando-NOAA Sep 17, 2024
a7fee42
modified gefs_ice.yaml.j2
AntonMFernando-NOAA Sep 17, 2024
48032de
modified gefs_wave.yaml.j2
AntonMFernando-NOAA Sep 17, 2024
7d48835
updated defaults.yaml
AntonMFernando-NOAA Sep 17, 2024
68c8ff7
modified gefs_ocean.yaml.j2
AntonMFernando-NOAA Sep 17, 2024
e5a5571
renamed gefs_yaml files
AntonMFernando-NOAA Sep 18, 2024
4b7b5b1
updated master_gefs.yaml.j2
AntonMFernando-NOAA Sep 18, 2024
0f51e82
updated master_gefs.yaml.j2 and other gefs yamls
AntonMFernando-NOAA Sep 18, 2024
93316e2
Merge branch 'NOAA-EMC:develop' into feature/gefs-arch-hpss
AntonMFernando-NOAA Sep 18, 2024
36bcbd0
updated exglobal_archive.py
AntonMFernando-NOAA Sep 18, 2024
db61280
Merge branch 'feature/gefs-arch-hpss' of https://github.com/AntonMFer…
AntonMFernando-NOAA Sep 18, 2024
e8d951b
modified gefs_extracted_atmos.yaml.j2
AntonMFernando-NOAA Sep 18, 2024
0b0bb30
modified gefs_extracted_ocean.yaml.j2
AntonMFernando-NOAA Sep 18, 2024
1f982ee
modified gefs_extracted_ocean.yaml.j2
AntonMFernando-NOAA Sep 18, 2024
5cb1f5a
modified gefs_extracted_ocean.yaml.j2
AntonMFernando-NOAA Sep 18, 2024
177d421
modified gefs_extracted_atmos.yaml.j2
AntonMFernando-NOAA Sep 18, 2024
b47cf0f
modified gefs_extracted_wave.yaml.j2
AntonMFernando-NOAA Sep 18, 2024
953a00f
modified exglobal_archive.py
AntonMFernando-NOAA Sep 18, 2024
ccdae20
modified gefs_extracted_atmos.yaml.j2
AntonMFernando-NOAA Sep 18, 2024
c79def2
modified gefs_extractvars.yaml.j2
AntonMFernando-NOAA Sep 18, 2024
22297db
modified gefs_extracted_wave.yaml.j2
AntonMFernando-NOAA Sep 18, 2024
ada5ec6
modified gefs_extracted_atmos.yaml.j2
AntonMFernando-NOAA Sep 18, 2024
eac1ee4
modified gefs_extracted_atmos.yaml.j2
AntonMFernando-NOAA Sep 18, 2024
90b4729
modified ges_extracted_atmos.yaml.j2
AntonMFernando-NOAA Sep 18, 2024
97e72f7
modified master_gefs.yaml.j2
AntonMFernando-NOAA Sep 19, 2024
fa0a1fd
modified master_gefs.yaml.j2
AntonMFernando-NOAA Sep 19, 2024
73449d3
modified exglobal_archive.py
AntonMFernando-NOAA Sep 19, 2024
442e1c1
modified exglobal_archive.py
AntonMFernando-NOAA Sep 19, 2024
6f3aa65
Merge branch 'NOAA-EMC:develop' into feature/gefs-arch-hpss
AntonMFernando-NOAA Sep 19, 2024
d895084
modified gefs_extracted_ocean and wave.yaml.j2
AntonMFernando-NOAA Sep 19, 2024
45f1360
Merge branch 'feature/gefs-arch-hpss' of https://github.com/AntonMFer…
AntonMFernando-NOAA Sep 19, 2024
092f4b1
modified config.com
AntonMFernando-NOAA Sep 19, 2024
7190cc1
Merge branch 'develop' into feature/gefs-arch-hpss
AntonMFernando-NOAA Sep 20, 2024
67f4560
Merge branch 'develop' into feature/gefs-arch-hpss
AntonMFernando-NOAA Sep 21, 2024
97cd65e
Merge branch 'develop' into feature/gefs-arch-hpss
AntonMFernando-NOAA Sep 23, 2024
b14e488
added station wave files
AntonMFernando-NOAA Sep 23, 2024
72fce1d
Merge branch 'feature/gefs-arch-hpss' of https://github.com/AntonMFer…
AntonMFernando-NOAA Sep 23, 2024
941836c
Merge branch 'develop' into feature/gefs-arch-hpss
AntonMFernando-NOAA Sep 23, 2024
3647a44
modified gefs.py
AntonMFernando-NOAA Sep 23, 2024
c24ae40
Merge branch 'feature/gefs-arch-hpss' of https://github.com/AntonMFer…
AntonMFernando-NOAA Sep 23, 2024
22cc3b1
modified gefs_extravars_wave.yaml.j2
AntonMFernando-NOAA Sep 23, 2024
43dc2c3
modified gefs_extractvars_wave.yaml.j2
AntonMFernando-NOAA Sep 23, 2024
e07b42e
modified gefs.py
AntonMFernando-NOAA Sep 23, 2024
cb558f1
modified gefs.py
AntonMFernando-NOAA Sep 23, 2024
6d1cae2
modified gefs_extracted_wave.yaml.j2
AntonMFernando-NOAA Sep 23, 2024
8bea1eb
modified gefs_extracted_wave.yaml.j2
AntonMFernando-NOAA Sep 23, 2024
b083d4e
updated gefs.py
AntonMFernando-NOAA Sep 24, 2024
262bfb3
updated gefs_tasks.py
AntonMFernando-NOAA Sep 24, 2024
a296007
modified gefs_tasks.py
AntonMFernando-NOAA Sep 24, 2024
fa05f44
gefs_tasks.py
AntonMFernando-NOAA Sep 24, 2024
50c5de9
updated gefs_tasks.py
AntonMFernando-NOAA Sep 24, 2024
7a774c0
test1
AntonMFernando-NOAA Sep 24, 2024
f380971
test2
AntonMFernando-NOAA Sep 24, 2024
e3e8da8
test3
AntonMFernando-NOAA Sep 24, 2024
f51b762
test3
AntonMFernando-NOAA Sep 24, 2024
b705b99
modified gefs_tasks.py
AntonMFernando-NOAA Sep 24, 2024
fcbb649
modified gefs_Tasks.py
AntonMFernando-NOAA Sep 24, 2024
c2bb0ae
Increase resources for prep job for obsproc v1.2.0
DavidHuber-NOAA Sep 24, 2024
1b66adb
Adjust prep resources for all machines
DavidHuber-NOAA Sep 24, 2024
ff38f83
Export tasks_per_node for Orion
DavidHuber-NOAA Sep 24, 2024
7ae9337
Reduce available memory on Hercules and Orion
DavidHuber-NOAA Sep 25, 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
86 changes: 86 additions & 0 deletions parm/archive/gefs_extracted_atmos.yaml.j2
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
{% set cycle_HH = current_cycle | strftime("%H") %}
{% set cycle_YMD = current_cycle | to_YMD %}
{% set cycle_YMDH = current_cycle | to_YMDH %}
{% set head = RUN + ".t" + cycle_HH + "z." %}

gefs_atmos:
name: "GEFS_ATMOS"
target: "{{ ATARDIR }}/{{ cycle_YMDH }}/gefs_atmos.tar"
required:
#select mem%03d and ensstat files required
{% set members = ["ensstat"] %}
{% for mem_nm in range(0, NMEM_ENS + 1) %}
{% do members.append("mem" ~ '%03d' % mem_nm ) %}
{% endfor %}

{% if REPLAY_ICS %}
{% set ofst_hr = OFFSET_START_HOUR %}
{% else %}
{% set ofst_hr = FHMIN_GFS %}
{% endif %}

{% for mem in members %}
{% for res in ['0p25', '0p50', '1p00'] %}
{% set tmpl_dict = ({ '${ROTDIR}':ROTDIR,
'${RUN}':RUN,
'${YMD}':cycle_YMD,
'${HH}':cycle_HH,
'${GRID}':res,
'${MEMDIR}':mem }) %}

{% set COMIN_ATMOS_GRIB = COM_ATMOS_GRIB_GRID_TMPL | replace_tmpl(tmpl_dict) %}

# Select pgrb and grib files to copy to the atardir
{% if path_exists(COMIN_ATMOS_GRIB) %}
{% if FHMAX_HF_GFS == 0 %}
{% for fhr in range(ofst_hr, FHMAX_GFS + FHOUT_GFS, FHOUT_GFS) %}
{% if mem=="ensstat" %}
{% set file_name = head ~ "mean.pres_." ~ res ~ ".f" ~ '%03d'|format(fhr) ~ ".grib2" %}
{% set file_path = COMIN_ATMOS_GRIB ~ "/" ~ file_name %}
- "{{ file_path | relpath(ROTDIR)}}"
{% else %}
{% set file_name = head ~ "pgrb2." ~ res ~ ".f" ~ '%03d'|format(fhr) %}
{% set file_path = COMIN_ATMOS_GRIB ~ "/" ~ file_name %}
- "{{ file_path | relpath(ROTDIR)}}"
{% set file_name = head ~ "pgrb2b." ~ res ~ ".f" ~ '%03d'|format(fhr) %}
{% set file_path = COMIN_ATMOS_GRIB ~ "/" ~ file_name %}
- "{{ file_path | relpath(ROTDIR)}}"
{% endif %}
{% endfor %}
{% else %}
{% if res == "0p25" %}
{% for fhr in range(ofst_hr, FHMAX_HF_GFS + FHOUT_HF_GFS, FHOUT_HF_GFS) %}
{% if mem=="ensstat" %}
{% set file_name = head ~ "mean.pres_." ~ res ~ ".f" ~ '%03d'|format(fhr) ~ ".grib2" %}
{% set file_path = COMIN_ATMOS_GRIB ~ "/" ~ file_name %}
- "{{ file_path | relpath(ROTDIR)}}"
{% else %}
{% set file_name = head ~ "pgrb2." ~ res ~ ".f" ~ '%03d'|format(fhr) %}
{% set file_path = COMIN_ATMOS_GRIB ~ "/" ~ file_name %}
- "{{ file_path | relpath(ROTDIR)}}"
{% set file_name = head ~ "pgrb2b." ~ res ~ ".f" ~ '%03d'|format(fhr) %}
{% set file_path = COMIN_ATMOS_GRIB ~ "/" ~ file_name %}
- "{{ file_path | relpath(ROTDIR)}}"
{% endif %}
{% endfor %}
{% endif %}
{% if res == "0p50" %}
{% for fhr in range(FHMAX_HF_GFS + FHOUT_GFS, FHMAX_GFS + FHOUT_GFS, FHOUT_GFS) %}
{% if mem=="ensstat" %}
{% set file_name = head ~ "mean.pres_." ~ res ~ ".f" ~ '%03d'|format(fhr) ~ ".grib2" %}
{% set file_path = COMIN_ATMOS_GRIB ~ "/" ~ file_name %}
- "{{ file_path | relpath(ROTDIR)}}"
{% else %}
{% set file_name = head ~ "pgrb2." ~ res ~ ".f" ~ '%03d'|format(fhr) %}
{% set file_path = COMIN_ATMOS_GRIB ~ "/" ~ file_name %}
- "{{ file_path | relpath(ROTDIR)}}"
{% set file_name = head ~ "pgrb2b." ~ res ~ ".f" ~ '%03d'|format(fhr) %}
{% set file_path = COMIN_ATMOS_GRIB ~ "/" ~ file_name %}
- "{{ file_path | relpath(ROTDIR)}}"
{% endif %}
{% endfor %}
{% endif %}
{% endif %}
{% endif %}
{% endfor %}
{% endfor %}
33 changes: 33 additions & 0 deletions parm/archive/gefs_extracted_ice.yaml.j2
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
{% set cycle_HH = current_cycle | strftime("%H") %}
{% set cycle_YMD = current_cycle | to_YMD %}
{% set cycle_YMDH = current_cycle | to_YMDH %}
{% set head = RUN + ".ice.t" + cycle_HH + "z." %}

gefs_ice:
name: "GEFS_ICE"
target: "{{ ATARDIR }}/{{ cycle_YMDH }}/gefs_ice.tar"
required:
#select mem%03d and ensstat files required
{% set members = [] %}
{% for mem_nm in range(0, NMEM_ENS + 1) %}
{% do members.append("mem" ~ '%03d' % mem_nm ) %}
{% endfor %}

{% for mem in members %}
{% set tmpl_dict = ({ '${ROTDIR}':ROTDIR,
'${RUN}':RUN,
'${YMD}':cycle_YMD,
'${HH}':cycle_HH,
'${MEMDIR}':mem }) %}

{% set COMIN_ICE_HISTORY = COM_ICE_HISTORY_TMPL | replace_tmpl(tmpl_dict) %}

# Select netcdf files to copy to the atardir
{% if path_exists(COMIN_ICE_HISTORY) %}
{% for fhr in range(FHMIN_GFS + FHOUT_ICE_GFS, FHMAX_GFS + FHOUT_ICE_GFS, FHOUT_ICE_GFS) %}
{% set file_name = head ~ FHOUT_ICE_GFS ~ "hr_avg" ~ ".f" ~ '%03d'|format(fhr) ~ ".nc" %}
{% set file_path = COMIN_ICE_HISTORY ~ "/" ~ file_name %}
- "{{ file_path | relpath(ROTDIR)}}"
{% endfor %}
{% endif %}
{% endfor %}
40 changes: 40 additions & 0 deletions parm/archive/gefs_extracted_ocean.yaml.j2
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
{% set cycle_HH = current_cycle | strftime("%H") %}
{% set cycle_YMD = current_cycle | to_YMD %}
{% set cycle_YMDH = current_cycle | to_YMDH %}
{% set head = RUN + ".ocean.t" + cycle_HH + "z." %}

gefs_ocean:
name: "GEFS_OCEAN"
target: "{{ ATARDIR }}/{{ cycle_YMDH }}/gefs_ocean.tar"
required:
#select mem%03d and ensstat files required
{% set members = [] %}
{% for mem_nm in range(0, NMEM_ENS + 1) %}
{% do members.append("mem" ~ '%03d' % mem_nm ) %}
{% endfor %}

{% if OCNRES == "025" %}
{% set res = "1p00" %}
{% else %}
{% set res = (OCNRES|string())[0] ~ "p" ~ (OCNRES|string())[-2:] %}
{% endif %}

{% for mem in members %}
{% set tmpl_dict = ({ '${ROTDIR}':ROTDIR,
'${RUN}':RUN,
'${YMD}':cycle_YMD,
'${HH}':cycle_HH,
'${MEMDIR}':mem }) %}

{% set COMIN_OCEAN_NETCDF = COM_OCEAN_NETCDF_TMPL | replace_tmpl(tmpl_dict) %}

# Select netcdf files to copy to the atardir
{% set netcdf_grid_dir = COMIN_OCEAN_NETCDF ~ "/" ~ res %}
{% if path_exists(netcdf_grid_dir) %}
{% for fhr in range(FHMIN_GFS + FHOUT_OCN_GFS, FHMAX_GFS + FHOUT_OCN_GFS, FHOUT_OCN_GFS) %}
{% set file_name = head ~ res ~ ".f" ~ '%03d'|format(fhr) ~ ".nc" %}
{% set file_path = netcdf_grid_dir ~ "/" ~ file_name %}
- "{{ file_path | relpath(ROTDIR)}}"
{% endfor %}
{% endif %}
{% endfor %}
51 changes: 51 additions & 0 deletions parm/archive/gefs_extracted_wave.yaml.j2
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
{% set cycle_HH = current_cycle | strftime("%H") %}
{% set cycle_YMD = current_cycle | to_YMD %}
{% set cycle_YMDH = current_cycle | to_YMDH %}
{% set head = RUN + "wave.t" + cycle_HH + "z." %}

gefs_wave:
name: "GEFS_WAVE"
target: "{{ ATARDIR }}/{{ cycle_YMDH }}/gefs_wave.tar"
required:
{% if REPLAY_ICS %}
{% set ofst_hr = OFFSET_START_HOUR %}
{% else %}
{% set ofst_hr = FHMIN_GFS %}
{% endif %}

{% set res = (waveGRD[-3:])[0] ~ "p" ~ (waveGRD[-3:])[-2:] %}

#select mem%03d and ensstat files required
{% set members = [] %}
{% for mem_nm in range(0, NMEM_ENS + 1) %}
{% do members.append("mem" ~ '%03d' % mem_nm ) %}
{% endfor %}

{% for mem in members %}
{% set tmpl_dict = ({ '${ROTDIR}':ROTDIR,
'${RUN}':RUN,
'${YMD}':cycle_YMD,
'${HH}':cycle_HH,
'${MEMDIR}':mem }) %}

{% set COMIN_WAVE_GRID = COM_WAVE_GRID_TMPL | replace_tmpl(tmpl_dict) %}
# Select grib2 files to copy to the atardir
{% if path_exists(COMIN_WAVE_GRID) %}
{% for fhr in range(ofst_hr, FHMAX_GFS + FHOUT_WAV, FHOUT_WAV) %}
{% set file_name = head ~ "global." ~ res ~ ".f" ~ '%03d'|format(fhr) ~ ".grib2" %}
{% set file_path = COMIN_WAVE_GRID ~ "/" ~ file_name %}
- "{{ file_path | relpath(ROTDIR)}}"
{% endfor %}
{% endif %}

{% set COMIN_WAVE_STATION = COM_WAVE_STATION_TMPL | replace_tmpl(tmpl_dict) %}
# Select station files to copy to the atardir
{% if path_exists(COMIN_WAVE_STATION) %}
{% set file_path = COMIN_WAVE_STATION ~ "/" ~ RUN ~ "wave.t" ~ cycle_HH ~ "z.spec_tar.gz" %}
- "{{ file_path | relpath(ROTDIR)}}"
{% set file_path = COMIN_WAVE_STATION ~ "/" ~ RUN ~ "wave.t" ~ cycle_HH ~ "z.cbull_tar" %}
- "{{ file_path | relpath(ROTDIR)}}"
{% set file_path = COMIN_WAVE_STATION ~ "/" ~ RUN ~ "wave.t" ~ cycle_HH ~ "z.bull_tar" %}
- "{{ file_path | relpath(ROTDIR)}}"
{% endif %}
{% endfor %}
12 changes: 12 additions & 0 deletions parm/archive/master_gefs.yaml.j2
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# Set variables/lists needed to parse the gefs templates
{% set cycle_HH = current_cycle | strftime("%H") %}
{% set cycle_YMD = current_cycle | to_YMD %}
{% set cycle_YMDH = current_cycle | to_YMDH %}

datasets:
{% filter indent(width=4) %}
{% include "gefs_extracted_atmos.yaml.j2" %}
{% include "gefs_extracted_ocean.yaml.j2" %}
{% include "gefs_extracted_ice.yaml.j2" %}
{% include "gefs_extracted_wave.yaml.j2" %}
DavidHuber-NOAA marked this conversation as resolved.
Show resolved Hide resolved
Comment on lines +8 to +11
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

workflow/applications/gefs.py should be updated to only run archive when do.extractvars is true. Otherwise I think this is ready.

Given the current yaml files, the archive job should succeed without a DO_EXTRACTVARS condition for base GEFS (based on my tests and Anton's test according to our discussions). However, since the GEFS reforecast archived products will likely be structured differently than the GEFS retrospective products, it may be best to use a flag such as DO_EXTRACTVARS for the reforecast products.

If we use DO_EXTRACTVARS, we may need yaml files for base GEFS (see suggestion below) so that the CI test doesn't fail. In the CI test, DO_EXTRACTVARS=NO and HPSSARCH=YES, which I think will cause the archive task to fail if there are no data files to stage.

Suggested change
{% include "gefs_extracted_atmos.yaml.j2" %}
{% include "gefs_extracted_ocean.yaml.j2" %}
{% include "gefs_extracted_ice.yaml.j2" %}
{% include "gefs_extracted_wave.yaml.j2" %}
{% if DO_EXTRACTVARS %}
{% filter indent(width=4) %}
{% include "gefs_extracted_atmos.yaml.j2" %}
{% include "gefs_extracted_ocean.yaml.j2" %}
{% include "gefs_extracted_ice.yaml.j2" %}
{% include "gefs_extracted_wave.yaml.j2" %}
{% endfilter %}
{% else %}
{% filter indent(width=4) %}
{% include "gefs_atmos.yaml.j2" %}
{% include "gefs_ocean.yaml.j2" %}
{% include "gefs_ice.yaml.j2" %}
{% include "gefs_wave.yaml.j2" %}
{% endfilter %}
{% endif %}

{% endfilter %}
1 change: 0 additions & 1 deletion parm/config/gefs/yaml/defaults.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -14,5 +14,4 @@ base:
FCST_BREAKPOINTS: "48"
REPLAY_ICS: "NO"
USE_OCN_PERTURB_FILES: "false"
HPSSARCH: "NO"
LOCALARCH: "NO"
11 changes: 6 additions & 5 deletions parm/config/gfs/config.resources
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ echo "BEGIN: config.resources"
case ${machine} in
"WCOSS2")
max_tasks_per_node=128
# WCOSS2 nodes have 512GB of RAM, but only 500GB are reservable
# shellcheck disable=SC2034
mem_node_max="500GB"
;;
Expand All @@ -54,12 +55,12 @@ case ${machine} in
"ORION")
max_tasks_per_node=40
# shellcheck disable=SC2034
mem_node_max="192GB"
mem_node_max="180GB"
;;
"HERCULES")
max_tasks_per_node=80
# shellcheck disable=SC2034
mem_node_max="512GB"
mem_node_max="500GB"
;;
"JET")
case ${PARTITION_BATCH} in
Expand Down Expand Up @@ -145,10 +146,10 @@ export max_tasks_per_node
case ${step} in
"prep")
walltime='00:30:00'
ntasks=4
tasks_per_node=2
ntasks=14
tasks_per_node=14
threads_per_task=1
memory="40GB"
memory="${mem_node_max}"
;;

"prepsnowobs")
Expand Down
5 changes: 5 additions & 0 deletions parm/config/gfs/config.resources.GAEA
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,11 @@
# Gaea-specific job resources

case ${step} in
"prep")
# Run on two nodes (requires ~400GB total)
tasks_per_node=7
;;

"eobs")
# The number of tasks and cores used must be the same for eobs
# See https://github.com/NOAA-EMC/global-workflow/issues/2092 for details
Expand Down
5 changes: 5 additions & 0 deletions parm/config/gfs/config.resources.HERA
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,11 @@
# Hera-specific job resources

case ${step} in
"prep")
# Run on 7 nodes for memory requirement
tasks_per_node=2
;;

"anal")
if [[ "${CASE}" == "C384" ]]; then
export ntasks_gdas=270
Expand Down
5 changes: 5 additions & 0 deletions parm/config/gfs/config.resources.JET
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,11 @@
# Jet-specific job resources

case ${step} in
"prep")
# Run on 7 nodes for memory requirement
tasks_per_node=2
;;

"anal")
if [[ "${CASE}" == "C384" ]]; then
export ntasks=270
Expand Down
6 changes: 6 additions & 0 deletions parm/config/gfs/config.resources.ORION
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,12 @@
# Orion-specific job resources

case ${step} in
"prep")
# Run on 2 nodes for memory requirement
# This may not be enough and may need to run on more nodes.
export tasks_per_node=7
;;

"anal")
# TODO:
# On Orion, after Rocky 9 upgrade, GSI performance is degraded.
Expand Down
6 changes: 6 additions & 0 deletions parm/config/gfs/config.resources.S4
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,12 @@
# S4-specific job resources

case ${step} in
"prep")
# Run on two nodes for memory requirement
# This may not be enough memory. Decrease tasks/node to 2 if necessary.
tasks_per_node=7
;;

"anal")
case ${CASE} in
"C384")
Expand Down
5 changes: 3 additions & 2 deletions scripts/exglobal_archive.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,9 @@ def main():
'FHOUT_HF_WAV', 'FHMAX_WAV', 'FHMAX_HF_WAV', 'FHMAX_WAV_GFS',
'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']
'NMEM_ENS', 'DO_JEDIATMVAR', 'DO_VRFY_OCEANDA', 'FHMAX_FITS', 'waveGRD',
'IAUFHRS', 'DO_FIT2OBS', 'NET', 'FHOUT_HF_GFS', 'FHMAX_HF_GFS', 'REPLAY_ICS',
'OFFSET_START_HOUR']

archive_dict = AttrDict()
for key in keys:
Expand Down
3 changes: 0 additions & 3 deletions ush/python/pygfs/task/archive.py
Original file line number Diff line number Diff line change
Expand Up @@ -114,9 +114,6 @@ def configure(self, arch_dict: Dict[str, Any]) -> (Dict[str, Any], List[Dict[str
self.tar_cmd = ""
return arcdir_set, []

if arch_dict.NET == "gefs":
raise NotImplementedError("GEFS archiving is not yet implemented!")

master_yaml = "master_" + arch_dict.RUN + ".yaml.j2"

parsed_sets = parse_j2yaml(os.path.join(archive_parm, master_yaml),
Expand Down
4 changes: 2 additions & 2 deletions workflow/applications/gefs.py
Original file line number Diff line number Diff line change
Expand Up @@ -80,8 +80,8 @@ def get_task_names(self):
tasks += ['wavepostpnt']

if self.do_extractvars:
tasks += ['extractvars']
tasks += ['extractvars', 'arch']

tasks += ['arch', 'cleanup']
tasks += ['cleanup']

return {f"{self.run}": tasks}
Loading
Loading