dhruvbhagtani / sfc-perturbation-expts

The ocean circulation is driven by a combination of winds and surface buoyancy fluxes. We run a number of experiments with varied surface forcings and look at the spatial variations in ocean circulation on short and long time-scales.
MIT License
2 stars 0 forks source link

Test using KPP layer depth to enhance or reduce buoyancy flux #7

Open AndyHoggANU opened 2 years ago

AndyHoggANU commented 2 years ago

Winds affect a lot of ocean dynamics which could have an adverse effect on surface buoyancy forcing as well. Instead of changing the magnitude of wind stress, we change the magnitude of surface buoyancy forcing and study the resulting effect on ocean circulation.

Several ways by which we can change the buoyancy flux into the ocean:

  1. Altering the bulk formulae
  2. Changing KPP depth
  3. Perturbing the SAT
dhruvbhagtani commented 2 years ago

Should we have all three ways mentioned above in a single issue or make an issue for each experiment?

navidcy commented 2 years ago

We don't need a separate issue to discuss these three :)

But we should make 3 different runs to test them, otherwise we won't know what affected what.

navidcy commented 2 years ago

After discussion over zoom: let's focus on 1 and 2; 2 is, in principle, easier.

dhruvbhagtani commented 2 years ago

Before I looked at the different ways by which we can increase buoyancy fluxes in the ocean, I compared some diagnostics for the parameterised KPP shear run (control and no-stress) with Ryan's runs (https://github.com/dhruvbhagtani/Parametrised-KPP-Diagnostics/blob/main/Hflux_comp.ipynb). Ryan's experiments had very shallow KPP depths (see figure). Our resolved shear parameterisation does a great job at increasing the KPP depths in all oceanic basins (compared with the no-stress Ryan's experiments).

Now, comparing the no-stress runs (parameterised KPP shear and Ryan's experiments), the increased KPP depth doesn't make any difference in the heat fluxes or gyre circulation. So, my question is: Is (2): Perturb KPP depths even worth doing? Because increasing the KPP depths doesn't have any impact on the amount of heat fluxes or ocean gyres.

Screen Shot 2021-10-17 at 6 25 30 pm Screen Shot 2021-10-17 at 6 25 56 pm
dhruvbhagtani commented 2 years ago

As a follow up to my previous comment, it's clear that increasing the KPP depth doesn't increase the meridional heat transport. Instead, we can manually tweak the sensible and latent heat flux bulk formulae (and possibly the shortwave and long wave radiations too) to make sure that they are similar with the control run. The bulk formulae are given by:

  1. Latent heat = 𝜌 𝐢𝑒 𝑒10 (π‘žπ‘  βˆ’ π‘žπ‘Ž) 𝐿, where 𝐢𝑒 is the transfer coefficient for latent heat, u10 is the wind velocity 10 above the sea surface, π‘žπ‘  is 98% of the saturated specific humidity at the SST, π‘žπ‘Ž is the measured specific humidity, and 𝐿 is the latent heat of vaporisation/evaporation.
  2. Sensible heat = 𝜌 𝑐𝑝 πΆβ„Ž 𝑒10 (𝑇𝑠 βˆ’ π‘‡π‘Ž), where 𝑐𝑝 is the specific heat capacity of seawater, πΆβ„Ž is the transfer coefficient for sensible heat, 𝑇𝑠 is the SST and π‘‡π‘Ž is the air temperature above the sea surface.

One way to change these fluxes is to alter the transfer coefficients, 𝐢𝑒 and πΆβ„Ž.

dhruvbhagtani commented 2 years ago

Alright, so we might need to change the CICE code to implement changes in latent heat fluxes. Here is a rough flow chart showing how the latent heat fluxes are found. Some things I want to point out:

  1. I don't fully understand the terms log (zz/z0) and log (zz/zq).
  2. w_atm is just wind velocity at the lowest atmospheric level. It can be calculated in absolute and relative (to the ocean surface) ways.
  3. It seems to me that to change flux_q (latent heat), we will have to change the code itself.

IMG_20211019_125229

dhruvbhagtani commented 2 years ago

Same is the case for sensible heat flux too. I don't think I have any problem changing the code, it's just that I don't know how to compile once I change it.

IMG_20211019_130501

AndyHoggANU commented 2 years ago

I think we can get help with the compilation, but can I just ask - which of the parameters will you change to alter the flux?

dhruvbhagtani commented 2 years ago

I am thinking of changing Cd_t, because that's proportional to the heat transfer coefficients, which we initially planned to change.

rmholmes commented 2 years ago

I missed the end of the meeting yesterday; did you decide to consider altering the bulk formula instead of the KPP depth, or are we doing both?

Altering Cd_t (or Cd_q?) sounds like a reasonable approach to do this. However, I would start out by plotting the spatial structure of both latent and sensible (and SW/LW while you're at it) heat fluxes from a control simulation in order to understand what you while actually be changing.

dhruvbhagtani commented 2 years ago

We are doing both. I have created an experiment where I have altered the KPP depth (I changed u* in the equation to 1.5 u* everywhere, so while the old formula was: (80 u*^2 + 1 u*) x (1 - exp(-0.01 z / (u*)^0.5)), the new one reads: (180 u*^2 + 1.5 u*) x (1 - exp(-0.008 z / (u*)^0.5)).

Since the whole structure of the equation is the same, I just changed the coefficients in input.nml file.

dhruvbhagtani commented 2 years ago

The second approach is to change the bulk formula. We realised there are two ways of doing this:

  1. Just increasing/decreasing the latent and sensible heat fluxes everywhere in the ocean using transfer coefficients, and looking at the changes.
  2. Creating a mask for transfer coefficients, similar to wind_mask.nc. It would involve coding in CICE.

The figure is for the last 10 years.

Screen Shot 2021-10-20 at 11 56 37 am

(Although, now that we have figured out that we anyways have to code in CICE even to change the transfer coefficients, I am up for creating a mask for transfer coefficients too. But we can begin with just manually changing it everywhere.)

dhruvbhagtani commented 2 years ago

I was just trying out my way to change and update the monin_obukhov_kernel.F90 file in CICE, but I found a very similar file in MOM as well. Now I'm very confused as to which one does the ocean read. The namelist for this code script is present in the input.nml file for both MOM and CICE.

rmholmes commented 2 years ago

Firstly, the above figure still suffers from the problem I highlighted at https://github.com/dhruvbhagtani/varying-surface-forcing/issues/15#issuecomment-945363828, it would be nice to fix that.

Secondly, after some more thought I must admit to being somewhat skeptical that this will work. By increasing these transfer coefficients we are only influencing (increasing) the heat loss side of the air-sea fluxes. Furthermore, the spatial structure of the latent and sensible heat fluxes is such that we will be increasing heat loss more at low-latitudes (where heat is gained overall) than at high-latitudes (where heat is lost).

The adjustment to these changes will be an SST cooling, which will then result in a reduction in the latent/sensible/LW up heat losses until the system comes into equilibrium again. However, given that we are only changing heat loss terms, and that our initial change has a spatial structure that reduces the equator-to-pole heating gradient, I don't see how this can result in anything but a reduction (or a weak change) in buoyancy forcing.

To increase the buoyancy forcing I think we need to increase the contrast between equatorial heating and high-latitude cooling, which would require changing both gain (SW, LW down) and loss terms, or changing the loss terms with a different meridional structure.

I could be wrong and it's cheap and easy to run so may as well go ahead anyway.

rmholmes commented 2 years ago

Following up on the above; wouldn't the easiest way to change the buoyancy forcing be to alter the SW and LW-down fluxes? These simply come from input files so you can change them however you want. In particular, the LW down could be changed however you want (positive or negative) to increase buoyancy flux contrasts. The uncertainty would then simply be how the latent/sensible/LW up would adjust to the change (generally this would just be a damping).

AndyHoggANU commented 2 years ago

I think the LW fluxes would have other consequences -- particularly with sea ice. The aim here is to get buoyancy in without getting feedback effects through the ice, which may reverse our changes. One aspect of the sensible/latent heat flux terms that may be an advantage is that latent is large at the equator and sensible larger at high latitudes, so a linear combination of them could be used to enhance the contrast??

rmholmes commented 2 years ago

Ok fair enough.

Has anyone tried the crazy idea of just turning off the sea-ice?

dhruvbhagtani commented 2 years ago

@rmholmes by accident I deleted my database for this plot. I'll create it again and add it here.

I agree, we need to increase the difference in heat fluxes between the low and high latitude regions. This may be long shot, but can we somehow parameterise the advective term in the heat fluxes to increase this contrast? Specifically, I am talking about the advection of ΞΈ in this link.

dhruvbhagtani commented 2 years ago

I don't know much about this, but if we turn off sea ice, we might change the long wave radiation.

PS: This is a good idea, @AndyHoggANU! We could do a linear combination of the two fluxes to increase the contrast.

dhruvbhagtani commented 2 years ago

Here is a 100 year run for increased KPP:

https://github.com/dhruvbhagtani/varying-surface-forcing/blob/main/Vary_KPP/Diagnostics.ipynb

The heat fluxes don't increase by a lot, except in the western boundary and sub polar regions of the gyres. There is an increase in the sub polar gyres, especially in the North Atlantic, and where it increases (the spatial location) matches with the location where the heat flux increases.

The overturning also increases by a small amount in the NADW water formation region.

I've changed the way stratification is plotted. Although it is better than before, I am open to any suggestions.

dhruvbhagtani commented 2 years ago

Here are some relevant figures from the vary_rlds run:

  1. Original longwave downwelling (averaged over 1 year, 3 hourly inputs):

    Screen Shot 2021-10-25 at 4 17 52 pm
  2. Our offset plot:

    Screen Shot 2021-10-25 at 4 17 56 pm
  3. Time series and spatial maps (averaged over 1 year) of surface heat fluxes (after running the expt for 1 year only):

    Screen Shot 2021-10-25 at 4 13 25 pm
Screen Shot 2021-10-25 at 4 13 16 pm Screen Shot 2021-10-25 at 4 22 56 pm
dhruvbhagtani commented 2 years ago

Last week, we were also discussing the North Atlantic Subpolar Gyre. Now that we have the vary_rlds run with us, here's a comparison of all three:

Screen Shot 2021-10-27 at 11 53 45 am

It looks very interesting, because it shows that the wind stress curl doesn't change at all, but the gyre strength has changed quite significantly. Curiously, a similar change isn't present in the North Pacific Subpolar gyre. It is odd because I changed the downwelling radiation everywhere in the ocean.

AndyHoggANU commented 2 years ago

That is interesting indeed. It shows that the ice has not really changed (hence wind stress is the same).

However, what can we say about how this depends on buoyancy flux? Not sure from the maps whether buoyancy flux has increased or decreased (it probably depends upon what region we look over?)

Is the gyre increase robust? Does it last for a long time or is it varying wildly? How about the heat flux??

rmholmes commented 2 years ago

Interesting.

In my experience the Atlantic subpolar gyre can be pretty temperamental - it is strongly linked to deep water formation which itself can be pretty variable and hard to pin down. Would be good to see some time series.

It looks like our change in downward longwave is relatively weak - you could try increasing it by a factor of 2 or 3 and see if you get a stronger, more robust response.

dhruvbhagtani commented 2 years ago

Oh, I forgot to add it along with the comment. Here are the complete diagnostics (excluding the North Atlantic subpolar gyre time series): https://github.com/dhruvbhagtani/varying-surface-forcing/blob/vary-lwdw/Vary_rlds/Diagnostics.ipynb

I'll add the subpolar gyre time series in this file.

dhruvbhagtani commented 2 years ago

Yes @rmholmes, I was also thinking of creating two more offsets: one with 50 W/m2, other with 80 W/m2. Maybe the latter one is a bit much, but I guess we can still run it and compare results.

dhruvbhagtani commented 2 years ago

Here are the movies for North Atlantic subpolar gyres from year 1900 till 1999. Each frame is averaged over 5 years, and the title of each frame shows the mean of the 5 years (so if the frame has the title 1997, it means that the averaging is done from 1995 till 1999). Also attached are the time series of individual heat fluxes, spanned across the entire globe. It looks like they have more or less equilibrated. However, the gyres haven't fully equilibrated, especially the vary_rlds run.

Screen Shot 2021-10-28 at 10 04 12 am

NA_subpolar_movies.zip