[MITgcm-devel] changes in tracer vertical implicit scheme
Jean-Michel Campin
jmc at ocean.mit.edu
Thu Dec 1 09:43:27 EST 2011
Hi,
Some fix/changes related to tracer vertical direction implicit method:
1) implicit vertical advection conservation with Adams-Bashforth
and/or non-lin free-surf:
the term Tr*d/dz(w) was not going through AB and neither was
rescaled (NonLin-FreeSurf) and this was breaking tracer conservation.
I remove Tr*d/dz(w) in gad_implicit_r.F and add it in gad_calc_rhs.F;
this fix conservation in both cases.
2) implicit vertical diffusion or advection with non-lin free-surf:
Was using current recip_hFacC instead of future recip_hFacC.
This lead to small error when using NonLin-FreeSurf and also break
conservation with NonLin-FreeSurf in r-coordinate (but not with r*).
The right recip_hFac is now computed in thermodynamics.F and passed
to all vertical implicit S/R.
I also added diagnostics for gtNm1 & gsNm1, so that it's easier
to check tracer conservation with NonLin-FreeSurf + AB (the quantity
being conserved is Tr + (0.5+abEps)*deltaT*gtNm1).
And will add a secondary test to advect_xz to test implicit vertical
advection (+ NonLin-FreeSurf).
I don't know why those changes affect bottom_ctrl_5x5 (adjoint gradient)
and break agreement with forward gradient.
I removed all the implicit vertical code in thermodynamics.F (checked-in),
and it's better, but still not as good than what it used to be.
If someone has time to take a look at this experiment.
Cheers,
Jean-Michel
More information about the MITgcm-devel
mailing list