This week I tested volume-less vertical sources in both the idealized domain from John Wilkin and in LiveOcean.

In the idealized domain, w and omega seem reasonable. However, the inflowing water does not seem to match the specified forcing. In LiveOcean, Birch Bay WWTP still blew up despite having a volume-less source. More details below.


V-less in Idealized Domain

Before running a more complicated V-less test in LiveOcean, I first tried the V-less sources in John Wilkin’s simple grid. In this test, the only change I made was to incorporate Parker’s V-less code. Everything else remained the same as my last test:

  • Source located in the middle of the water column
  • Discharges at 10 m3/s (only used to scale tracers, and not added to volume)
  • Freshwater source
  • Inflowing temperature is the same as water already in the grid cell
  • Density is a function of temperature only

An initial look at the surface plots (Fig. 1) show that we no longer see a negative vertical velocity at the surface. Additionally, SSH does not appear to be rising everywhere over time. Thus, the V-less source appears to be working.


Fig. 1 Surface u, v, w, SSH in idealized domain.


However, a closer look at section plots of salinity and temperature reveal some oddities. Figure 2 shows section salinity. Strangely, freshwater does not appear to be flowing from the source (despite code that tells ROMS to discharge 0 salinity water). Furthermore, Figure 3 suggests that warm water is being discharged from the source, which should not be the case. In the dot_in file, LtracerSrc = F for temperature (inflowing water should be at the same temperature as existing water). I do not fully understand why the forcing seems to be misbehaving.


Fig. 2 Section salinity in idealized domain.



Fig. 3 Section temperature in idealized domain.


Let’s put the strange inflow properties to the side for now so we can focus on velocities. Are the section velocities consistent with a buoyant, warm water plume discharging from the center of the water column? I believe they are!

Figures 4 and 5 show u and v, respectively. Above the buoyant source there is horizontal divergence. Under the buoyant source there is horizontal convergence. These observations are consistent with what I would expect of a buoyant plume.


Fig. 4 Section u in idealized domain.



Fig. 5 Section v in idealized domain.


Figure 6 and 7 show w and omega, respectively. Note that the colorbar scale for w and omega are different. w looks exactly like what I would expect. Vertical velocity is positive throughout the water column, reaching a maximum at the location of the source. Additionally, w is zero at the bottom and surface.

Omega is shown with a saturated colorbar. The oversaturation helps see the smaller magnitude velocities. In general, this video of omega suggests that we are seeing some convective circulation: warm water rises from the source, radiates horizontally outwards, then sinks.


Fig. 6 Section w in idealized domain.



Fig. 7 Section omega in idealized domain.


Overall, these vertical velocities make a lot of sense. This is a huge breakthrough!


V-less in LiveOcean

Although the forcing is behaving strangely in the idealized model, the vertical velocities look great. Thus, I’ve gone ahead and tested the V-less sources in LiveOcean. I added Birch Bay WWTP back into the model to see if this source would still blow up.

Implementing the V-less sources requires me to recompile ROMS. I took a look at the resulting omega.f90 file generated from the build and confirmed that Parker’s changes were correctly incorporated. Figure 8 shows a snippet of the omega.f90 file which indicates that the “volume-incorporating” part of LwSrc has been removed.


Fig 8. Compiled omega.f90 file.


So does Birch Bay WWTP still blow up?

Sadly, yes :(

Figure 9 shows a snapshot of the surface velocities at Birch Bay WWTP prior to model blow up.


Fig 9. Surface velocities near Birch Bay WWTP before blow up.


Given that w is still negative at the surface near Birch Bay WWTP, I am inclined to think that the vertical source was not in fact volume-less. However, the build file shown above suggests otherwise. Could there be some other issue causing an instability at the treatment plants?

I will also note that I re-ran LiveOcean with the “volume-incorporating” code, and Birch Bay WWTP blew up. The resulting surface velocity plot from this run is identical to Figure 9.