COSIMA / access-om3

ACCESS-OM3 global ocean-sea ice-wave coupled model
13 stars 6 forks source link

Offline tracer transport for BGC #123

Open aekiss opened 3 months ago

aekiss commented 3 months ago

Apparently MOM6 has an offline tracer transport capability https://adcroft.github.io/MOM6/APIs/namespacemom__offline__main.html

This could be very useful for cheaply spinning up BGC and also doing BGC parameter tuning, so might be worth investigating.

aekiss commented 3 months ago

Note that this only works with standalone MOM6:

The subroutine step_tracers that coordinates this can be found in MOM.F90 and is only called using the solo ocean driver. This is to avoid issues with coupling to other climate components that may be relying on fluxes from the ocean to be coupled more often than the offline time step.

aekiss commented 3 months ago

@dougiesquire commented that WOMBAT needs atmospheric fields which we're getting from DATM via the NUOPC coupler in ACCESS-OM3, so this 1-way coupled mechanism won't work with the solo ocean driver. So this capability would need to be moved into the solo ocean driver.

aekiss commented 3 months ago

First step - Dale to try running MOM6 in offline mode with a simple tracer like age to see what's involved.

aekiss commented 3 months ago

Try a normal run for (say) a year, saving necessary volume fluxes etc, then re-run in offline mode using the saved fluxes.

dougiesquire commented 3 months ago

MOM6-example of offline tracer: https://github.com/NOAA-GFDL/MOM6-examples/tree/4ce152c8458ada43e1388568c1d37003be84b869/ice_ocean_SIS2/Baltic_ALE_z_offline_tracers

aekiss commented 3 months ago

Re. a normal run to save fluxes:

dougiesquire commented 3 months ago

MOM6-example of offline tracer: https://github.com/NOAA-GFDL/MOM6-examples/tree/4ce152c8458ada43e1388568c1d37003be84b869/ice_ocean_SIS2/Baltic_ALE_z_offline_tracers

I was wrong about what tracers are used in this example - looks like it's using an advection_test_tracer and ideal_age_example tracer

dougiesquire commented 3 months ago

Re. a normal run to save fluxes

I think the MOM6-example I linked above is set up to do both the online and offline runs

access-hive-bot commented 3 months ago

This issue has been mentioned on ACCESS Hive Community Forum. There might be relevant details there:

https://forum.access-hive.org.au/t/cosima-twg-meeting-minutes-2024/1734/6

AndyHoggANU commented 2 months ago

This offline capability would be pretty nice to have for BGC modelling. Actually, it would also be nice for our physics-only runs - because we could actually spin up the ideal age tracer for the first time ever!

I realise there is work to do to get WOMBAT in shape to do this spin up, but perhaps we should start testing this. Seems the best test might be to do something simple with ideal age itself...

I've heard a rumour that @dsroberts is already looking into this system? Dale, any interest in trying that test case? We can probably provide ACCESS-OM3 test cases if that is useful.

adele-morrison commented 2 months ago

I second this, spun-up ideal age would be really cool!!

dsroberts commented 2 months ago

@AndyHoggANU the rumours are true, confirmed here: https://github.com/COSIMA/access-om3/issues/123#issuecomment-2033259457. I've started digging into this test case, instructions are to run online, then offline, so its exactly what I was looking for. I've not run MOM6 at all before, so I'm getting up to speed with it before looking at BGC.

dsroberts commented 2 weeks ago

Hi All. Just an update on this, I know its been a while, but unfortunately I've had quite a few immediate CLEX priorities take up my time. That being said, I ran through the built-in offline example, and converted the 1-degree global example to produce the necessary fluxes for offline runs. From this, I ran a year of ACCESS-OM3 (thanks @dougiesquire for the advice and the NRI team for the spack configuration) with the same diag_table config. I thought everything was going smoothly, but then I tried to change a few simple parameters to see what would happen and things got strange. The offline stepping is almost an entirely separate path through the code, and as far as I can tell, it doesn't respect diag_tables, nor does it seem to detect when should have run out of data. I went back to the offline example and ran it 'online' for 4 days, then set it to run offline for a month and the model was OK with that. Next steps are to work out exactly what's going on there. Is the model reading the right fluxes at the right time? Do the tracers look sensible at the end of longer runs? Can it be told to output periodically and not just at the end of the run?

AndyHoggANU commented 2 weeks ago

Sounds like progress to me @dsroberts - do you think the same strategy will work for a longer run? And how big will the data to drive the model become?