[MITgcm-devel] Bug in KPP

Dimitris Menemenlis menemenlis at jpl.nasa.gov
Tue May 26 11:48:04 EDT 2009


David, I agree that change below will work and that, assuming KPP code  
was bug-free before kpp_routines.F version 1.21, this is the correct  
fix.  If it's not too much trouble, as a further sanity check for  
vertical mismatch prior to 1.21, could you also check to see that  
convective or shear instabilities trigger increase in K at the right  
level and that mixed layer depth increase in K is consistent with hbl  
depth.

For mixed layer depth, I would run your configuration forward for a  
few time steps, set KPPwriteState=.true. in data.kpp, dumpfreq=deltat  
in data, and I would compare the vertical profiles of KPPdiffkz and  
KPPviscAz to KPPhbl.

For shear or convective instabilities in the interior, as you are  
unlikely to have any of those in your model configuration after spin- 
up, I would generate instabilities artificially by adding a bit of  
salt or cooling a few random points, and then checking that KPPdiffkz  
and KPPviscAz kick in at the correct level to remove these  
instabilities.

The above tests are probably (hopefully) superfluous but if they are  
not too much trouble to run, it would not hurt to have a fresh pair of  
eyes looking at this issue one more time.

Did Hong get back to you regarding your horizontal viscosity question?

Cheers, Dimitris

On May 26, 2009, at 7:08 AM, David Ferreira wrote:

> I think the problem is in ri_iwmix. vddiff is defined at the  
> interface (with
> k=0 corresponding to the air-sea interface), so the lines in ri_iwmix
> should be changed from:
> diffus(i,ki,3) = diffusKzT(i,ki)+fcon*diftcon+fRi*dift0
> to
> diffus(i,ki,3) = diffusKzT(i,ki+1)+fcon*diftcon+fRi*dift0




More information about the MITgcm-devel mailing list