[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