[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