[MITgcm-devel] Bug in KPP

Chris Hill cnh at mit.edu
Thu May 28 09:54:12 EDT 2009


David,

  Is this equivalent to having a complete convective mixing step in 
addition to KPP?

Chris

David Ferreira wrote:
> Dimitris,
> While we are talking about KPP, I found a very nasty behavior in it and
> you may be interested.
> In attachment, I put a figure of the zonal and time averaged temperature 
> and hbl
> in a channel run (it is eddy-esolving with a constant sinusoidal zonal 
> wind and a restoring
> to a linear SST profile). The top panel is the default behavior of KPP. 
> The hbl is very
> different from south to north with a sharp transition in the middle, it 
> reflects the
> heating/cooling pattern at the surface. But, more worrying are the 
> static instabilities
> in the middle of the channel near 150 m depth (it's a 2000 days average 
> !). Again, it is
> because of the heating at the surface. In such case, KPP says it is 
> stable and the hbl is
> limited by the minimum of the Ekman and Momin-Obukhov depth. So even if 
> Ekman
> currents are overturning the isotherms and the critical bulk Richardson 
> is not reached
> before 200 or 300 m depth, the bl is very shallow with static 
> instabilities below. BTW,
> even, boosting the convective coefficients in the interior doesn't not 
> remove the
> instabilities.
> 
> The bottom panel is without limit on the hbl under stable conditions. It 
> looks much nicer.
> Danabasoglu et al. (2005) mentioned they don't apply those limits in 
> CCSM. They didn't
> say why but I can imagine. You might think that the channel is a weird 
> set up, but basically
> this problem is going to arise each time Ekman currents are in the same 
> direction as the
> SST gradient under stable conditions.
> 
> Anyway, I'm going to put a run-time flag to be able to choose to apply 
> those limits or not.
> david
> 
> 
> Dimitris Menemenlis wrote:
>> David, thank you for taking another look at vertical KPP profiles and 
>> forfinding and fixing the riwmix bug.
>>
>> The ghat term is supposed to be active in convectively unstable mixed 
>> layers but, if I remember correctly, turned off for purely wind-driven 
>> mixing.
>>
>> Dimitris Menemenlis
>> 818-625-6498
>> -----Original Message-----
>> From: David Ferreira <dfer at mit.edu>
>> Date: Wednesday, May 27, 2009 7:06 am
>> Subject: Re: [MITgcm-devel] Bug in KPP
>> To: "MITgcm-devel at mitgcm.org" <MITgcm-devel at mitgcm.org>Reply-To: 
>> "MITgcm-devel at mitgcm.org" <MITgcm-devel at mitgcm.org>
>>
>> Hi Dimitris,
>> I looked into the code and did some tests with a 1d set-up. The shape 
>> of the visc/diff
>> are consistent with the kpphbl, the shear/convective instabilities 
>> also look fine to me
>> in terms of vertical location. I still have a small doubt about the 
>> position of ghat, but I
>> need to reread the Large et al. to be sure.
>> Anyway, I'm going to check in the fix for the vertical indices in 
>> ri_iwmix.
>> cheers,
>> david
>>
>> Dimitris Menemenlis wrote:
>>  
>>> 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
>>>>       
>>> _______________________________________________
>>> MITgcm-devel mailing list
>>> MITgcm-devel at mitgcm.org
>>> http://mitgcm.org/mailman/listinfo/mitgcm-devel
>>>     
>>
>> _______________________________________________
>> MITgcm-devel mailing list
>> MITgcm-devel at mi
>>
>> _______________________________________________
>> MITgcm-devel mailing list
>> MITgcm-devel at mitgcm.org
>> http://mitgcm.org/mailman/listinfo/mitgcm-devel
>>   
> 
> 
> ------------------------------------------------------------------------
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> MITgcm-devel mailing list
> MITgcm-devel at mitgcm.org
> http://mitgcm.org/mailman/listinfo/mitgcm-devel



More information about the MITgcm-devel mailing list