[MITgcm-support] I love KPP

Martin Losch mlosch at awi-bremerhaven.de
Fri Jan 16 03:29:26 EST 2004


Hi,

this is my data.kpp:
# KPP parameters
  &KPP_PARM01
  KPPmixingMaps   = .FALSE.,
  KPPwriteState   = .TRUE.,
  &

so I get 5 additional KPP-variables (viscAz,diffKzT/s,ghat,hbl), and 
from those I know that KPP does something, when it should be quiet (to 
my mind): hbl increases to some equilibrium value (~50m in my case) and 
all other are conseqently non-zero above hbl. I can set minKPPhbl to 
some value and then hbl is never smaller than this value, but if I set 
it so zero, then it doesn't have any effect, (because it's always 
bigger than zero anyway).

I poked around in the code yesterday and found, that internal variable 
such as ustar are never zero (in kpp_calc:
         if ( work3(i,j) .lt. (phepsi*phepsi) ) then
            ustar(i,j) = SQRT( phepsi * p5 * drF(1) )
         else
            tempVar2 =  SQRT( work3(i,j) ) * p5 * drF(1)
            ustar(i,j) = SQRT( tempVar2 )
         endif
), neither bfsfc, the surface buoyancy (which I want to be zero, in 
kpp_routines, bldepth:
c--   ensure bfsfc is never 0
       do i = 1, imt
          stable(i) = p5 + sign( p5, bfsfc(i) )
          bfsfc(i) = sign(eins,bfsfc(i))*max(phepsi,abs(bfsfc(i)))
       end do
).

I assume, that because of these--probably necessary--hacks, the KPP 
scheme work in a realistic scenario, but in my test scenario it 
jump-starts, when it should do nothing. Rats!

Originally, I wanted to do the following: in a zonal channel with 
closed nothern and southern boundaries I wanted to produce an average 
boundary layer of 50-100m depth by surface cooling, the lost heat was 
supposed to be returned via a temperature restoring along the northern 
boundary at depth, but with this behavior of KPP, there is no chance 
for me to control the depth of the boundary layer, because the internal 
heat source due to restoring make everything even more complicated. Oh 
well, I guess I'll have to find a different way, since I cannot claim 
that this is a bug (o:

Martin


On Thursday, January 15, 2004, at 06:07  PM, Dimitris Menemenlis wrote:

>>> I love KPP
>
> Join the club!
>
> Could you turn on KPPwriteState and kpp_dumpFreq in the data.kpp file
> and then plot some profiles of the various KPP diagnostics.
>
> I am going to take a wild guess here.  The following two lines
>
> kpp_readparms.F:      minKPPhbl     = drF(1)*0.5
> kpp_routines.F:         hbl(i) = max(hbl(i),minKPPhbl)
>
> set a minimum mixed layer depth.  This in turn needs to be
> matched to diffusivity/viscosity in the level below.
>
> Maybe you can try minKPPhbl=0 in the data.kpp file.
> Can't remember why the minKPPhbl is there in the first
> place, so not sure if this would work.
>
> Cheers, D.
>
> -- 
> Dimitris Menemenlis <menemenlis at jpl.nasa.gov>
> Jet Propulsion Lab, California Insitute of Technology
> MS 300-323, 4800 Oak Grove Dr, Pasadena CA 91109-8099
> tel: 818-354-1656;  fax: 818-393-6720
>
> _______________________________________________
> MITgcm-support mailing list
> MITgcm-support at mitgcm.org
> http://dev.mitgcm.org/mailman/listinfo/mitgcm-support




More information about the MITgcm-support mailing list