Runoff/river-derived biogeochemical tracer fluxes

Discussion about coupled ecosystem models

Moderators: arango, robertson

Post Reply
Message
Author
kearneyb10k
Posts: 14
Joined: Tue Oct 16, 2018 4:26 am
Location: University of Washington, JISAO

Runoff/river-derived biogeochemical tracer fluxes

#1 Unread post by kearneyb10k »

TL;DR question: In the meandering discussion below, I'm looking for answers to a few questions:

1) How exactly do changes in zeta affect biogeochemical tracer concentrations?
2) How are other ROMS modelers implementing biogeochemical tracer fluxes associated with freshwater runoff from land? Point sources? Precipitation-like runoff? Altering the surface flux boundary conditions? Something else?

Much longer query:

For background, I'm working with a descendent of the Hedstrom sea-ice-and-extra-bio variant of ROMS. My domains include a few different Alaska-centric locations, including a variant of the NEP (northeast Pacific 10k) domain and smaller and/or higher-resolution grids within that (Bering Sea 10k and Bering Shelf 3k grids). I'm also attempting to implement some new biological code (BIO_COBALT) in the Bering10K grid and port our Bering biogeochemical model (BESTNPZ) to the larger NEP grid by merging it with the GOANPZ model. One key way BESTNPZ, GOANPZ, and BIO_COBALT differ is in the way they handle runoff-based biogeochemical fluxes.

This region requires a fair amount of freshwater input from land, not only from large rivers but also along much of the coast to represent sub-grid-scale estuaries. The biogeochemical models also require at minimum runoff-associated iron and carbonate system fluxes to appropriate capture our desired dynamics. All of the above applications currently apply freshwater runoff via the RUNOFF flag (a custom option in the Hedstrom variant that adds runoff as an extra surface salinity flux loss, near-identically to EMINUSP). My understanding is that this option was developed because earlier tests with point sources led to unrealistically high stratification, with a lense of surface freshwater extending well away from the coasts (see Dobbins et al., 2009: 10.1016/j.dsr2.2009.02.004).

With this option, GOANPZ later added corresponding tracer fluxes, applied alongside the RUNOFF-related salinity flux in bulk_fluxes.f/ccsm_flux.F:

Code: Select all

          
          cff=1.0_r8/rhow
          
          ! Salinity flux due to runoff
          stflx(i,j,isalt) = stflx(i,j,isalt) -                         &
     &                        cff*runoff(i,j)

          ! example tracer flux due to runoff
          stflx(i,j,iTAlk) = stflx(i,j,iTAlk) + cff*TAFlux(i,j)

My understanding is that this method does *not* actually influence the total mass of water in the grid cell. Because no change in mass occurs, the tracer flux as coded here always leads to an increase in total tracer, even if the the runoff-derived value is lower than the amount in the domain.

Likewise, BIO_COBALT applies a river-derived flux within the biology_tile routine. It also does not appear to consider any dilution effect that would come with the accompanying freshwater input.

Code: Select all

      cff_rivr = 1.0d0 / ( rho0 * Hz(i,j,UBk) )
      cobalt%jno3(i,j,UBk)= cobalt%jno3(i,j,UBk) + river_no3(i,j)*cff_rivr
BESTNPZ does attempt to compensate for the additional volume, using the same procedure as GOANPZ but with some added logic related to the existing concentration:

Code: Select all

          stflx(i,j,iTAlk) = (stflx(i,j,iTAlk) + cff*TAFlux(i,j)        &
     &         + (1._r8 - (cff*runoff(i,j)))*t(i,j,N(ng),nrhs,iTAlk))   &
     &         - t(i,j,N(ng),nrhs,iTAlk)
(I'm not quite sure this is fully accounting for the difference, but it at least nudges in the right direction.)

Going forward, I have a few options:

1) Keep the BGC code as in GOANPZ and/or BIO_COBALT, but turn on the RUNOFF_SSH flag. This flag alters zeta to account for the added mass from runoff. But does this then affect tracer concentration? I would assume so, and I've been trying to track where various routines switch between referencing the nrhs/nstp/nnew time steps and where those convert between Tunits and m*Tunits in order to answer this question... but I haven't convinced myself one way or the other yet. If it does properly dilute tracers, then that fixes *most* my issues. (It would also dilute tracers without any runoff-associated flux... but I think that's an okay assumption for our applications).

2) If RUNOFF_SSH *doesn't* dilute tracers, I'd need to do something similar to the BESTNPZ logic for all the bio models I'm spinning up. Doable, but a pain, and currently difficult to maintain (would need to be coded into each bio model).

3) Alternatively, I could experiment with using point sources. I understand that the LwSrc option was recently updated so that mass point sources (and their accompanying tracer concentrations) can be added in any grid cell, not just those adjacent to land. Perhaps distributing point sources in the same diffuse manner as we had been doing with runoff would mitigate the runaway stratification issue from years ago while also adding both mass and tracer fluxes in a numerically robust manner?

I'd really love some input from anyone else who has dug into this part of the ROMS code!

User avatar
kate
Posts: 4091
Joined: Wed Jul 02, 2003 5:29 pm
Location: CFOS/UAF, USA

Re: Runoff/river-derived biogeochemical tracer fluxes

#2 Unread post by kate »

My recent runs have used the lateral flux river sources, not the runoff. I stole a wind-wave mixing parameterization (Li and Fox-Kemper) to add more surface mixing. We also changed the vertical profile of the input so that flow comes in below the surface too, instead of just at the surface.

There have been recent LTER observations showing that that very shallow fresh surface water is a real thing at times. There's a paper coming out soonish from one of Seth Danielson's students.

The BIO_COBALT in ROMS is frozen from some time ago. Meanwhile, Charlie is still working on stand-alone COBALT, especially tweaking the fourth phytoplankton class. Neither Raf Dussin nor I have plans to update the ROMS COBALT.

Did you get all of Ken Coyle's updates to the GOANPZ before he retired and moved to Everrett?

kearneyb10k
Posts: 14
Joined: Tue Oct 16, 2018 4:26 am
Location: University of Washington, JISAO

Re: Runoff/river-derived biogeochemical tracer fluxes

#3 Unread post by kearneyb10k »

Thanks for the quick reply!
My recent runs have used the lateral flux river sources, not the runoff. I stole a wind-wave mixing parameterization (Li and Fox-Kemper) to add more surface mixing. We also changed the vertical profile of the input so that flow comes in below the surface too, instead of just at the surface.
Point sources do seem like the most numerically robust solution, so it's good to hear you had some success with that. I assume the wind-wave parameterization you refer to is the one activated by the LI_FOX_KEMPER flag? I can try testing that on our apps.
The BIO_COBALT in ROMS is frozen from some time ago. Meanwhile, Charlie is still working on stand-alone COBALT, especially tweaking the fourth phytoplankton class. Neither Raf Dussin nor I have plans to update the ROMS COBALT.
For the purposes of this project, the older BIO_COBALT code should suffice (it's playing the role of "global model applied to a regional setting without specific tuning"). I've made a few small tweaks to the bookkeeping parts of the code so that it coexists nicely with BESTNPZ, but apart from these river runoff fluxes am not planning to mess with the code too much.
Did you get all of Ken Coyle's updates to the GOANPZ before he retired and moved to Everrett?
Not me personally, but I think the GOA modeling team has his latest updates.

User avatar
kate
Posts: 4091
Joined: Wed Jul 02, 2003 5:29 pm
Location: CFOS/UAF, USA

Re: Runoff/river-derived biogeochemical tracer fluxes

#4 Unread post by kate »

I assume the wind-wave parameterization you refer to is the one activated by the LI_FOX_KEMPER flag?
Yes

hermann
Posts: 13
Joined: Fri Apr 30, 2004 6:43 pm
Location: PMEL, USA

Re: Runoff/river-derived biogeochemical tracer fluxes

#5 Unread post by hermann »

Kate, did you use point sources to implement the lateral fluxes, or a compiler option (cppdefs) in your branch? We haven't been able to find one particular to lateral fluxes in the main branch documentation.
Thanks!

User avatar
kate
Posts: 4091
Joined: Wed Jul 02, 2003 5:29 pm
Location: CFOS/UAF, USA

Re: Runoff/river-derived biogeochemical tracer fluxes

#6 Unread post by kate »

I used point sources which are not through cppdefs, but turned on with LuvSrc and LtracerSrc. I just pushed an update to pyroms for dealing with Dave Hill's runoff.

Post Reply