Has anyone ever attempted to compute the heatbudget offline from T, u,v and w? Is there a standard approach to this in MOM when the individual heat budget terms haven’t been saved?
Specifically, I’m looking to compute the mixed layer heat budget (as is done in many marine heatwave studies). I’ve done this before but there is a fairly large residual.
I haven’t done it. However, I am currently working on doing the mixed layer temperature budget properly using online binning of the MOM5 heat budget diagnostics into the mixed layer (code is working, I’m slowly writing it up…). For comparison purposes, I have code to do offline binning, but it still uses the MOM5 heat budget diagnostics. Given my results so far, I’m not surprised to hear that you get a large residual (whether this matters depends on your application).
Essentially I’m trying to do a mixed layer heat budget from the BRAN2020.
I have u,v,T, w and mld at daily output intervals.
I’ve very, very carefully tried to calculated the advective terms following a finite-volume approach, but that’s no better than naively using xgcm, and my residual is of the same order of magnitude as the dTdt term.
@adele157 if you’ve done this offline before, any tips? Starting to pull out hair.
How are you computing surface fluxes, SW penetration, vertical mixing and entrainment? Depending on your application, these could be just as large or larger than advection and thus be causing you issues.
I should have been more clear in exactly what I’m trying to accomplish.
I’m trying to compute the mixed layer heat budget point-wise offline from daily average output.
The output I have is MLD, total surface heat flux, u,v,w, and T. BRAN2020 is based on MOM5 on a 0.1x0.1 degree B-grid that differs slightly from the ACCESS-OM-01 grid.
I’ve made two serious attempts, both of which don’t really come close to closing:
using xgcm to compute udT/dx and vdT/dy on T-points for each vertical layer, followed by vertical integration;
carefull finite-volumn type calculation, where I considered every T-cell as a control volumn, mapped temperature and u/v to the relevant center cell edges (using xesmf), and computed the heat flux through each cell edge, ie:
advective term: 1/(cell area) * [vT (northern edge) * dx(northern_dege) - vT (southern_edge) * dx(southern_edge) + uT(eastern edge) * dy(eastern_edge)-uT(western edge)*dy_(western edge) ]
The grid terms (area, dx, dy) I get from the grid-spec file.
I then mask all points below the mixed layer, and integrate vertically.
In the region I working in (the EAC) I expect the advective terms to dominate.
The first implementation is very noisy, but at least dT/dt and the advective term are of the same order of magnitude. The second approach, even though I’ve tried to be very careful, gives me results that are an order of magnitude greater than dT/dt, so clearly I’ve made an error.
Any advice on how you’ve computed the advective terms?
I’m not convinced by this. Here is an example for a single month in the North Atlantic from a precise (online) computation in ACCESS-OM2-025. Advection is not obviously dominant in the Gulf Stream. For a single day average advection may be more dominant, but I don’t think you can assume that apriori. [I can make this plot for the EAC from this run later this week, just in the middle of testing…]
@adele157 can probably help here more than me. In my ACCESS-OM2 work I use the model diagnostics. My only suggestion would be that, if you can, call the actual model routines in your analysis. I’ve done this for ROMS in the past (e.g. called the ROMS Fortran advection scripts from python using f2py, in which case the main errors you end up with reduce pretty much to missing time-correlations).