NCAR / MOM6

NCAR/CESM fork of the Modular Ocean Model v.6 (MOM6)
Other
3 stars 20 forks source link

Allowing generic_tracers with NUOPC cap #269

Open dougiesquire opened 10 months ago

dougiesquire commented 10 months ago

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:

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

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.