CliMA / ClimaOcean.jl

🌎 Tools for realistic regional-to-global ocean simulations, and coupled ocean + sea-ice simulations based on Oceananigans and ClimaSeaIce. Basis for the ocean and sea-ice component of CliMA's Earth system model.
https://clima.github.io/ClimaOceanDocumentation/dev/
MIT License
26 stars 7 forks source link

The road to OMIP #28

Open glwagner opened 1 year ago

glwagner commented 1 year ago

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.

### Scope of Work
navidcy commented 1 year ago

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

glwagner commented 1 year ago

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

aekiss commented 1 year ago

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

simone-silvestri commented 1 year ago

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

siddharthabishnu commented 1 year ago

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

glwagner commented 1 year ago

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

navidcy commented 1 year ago

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

aekiss commented 12 months ago

sounds good, happy to chat

francispoulin commented 2 months ago

I only saw this today and wanted to compliment everyone on such a good plan, and it seems it has progressed quite a bit since this was first posted.

Has victory been declared on bathymetry, or any other points yet?

I am happy to help with this as needed. At the moment I’m most curious about the winds but it’s all very interesting.