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 WOMBATlite generic tracer #1

Merged
merged 20 commits into from
Aug 16, 2024
Merged

Add WOMBATlite generic tracer #1

merged 20 commits into from
Aug 16, 2024

Conversation

dougiesquire
Copy link
Collaborator

@dougiesquire dougiesquire commented Mar 26, 2024

This PR adds the WOMBAT BGC model as a generic_tracer. The aim was to write a generic version of WOMBAT that is as similar as practically possible to the MOM5 WOMBAT-bio_v3 version used in ACCESS-OM2 and ACCESS-ESM1.5. This is called WOMBATlite to allow for heavier-weight versions of WOMBAT being developed by @pearseb.

Still to do:

  • update prognostic tracers via pointers? This is now done where it is easy and makes sense to do so, but most tracers are still zero-floored and for these it is more convenient not to use pointers.
  • use ACCESS-OM2 co2_xxx.nc file for co2_flux calc
  • sort out units
  • account for sw absorption through column
  • initialisation from src files

Key differences to MOM5 implementation:

  • No more bgc_param.nc - global parameters take default values used in ACCESS-OM2/ESM1.5 but can be changed via field_table
  • Single restart that includes sediment tracers
  • Coupler fluxes are calculated externally (e.g. in MOM6 NUOPC cap with ACCESS-OM3, or in FMScoupler) so coupler diagnostics are now requested in a slightly different way in diag_table
  • External fields (e.g. co2 fields, dust etc) set up to be provided by coupler but can be overwritten using data_table
  • Units of most things are different (including prognostic tracers which are in mol/kg).
  • zero_floor option removed. A zero floor is applied to prognostic tracers when updating source terms - need to explore turning this off.
  • Updated surface co2 calculation routine. Defaults to 'ocmip2' carbonate formulation as used in MOM5 implementation, but can be configured to use 'mocsy'.
  • Unavoidable differences in the order of operations
  • Depth of the euphotic zone varies spatially (still just deepest cell with bottom less than 400m)
  • Sinking of Detritus and CaCO3 now done with fully implicit upwind advection scheme
  • Available light calculation changed to handle banded SW pen and opacity

@dougiesquire dougiesquire marked this pull request as draft March 26, 2024 06:02
allocate/deallocate btf fields

remove redundant diagnostics
@dougiesquire dougiesquire marked this pull request as ready for review April 26, 2024 01:19
@dougiesquire dougiesquire changed the title Add WOMBAT generic tracer Add WOMBATlite generic tracer Apr 30, 2024
@pearseb
Copy link
Collaborator

pearseb commented Apr 30, 2024

@dougiesquire, just a comment that WOMBAT-lite is different from the old WOMBAT. To avoid avoid confusion here is the summary:

WOMBAT is the predecessor that you have coded into MOM6 and was used as part of ACCESS-OM2 and ACCESS-ESM1.5.

WOMBAT-lite, WOMBAT-mid and (eventually) WOMBAT-heavy are all updates and are very different biogeochemical models.

@dougiesquire
Copy link
Collaborator Author

dougiesquire commented Apr 30, 2024

@pearseb I had thought that the first release of WOMBATlite would be the version that I've ported from ACCESS-OM2? Otherwise we will end up with four versions of WOMBAT (WOMBAT, WOMBATlite, WOMBATmid and WOMBATheavy) which is maybe not ideal?

@pearseb
Copy link
Collaborator

pearseb commented Apr 30, 2024

Hmm... Well I suppose we can call it WOMBAT-lite, but the newer version of WOMBAT-lite is quite a different model. In this case version numbers might be appropriate?

WOMBAT-lite1.0 and WOMBAT-lite2.0?

@dougiesquire
Copy link
Collaborator Author

Yup, there will be a version number associated with the release, so it should be easy enough to differentiate. I still need to work out exactly how we want to version releases. The typical/simple approach would be to just tag a version on Github. But that will mean all modules (WOMBATlite, BLING, etc) are versioned together, which may not be ideal...

Copy link
Collaborator

@pearseb pearseb left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey Dougie,
I've gone through the code and this all looks fine to me. The only sticking point I had was with the grazing formulation (g_npz) where it took me a second to understand the conversion of epsilon from m6/(mmol2) to kg2/mol2. That conversion is def necessary for the different units of phytoplankton biomass.
Nice work. Happy for this to be released.

generic_tracers/generic_WOMBAT.F90 Outdated Show resolved Hide resolved
@dougiesquire
Copy link
Collaborator Author

Thanks heaps for the review @pearseb! I've addressed your comment. If you're happy to merge, could you please provide an approving review (I've set things up in this repo so that PRs can't be merged without one). Go to "Files changed" -> "Review changes" -> click "Approve" and then "Submit review". Thanks again!

pearseb
pearseb previously approved these changes May 1, 2024
@pearseb
Copy link
Collaborator

pearseb commented May 1, 2024 via email

Copy link
Collaborator

@matt-csiro matt-csiro left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looking at the tests with WOMBAT as a mom5- and a generic-tracer, the results are very similar.
Surface fields in particular are a very good match so it appears that everything is functioning as it should within the core nitrate/phosphate cycle, and also the attached carbon and oxygen cycles.
In the subsurface, there are some subtle differences that are becoming apparent after the 100 years that each test have been run, which is not a surprise given the different way that sinking is being handled by generic tracers.
There is a difference in overall productivity (up by ~ 15 %, seemingly everywhere.... note, productivity is on the low side in both experiments anyway), which may be related to the difference in sinking.
Given the long time scales of the deep ocean, these deep differences would be expected to grow with time.
These differences are not necessarily bad or good, and the generic version will be suitable as a basis for ongoing work.
It just means that it will not be possible to swap an ocean-BGC state between versions without some 'shock.'
Some 'tuning' to the BGC parameters in each version may align their overall BGC performance.

@dougiesquire dougiesquire merged commit 6dcadbb into master Aug 16, 2024
@dougiesquire dougiesquire deleted the add-WOMBAT branch August 16, 2024 05:59
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.

3 participants