[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