[MITgcm-support] Balance of momentum
Jean-Michel Campin
jmc at ocean.mit.edu
Fri Dec 6 17:48:15 EST 2013
Hi Marco, Dave, Martin and Ryan,
I would like to clarify few things regarding diagnostics of the
horizontal momentum equation. I did not find very easy to follow
the discussion started ~ a week ago (the subject has changed, not
always easy to distinguish quickly the answer from the quoting of
the original message and long lines are not easy to read from the
mitgcm-support archive web-site). But I hope this will not add more
confusion.
The different horizontal momentum terms are split into different
diagnostics, mainly to reflect the time-stepping options (forward
in time = explicit / backward in time = implicit, and going
through the Adams-Bashforth or not). A finer decomposition can
be obtained with a 2nd (larger) set of diagnostics that are specific
to the formulation used (flux-form or vector-invariant).
1) the surface pressure horizontal gradient needs to be added.
this was mentioned in the Emily's message that Martin (on Nov 28) pointed to:
http://mitgcm.org/pipermail/mitgcm-support/2010-December/006921.html
and it's needed whether or not the free-surface or the rigid-lid is used
(in this later case, this is the pressure from the lid).
To Ryan: Having many diagnostics slows down the code (it's not
clear how much, but it does) and when some term can be easily and
precisely recomputed from other diags, it's a matter of choice
if we decide to add a diagnostics or not.
In this case, from a single 2-D diagnostics output (ETAN), one can
compute the horizontal gradient in both direction (DXC & DYC are
standard grid output); but we would need two 3-D diagnostics (to get it
properly masked) for the contribution at each level of the du/dt
and dv/dt equations. So, it's not very clear to me that these two
3-D diagnostics should be added (may be we can continue this discussion
elsewhere).
2) Diagnostics Um_Advec and Um_Advec already contain the Coriolis
term, unless one uses the CD-Scheme (and in this case,
Um_Cori and Vm_Cori needs to be added).
The main reason for this is that when using the vector-invariant form,
Coriolis term can be incorporated to the absolute vorticity (and then
treated with the advection), and in order to make the diagnostics more
similar between the 2 momentum formulations, the same convention was
retained also for the flux-form.
Note that, for the same reasons, the metrics-terms are also part
of Um_Advec and Um_Advec.
Now, here is where I get confused: In Emily's message, the CD-Scheme is
not used, but momentum budget is closed by adding Um_Cori to to Um_Advec ?
3) Diagnostics Um_Diss and Vm_Diss contain all the explicit (forward
in time) dissipation terms (horizontal viscosity, explicit vertical
viscosity, side drag, bottom friction).
If one uses implicit vertical viscosity (implicitViscosity=.TRUE.,),
the vertical viscosity tendency needs to be added (as explained in
Emily's message).
4) forcing (diagnostics Um_Ext, Vm_Ext) and baroclinic pressure gradient
(diagnostics Um_dPHdx and Vm_dPHdy) needs to be added separately.
If filters are used (Shapiro, FFT), their contribution needs to be
diagnosed separately (e.g., using SHAP_dU and SHAP_dV ).
5) The Adams-Bashforth will alter the momentum budget (although over
a long period, most cancel in time-averaging) and, depending on the
particular set of parameter (e.g., staggerTimeStep, forcing_In_AB,
momDissip_In_AB ) it's not always negligible. This AB effect can
be diagnosed using the 2 diagnostics AB_gU and AB_gV (added 2 years ago).
So that the momentum budget for the U componentic can be diagnosed with:
[du/dt] = - gravity * ( ETAN(i) - ETAN(i-1) ) / DXC
+ Um_dPHdx
+ Um_Advec (+ Um_Cori : but only if using CD-Scheme )
+ Um_Diss (+ Implicit vertical viscosity tendency)
+ Um_Ext
+ AB_gU
Some remarks:
a) When using the flux-form formulation, the non-linear free-surface can introduce
a small difference (rescaling) which is not currently diagnosed.
b) the 3-D Coriolis ( in 2 Omega cos(Phi) between U and W) is not currently
diagnosed separately (and is not part of Um_Cori) but is part of
Um_Advec. Also using the quasiHydrostatic option might alter some of the
diagnostics (e.g., what is described as the hydrostatic pressure is no
longer strictly hydrostatic).
c) when trying to do a budget over just 1 time-step, one needs to be aware
of the precise time-discretisation of the the first term which is evaluated
in the model as
- gravity * { implicSurfPress * (d.EtaN/dx)^n+1
+(1-implicSurfPress)*(d.EtaN/dx)^n }
(using the default implicSurfPress=1 , it might be be easier to use
snap-shot output Eta.[iter+1] to get EtaN^n+1 )
Cheers,
Jean-Michel
On Thu, Dec 05, 2013 at 10:23:04AM +0000, David Munday wrote:
> Hi Marco,
>
> Um_HydroP isn't in my available_diagnostics, I can't find it anywhere in the documentation, and grepping the code turns up nothing. Is it the same as Um_dPHdx?
>
> In general, I'd expect Um_Advec and Um_dPHdx to be similar in magnitude and of opposite sign, due to the dominance of geostrophic balance. Assuming Um_HydroP is Um_dPHdx by another name, then its magnitude is about right, but its sign is wrong (or Um_Advec's is). Taking the difference and adding Um_Diss gives me -4.3197E-9, so you're still missing a term.
>
> Have you output every single Um_* diagnostic available, including the ones you think are zero, the implicit/explicit viscosity, and the gradient in SSH?
>
> Best wishes,
>
> Dave
>
>
> On 4 Dec 2013, at 21:44, Marco Reale wrote:
>
> Hi David,
>
> and thanks a lot for your response: I followed your suggestion.
>
> So finally the equation will be :
>
> TOTUTEND/86400=Um_Advec+Um_diss+Um_HydroP;
>
> each of these members of the equation are 4D arrays : following a point to check the balance at t = 30, level=12, i=9, j=30 and I got the following results:
>
> TOTUTEND/86400= -8.0561e-10
> Um_Advec= 2.5398e-07
> Um_diss= 7.7003e-09
> Um_HydroP=2.4196e-07
>
> the balance of this term is 5.0365e-07
>
>
> So I have done something wrong: I’m working with rough data without taking into account volume of cells, etc.
>
> Any suggestions?
>
> Marco
>
>
> _______________________________________________
> MITgcm-support mailing list
> MITgcm-support at mitgcm.org
> http://mitgcm.org/mailman/listinfo/mitgcm-support
More information about the MITgcm-support
mailing list