[Mitgcm-support] Re: about kpp & flt
mitgcm-support at dev.mitgcm.org
mitgcm-support at dev.mitgcm.org
Wed Jul 9 15:53:19 EDT 2003
The second part could be related to the fact
that the z-coordinates are opposite sign between
c19 (JPL) and c44 (MIT) - I think.
But not sure whether that's relevant for the zRef's.
P.
Chris Hill wrote:
>
> dimitris,
>
> can you help jean-michel when you have a moment.
>
> chris
> -----Original Message-----
> From: Jean-Michel Campin [mailto:jmc at gulf.mit.edu]
> Sent: Thursday, March 07, 2002 10:47 AM
> To: support at mitgcm.org
> Subject: about kpp & flt
>
> Hello,
>
> I have 2 questions about the mixlayer diagnostic in kpp_calc.F :
>
> --------------------------------------
> c Determine mixed layer depth hMix as the shallowest depth at which
> c dB/dz exceeds 5.2e-5 s^-2.
> work1(i,j) = nzmax(i,j,bi,bj)
> DO k = 1, Nr
> IF ( k .LT. nzmax(i,j,bi,bj) .AND.
> & dbloc(i,j,k) / drC(k+1) .GT. dB_dz )
> & work1(i,j) = k
> END DO
>
> c Linearly interpolate to find hMix.
> k = work1(i,j)
> IF ( k .EQ. 0 .OR. nzmax(i,j,bi,bj) .EQ. 1 ) THEN
> zRef(i,j) = p0
> ELSEIF ( k .EQ. 1) THEN
> dBdz2 = dbloc(i,j,1) / drC(2)
> zRef(i,j) = drF(1) * dB_dz / dBdz2
> ELSEIF ( k .LT. nzmax(i,j,bi,bj) ) THEN
> dBdz1 = dbloc(i,j,k-1) / drC(k )
> dBdz2 = dbloc(i,j,k ) / drC(k+1)
> > zRef(i,j) = rF(k) + drF(k) * (dB_dz - dBdz1) /
> > & MAX ( phepsi, dBdz2 - dBdz1 )
> ELSE
> zRef(i,j) = rF(k+1)
> ENDIF
> --------------------------------------
> 1) I wonder if in a case where
> the vertical profile of db/dz shows 2 minimum below dB_dz,
> e.g., 1 in the mix layer, stratified just below, then very low
> stratification (< dB_dz) at some depth in the deep ocean,
> and finally stratified near the bottom ;
> the first loop might capture the 2nd stratification and not the
> 1rst one as the comment suggest "the shallowest depth ..."
>
> 2) since dBdz1 has to be < dB_dz
> dB_dz - dBdz1 > 0 ; MAX ( phepsi, dBdz2 - dBdz1 ) > 0
> so that drF(k)*(dB_dz - dBdz1) /MAX ( phepsi, dBdz2 - dBdz1 )
> is also > 0 ; rF(k) < 0 so that |zRef(i,j)| < |rF(k)|
> and this does not seems logical to me.
>
> I would expect to find zRef(i,j) = rF(k) - drF(k) * ...
>
> -----------------
>
> and one question about pkg/flt/flt_functions.F
>
> do k=0,Nr
> zlo = rC(k)
> if (k.eq.0) zlo = rC(k)-delZ(1)*0.5
> zhi = rC(k+1)
> if (k.eq.Nr) zhi = rC(k)+delZ(Nr)*0.5
>
> Apart from using delZ instead of drF, 3 out-of-bound index
> (in 4 lines !) and rC(k)-delZ(1)*0.5 instead of rC(1)-delZ(1)*0.5,
> it seems to me that the signs in front of the 2 delZ are wrong.
>
> I propose to replace this part with the following :
>
> do k=0,Nr
> if (k.eq.0) then
> zlo = rF(1)
> else
> zlo = rC(k)
> endif
> if (k.eq.Nr) then
> zhi = rF(k+1)
> else
> zhi = rC(k+1)
> endif
>
> Is it OK like this ?
>
> Jean-Michel
--
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
Patrick Heimbach ........................ FON: +1/617/253-5259
Massachusetts Institute of Technology ... FAX: +1/617/253-4464
EAPS, Room 54-1518 ...........................................
77 Massachusetts Avenue .............. mailto:heimbach at mit.edu
Cambridge MA 02139, U.S.A. ..... http://www.mit.edu/~heimbach/
More information about the MITgcm-support
mailing list