Skip to content

Commit ea4cfca

Browse files
JessicaMeixner-NOAAaerorahulsbanihashDavidHuber-NOAAWalterKolczynski-NOAA
authored andcommitted
Make assorted updates to waves (NOAA-EMC#3190)
This PR adds the following: * converting from inp -> nml (@sbanihash) * turning on PIO for waves for restarts (@sbanihash) * enabling cycling for WW3 which required some updates to wave prep jobs + changing what restarts are being saved/etc * changed the way CEMPS, MOM6, CICE and WW3 write restarts to be in sync with FV3 for IAU, which required moving the ufs-weather-model forward one hash to use the new flexible restart feature. (UFS PR ufs-community/ufs-weather-model#2419) * adds uglo_15km - the targeted new wave grid. * Update to use new esmf_threading ufs.configure files which changes the toggle between how you use esmf threading versus traditional threading (UFS PR ufs-community/ufs-weather-model#2538) Notes on ufs-weather-model updates: | Commit date | Commit hash/ PR | Notes for g-w changes | Baseline Changes | | :------------- | :------------- | :------------- | :------------- | | Dec 11, 2024 | ufs-community/ufs-weather-model@409bc85 ufs-community/ufs-weather-model#2419 | Enables flexible restart writes - changes included in g-w PR | none| | Dec 16, 2024 | ufs-community/ufs-weather-model@6ec6b45 ufs-community/ufs-weather-model#2528 ufs-community/ufs-weather-model#2469 | n/a | HAFs test changes, no global changes | | Dec 18, 2024 |ufs-community/ufs-weather-model@e119370 ufs-community/ufs-weather-model#2448 | Adds Gaea C6 support (changes in other g-w PRs, not here) | none | |Dec 23, 2024 | ufs-community/ufs-weather-model@2950089 ufs-community/ufs-weather-model#2533 ufs-community/ufs-weather-model#2538 | changes for ESMF vs traditional threading | none | |Dec 30, 2024 | ufs-community/ufs-weather-model@241dd8e ufs-community/ufs-weather-model#2485 | n/a | changes in conus13km, no global changes| |Jan 3, 2025 | ufs-community/ufs-weather-model@76471dc ufs-community/ufs-weather-model#2530 | n/a | changes in regional tests, no global changes | Note this PR requires the following: * update to fix files to add uglo_15km * staging ICs for high resolution test case for uglo_15km Co-author: @sbanihash Related Issues: - Fixes NOAA-EMC#1457 - Fixes NOAA-EMC#3154 - Fixes NOAA-EMC#1795 - related to NOAA-EMC#1776 --------- Co-authored-by: Rahul Mahajan <aerorahul@users.noreply.github.com> Co-authored-by: Saeideh Banihashemi <saeideh.banihashemi@noaa.gov> Co-authored-by: David Huber <69919478+DavidHuber-NOAA@users.noreply.github.com> Co-authored-by: Walter Kolczynski - NOAA <Walter.Kolczynski@noaa.gov>
1 parent 6dcd2ed commit ea4cfca

24 files changed

+230
-442
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,7 @@ parm/ufs/MOM6_data_table.IN
8080
parm/ufs/ice_in.IN
8181
parm/ufs/ufs.configure.*.IN
8282
parm/ufs/post_itag_gfs
83+
parm/ufs/ww3_shel.nml.IN
8384
parm/wafs
8485

8586
# Ignore sorc and logs folders from externals

docs/source/wave.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@ Here are several regional naming conventions:
2121
+===========+=======================+
2222
| glo | Global domain |
2323
+-----------+-----------------------+
24+
| uglo | Unstructured global |
25+
+-----------+-----------------------+
2426
| ak | Alaska |
2527
+-----------+-----------------------+
2628
| ao or aoc | Arctic Ocean |

parm/archive/gdaswave.yaml.j2

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
gdaswave:
2-
{% set head = "gdas.wave.t" + cycle_HH + "z." %}
2+
{% set head = "gdaswave.t" + cycle_HH + "z." %}
33
name: "GDASWAVE"
44
target: "{{ ATARDIR }}/{{ cycle_YMDH }}/gdaswave.tar"
55
required:

parm/config/gefs/config.ufs

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -506,9 +506,7 @@ fi
506506

507507
# Set the name of the UFS (previously nems) configure template to use
508508
# Default ufs.configure templates for supported model configurations
509-
if [[ "${USE_ESMF_THREADING:-}" == "YES" ]]; then
510-
tmpl_suffix="_esmf"
511-
fi
509+
# WW3 restart field variable is different for slow vs fast loop. Add WW3_RSTFLDS="ice" for slow loop variables based on coupling scheme.
512510
case "${model_list}" in
513511
atm)
514512
default_template="${PARMgfs}/ufs/ufs.configure.atm${tmpl_suffix:-}.IN"
@@ -527,9 +525,11 @@ case "${model_list}" in
527525
;;
528526
atm.ocean.ice.wave)
529527
default_template="${PARMgfs}/ufs/ufs.configure.s2sw${tmpl_suffix:-}.IN"
528+
WW3_RSTFLDS="ice"
530529
;;
531530
atm.ocean.ice.wave.aero)
532531
default_template="${PARMgfs}/ufs/ufs.configure.s2swa${tmpl_suffix:-}.IN"
532+
WW3_RSTFLDS="ice"
533533
;;
534534
*)
535535
echo "FATAL ERROR: Unsupported UFSWM configuration for ${model_list}"
@@ -541,6 +541,9 @@ esac
541541
export ufs_configure_template=${ufs_configure_template:-${default_template:-"/dev/null"}}
542542
unset model_list default_template
543543

544+
#export wave restart variable:
545+
export WW3_RSTFLDS=${WW3_RSTFLDS:-" "}
546+
544547
if [[ ! -r "${ufs_configure_template}" ]]; then
545548
echo "FATAL ERROR: ${ufs_configure_template} either doesn't exist or is not readable."
546549
exit 17

parm/config/gfs/config.base

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -216,7 +216,7 @@ case "${CASE}" in
216216
export waveGRD='uglo_100km'
217217
;;
218218
"C768" | "C1152")
219-
export waveGRD='uglo_m1g16'
219+
export waveGRD='uglo_15km'
220220
;;
221221
*)
222222
echo "FATAL ERROR: Unrecognized CASE ${CASE}, ABORT!"

parm/config/gfs/config.resources

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -210,8 +210,8 @@ case ${step} in
210210
threads_per_task=1
211211
tasks_per_node=$(( max_tasks_per_node / threads_per_task ))
212212
NTASKS=${ntasks}
213-
memory_gdas="10GB"
214-
memory_gfs="10GB"
213+
memory_gdas="20GB"
214+
memory_gfs="20GB"
215215
;;
216216

217217
# The wavepost*pnt* jobs are I/O heavy and do not scale well to large nodes.

parm/config/gfs/config.ufs

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ if (( $# <= 1 )); then
1515
echo "--fv3 C48|C96|C192|C384|C768|C1152|C3072"
1616
echo "--mom6 500|100|025"
1717
echo "--cice6 500|100|025"
18-
echo "--ww3 gnh_10m;aoc_9km;gsh_15m|gwes_30m|glo_025|glo_100|glo_200|glo_500|mx025|uglo_100km|uglo_m1g16"
18+
echo "--ww3 gnh_10m;aoc_9km;gsh_15m|gwes_30m|glo_025|glo_100|glo_200|glo_500|mx025|uglo_100km"
1919
echo "--gocart"
2020

2121
exit 1
@@ -594,12 +594,12 @@ if [[ "${skip_ww3}" == "false" ]]; then
594594
"mx025")
595595
ntasks_ww3=80
596596
;;
597-
"uglo_100km")
598-
ntasks_ww3=40
597+
"uglo_15km")
598+
ntasks_ww3=1000
599599
nthreads_ww3=1
600600
;;
601-
"uglo_m1g16")
602-
ntasks_ww3=1000
601+
"uglo_100km")
602+
ntasks_ww3=40
603603
nthreads_ww3=1
604604
;;
605605
*)
@@ -619,9 +619,7 @@ fi
619619

620620
# Set the name of the UFS (previously nems) configure template to use
621621
# Default ufs.configure templates for supported model configurations
622-
if [[ "${USE_ESMF_THREADING:-}" == "YES" ]]; then
623-
tmpl_suffix="_esmf"
624-
fi
622+
# WW3 restart field variable is different for slow vs fast loop. Add WW3_RSTFLDS="ice" for slow loop variables based on coupling scheme.
625623
case "${model_list}" in
626624
atm)
627625
default_template="${PARMgfs}/ufs/ufs.configure.atm${tmpl_suffix:-}.IN"
@@ -640,9 +638,11 @@ case "${model_list}" in
640638
;;
641639
atm.ocean.ice.wave)
642640
default_template="${PARMgfs}/ufs/ufs.configure.s2sw${tmpl_suffix:-}.IN"
641+
WW3_RSTFLDS="ice"
643642
;;
644643
atm.ocean.ice.wave.aero)
645644
default_template="${PARMgfs}/ufs/ufs.configure.s2swa${tmpl_suffix:-}.IN"
645+
WW3_RSTFLDS="ice"
646646
;;
647647
*)
648648
echo "FATAL ERROR: Unsupported UFSWM configuration for ${model_list}"
@@ -654,6 +654,9 @@ esac
654654
export ufs_configure_template=${ufs_configure_template:-${default_template:-"/dev/null"}}
655655
unset model_list default_template
656656

657+
# export wave restart variable:
658+
export WW3_RSTFLDS=${WW3_RSTFLDS:-" "}
659+
657660
if [[ ! -r "${ufs_configure_template}" ]]; then
658661
echo "FATAL ERROR: ${ufs_configure_template} either doesn't exist or is not readable."
659662
exit 17

parm/config/gfs/config.wave

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -74,18 +74,18 @@ case "${waveGRD}" in
7474
export wavepostGRD='glo_500'
7575
export waveuoutpGRD=${waveGRD}
7676
;;
77+
"uglo_15km")
78+
# unstructured 15km grid
79+
export waveinterpGRD='glo_15mxt at_10m ep_10m wc_10m glo_30m'
80+
export wavepostGRD=''
81+
export waveuoutpGRD=${waveGRD}
82+
;;
7783
"uglo_100km")
7884
#unstructured 100km grid
7985
export waveinterpGRD='glo_200'
8086
export wavepostGRD=''
8187
export waveuoutpGRD=${waveGRD}
8288
;;
83-
"uglo_m1g16")
84-
#unstructured m1v16 grid
85-
export waveinterpGRD='glo_15mxt'
86-
export wavepostGRD=''
87-
export waveuoutpGRD=${waveGRD}
88-
;;
8989
*)
9090
echo "FATAL ERROR: No grid specific wave config values exist for ${waveGRD}. Aborting."
9191
exit 1

parm/wave/ak_10m_interp.inp.tmpl

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,9 @@ $------------------------------------------------
33
$ Start Time DT NSteps
44
TIME DT NSTEPS
55
$ Total number of grids
6-
3
6+
2
77
$ Grid extensions
8-
'gnh_10m'
9-
'aoc_9km'
8+
'uglo_15km'
109
'ak_10m'
1110
$
1211
0

parm/wave/at_10m_interp.inp.tmpl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ $ Start Time DT NSteps
55
$ Total number of grids
66
2
77
$ Grid extensions
8-
'uglo_m1g16'
8+
'uglo_15km'
99
'at_10m'
1010
$
1111
0

0 commit comments

Comments
 (0)