Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
58 commits
Select commit Hold shift + click to select a range
fe47f8b
updated Externals to point to new branch
mvertens Oct 12, 2023
650d4c8
pointing to new version of WW3
mvertens Oct 31, 2023
8be8bfe
Merge pull request #14 from mvertens/feature/new_flds_to_cmeps
mvertens Oct 31, 2023
25c1911
pointing to ww3dev branch in PR
mvertens Dec 4, 2023
59869c4
changes needed for new WW3 merge for daily averaging of fields sent t…
mvertens Dec 8, 2023
f56c5f3
Merge pull request #15 from mvertens/feature/averaging_for_partitions
mvertens Dec 8, 2023
e6e48fb
updated externals to pass 10m wind to atm
mvertens Jan 10, 2024
557ffee
fixed typo
mvertens Feb 20, 2024
f615c6c
update Externals.cfg to point to new tagged ww3
mvertens Feb 27, 2024
309f09a
Merge pull request #16 from mvertens/feature/pass_10mwind_to_ww3
gold2718 Feb 27, 2024
51c8cd3
moved ww3dev to ww3
mvertens Jul 25, 2024
58fe77c
updated Externals.cfg to point to wave attenation and change of ww3de…
mvertens Jul 25, 2024
60d7a3b
always receive Si_thick from mediator
mvertens Jul 25, 2024
e4bdd05
fixed Externals.cfg
mvertens Jul 25, 2024
51837ef
fix compilation problem in WW3
mvertens Jul 25, 2024
61bb194
updated WW3 external
mvertens Aug 21, 2024
cc34628
Merge pull request #17 from mvertens/feature/rename_ww3dev
mvertens Aug 27, 2024
4163d1e
updated WW3 to ww3_noresm0.0.13
mvertens Aug 29, 2024
4e0ac3d
Merge pull request #18 from mvertens/noresm_develop
mvertens Aug 29, 2024
8df0f27
changes for netcdf updates to WW3
mvertens Sep 30, 2024
b95a6d6
added WW3 as a submodule
mvertens Sep 30, 2024
0d72471
removed Externals.cfg in preparation for git-fleximod
mvertens Sep 30, 2024
4661227
updated WW3 submodule
mvertens Oct 1, 2024
552e3be
Updated WW3 to bring in updates from Denise Worthen
mvertens Oct 13, 2024
c51ddd9
new namelist settings and fix for auxiliary output in cmeps
mvertens Oct 22, 2024
565d08e
updated WW3
mvertens Oct 22, 2024
46939b1
updated WW3 submodule
mvertens Nov 7, 2024
91eef01
Convert WW3 to git fleximod
Nov 25, 2024
61a10b0
Merge pull request #19 from gold2718/convert2fleximod
gold2718 Nov 25, 2024
c4a5bb0
updates to remove unnecessary namelists, etc
mvertens Mar 14, 2025
694e18d
updated WW3 for fix for ERI
mvertens Mar 19, 2025
4d2a0d3
fix for ERI tests to pass
mvertens Mar 19, 2025
3c5e2fd
add gnu tests and fix test names
mvdebolskiy Mar 20, 2025
b1ff4ec
commit expected fail tests
mvertens Mar 20, 2025
328857a
changes for netcdf updates to WW3
mvertens Mar 20, 2025
5a11297
resolve merge
mvdebolskiy Mar 20, 2025
abcdaa1
resolve conflicts with 0.0.16
mvdebolskiy Mar 20, 2025
226a447
update submodule
mvdebolskiy Mar 20, 2025
f19e184
add expected fails file
mvdebolskiy Mar 20, 2025
a88815c
Merge pull request #20 from mvertens/feature/netcdf_restarts
mvdebolskiy Mar 20, 2025
5accbf3
updated WW3 to ww3_noresm0.0.16
mvertens Jun 3, 2025
2c21f98
updated WW3 to ww3_noresm0.0.16
mvertens Jun 3, 2025
2c458c2
Merge pull request #21 from mvertens/feature/updated_WW3_to_ww3_nores…
mvertens Jun 3, 2025
2034892
update ww3 source code
May 12, 2026
f45c813
Merge pull request #22 from NorESMhub/feature/update_ww3
mvertens May 12, 2026
494b2e3
changes needed for WW3 PR
mvertens Jun 18, 2026
7a921c4
more updates to tests
mvertens Jul 7, 2026
f2e0235
updated comments
Jul 9, 2026
f50901f
updated WW3 to dev/unified_0.1.0_noresm_v0
mvertens Jul 9, 2026
7b949a1
updated WW3 and added testmod wav_24h_avg
mvertens Jul 9, 2026
d4d2a4c
Merge tag 'main_0.1.0' into feature/cesm_noresm_netcdf_restarts
mvertens Jul 9, 2026
113cb0b
more updates for merge to main_0.1.0
mvertens Jul 9, 2026
6012b6a
removed trailing whitespace
Jul 14, 2026
0b6efdb
Merge branch 'noresm' into feature/cesm_noresm_netcdf_restarts
Jul 14, 2026
56556db
Update cime_config/config_component.xml
mvertens Jul 14, 2026
6082d35
Update cime_config/config_pes.xml
mvertens Jul 14, 2026
3450882
Update README.md
mvertens Jul 14, 2026
888855c
Merge pull request #23 from NorESMhub/feature/cesm_noresm_netcdf_rest…
mvertens Jul 14, 2026
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
7 changes: 3 additions & 4 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
[submodule "WW3"]
path = WW3
url = https://github.com/ESCOMP/WW3.git
fxtag = dev/unified_0.1.0
url = https://github.com/NorESMhub/WW3.git
fxtag = dev/unified_0.1.0_noresm_v0
fxrequired = AlwaysRequired
fxDONOTUSEurl = https://github.com/ESCOMP/WW3.git

fxDONOTUSEurl = https://github.com/NorESMhub/WW3.git
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
# WW3_interface

This repository encapsulates the newest CESM WaveWatch III repository (forked from NOAA-EMC) and acts as an interface between WW3 and CESM.
This repository encapsulates the newest NorESM WaveWatch III repository (forked from NOAA-EMC) and acts as an interface between WW3 and NorESM.
24 changes: 8 additions & 16 deletions cime_config/buildnml
Original file line number Diff line number Diff line change
Expand Up @@ -81,27 +81,19 @@ def _create_namelists(case, confdir, namelist_infile, nmlgen, data_list_path):
else:
nmlgen.set_value("initfile", "")

# error check
# error check
dtcpl = basedt / int(ncpl)
dtmax = int(float(nmlgen.get_value('dtmax')))
if dtcpl%dtmax != 0:
expect(False,
'dtcpl {} is not a multiple of dtmax {}'.format(dtcpl,dtmax))

nmlgen.set_value("domain_percent_start", f"{start_date} {start_tod}")

nmlgen.set_value("date_percent_field_percent_start" , f"{start_date} {start_tod}")
nmlgen.set_value("date_percent_restart_percent_start", f"{start_date} {start_tod}")

nmlgen.set_value("date_percent_field_percent_stride" , f"{dtime_sync}")
nmlgen.set_value("date_percent_restart_percent_stride", f"{dtime_sync}")

# write diagnostic info
logger.debug("ww3 initial conditions file is %s", nmlgen.get_value("initfile"))

namelist_file = os.path.join(confdir, "wav_in")
nmlgen.write_output_file(namelist_file, data_list_path,
groups=["domain_nml","input_nml","output_type_nml","output_date_nml","ww3_inparm"],
nmlgen.write_output_file(namelist_file, data_list_path,
groups=["input_nml","output_type_nml","ww3_inparm"],
sorted_groups=False)

from pathlib import Path
Expand Down Expand Up @@ -196,7 +188,7 @@ def buildnml(case, caseroot, compname):
shutil.copy2(file1, file2)

_prestage_inputs(case)

###############################################################################
def _prestage_inputs(case):
###############################################################################
Expand Down Expand Up @@ -228,7 +220,7 @@ def _prestage_inputs(case):
for filename in files:
if not os.path.isfile(os.path.join(output_dir, filename)):
safe_copy(os.path.join(input_dir, filename), os.path.join(output_dir, filename))

# Create mod_def file using ww3_grid and the grid_input files
if not os.path.isfile(os.path.join(output_dir,"ww3_grid")):
logger.warning("ww3_grid file not found. The mod_def.ww3 file will be created after the build phase.")
Expand All @@ -245,20 +237,20 @@ def _prestage_inputs(case):
shutil.move(os.path.join(output_dir,"mod_def.ww3"), os.path.join(rundir, "mod_def.ww3"))

else:
# Use mod_def already created
# Use mod_def already created
mod_def_in = case.get_value("WW3_MODDEF")
if os.path.isfile(mod_def_in):
import filecmp
copy_file = False
if not os.path.isfile(os.path.join(rundir, "mod_def.ww3")):
if not os.path.isfile(os.path.join(rundir, "mod_def.ww3")):
copy_file = True
elif not filecmp.cmp(mod_def_in, os.path.join(rundir, "mod_def.ww3")):
copy_file = True
if copy_file:
shutil.copy(mod_def_in, os.path.join(rundir, "mod_def.ww3"))
else:
raise RuntimeError("mod_def_in {} does not exist on disk".format(mod_def_in))

###############################################################################
def _main_func():
###############################################################################
Expand Down
2 changes: 1 addition & 1 deletion cime_config/config_component.xml
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@
<group>case_comp</group>
<file>env_build.xml</file>
<desc>mod_def file to use. The value depends on the switches, if you have an unstructured mesh and the
wave propoagation scheme. Note that this file is renamed to mod_def.ww3 in the run directory.
wave propagation scheme. Note that this file is renamed to mod_def.ww3 in the run directory.
</desc>
</entry>

Expand Down
6 changes: 3 additions & 3 deletions cime_config/config_compsets.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,15 @@

<help>
Each compset node is associated with the following elements
- lname
- alias
- lname
- alias
- support (optional description of the support level for this compset)
Each compset node can also have the following attributes
- grid (optional regular expression match for grid to work with the compset)
</help>

<compset>
<alias>WW3test</alias>
<alias>WW3test</alias>
<lname>2000_DATM%NYF_SLND_SICE_SOCN_SROF_SGLC_WW3</lname>
</compset>

Expand Down
123 changes: 99 additions & 24 deletions cime_config/config_pes.xml
Original file line number Diff line number Diff line change
@@ -1,43 +1,118 @@
<?xml version="1.0"?>

<config_pes>
<config_pes version="2.0">

<grid name="any">
<mach name="betzy">
<pes pesize="any" compset="DATM.*WW3">
<comment>none</comment>
<ntasks>
<ntasks_atm>256</ntasks_atm>
<ntasks_rof>256</ntasks_rof>
<ntasks_ice>256</ntasks_ice>
<ntasks_ocn>256</ntasks_ocn>
<ntasks_cpl>256</ntasks_cpl>
<ntasks_atm>256</ntasks_atm>
<ntasks_rof>256</ntasks_rof>
<ntasks_ice>256</ntasks_ice>
<ntasks_ocn>256</ntasks_ocn>
<ntasks_cpl>256</ntasks_cpl>
<ntasks_lnd>256</ntasks_lnd>
<ntasks_glc>256</ntasks_glc>
<ntasks_wav>256</ntasks_wav>
<ntasks_glc>256</ntasks_glc>
<ntasks_wav>256</ntasks_wav>
</ntasks>
<nthrds>
<nthrds_atm>1</nthrds_atm>
<nthrds_lnd>1</nthrds_lnd>
<nthrds_rof>1</nthrds_rof>
<nthrds_ice>1</nthrds_ice>
<nthrds_ocn>1</nthrds_ocn>
<nthrds_glc>1</nthrds_glc>
<nthrds_wav>1</nthrds_wav>
<nthrds_cpl>1</nthrds_cpl>
<nthrds_atm>1</nthrds_atm>
<nthrds_lnd>1</nthrds_lnd>
<nthrds_rof>1</nthrds_rof>
<nthrds_ice>1</nthrds_ice>
<nthrds_ocn>1</nthrds_ocn>
<nthrds_glc>1</nthrds_glc>
<nthrds_wav>1</nthrds_wav>
<nthrds_cpl>1</nthrds_cpl>
</nthrds>
<rootpe>
<rootpe_atm>0</rootpe_atm>
<rootpe_lnd>0</rootpe_lnd>
<rootpe_rof>0</rootpe_rof>
<rootpe_ice>0</rootpe_ice>
<rootpe_ocn>0</rootpe_ocn>
<rootpe_glc>0</rootpe_glc>
<rootpe_wav>0</rootpe_wav>
<rootpe_cpl>0</rootpe_cpl>
<rootpe_atm>0</rootpe_atm>
<rootpe_lnd>0</rootpe_lnd>
<rootpe_rof>0</rootpe_rof>
<rootpe_ice>0</rootpe_ice>
<rootpe_ocn>0</rootpe_ocn>
<rootpe_glc>0</rootpe_glc>
<rootpe_wav>0</rootpe_wav>
<rootpe_cpl>0</rootpe_cpl>
</rootpe>
</pes>
</mach>
</grid>

<grid name="m%w025">
<mach name="betzy">
<pes pesize="any" compset="DATM.*WW3">
<comment>none</comment>
<ntasks>
<ntasks_atm>-8</ntasks_atm>
<ntasks_rof>-8</ntasks_rof>
<ntasks_ice>-8</ntasks_ice>
<ntasks_ocn>-8</ntasks_ocn>
<ntasks_cpl>-8</ntasks_cpl>
<ntasks_lnd>-8</ntasks_lnd>
<ntasks_glc>-8</ntasks_glc>
<ntasks_wav>-8</ntasks_wav>
</ntasks>
<nthrds>
<nthrds_atm>1</nthrds_atm>
<nthrds_lnd>1</nthrds_lnd>
<nthrds_rof>1</nthrds_rof>
<nthrds_ice>1</nthrds_ice>
<nthrds_ocn>1</nthrds_ocn>
<nthrds_glc>1</nthrds_glc>
<nthrds_wav>1</nthrds_wav>
<nthrds_cpl>1</nthrds_cpl>
</nthrds>
<rootpe>
<rootpe_atm>0</rootpe_atm>
<rootpe_lnd>0</rootpe_lnd>
<rootpe_rof>0</rootpe_rof>
<rootpe_ice>0</rootpe_ice>
<rootpe_ocn>0</rootpe_ocn>
<rootpe_glc>0</rootpe_glc>
<rootpe_wav>0</rootpe_wav>
<rootpe_cpl>0</rootpe_cpl>
</rootpe>
</pes>
</mach>
</grid>

<grid name="m%w025">
<mach name="olivia">
<pes pesize="any" compset="DATM.*WW3">
<comment>none</comment>
<ntasks>
<ntasks_atm>-4</ntasks_atm>
<ntasks_rof>-4</ntasks_rof>
<ntasks_ice>-4</ntasks_ice>
<ntasks_ocn>-4</ntasks_ocn>
<ntasks_cpl>-4</ntasks_cpl>
<ntasks_lnd>-4</ntasks_lnd>
<ntasks_glc>-4</ntasks_glc>
<ntasks_wav>-4</ntasks_wav>
</ntasks>
<nthrds>
<nthrds_atm>1</nthrds_atm>
<nthrds_lnd>1</nthrds_lnd>
<nthrds_rof>1</nthrds_rof>
<nthrds_ice>1</nthrds_ice>
<nthrds_ocn>1</nthrds_ocn>
<nthrds_glc>1</nthrds_glc>
<nthrds_wav>1</nthrds_wav>
<nthrds_cpl>1</nthrds_cpl>
</nthrds>
<rootpe>
<rootpe_atm>0</rootpe_atm>
<rootpe_lnd>0</rootpe_lnd>
<rootpe_rof>0</rootpe_rof>
<rootpe_ice>0</rootpe_ice>
<rootpe_ocn>0</rootpe_ocn>
<rootpe_glc>0</rootpe_glc>
<rootpe_wav>0</rootpe_wav>
<rootpe_cpl>0</rootpe_cpl>
</rootpe>
</pes>
</mach>
</grid>
</config_pes>
Loading