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

Allowing generic_tracers with NUOPC cap #269

Open
dougiesquire opened this issue Jan 25, 2024 · 0 comments
Open

Allowing generic_tracers with NUOPC cap #269

dougiesquire opened this issue Jan 25, 2024 · 0 comments

Comments

@dougiesquire
Copy link

dougiesquire commented Jan 25, 2024

NOAA-GFDL maintain a number of modules for modelling tracers implemented via the GFDL “generic_tracer” API. These modules are “generic” in the sense that they can be used by multiple GFDL ocean models (including MOM6). They include a number of BGC models (BLING, COBALT, ERGOM, TOPAZ, miniBLING) and other useful tracers (e.g. CFC, SF6). The modules can be found here.

The MOM NUOPC cap currently doesn’t allow for generic_tracers to be used. This (I presume) is because coupling of generic tracer surface fluxes is handled via FMS coupler_types which are designed for use with the FMScoupler. These coupler types carry the fields required to calculate the additional fluxes, along with information about how the fluxes should be calculated. In FMScoupler, the additional tracer surface fluxes are calculated by the coupler and passed to the ocean model.

I’ve been exploring making modifications to the NUOPC cap to allow generic_tracers. This is because I’m in the process of porting our BGC model (WOMBAT) from MOM5 to MOM6 and the generic_tracer framework is attractive for two reasons:

  • Compatibility with MOM5 and MOM6
  • There’re already a number of BGC modules implemented to use/compare

The approach I’m taking is a bit of a hack:

  • Initialise the FMS coupler types when generic_tracers are being used. There are three of these: one for ocean fields, one for atmospheric fields and one for the fluxes. The ocean fields are set by MOM at initialisation.
  • Retrieve the required atmospheric fields from the coupler and pack them into the atmospheric fields coupler type. Which fields are retrieved depends on the tracer fluxes required by the generic_tracer module being used.
  • Calculate the tracer fluxes from the atmospheric and ocean fields coupler types using the same routines used in FMScoupler (I had to modify these slightly).

My changes can be seen in this PR. The code changes are pretty much limited to the NUOPC cap and are implemented via patch files, so hopefully it’s clear enough what’s been changed. A more detailed description of the changes can be found here. Note that currently things are only set up to couple atmospheric co2 concentration for co2 flux calculations, but it’s easy to add other fields/fluxes. I’ve done some initial testing of the changes with a configuration using the BLING generic tracer.

Finally, to my reason for opening this issue: Is there interest in including these changes in NCAR/MOM6? Even if not, any feedback on the implementation would be very much appreciated.

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

No branches or pull requests

1 participant