[MITgcm-devel] ggl90_calc

Martin Losch Martin.Losch at awi.de
Mon Nov 2 08:36:45 EST 2009


Hi Jean-Michel and David,

here are my  comments (after a relatively quick glance);
On Oct 31, 2009, at 4:31 AM, Jean-Michel Campin wrote:

> Hi Martin and David,
>
> I look at S/R ggl90_calc.F (more precisely, to the implicit diffusion
> of TKE) and noticed few thing that I don't like too much
> (at least misleading, but some might also be more like a bugg).
>
> It's all checked-in as comments in the code ("C- jmc:"):
>> danton{ggl90}% egrep '^C- jmc:' ggl90_calc.F
>> C- jmc: concerned about missing a deltaT since gTKE is already the  
>> future TKE.
I agree, there is a deltaT missing. By default, the horizontal mixing  
is turned off, and nobody ever noticed that it does not work properly,  
maybe we don't even _want_ horizontal diffusion?
>> C- jmc: concerned that a(k=2) should always be zero
>> C- jmc: concerned that c(k) from k=kLow to k=Nr should always be zero
>> C- jmc: this is dangerous since klowC could be zero if land column
>> C- jmc: concerned about conservation when a or c are changed after  
>> computing b
I agree, the implicit solver does not look clean (I remember that I  
changed things around a lot before I got them working properly, but  
that does not mean that they are actually correct). Maybe it's a good  
idea to replace this code with a call of S/R solve_tridiagonal, as you  
have already tried? I do not think that we can use impldiff (which  
would even be better), because GGL90TKE is defined at the cell  
interfaces (and not the cell centers as theta/salt/uVel/vVel). What do  
you think.
>> C- jmc: would be much better to update the provisional TKE (i.e.  
>> gTKE) at k=2
I don't understand this part, We do I want to impose the surface  
boundary conditions below the surface?

M.

PS. More comment for David:
I don't understand this:
> C     GGL90 needs convection turned on, but keep warning message
>       IF (cAdjFreq.NE.0.  .OR. ivdc_kappa.NE.0. ) THEN
>          WRITE(msgBuf,'(A)')
>      &  'GGL90_CHECK: WARNING: Some form of convection has been  
> enabled'
>          CALL PRINT_MESSAGE( msgBuf, errorMessageUnit,
>      &                        SQUEEZE_RIGHT , myThid)
>       ENDIF

Do you want to use GGL90 along with convective adjustment or the  
"implicit diffusion" convection scheme? I think that the stop  
statement should go back in and that the comment should read
> C     GGL90 needs other types of parameterized convection (i.e.  
> convective adjustment and "implicit diffusion") to be turned off

Also it would be nice if you could include some comments about the  
different choices for the mixing length. Would be nice if I know what  
choices I have and what they mean (instead of just 0-3).



More information about the MITgcm-devel mailing list