[MITgcm-devel] seaice_lsr simple test

Jean-Michel Campin jmc at ocean.mit.edu
Thu Oct 13 13:37:39 EDT 2011


Hi,

I have more questions about seaice_lsr. I wanted to have a simple
set-up to test obcs, and ended up, just to clarify, not using it.

Double-periodic set-up (20 x 3), cartesian grid, delX=delY=5.km,
no thermodynamics (usePW79thermodynamics=.FALSE.), uniform
initial condition (area=1, heff=1 m, uIce=1.m/s, vIce=0) 
and uniform forcing, all oceanic time-stepping are disabled.

1) first, I was used to, with MITgcm, to get an exactly uniform 
solution when using uniform forcing. With seaice_lsr, since
the periodic BC (more generally, any tile edge connection) is
not implemented in the tri-diagonal solver part, we cannot expect 
a perfect uniform solution. At the best, will be uniform
up to the precision of the solver (LSR_ERROR).
I was not aware of this, good to have it in mind.

2) with no rotation (f0=0), I tried to see the adjustment when 
I turn on uniform northward oceanic & wind speed (vVel=1., vwind=1.).
What I expect from the seaice dyn is a "free drift" response
(I can even try to find an analytic solution).
But with our solver, the annoying thing is that it does not converge
(I increased SOLV_MAX_ITERS from 1500 to 10^4, still delta-u,vIce ~ 10^5,
and I tried once SOLV_MAX_ITERS=10^5, barely reduce delta-u,vIce by 10)
even for a "free-drift" problem like this.
The consequence is that the ice velosity field is non uniform,
with differences of same order as residual delta-u,vIce.
Is there a simple way to improve (faster convergence) solution 
of the free-drift case ?

3) with rotation (f0=1.e-4) things are not good: I tried without
forcing, and was expecting, also as "free drift" response,
to see the ice velocity to turn (after 4.h ~ 1/4 inertial_period, 
uIce ~ 0, vIce ~ -1). But the solver did not converge neither,
and the ice-velocity rotation is ~100 time slower. I have no idea why.

4) minor points:
a) An other annoying thing is that I cannot switch off the water drag:
  if I set SEAICE_waterDrag=0 it stop because of division by zero;
  and with small SEAICE_waterDrag I end up with a hard coded linear 
  water drag coeff ?
b) I think the AA3 setting in seaice_lsr.F is not right (in case
  sNx=1 or sNy=1); I manage to get 1 test that confims this.
we have:
       IF(I.EQ.1) THEN
         AA3= ...
       ELSEIF(I.EQ.sNx) THEN
         AA3= ...
       ELSE
         AA3=ZERO
       ENDIF
but it should be
       AA3=ZERO
       IF(I.EQ.1)   AA3= AA3+ ...
       IF(I.EQ.sNx) AA3= AA3+ ...
Will probably check in a fix for those 2 little things.

Cheers,
Jean-Michel



More information about the MITgcm-devel mailing list