[MITgcm-devel] change vertical diffusivity

Jean-Michel Campin jmc at ocean.mit.edu
Mon Oct 18 09:54:30 EDT 2004


Hi Patrick,

I want to fix this ptracer vertical diffusivity problem
without making a 3.D x Nb_tracers array (right now, 
we read-in PTRACERS_diffKr but use instead the 
KappaRS for all the passive tracers).

The solution looks easy:
Explicit vertical diffusivity: 
Needs only 1 KappaR at level k (2.D) but needs one for each tracer.
create a 2.D x Nb_tracers array ; load with a sightly different
version of calc_diffusivity.

Implicit vertical diffusivity: 
tracers are solved one after the other, and need just to
call an other calc_diffusivity version for each tracer.
(just need one 3.D kappaR)

The only problem is the adjoint. 
What I propose is to do those modifications in 2 steps:
1) change all the upper level S/R (calc_gT,gS and upper)
  that uses a 3.D KappaRT & KappaRS and make the argument a 2.D array.
  I don't change anyting in thermodynamics.F for now, just the
  call calc_gT,gS.  I will not have to change the store directives
  and this should not break the adjoint code (I hope).
2) works with you, when you have time, to see how to change 
   thermodynamics without breaking the adjoint.

Does this seem reasonable ?

Jean-Michel



More information about the MITgcm-devel mailing list