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

The road to OMIP #28

Open
glwagner opened this issue Jun 7, 2023 · 8 comments
Open

The road to OMIP #28

glwagner opened this issue Jun 7, 2023 · 8 comments
Assignees
Labels
global simulations 🌎 They should have called this planet Ocean
Milestone

Comments

@glwagner
Copy link
Member

glwagner commented Jun 7, 2023

We'd like to make a (reproducible, well-documented) OMIP setup. Here's my proposed roadmap. I'm going to start with 1/4 degree resolution on LatitudeLongitudeGrid, though the ultimate goal will be a somewhat higher resolution on the cubed sphere. Feedback very welcome on the plan below. After we have some discussion about these steps, I'll open issues / PRs for each step individually. @navidcy @simone-silvestri @siddharthabishnu @jm-c @christophernhill

  1. Bathymetry generation.

    • Util for downloading and regridding ETOPO1 (NetCDF with ice surface elevations), which is 1/60th degree (note that in reality the actual resolution is a lot coarser over the majority of the globe). Regridding is probably expensive so I think we should host the regridded data on engaging. I'm not sure it matters whether we use the bedrock or ice surface elevations.
    • Functions that implement the bathymetry edits we need for high quality solutions at each resolution, and on different grids (starting with 1/4 degree on LatitudeLongitudeGrid but generalizing to to CubedSphereGrid and other resolutions). The edits are things like, removing inland seas, widening narrow regions, deepening problematically shallow areas.
    • Declare victory when we can initialize an ocean with constant stratification with realistic bathymetry.
  2. Initialization

    • Discuss whether we should initialize from WOA or ECCO
    • Util for downloading, regridding, smoothing, NaN in painting. This is less expensive, so in principle could be done on the fly if we like
    • Declare victory when we can run a simple simulation from rest and with WOA temperature / salinity.
  3. Forcing by JRA55-do winds

    • For now use a constant drag coefficient on the relative atmos-ocean velocity --- start with repeat year forcing rather than the whole 55 year time series?
    • Again host regridded JRA55-do data on engaging. Implement util for regridding.
    • Possibly, implement util for "chunked" loading in FieldTimeSeries. In other words, to force with a very long time series of high resolution 3-hourly winds, we cannot load the whole time-series at the same time. Nor do we want to load data every time step, though. So we need "chunked" loading, where we load some portion of the time-series, say, every 30 days. This kind of chunked loading would also be useful for FieldTimeSeries, so we can possible tackle it that way and gain a useful Oceananigans feature.
    • Declare victory when we can run a simulation for some amount of time. Perhaps for a year.
  4. Add heat and salinity fluxes from JRA55-do atmospheric state. I'm not sure how exactly this works. Perhaps it's easiest to start with radiative fluxes, and then add simple bulk formula after that. Probably rinse and repeat what was done for momentum forcing. I think the heat/salinity depend on momentum forcing, since fluxes are zero if momentum fluxes are zero via the bulk formula.

Now things get a little hazier...

  1. Adapt the setup to pass fluxes through sea ice? This is a big effort, plus by this time we might have the cubed sphere so the order of operations could change.
  2. Implement proper bulk formula using a prototype ClimaEarth framework.
  3. Add run-off. Not sure if this has to be saved for last, but it seems like it could be.

@simone-silvestri I think you've done some of these steps, but I'm not sure where the code is (eg the setups here download bathymetry and initial conditions from somewhere, but I don't know where the code is that generates the bathymetry or initial state). Any help for any of these steps is extremely welcome.

I'll probably lean on COSIMA for some of the JRA55-do stuff and maybe WOA too. We'll see.

Tasks

No tasks being tracked yet.
@glwagner glwagner added this to the OMIP milestone Jun 7, 2023
@navidcy
Copy link
Collaborator

navidcy commented Jun 7, 2023

I'm tagging @aekiss here. (@aekiss, feel free to mute this.)

@glwagner glwagner added the global simulations 🌎 They should have called this planet Ocean label Jun 7, 2023
@glwagner
Copy link
Member Author

glwagner commented Jun 7, 2023

Another option for bathymetry via @navidcy: https://agupubs.onlinelibrary.wiley.com/doi/full/10.1029/2021EA002069

@aekiss
Copy link

aekiss commented Jun 7, 2023

Happy to provide COSIMA tools and datasets for 1-4 above - let me know and I can give details.

@simone-silvestri
Copy link
Collaborator

Agreed with all the steps. Let's meet to see what I already have. For sure something for bathymetry.

@siddharthabishnu
Copy link

I like the roadmap. It's definitely the logical way to go about it.

@glwagner
Copy link
Member Author

glwagner commented Sep 6, 2023

@navidcy @aekiss I've reached a point where I think it might be beneficial to chat!

@navidcy
Copy link
Collaborator

navidcy commented Sep 6, 2023

Let’s try next week? Depending on @aekiss availability.

@aekiss
Copy link

aekiss commented Sep 19, 2023

sounds good, happy to chat

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
global simulations 🌎 They should have called this planet Ocean
Projects
None yet
Development

No branches or pull requests

5 participants