From bd16572398e8f7c5020d504fb362644d76ae0a79 Mon Sep 17 00:00:00 2001 From: Xylar Asay-Davis Date: Thu, 16 Jan 2025 15:00:53 -0600 Subject: [PATCH 1/4] Add a step for smoothing topograpy We remap the topography once without smoothing and then once with smoothing. The unsmoothed topography is used to determine the land mask, thus allowing many meshes with different levels of smoothing to have the same mapping files in E3SM. For the time being, only two simple types of smoothing are supported: a smoothing over a fixed distance or by expanding cells by a fixed fraction. (The two types of smoothing can also be used at the same time.) In the future, maps with non-uniform smoothing could be added for finer control. A check use used to bypass the second smoothing pass if, in fact, no smoothing is requested (the default behavior). --- compass/ocean/mesh/cull.py | 45 ++++++++++--- compass/ocean/mesh/remap_topography.cfg | 4 +- compass/ocean/mesh/remap_topography.py | 65 ++++++++++++++++-- .../ocean/tests/global_ocean/mesh/__init__.py | 67 +++++++++++++------ .../mesh/remap_mali_topography/__init__.py | 35 ++++++++-- 5 files changed, 171 insertions(+), 45 deletions(-) diff --git a/compass/ocean/mesh/cull.py b/compass/ocean/mesh/cull.py index d4ab6b0048..eb285839fa 100644 --- a/compass/ocean/mesh/cull.py +++ b/compass/ocean/mesh/cull.py @@ -46,15 +46,20 @@ class CullMeshStep(Step): Whether to leave land cells in the mesh based on bathymetry specified by do_inject_bathymetry - remap_topography : compass.ocean.mesh.remap_topography.RemapTopography + unsmoothed_topo : compass.ocean.mesh.remap_topography.RemapTopography A step for remapping topography. If provided, the remapped topography is used to determine the land mask + smoothed_topo : compass.ocean.mesh.remap_topography.RemapTopography + A step for remapping topography. If provided, the remapped + topography is culled for subsequent use in ocean initial conditions + """ def __init__(self, test_case, base_mesh_step, with_ice_shelf_cavities, name='cull_mesh', subdir=None, do_inject_bathymetry=False, - preserve_floodplain=False, remap_topography=None): + preserve_floodplain=False, unsmoothed_topo=None, + smoothed_topo=None): """ Create a new step @@ -83,14 +88,19 @@ def __init__(self, test_case, base_mesh_step, with_ice_shelf_cavities, Whether to leave land cells in the mesh based on bathymetry specified by do_inject_bathymetry - remap_topography : compass.ocean.mesh.remap_topography.RemapTopography, optional + unsmoothed_topo : compass.ocean.mesh.remap_topography.RemapTopography, optional A step for remapping topography. If provided, the remapped topography is used to determine the land mask + + smoothed_topo : compass.ocean.mesh.remap_topography.RemapTopography, optional + A step for remapping topography. If provided, the remapped + topography is culled for subsequent use in ocean initial conditions """ # noqa: E501 super().__init__(test_case, name=name, subdir=subdir, cpus_per_task=None, min_cpus_per_task=None) self.base_mesh_step = base_mesh_step - self.remap_topography = remap_topography + self.unsmoothed_topo = unsmoothed_topo + self.smoothed_topo = smoothed_topo for file in ['culled_mesh.nc', 'culled_graph.info', 'critical_passages_mask_final.nc']: @@ -121,10 +131,16 @@ def setup(self): target = os.path.join(base_path, base_filename) self.add_input_file(filename='base_mesh.nc', work_dir_target=target) - if self.remap_topography is not None: - topo_path = self.remap_topography.path + if self.unsmoothed_topo is not None: + if self.smoothed_topo is None: + self.smoothed_topo = self.unsmoothed_topo + topo_path = self.unsmoothed_topo.path target = os.path.join(topo_path, 'topography_remapped.nc') - self.add_input_file(filename='topography.nc', + self.add_input_file(filename='unsmoothed_topography.nc', + work_dir_target=target) + topo_path = self.smoothed_topo.path + target = os.path.join(topo_path, 'topography_remapped.nc') + self.add_input_file(filename='smoothed_topography.nc', work_dir_target=target) self.add_output_file('topography_culled.nc') self.add_output_file('map_culled_to_base.nc') @@ -290,14 +306,14 @@ def _cull_mesh_with_logging(logger, with_cavities, with_critical_passages, netcdf_format = mpas_tools.io.default_format netcdf_engine = mpas_tools.io.default_engine - has_remapped_topo = os.path.exists('topography.nc') + has_remapped_topo = os.path.exists('unsmoothed_topography.nc') if with_cavities and not has_remapped_topo: raise ValueError('Mesh culling with caviites must be from ' 'remapped topography.') if has_remapped_topo: _land_mask_from_topo(with_cavities, - topo_filename='topography.nc', + topo_filename='unsmoothed_topography.nc', mask_filename='land_mask.nc') else: _land_mask_from_geojson(with_cavities=with_cavities, @@ -478,7 +494,7 @@ def _cull_mesh_with_logging(logger, with_cavities, with_critical_passages, def _cull_topo(with_cavities, process_count, logger, latitude_threshold, sweep_count, ds_preserve): - ds_topo = xr.open_dataset('topography.nc') + ds_topo = xr.open_dataset('smoothed_topography.nc') ds_base = xr.open_dataset('base_mesh.nc') ds_culled = xr.open_dataset('culled_mesh.nc') @@ -488,6 +504,15 @@ def _cull_topo(with_cavities, process_count, logger, latitude_threshold, write_netcdf(ds_map_culled_to_base, 'map_culled_to_base.nc') if with_cavities: + ds_unsmoothed_topo = xr.open_dataset('unsmoothed_topography.nc') + + # use fractions from unsmoothed topography so we don't have + # different masks for different amounts of smoothing. This + # allows us to use the same E3SM mapping files for different smoothing + for var in ['landIceFracObserved', 'landIceGroundedFracObserved', + 'landIceFloatingFracObserved']: + ds_topo[var] = ds_unsmoothed_topo[var] + _flood_fill_and_add_land_ice_mask(ds_topo, ds_base, ds_map_culled_to_base, ds_preserve, logger, latitude_threshold, diff --git a/compass/ocean/mesh/remap_topography.cfg b/compass/ocean/mesh/remap_topography.cfg index db4af458ed..491f855d43 100644 --- a/compass/ocean/mesh/remap_topography.cfg +++ b/compass/ocean/mesh/remap_topography.cfg @@ -14,7 +14,7 @@ description = Bathymetry is from GEBCO 2023, combined with BedMachine Antarctica v3 around Antarctica. # the target and minimum number of MPI tasks to use in remapping -ntasks = 1280 +ntasks = 640 min_tasks = 256 # remapping method {'bilinear', 'neareststod', 'conserve'} @@ -29,5 +29,5 @@ renorm_threshold = 0.01 ice_density = 910.0 # smoothing parameters (no smoothing by default) -expand_dist = 0 +expand_distance = 0 expand_factor = 1 diff --git a/compass/ocean/mesh/remap_topography.py b/compass/ocean/mesh/remap_topography.py index 2e68eab95e..30a39bf270 100644 --- a/compass/ocean/mesh/remap_topography.py +++ b/compass/ocean/mesh/remap_topography.py @@ -8,6 +8,7 @@ from mpas_tools.logging import check_call from pyremap import MpasCellMeshDescriptor +from compass.io import symlink from compass.parallel import run_command from compass.step import Step @@ -24,11 +25,17 @@ class RemapTopography(Step): mesh_name : str The name of the MPAS mesh to include in the mapping file + + smoothing : bool, optional + Whether smoothing will be applied as part of the remapping + + unsmoothed_topo : compass.ocean.mesh.remap_topography.RemapTopography + A step with unsmoothed topography """ def __init__( self, test_case, base_mesh_step, name='remap_topography', subdir=None, - mesh_name='MPAS_mesh', + mesh_name='MPAS_mesh', smoothing=False, unsmoothed_topo=None ): """ Create a new step @@ -49,11 +56,19 @@ def __init__( mesh_name : str, optional The name of the MPAS mesh to include in the mapping file - """ + + smoothing : bool, optional + Whether smoothing will be applied as part of the remapping + + unsmoothed_topo : compass.ocean.mesh.remap_topography.RemapTopography, optional + A step with unsmoothed topography + """ # noqa: E501 super().__init__(test_case, name=name, subdir=subdir, ntasks=None, min_tasks=None) self.base_mesh_step = base_mesh_step self.mesh_name = mesh_name + self.smoothing = smoothing + self.unsmoothed_topo = unsmoothed_topo self.add_output_file(filename='topography_remapped.nc') @@ -108,6 +123,11 @@ def run(self): """ Run this step of the test case """ + super().run() + if self._symlink_unsmoothed(): + # we symlinked to the unsmoothed topography and we're done! + return + config = self.config weight_generator = config.get('remap_topography', 'weight_generator') @@ -124,6 +144,33 @@ def run(self): self._remap_to_target() self._modify_remapped_bathymetry() + def _symlink_unsmoothed(self): + """ + If we are smoothing but no smoothing was actually requested, symlink + to the unsmoothed topography + """ + if not self.smoothing or self.unsmoothed_topo is None: + # there's no unsmoothed topogrpahy yet + return False + + config = self.config + section = config['remap_topography'] + expand_distance = section.getfloat('expand_distance') + expand_factor = section.getfloat('expand_factor') + + if expand_distance != 0. or expand_factor != 1.: + # we're doing some smoothing! + return False + + # we already have unsmoothed topography and we're not doing + # smoothing so we can just symlink the unsmoothed results + out_filename = 'topography_remapped.nc' + unsmoothed_path = self.unsmoothed_topo.work_dir + target = os.path.join(unsmoothed_path, out_filename) + symlink(target, out_filename) + + return True + def _create_target_scrip_file(self): """ Create target SCRIP file from MPAS mesh file. @@ -131,10 +178,14 @@ def _create_target_scrip_file(self): logger = self.logger logger.info('Create source SCRIP file') - config = self.config - section = config['remap_topography'] - expand_dist = section.getfloat('expand_dist') - expand_factor = section.getfloat('expand_factor') + if self.smoothing: + config = self.config + section = config['remap_topography'] + expand_distance = section.getfloat('expand_distance') + expand_factor = section.getfloat('expand_factor') + else: + expand_distance = 0. + expand_factor = 1. descriptor = MpasCellMeshDescriptor( filename='base_mesh.nc', @@ -142,7 +193,7 @@ def _create_target_scrip_file(self): ) descriptor.to_scrip( 'target.scrip.nc', - expand_dist=expand_dist, + expand_dist=expand_distance, expand_factor=expand_factor, ) diff --git a/compass/ocean/tests/global_ocean/mesh/__init__.py b/compass/ocean/tests/global_ocean/mesh/__init__.py index e5092e0134..c9cad9d542 100644 --- a/compass/ocean/tests/global_ocean/mesh/__init__.py +++ b/compass/ocean/tests/global_ocean/mesh/__init__.py @@ -148,21 +148,53 @@ def __init__(self, test_group, mesh_name, # noqa: C901 self.add_step(base_mesh_step) if mali_ais_topo is None: - remap_step = RemapTopography(test_case=self, - base_mesh_step=base_mesh_step, - mesh_name=mesh_name) + unsmoothed_topo = RemapTopography( + test_case=self, + base_mesh_step=base_mesh_step, + name='remap_topo_unsmoothed', + mesh_name=mesh_name, + smoothing=False) + + self.add_step(unsmoothed_topo) + + smoothed_topo = RemapTopography( + test_case=self, + base_mesh_step=base_mesh_step, + name='remap_topo_smoothed', + mesh_name=mesh_name, + smoothing=True, + unsmoothed_topo=unsmoothed_topo) + + self.add_step(smoothed_topo) + else: - remap_step = RemapMaliTopography( - test_case=self, base_mesh_step=base_mesh_step, - mesh_name=mesh_name, mali_ais_topo=mali_ais_topo, + unsmoothed_topo = RemapMaliTopography( + test_case=self, + base_mesh_step=base_mesh_step, + name='remap_topo_unsmoothed', + mesh_name=mesh_name, + smoothing=False, + mali_ais_topo=mali_ais_topo, ocean_includes_grounded=False) - self.add_step(remap_step) + self.add_step(unsmoothed_topo) + + smoothed_topo = RemapMaliTopography( + test_case=self, + base_mesh_step=base_mesh_step, + name='remap_topo_unsmoothed', + mesh_name=mesh_name, + smoothing=False, + unsmoothed_topo=unsmoothed_topo, + mali_ais_topo=mali_ais_topo, + ocean_includes_grounded=False) + + self.add_step(smoothed_topo) self.add_step(CullMeshStep( test_case=self, base_mesh_step=base_mesh_step, with_ice_shelf_cavities=self.with_ice_shelf_cavities, - remap_topography=remap_step)) + unsmoothed_topo=unsmoothed_topo, smoothed_topo=smoothed_topo)) def configure(self, config=None): """ @@ -174,14 +206,13 @@ def configure(self, config=None): if config is None: config = self.config config.add_from_package('compass.mesh', 'mesh.cfg', exception=True) - if 'remap_topography' in self.steps: - config.add_from_package('compass.ocean.mesh', - 'remap_topography.cfg', exception=True) + config.add_from_package('compass.ocean.mesh', + 'remap_topography.cfg', exception=True) - if not self.high_res_topography: - config.add_from_package('compass.ocean.mesh', - 'low_res_topography.cfg', - exception=True) + if not self.high_res_topography: + config.add_from_package('compass.ocean.mesh', + 'low_res_topography.cfg', + exception=True) if self.mali_ais_topo is not None: package = 'compass.ocean.tests.global_ocean.mesh.' \ @@ -220,11 +251,7 @@ def configure(self, config=None): 'Antarctica') # a description of the bathymetry - if 'remap_topography' in self.steps: - description = config.get('remap_topography', 'description') - else: - description = 'Bathymetry is from GEBCO 2023, combined with ' \ - 'BedMachine Antarctica v3 around Antarctica.' + description = config.get('remap_topography', 'description') config.set('global_ocean', 'bathy_description', description) diff --git a/compass/ocean/tests/global_ocean/mesh/remap_mali_topography/__init__.py b/compass/ocean/tests/global_ocean/mesh/remap_mali_topography/__init__.py index d7ded7a8dd..913b6ae427 100644 --- a/compass/ocean/tests/global_ocean/mesh/remap_mali_topography/__init__.py +++ b/compass/ocean/tests/global_ocean/mesh/remap_mali_topography/__init__.py @@ -28,8 +28,16 @@ class RemapMaliTopography(RemapTopography): ocean domain """ - def __init__(self, test_case, base_mesh_step, mesh_name, mali_ais_topo, - ocean_includes_grounded): + def __init__( + self, + test_case, + base_mesh_step, + mesh_name, + mali_ais_topo, + ocean_includes_grounded, + name, + smoothing, + unsmoothed_topo=None): """ Create a new step @@ -48,16 +56,31 @@ def __init__(self, test_case, base_mesh_step, mesh_name, mali_ais_topo, mesh_name : str The name of the MPAS mesh to include in the mapping file - mali_ais_topo : str, optional + mali_ais_topo : str Short name for the MALI dataset to use for Antarctic Ice Sheet topography ocean_includes_grounded : bool Whether to include grounded cells that are below sea level in the ocean domain - """ - super().__init__(test_case=test_case, base_mesh_step=base_mesh_step, - mesh_name=mesh_name) + + name : str, optional + the name of the step + + smoothing : bool, optional + Whether smoothing will be applied as part of the remapping + + unsmoothed_topo : compass.ocean.mesh.remap_topography.RemapTopography, optional + A step with unsmoothed topography + """ # noqa: E501 + super().__init__( + test_case=test_case, + base_mesh_step=base_mesh_step, + mesh_name=mesh_name, + name=name, + smoothing=smoothing, + unsmoothed_topo=unsmoothed_topo, + ) self.mali_ais_topo = mali_ais_topo self.ocean_includes_grounded = ocean_includes_grounded From 1ddefe4e20ca98106628ab25cd0697d67b64e086 Mon Sep 17 00:00:00 2001 From: Xylar Asay-Davis Date: Wed, 9 Apr 2025 14:18:44 -0500 Subject: [PATCH 2/4] Add a suite for caching steps in the `pr` suite --- compass/ocean/suites/pr_to_cache.txt | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 compass/ocean/suites/pr_to_cache.txt diff --git a/compass/ocean/suites/pr_to_cache.txt b/compass/ocean/suites/pr_to_cache.txt new file mode 100644 index 0000000000..eec3edc98b --- /dev/null +++ b/compass/ocean/suites/pr_to_cache.txt @@ -0,0 +1,13 @@ +ocean/global_convergence/qu/cosine_bell + +ocean/global_ocean/IcoswISC240/mesh +ocean/global_ocean/IcoswISC240/WOA23/init +ocean/global_ocean/IcoswISC240/WOA23/performance_test + +ocean/global_ocean/Icos/mesh +ocean/global_ocean/Icos/WOA23/init +ocean/global_ocean/Icos/WOA23/performance_test + +ocean/global_ocean/IcoswISC/mesh +ocean/global_ocean/IcoswISC/WOA23/init +ocean/global_ocean/IcoswISC/WOA23/performance_test From 3c1a2de982e43582ab0e18c81500fc7a07568ddb Mon Sep 17 00:00:00 2001 From: Xylar Asay-Davis Date: Wed, 9 Apr 2025 15:39:25 -0500 Subject: [PATCH 3/4] Update config options in user's guide --- docs/users_guide/ocean/framework/mesh.rst | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/docs/users_guide/ocean/framework/mesh.rst b/docs/users_guide/ocean/framework/mesh.rst index 650278a0d9..983beb7243 100644 --- a/docs/users_guide/ocean/framework/mesh.rst +++ b/docs/users_guide/ocean/framework/mesh.rst @@ -36,7 +36,7 @@ controlled by the following config options: Antarctica v3 around Antarctica. # the target and minimum number of MPI tasks to use in remapping - ntasks = 1280 + ntasks = 640 min_tasks = 256 # remapping method {'bilinear', 'neareststod', 'conserve'} @@ -51,7 +51,7 @@ controlled by the following config options: ice_density = 910.0 # smoothing parameters (no smoothing by default) - expand_dist = 0 + expand_distance = 0 expand_factor = 1 @@ -97,6 +97,15 @@ are the following: The ne120 topography dataset has a resolution of ~25 km (sufficient for MPAS meshes with 240 km resolution) and requires far fewer processers to remap. +The ``expand_distance`` and ``expand_factor`` options are used to smooth the +topography. The ``expand_distance`` is the distance (in meters) over which +the smoothing is applied, while the ``expand_factor`` specifies a factor +by which each MPAS cell is expanded for smoothing. The default is no +smoothing (``expand_distance = 0`` and ``expand_factor = 1``). In this case, +there will still be a step called ``remap_topo_smoothed`` in addition to +``remap_topo_unsmoothed`` but the smoothed step will just make a symlink to the +unsmoothed topography. + Culling land cells ------------------ From ae23e3787a8c8f3001e5aa329559cc5c311dc827 Mon Sep 17 00:00:00 2001 From: Xylar Asay-Davis Date: Thu, 10 Apr 2025 09:19:41 -0500 Subject: [PATCH 4/4] Update Icoswisc240, Icos and IcoswISC cached files --- compass/ocean/cached_files.json | 171 ++++++++++++++++---------------- 1 file changed, 86 insertions(+), 85 deletions(-) diff --git a/compass/ocean/cached_files.json b/compass/ocean/cached_files.json index 1e52a9ebe8..c09b953973 100644 --- a/compass/ocean/cached_files.json +++ b/compass/ocean/cached_files.json @@ -179,89 +179,90 @@ "ocean/global_ocean/Icos240/WOA23/init/initial_state/initial_state.nc": "global_ocean/Icos240/WOA23/init/initial_state/initial_state.250111.nc", "ocean/global_ocean/Icos240/WOA23/init/initial_state/init_mode_forcing_data.nc": "global_ocean/Icos240/WOA23/init/initial_state/init_mode_forcing_data.250111.nc", "ocean/global_ocean/Icos240/WOA23/init/initial_state/graph.info": "global_ocean/Icos240/WOA23/init/initial_state/graph.250111.info", - "ocean/global_ocean/IcoswISC240/mesh/base_mesh/mesh.msh": "global_ocean/IcoswISC240/mesh/base_mesh/mesh.250111.msh", - "ocean/global_ocean/IcoswISC240/mesh/base_mesh/base_mesh.nc": "global_ocean/IcoswISC240/mesh/base_mesh/base_mesh.250111.nc", - "ocean/global_ocean/IcoswISC240/mesh/base_mesh/cellWidthVsLatLon.nc": "global_ocean/IcoswISC240/mesh/base_mesh/cellWidthVsLatLon.250111.nc", - "ocean/global_ocean/IcoswISC240/mesh/base_mesh/graph.info": "global_ocean/IcoswISC240/mesh/base_mesh/graph.250111.info", - "ocean/global_ocean/IcoswISC240/mesh/cull_mesh/culled_mesh.nc": "global_ocean/IcoswISC240/mesh/cull_mesh/culled_mesh.250111.nc", - "ocean/global_ocean/IcoswISC240/mesh/cull_mesh/culled_graph.info": "global_ocean/IcoswISC240/mesh/cull_mesh/culled_graph.250111.info", - "ocean/global_ocean/IcoswISC240/mesh/cull_mesh/critical_passages_mask_final.nc": "global_ocean/IcoswISC240/mesh/cull_mesh/critical_passages_mask_final.250111.nc", - "ocean/global_ocean/IcoswISC240/mesh/cull_mesh/land_ice_mask.nc": "global_ocean/IcoswISC240/mesh/cull_mesh/land_ice_mask.250111.nc", - "ocean/global_ocean/IcoswISC240/mesh/cull_mesh/topography_culled.nc": "global_ocean/IcoswISC240/mesh/cull_mesh/topography_culled.250111.nc", - "ocean/global_ocean/IcoswISC240/mesh/cull_mesh/map_culled_to_base.nc": "global_ocean/IcoswISC240/mesh/cull_mesh/map_culled_to_base.250111.nc", - "ocean/global_ocean/IcoswISC240/mesh/remap_topography/topography_remapped.nc": "global_ocean/IcoswISC240/mesh/remap_topography/topography_remapped.250111.nc", - "ocean/global_ocean/IcoswISC240/WOA23/init/initial_state/initial_state.nc": "global_ocean/IcoswISC240/WOA23/init/initial_state/initial_state.250111.nc", - "ocean/global_ocean/IcoswISC240/WOA23/init/initial_state/init_mode_forcing_data.nc": "global_ocean/IcoswISC240/WOA23/init/initial_state/init_mode_forcing_data.250111.nc", - "ocean/global_ocean/IcoswISC240/WOA23/init/initial_state/graph.info": "global_ocean/IcoswISC240/WOA23/init/initial_state/graph.250111.info", - "ocean/global_ocean/IcoswISC240/WOA23/init/remap_ice_shelf_melt/prescribed_ismf_paolo2023.nc": "global_ocean/IcoswISC240/WOA23/init/remap_ice_shelf_melt/prescribed_ismf_paolo2023.250111.nc", - "ocean/global_ocean/IcoswISC240/WOA23/init/ssh_adjustment/adjusted_init.nc": "global_ocean/IcoswISC240/WOA23/init/ssh_adjustment/adjusted_init.240312.nc", - "ocean/global_ocean/Icos/mesh/base_mesh/mesh.msh": "global_ocean/Icos/mesh/base_mesh/mesh.250111.msh", - "ocean/global_ocean/Icos/mesh/base_mesh/base_mesh.nc": "global_ocean/Icos/mesh/base_mesh/base_mesh.250111.nc", - "ocean/global_ocean/Icos/mesh/base_mesh/cellWidthVsLatLon.nc": "global_ocean/Icos/mesh/base_mesh/cellWidthVsLatLon.250111.nc", - "ocean/global_ocean/Icos/mesh/base_mesh/graph.info": "global_ocean/Icos/mesh/base_mesh/graph.250111.info", - "ocean/global_ocean/Icos/mesh/cull_mesh/culled_mesh.nc": "global_ocean/Icos/mesh/cull_mesh/culled_mesh.250111.nc", - "ocean/global_ocean/Icos/mesh/cull_mesh/culled_graph.info": "global_ocean/Icos/mesh/cull_mesh/culled_graph.250111.info", - "ocean/global_ocean/Icos/mesh/cull_mesh/critical_passages_mask_final.nc": "global_ocean/Icos/mesh/cull_mesh/critical_passages_mask_final.250111.nc", - "ocean/global_ocean/Icos/mesh/cull_mesh/topography_culled.nc": "global_ocean/Icos/mesh/cull_mesh/topography_culled.250111.nc", - "ocean/global_ocean/Icos/mesh/cull_mesh/map_culled_to_base.nc": "global_ocean/Icos/mesh/cull_mesh/map_culled_to_base.250111.nc", - "ocean/global_ocean/Icos/mesh/remap_topography/topography_remapped.nc": "global_ocean/Icos/mesh/remap_topography/topography_remapped.250111.nc", - "ocean/global_ocean/Icos/WOA23/init/initial_state/initial_state.nc": "global_ocean/Icos/WOA23/init/initial_state/initial_state.250111.nc", - "ocean/global_ocean/Icos/WOA23/init/initial_state/init_mode_forcing_data.nc": "global_ocean/Icos/WOA23/init/initial_state/init_mode_forcing_data.250111.nc", - "ocean/global_ocean/Icos/WOA23/init/initial_state/graph.info": "global_ocean/Icos/WOA23/init/initial_state/graph.250111.info", - "ocean/global_ocean/IcoswISC/mesh/base_mesh/mesh.msh": "global_ocean/IcoswISC/mesh/base_mesh/mesh.250111.msh", - "ocean/global_ocean/IcoswISC/mesh/base_mesh/base_mesh.nc": "global_ocean/IcoswISC/mesh/base_mesh/base_mesh.250111.nc", - "ocean/global_ocean/IcoswISC/mesh/base_mesh/cellWidthVsLatLon.nc": "global_ocean/IcoswISC/mesh/base_mesh/cellWidthVsLatLon.250111.nc", - "ocean/global_ocean/IcoswISC/mesh/base_mesh/graph.info": "global_ocean/IcoswISC/mesh/base_mesh/graph.250111.info", - "ocean/global_ocean/IcoswISC/mesh/cull_mesh/culled_mesh.nc": "global_ocean/IcoswISC/mesh/cull_mesh/culled_mesh.250111.nc", - "ocean/global_ocean/IcoswISC/mesh/cull_mesh/culled_graph.info": "global_ocean/IcoswISC/mesh/cull_mesh/culled_graph.250111.info", - "ocean/global_ocean/IcoswISC/mesh/cull_mesh/critical_passages_mask_final.nc": "global_ocean/IcoswISC/mesh/cull_mesh/critical_passages_mask_final.250111.nc", - "ocean/global_ocean/IcoswISC/mesh/cull_mesh/land_ice_mask.nc": "global_ocean/IcoswISC/mesh/cull_mesh/land_ice_mask.250111.nc", - "ocean/global_ocean/IcoswISC/mesh/cull_mesh/topography_culled.nc": "global_ocean/IcoswISC/mesh/cull_mesh/topography_culled.250111.nc", - "ocean/global_ocean/IcoswISC/mesh/cull_mesh/map_culled_to_base.nc": "global_ocean/IcoswISC/mesh/cull_mesh/map_culled_to_base.250111.nc", - "ocean/global_ocean/IcoswISC/mesh/remap_topography/topography_remapped.nc": "global_ocean/IcoswISC/mesh/remap_topography/topography_remapped.250111.nc", - "ocean/global_ocean/IcoswISC/WOA23/init/initial_state/initial_state.nc": "global_ocean/IcoswISC/WOA23/init/initial_state/initial_state.250111.nc", - "ocean/global_ocean/IcoswISC/WOA23/init/initial_state/init_mode_forcing_data.nc": "global_ocean/IcoswISC/WOA23/init/initial_state/init_mode_forcing_data.250111.nc", - "ocean/global_ocean/IcoswISC/WOA23/init/initial_state/graph.info": "global_ocean/IcoswISC/WOA23/init/initial_state/graph.250111.info", - "ocean/global_ocean/IcoswISC/WOA23/init/remap_ice_shelf_melt/prescribed_ismf_paolo2023.nc": "global_ocean/IcoswISC/WOA23/init/remap_ice_shelf_melt/prescribed_ismf_paolo2023.250111.nc", - "ocean/global_ocean/IcoswISC/WOA23/init/ssh_adjustment/adjusted_init.nc": "global_ocean/IcoswISC/WOA23/init/ssh_adjustment/adjusted_init.240312.nc", - "ocean/global_ocean/IcoswISC/WOA23/init/adjust_ssh/01_init_with_draft_from_constant_density/initial_state.nc": "global_ocean/IcoswISC/WOA23/init/adjust_ssh/01_init_with_draft_from_constant_density/initial_state.250111.nc", - "ocean/global_ocean/IcoswISC/WOA23/init/adjust_ssh/01_init_with_draft_from_constant_density/init_mode_forcing_data.nc": "global_ocean/IcoswISC/WOA23/init/adjust_ssh/01_init_with_draft_from_constant_density/init_mode_forcing_data.250111.nc", - "ocean/global_ocean/IcoswISC/WOA23/init/adjust_ssh/01_init_with_draft_from_constant_density/graph.info": "global_ocean/IcoswISC/WOA23/init/adjust_ssh/01_init_with_draft_from_constant_density/graph.250111.info", - "ocean/global_ocean/IcoswISC/WOA23/init/adjust_ssh/02_ssh_from_surface_density/topography_culled.nc": "global_ocean/IcoswISC/WOA23/init/adjust_ssh/02_ssh_from_surface_density/topography_culled.250111.nc", - "ocean/global_ocean/IcoswISC/WOA23/init/adjust_ssh/03_init/initial_state.nc": "global_ocean/IcoswISC/WOA23/init/adjust_ssh/03_init/initial_state.250111.nc", - "ocean/global_ocean/IcoswISC/WOA23/init/adjust_ssh/03_init/init_mode_forcing_data.nc": "global_ocean/IcoswISC/WOA23/init/adjust_ssh/03_init/init_mode_forcing_data.250111.nc", - "ocean/global_ocean/IcoswISC/WOA23/init/adjust_ssh/03_init/graph.info": "global_ocean/IcoswISC/WOA23/init/adjust_ssh/03_init/graph.250111.info", - "ocean/global_ocean/IcoswISC/WOA23/init/adjust_ssh/04_adjust_ssh/topography_culled.nc": "global_ocean/IcoswISC/WOA23/init/adjust_ssh/04_adjust_ssh/topography_culled.250111.nc", - "ocean/global_ocean/IcoswISC/WOA23/init/adjust_ssh/05_init/initial_state.nc": "global_ocean/IcoswISC/WOA23/init/adjust_ssh/05_init/initial_state.250111.nc", - "ocean/global_ocean/IcoswISC/WOA23/init/adjust_ssh/05_init/init_mode_forcing_data.nc": "global_ocean/IcoswISC/WOA23/init/adjust_ssh/05_init/init_mode_forcing_data.250111.nc", - "ocean/global_ocean/IcoswISC/WOA23/init/adjust_ssh/05_init/graph.info": "global_ocean/IcoswISC/WOA23/init/adjust_ssh/05_init/graph.250111.info", - "ocean/global_ocean/IcoswISC/WOA23/init/adjust_ssh/06_adjust_ssh/topography_culled.nc": "global_ocean/IcoswISC/WOA23/init/adjust_ssh/06_adjust_ssh/topography_culled.250111.nc", - "ocean/global_ocean/IcoswISC/WOA23/init/adjust_ssh/07_init/initial_state.nc": "global_ocean/IcoswISC/WOA23/init/adjust_ssh/07_init/initial_state.250111.nc", - "ocean/global_ocean/IcoswISC/WOA23/init/adjust_ssh/07_init/init_mode_forcing_data.nc": "global_ocean/IcoswISC/WOA23/init/adjust_ssh/07_init/init_mode_forcing_data.250111.nc", - "ocean/global_ocean/IcoswISC/WOA23/init/adjust_ssh/07_init/graph.info": "global_ocean/IcoswISC/WOA23/init/adjust_ssh/07_init/graph.250111.info", - "ocean/global_ocean/IcoswISC/WOA23/init/adjust_ssh/08_adjust_ssh/topography_culled.nc": "global_ocean/IcoswISC/WOA23/init/adjust_ssh/08_adjust_ssh/topography_culled.250111.nc", - "ocean/global_ocean/IcoswISC/WOA23/init/adjust_ssh/09_init/initial_state.nc": "global_ocean/IcoswISC/WOA23/init/adjust_ssh/09_init/initial_state.250111.nc", - "ocean/global_ocean/IcoswISC/WOA23/init/adjust_ssh/09_init/init_mode_forcing_data.nc": "global_ocean/IcoswISC/WOA23/init/adjust_ssh/09_init/init_mode_forcing_data.250111.nc", - "ocean/global_ocean/IcoswISC/WOA23/init/adjust_ssh/09_init/graph.info": "global_ocean/IcoswISC/WOA23/init/adjust_ssh/09_init/graph.250111.info", - "ocean/global_ocean/IcoswISC/WOA23/init/adjust_ssh/10_adjust_ssh/topography_culled.nc": "global_ocean/IcoswISC/WOA23/init/adjust_ssh/10_adjust_ssh/topography_culled.250111.nc", - "ocean/global_ocean/IcoswISC240/WOA23/init/adjust_ssh/01_init_with_draft_from_constant_density/initial_state.nc": "global_ocean/IcoswISC240/WOA23/init/adjust_ssh/01_init_with_draft_from_constant_density/initial_state.250111.nc", - "ocean/global_ocean/IcoswISC240/WOA23/init/adjust_ssh/01_init_with_draft_from_constant_density/init_mode_forcing_data.nc": "global_ocean/IcoswISC240/WOA23/init/adjust_ssh/01_init_with_draft_from_constant_density/init_mode_forcing_data.250111.nc", - "ocean/global_ocean/IcoswISC240/WOA23/init/adjust_ssh/01_init_with_draft_from_constant_density/graph.info": "global_ocean/IcoswISC240/WOA23/init/adjust_ssh/01_init_with_draft_from_constant_density/graph.250111.info", - "ocean/global_ocean/IcoswISC240/WOA23/init/adjust_ssh/02_ssh_from_surface_density/topography_culled.nc": "global_ocean/IcoswISC240/WOA23/init/adjust_ssh/02_ssh_from_surface_density/topography_culled.250111.nc", - "ocean/global_ocean/IcoswISC240/WOA23/init/adjust_ssh/03_init/initial_state.nc": "global_ocean/IcoswISC240/WOA23/init/adjust_ssh/03_init/initial_state.250111.nc", - "ocean/global_ocean/IcoswISC240/WOA23/init/adjust_ssh/03_init/init_mode_forcing_data.nc": "global_ocean/IcoswISC240/WOA23/init/adjust_ssh/03_init/init_mode_forcing_data.250111.nc", - "ocean/global_ocean/IcoswISC240/WOA23/init/adjust_ssh/03_init/graph.info": "global_ocean/IcoswISC240/WOA23/init/adjust_ssh/03_init/graph.250111.info", - "ocean/global_ocean/IcoswISC240/WOA23/init/adjust_ssh/04_adjust_ssh/topography_culled.nc": "global_ocean/IcoswISC240/WOA23/init/adjust_ssh/04_adjust_ssh/topography_culled.250111.nc", - "ocean/global_ocean/IcoswISC240/WOA23/init/adjust_ssh/05_init/initial_state.nc": "global_ocean/IcoswISC240/WOA23/init/adjust_ssh/05_init/initial_state.250111.nc", - "ocean/global_ocean/IcoswISC240/WOA23/init/adjust_ssh/05_init/init_mode_forcing_data.nc": "global_ocean/IcoswISC240/WOA23/init/adjust_ssh/05_init/init_mode_forcing_data.250111.nc", - "ocean/global_ocean/IcoswISC240/WOA23/init/adjust_ssh/05_init/graph.info": "global_ocean/IcoswISC240/WOA23/init/adjust_ssh/05_init/graph.250111.info", - "ocean/global_ocean/IcoswISC240/WOA23/init/adjust_ssh/06_adjust_ssh/topography_culled.nc": "global_ocean/IcoswISC240/WOA23/init/adjust_ssh/06_adjust_ssh/topography_culled.250111.nc", - "ocean/global_ocean/IcoswISC240/WOA23/init/adjust_ssh/07_init/initial_state.nc": "global_ocean/IcoswISC240/WOA23/init/adjust_ssh/07_init/initial_state.250111.nc", - "ocean/global_ocean/IcoswISC240/WOA23/init/adjust_ssh/07_init/init_mode_forcing_data.nc": "global_ocean/IcoswISC240/WOA23/init/adjust_ssh/07_init/init_mode_forcing_data.250111.nc", - "ocean/global_ocean/IcoswISC240/WOA23/init/adjust_ssh/07_init/graph.info": "global_ocean/IcoswISC240/WOA23/init/adjust_ssh/07_init/graph.250111.info", - "ocean/global_ocean/IcoswISC240/WOA23/init/adjust_ssh/08_adjust_ssh/topography_culled.nc": "global_ocean/IcoswISC240/WOA23/init/adjust_ssh/08_adjust_ssh/topography_culled.250111.nc", - "ocean/global_ocean/IcoswISC240/WOA23/init/adjust_ssh/09_init/initial_state.nc": "global_ocean/IcoswISC240/WOA23/init/adjust_ssh/09_init/initial_state.250111.nc", - "ocean/global_ocean/IcoswISC240/WOA23/init/adjust_ssh/09_init/init_mode_forcing_data.nc": "global_ocean/IcoswISC240/WOA23/init/adjust_ssh/09_init/init_mode_forcing_data.250111.nc", - "ocean/global_ocean/IcoswISC240/WOA23/init/adjust_ssh/09_init/graph.info": "global_ocean/IcoswISC240/WOA23/init/adjust_ssh/09_init/graph.250111.info", - "ocean/global_ocean/IcoswISC240/WOA23/init/adjust_ssh/10_adjust_ssh/topography_culled.nc": "global_ocean/IcoswISC240/WOA23/init/adjust_ssh/10_adjust_ssh/topography_culled.250111.nc" + "ocean/global_ocean/IcoswISC240/mesh/base_mesh/mesh.msh": "global_ocean/IcoswISC240/mesh/base_mesh/mesh.250409.msh", + "ocean/global_ocean/IcoswISC240/mesh/base_mesh/base_mesh.nc": "global_ocean/IcoswISC240/mesh/base_mesh/base_mesh.250409.nc", + "ocean/global_ocean/IcoswISC240/mesh/base_mesh/cellWidthVsLatLon.nc": "global_ocean/IcoswISC240/mesh/base_mesh/cellWidthVsLatLon.250409.nc", + "ocean/global_ocean/IcoswISC240/mesh/base_mesh/graph.info": "global_ocean/IcoswISC240/mesh/base_mesh/graph.250409.info", + "ocean/global_ocean/IcoswISC240/mesh/cull_mesh/culled_mesh.nc": "global_ocean/IcoswISC240/mesh/cull_mesh/culled_mesh.250409.nc", + "ocean/global_ocean/IcoswISC240/mesh/cull_mesh/culled_graph.info": "global_ocean/IcoswISC240/mesh/cull_mesh/culled_graph.250409.info", + "ocean/global_ocean/IcoswISC240/mesh/cull_mesh/critical_passages_mask_final.nc": "global_ocean/IcoswISC240/mesh/cull_mesh/critical_passages_mask_final.250409.nc", + "ocean/global_ocean/IcoswISC240/mesh/cull_mesh/land_ice_mask.nc": "global_ocean/IcoswISC240/mesh/cull_mesh/land_ice_mask.250409.nc", + "ocean/global_ocean/IcoswISC240/mesh/cull_mesh/topography_culled.nc": "global_ocean/IcoswISC240/mesh/cull_mesh/topography_culled.250409.nc", + "ocean/global_ocean/IcoswISC240/mesh/cull_mesh/map_culled_to_base.nc": "global_ocean/IcoswISC240/mesh/cull_mesh/map_culled_to_base.250409.nc", + "ocean/global_ocean/IcoswISC240/WOA23/init/initial_state/initial_state.nc": "global_ocean/IcoswISC240/WOA23/init/initial_state/initial_state.250409.nc", + "ocean/global_ocean/IcoswISC240/WOA23/init/initial_state/init_mode_forcing_data.nc": "global_ocean/IcoswISC240/WOA23/init/initial_state/init_mode_forcing_data.250409.nc", + "ocean/global_ocean/IcoswISC240/WOA23/init/initial_state/graph.info": "global_ocean/IcoswISC240/WOA23/init/initial_state/graph.250409.info", + "ocean/global_ocean/IcoswISC240/WOA23/init/remap_ice_shelf_melt/prescribed_ismf_paolo2023.nc": "global_ocean/IcoswISC240/WOA23/init/remap_ice_shelf_melt/prescribed_ismf_paolo2023.250409.nc", + "ocean/global_ocean/Icos/mesh/base_mesh/mesh.msh": "global_ocean/Icos/mesh/base_mesh/mesh.250410.msh", + "ocean/global_ocean/Icos/mesh/base_mesh/base_mesh.nc": "global_ocean/Icos/mesh/base_mesh/base_mesh.250410.nc", + "ocean/global_ocean/Icos/mesh/base_mesh/cellWidthVsLatLon.nc": "global_ocean/Icos/mesh/base_mesh/cellWidthVsLatLon.250410.nc", + "ocean/global_ocean/Icos/mesh/base_mesh/graph.info": "global_ocean/Icos/mesh/base_mesh/graph.250410.info", + "ocean/global_ocean/Icos/mesh/cull_mesh/culled_mesh.nc": "global_ocean/Icos/mesh/cull_mesh/culled_mesh.250410.nc", + "ocean/global_ocean/Icos/mesh/cull_mesh/culled_graph.info": "global_ocean/Icos/mesh/cull_mesh/culled_graph.250410.info", + "ocean/global_ocean/Icos/mesh/cull_mesh/critical_passages_mask_final.nc": "global_ocean/Icos/mesh/cull_mesh/critical_passages_mask_final.250410.nc", + "ocean/global_ocean/Icos/mesh/cull_mesh/topography_culled.nc": "global_ocean/Icos/mesh/cull_mesh/topography_culled.250410.nc", + "ocean/global_ocean/Icos/mesh/cull_mesh/map_culled_to_base.nc": "global_ocean/Icos/mesh/cull_mesh/map_culled_to_base.250410.nc", + "ocean/global_ocean/Icos/WOA23/init/initial_state/initial_state.nc": "global_ocean/Icos/WOA23/init/initial_state/initial_state.250410.nc", + "ocean/global_ocean/Icos/WOA23/init/initial_state/init_mode_forcing_data.nc": "global_ocean/Icos/WOA23/init/initial_state/init_mode_forcing_data.250410.nc", + "ocean/global_ocean/Icos/WOA23/init/initial_state/graph.info": "global_ocean/Icos/WOA23/init/initial_state/graph.250410.info", + "ocean/global_ocean/IcoswISC/mesh/base_mesh/mesh.msh": "global_ocean/IcoswISC/mesh/base_mesh/mesh.250410.msh", + "ocean/global_ocean/IcoswISC/mesh/base_mesh/base_mesh.nc": "global_ocean/IcoswISC/mesh/base_mesh/base_mesh.250410.nc", + "ocean/global_ocean/IcoswISC/mesh/base_mesh/cellWidthVsLatLon.nc": "global_ocean/IcoswISC/mesh/base_mesh/cellWidthVsLatLon.250410.nc", + "ocean/global_ocean/IcoswISC/mesh/base_mesh/graph.info": "global_ocean/IcoswISC/mesh/base_mesh/graph.250410.info", + "ocean/global_ocean/IcoswISC/mesh/cull_mesh/culled_mesh.nc": "global_ocean/IcoswISC/mesh/cull_mesh/culled_mesh.250410.nc", + "ocean/global_ocean/IcoswISC/mesh/cull_mesh/culled_graph.info": "global_ocean/IcoswISC/mesh/cull_mesh/culled_graph.250410.info", + "ocean/global_ocean/IcoswISC/mesh/cull_mesh/critical_passages_mask_final.nc": "global_ocean/IcoswISC/mesh/cull_mesh/critical_passages_mask_final.250410.nc", + "ocean/global_ocean/IcoswISC/mesh/cull_mesh/land_ice_mask.nc": "global_ocean/IcoswISC/mesh/cull_mesh/land_ice_mask.250410.nc", + "ocean/global_ocean/IcoswISC/mesh/cull_mesh/topography_culled.nc": "global_ocean/IcoswISC/mesh/cull_mesh/topography_culled.250410.nc", + "ocean/global_ocean/IcoswISC/mesh/cull_mesh/map_culled_to_base.nc": "global_ocean/IcoswISC/mesh/cull_mesh/map_culled_to_base.250410.nc", + "ocean/global_ocean/IcoswISC/WOA23/init/initial_state/initial_state.nc": "global_ocean/IcoswISC/WOA23/init/initial_state/initial_state.250410.nc", + "ocean/global_ocean/IcoswISC/WOA23/init/initial_state/init_mode_forcing_data.nc": "global_ocean/IcoswISC/WOA23/init/initial_state/init_mode_forcing_data.250410.nc", + "ocean/global_ocean/IcoswISC/WOA23/init/initial_state/graph.info": "global_ocean/IcoswISC/WOA23/init/initial_state/graph.250410.info", + "ocean/global_ocean/IcoswISC/WOA23/init/remap_ice_shelf_melt/prescribed_ismf_paolo2023.nc": "global_ocean/IcoswISC/WOA23/init/remap_ice_shelf_melt/prescribed_ismf_paolo2023.250410.nc", + "ocean/global_ocean/IcoswISC/WOA23/init/adjust_ssh/01_init_with_draft_from_constant_density/initial_state.nc": "global_ocean/IcoswISC/WOA23/init/adjust_ssh/01_init_with_draft_from_constant_density/initial_state.250410.nc", + "ocean/global_ocean/IcoswISC/WOA23/init/adjust_ssh/01_init_with_draft_from_constant_density/init_mode_forcing_data.nc": "global_ocean/IcoswISC/WOA23/init/adjust_ssh/01_init_with_draft_from_constant_density/init_mode_forcing_data.250410.nc", + "ocean/global_ocean/IcoswISC/WOA23/init/adjust_ssh/01_init_with_draft_from_constant_density/graph.info": "global_ocean/IcoswISC/WOA23/init/adjust_ssh/01_init_with_draft_from_constant_density/graph.250410.info", + "ocean/global_ocean/IcoswISC/WOA23/init/adjust_ssh/02_ssh_from_surface_density/topography_culled.nc": "global_ocean/IcoswISC/WOA23/init/adjust_ssh/02_ssh_from_surface_density/topography_culled.250410.nc", + "ocean/global_ocean/IcoswISC/WOA23/init/adjust_ssh/03_init/initial_state.nc": "global_ocean/IcoswISC/WOA23/init/adjust_ssh/03_init/initial_state.250410.nc", + "ocean/global_ocean/IcoswISC/WOA23/init/adjust_ssh/03_init/init_mode_forcing_data.nc": "global_ocean/IcoswISC/WOA23/init/adjust_ssh/03_init/init_mode_forcing_data.250410.nc", + "ocean/global_ocean/IcoswISC/WOA23/init/adjust_ssh/03_init/graph.info": "global_ocean/IcoswISC/WOA23/init/adjust_ssh/03_init/graph.250410.info", + "ocean/global_ocean/IcoswISC/WOA23/init/adjust_ssh/04_adjust_ssh/topography_culled.nc": "global_ocean/IcoswISC/WOA23/init/adjust_ssh/04_adjust_ssh/topography_culled.250410.nc", + "ocean/global_ocean/IcoswISC/WOA23/init/adjust_ssh/05_init/initial_state.nc": "global_ocean/IcoswISC/WOA23/init/adjust_ssh/05_init/initial_state.250410.nc", + "ocean/global_ocean/IcoswISC/WOA23/init/adjust_ssh/05_init/init_mode_forcing_data.nc": "global_ocean/IcoswISC/WOA23/init/adjust_ssh/05_init/init_mode_forcing_data.250410.nc", + "ocean/global_ocean/IcoswISC/WOA23/init/adjust_ssh/05_init/graph.info": "global_ocean/IcoswISC/WOA23/init/adjust_ssh/05_init/graph.250410.info", + "ocean/global_ocean/IcoswISC/WOA23/init/adjust_ssh/06_adjust_ssh/topography_culled.nc": "global_ocean/IcoswISC/WOA23/init/adjust_ssh/06_adjust_ssh/topography_culled.250410.nc", + "ocean/global_ocean/IcoswISC/WOA23/init/adjust_ssh/07_init/initial_state.nc": "global_ocean/IcoswISC/WOA23/init/adjust_ssh/07_init/initial_state.250410.nc", + "ocean/global_ocean/IcoswISC/WOA23/init/adjust_ssh/07_init/init_mode_forcing_data.nc": "global_ocean/IcoswISC/WOA23/init/adjust_ssh/07_init/init_mode_forcing_data.250410.nc", + "ocean/global_ocean/IcoswISC/WOA23/init/adjust_ssh/07_init/graph.info": "global_ocean/IcoswISC/WOA23/init/adjust_ssh/07_init/graph.250410.info", + "ocean/global_ocean/IcoswISC/WOA23/init/adjust_ssh/08_adjust_ssh/topography_culled.nc": "global_ocean/IcoswISC/WOA23/init/adjust_ssh/08_adjust_ssh/topography_culled.250410.nc", + "ocean/global_ocean/IcoswISC/WOA23/init/adjust_ssh/09_init/initial_state.nc": "global_ocean/IcoswISC/WOA23/init/adjust_ssh/09_init/initial_state.250410.nc", + "ocean/global_ocean/IcoswISC/WOA23/init/adjust_ssh/09_init/init_mode_forcing_data.nc": "global_ocean/IcoswISC/WOA23/init/adjust_ssh/09_init/init_mode_forcing_data.250410.nc", + "ocean/global_ocean/IcoswISC/WOA23/init/adjust_ssh/09_init/graph.info": "global_ocean/IcoswISC/WOA23/init/adjust_ssh/09_init/graph.250410.info", + "ocean/global_ocean/IcoswISC/WOA23/init/adjust_ssh/10_adjust_ssh/topography_culled.nc": "global_ocean/IcoswISC/WOA23/init/adjust_ssh/10_adjust_ssh/topography_culled.250410.nc", + "ocean/global_ocean/IcoswISC240/WOA23/init/adjust_ssh/01_init_with_draft_from_constant_density/initial_state.nc": "global_ocean/IcoswISC240/WOA23/init/adjust_ssh/01_init_with_draft_from_constant_density/initial_state.250409.nc", + "ocean/global_ocean/IcoswISC240/WOA23/init/adjust_ssh/01_init_with_draft_from_constant_density/init_mode_forcing_data.nc": "global_ocean/IcoswISC240/WOA23/init/adjust_ssh/01_init_with_draft_from_constant_density/init_mode_forcing_data.250409.nc", + "ocean/global_ocean/IcoswISC240/WOA23/init/adjust_ssh/01_init_with_draft_from_constant_density/graph.info": "global_ocean/IcoswISC240/WOA23/init/adjust_ssh/01_init_with_draft_from_constant_density/graph.250409.info", + "ocean/global_ocean/IcoswISC240/WOA23/init/adjust_ssh/02_ssh_from_surface_density/topography_culled.nc": "global_ocean/IcoswISC240/WOA23/init/adjust_ssh/02_ssh_from_surface_density/topography_culled.250409.nc", + "ocean/global_ocean/IcoswISC240/WOA23/init/adjust_ssh/03_init/initial_state.nc": "global_ocean/IcoswISC240/WOA23/init/adjust_ssh/03_init/initial_state.250409.nc", + "ocean/global_ocean/IcoswISC240/WOA23/init/adjust_ssh/03_init/init_mode_forcing_data.nc": "global_ocean/IcoswISC240/WOA23/init/adjust_ssh/03_init/init_mode_forcing_data.250409.nc", + "ocean/global_ocean/IcoswISC240/WOA23/init/adjust_ssh/03_init/graph.info": "global_ocean/IcoswISC240/WOA23/init/adjust_ssh/03_init/graph.250409.info", + "ocean/global_ocean/IcoswISC240/WOA23/init/adjust_ssh/04_adjust_ssh/topography_culled.nc": "global_ocean/IcoswISC240/WOA23/init/adjust_ssh/04_adjust_ssh/topography_culled.250409.nc", + "ocean/global_ocean/IcoswISC240/WOA23/init/adjust_ssh/05_init/initial_state.nc": "global_ocean/IcoswISC240/WOA23/init/adjust_ssh/05_init/initial_state.250409.nc", + "ocean/global_ocean/IcoswISC240/WOA23/init/adjust_ssh/05_init/init_mode_forcing_data.nc": "global_ocean/IcoswISC240/WOA23/init/adjust_ssh/05_init/init_mode_forcing_data.250409.nc", + "ocean/global_ocean/IcoswISC240/WOA23/init/adjust_ssh/05_init/graph.info": "global_ocean/IcoswISC240/WOA23/init/adjust_ssh/05_init/graph.250409.info", + "ocean/global_ocean/IcoswISC240/WOA23/init/adjust_ssh/06_adjust_ssh/topography_culled.nc": "global_ocean/IcoswISC240/WOA23/init/adjust_ssh/06_adjust_ssh/topography_culled.250409.nc", + "ocean/global_ocean/IcoswISC240/WOA23/init/adjust_ssh/07_init/initial_state.nc": "global_ocean/IcoswISC240/WOA23/init/adjust_ssh/07_init/initial_state.250409.nc", + "ocean/global_ocean/IcoswISC240/WOA23/init/adjust_ssh/07_init/init_mode_forcing_data.nc": "global_ocean/IcoswISC240/WOA23/init/adjust_ssh/07_init/init_mode_forcing_data.250409.nc", + "ocean/global_ocean/IcoswISC240/WOA23/init/adjust_ssh/07_init/graph.info": "global_ocean/IcoswISC240/WOA23/init/adjust_ssh/07_init/graph.250409.info", + "ocean/global_ocean/IcoswISC240/WOA23/init/adjust_ssh/08_adjust_ssh/topography_culled.nc": "global_ocean/IcoswISC240/WOA23/init/adjust_ssh/08_adjust_ssh/topography_culled.250409.nc", + "ocean/global_ocean/IcoswISC240/WOA23/init/adjust_ssh/09_init/initial_state.nc": "global_ocean/IcoswISC240/WOA23/init/adjust_ssh/09_init/initial_state.250409.nc", + "ocean/global_ocean/IcoswISC240/WOA23/init/adjust_ssh/09_init/init_mode_forcing_data.nc": "global_ocean/IcoswISC240/WOA23/init/adjust_ssh/09_init/init_mode_forcing_data.250409.nc", + "ocean/global_ocean/IcoswISC240/WOA23/init/adjust_ssh/09_init/graph.info": "global_ocean/IcoswISC240/WOA23/init/adjust_ssh/09_init/graph.250409.info", + "ocean/global_ocean/IcoswISC240/WOA23/init/adjust_ssh/10_adjust_ssh/topography_culled.nc": "global_ocean/IcoswISC240/WOA23/init/adjust_ssh/10_adjust_ssh/topography_culled.250409.nc", + "ocean/global_ocean/IcoswISC240/mesh/remap_topo_unsmoothed/topography_remapped.nc": "global_ocean/IcoswISC240/mesh/remap_topo_unsmoothed/topography_remapped.250409.nc", + "ocean/global_ocean/IcoswISC240/mesh/remap_topo_smoothed/topography_remapped.nc": "global_ocean/IcoswISC240/mesh/remap_topo_smoothed/topography_remapped.250409.nc", + "ocean/global_ocean/Icos/mesh/remap_topo_unsmoothed/topography_remapped.nc": "global_ocean/Icos/mesh/remap_topo_unsmoothed/topography_remapped.250410.nc", + "ocean/global_ocean/Icos/mesh/remap_topo_smoothed/topography_remapped.nc": "global_ocean/Icos/mesh/remap_topo_smoothed/topography_remapped.250410.nc", + "ocean/global_ocean/IcoswISC/mesh/remap_topo_unsmoothed/topography_remapped.nc": "global_ocean/IcoswISC/mesh/remap_topo_unsmoothed/topography_remapped.250410.nc", + "ocean/global_ocean/IcoswISC/mesh/remap_topo_smoothed/topography_remapped.nc": "global_ocean/IcoswISC/mesh/remap_topo_smoothed/topography_remapped.250410.nc" }