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 support for mom mosaic (supergrid) grid format #993

Open
wants to merge 28 commits into
base: main
Choose a base branch
from

Conversation

anton-seaice
Copy link
Contributor

@anton-seaice anton-seaice commented Nov 7, 2024

This changes adds grid_type = 'mom_mosaic' support to directly load the grid from a netcdf file which uses the mom mosaic (supergrid) definition, and calculates all fields to follow the method MOM6 uses. i.e.

  • all lats & lons are read from the file
  • all cell x/y lengths are read from the file
  • A grid and B grid areas are read from the file, C grid areas are calculated internally (per Initialising areaC NOAA-GFDL/MOM6#740)
  • angles are calculated internally (even though they exist in the mosaic file)

There are a few limitations:

  • If the CHANNEL_CONFIG option is used in MOM6, this can change some cell sizes at runtime, however we are loading these from the file.
  • MOM6 generates a land-sea mask by making land where the bathymetry<0.5m , however we are still loading from a kmt file which needs to be generated "offline".

I haven't tested every permutation of boundary conditions and grid type, I focussed on on tripolar grids and did best-effots checks on the other boundary conditions.

I found exact matches (to single point precision) between the MOM6 & CICE6 saved grids, see https://github.com/anton-seaice/sandbox/blob/main/new_cice_grid/mom_mosaic_in_cice.ipynb

The NUOPC driver checks for consistency in areas, and lon/lats between the model and the mediator. It applies a correction for differences in area between the model and the mediator. Even if the cell area field is populated in the mediator mesh file, this is not used and the area calculated by ESMF is used instead. Therefore depending on how the mosaic file was created (and how the areas are calculated for that process), the correction between model and mediator areas may not be 1 everywhere.

This change doesn't include any new tests, and I suggest deferring adding tests as it requires new forcing data

I also added kmt_type = 'none' - This is only for testing / idealised configurations, so it's not in the docs. It's not essential for this PR.

PR checklist

  • Short (1 sentence) summary of your PR:
    Add support for creating the CICE grid from a MOM mosaic (supergrid) format
  • Developer(s):
    @anton-seaice
  • Suggest PR reviewers from list in the column to the right.
    @dabail10
  • Please copy the PR test results link or provide a summary of testing completed below.
    To-do, if the change & scope looks ok, I will run the cice standalone tests
  • How much do the PR code changes differ from the unmodified code?
    • bit for bit
    • different at roundoff level
    • more substantial
  • Does this PR create or have dependencies on Icepack or any other models?
    • Yes
    • No
  • Does this PR update the Icepack submodule? If so, the Icepack submodule must point to a hash on Icepack's main branch.
    • Yes
    • No
  • Does this PR add any new test cases?
  • Is the documentation being updated? ("Documentation" includes information on the wiki or in the .rst files from doc/source/, which are used to create the online technical docs at https://readthedocs.org/projects/cice-consortium-cice/. A test build of the technical docs will be performed as part of the PR testing.)
    • Yes
    • No, does the documentation need to be updated at a later time?
      • Yes
      • No
  • Please document the changes in detail, including why the changes are made. This will become part of the PR commit log.
    This changes adds grid_type = 'mom_mosaic' support to directly load the grid from a netcdf file which uses the mom mosaic (supergrid) definition, and calculates all fields to follow the method MOM6 uses. Contributes to MOM supergrid and other grid types #807

anton-seaice and others added 28 commits October 14, 2024 13:24
Tidy compiler flags

extend a few tests

extend one more

tidy

fix gadi test submission

Tidy compiler flags

extend a few tests

longer again
commit 9555346
Author: Anton Steketee <[email protected]>
Date:   Mon Oct 28 09:26:14 2024 +1100

    Update cicecore/cicedyn/general/ice_init.F90

commit 388612d
Author: anton-seaice <[email protected]>
Date:   Tue Oct 22 11:38:46 2024 +1100

    fix gadi test submission

    Tidy compiler flags

    extend a few tests

    extend one more

    tidy

    fix gadi test submission

    Tidy compiler flags

    extend a few tests

    longer again

commit 3d9566a
Author: anton-seaice <[email protected]>
Date:   Tue Oct 22 13:43:42 2024 +1100

    deprecate cpom orca grid
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant